Documentos de Académico
Documentos de Profesional
Documentos de Cultura
PL7 v45 Instrucciones PL7 PDF
PL7 v45 Instrucciones PL7 PDF
PL7 Micro/Junior/Pro
Estructura de la documentacin
3
Estructura de la documentacin
4
Tabla de materias
5
Expresiones numricas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
1.5 Instrucciones de programa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
Presentacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
Llamada a un subprograma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
Retorno de subprograma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
Salto en el programa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
Instrucciones de fin de programa. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
Parada del programa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
Instrucciones de enmascaramiento/desenmascaramiento de sucesos. . . . . . . . 84
Instrucciones NOP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
6
Instrucciones logartmicas y exponenciales . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
Instrucciones trigonomtricas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
Instrucciones de conversin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
Redondeo de un valor flotante con formato ASCII . . . . . . . . . . . . . . . . . . . . . . 143
2.5 Instrucciones de conversin numrica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
Presentacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
Instrucciones de conversin BCD <-> Binaria. . . . . . . . . . . . . . . . . . . . . . . . . . 146
Instrucciones de conversin Entero <-> Flotante . . . . . . . . . . . . . . . . . . . . . . . 151
Instrucciones de conversin Gray <-> Entero . . . . . . . . . . . . . . . . . . . . . . . . . . 154
Instrucciones de conversin palabra <--> palabra doble . . . . . . . . . . . . . . . . . 156
2.6 Instrucciones sobre tablas de palabras. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
Presentacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
Instrucciones sobre tablas de palabras. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
Instrucciones aritmticas en tablas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
Instrucciones lgicas en tablas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
Funciones de suma en tablas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
Funciones de comparacin de tablas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
Funciones de bsqueda en tablas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
Funciones de bsqueda de valores mximos y mnimos en tablas . . . . . . . . . 174
Nmero de ocurrencias de un valor en una tabla . . . . . . . . . . . . . . . . . . . . . . 176
Funcin de desplazamiento circular en una tabla . . . . . . . . . . . . . . . . . . . . . . . 178
Funcin de clasificacin en tabla . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182
Funcin de clculo de la longitud de tablas . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
2.7 Instrucciones de cadenas de caracteres. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186
Presentacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186
Formato de una cadena de caracteres o tabla de caracteres. . . . . . . . . . . . . . 187
Asignacin de una cadena de caracteres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
Comparaciones alfanumricas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
Funciones de conversin Numrico <---> ASCII. . . . . . . . . . . . . . . . . . . . . . . . 191
Conversin binario-->ASCII . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
Conversin ASCII-->binario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
Conversin Flotante-->ASCII . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
Conversin ASCII-->Flotante . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199
Concatenacin de dos cadenas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201
Eliminacin de una subcadena de caracteres. . . . . . . . . . . . . . . . . . . . . . . . . . 203
Insercin de una subcadena de caracteres . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
Sustitucin de una subcadena de caracteres . . . . . . . . . . . . . . . . . . . . . . . . . . 207
Extraccin de una subcadena de caracteres . . . . . . . . . . . . . . . . . . . . . . . . . . 209
Extraccin de caracteres. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211
Comparacin de dos cadenas de caracteres . . . . . . . . . . . . . . . . . . . . . . . . . . 213
Bsqueda de una subcadena de caracteres. . . . . . . . . . . . . . . . . . . . . . . . . . . 215
Longitud de una cadena de caracteres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217
2.8 Instrucciones de gestin del tiempo: fechas, horas, duraciones. . . . . . . . . . . . 219
Presentacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
Formato de los parmetros de las instrucciones de gestin del tiempo . . . . . . 220
7
Utilizacin de los bits y las palabras de sistema . . . . . . . . . . . . . . . . . . . . . . . . 223
Funcin de reloj-calendario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
Funcin Reloj-calendario de red . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227
Lectura de la fecha del sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229
Actualizacin de la fecha del sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230
Lectura de fecha y cdigo de parada. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232
Lectura del da de la semana. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233
Suma / Resta de una duracin a una fecha. . . . . . . . . . . . . . . . . . . . . . . . . . . . 235
Suma / Resta de una duracin a una hora del da . . . . . . . . . . . . . . . . . . . . . . 237
Diferencia entre dos fechas (sin hora) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239
Diferencia entre dos fechas (con hora) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241
Diferencia entre dos horas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243
Conversin de una fecha en cadena de caracteres . . . . . . . . . . . . . . . . . . . . . 245
Conversin de una fecha completa en cadena de caracteres. . . . . . . . . . . . . . 247
Conversin de una duracin en cadena de caracteres . . . . . . . . . . . . . . . . . . . 249
Conversin de una hora del da en cadena de caracteres . . . . . . . . . . . . . . . . 251
Conversin de una duracin en HHHH:MM:SS. . . . . . . . . . . . . . . . . . . . . . . . . 253
2.9 Instrucciones sobre tabla de bits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255
Presentacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255
Copia de una tabla de bits a una tabla de bits. . . . . . . . . . . . . . . . . . . . . . . . . . 256
Instrucciones lgicas en tablas de bits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257
Copia de una tabla de bits a una tabla de palabras. . . . . . . . . . . . . . . . . . . . . . 259
Copia de una tabla de palabras en una tabla de bits. . . . . . . . . . . . . . . . . . . . . 262
2.10 Funciones "Orphe": desplazamientos, contador . . . . . . . . . . . . . . . . . . . . . . . 265
Presentacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265
Desplazamientos de palabras con recuperacin de los bits desplazados. . . . . 266
Contaje/descontaje con sealizacin de rebasamiento. . . . . . . . . . . . . . . . . . . 270
Desplazamientos circulares . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273
2.11 Funciones de temporizacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275
Presentacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275
Funciones de temporizacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276
Funcin temporizacin de conexin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277
Funcin temporizacin de desconexin. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280
Funcin temporizacin de impulso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282
Funcin generador de seal rectangular . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284
2.12 Funciones de archivado de datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288
Presentacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288
Funciones de archivado de datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289
Inicializacin de la zona de archivado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291
Inicializacin de la zona de archivado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294
Ecritura de los datos en la zona de archivado extendida . . . . . . . . . . . . . . . . . 297
Escritura de los datos en la zona de archivado . . . . . . . . . . . . . . . . . . . . . . . . . 300
Lectura de los datos en la zona de guardado extendida . . . . . . . . . . . . . . . . . . 303
Lectura de los datos en la zona de archivado . . . . . . . . . . . . . . . . . . . . . . . . . . 306
2.13 Funciones Grafcet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309
8
Funcin puesta a cero de los tiempos de actividades de etapas . . . . . . . . . . . 309
ndice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355
9
10
Acerca de este libro
Presentacin
Objeto Este manual describe las instrucciones de los lenguajes de programacin de los
autmatas Micro, Premium y Atrium.
11
Acerca de este libro
12
Instrucciones de base
1
Presentacin
Contenido Este captulo describe las instrucciones de base del lenguaje PL7.
13
Instrucciones de base
14
Instrucciones de base
Instrucciones de PL7
Instrucciones de Incluyen las instrucciones booleanas de base, los bloques de funcin predefinidos
base y las instrucciones aritmticas y lgicas de enteros.
15
Instrucciones de base
Presentacin
Objeto de este Este apartado describe las instrucciones booleanas del lenguaje PL7.
apartado
16
Instrucciones de base
17
Instrucciones de base
18
Instrucciones de base
Instrucciones de carga
19
Instrucciones de base
Operandos En la siguiente tabla figura la lista de los operandos utilizados para estas
autorizados instrucciones.
Lenguaje de Lista de Literal Operandos
contactos instrucciones estructurado
LD := %I,%Q,%M,%S,%BLK,%:Xk, %Xi, (True y False en lista de
instrucciones o literal estructurado)
%M0 %Q2.2
%I1.2 %Q2.4
3
%I1.3 %Q2.5
20
Instrucciones de base
%Q2.3:=%I1.1;
%Q2.2:=NOT %M0;
%Q2.4:=RE %I1.2;
%Q2.5:=FE %I1.3;
21
Instrucciones de base
Instrucciones de asignacin
Operandos En la siguiente tabla figura la lista de los operandos utilizados para estas
permitidos instrucciones.
Lenguaje de Lista de Literal Operandos
contactos instrucciones estructurado
ST := %I,%Q,%M,%S,%:Xk
S SET %I,%Q,%M,%S,%:Xk,%Xi
S nicamente en el tratamiento preliminar.
R RESET %I,%Q,%M,%S,%:Xk,%Xi
R nicamente en el tratamiento preliminar.
22
Instrucciones de base
%Q2.2
%Q2.4
S
%I1.2 %Q2.4
STN %Q2.2
S %Q2.4
LD %I1.2
R %Q2.4
%Q2.3 := %I1.1;
%Q2.2 := NOT %I1.1;
IF %I1.1 THEN
SET %Q2.4;
END_IF;
IF %I1.2 THEN
RESET %Q2.4;
END_IF;
23
Instrucciones de base
Instruccin Y lgico
%M1
%Q2.3
ANDN AND (NOT...) Y lgico entre el operando inverso y el ANDN
resultado booleano de la instruccin
anterior %M2
%I1.2
%Q2.2
ANDR AND (RE...) Y lgico entre el flanco ascendente del ANDR
3 operando y el resultado booleano de la
instruccin anterior %I1.3
(2) Puesta a 1 durante 1 ciclo
%I1.4
%Q2.4 (2)
ANDF AND (FE...) Y lgico entre el flanco descendente del ANDF
1 operando y el resultado booleano de la
instruccin anterior %M3
(2) Puesta a 1 durante 1 ciclo
%I1.5
%Q2.5 (2)
24
Instrucciones de base
Operandos En la siguiente tabla figura la lista de los operandos utilizados para estas
permitidos instrucciones.
Lenguaje de Lista de Literal estructurado Operandos
contactos instrucciones
AND AND %I, %Q, %M, %S, %BLK, %:Xk, %Xi
True (1)/False (0) en lenguaje lista de instrucciones o
literal estructurado
ANDN AND (NOT...) %I, %Q, %M, %S, %BLK, %:Xk, %Xi
True (1)/False (0) en lenguaje lista de instrucciones o
literal estructurado
ANDR AND (RE...) %I, %Q, %M
3
25
Instrucciones de base
26
Instrucciones de base
Instruccin O lgico
%M1
%Q2.3
%I1.2
%Q2.2
ORR OR (RE...) O lgico entre el flanco ascendente del ORR
operando y el resultado booleano de la
instruccin anterior %I1.3
3
%I1.4
%Q2.4
ORF OR (FE...) O lgico entre el flanco descendente del ORF
operando y el resultado booleano de la
instruccin anterior %M3
1
%I1.5
%Q2.5
27
Instrucciones de base
Operandos En la siguiente tabla figura la lista de los operandos utilizados para estas
permitidos instrucciones.
Lenguaje de Lista de Literal estructurado Operandos
contactos instrucciones
OR OR %I, %Q, %M, %S, %BLK, %:Xk, %Xi
True (1)/False (0) en lenguaje lista de instrucciones o
literal estructurado
ORN OR (NOT...) %I, %Q, %M, %S, %BLK, %:Xk, %Xi
True (1)/False (0) en lenguaje lista de instrucciones o
literal estructurado
ORR OR (RE...) %I, %Q, %M
3
ORF OR (FE...) %I, %Q, %M
%M1
%M2 %Q2.2
%I1.2
%I1.3 %Q2.4
%I1.4
3
%M3 %Q2.5
%I1.5
1
28
Instrucciones de base
LD %M2
ORN %I1.2
ST %Q2.2
LD %I1.3
ORR %I1.4
ST %Q2.4
LD %M3
ORF %I1.5
ST %Q2.5
29
Instrucciones de base
Instruccin O exclusivo
%M1
%Q2.3
XORN XOR (NOT...) O exclusivo entre el operando inverso y el resultado XORN
booleano de la instruccin anterior
%M2
%I1.2
%Q2.2
XORR XOR (RE...) O exclusivo entre el flanco ascendente del operando y el XORR
resultado booleano de la instruccin anterior
%I1.3
%I1.4
%Q2.4
XORF XOR (FE...) O exclusivo entre el flanco descendente del operando y el XORF
resultado booleano de la instruccin anterior.
%M3
%I1.5
%Q2.5
30
Instrucciones de base
Operandos En la siguiente tabla figura la lista de los operandos utilizados para estas
permitidos instrucciones.
Lista de instrucciones Literal estructurado Operandos
XOR XOR %I, %Q, %M, %S, %BLK, %:Xk, %Xi
XORN XOR (NOT...) %I, %Q, %M, %S, %BLK, %:Xk, %Xi
XORR XOR (RE...) %I, %Q, %M
XORF XOR (FE...) %I, %Q, %M
%M1 %I1.1
%I1.2 %M2
LD %M3
XORF %I1.5
ST %Q2.5
31
Instrucciones de base
32
Instrucciones de base
Presentacin
Objeto de este En este apartado se describen los bloques de funcin predefinidos del lenguaje PL7
apartado
33
Instrucciones de base
%TMi
IN Q
MODE : TON
TB:1mn
TM.P:9999
MODIF:Y
34
Instrucciones de base
35
Instrucciones de base
36
Instrucciones de base
IN
(3) (4)
%TMi.P
(5)
(2)
%TMi.V
37
Instrucciones de base
(3)
IN
(2) (5)
%TMi.P
(4)
(1) (1)
%TMi.V
38
Instrucciones de base
IN
(2) (6)
Q
(4)
%TMi.P (5)
(3)
%TMi.V
39
Instrucciones de base
40
Instrucciones de base
IF RE %I1.1 THEN
START %TM1;
ELSIF FE %I1.1 THEN
DOWN %TM1;
END_IF;
%Q2.3 := %TM1.Q;
41
Instrucciones de base
42
Instrucciones de base
R E
S
C.P. : 9999 D
CU
MODIF : Y
CD F
43
Instrucciones de base
44
Instrucciones de base
Funcin Descontaje
Accin Resultado
Aparece un flanco ascendente en la El valor actual %Ci.V disminuye de una unidad
entrada de descontaje CD
El valor actual %Ci.V pasa de 0 a 9999 El bit de salida %Ci.E (rebasamiento de
descontaje) pasa al estado 1
El contador sigue descontando El bit de salida %Ci.E (rebasamiento de
descontaje) vuelve a 0
Funcin Contaje/Descontaje
Accin Resultado
Aparece un flanco ascendente en la El valor actual %Ci.V se incrementa de una
entrada de contaje CU unidad
Aparece un flanco ascendente en la El valor actual %Ci.V disminuye de una unidad
entrada de descontaje CD
Las dos entradas estn en 1 El valor actual no cambia
simultneamente
Reset
Cuando Resultado
La entrada R se pone a 1 (esta entrada El valor actual %Ci.V se fuerza a 0. Las salidas
tiene prioridad sobre el resto) %Ci.V, %CI.D y %CI.F estn en 0
45
Instrucciones de base
Preseleccin
Accin Resultado
La entrada S "Preseleccin" se encuentra El valor actual %Ci.V toma el valor %Ci.P y la
en el estado 1 y la entrada R "Reset" salida %Ci.D pasa a 1
46
Instrucciones de base
Configuracin y programacin
Ejemplo Contaje de un nmero de piezas = 5000. Cada impulso en la entrada %I1.2 (cuando
el bit interno %M0 est en 1) provoca el incremento del contador %C8 hasta el valor
de preseleccin final del contador %C8 (bit %C8.D=1). La entrada %I1.1 provoca el
reset del contador.
Configuracin A continuacin, se indican los parmetros que debe introducir el editor de variables:
l %Ci.P, fijado a 5000 en este ejemplo
l MODIF: Y
%C8
%I1.1
R E
S
%I1.2 %M0 C.P : 5000 D
CU
MODIF : Y
CD F
%C8.D %Q2.0
47
Instrucciones de base
En el caso del lenguaje literal estructurado, se hace un reset del historial de las
entradas CU y CD cuando se utilizan las instrucciones UP y DOWN. Por lo tanto, es
el usuario quien debe gestionar los flancos ascendentes para estas dos
instrucciones.
48
Instrucciones de base
Presentacin
Objeto de este En este apartado se describen los tratamientos numricos en enteros del lenguaje
apartado PL7
49
Instrucciones de base
Generalidades Las instrucciones numricas descritas en este captulo se aplican a los objetos de
tipo:
l tablas de bits
l palabras
l palabras dobles
Las instrucciones sobre los dems tipos de objetos se describen en el captulo
"Instrucciones avanzadas (Vase Instrucciones avanzadas, p. 87)".
Ejemplo de programacin:
%Q2.2
%MW50>10
%I1.0
%MW10:=%KW0:=%KW0+10
%I1.2
N INC%MW100
Ejemplo de programacin:
LD [%MW50>10]
ST %Q2.2
LD %I1.0
[%MW10:=%KW0+10]
LDF %I1.2
[INC%MW100]
50
Instrucciones de base
Ejemplo de programacin:
%Q2.2:=%MW50 > 10;
IF %I1.0 THEN
%MW10:=%KW0 + 10;
END_IF;
IF FE %I1.2 THEN
INC %MW100;
END_IF;
51
Instrucciones de base
52
Instrucciones de base
1RWD&RQYHUVLRQHVLPSOtFLWDVSDODEUDV!SDODEUDVGREOHV
El programa PL7 permite combinar operaciones que utilicen palabras y palabras
dobles. Las conversiones en uno u otro de los formatos se efecta de forma
implcita. Una operacin en la que interviene una palabra doble o varios valores
inmediatos se ejecuta de forma interna automticamente en formato doble.
53
Instrucciones de base
Instrucciones de comparacin
54
Instrucciones de base
%Q2.3
%MW10>100
%M0 %Q2.2
%MW20<%KW35
%I1.2 %Q2.4
%MW30>=%MW40
55
Instrucciones de base
Operandos
Tipo Operandos 1 y 2 (Op1 y Op2)
Palabras indexables %MW,%KW,%Xi.T
Palabras no indexables Val.inm.,%IW,%QW,%SW,%NW,%BLK,Expr. numrica
Palabras dobles indexables %MD,%KD
Palabras dobles no indexables Val.inm.,%ID,%QD,%SD,Expr.numrica
1RWD
l en el lenguaje de contactos, la operacin de comparacin puede efectuarse
tambin con el Bloque de comparacin vertical (Vase 3UHVHQWDFLyQGHOEORTXH
GHRSHUDFLyQFRPSDUDGRUYHUWLFDOS )
l en el lenguaje lista de instrucciones, las instrucciones de comparacin se
pueden utilizar entre parntesis.
56
Instrucciones de base
Instrucciones de asignacin
Asignacin de Se pueden realizar las siguientes operaciones en tablas de bits (("Objetos PL7 de
tablas de bits tipo tabla" - Manual de referencia Tomo 1)):
l tabla de bits -> tabla de bits (ej: 1)
l tabla de bits -> palabra o palabra doble (indexada) (ej: 2)
l palabra o palabra doble (indexada) -> tabla de bits (ej: 3)
57
Instrucciones de base
%Q2.0:8:=%M10:8
%I3.2
%MW100:=%I1.0:16
%I3.3
3 %M100:16:=%KW0
Ejemplo 2:
LD %I3.2
>0: ,@
Ejemplo 3:
LDR %I3.3
>0: .:@
Ejemplo 3:
IF RE %I3.3 THEN
0 .:
END_IF;
58
Instrucciones de base
Operandos
Tipo Operando 1 (Op1) Operando 2 (Op2)
Tabla de bits %M:L,%Q:L,%I:L %M:L,%Q:L,%I:L,%Xi:L
Palabras %MW %MW,%KW,%Xi.T
indexables
Palabras no %QW,%SW,%NW,%BLK Val.inm.,%IW,%QW,%SW,%NW,%B
indexables LK,Expr.num.
Palabras dobles %MD %MD,%KD
indexables
Palabras dobles no %QD,%SD Val.inm.,%ID,%QD,%SD,Expr.
indexables numrica
59
Instrucciones de base
Asignacin de palabras
%SW112:=%MW100
%I3.2
%MD0:=%KD0[%MW20]
%I3.3
3 %MW10:=100
Ejemplo 2:
LD %I3.2
>0' .'>0:@@
60
Instrucciones de base
Operandos
Tipo Operando 1 (Op1) Operando 2 (Op2)
Palabras %MW %MW,%KW,%Xi.T
indexables
Palabras no %QW,%SW,%NW,%BLK Val.inm.,%IW,%QW,%SW,%NW,
indexables %BLK,Expr.num.
Palabras dobles %MD %MD,%KD
indexables
Palabras dobles no %QD,%SD Val.inm.,%ID,%QD,%SD, Expr.
indexables numrica
61
Instrucciones de base
Generalidades Estas instrucciones permiten efectuar una operacin aritmtica entre dos
operandos o en un operando.
Lista de instrucciones:
+ suma de dos operandos SQRT raz cuadrada de un operando
- resta de dos operandos INC incremento de un operando
* multiplicacin de dos operandos DEC decremento de un operando
/ divisin de dos operandos ABS valor absoluto de un operando
REM resto de la divisin de 2 operandos
62
Instrucciones de base
%M0
%MW0:=%MW10+100
%I3.2
%MW0:=SQRT(%MW10)
%I3.3
P INC %MW100
LD %I3.2
>0: 64570:@
LD %I3.3
>,1&0:@
63
Instrucciones de base
Operandos
Tipo Operando 1 (Op1) Operando 2 (Op2)
Palabras %MW %MW,%KW,%Xi.T
indexables
Palabras no %QW,%SW,%NW,%BLK Val.inm.,%IW,%QW,%SW,%NW,
indexables %BLK,Expr.num.
Palabras dobles %MD %MD,%KD
indexables
Palabras dobles no %QD,%SD Val.inm.,%ID,%QD,%SD, Expr.
indexables numrica
64
Instrucciones de base
%M0
%MW0:=%MW1+%MW2
%S18
%MW10:=%MW0
%S18
%MW10:=32767
%S18
R
65
Instrucciones de base
1RWD
l Cuando el resultado de una operacin no es un entero (caso de una divisin o
de una raz cuadrada), el resultado se trunca (redondeo al entero inferior ms
prximo).
l El signo del resto de la divisin (REM) es el del numerador.
l La gestin del bit de sistema %S18 corre a cargo del programa de usuario. El
autmata lo pone a 1 y el programa debe volverlo a poner a cero para poder
utilizarlo de nuevo (vase el ejemplo anterior).
66
Instrucciones de base
Instrucciones lgicas
Generalidades Las instrucciones asociadas permiten efectuar una operacin lgica entre dos
operandos o en un operando.
Lista de instrucciones:
AND Y (bit a bit) entre dos operandos
OR O lgico (bit a bit) entre dos operandos
XOR O exclusivo (bit a bit) entre dos operandos
NOT complemento lgico (bit a bit) de un operando
67
Instrucciones de base
%M0
%MW0:=%MW10 AND 16#FF00
%MW0:=%KW5 OR %MW10
%I1.3
3 %MW102:=NOT %MW100
LD TRUE
>0: .:250:@
LD %I1.3
>0: 1270:@
68
Instrucciones de base
Operandos
Tipo Operando 1 (Op1) Operandos 2 y 3 (Op2 y Op3)
Palabras %MW %MW,%KW,%Xi.T
indexables
Palabras no %QW,%SW,%NW Val.inm.,%IW,%QW,%SW,%NW,
indexables %BLK,Expr.num.
Palabras dobles %MD %MD,%KD
indexables
Palabras dobles no %QD,%SD Val.inm.,%ID,%QD,%SD, Expr.
indexables numrica
69
Instrucciones de base
Expresiones numricas
Reglas de l Los operandos de una misma expresin numrica pueden ser tanto de longitud
aplicacin simple como doble:
Ejemplo:
%MW6*%MW15+SQRT(%DW6)/(%MW149[%MW8])+%KD29)AND16#FF
l Un operando o una operacin con un solo operando pueden ir precedidos del
signo + o - (por defecto, signo +)
Ejemplo:
SQRT(%MW5)*-%MW9
l Todos los objetos palabras pueden utilizarse dentro de una expresin aritmtica.
Es posible indexar algunas palabras.
70
Instrucciones de base
Ejemplo:
La ejecucin de las instrucciones anteriores se efecta segn el orden de la
numeracin:
1 2
4 5
1
2
71
Instrucciones de base
Presentacin
Objeto de este En este apartado se describen las instrucciones de programa del lenguaje PL7
apartado
72
Instrucciones de base
Llamada a un subprograma
%M8 SR10
C
73
Instrucciones de base
Llamada SR10
Llamada SR10
74
Instrucciones de base
Retorno de subprograma
%M8
<RETURN>
75
Instrucciones de base
%MW5>3 <RETURN>
%M8
%MD26:=%MW4*%KD6
76
Instrucciones de base
Salto en el programa
77
Instrucciones de base
Estructura JUMPC
IF %M8 THEN
JUMP %L10;
END_IF;
%Q2.5:=%I1.0; Salto a la etiqueta %L10
si %M8 est a 1
------
%L10:
%M5:=%M20;
%Q2.1:=%I1.0 AND %I1.2;
78
Instrucciones de base
JUMPCN
79
Instrucciones de base
JMP
Lenguaje de contactos
Lenguaje lista de instrucciones
%L40
>>
-03 %L40
%L20 %L20:
%I2.1 %Q3.5
LD %I2.1 Salto incondicional
ST %Q3.5 en la etiqueta %L40
---------
%L40:
%L40 LD %M20
%M20 %M5
5 ST %M5
JUMP %L40;
%L20
%Q3.5:=%I2.1; Salto incondicional
en la etiqueta %L40
------
%L40:
%M5:=%M20;
80
Instrucciones de base
Generalidades Las instrucciones END, ENDC y ENDCN permiten definir el final de ejecucin del
ciclo del programa:
l END: fin de programa incondicional
l ENDC: fin de programa si el resultado booleano de la instruccin de prueba
anterior est a 1
l ENDCN: fin de programa si el resultado booleano de la instruccin de prueba
anterior est a 0.
Reglas Por defecto (modo normal), cuando se activa el final del programa, hay una
actualizacin de las salidas y del paso al ciclo siguiente.
Si la exploracin es peridica, las salidas se actualizarn, esperarn el final del
perodo y pasarn al siguiente ciclo.
81
Instrucciones de base
Ejemplo 2:
LD %M1
ST %Q2.1
LD %M2
ST %Q2.2
------
LD %I2.2
(1'&
LD %M2
ST %Q2.2
------
(1'
l Si %I1.2 = 1, hay final de exploracin del programa
l Si %I1.2 = 0, La exploracin continua hasta la prxima instruccin END
82
Instrucciones de base
%M10
<HALT>
83
Instrucciones de base
%M8
UNMASKEVT()
LD %M8
>810$6.(97@
84
Instrucciones de base
Instrucciones NOP
Generalidades La instruccin NOP no lleva a cabo ninguna accin. Permite "reservar" lneas en un
programa para poder escribir despus instrucciones sin modificar los nmeros de
lnea.
85
Instrucciones de base
86
Instrucciones avanzadas
2
Presentacin
Contenido de Este captulo describe las instrucciones avanzadas del lenguaje PL7.
este captulo
87
Instrucciones avanzadas
88
Instrucciones avanzadas
Presentacin
Objeto de este En este apartado se describen los bloques de funcin avanzados predefinidos del
apartado lenguaje PL7
89
Instrucciones avanzadas
%MNi
S R
TB: 1mn
MN.P:9999
MODIF:Y
90
Instrucciones avanzadas
91
Instrucciones avanzadas
%Q3.0
5s 5s
2s 2s
92
Instrucciones avanzadas
%MN0.R %MN1
S R
93
Instrucciones avanzadas
94
Instrucciones avanzadas
Generalidades Un registro es un bloque de memoria que permite almacenar hasta 255 palabras de
16 bits de dos formas distintas:
l cola de espera (primero en entrar, primero en salir), denominada FIFO (First In,
First Out)
l pila (ltimo en entrar, primero en salir) denominada pila LIFO (Last In, First Out)
%Ri
R E
MODE:LIFO
LEN:16 F
I
95
Instrucciones avanzadas
96
Instrucciones avanzadas
Generalidades En el modo FIFO (First In - First Out), la primera informacin que entra en la pila del
registro es la primera que sale.
97
Instrucciones avanzadas
Generalidades En el modo LIFO (Last In - First Out), la ltima informacin que entra en la pila del
registro es la primera que sale.
98
Instrucciones avanzadas
99
Instrucciones avanzadas
%R2
R E
%M1
I F
%I1.3
O
%I1.3 %R2.E
%MW20:=%R2.O
%I1.2 %R2.F
%R2.I:=%MW34
%M1
100
Instrucciones avanzadas
101
Instrucciones avanzadas
%DRi
R F
%TB:1mn
U
LEN:16
102
Instrucciones avanzadas
103
Instrucciones avanzadas
104
Instrucciones avanzadas
'521EUSDV
Paso
0 1 2 3 4 5 6 7 8 9 10 11 12130 14 15 Variable
0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 %Q2.1
1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 %Q2.3
2 1 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 %Q3.5
32 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 %M0
4 0 0 1 0 1 0 0 0 0 0 0 0 1 1 1 0 %M10
5 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 %Q2.6
6 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 %Q2.7
Bit
7 1 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 %Q2.8 Bits de comando
8 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 %M20
9 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 %M30
A 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 %Q2.9
B 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 1 %Q3.6
C 1 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 %M5
D 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 %M6
E 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 %M7
OK Cancel
Diagrama de funcionamiento
Entrada U:
Entrada R:
Salida %DRi.F
Tiempo %DRi.V
envoltura
105
Instrucciones avanzadas
Ejemplo En el ejemplo, las 5 primeras salidas %Q2.0 a %Q2.4 se activan una tras otra cada
vez que la entrada %I1.1 se pone a 1. La entrada I1.0 reinicializa las salidas en el
paso 0.
Paso:
0 1 2 3 4
0: 1 0 0 0 0 %Q2.0
1: 0 1 0 0 0 %Q2.1
Bits: 2: 0 0 1 0 0 %Q2.2
3: 0 0 0 1 0 %Q2.3
4: 0 0 0 0 1 %Q2.4
106
Instrucciones avanzadas
%DR1
%I1.0 %Q2.8
R F
%I1.1 %TB:1mn
U
LEN:5
107
Instrucciones avanzadas
108
Instrucciones avanzadas
Generalidades Este bloque de funcin temporizador compatible con los bloques de la serie 7 PL7-
2/3 permite controlar de forma temporizada acciones especficas. El valor de este
retardo se puede programar y modificar o no por terminal.
%Ti
E D
TB : 1mn
C R
T.P:9999
MODIF:Y
109
Instrucciones avanzadas
110
Instrucciones avanzadas
(
&
7L3
7L9
7L'
7L5
E 0 0 1 1
C 0 1 0 1
%Ti.V %Ti.V %Ti.V %Ti.V %Ti.V
disminucin
= = inmovilizada de
%Ti.P %Ti.P %Ti.P %Ti.P -> 0
%Ti.D 0 1 0 1 si Tempo
transcurrida
%Ti.R 0 1 0 1 si Tempo
en curso
111
Instrucciones avanzadas
112
Instrucciones avanzadas
, (&
5
PRESET PRESET
' 4
7L3
02'1
113
Instrucciones avanzadas
,
(&
5
35(6(7
'
4
114
Instrucciones avanzadas
7L3
02'1
115
Instrucciones avanzadas
, (
, &
4 5
' ' '
4 '
PRESET = D1+D2+D3
116
Instrucciones avanzadas
117
Instrucciones avanzadas
,
(
,
&
5
' ' '
'
4
35(6(7 '''
118
Instrucciones avanzadas
119
Instrucciones avanzadas
Generalidades El bloque comparador vertical permite efectuar una comparacin entre 2 operandos
(OP). Estos 2 operandos son de tipo palabra de 16 bits eventualmente indexados o
valor inmediato.
El nmero de bloques de comparador vertical no est limitado ni numerado.
120
Instrucciones avanzadas
Lenguaje de contactos
%I1.3 %Q2.7
EN >
%MW10:X4
%MW2 =
[%MW40]
<
150 %M5
<>
121
Instrucciones avanzadas
Instrucciones de desplazamiento
15 (ou 31) 0 0
%S17 %S17
0
15 (ou 31) 0
%S17
%S17
122
Instrucciones avanzadas
3 %MW0:=SHL(%MW10,5)
3 %MW10:=ROR(%KMW9,8)
Sintaxis: Op1:=Operador(Op2,i)
123
Instrucciones avanzadas
Presentacin
Objeto de este En este apartado se describen las instrucciones en flotante del lenguaje PL7
apartado
124
Instrucciones avanzadas
Instrucciones en flotante
Los valores flotantes se pueden representar con o sin exponente; deben llevar
siempre un punto (coma flotante).
125
Instrucciones avanzadas
1RWD
l el valor "1285" se interpreta como valor entero; para tenerse en cuenta como
valor flotante, debe escribirse: "1285.0"
l las instrucciones de conversin Entero <--> Flotante permiten pasar de un
formato a otro.
126
Instrucciones avanzadas
Figura:
%MW0
%MF0
%MW1
%MF1
%MW2
%MF2 %MW3
%MF3
%MWi
%MFi
%MWi+1
Ejemplo:
%MF0 corresponde a %MW0 y %MW. %KF543 corresponde a %KW543 y
%KW544.
127
Instrucciones avanzadas
128
Instrucciones avanzadas
%MF30>=MF40
129
Instrucciones avanzadas
%MF10:=%KF100
%I3.2
%MF5:=%KF0[%MW20]
%I3.3
3 %MF100:=150.25
LD %I3.2
>0) .)>0:@@
Ej. 2
LDR %I3.3
>0) @
Ej. 2
IF RE %I1.3 THEN
0) ;
END_IF;
130
Instrucciones avanzadas
Sintaxis Operadores: :=
Operandos:
Tipo Operando 1 (Op1) Operando 2 (Op2)
Flotantes indexables %MF %MF, %KF
Flotantes no indexables Valor inmediato flotante, Expresin
numrica flotante
Sintaxis: Op1:=Op2
131
Instrucciones avanzadas
Generalidades Estas instrucciones permiten efectuar una operacin aritmtica entre dos
operandos o en un operando.
132
Instrucciones avanzadas
%I3.3
3 %MF2:=ABS(%MF20)
%I3.5
3 %MD8:=TRUNC(%MF2)
LD %I3.2
>0) 64570)@
LDR %I3.3
>0) $%60)@
LDR %I3.5
>0' 7581&0)@
133
Instrucciones avanzadas
1RWDCuando se realiza una suma o una resta entre dos nmeros flotantes, los
dos operandos deben respetar la condicin Op1 > Op2 2 24 , con Op1>Op2. Si
no se respeta esta condicin, el resultado es igual al operando 1 (Op1). Este
comportamiento no tiene grandes consecuencias cuando se trata de una
24
operacin aislada, ya que el error resultante es de poca importancia ( 2 ),
aunque tiene consecuencias inesperadas en caso de que el clculo sea iterativo.
Ejemplo: tomemos la instruccin 0) 0)0) repetida
indefinidamente. Si las condiciones iniciales son %MF.0 = 1.0 y %MW2= 0,
observamos un bloqueo del valor de %MF2 a 16777216.
Por tanto, se recomienda programar los clculos iterativos con sumo cuidado. Si,
pese a todo, deseamos programar este tipo de clculo, la aplicacin del cliente
deber encargarse de gestionar los errores de truncamiento.
Reglas de l Las operaciones con flotantes y enteros no se pueden mezclar directamente. Las
utilizacin operaciones de conversin (Vase Instrucciones de conversin numrica,
p. 145) llevan a cabo la conversin a uno de los dos formatos.
l El bit de sistema %S18 se gestiona de igual forma que las operaciones con
enteros (Vase Instrucciones aritmticas en enteros, p. 62), la palabra %SW17
(Vase Instrucciones en flotante, p. 125) indica la causa del fallo.
134
Instrucciones avanzadas
135
Instrucciones avanzadas
%I3.3
3 %MF4:=EXP(%MF40)
%I3.4
3 %MF6:=EXPT(%MF50,%MF52)
LD %I3.2
>0) /10)@
LDR %I3.3
>0) (;30)@
LDR %I3.4
>0) (;370)0)@
136
Instrucciones avanzadas
137
Instrucciones avanzadas
Instrucciones trigonomtricas
138
Instrucciones avanzadas
,
3 0) $7$10)
LD %I3.2
>0) 7$10)@
LDR %I3.3
>0) $7$10)@
139
Instrucciones avanzadas
Reglas de uso l cuando el operando de la funcin es un valor no vlido (ejemplo: arco coseno de
un nmero superior a 1), ste da un resultado indeterminado o infinito y pone el
bit %S18 a 1, la palabra %SW17 (Vase Instrucciones en flotante, p. 125) indica
la causa del fallo.
l las funciones SIN/COS/TAN admiten como parmetro un ngulo entre 4096 y
4096 , pero la precisin decrece progresivamente cuando se trata de ngulos
que se encuentran fuera del intervalo comprendido entre 2 y +2 debido a
que el mdulo 2 efecta una imprecisin en el parmetro antes de realizar
cualquier operacin.
l Para los valores 0<Op2<0.01 y 0.999<Op2<1.0 de ASIN, el bit %S18 y el bit
%SW17:X5 pasan a 1, lo que significa que la medida es imprecisa.
140
Instrucciones avanzadas
Instrucciones de conversin
LD %M2
>0) 5$'B72B'(*0)@
141
Instrucciones avanzadas
142
Instrucciones avanzadas
ROUND(%MB10:15,%MW100,%MB50:15)
143
Instrucciones avanzadas
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
%MB10:15 - 1 . 2 3 4 5 6 7 0 e + 2 6 $00
%MW100 = 4
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
%MB50:15 - 1 . 2 3 4 5 0 0 0 e + 2 6 $00
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
%MB10:15 - 1 . 1 3 5 4 9 4 2 e - 3 0 $00
%MW100 = 2
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
%MB50:15 + 1 . 1 0 0 0 0 0 0 e - 3 0 $00
Reglas de l La longitud de las cadenas de caracteres de origen y del resultado debe estar
utilizacin comprendida entre 15 y 255 bytes. En caso contrario, el bit %S15 se sita en 1.
l El parmetro de longitud Long debe estar comprendido entre 0 y 8. En caso
contrario, el bit %S20 (rebasamiento de ndice) se sita en 1. Caso particular:
para L=0 o L=8, no se efecta el redondeo (cadena de origen = cadena del
resultado)
l Cuando el ltimo carcter diferente de 0 es > a 5, el carcter anterior aumenta.
144
Instrucciones avanzadas
Presentacin
Objeto de este En este apartado se describen las instrucciones en flotante del lenguaje PL7
apartado
145
Instrucciones avanzadas
Lista de instrucciones:
BCD_TO_INT conversin de un nmero BCD de 16 bits en entero de
16 bits
INT_TO_BCD conversin de un entero de 16 bits en nmero BCD de
16 bits
DBCD_TO_DINT conversin de un nmero BCD de 32 bits en entero de
32 bits
DINT_TO_DBCD conversin de un entero de 32 bits en nmero BCD de
32 bits
DBCD_TO_INT conversin de un nmero BCD de 32 bits en entero de
16 bits
INT_TO_DBCD conversin de un entero de 16 bits en nmero BCD de
32 bits
146
Instrucciones avanzadas
Recapitulacin El cdigo BCD (Binary Coded Decimal), que significa decimal codificado binario,
sobre el cdigo permite representar una cifra decimal de 0 a 9 con un conjunto de 4 bits. As, un
BCD objeto palabra de 16 bits puede contener un nmero expresado con 4 cifras (0 < N
< 9999).
Decimal 0 1 2 3 4 5 6 7 8 9
BCD 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001
147
Instrucciones avanzadas
%MW0:=BCD_TO_INT(%MW10)
,
%MW10:=INT_TO_BCD(%KW9)
LD I1.2
>0: ,17B72B%&'.:@
148
Instrucciones avanzadas
149
Instrucciones avanzadas
150
Instrucciones avanzadas
%MF0:=INT_TO_REAL(%MW10)
,
%MD4:=REAL_TO_DINT(%MF9)
LD I1.8
>0' 5($/B72B',170)@
151
Instrucciones avanzadas
Ejemplo: conversin de una palabra entera --> flotante: 147 --> 1.47e+02
152
Instrucciones avanzadas
Ejemplo:
conversin flotante --> palabra entera: 5978.6 --> 5979
conversin flotante --> palabra doble entera: -1235978.6 --> -1235979
1RWDSi durante una conversin real a entero (o real a palabra doble entera) el
valor flotante se encuentra fuera de los lmites de la palabra (o de la palabra doble),
el bit %S18 se coloca a 1.
Precisin de La norma IEEE 754 define 4 modos de redondear para las operaciones con
redondeo flotantes.
El modo utilizado en las siguientes instrucciones es el modo "redondear al valor ms
cercano":
"si los valores ms cercanos que se pueden representar son iguales a la distancia
del resultado terico, el valor suministrado ser aquel cuyo bit menos significativo
sea igual a 0".
En algunos casos, el resultado del redondeo puede, por lo tanto, tomar un valor
predeterminado o un valor superior.
Por ejemplo:
Redondeo del valor 10,5 -> 10
Redondeo del valor 11,5 -> 12
153
Instrucciones avanzadas
Recapitulacin El cdigo Gray o "binario reflejado" permite codificar un valor numrico en curso de
sobre el cdigo evolucin en una serie de configuraciones binarias que se diferencian entre s por
Gray el cambio de estado de un solo y nico bit.
Este cdigo permite por ejemplo evitar la variacin siguiente: en binario puro, el
paso del valor 0111 a 1000 puede generar valores aleatorios comprendidos entre 0
y 1000; los bits no cambian de valor de forma perfectamente simultnea.
Decimal 0 1 2 3 4 5 6 7 8 9
BCD 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001
Gray 0000 0001 0011 0010 0110 0111 0101 0100 1100 1101
%MW0:=GRAY_TO_INT(%MW10)
154
Instrucciones avanzadas
Operandos:
Tipo Operando 1 (Op1) Operando 2 (Op2)
Palabras indexables %MW %MW,%KW,%Xi.T
Palabras no %QW,%SW,%NW, Val.inm.,%IW,%QW,%SW,%NW,%BLK,
indexables %BLK Expr. num.
155
Instrucciones avanzadas
Generalidades Las instrucciones que se describen a continuacin son tiles en el caso de objetos
puramente simblicos (caso de los bloques de funcin DFB).
En el caso de los objetos direccionables, gracias a los mecanismos de
solapamiento (ejemplo: palabra doble %MD0 formada de las palabras %MW0 y
%MW1) no es necesario utilizar estas instrucciones.
156
Instrucciones avanzadas
Ejemplo:
Presin_cubeta:=LW(Parmetro_1)
si Parmetro_1=16#FFFF1234, Presin_cubeta=16#1234
Ejemplo:
Presin_cubeta:=HW(Parmetro_1)
si Parmetro_1=16#FFFF1234, Presin_cubeta=16#FFFF
157
Instrucciones avanzadas
Ejemplo:
Presin_cubeta:=CONCATW(Parmetro_1,Parmetro_2)
si Parmetro_1=16#1234, Parmetro_1=16#FFFF,
Presin_cubeta=16#FFFF1234
158
Instrucciones avanzadas
Presentacin
Objeto de este En este apartado se describen las instrucciones de tablas de palabras del lenguaje
apartado PL7
159
Instrucciones avanzadas
%KW10 16 bits
%KW14
160
Instrucciones avanzadas
Reglas generales l las operaciones en tablas slo se efectan en tablas que contengan objetos del
sobre las mismo tipo
operaciones de l las operaciones en tablas slo se efectan en 2 tablas como mximo
tablas l si en una operacin las tablas tienen tamaos diferentes, la tabla del resultado
corresponder al mnimo de las 2 tablas operandos
l el usuario debe evitar efectuar operaciones en tablas con solapamiento (por
ejemplo: %MW100[20]:=%MW90[20]+%KW100[20])
l la operacin en 2 tablas se efecta en cada elemento de mismo rango de las 2
tablas y el resultado se transfiere al elemento de mismo rango de la tabla del
resultado
l si en una operacin entre 2 elementos, el bit de sistema %S18 se sita en 1, el
resultado para dicha operacin ser errneo, pero la operacin para los
elementos siguientes se efectuar correctamente
l cuando uno de los operandos sea una expresin numrica, sta debe escribirse
entre parntesis
l el rango de una palabra en una tabla corresponde a su posicin en esta ltima;
la primera posicin corresponde al rango 0
161
Instrucciones avanzadas
Generalidades Estas instrucciones permiten efectuar una operacin aritmtica entre dos
operandos de tipo tablas de palabras (o palabra y tabla de palabras).
Lista de instrucciones
+ : suma * : multiplicacin
- : resta / : divisin
REM : resto de la divisin -
%I3.2
%MW50:5:=%KD0:5+%MD0:5
%I3.3
3 %MW0:10:=%KW0:10*%MW20
LD %I3.2
>0' .'0'@
162
Instrucciones avanzadas
163
Instrucciones avanzadas
Generalidades Estas instrucciones permiten efectuar una operacin aritmtica entre dos
operandos de tipo tablas de palabras (o palabra y tabla de palabras).
Lista de instrucciones
AND: Y (bit a bit) XOR: O exclusivo (bit a bit)
OR: O lgico (bit a bit) NOT: complemento lgico (bit a bit) de una tabla (1 solo
operando)
%I3.2
%MD0:10:=%KD5:10OR%MD50:10
%I3.3
3 %MW100:50:=NOT%MW0:50
164
Instrucciones avanzadas
165
Instrucciones avanzadas
Generalidades Las funciones SUM y SUM_ARR efectan la suma de todos los elementos de una
tabla de palabras:
l si la tabla est formada por palabras de formato simple, el resultado se
proporciona con la forma de una palabra de formato simple (funcin SUM)
l si la tabla est formada por palabras dobles, el resultado se proporciona con la
forma de una palabra doble (funcin SUM)
l si la tabla est formada por palabras flotantes, el resultado se proporciona con la
forma de una palabra flotante (funcin SUM_ARR)
%MD50:=SUM(%KD50:20)
%MF0:=SUM_ARR(%KF8:5)
166
Instrucciones avanzadas
Ejemplo %MW5:=SUM(%MW30:4)
con %MW30=10, %MW31=20, %MW32=30, %MW33=40
%MW5=10+20+30+40=100
167
Instrucciones avanzadas
Generalidades Las funciones EQUAL (en entero) y EQUAL _ARR (en flotante) efectan la
comparacin de 2 tablas elemento por elemento.
%MW0:=EQUAL(%MW20:7,%KD0:7)
%MF1:=EQUAL_ARR(%MF0:5,%KF0:5)
168
Instrucciones avanzadas
1RWD
l las tablas deben tener obligatoriamente la misma longitud
l si el parmetro de rango es superior al tamao de las tablas, el resultado es
igual a dicho rango.
Ejemplo %MW5:=EQUAL(%MW30:4,%KW0:4,1)
Comparacin de las 2 tablas:
Rango Tabla de palabras Tablas de constantes Diferencia
0 %MW30=10 %KW0=20 Ignorado (rango<1)
1 %MW31=20 %KW1=20 =
2 %MW32=30 %KW2=30 =
3 %MW33=40 %KW3=60 Diferente
169
Instrucciones avanzadas
170
Instrucciones avanzadas
%I1.2
%MW0:=FIND_GTD(%MD20:7,%KD0)
%MW1:=FIND_LTR(%MF40:5,%KF5)
171
Instrucciones avanzadas
172
Instrucciones avanzadas
Ejemplo %MW5:=FIND_EQW(%MW30:4,%KW0)
Bsqueda de la posicin de la primera palabra =%KW0=30 en la tabla:
Rango Tabla de palabras Resultado
0 %MW30=10 -
1 %MW31=20 -
2 %MW32=30 %MW5=2 (valor del rango)
3 %MW33=40 -
173
Instrucciones avanzadas
%I1.2
%MD0:=MIN_ARD(%MD20:7)
%MF8:=MIN_ARR(%MF40:5)
174
Instrucciones avanzadas
175
Instrucciones avanzadas
%I1.2
%MW0:=OCCUR_ARD(%MD20:7,200)
176
Instrucciones avanzadas
177
Instrucciones avanzadas
0
1
2
3
4
5
0
1
2
3
4
5
178
Instrucciones avanzadas
%I1.2
3 ROR_ARD(2,%MD20:7)
%I1.3
3 ROR_ARR(2,%MF40:5)
179
Instrucciones avanzadas
180
Instrucciones avanzadas
181
Instrucciones avanzadas
%I1.2
SORT_ARD(-1,%MD20:6)
%I1.3
SORT_ARD(0,%MD40:8)
182
Instrucciones avanzadas
183
Instrucciones avanzadas
%I1.2
LENGTH_ARD(tab_dmot)
%I1.3
LENGTH_ARX(tab_bit)
184
Instrucciones avanzadas
185
Instrucciones avanzadas
Presentacin
Objeto de este En este apartado se describen las instrucciones de cadenas de caracteres del
apartado lenguaje PL7
186
Instrucciones avanzadas
Generalidades l Una tabla de caracteres se compone de una serie de bytes en la que se puede
guardar una cadena de caracteres. El tamao de la tabla permite especificar la
longitud mxima que puede tener la cadena de caracteres (255 como mximo).
Ejemplo: %MB4:6 representa una tabla de 6 bytes que contiene una cadena
de 6 caracteres como mximo.
l El primer byte de inicio de una tabla debe ser par (no se puede introducir una
tabla de bytes que comience por un byte impar, ej: %MB5:6).
l Las tablas de bytes utilizan la misma zona de memoria que las palabras %MW,
%MD, por lo que existe el riesgo de solapamiento (("Regla de solapamientos" -
Manual de referencia Tomo 1)).
l El trmino cadena de caracteres representa el conjunto de los caracteres
comprendidos entre el principio de la tabla y el primer terminador de cadena
encontrado.
l El carcter NUL (cdigo hexa 00) se denomina Terminador de cadena. Se
simboliza como en el resto del captulo.
l La longitud de una cadena de caracteres viene por lo tanto determinada, bien por
el nmero de caracteres antes del terminador de la cadena, bien por el tamao
de la tabla si no se detecta ningn terminador.
Ejemplos:
La siguiente tabla (de 12 elementos) contiene la cadena de caracteres
ABCDE (de longitud 5):
A B C D E J K L M N O
La siguiente tabla (de 10 elementos) contiene la cadena de caracteres
ABCDEJKLMN (de longitud 10):
A B C D E J K L M N
187
Instrucciones avanzadas
Generalidades Permite transferir una cadena de caracteres a una tabla de bytes de longitud L.
OPERATE
%MB30:12:=mise_en_run
%MB 30 31 32 33 34 35 36 37 38 39 40 41
m i s e _ e n _ r u n
188
Instrucciones avanzadas
Comparaciones alfanumricas
Generalidades Estos operadores permiten comparar dos cadenas de caracteres incluidas en las
tablas de bytes que se han pasado a parmetros. La comparacin se efecta
carcter por carcter.
El resultado es un bit que vale 1 si las dos cadenas cumplen la condicin
establecida por el operador, carcter por carcter; en caso contrario, el bit vale 0.
La tabla de cdigos ASCII (ISO 646) determina el orden de los caracteres. Por
ejemplo, la cadena 'Z' es ms larga que la cadena 'AZ', que a su vez es ms larga
que la cadena 'ABC'.
%M10
OPERATE
%MB20:12<%MB40:12
189
Instrucciones avanzadas
Figura
%MB 20 21 22 23 24 25 26 27 28 29 30 31
a b c d e f g i k w z
%MB 40 41 42 43 44 45 46 47 48 49 50 51
a b c d e f h i k w z
190
Instrucciones avanzadas
Generalidades Estas funciones permiten convertir un valor numrico (o flotante) en una cadena de
caracteres codificada en ASCII o a la inversa.
El resultado de la conversin debe transferirse a un objeto PL7 mediante una
operacin de asignacin: tabla de bytes, palabra simple o de doble longitud,
flotante.
191
Instrucciones avanzadas
Conversin binario-->ASCII
Generalidades Estas funciones permiten convertir un valor numrico (palabra simple o de doble
longitud) en una cadena de caracteres codificada en ASCII.
Cada cifra, as como el signo del valor pasado a parmetro, se codifica en ASCII en
un elemento de la tabla de bytes del resultado.
OPERATE
%MB10:7:=INT_TO_STRING(%MW20)
OPERATE
%MB2:13:=DINT_TO_STRING(%MD30)
192
Instrucciones avanzadas
Figura
%MB 10 11 12 13 14 15 16
_ 0 3 7 8 2
Ejemplo: %MB2:13:=DINT_TO_STRING(%MD30)
con %MD30 = - 234701084
Figura
%MB 2 3 4 5 6 7 8 9 10 11 12 13 14
- 0 0 2 3 4 7 0 1 0 8 4
193
Instrucciones avanzadas
194
Instrucciones avanzadas
Conversin ASCII-->binario
Generalidades Estas funciones permiten convertir en binario una cadena de caracteres que
represente un valor numrico (resultado transferido a una palabra simple o de
longitud doble). Cada uno de los elementos de la tabla pasado a parmetro
representa el cdigo ASCII de un carcter. Los caracteres permitidos son las cifras
y los caracteres '+' y '-'.
OPERATE
%MW13:=STRING_TO_INT(%MB20:7)
%MB 20 21 22 23 24 25 26
- 0 2 3 4 7
195
Instrucciones avanzadas
196
Instrucciones avanzadas
Conversin Flotante-->ASCII
Generalidades Esta funcin permite convertir un valor numrico real contenido en una palabra de
tipo flotante en una cadena de caracteres codificada en ASCII. El resultado se
transfiere a una tabla de 13 bytes + el terminador.
Cada cifra del valor, as como los caracteres '+', '-', '.', 'e' y 'E' se codifican en
ASCII en un elemento de la tabla del resultado.
El signo del valor se encuentra en el primer carcter, la coma (.) en el tercero, el
exponente 'e' en el dcimo, el signo del exponente en el decimoprimero.
OPERATE
%MB20:14:=REAL_TO_STRING(%MF30)
197
Instrucciones avanzadas
198
Instrucciones avanzadas
Conversin ASCII-->Flotante
Generalidades Esta funcin permite convertir en flotante una cadena de caracteres que represente
un valor numrico real (resultado transferido a una palabra de tipo flotante).
Cada uno de los elementos de la tabla pasado a parmetro representa el cdigo
ASCII de un carcter. Los caracteres permitidos son las cifras y los caracteres '+',
'-', '.', 'e' y 'E'. No se utiliza el terminador de cadena para determinar el final de la
misma, lo que significa que los 13 caracteres de la tabla deben ser correctos.
El signo del valor debe encontrarse en el primer carcter, la coma (.) en el tercero,
el exponente 'e' en el dcimo, el signo del exponente en el decimoprimero. Por
ejemplo, el valor 3.12 debe indicarse con la forma '+3.120000e+00'.
OPERATE
%MF18:=STRING_TO_REAL(%MB20:13)
199
Instrucciones avanzadas
200
Instrucciones avanzadas
OPERATE
%MB30:14:=CONCAT(%MB4:6,%MB14:9)
%MB 14 15 16 17 18 19 20 21 22
t e s t a b l e
%MB 30 31 32 33 34 35 36 37 38 39 40 41 42 43
i n c o n t e s t a b l e
201
Instrucciones avanzadas
1RWD
l Si la tabla de resultado es demasiado corta, se trunca y el bit de sistema %S15
se sita en 1. %MB30:10:=CONCAT(%MB4:6, %MB14:9)
%MB 30 31 32 33 34 35 36 37 38 38
i n c o n t e s t ==>%S15=1
%MB 30 31 32 33 34 35 36 37 38 39 40 41 42 43
i n c o n t e s t a b l e
202
Instrucciones avanzadas
Generalidades Elimina un nmero determinado de caracteres (zona de longitud L), a partir de una
rango determinado (posicin del primer carcter que se debe eliminar) en la cadena
definida como parmetro. El resultado es una tabla de bytes que contiene una
cadena de caracteres.
OPERATE
%MB14:9:=DELETE(%MB30:14,%MW2,%MW4)
%MB 14 15 16 17 18 19 20 21 22
i n s t a b l e
203
Instrucciones avanzadas
204
Instrucciones avanzadas
OPERATE
%MB2:14:=INSERT(%MB20:9,%MB30:5,%MW40)
%MB 20 21 22 23 24 25 26 27 28
i n s t a b l e
%MB 30 31 32 33 34 35
c o n t e
%MB 2 3 4 5 6 7 8 9 10 11 12 13 14 15
i n c o n t e s t a b l e
205
Instrucciones avanzadas
1RWD
l El parmetro de posicin se inicia en el valor 1 correspondiente a la primera
posicin de la cadena de caracteres.
l No es posible realizar una insercin al principio de una cadena. Para ello se
debe utilizar la funcin CONCAT.
l Si la tabla es demasiado larga, se completa con caracteres de tipo terminador.
l Palabra que contiene la posicin del carcter que se debe eliminar.
l El bit de sistema %S15 se sita en 1 en los siguientes casos:
l El valor del parmetro de posicin es negativo o igual a 0. En tal caso, se
interpreta como si fuera igual a 0 y la tabla de resultado contendr una
cadena vaca (compuesta de terminadores).
l La tabla de resultado es demasiado corta, por lo que se trunca.
206
Instrucciones avanzadas
OPERATE
%MB2:13:=REPLACE(%MB20:12,%MB30:9,
%MW40,%MW41)
%MB 20 21 22 23 24 25 26 27 28 29 30 31
Chane 1 m i s e _ e n _ r u n
%MB 30 31 32 33 34 35 36 37 38
Chane 2 s t o p r u n
%MB 2 3 4 5 6 7 8 9 10 11 12 13 14
m i s e _ e n _ s t o p
207
Instrucciones avanzadas
1RWD
l El parmetro de posicin se inicia en el valor 1 correspondiente a la primera
posicin de la cadena de caracteres.
l Si la tabla de salida es demasiado larga, la cadena se completa con caracteres
de tipo terminador.
El bit de sistema %S15 se sita en 1 en los siguientes casos:
l Si el valor del parmetro de posicin es negativo o igual a 0. En tal caso, se
interpreta como si fuera igual a 0 y la tabla de resultado contendr una cadena
vaca (compuesta de terminadores).
l Si la posicin pasada a parmetro es superior o igual a la longitud de la cadena
de origen, la tabla del resultado contendr una cadena vaca (compuesta de
terminadores).
l Si la tabla de resultado es demasiado corta, se trunca.
l Palabra que contiene la posicin del carcter que se debe eliminar.
l Si la posicin del primer terminador de la cadena es inferior o igual a la posicin
del primer carcter que se debe sustituir, la tabla de salida es una copia de la
tabla de origen hasta el terminador, que se completa con caracteres
terminadores.
208
Instrucciones avanzadas
OPERATE
%MB14:7:=MID(%MB30:13,%MW2,%MW4)
Rsultat :
%MB 14 15 16 17 18 19 20
s t o p
209
Instrucciones avanzadas
1RWD
l El parmetro de posicin se inicia en el valor 1 correspondiente a la primera
posicin de la cadena de caracteres.
l Si la tabla de salida es demasiado larga, la cadena se completa con caracteres
de tipo terminador.
l Si la longitud pasada a parmetro es superior al tamao de la cadena de origen,
la tabla del resultado contendr esta ltima.
l Si se alcanza el ltimo elemento de la tabla o el terminador de cadena antes de
haber extrado el nmero de caracteres definido por el parmetro de longitud,
la extraccin se detiene en los mismos.
El bit de sistema %S15 se sita en 1 en los siguientes casos:
l Si el valor del parmetro de longitud que se debe extraer es negativo o nulo. En
este caso se interpreta como si fuera igual a 0 y la tabla del resultado contendr
una cadena vaca (compuesta de terminadores).
l Si el valor del parmetro de posicin del principio de la extraccin es nulo,
superior o igual a la longitud de la tabla, o bien superior o igual a la posicin del
primer terminador. En tal caso, la tabla del resultado contendr una cadena
vaca (compuesta de terminadores).
l Si la tabla del resultado es demasiado corta, se trunca.
210
Instrucciones avanzadas
Extraccin de caracteres
OPERATE
%MB10:10:=LEFT(%MB30:13,%MW2)
Rsultat :
%MB 10 11 12 13 14 15 16 17 18 19
m i s e _ e n _
211
Instrucciones avanzadas
1RWD
l Si la tabla de salida es demasiado larga, la cadena del resultado se completa
con caracteres de tipo terminador.
l Si la longitud pasada a parmetro es superior al tamao de la cadena de origen,
la tabla del resultado contendr esta ltima.
El bit de sistema %S15 se sita en 1 en los siguientes casos:
l Si el valor del parmetro de longitud que se debe extraer es negativo o nulo. En
tal caso, la tabla del resultado contendr una cadena vaca (compuesta de
terminadores).
l Si el valor del parmetro de posicin del principio de la extraccin es nulo,
superior o igual a la longitud de la tabla, o bien superior o igual a la posicin del
primer terminador. En tal caso, la tabla del resultado contendr una cadena
vaca (compuesta de terminadores).
l Si la tabla del resultado es demasiado corta, se trunca.
212
Instrucciones avanzadas
OPERATE
%MW2:=EQUAL_STR(%MB18:14,%MB50:14)
Rsultat :
%MB 50 51 52 53 54 55 56 57 58 59 60 61 62 63
a b c d ? f g h
v w x y z
==> MW2:= 5
213
Instrucciones avanzadas
1RWD
l Una longitud o una posicin negativa se interpreta como si fuera igual a 0.
l Las letras en maysculas son diferentes de las letras en minsculas.
214
Instrucciones avanzadas
OPERATE
%MW2:=FIND(%MB18:14,%MB50:4)
%MB 50 51 52 53
f g h
==> MW2:= 6 Indica que el principio de la cadena buscada se sita a partir del sexto
carcter.
215
Instrucciones avanzadas
216
Instrucciones avanzadas
OPERATE
%MW2:=LEN(%MB20:14)
==> MW2:= 7
217
Instrucciones avanzadas
218
Instrucciones avanzadas
Presentacin
Objeto de este Este apartado describe las instrucciones de gestin del tiempo: fechas, horas,
apartado duraciones del lenguaje PL7
219
Instrucciones avanzadas
Generalidades Los parmetros de Fecha, Hora y Duracin que utilizan estas instrucciones
corresponden a los tipos de formato definidos por la norma IEC1131-3.
Formato Fecha Este formato permite codificar el ao, el mes y el da. Corresponde al formato DATE
(tipo DATE) de la norma.
El valor tiene el formato: yyyy-mm-dd
31 16 8 0 Ao: 4 dgitos
Mes: 2 dgitos
Ao Mes Da
Da: 2 dgitos
220
Instrucciones avanzadas
Formato Hora del Este formato permite codificar la hora, los minutos y los segundos. Corresponde al
da (tipo TOD) formato TIME_OF_DAY de la norma.
El valor tiene el formato: hh:mm:ss
Formato Fecha y Este formato permite codificar el ao, el mes, el da, la hora, los minutos y los
hora (tipo DT) segundos. Corresponde al formato DATE_AND_TIME de la norma.
El valor tiene el formato: yyyy-mm-dd-hh:mm:ss
221
Instrucciones avanzadas
Formato Hora, Este formato, utilizado exclusivamente por la funcin TRANS_TIME, permite
Minuto, Segundo codificar las horas, los minutos y los segundos.
(tipo HMS) El valor tiene el formato: hh:mm:ss
222
Instrucciones avanzadas
Bit de sistema El bit de sistema %S15 se pone a 1 al escribir una cadena en una tabla cuando
%S15 aquella es ms larga que el tamao de esta ltima.
223
Instrucciones avanzadas
Funcin de reloj-calendario
Caractersticas
de los
Salida OUT Bit que contiene el resultado de las comparaciones
parmetros
realizadas por la funcin de reloj-calendario: a 1
durante los periodos definidos por los parmetros.
Fecha de inicio DBEG Palabra que codifica la fecha de inicio del periodo
(mes-da) en BCD (valores lmite: de 01-01 a 12-31)
Fecha de DEND Palabra que codifica la fecha de finalizacin del
finalizacin periodo (mes-da) en BCD (valores lmite: de 01-01
a 12-31)
Da de la semana WEEK Palabra que codifica los das de la semana tomados
en cuenta en el periodo definido por los parmetros
DBEG y DEND.
Los 7 bits menos significativos representan los siete
das de la semana: bit 6 = lunes, bit 5 = martes,... bit
0 = domingo.
Hora de inicio HBEG Palabra doble que codifica la hora de inicio del
periodo del da (horas-minutos-segundos) en BCD
de formato de hora del da (tipo: TOD). Valores
lmite: 00:00:00, 23:59:59
Hora de finalizacin HEND Palabra doble que codifica la hora de finalizacin del
periodo del da (horas-minutos-segundos) en BCD
de formato de hora del da (tipo: TOD). Valores
lmite: 00:00:00, 23:59:59
224
Instrucciones avanzadas
OPERATE
SCHEDULE(%KW0,%KW1,%KW2,%KD3,%KD5,%M0)
225
Instrucciones avanzadas
1RWD
l Los dos parmetros DBEG y DEND establecen un intervalo de das durante el
ao; este intervalo puede ser de hasta dos aos naturales. Ejemplo: del 10 de
octubre al 7 de abril. El 29 de febrero puede utilizarse en este periodo, aunque
se ignorar en los aos no bisiestos.
l Los dos parmetros HBEG y HEND establecen un intervalo horario durante el
da; este intervalo puede ser de hasta dos das. Ejemplo: de 22 h a 6 h 10 min
20 s.
l Si una de las fechas DBEG y DEND o una de las horas HBEG y HEND no es
correcta, es decir, no corresponde a una fecha o una hora real, la salida OUT
se pondr a 0 y el bit %S17 se pondr a 1.
l Si el autmata de destino no posee un reloj interno (como es el caso de TSX37-
10), la salida se pondr a 0 y el bit de sistema %S17 se pondr a 1.
l Es posible reducir la carga del procesador del autmata cuando la precisin no
resulta esencial durante la modulacin de la llamada de la funcin SCHEDULE
por parte del bit de sistema %S6 o %S7.
l Para un intervalo horario programado de hasta dos das, por ejemplo, de 15 h
(da 1) a 8 h (da 2), las condiciones se validarn de nuevo de 15 h a 24 h el
segundo da. Si nicamente desea efectuar este intervalo horario una vez a la
semana, se recomienda utilizar dos veces la funcin SCHEDULE con un
intervalo horario de 15 h a 24 h (da 1) y de 0 h a 8 h (da 2).
226
Instrucciones avanzadas
Generalidades La funcin R_NTPC permite recuperar la fecha y hora en un servidor NTP conforme
a dos formatos:
l un formato de visualizacin,
l un formato para realizar clculos.
1RWDEsta funcin requiere la conexin a una red Ethernet que permita el acceso
a un servidor NTP.
%M7 OPERATE
R_NTPC(%MW0:4,%MD4,%MW6, %MW7)
227
Instrucciones avanzadas
228
Instrucciones avanzadas
Generalidades Lectura de la fecha del sistema (Real Time Clock) y transferencia al objeto dado en
parmetro en formato Fecha y hora (DT).
%M6 OPERATE
RRTC(%MW2:4)
229
Instrucciones avanzadas
Generalidades Actualizacin de la fecha del sistema (Real Time Clock) y transferencia al objeto
dado en parmetro en formato Fecha y hora (DT).
%M7 OPERATE
%MW2:=16#4300
OPERATE
%MW3:=16#1732
OPERATE
%MW4:=16#1124
OPERATE
%MW5:=16#1995
OPERATE
WRTC(%MW2:4)
230
Instrucciones avanzadas
Ejemplos Ejemplo: La nueva fecha se carga en una tabla de palabras internas de longitud 4
%MW2:4 y a continuacin se enva al sistema a travs de la funcin WRTC.
231
Instrucciones avanzadas
Generalidades Lectura de la fecha de la ltima parada del autmata y del cdigo que especifica la
causa de la misma (en la 5 palabra, equivale a %SW58 (Vase Descripcin de las
palabras de sistema %SW48 a %SW59, p. 332))
%M7 OPERATE
PTC(%MW4:5)
232
Instrucciones avanzadas
Generalidades Esta funcin proporciona como resultado el da actual de la semana con formato de
una cifra de 1 a 7 transferida a una palabra (1 = Lunes, 2 = Martes,3 = Mircoles,
4 = Jueves, 5 = Viernes, 6 = Sbado, 7 = Domingo).
%M7 OPERATE
%MW5:=DAY_OF_WEEK()
233
Instrucciones avanzadas
234
Instrucciones avanzadas
Generalidades Suma o resta de una duracin (en dcimas de segundo) (In2) a una fecha de origen
(In1). El resultado es una fecha nueva que se transfiere a una tabla de 4 palabras.
ADD_DT () = Suma de una duracin
SUB_DT () = Resta de una duracin
%M7 OPERATE
RRTC(%MW2:4)
OPERATE
%MD8:=906
OPERATE
%MW2:4:=ADD_DT(%MW2:4,%MD8)
OPERATE
WRTC(%MW2:4)
235
Instrucciones avanzadas
1RWD
l El principio del redondeo se aplica al parmetro "duracin" (expresado en
dcimas de segundo) para poder realizar la suma o la resta a la fecha (precisin
al segundo).
l sssssssss.0 a sssssssss.4 redondeado a sssssssss.0
l sssssssss.5 a sssssssss.9 redondeado a sssssssss.0 +1.0
l Es necesario prever la gestin de los aos bisiestos en la aplicacin.
l Si el resultado de la operacin est fuera del intervalo de valores permitidos, el
bit de sistema %S17 se sita en 1 y el valor del resultado es igual al lmite
mnimo (para SUB_DT) o permanece bloqueado en el mximo (para ADD_DT).
l Si el parmetro de entrada "fecha de origen" no se puede interpretar o es
incoherente con el formato DT (DATE_AND_TIME), el bit de sistema %S17 se
sita en 1 y el valor del resultado es igual a 0001-01-01-00:00:00.
236
Instrucciones avanzadas
Generalidades Suma o resta de una duracin a una hora del da El resultado es una hora del da
nueva que se transfiere a una palabra doble.
ADD_TOD () = Suma de una duracin
SUB_TOD () = Resta de una duracin
%M7 OPERATE
%MD8:=906
OPERATE
%MD2:=ADD_TOD(%MD2,%MD8)
237
Instrucciones avanzadas
1RWD
l El principio del redondeo se aplica al parmetro "duracin" (expresado en
dcimas de segundo) para poder realizar la suma o la resta a la fecha (precisin
al segundo).
l sssssssss.0 a sssssssss.4 redondeado a sssssssss.0
l sssssssss.5 a sssssssss.9 redondeado a sssssssss.0 +1.0
l Se produce un cambio de da si el resultado de la operacin est fuera del
intervalo de valores permitidos. En tal caso, el bit de sistema %S17 se sita en
1 y el valor del resultado se puede interpretar con un mdulo 24:00:00.
l Si el parmetro de entrada "hora del da" no se puede interpretar en formato
TOD, el bit de sistema %S17 se sita en 1 y el resultado es igual a 00:00:00.
238
Instrucciones avanzadas
Generalidades Calcula la diferencia de tiempo entre dos fechas. El resultado, en valor absoluto, se
transfiere a una palabra doble.
%M7 OPERATE
%MD10:=DELTA_D(%MD2,%MD4)
Ejemplos %MD10:=DELTA_D(%MD2,%MD4)
%MD2:= Fecha nmero1 (ej: 1994-05-01)
%MD4:= Fecha nmero2 (ej: 1994-04-05)
==> %MD10:= 22464000 (==> diferencia = 26 das)
239
Instrucciones avanzadas
1RWD
l Se produce un rebasamiento si el resultado supera el valor mximo permitido
para una duracin (TIME). En ese caso, el resultado es igual a 0 y el bit de
sistema %S18 se sita en 1.
l Si alguno de los parmetros de entrada no se puede interpretar y es
incoherente con el formato DATE, el bit de sistema %S17 se sita en 1 y el
resultado es igual a 0.
240
Instrucciones avanzadas
Generalidades Calcula la diferencia de tiempo entre dos fechas. El resultado, en valor absoluto, se
transfiere a una palabra doble.
OPERATE
%MD10:=DELTA_DT(%MW2:4,%MW6:4)
Ejemplos %MD10:=DELTA_DT(%MW2:4,%MW6:4)
%MW2:4:= Fecha nmero1 (ej: 1994-05-01-12:00:00)
%MW6:4:= Fecha nmero2 (ej: 1994-05-01-12-01-30)
==> %MD10:= 900 (==> diferencia = 1 minuto y 30 segundos)
241
Instrucciones avanzadas
1RWD
l Se produce un rebasamiento si el resultado supera el valor mximo permitido
para una duracin (TIME). En ese caso, el resultado es igual a 0 y el bit de
sistema %S18 se sita en 1.
l Si alguno de los parmetros de entrada no se puede interpretar y es
incoherente con el formato DT, el bit de sistema %S17 se sita en 1 y el
resultado es igual a 0.
242
Instrucciones avanzadas
Generalidades Calcula la diferencia de tiempo entre dos horas del da. El resultado se transfiere a
una palabra doble en valor absoluto que proporciona una duracin.
OPERATE
%MD10:=DELTA_TOD(%MD2,%MD4)
Ejemplos %MD10:=DELTA_TOD(%MD2,%MD4)
%MD2:= Hora1 (ej: 02:30:00)
%MD4:= Hora2 (ej: 02 41 00)
==> %MD10:= 6600 (==> diferencia = 11 minutos)
243
Instrucciones avanzadas
244
Instrucciones avanzadas
Generalidades Esta instruccin convierte una fecha en una cadena de caracteres (sin hora) con
formato: YYYY-MM-DD (10 caracteres). Dicha cadena termina con el carcter
terminador . Cada uno de los caracteres Y,M,D simboliza una cifra.
OPERATE
%MB2:11=DATE_TO_STRING(%MD40)
Ejemplos %MB2:11=DATE_TO_STRING(%MD40)
%MD40:= Fecha (ej: 1998-12-27)
%MB 2 3 4 5 6 7 8 9 10 11 12
1 9 9 8 - 1 2 - 2 7
245
Instrucciones avanzadas
1RWD
l Si el parmetro de entrada (fecha) no se puede interpretar y es incoherente con
el formato DATE, el bit de sistema %S17 se sita en 1 y la funcin devuelve la
cadena **** - ** - ** .
l Si la cadena de salida es demasiado corta, se trunca y el bit de sistema %S15
se sita en 1.
%MB2:8 := DATE_TO_STRING(%MD40)
==> %MB 2 3 4 5 6 7 8 9
1 9 9 8 - 1 2 - ==> %S15 = 1
==> %MB 2 3 4 5 6 7 8 9 10 11 12 13
1 9 9 8 - 1 2 - 2 7
246
Instrucciones avanzadas
Generalidades Esta instruccin convierte una fecha completa (con hora) en una cadena de
caracteres con formato: YYYY-MM-DD-HH:MM:SS (19 caracteres). Dicha cadena
termina con el carcter terminador . Cada uno de los caracteres Y,M,D,H,M,S
simboliza una cifra.
OPERATE
%MB2:20=DT_TO_STRING(%MW50:4)
Ejemplos %MB2:20=DT_TO_STRING(%MW50:4)
%M50:4:= Fecha y hora (tipo DT) (ej: 1998-12-27-23:14:37)
==>
%MB 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
1 9 9 8 - 1 2 - 2 7 - 2 3 : 1 4 : 3 7
247
Instrucciones avanzadas
1RWD
l Si el parmetro de entrada (fecha) no se puede interpretar y es incoherente con
el formato DT (DATE_AND_TIME), el bit de sistema %S17 se sita en 1 y la
funcin devuelve la cadena ****-**-**-**:**:**.
l Si la cadena de salida es demasiado corta, se trunca y el bit de sistema %S15
se sita en 1.
%MB2:8:=DT_TO_STRING(%MW50:4)
==> %MB 2 3 4 5 6 7 8 9
1 9 9 8 - 1 2 - ==> %S15 = 1
248
Instrucciones avanzadas
Generalidades Esta instruccin convierte una duracin (con formato TIME) en una cadena de
caracteres. El formato del resultado se descompone en horas, minutos, segundos
y dcimas en 15 caracteres: HHHHHH:MM:SS.D. Dicha cadena termina con el
carcter terminador . Cada uno de los caracteres H,M,S,D simboliza una cifra.
La duracin mxima es de 119304 horas, 38 minutos, 49 segundos y 5 dcimas.
OPERATE
%MB2:15=TIME_TO_STRING(%MD40)
Ejemplos %MB2:15=TIME_TO_STRING(%MD40)
%MD40:= 27556330.3 (formato TIME)
%MB 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
0 0 7 6 5 4 : 3 2 : 1 0 . 3
249
Instrucciones avanzadas
1RWD
l Si la cadena de salida es demasiado corta, se trunca y el bit de sistema %S15
se sita en 1.
%MB2:8:=TIME_TO_STRING(%MD40)
==> %MB 2 3 4 5 6 7 8 9
0 0 7 6 5 4 : 3 ==> %S15 = 1
250
Instrucciones avanzadas
Generalidades Esta instruccin convierte una hora del da (con formato TOD - TIME_OF_DAY) en
una cadena de caracteres con formato HH:MM:SS en 8 caracteres ms un carcter
terminador . Cada uno de los caracteres H,M,S simboliza una cifra.
OPERATE
%MB2:9=TOD_TO_STRING(%MD40)
Ejemplos %MB2:9=TOD_TO_STRING(%MD40)
%MD40:= 23:12:27 (formato TOD)
%MB 2 3 4 5 6 7 8 9 10
2 3 : 1 2 : 2 7
251
Instrucciones avanzadas
1RWD
l Si la cadena de salida es demasiado corta, se trunca y el bit de sistema %S15
se sita en 1.
0% 72'B72B675,1*0' (con %MD40 := 23:12:27)
==> %MB 2 3 4 5 6 7 8 9
2 3 : 1 2 : 2 7 ==> %S15 = 1
252
Instrucciones avanzadas
Generalidades Esta instruccin convierte una duracin (con formato TIME) en nmero de horas-
minutos-segundos, HHHH:MM:SS. Valores lmite [0000:00:00 , 9999:59:59].
OPERATE
%MD100=TRANS_TIME(%MD2)
Ejemplos %MD100=TRANS_TIME(%MD2)
con %MD2:= 36324873 dcimas de segundo
31 16 8 0
==> %MD2
2397 54 47
253
Instrucciones avanzadas
1RWD
l El principio del redondeo se aplica al parmetro "duracin" (expresado en
dcimas de segundo) para poder realizar la conversin (precisin al segundo).
l sssssssss.0 a sssssssss.4 redondeado a sssssssss.0
l sssssssss.5 a sssssssss.9 redondeado a sssssssss.0 + 1.0
l La duracin mxima convertida puede alcanzar 10000 horas. Esto significa que
si el valor de la duracin (TIME) pasada en parmetro es superior o igual a
360000000, no se puede convertir. El bit de sistema %S15 se sita en 1 y el
resultado es igual a 0000:00:00.
254
Instrucciones avanzadas
Presentacin
Objeto de este En este apartado se describen las instrucciones de tablas de bits del lenguaje PL7
apartado
255
Instrucciones avanzadas
Generalidades Esta funcin efecta la copia bit a bit de una tabla de bits en otra tabla de bits.
OPERATE
%M10:5=COPY_BIT(%M20:5)
1RWD
l Las tablas pueden ser de distinto tamao. En tal caso, la tabla del resultado
contiene el resultado de la funcin ejecutada en una longitud equivalente al
tamao ms pequeo de las tablas, y el resto de la tabla del resultado no se
modifica.
l Cuidado con los solapamientos entre la tabla de entrada y la tabla del resultado.
256
Instrucciones avanzadas
Generalidades Las funciones asociadas permiten llevar a cabo una operacin lgica bit a bit entre
dos tablas de bits y guarda el resultado en otra tabla de bits.
l AND_ARX: Y lgico (bit a bit).
l OR_ARX: O lgico (bit a bit)
l XOR_ARX: O exclusivo (bit a bit)
l NOT_ARX: complemento lgico (bit a bit) de una tabla
OPERATE
%M10:7=AND_ARX(%M20:7,%M30:7)
OPERATE
%M50:10=NOT_ARX(%M60:10)
LD TRUE
>0 127B$5;0@
257
Instrucciones avanzadas
1RWD
l Las tablas pueden ser de distinto tamao. En tal caso, la tabla del resultado
contiene el resultado de la funcin ejecutada en una longitud equivalente al
tamao ms pequeo de las tablas, y el resto de la tabla del resultado no se
modifica.
l Posibilidad de solapamiento entre la tabla de entrada y la tabla del resultado.
258
Instrucciones avanzadas
Generalidades La funcin copia los bits de una tabla o parte de una tabla de bits en una tabla de
palabras (o palabras dobles).
En la tabla de bits, la extraccin se efecta a partir de un determinado rango (brow)
para un nmero de bits (nbit).
En la tabla de palabras (o palabras dobles), la copia se realiza a partir del rango
(wrow o drow) comenzando por la palabra menos significativa.
l BIT_W: Copia de una tabla de bits a una tabla de palabras.
l BIT_D: Copia de una tabla de bits a una tabla de palabras dobles.
OPERATE
%MD10:7=BIT_W(%M20:29,3,22,2)
OPERATE
%MD10:4=(%M20:29,3,22,1)
LD TRUE
>0' 0@
259
Instrucciones avanzadas
Ejemplo %MD10:7=BIT_W(%M20:29,3,22,2) ;
%M20:29
posicin 0
%MW10:7 posicin 3 (brow)
bit 15 bit 0
posicin 0
posicin 2
Nmero de bits (nbit)
16 + 6
260
Instrucciones avanzadas
1RWD
l Si el nmero de bits que se va a tratar es superior al nmero de bits restantes
en la tabla a partir del rango (brow), la funcin ejecuta la copia hasta el ltimo
elemento de la tabla.
l Si el nmero de bits que se va a copiar es superior al nmero de bits que
componen las palabras restantes de la tabla del resultado, la funcin detiene la
copia en el ltimo elemento de la tabla de palabras (o palabras dobles).
l Un valor negativo en los parmetros brow, nbit, wrow o drow se interpretar
como nulo.
261
Instrucciones avanzadas
Generalidades La funcin copia los bits de una tabla o parte de una tabla de palabras (o palabras
dobles) en una tabla de bits.
En la tabla de palabras (o palabras dobles), la extraccin se efecta a partir de la
palabra de rango (wrow o drow) para un nmero de palabras (nwd).
En la tabla de bits, la copia se realiza a partir del rango (brow) comenzando por el
bit de peso menos significativo de cada palabra.
l W_BIT : Copia de una tabla de palabras en una tabla de bits.
l D_BIT : Copia de una tabla de palabras dobles en una tabla de bits.
OPERATE
%M20:36:=W_BIT(%MW10:7,2,2,3)
OPERATE
%M20:36:=D_BIT(%MD10:4,1,1,3)
LD TRUE
>0 'B%,70'@
262
Instrucciones avanzadas
Ejemplo %M20:36:=W_BIT(%MW10:7,2,2,3) ;
%M20:36
posicin 0
%MW10:7 posicin 3 (brow) posici
bit 15 bit 0
posicin 0
(wrow) posicin 0
263
Instrucciones avanzadas
1RWD
l Si el nmero de bits que se va a tratar es superior al nmero de bits restantes
en la tabla a partir del rango (wrow), la funcin ejecuta la copia hasta el ltimo
elemento de la tabla.
l Si el nmero de bits que se va a copiar es superior al nmero de bits que
componen las palabras restantes de la tabla del resultado, la funcin detiene la
copia en el ltimo elemento de la tabla de palabras (o palabras dobles).
l Si el nmero de bits que se va a copiar es superior al nmero de bits restantes
en la tabla del resultado, la funcin detiene la copia en el ltimo elemento de la
tabla.
l Un valor negativo en los parmetros brow, nbit, wrow o drow se interpretar
como nulo.
264
Instrucciones avanzadas
Presentacin
Objeto de este Este apartado describe las funciones "Orphe": desplazamientos, contador del
apartado lenguaje PL7
265
Instrucciones avanzadas
266
Instrucciones avanzadas
OPERATE
WSHL_RBIT(%MW20,%MW30,%MW21,%MW10)
OPERATE
WSHRZ_C(%MW20,%MW30,%MW21,%MW10)
OPERATE
DSHR_RBIT(%MD30,%MW40,%MD20,%MD10)
LD TRUE
>:6+5=B&0:0:0:0:@
LD TRUE
>'6+5B5%,70'0:0'0'@
:6+5=B&0:0:0:0:;
'6+5B5%,70'0:0'0';
267
Instrucciones avanzadas
result = %MW21
1111 0110 1000 0000
Sustituir los bits por cero
result = %MW21
0000 1000 0000 1111
Sustituir los bits por cero
result = %MD20
conservacin del signo 1 111 11 10 0000 0011 PF
268
Instrucciones avanzadas
269
Instrucciones avanzadas
OPERATE
SCOUNT(%M9,%MW10,%M11,%M12,%MW11,
%MW12,%M16,%M10,%MW15,%MW20)
270
Instrucciones avanzadas
Ejemplos SCOUNT(%M9,%MW10,%M11,%M12,%MW11,%MW12,%M16,%M10,%MW15,%MW20
)
con %MW10 (pv) = 5, %MW11 (mn) = 0, %MW12 (mx) = 7
en:%M9
cd:%M12
mcd:%MW20:X1
cu:%M11
mcu:%MW20:X0
Qmax:%M10
Qmin:%M16
cv=%MW15 5 4 5 6 5 6 7 5
271
Instrucciones avanzadas
1RWD
l Si (en) = 0, la funcin ya no se valida y en cada acceso se obtiene:
Qmn = Qmx = 0
mcu = mcd = 0 cv = pv
l Si mx > mn, entonces:
cv >= mx ---> Qmx = 1 y Qmn = 0
mn < cv < mx ---> Qmx = Qmn = 0
cv <= mn ---> Qmx = 0 y Qmn = 1
l Si mx < mn, entonces:
mx <= cv <= mn ---> Qmx = 1 y Qmn = 0
cv < mx ---> Qmx = 0 y Qmn = 1
cv > mn ---> Qmx = 1 y Qmn = 0
l Si mx = mn, entonces:
cv < mn y mx ---> Qmx = 0 y Qmn = 1
cv >= mn y mx ---> Qmx = 1 y Qmn = 0
l La modificacin del parmetro (pv) con (en) en estado 1 no tiene ninguna
incidencia sobre el funcionamiento.
l Un valor negativo para los parmetros (pv) y (mn) se interpreta como un valor
nulo.
l Un valor inferior a 1 para el parmetro (mx) se interpreta como igual a 1.
272
Instrucciones avanzadas
Desplazamientos circulares
%M0
%MW0:=ROLW(%MF10,%MW5)
%I3.2
%MD8:=RORD(%MD50,%MW5)
LD %I3.2
>0' 525'0'0:@
273
Instrucciones avanzadas
274
Instrucciones avanzadas
Presentacin
Objeto de este En este apartado se describen las funciones de temporizacin del lenguaje PL7
apartado
275
Instrucciones avanzadas
Funciones de temporizacin
276
Instrucciones avanzadas
Generalidades Esta funcin permite gestionar retardos en la conexin, que se pueden programar.
%I1.2 OPERATE
FTON(%I3.0,1000,%Q4.0,%MW2,%MD8)
277
Instrucciones avanzadas
278
Instrucciones avanzadas
279
Instrucciones avanzadas
%I1.2 OPERATE
FTOF(%I3.0,1000,%Q4.0,%MW2,%MD8)
280
Instrucciones avanzadas
281
Instrucciones avanzadas
Generalidades Esta funcin permite elaborar un impulso de duracin precisa, que se puede
programar.
%I1.2 OPERATE
FTP(%I3.0,1000,%Q4.0,%MW2,%MD8)
282
Instrucciones avanzadas
283
Instrucciones avanzadas
Generalidades Esta funcin permite generar una seal rectangular peridica de la que se puede
hacer variar el ancho de impulso a 1 y el impulso a 0 mediante programa a travs
de 2 temporizadores:
l TON: temporizacin en la subida (para el impulso en 1).
l TOFF: temporizacin en la cada (para el impulso en 0).
OPERATE
FPULSOR(%I3.0,500,200,%Q4.0,%MW2,%MD8)
284
Instrucciones avanzadas
285
Instrucciones avanzadas
286
Instrucciones avanzadas
287
Instrucciones avanzadas
Presentacin
Objeto de este En este apartado se describen las funciones de archivado de datos del lenguaje
apartado PL7
288
Instrucciones avanzadas
Presentacin Estas funciones permiten archivar los datos por programa en una zona dedicada de
las tarjetas de memoria de la aplicacin.
289
Instrucciones avanzadas
290
Instrucciones avanzadas
100 1500
100
100
SET_PCM_EXT
100 1529
En este ejemplo:
l SLOT = %MW1 , %MW1 que contiene el valor 1
l DEST = %MD2 , %MD2 que contiene el valor 1500
l NUM = %MW5, %MW5 que contiene el valor 30
l VAL = %MW10, %MW10 que contiene el valor 100
291
Instrucciones avanzadas
%I1.3
3 SET_PCM_EXT(%MW1,%MD2,%MW5,%MW10,%MW0)
292
Instrucciones avanzadas
Parmetros:
Tipo SLOT DEST NUM VAL CR
Palabras indexables %MW, Val - %MW, Val %MW, Val %MW
inm. inm. inm.
Palabras no - - - - %QW,%SW,
indexables %NW
Palabras dobles - %MD,Val inm. - - -
indexables
Palabras dobles no - %QD,%SD - - -
indexables
293
Instrucciones avanzadas
100 1500
100
100
SET_PCMCIA
100 1529
En este ejemplo:
l DEST = %MD0 , %MD0 que contiene el valor 1500
l NUM = %MW5, %MW5 que contiene el valor 30
l VAL = %MW10, %MW10 que contiene el valor 100
294
Instrucciones avanzadas
%I1.3
3 SET_PCMCIA(%MD0,%MW5,%MW10,%MW2)
295
Instrucciones avanzadas
Parmetros:
Tipo DEST NUM VAL CR
Palabras indexables - %MW,Val inm. %MW,Val inm. %MW
Palabras no - - - %QW,%SW,
indexables %NW
Palabras dobles %MD,Val inm. - - -
indexables
Palabras dobles no %QD,%SD - - -
indexables
296
Instrucciones avanzadas
Ejemplo Ilustracin:
Memoria RAM del autmata Tarjeta de memoria de la aplicac
%MW40
1500
%MW69
WRITE_PCM_EXT
1529
En este ejemplo:
l SLOT = %MW1, %MW1 que contiene el valor 1
l DEST = %MD2, %MD2 que contiene el valor 1500
l NUM = %MW5, %MW5 que contiene el valor 30
l EMIS = %MW20, %MW20 que contiene el valor 40
297
Instrucciones avanzadas
%I1.3
3 WRITE_PCM_EXT(%MW1,%MD2,%MW5,%MW20,%MW0)
298
Instrucciones avanzadas
Parmetros:
Tipo SLOT DEST NUM EMIS CR
Palabras indexables %MW, Val - %MW, Val %MW, Val %MW
inm. inm. inm.
Palabras no - - - - %QW,%SW,
indexables %NW
Palabras dobles - %MD,Val inm. - - -
indexables
Palabras dobles no - %QD,%SD - - -
indexables
299
Instrucciones avanzadas
Ejemplo Ilustracin:
Memoria RAM del autmata Tarjeta de memoria de la aplicac
%MW40
1500
%MW69
WRITE_PCMCIA
1529
En este ejemplo:
l DEST = %MD0, %MD0 que contiene el valor 1500
l NUM = %MW5, %MW5 que contiene el valor 30
l EMIS = %MW20, %MW20 que contiene el valor 40
300
Instrucciones avanzadas
%I1.3
3 WRITE_PCMCIA(%MD0,%MW5,%MW20,%MW2)
301
Instrucciones avanzadas
Parmetros:
Tipo DEST NUM EMIS CR
Palabras indexables - %MW,Val inm. %MW,Val inm. %MW
Palabras no - - - %QW,%SW,
indexables %NW
Palabras dobles %MD,Val inm. - - -
indexables
Palabras dobles no %QD,%SD - - -
indexables
302
Instrucciones avanzadas
Ejemplo Ilustracin:
Memoria RAM del autmata Tarjeta de memoria de la aplica
%MW40
1500
%MW69
READ_PCM_EXT
1529
En este ejemplo:
l SLOT = %MW1, %MW1 que contiene el valor 1
l SRC = %MD2, %MD2 que contiene el valor 1500
l NUM = %MW5, %MW5 que contiene el valor 30
l RCPT = %MW20, %MW20 que contiene el valor 40
303
Instrucciones avanzadas
%I1.4
3 READ_PCM_EXT(%MW1,%MD2,%MW5,%MW20,%MW0)
304
Instrucciones avanzadas
Parmetros:
Tipo SLOT SRC NUM RCPT CR
Palabras indexables %MW, Val - %MW, Val %MW, Val %MW
inm. inm. inm.
Palabras no - - - - %QW,%SW,
indexables %NW
Palabras dobles - %MD,Val inm. - - -
indexables
Palabras dobles no - %QD,%SD - - -
indexables
305
Instrucciones avanzadas
Ejemplo Ilustracin:
Memoria RAM del autmata Tarjeta de memoria de la aplicac
%MW40
1500
%MW69
READ_PCMCIA
1529
En este ejemplo:
l SRC = %MD0, %MD0 que contiene el valor 1500
l NUM = %MW5, %MW5 que contiene el valor 30
l RCPT = %MW20, %MW20 que contiene el valor 40
306
Instrucciones avanzadas
%I1.4
3 READ_PCMCIA(%MD0,%MW5,%MW20,%MW2)
307
Instrucciones avanzadas
Parmetros:
Tipo SRC NUM RCPT CR
Palabras indexables - %MW,Val inm. %MW,Val inm. %MW
Palabras no - - - %QW,%SW,
indexables %NW
Palabras dobles %MD,Val inm. - - -
indexables
Palabras dobles no %QD,%SD - - -
indexables
308
Instrucciones avanzadas
Generalidades Esta funcin reinicia todos los tiempos de actividades del tratamiento secuencial
"Chart" o de una macroetapa.
Esta funcin es vlida en el autmata Premium/Atrium (versin de programa
superior o igual a V3.0).
%MW0:=RESET_XIT(%M1,-1)
309
Instrucciones avanzadas
Sintaxis Operador:
Sintaxis
Result:=RESET_XIT(En,Num)
Operandos:
Tipo Resultado Condicin de validacin Nmero de mdulo
(En) Grafcet (Nm)
Bits - %M -
Palabras %MW - %MW, %KW,
Valor inmediato
310
Objetos de sistema
3
Presentacin
Contenido En este captulo se describen todos los bits de sistema y palabras de sistema del
lenguaje PL7
311
Objetos de sistema
Presentacin
Objeto de este Este captulo describe los bits de sistema del lenguaje PL7.
apartado
312
Objetos de sistema
Generalidades Los autmatas TSX 37 y TSX 57 disponen de bits de sistema %Si que indican los
estados del autmata o que permiten actuar sobre el funcionamiento de ste.
Dichos bits pueden probarse en el programa del usuario con el fin de detectar
cualquier suceso de funcionamiento que conlleve un procedimiento de tratamiento
particular. Algunos de ellos deben volver a su estado inicial o normal por programa.
No obstante, los bits de sistema que vuelven a su estado inicial o normal a travs
del sistema, no deben hacerlo a travs del programa ni del terminal.
313
Objetos de sistema
5ms 5ms
314
Objetos de sistema
315
Objetos de sistema
316
Objetos de sistema
317
Objetos de sistema
318
Objetos de sistema
319
Objetos de sistema
320
Objetos de sistema
321
Objetos de sistema
322
Objetos de sistema
323
Objetos de sistema
324
Objetos de sistema
325
Objetos de sistema
Presentacin
Objeto de este Este apartado describe las palabras de sistema del lenguaje PL7.
apartado
326
Objetos de sistema
327
Objetos de sistema
$9,62
5HODWLYRDODVSDODEUDVGHVLVWHPD6:\6:
Atencin: las salidas de los mdulos conectados al bus X pasan
automticamente al modo de retorno, las salidas de los equipos
conectados al bus FIPIO se mantienen en el estado que precede a la
puesta en 1 del bit.
6LQRVHUHVSHWDQHVWDVSUHFDXFLRQHVSXHGHQSURGXFLUVHJUDYHV
OHVLRQHVRGDxRVPDWHULDOHV
328
Objetos de sistema
329
Objetos de sistema
330
Objetos de sistema
331
Objetos de sistema
332
Objetos de sistema
bits + -
0 8 Da de la semana
1 9 Segundos
2 10 Minutos
3 11 Horas
4 12 Das
5 13 Meses
6 14 Aos
7 15 Siglos
333
Objetos de sistema
334
Objetos de sistema
335
Objetos de sistema
336
Objetos de sistema
337
Objetos de sistema
338
Objetos de sistema
339
Objetos de sistema
%SW68 Base de tiempo Estas palabras contienen una base de tiempo utilizada por los Sistema
%SW69 utilizada por los EF EF Tempo. Se transfiere desde el autmata normal hacia el
Tempo. autmata de emergencia para la actualizacin y la
sincronizacin.
340
Objetos de sistema
341
Objetos de sistema
342
Objetos de sistema
343
Objetos de sistema
%SW108 Contador de vas Contabiliza las vas forzadas a 0 o a 1 en la aplicacin. Las Sistema
forzadas vas se actualizan mediante forzado o cancelacin de
forzado.
%SW109 Contador de vas Contabiliza las vas analgicas forzadas a 0. Sistema
analgicas forzadas
344
Objetos de sistema
345
Objetos de sistema
346
Objetos de sistema
347
Objetos de sistema
348
Objetos de sistema
$9,62
5HODWLYRDODVSDODEUDV6:\6:
La modificacin de estas palabras de sistema puede implicar la parada
de la estacin de autmata.
6LQRVHUHVSHWDQHVWDVSUHFDXFLRQHVSXHGHQSURGXFLUVHJUDYHV
OHVLRQHVRGDxRVPDWHULDOHV
349
Objetos de sistema
350
Objetos de sistema
351
Objetos de sistema
352
Objetos de sistema
353
Objetos de sistema
354
QGLFH
%
$&
Symbols %S4, 314
%S40, 320
, 128 %S49, 320
-, 132, 162 %S5, 314
%Ci, 43, 45, 47 %S50, 320
%DRi, 102, 104, 106 %S51, 320
%MNi, 90, 91, 92 %S59, 321
%Ri, 95, 97, 98, 99
%S6, 314
%S0, 314 %S60, 322
%S1, 314 %S66, 322
%S10, 315
%S67, 322
%S100, 325 %S68, 322
%S101, 325 %S69, 322
%S102, 325
%S7, 314
%S11, 315 %S70, 323
%S118, 325 %S73, 323
%S119, 325
%S74, 323
%S13, 315 %S75, 323
%S15, 316 %S8, 315
%S16, 316
%S80, 323
%S17, 317 %S9, 315
%S18, 317 %S90, 323
%S19, 317
%S92, 323
%S20, 318 %S94, 324
%S21, 319 %S95, 324
%S22, 319
%S96, 324
%S23, 319 %S97, 324
%S24, 319 %S98, 324
%S26, 319
%S99, 324
%S30, 320 %SW0, 327
%S31, 320 %SW1, 327
%S38, 320
%SW10, 327
%S39, 320
COPY_BIT, 256 H
COS, 138
HALT, 83
HW, 156
D
D_BIT, 262 I
D_TO_INT, 146
INSERT, 205
DATE_TO_STRING, 245, 247
Instruccin
DAY_OF_WEEK, 233
objeto bits, 17
DBCD_TO_DINT, 146
Instruccin PL7, 15
DEG_TO_RAD, 141
INT_TO_BCD, 146
DELETE, 203
INT_TO_DBCD, 146
DELTA_D, 239
INT_TO_REAL, 151
DELTA_DT, 241
INT_TO_STRING, 192
DELTA_TOD, 243
DINT_TO_DBCD, 146
DINT_TO_REAL, 151 L
DINT_TO_STRING, 192
DSHL_RBIT, 266 LD, 19
DSHR_RBIT, 266 LDF, 19
DSHRZ_C, 266 LDN, 19
LDR, 19
LEFT, 211
E LEN, 217
LENGTH_, 184
END, 81
LN, 135
ENDC, 81
LOG, 135
ENDCN, 81
LW, 156
EQUAL, 168
EQUAL_ARR, 168
EQUAL_STR, 213 M
EXP, 135
EXPT, 135 MASKEVT, 84
MAX_, 174
MID, 209
F MIN_, 174
FIND, 215
FIND_, 170 N
FPULSOR, 284
FTON, 277, 280 NOP, 85
FTP, 282 NOT, 164
NOT_ARX, 257
G
GRAY_TO_INT, 154
O
Objeto
Booleano, 18
S X
S, 22 XOR, 30, 164
SCHEDULE, 224 XOR_ARX, 257
SCOUNT, 270
XORF, 30
XORN, 30
XORR, 30