Вы находитесь на странице: 1из 111

35013228 03/2007 399

14
Lenguaje Ladder
Presentacin
Objeto En este captulo se describe la programacin con el lenguaje Ladder.
Contenido: Este captulo contiene los siguiente apartados:
Apartado Pgina
Introduccin a los diagramas Ladder 400
Principios de programacin para diagramas Ladder 402
Bloque de diagramas Ladder 404
Elementos grficos del lenguaje Ladder 408
Instrucciones Ladder especiales OPEN y SHORT 411
Consejos sobre programacin 413
Reversibilidad de Ladder/Lista 417
Directrices para la reversibilidad Ladder Logic/Lista 418
Documentacin del programa 420
Lenguaje Ladder
400 35013228 03/2007
Introduccin a los diagramas Ladder
Introduccin Los diagramas Ladder o de contacto son similares a los diagramas lgicos de rel
que representan circuitos de control de rel. Las principales diferencias entre los
dos son las siguientes funciones de la programacin de Ladder que no aparecen en
los diagramas de lgica de rel:
Todas las entradas estn representadas por smbolos de contactos ( ).
Todas las salida estn representadas por smbolos de bobinas ( ).
Las operaciones numricas estn incluidas en el conjunto de instrucciones de
Ladder grficas.
Equivalentes
Ladder a los
circuitos de rel
La siguiente ilustracin muestra un diagrama simplificado del cableado de un
circuito de lgica de rel y el diagrama Ladder equivalente.
En la ilustracin anterior, todas las entradas asociadas a un perifrico de
conmutacin en el circuito de lgica de rel se representan en forma de contactos
del diagrama Ladder. La bobina de salida M1 del circuito en lgica de rel se
representa mediante un smbolo de bobina en el diagrama Ladder. Los nmeros de
direcciones que aparecen encima del smbolo de cada contacto y de cada bobina
del diagrama Ladder son referencias de los emplazamientos de las conexiones
externas de entrada y salida hacia el controlador.
Circuito de lgica de rel
Diagrama Ladder
LS1 PB1 CR1 M1
LS2 SS1
%I0.2 %I0.4 %I0.0
%I0.1 %I0.7
%Q0.4 LS1 PB1 CR1 M1
LS2 SS1
Lenguaje Ladder
35013228 03/2007 401
Escalones
Ladder
Un programa en lenguaje de diagrama Ladder est formado por "escalones" que
representan el conjunto de instrucciones grficas y aparecen entre dos barras
verticales. El controlador ejecuta los escalones de forma secuencial.
El conjunto de instrucciones grficas representa las siguientes funciones:
Entradas/salidas del controlador (botones de comando, sensores, rels, luces de
pilotos, etc.).
Funciones del controlador (temporizadores, contadores, etc.).
Operaciones lgicas y matemticas (adicin, divisin, AND, XOR, etc.).
Operadores de comparacin y otras operaciones numricas (A<B, A=B,
desplazamiento, rotacin, etc.)
Variables internas del controlador (bits, palabras, etc.).
Estas instrucciones grficas se organizan con conexiones horizontales y verticales
que conducen a una o varias salidas o acciones. Los escalones no admiten ms de
un grupo de instrucciones vinculadas.
Ejemplo de
escalones
Ladder
El siguiente diagrama es un ejemplo de un programa Ladder compuesto por dos escalones.
Ejemplo de escaln 1
Ejemplo de escaln 2
%I0.1
%I0.3
%M42
%Q1.2
%M42
%MW22:=%MW15+%KW1
Lenguaje Ladder
402 35013228 03/2007
Principios de programacin para diagramas Ladder
Reticulado de
programacin
Cada escaln de Ladder se compone de un reticulado de siete filas por once
columnas organizadas en dos reas como se muestra en la siguiente ilustracin.
reas del
reticulado
El reticulado de programacin del diagrama Ladder est dividido en dos reas:
rea de comprobacin
Contiene las condiciones que se prueban para realizar acciones. Se compone de las
columnas de 1 a 10 y contiene contactos, bloques de funcin y bloques de comparacin.
rea de accin
Contiene la salida u operacin que ser realizada segn sean los resultados de
las pruebas llevadas a cabo en el rea de comprobacin. Se compone de las
columnas de 8 a 11 y contiene bobinas y bloques de operacin.
rea de comprobacin
rea de accin
2
3
4
6
7
2 4 3 5 6 7 10 9 11
5
1
1 8
Filas
Columnas
Celdas de
reticulado
Barras
potenciales
Lenguaje Ladder
35013228 03/2007 403
Introduccin de
instrucciones en
el reticulado
Un escaln de Ladder proporciona un reticulado de programacin de siete por once
que comienza en la primera celda de la esquina superior izquierda del reticulado. La
programacin consiste en introducir instrucciones en las celdas del reticulado. Las
funciones, comparaciones e instrucciones de prueba se introducen en celdas en el
rea de comprobacin y se alinean a la izquierda. La lgica de prueba proporciona
continuidad al rea de actividad donde se introducen bobinas, operaciones
numricas e instrucciones de flujo del programa y se justifican a la derecha.
El escaln se soluciona o ejecuta (pruebas realizadas y salidas asignadas) dentro
del reticulado de arriba a abajo y de izquierda a derecha.
Secciones y
subrutinas
Cada seccin/subrutina se compone de los elementos siguientes:
Un encabezado de seccin con un nmero de seccin (que el programa asigna
automticamente), etiqueta de seccin/subrutina, un ttulo de seccin/subrutina
definido por el usuario y cuatro lneas de comentarios del usuario. Consulte Uso
de encabezados de secciones, Ayuda online TwidoSuite.
Una secuencia de escalones debajo del encabezado de seccin/subrutina.
Cabeceras de
escaln
Adems del escaln, una cabecera de escaln aparece directamente por encima
del escaln. Utilice la cabecera de escaln para documentar el propsito lgico del
escaln. La cabecera de escaln puede contener la siguiente informacin:
Nmero de escaln
Etiquetas (%Li)
Ttulo de escaln
Comentarios de escaln
Para obtener ms informacin acerca de la utilizacin de la cabecera de escaln
para documentar los programas, consulte p. 420.
Lenguaje Ladder
404 35013228 03/2007
Bloques de diagramas Ladder
Introduccin Los diagramas Ladder estn compuestos por bloques que representan el flujo de
programas y las funciones, por ejemplo:
Contactos
Bobinas
Instrucciones de flujo de programas
Bloques de funcin
Bloques de comparacin
Bloques de operacin
Contactos,
bobinas y flujo
de programas
Las instrucciones contactos, bobinas y flujo de programas (saltar y llamadas)
ocupan una nica celda en el reticulado de programacin de Ladder. Los bloques
de funcin, comparacin y operacin ocupan varias.
A continuacin se muestran ejemplos de contactos y bobinas.
LD contacto - bobina 1
Escaln 1
CONTACT
%I0.4
COIL
%Q0.4
Lenguaje Ladder
35013228 03/2007 405
Bloques de
funcin
Los bloques de funcin estn ubicados en el rea de comprobacin del reticulado
de programacin. El bloque debe aparecer en la primera fila; no deberan aparecer
instrucciones Ladder ni lneas de continuidad por encima ni por debajo del bloque
de funcin. Las instrucciones de prueba Ladder llevan al lateral de entrada del
bloque y las instrucciones de prueba o accin llevan al lateral de salida del bloque.
Los bloques de funcin estn colocados en vertical y ocupan dos columnas en
cuatro filas del reticulado de programacin.
A continuacin se muestra un ejemplo de un bloque de funcin del contador.
LD contador 1
Escaln 1
RESET
%I0.0
SOWNCT_O
VERFLOW
%Q0.0
R E
S D
CU F
CD
P
COUNTER0
%C0
ADJ Y
%CO.P
9999
SET
%I0.1
P
UPCOUNT
%I0.2
P
DOWNCOUNT
%I0.3
P
PSET_OUT_
REACHED
%Q0.1
LD contador 1
Escaln 1
RESET
%I0.0
SOWNCT_O
VERFLOW
%Q0.0
R E
S D
CU F
CD
P
COUNTER0
%C0
ADJ Y
%CO.P
9999
SET
%I0.1
P
UPCOUNT
%I0.2
P
DOWNCOUNT
%I0.3
P
PSET_OUT_
REACHED
%Q0.1
Lenguaje Ladder
406 35013228 03/2007
Bloques de
comparacin
Los bloques de comparacin estn ubicados en el rea de comprobacin del reticulado de
programacin. El bloque puede aparecer en cualquier fila o columna del rea de
comprobacin siempre que la longitud completa de la instruccin est en esta rea.
Los bloques de comparacin estn colocados en horizontal y ocupan dos columnas
en una fila del reticulado de programacin,
tal y como se muestra en el ejemplo de bloque de comparacin siguiente.
Para editar el bloque de comparacin, haga clic en el campo situado sobre el cuadro de
comparacin y escriba la expresin que desee. Ambos smbolos y direcciones se pueden
utilizar aqu como operandos. Sin embargo, el campo de comentario est desactivado.
LD bloque de comparacin 2
Escaln 1
%MW0=%SW50
%I0.4
OUTPUTS5
%Q0.5
<
Lenguaje Ladder
35013228 03/2007 407
Bloques de
operacin
Los bloques de operacin estn ubicados en el rea de accin del reticulado de
programacin. El bloque puede aparecer en cualquier fila del rea de accin. La instruccin
est justificada a la derecha; aparece en la derecha y termina en la ltima columna.
Los bloques de operacin estn colocados en horizontal y ocupan cuatro columnas
en una fila del reticulado de programacin.
A continuacin se muestra un ejemplo de un bloque de operacin.
Para editar el bloque de operacin, haga clic en el campo situado sobre el cuadro
de operacin y escriba la expresin que desee. Ambos smbolos y direcciones se
pueden utilizar aqu como operandos. Sin embargo, el campo de comentario (primer
cuadro) est desactivado.
Si se han definido smbolos previamente, la expresin se mostrar con direcciones
(cuadro inferior) y smbolos (cuadro superior) como se muestra en el ejemplo de un
bloque de operacin siguiente. En este caso, la direccin %MW2 se ha definido
previamente con el smbolo OPERATE_SWITCH.
LD bloque de operacin, 2
Escaln 1
%MW120 := SQRT(%MW15)
SHORT
LD bloque de operacin 3
Escaln 1
OPERATE_SWITCH := %MW3 SQRT(%MW1
%MW2 := %MW3
SHORT
Lenguaje Ladder
408 35013228 03/2007
Elementos grficos del lenguaje Ladder
Introduccin Las instrucciones de los diagramas Ladder se componen de elementos grficos.
Contactos Los elementos grficos de los contactos se programan en el rea de comprobacin
y ocupan una celda (el alto de una fila por el ancho de una columna).
Elementos de
conexin
Los elementos de conexin grficos se utilizan para insertar/eliminar bucles Ladder:
Nombre Elemento
grfico
Instruccin Funcin
Contacto normalmente
abierto
LD Establece contacto cuando el
objeto de bit de control est en
estado 1.
Contacto normalmente
cerrado
LDN Establece contacto cuando el
objeto de bit de control est en
estado 0.
Contacto para detectar
un flanco ascendente
LDR Flanco ascendente: detecta el
cambio de 0 a 1 del objeto de bit
de control.
Contacto para detectar
un flanco descendente
LDF Flanco descendente: detecta el
cambio de 1 a 0 del objeto de bit
de control.
P
N
Nombre Elemento
grfico
Funcin
Insertar una conexin. Insertar un bucle Ladder vaco.
Eliminar una conexin. Eliminar un bucle Ladder vaco.
Nota:
1. Si el bucle Ladder contiene cualquier
elemento, en primer lugar debe eliminar todos
los elementos Ladder antes de eliminar el
bucle Ladder.
2. El acceso directo del teclado utilizado para
eliminar un elemento es Supr.
Lenguaje Ladder
35013228 03/2007 409
Bobinas Los elementos grficos de bobina se programan en el rea de accin y ocupan una
celda (el alto de una fila por el ancho de una columna).
Nombre Elemento
grfico
Instruccin Funcin
Bobina directa ST El objeto de bit asociado toma el valor
del resultado del rea de
comprobacin.
Bobina inversa STN El objeto de bit asociado toma el valor
del resultado en negativo del rea de
comprobacin.
Establecer bobina S El objeto de bit asociado se establece
en 1 cuando el resultado del rea de
comprobacin es 1.
Restablecer bobina R El objeto de bit asociado se establece
en 0 cuando el resultado del rea de
comprobacin es 1.
Llamada de
subrutina o salto
JMP
SR
Se conecta a una instruccin
etiquetada ubicada delante o detrs.
Bobina de condicin
de transicin
Lenguaje Grafcet. Se utiliza cuando la
programacin de las condiciones de
transicin asociadas a las transiciones
provoca una inversin de corriente en
el siguiente paso.
Retorno desde una
subrutina
RET Situado al final de las subrutinas para
regresar al programa principal.
Detener programa END Define el final del programa.
S
R
->>%Li
->>%SRi
#
<RET>
<END>
Lenguaje Ladder
410 35013228 03/2007
Bloques de
funcin
Los elementos grficos de los bloques de funcin se programan en el rea de
comprobacin y requieren un espacio de cuatro filas por dos columnas de celdas
(excepto para contadores muy rpidos que requieren cinco filas por dos columnas).
Bloques de
operacin y
comparacin
Los bloques de comparacin se programan en el rea de comprobacin, mientras
que los de operacin lo hacen en el rea de accin.
Nombre Elemento
grfico
Funcin
Temporizadores,
contadores,
registros, etc.
Cada bloque de funcin utiliza entradas y salidas que
permiten conexiones con otros elementos grficos.
Nota: Las salidas de los bloques de funcin no pueden
conectarse entre s (conexiones verticales).
Nombre Elemento
grfico
Funcin
Bloque de
comparacin
Compara dos operandos y la salida cambia a 1
cuando se comprueba el resultado.
Tamao: una fila por dos columnas
Bloque de
operacin
Realiza operaciones aritmticas y lgicas.
Tamao: una fila por cuatro columnas


Lenguaje Ladder
35013228 03/2007 411
Instrucciones Ladder especiales OPEN y SHORT
Introduccin Las instrucciones OPEN y SHORT proporcionan un mtodo apropiado para depurar
y solucionar posibles problemas en los programas Ladder. Estas instrucciones
especiales alteran la lgica de un escaln, ya sea acortando o abriendo la
continuidad de un escaln, tal como se explica en la tabla siguiente.
En la programacin de Lista, las instrucciones LD, OR y AND se utilizan para crear las
instrucciones OPEN y SHORT utilizando valores inmediatos de 0 y 1 respectivamente.
Instruccin Descripcin Instruccin de lista
OPEN Al principio del escaln. LD 0
En un escaln: establece una interrupcin en la
continuidad de un escaln Ladder sin tener en cuenta
los resultados de la ltima operacin lgica.
AND 0
SHORT Al principio del escaln. LD 1
En un escaln: permite la continuidad a travs del
escaln sin tener en cuenta los resultados de la ltima
operacin lgica.
OR 1
Lenguaje Ladder
412 35013228 03/2007
Ejemplos A continuacin se muestran ejemplos de uso de las instrucciones OPEN y SHORT.
Cuando no se requiere una entrada RESET, como no es posible eliminar el
segmento de conexin de la entrada R del bloque de funcin, utilice el elemento
OPEN para interrumpir el segmento de entrada de forma permanente.
LD %I0.1
OR %Q1.5
ANDN %M3
AND 0
ST %Q0.1
LD %I0.9
OR 1
ST %Q1.6
%Q1.6 %I0.9
%Q0.1 %M3 %I0.1
%Q1.5
OPEN
SHORT
BLK %C0
LD 0
R
LD %I0.2
AND %M0
CU
OUT_BLK
LD D
AND %M1
ST %Q0.1
END_BLK
%I0.2
%Q0.1
OPEN
%M0
R
S
CU
CD
D
E
%M1
F
%C0
Lenguaje Ladder
35013228 03/2007 413
Consejos sobre programacin
Tratamiento de
los saltos de
programa
Utilice los saltos de programa con precaucin para evitar bucles largos que
prolonguen el tiempo de ciclo. Evite los saltos en las instrucciones ubicadas "detrs"
(Aparece una instruccin delante antes de un salto en un programa. Sin embargo,
aparece una instruccin detrs despus de un salto en un programa).
Programacin de
salidas
Los bits de salida, al igual que los bits internos, slo se deben modificar una vez en
el programa. En el caso de los bits de salida, slo se tiene en cuenta el ltimo valor
examinado cuando se actualizan las salidas.
Utilizacin de los
sensores de
parada de
emergencia de
cableado directo
Los sensores utilizados directamente para paradas de emergencia no deben ser
procesados por el autmata. Se deben conectar directamente a las salidas
correspondientes.
Tratamiento de
recuperacin de
la alimentacin
Haga que la recuperacin de la alimentacin dependa de una operacin manual. Un
reinicio automtico puede provocar un funcionamiento no deseado de la instalacin
(utilice los bits de sistema %S0, %S1 y %S9).
Gestin de la
hora y de los
fechadores
Se debe comprobar el estado del bit de sistema %S51, que indica los posibles fallos
del RTC.
Comprobacin
de errores y
sintaxis
Cuando se introduce un programa, TwidoSuite comprueba la sintaxis de las
instrucciones, los operandos y sus asociaciones.
Lenguaje Ladder
414 35013228 03/2007
Notas
adicionales
sobre cmo
utilizar los
parntesis
Las operaciones de asignacin nunca deben aparecer entre parntesis:
Para realizar la misma funcin, deben programarse las siguientes ecuaciones:
LD %I0.0
AND %I0.1
OR( %I0.2
ST %Q0.0
AND %I0.3
)
ST %Q0.1
%I0.0 %I0.1
%I0.2 %I0.3
%Q0.1
%Q0.0
LD %I0.0
MPS
AND( %I0.1
OR( %I0.2
AND %I0.3
)
)
ST %Q0.1
MPP
AND %I0.2
ST %Q0.0
%I0.0 %I0.1
%I0.2
%I0.2
%I0.3
%Q0.1
%Q0.0
Lenguaje Ladder
35013228 03/2007 415
Si se realizan varias conexiones en paralelo, debern encontrarse unas dentro de
otras o estar totalmente separadas:
No se puede programar el siguiente esquema:
%I0.0 %I0.1 %I0.5
%Q0.1
%I0.2 %I0.3
%I0.6
%I0.7
%I0.0 %I0.1 %I0.5 %Q0.1
%I0.2 %I0.4
%I0.0 %I0.1 %Q0.1
%I0.2 %I0.3
%I0.4
%I0.0 %I0.1 %I0.5 %Q0.1
%I0.2 %I0.3
%I0.4
Lenguaje Ladder
416 35013228 03/2007
Para ejecutar esquemas equivalentes a estos, se deben modificar, tal como se
especifica a continuacin.
LD %I0.0
AND( %I0.1
OR( %I0.2
AND %I0.3
)
)
OR( %I0.4
AND %I0.3
)
ST %Q0.1
LD %I0.0
AND( %I0.1
OR( %I0.2
AND %I0.3
)
AND %I0.5
OR( %I0.2
AND %I0.4
)
)
ST %Q0.1
%I0.0 %I0.1
%I0.2 %I0.3
%I0.4 %I0.3
%I0.0 %I0.1 %I0.5 %Q0.1
%I0.2 %I0.3
%I0.2 %I0.4
%Q0.1
Lenguaje Ladder
35013228 03/2007 417
Reversibilidad de Ladder/Lista
Introduccin La reversibilidad de programa es una funcin del software de programacin
TwidoSuite que facilita la conversin de secciones de programas de aplicacin de
Ladder a Lista y viceversa.
Puede definir la visualizacin predeterminada de programas de dos maneras:
(Preferencias, Twido, Software de programacin TwidoSuite, Ayuda online) del usuario.
Tambin puede alternar secciones del programa entre las vistas Lista y Ladder.
Comprender la
reversibilidad
Para llegar a comprender la funcin reversibilidad de programas, es necesario
examinar la relacin de un escaln de Ladder Logic con la secuencia de Lista de
instruccin asociada.
Escaln de Ladder: conjunto de instrucciones de Ladder que forma una
expresin lgica.
Secuencia de lista: conjunto de instrucciones de un programa de listas que
corresponde a las instrucciones de Ladder y relativo a la misma expresin lgica.
La siguiente ilustracin muestra un escaln de Ladder normal y el equivalente de la
lgica de programacin expresado como una secuencia de instrucciones de Lista.
Un programa de aplicacin se almacena en modo interno en forma de lista que el
programa ha vuelto a escribir en lenguaje Ladder o Lista. TwidoSuite emplea los
parecidos en la estructura de programa existentes entre los dos lenguajes, as como la
imagen de lista interna del programa para visualizarlo en forma de lista (forma bsica) o
grfica (en forma de diagrama Ladder), segn las preferencias del usuario.
Garantizar la
reversibilidad
Cualquier programa creado en forma de diagrama Ladder se puede convertir a
Lista. Por el contrario, algunas lgicas de lenguaje Lista no se pueden convertir a
Ladder. Para garantizar una reversibilidad total entre el lenguaje Lista y el lenguaje
Ladder, hay que tener en cuenta las instrucciones de la seccin p. 418.
Nota: Al cambiar entre la vista de Ladder Logic y de lista, slo se invierten los escalones de
la seccin seleccionada. Esto le permite mostrar el programa con algunas secciones en la
vista de Ladder Logic y otras en la vista de lista en la misma ventana.
LD %I0.5
OR %I0.4
ST %Q0.4
%I0.5 %Q0.4
%I0.4
Lenguaje Ladder
418 35013228 03/2007
Directrices para la reversibilidad Ladder Logic/Lista
Instrucciones
bsicas para la
reversibilidad
Las instrucciones que aparecen a continuacin son necesarias para la estructura
de un bloque de funcin reversible en lenguaje de lista:
BLK indica el comienzo del bloque y define el inicio del escaln y de la parte de
entrada al bloque.
OUT_BLK indica el comienzo de la parte de salida del bloque.
END_BLK indica el final del bloque y del escaln.
El uso de las instrucciones del bloque de funcin reversible no es obligatorio cuando el
programa de lista funciona correctamente. Es posible programar en lista algunas
instrucciones, lo cual no es reversible. Si desea ms informacin acerca de la
programacin de lista no reversible de bloques de funcin estndar, consulte "p. 467".
Instrucciones no
equivalentes que
se deben evitar
Evite utilizar determinadas instrucciones de lista o determinadas combinaciones de
instrucciones y operandos, ya que no tienen ningn equivalente en diagramas
Ladder. Por ejemplo, la instruccin N (invierte el valor en el acumulador booleano)
no tiene una instruccin Ladder equivalente.
En la tabla que aparece a continuacin se enumeran todas las instrucciones de
programacin de lista que no se pueden invertir a Ladder.
Instruccin de lista Operando Descripcin
JMPCN %Li NOT condicional de salto
N ninguno Negacin (NOT)
ENDCN ninguno NOT condicional de finalizacin
Lenguaje Ladder
35013228 03/2007 419
Escalones
incondicionales
La programacin de escalones incondicionales tambin requiere las siguientes
directrices de programacin de lista para garantizar la reversibilidad de lista a
Ladder. Los escalones incondicionales no tienen pruebas ni condiciones. Las
salidas o instrucciones de accin siempre se ejecutan.
El diagrama que aparece a continuacin muestra ejemplos de escalones
incondicionales y la secuencia de lista equivalente.
Tenga en cuenta que cada una de las secuencias de lista incondicionales
mencionadas con anterioridad comienza con una instruccin de carga seguida de
un 1, excepto la instruccin JMP. Esta combinacin ajusta el valor del acumulador
booleano a uno, de tal manera que pone la bobina a 1 (instruccin de almacena-
miento) y %MW5 a cero cada vez que se ejecuta el programa. La excepcin es la
instruccin de lista incondicional JUMP (JMP %L6) que se ejecuta independien-
temente del valor del acumulador. No es necesario poner el acumulador en 1.
Escaln de lista
Ladder Logic
Si un programa de lista que no es totalmente reversible se invierte, las partes
reversibles se muestran en la vista Ladder y las partes que no se pueden invertir
aparecen como escalones de lista Ladder Logic.
Un escaln de lista Ladder funciona como un editor de lista pequeo, permitiendo al
usuario visualizar y modificar las partes del programa Ladder que no se pueden invertir.
LD 1
ST %Q0.4
LD 1
[%MW5 := 0]
JMP %L6
%Q0.4
>>%L6
%MW5 := 0
Lenguaje Ladder
420 35013228 03/2007
Documentacin del programa
Documentacin
del programa
Puede documentar el programa introduciendo comentarios por medio de los
editores de lista y Ladder:
Utilice el editor de lista para documentar el programa con los comentarios de la
lnea de lista. Estos comentarios pueden aparecer en la misma lnea que las
instrucciones de programacin o en sus propias lneas.
En el editor de Ladder, los encabezados de escaln permiten documentar el
programa. Estos encabezados se encuentran en la parte superior del escaln.
El software de programacin TwidoSuite emplea estos comentarios con fines de
reversibilidad. Al convertir un programa de Lista en un programa de Ladder,
TwidoSuite emplea algunos de los comentarios de lista para crear un encabezado.
Para ello, los comentarios introducidos entre las secuencias de lista se emplean
como encabezados de escaln.
Ejemplo de
comentarios de
la lnea de lista
A continuacin se muestra un ejemplo de un programa de lista con los comentarios
de la lnea de lista.
---- ( * STE ES EL TTULO DE CABECERA PARA EL ESCALN 0 * )
---- ( * STE ES EL PRIMER COMENTARIO DE CABECERA PARA EL ESCALN 0 * )
---- ( * STE ES EL SEGUNDO COMENTARIO DE CABECERA PARA EL ESCALN 0 * )
0 LD % I0. 0 ( * ESTO ES UN COMENTARIO DE LNEA *)
1 OR %I0. 1 ( * LOS COMENTARIOS DE LNEA NO SE TIENEN EN CUENTA CUANDO SE
INVIERTE A LADDER * )
2 ANDM %M10
3 ST M101
---- ( * STA ES LA CABECERA PARA EL ESCALN 1 * )
---- ( * ESTE ESCALN CONTIENE UNA ETIQUETA * )
---- ( * STE ES EL SEGUNDO COMENTARIO DE CABECERA PARA EL ESCALN 1 * )
---- ( * STE ES EL TERCER COMENTARIO DE CABECERA PARA EL ESCALN 1 * )
---- ( * STE ES EL CUARTO COMENTARIO DE CABECERA PARA EL ESCALN 1 * )
4 % L5:
5 LD %M101
6 [ %MW20 := %KW2 * 16 ]
---- ( * ESTE ESCALN SLO CONTIENE UN TTULO DE CABECERA * )
7 LD %Q0. 5
8 OR %I0. 3
9 ORR I0. 13
10 ST %Q0.5
Lenguaje Ladder
35013228 03/2007 421
Inversin de
comentarios de
lista a Ladder
Cuando se invierten las instrucciones de lista en un diagrama de Ladder, los comentarios
de la lnea de lista aparecen en el editor de Ladder con arreglo a las siguientes normas:
El primer comentario que aparece en una lnea por s solo se asigna a la
cabecera de escaln.
Cualquier comentario encontrado despus del primero se convierte en el cuerpo
del escaln.
Una vez ocupadas las lneas del cuerpo de la cabecera, el resto de los comentarios de
lnea entre las secuencias de lista se ignoran, igual que cualquier otro comentario que
aparezca en lneas de la lista que tambin contengan instrucciones de lista.
Ejemplo de
comentarios de
cabecera de
escaln
A continuacin se muestra un ejemplo de un programa de Ladder con los
comentarios de cabecera de escaln.
Inversin de
comentarios de
Ladder a lista
Cuando se invierte un diagrama de Ladder a instrucciones de lista, los comentarios de la
cabecera de escaln aparecen en el editor de Ladder con arreglo a las siguientes normas:
Cualquier comentario de la cabecera de escaln se inserta entre las secuencias
de lista asociadas.
Cualquier etiqueta (%Li: ) o declaracin de subrutina (SRi:) se ubica en la
siguiente lnea siguiendo a la cabecera e inmediatamente antes del comienzo de
la secuencia de lista.
Si la lista se invirti a Ladder, los comentarios ignorados volvern a aparecer en
el editor de lista.
LD TTULO DE LA SECCIN 1
Introduzca sus comentarios aqu. Introduzca sus comentarios aqu.
Introduzca sus comentarios aqu. Introduzca sus comentarios aqu.
Introduzca sus comentarios aqu. Introduzca sus comentarios aqu.
Escaln 1
%Q0.5
%I0.3
%Q0.5
%I0.0
%I0.1
M101 %M10
%L
0 %MW20 :- %KW2*16
%M101
Escaln 2
Escaln 3
Lenguaje Ladder
422 35013228 03/2007
35013228 03/2007 423
15
Lenguaje Instruction List o Lista
de instrucciones
Presentacin
Objeto En este captulo se describe la programacin en el lenguaje de lista de
instrucciones.
Contenido: Este captulo contiene los siguiente apartados:
Apartado Pgina
Descripcin general de programas de lista 424
Operacin de las instrucciones de lista 426
Instrucciones del lenguaje de lista 427
Utilizacin de parntesis 430
Instrucciones de stack (MPS, MRD, MPP) 432
Lenguaje Instruction List o Lista de instrucciones
424 35013228 03/2007
Descripcin general de programas de lista
Introduccin Un programa escrito en lenguaje de lista est formado por una serie de
instrucciones que el autmata ejecuta de forma secuencial. Cada instruccin de
lista est representada por una lnea de programa y tiene tres componentes:
Nmero de lnea
Cdigo de instruccin
Operandos
Ejemplo de un
programa de lista
A continuacin se muestra un ejemplo de un programa de lista.
Nmero de lnea Los nmeros de lnea se generan automticamente al introducir una instruccin.
Las lneas vacas y las lneas de comentario no tienen nmeros de lnea.

1 ST %Q0.3
2 LDN %M0
3 ST %Q0.2
4 LDR %I0.2
5 ST %Q0.4
6 LDF %I0.3
7 ST %Q0.5
%I0.1 LD
Operandos
Nmero de lnea
Cdigo de instruccin
0
0 LD %I0.1
Lenguaje Instruction List o Lista de instrucciones
35013228 03/2007 425
Cdigo de
instruccin
El cdigo de instruccin es un smbolo para un operador que identifica la operacin
que se va a realizar utilizando los operandos. Los operadores tpicos especifican
operaciones numricas y booleanas.
Por ejemplo, en el programa de ejemplo anterior, LD es la abreviatura del cdigo de
instruccin para una instruccin LOAD. La instruccin LOAD coloca (carga) el valor
del operando %I0.1 en un registro interno llamado el acumulador.
Hay dos tipos de instrucciones bsicas:
Instrucciones de prueba
Estas instrucciones configuran o comprueban las condiciones necesarias para
realizar una accin. Por ejemplo, LOAD (LD) y AND.
Instrucciones de accin
Estas instrucciones realizan acciones como resultado de las condiciones configuradas.
Por ejemplo, instrucciones de asignacin como STORE (ST) y RESET (R).
Operando Un operando es un nmero, direccin o smbolo que representa un valor que puede
manipular un programa en una instruccin. Por ejemplo, en el programa de ejemplo
anterior, el operando %I0.1 es una direccin que tiene asignado el valor de una
entrada del autmata. Una instruccin puede tener de cero a tres operandos
dependiendo del tipo de cdigo de instruccin.
Los operandos pueden representar los siguientes elementos:
Entradas y salidas del autmata, como sensores, botones y rels.
Funciones de sistema predefinidas, como temporizadores y contadores.
Operaciones aritmticas, numricas y de comparacin.
Variables internas del autmata, como bits y palabras.
Lenguaje Instruction List o Lista de instrucciones
426 35013228 03/2007
Operacin de las instrucciones de lista
Introduccin Las instrucciones de lista slo poseen un operando explcito, ya que el otro es
implcito. El operando implcito corresponde al valor del acumulador booleano. Por
ejemplo, en la instruccin LD %I0.1, %I0.1 es el operando explcito. El operando
implcito se almacenar en el acumulador y se sobrescribir con el valor de %I0.1.
Funcionamiento Una instruccin en lenguaje lista ejecuta una operacin especfica en el contenido
del acumulador y en el operando explcito y, a continuacin, sustituye el contenido
del acumulador por el resultado obtenido. Por ejemplo, la operacin AND %I1.2
realiza un AND lgico entre el contenido del acumulador y el de la entrada 1.2, al
tiempo que sustituye el contenido del acumulador por el de dicho resultado.
El conjunto de las instrucciones booleanas, exceptuando las instrucciones de
carga, de almacenamiento y las instrucciones NOT, funciona con dos operandos.
El valor de los dos operandos puede ser True o False, y la ejecucin de las
instrucciones por parte del programa genera un valor nico: puede ser True o False.
Las instrucciones de carga colocan en valor del operando en el acumulador,
mientras que las instrucciones de almacenamiento transfieren el valor del
acumulador al operando. La instruccin NOT no contiene ningn operando explcito
y su nico fin es invertir el estado del acumulador.
Instrucciones de
lista admitidas
En la siguiente tabla se muestran algunas instrucciones de lista:
Tipo de instruccin Ejemplo Funcin
Instruccin de bit LD %M10 Lee el bit %M10 interno.
Instruccin sobre bloque IN %TM0 Inicia el temporizador %TM0.
Instruccin de palabra [%MW10 := %MW50+100] Operacin de adicin
Instrucciones del programa SR5 Llama la subrutina n. 5.
Instruccin Grafcet -*-8 Paso n. 8
Lenguaje Instruction List o Lista de instrucciones
35013228 03/2007 427
Instrucciones del lenguaje de lista
Introduccin Un lenguaje de lista se compone de los siguientes tipos de instrucciones:
Instrucciones de prueba
Instrucciones de accin
Instrucciones sobre bloques de funcin
En esta seccin se identifican y describen las instrucciones Twido para la
programacin de listas.
Instrucciones de
prueba
En la tabla siguiente se describen las instrucciones de prueba en lenguaje de listas.
Nombre Elemento grfico
equivalente
Funcin
LD El resultado booleano es el mismo que el estado del
operando.
LDN El resultado booleano es el mismo que el estado inverso del
operando.
LDR El resultado booleano cambia a 1 durante la deteccin del
operando (flanco ascendente) que cambia de 0 a 1.
LDF El resultado booleano cambia a 1 durante la deteccin del
operando (flanco descendente) que cambia de 1 a 0.
AND El resultado booleano es igual a la instruccin lgica AND
entre el resultado booleano de la instruccin anterior y el
estado del operando.
ANDN El resultado booleano es igual a la instruccin lgica AND
entre el resultado booleano de la instruccin anterior y el
estado inverso del operando.
ANDR El resultado booleano es igual a la instruccin lgica AND
entre el resultado booleano de la instruccin anterior y el
flanco ascendente del operando (1 = flanco ascendente).
ANDF El resultado booleano es igual a la instruccin lgica AND
entre el resultado booleano de la instruccin anterior y la
deteccin del flanco descendente del operando (1 = flanco
descendente).
OR El resultado booleano es igual a la instruccin lgica OR
entre el resultado booleano de la instruccin anterior y el
estado del operando.
P
N
P
N
Lenguaje Instruction List o Lista de instrucciones
428 35013228 03/2007
AND( Instruccin lgica AND (8 niveles de parntesis)
OR( Instruccin lgica OR (8 niveles de parntesis)
XOR,
XORN,
XORR,
XORF
OR exclusivo
MPS
MRD
MPP
Conmutacin a las bobinas.
N - Negacin (NOT)
Nombre Elemento grfico
equivalente
Funcin
XORR
XORF
XORN
XOR
Lenguaje Instruction List o Lista de instrucciones
35013228 03/2007 429
Instrucciones de
accin
En la tabla siguiente se describen las instrucciones de accin en lenguaje de listas.
Instrucciones
sobre bloques de
funcin
En la tabla siguiente se describen los bloques de funcin en lenguaje de listas.
Nombre Elemento grfico
equivalente
Funcin
ST El operando asociado toma el valor del resultado del rea
de comprobacin.
STN El operando asociado toma el valor inverso del resultado
del rea de comprobacin.
S El operando asociado se establece en 1 cuando el
resultado del rea de comprobacin es 1.
R El operando asociado se establece en 0 cuando el
resultado del rea de comprobacin es 1.
JMP Se conecta de forma incondicional a una secuencia
etiquetada ubicada delante o detrs.
SRn Conexin al comienzo de una subrutina.
RET Retorno desde una subrutina.
END Fin del programa.
ENDC Fin del programa condicionado en un resultado booleano de
1.
ENDCN Fin del programa condicionado en un resultado booleano de
0.
S
R
->>%Li
->>%SRi
<RET>
<END>
<ENDC>
<ENDCN>
Nombre Elemento
grfico
equivalente
Funcin
Temporizadores,
contadores,
registros, etc.
Para cada bloque de funcin existen instrucciones
para controlar el bloque.
Para cablear las entradas y salidas de bloques
directamente se utiliza una forma estructurada.
Nota: Las salidas de los bloques de funcin no se
pueden conectar entre s (conexiones verticales).
Lenguaje Instruction List o Lista de instrucciones
430 35013228 03/2007
Utilizacin de parntesis
Introduccin En las instrucciones lgicas AND y OR, los parntesis permiten determinar las
bifurcaciones de Ladder. Los parntesis se asocian a instrucciones del modo siguiente:
El parntesis de apertura se asocia con la instruccin AND u OR.
El parntesis de cierre es una instruccin necesaria siempre que se haya abierto
un parntesis.
Ejemplo de uso
de una
instruccin AND
Los siguientes diagramas son ejemplos de utilizacin de parntesis con una
instruccin AND: AND(...).
Ejemplo de uso
de una
instruccin OR
Los siguientes diagramas son ejemplos de utilizacin de parntesis con una
instruccin OR: OR(...).
LD %I0.0
AND %I0.1
OR %I0.2
ST %Q0.0
LD %I0.0
AND( %I0.1
OR %I0.2
)
ST %Q0.1
%Q0.1
%Q0.0
%I0.2
%I0.0
%I0.1
%I0.2
%I0.0
%I0.1
LD %I0.0
AND %I0.1
OR( %I0.2
AND %I0.3
)
ST %Q0.0
%Q0.0 %I0.0 %I0.1
%I0.2 %I0.3
Lenguaje Instruction List o Lista de instrucciones
35013228 03/2007 431
Modificadores En la siguiente tabla se enumeran los modificadores que pueden asignarse a los
parntesis.
Intercalado de
parntesis
Es posible intercalar hasta ocho niveles de parntesis.
Tenga en cuenta las siguientes reglas para intercalar parntesis:
Cada parntesis de apertura debe tener su parntesis de cierre correspondiente.
No se deben colocar etiquetas (%Li:), subrutinas (SRi:), instrucciones de salto
(JMP) ni instrucciones de bloque de funcin en instrucciones entre parntesis.
No se deben programar instrucciones de almacenamiento ST, STN, S o R entre
parntesis.
No se pueden utilizar instrucciones de stack MPS, MRD o MPP entre parntesis.
Ejemplos de
intercalado de
parntesis
Los siguientes diagramas muestran ejemplos de intercalado de parntesis.
Modificador Funcin Ejemplo
N Negacin AND(N u OR(N
F Flanco descendente AND(F u OR(F
R Flanco ascendente AND(R u OR(R
[ Comparacin Consulte p. 492
LD %I0.0
AND( %I0.1
OR(N %I0.2
AND %M3
)
)
ST %Q0.0
LD %I0.1
AND( %I0.2
AND %I0.3
OR( %I0.5
AND %I0.6
)
AND %I0.4
OR( %I0.7
AND %I0.8
)
)
ST %Q0.0
%Q0.0
%Q0.0 %I0.1
%I0.0 %I0.1
%I0.2 %M3
%I0.2 %I0.3 %I0.4
%I0.6 %I0.5
%I0.7 %I0.8
Lenguaje Instruction List o Lista de instrucciones
432 35013228 03/2007
Instrucciones de stack (MPS, MRD, MPP)
Introduccin Las instrucciones de stack procesan el direccionamiento a bobinas. Las
instrucciones MPS, MRD y MPP utilizan un rea de almacenamiento temporal
llamada stack, que puede almacenar hasta ocho expresiones booleanas.
Funcionamiento
de las
instrucciones de
stack
En la siguiente tabla se describe el funcionamiento de las tres instrucciones de
stack.
Nota: Estas instrucciones no se pueden utilizar en una expresin entre parntesis.
Instruccin Descripcin Funcin
MPS Introducir memoria en
stack
Almacena el resultado de la ltima instruccin
lgica (contenidos del acumulador) en la parte
superior del stack (introducir) y desplaza el resto
de valores a la parte inferior del stack.
MRD Leer memoria desde stack Lee la parte superior del stack en el acumulador.
MPP Sacar memoria de stack Copia el valor de la parte superior del stack en el
acumulador (sacar) y desplaza el resto de
valores hacia la parte superior del stack.
Lenguaje Instruction List o Lista de instrucciones
35013228 03/2007 433
Ejemplos de
instrucciones de
stack
Los siguientes diagramas son ejemplos de utilizacin de las instrucciones de stack.
Ejemplos de
funcionamiento
de stack
Los siguientes diagramas muestran el funcionamiento de las instrucciones de stack.
LD %I0.0
AND %M1
MPS
AND %I0.1
ST %Q0.0
MRD
AND %I0.2
ST %Q0.1
MRD
AND %I0.3
ST %Q0.2
MPP
AND %I0.4
ST %Q0.3
%Q0.0
%Q0.1
%Q0.3
%Q0.2
%M1
%I0.2
%I0.3
%I0.4
%I0.1 %I0.0
MPS
MPP
MRD
LD %I0.0
MPS
AND %I0.1
MPS
AND( %I0.3
OR %M0
)
ST %Q0.0
MPP
ANDN %M1
ST %Q0.1
MRD
AND %I0.4
ST %Q0.2
MPP
AND %M10
ST %Q0.3
%Q0.0
%I0.4
%Q0.1
%Q0.2
%Q0.3
%I0.0 %I0.1 %I0.3
%M0
%M1
%M10
Lenguaje Instruction List o Lista de instrucciones
434 35013228 03/2007
35013228 03/2007 435
16
Grafcet
Presentacin
Objeto En este captulo se describe la programacin con el lenguaje Grafcet.
Contenido: Este captulo contiene los siguiente apartados:
Apartado Pgina
Descripcin de las instrucciones Grafcet 436
Descripcin de la estructura del programa Grafcet 441
Acciones asociadas a pasos Grafcet 444
Grafcet
436 35013228 03/2007
Descripcin de las instrucciones Grafcet
Introduccin Las instrucciones Grafcet de TwidoSuite ofrecen un mtodo sencillo para traducir
una secuencia de ajuste (diagrama Grafcet).
La cantidad mxima de pasos Grafcet depende del tipo de autmata Twido. La cantidad de
pasos activados en cualquier momento est limitado slo por la cantidad total de pasos.
Para los autmatas TWDLCAA10DRF y TWDLCAA16DRF estn disponibles los
pasos 1 a 62. Los pasos 0 y 63 estn reservados para el procesamiento previo y
posterior. Para todos los dems autmatas, estn disponibles los pasos 1 a 95.
Grafcet
35013228 03/2007 437
Instrucciones
Grafcet
En la tabla siguiente se enumeran todas las instrucciones y objetos necesarios para
programar un diagrama Grafcet.
(1) No se admite representacin grfica.
(2) El primer paso =*=i o -*-i escrito indica el inicio del procesamiento secuencial y,
por lo tanto, el final del procesamiento previo.
Representacin
grfica (1)
Transcripcin en el
lenguaje de TwidoSuite
Funcin
Ilustracin:
=*= i Comenzar el paso inicial (2).
# i Activar el paso i tras desactivar el paso actual.
-*- i Iniciar el paso i y validar la transicin
asociada (2).
# Desactivar el paso actual sin activar
ningn otro paso.
#Di Desactivar el paso i y el paso actual.
=*= POST Iniciar procesamiento posterior y finalizar
procesamiento secuencial.
%Xi Se puede comprobar y escribir el bit
asociado con el paso i (el nmero mximo
de pasos depende del autmata).
LD %Xi, LDN %Xi
AND %Xi, ANDN %Xi,
OR %Xi, ORN %Xi
XOR %Xi, XORN %Xi
Comprobar actividad del paso i.
S %Xi Activar el paso i.
R %Xi Desactivar el paso i.
Xi
R
Xi
S
Xi
Paso inicial
Transicin
Paso
Grafcet
438 35013228 03/2007
Ejemplos de
Grafcet
Secuencia lineal:
LD %I0.5
ST %S21
=*= 1
LD %I0.1
# 2
-*- 2
LD %I0.2
# 3
-*- 3
LD %I0.3
# 1
=*= POST
LD %X1
ST %Q0.1
LD %X2
ST %Q0.2
LD %X3
ST %Q0.3
1
3
2
%I0.1
%I0.2
%I0.5
%I0.1
%S21
2
#
No admitido Twido Ladder Instruccin de Twido
Programa de lenguaje Programa de lista
%I0.2
- * - 2
3
#
= * = 1
- * - 2
%I0.3
= * = POST
1
#
%X1 %Q0.1
%X2 %Q0.2
%X3 %Q0.3
%I0.5
%Q0.2
%Q0.1
%I0.3
%Q0.3
Grafcet
35013228 03/2007 439
Secuencia alternativa:
- * - 5
=*= 4
LD %I0.3
# 5
LD %I0.4
# 6
-*- 5
LD %I0.5
# 7

-*- 6
LD %I0.6
# 7
4
5 6
7
- * - 6
%I0.3 %I0.4
%I0.5 %I0.6
=* = 4
%I0.3 5
#
%I0.4 6
#
%I0.5 7
#
%I0.6 7
#
No admitido Twido Ladder Instruccin de Twido
Programa de lenguaje Programa de lista
Grafcet
440 35013228 03/2007
Secuencias simultneas:
Nota: Para que un diagrama Grafcet funcione, se debe declarar al menos un paso
activo mediante la instruccin =*=i (paso inicial), o el diagrama debe ubicarse con
antelacin durante el procesamiento previo utilizando el bit de sistema %S23 y la
instruccin S %Xi.
-*- 8
LD %I0.7
# 9
# 10

-*- 9
LD %I0.8
# 11

-*- 10
LD %I0.9
# 12

-*- 11
LD %M0
AND %X12
#D 12
# 13

-*- 12
LD %M0
AND %X11
#D 11
# 13
- * - 12
8
9 10
11 12
13
#
#
#
#
#
#
#D
#D
%I0.8
%I0.7
%I0.9
%M0
- * - 8
%I0.7
- * - 9
9
10
11 %I0.8
- * - 10
%I0.9 12
12
- * - 11
%M0 %X12
13
11
13
%M0 %X11
No admitido Twido Ladder Instruccin de Twido
Programa de lenguaje Programa de lista
Grafcet
35013228 03/2007 441
Descripcin de la estructura del programa Grafcet
Introduccin Un programa Grafcet de TwidoSuite consta de tres partes:
Procesamiento previo
Procesamiento secuencial
Procesamiento posterior
Procesamiento
previo
El procesamiento previo consta de las siguientes partes:
Recuperacin de la alimentacin
Errores
Cambios de modo de funcionamiento
Pasos Grafcet de ubicacin previa
Entrada lgica
El flanco ascendente de la entrada %I0.6 establece el bit %S21 en 1. De este modo,
deshabilita los pasos activos y habilita los pasos iniciales.
El procesamiento previo comienza con la primera lnea del programa y finaliza con
la primera aparicin de una instruccin "= * =" o "- * -".
Existen tres bits de sistema designados al control de Grafcet: %S21, %S22 and %S23. La
aplicacin ajusta cada uno de estos bits de sistema en 1 (si es necesario), normalmente
durante el procesamiento previo. El sistema lleva a cabo la funcin asociada cuando finaliza
el procesamiento previo y, entonces, el sistema restablece el bit de sistema en 0.
000 LDN %I0.6
001 S %S22
002 ST %M0
003 LDR %I0.6
004 S %S21
/
P S
S
%I0.6
%I0.6
%S22
%M0
%S21
Bit de sistema Nombre Descripcin
%S21 Inicializacin de Grafcet Todos los pasos activos se desactivan y los pasos iniciales se activan.
%S22 Reinicializacin de Grafcet Se desactivan todos los pasos.
%S23 Ubicacin previa de Grafcet Este bit se debe ajustar en 1 si los objetos %Xi han sido escritos de manera
explcita por la aplicacin durante el procesamiento previo. Si el
procesamiento previo mantiene el bit en 1 sin ningn cambio explcito de los
objetos %Xi, Grafcet se congela (no se tienen en cuenta las actualizaciones).
Grafcet
442 35013228 03/2007
Procesamiento
secuencial
El procesamiento secuencial se realiza en el diagrama (instrucciones que
representan el diagrama).
Pasos
Acciones asociadas a los pasos
Transiciones
Condiciones de transicin
Ejemplo:
El procesamiento secuencial termina con la ejecucin de la instruccin "= * = POST"
o con la finalizacin del programa.
005 =*= 1
006 LD %I0.2
007 ANDN %I0.3
008 # 2
009 LD %I0.3
010 ANDN %I0.2
011 # 3
012 -*- 2
013 LD %I0.4
014 # 1
015 -*- 3
016 LD %I0.5
017 # 1

/
/
=*= 1
-*- 2

-*- 3
#
#
#
#
3
2
1
1 %I0.5
%I0.4
%I0.3
%I0.3
%I0.2
%I0.2
Grafcet
35013228 03/2007 443
Procesamiento
posterior
El procesamiento posterior consta de las siguientes partes:
Comandos del procesamiento secuencial para controlar las salidas
Dispositivos de bloqueo de seguridad especficos para las salidas
Ejemplo:
018 =*= POST
019 LD %X1
020 ST %Q0.1
021 LD %X2
022 ST %Q0.2
023 LD %X3
024 OR( %M1
025 ANDN %I0.2
026 AND %I0.7
027 )
028 ST %Q0.3



/
%X1
%X2
%M1 %I0.2 %I0.7
%Q0.3
%Q0.2
%Q0.1
%X3
=*= POST
Grafcet
444 35013228 03/2007
Acciones asociadas a pasos Grafcet
Introduccin Un programa Grafcet de TwidoSuite ofrece dos modos para programar acciones
asociadas con los pasos:
En la seccin de procesamiento posterior
En las instrucciones de lista o escalones de Ladder de los propios pasos
Asociacin de
acciones en el
procesamiento
posterior
En caso de que existan limitaciones en el modo de seguridad o de ejecucin, es
preferible programar acciones en la seccin de procesamiento posterior de una
aplicacin Grafcet. Puede utilizar las instrucciones de lista Establecer y Restablecer
o conectar bobinas en el programa Ladder para activar los pasos de Grafcet (%Xi).
Ejemplo:
Asociacin de
acciones desde
una aplicacin
Puede programar las acciones asociadas a los pasos dentro de las instrucciones de
lista o escalones de Ladder. En este caso, la instruccin de lista o el escaln de
Ladder no se examina a menos que est activo el paso. ste es el modo ms eficaz,
claro y sostenible de utilizar Grafcet.
Ejemplo:
018 =*= POST
019 LD %X1
020 ST %Q0.1
021 LD %X2
022 ST %Q0.2
023 LD %X3
024 ST %Q0.3



%X1
%X2
%Q0.3
%Q0.2
%Q0.1
%X2
-*- 4
#
R
S
-*- 3
%Q0.5
%Q0.5
4
020
021
022
023
024
025
026
027
028
029
-*-
LD
S
LD
#
-*-
LD
R
...
...
3
1
%Q0.5
%M10
4
4
1
%Q0.5
35013228 09/2007 445
IV
Descripcin de instrucciones y
funciones
Presentacin
Objeto Esta seccin ofrece descripciones detalladas de las instrucciones bsicas y
avanzadas, as como de los bits y de las palabras de sistema de los lenguajes
Twido.
Contenido Esta parte contiene los siguientes captulos:
Captulo Nombre del captulo Pgina
17 Instrucciones bsicas 447
18 Instrucciones avanzadas 511
19 Bits de sistema y palabras de sistema 687
Instrucciones y funciones
446 35013228 09/2007
35013228 03/2007 447
17
Instrucciones bsicas
Presentacin
Objeto En este captulo se proporcionan detalles acerca de las instrucciones y los bloques de
funcin utilizados para crear programas bsicos de control para autmatas Twido.
Contenido: Este captulo contiene las siguientes secciones:
Seccin Apartado Pgina
17.1 Procesamiento booleano 448
17.2 Bloques de funcin bsicos 464
17.3 Procesamiento numrico 486
17.4 Instrucciones del programa 503
Instrucciones bsicas
448 35013228 03/2007
17.1 Procesamiento booleano
Presentacin
Objeto En esta seccin se proporciona una introduccin al procesamiento booleano,
incluidas las descripciones y directrices de programacin para instrucciones
booleanas.
Contenido Esta seccin contiene los siguientes apartados:
Apartado Pgina
Instrucciones booleanas 449
Comprensin del formato para describir instrucciones booleanas 451
Instrucciones de carga (LD, LDN, LDR, LDF) 453
Instrucciones de asignacin (ST, STN, R, S) 455
Instrucciones AND lgicas (AND, ANDN, ANDR, ANDF) 457
Instrucciones OR lgicas (OR, ORN, ORR, ORF) 459
OR exclusivo, instrucciones (XOR, XORN, XORR, XORF) 461
Instruccin NOT (N) 463
Instrucciones bsicas
35013228 03/2007 449
Instrucciones booleanas
Introduccin Las instrucciones booleanas pueden compararse con los elementos grficos de
Ladder. En la tabla siguiente se muestran estas instrucciones.
El resultado booleano de los elementos de prueba se aplica a los elementos de
accin como muestran las siguientes instrucciones.
Comprobacin
de las entradas
del autmata
Pueden utilizarse instrucciones de prueba booleana para detectar flancos
ascendentes o descendentes en las entradas del autmata. Se detecta un flanco
cuando el estado de una entrada cambia de "explorar n-1" a "explorar n". Dicho
flanco permanece detectado durante la exploracin actual.
Deteccin de
flanco
ascendente
La instruccin LDR (Cargar flanco ascendente) equivale a un contacto de deteccin de
flanco ascendente. El flanco ascendente detecta el cambio del valor de entrada de 0 a 1.
Se utiliza un contacto de deteccin de transicin positiva para detectar un flanco
ascendente como se muestra en el siguiente diagrama.
Elemento Instruccin Ejemplo Descripcin
Elementos de prueba La instruccin Cargar (LD)
equivale a un contacto abierto.
LD %I0.0 El contacto se cierra cuando el bit %I0.0
se encuentra en estado 1.
Elementos de accin La instruccin Almacenar (ST)
equivale a una bobina.
ST %Q0.0 El objeto de bit asociado toma un valor
lgico del acumulador de bits (resultado
de lgica anterior).
LD %I0.0
AND %I0.1
ST %Q0.0
LDR %I0.0
%I0.0
P: Contacto de deteccin de transicin positiva P
Instrucciones bsicas
450 35013228 03/2007
Deteccin de un
flanco
descendente
La instruccin LDF (Cargar flanco descendente) equivale a un contacto de
deteccin del flanco descendente. El flanco descendente detecta el cambio del
valor de entrada de ajuste de 1 a 0.
Se utiliza un contacto de deteccin de transicin negativa para detectar un flanco
descendente como se muestra en el siguiente diagrama.
Deteccin de un
flanco
En la tabla siguiente se resumen las instrucciones de deteccin de flancos y su cronograma:
%I0.0
Nmero: Contacto de deteccin de transicin negativa
LDF %I0.0 N
Flanco Instruccin
de prueba
Diagrama
Ladder
Cronograma
Flanco
ascendente
LDR %I0.0
Flanco
descendente
LDF %I0.0
Nota: A partir de ahora ser posible aplicar las instrucciones sobre flancos a los
bits internos %Mi.
P
%I0.0
Flanco ascendente
tiempo
tiempo
T=1 exploracin
del autmata
Resultado
booleano
%I0.0
T
N
%I0.0
tiempo
tiempo
Resultado
booleano
%I0.0
Flanco descendente
T=1 exploracin
del autmata
T
Instrucciones bsicas
35013228 03/2007 451
Comprensin del formato para describir instrucciones booleanas
Introduccin Todas las instrucciones booleanas de esta seccin se describen utilizando la
siguiente informacin:
Breve descripcin
Ejemplo de la instruccin y del correspondiente diagrama de Ladder
Lista de operandos permitidos
Cronograma
Las siguientes explicaciones proporcionan ms detalles acerca del modo en que se
describen las instrucciones booleanas en esta seccin.
Ejemplos La siguiente ilustracin muestra el modo en que se proporcionan ejemplos para
cada instruccin.
Operandos
permitidos
En la tabla siguiente se definen los tipos de operandos permitidos utilizados para
las instrucciones booleanas.
Equivalentes del diagrama de Ladder Instrucciones de lista
LD %I0.1
ST %Q0.3
LDN %M0
ST %Q0.2
LDR %I0.1
ST %Q0.4
LDF %I0.3
ST %Q0.5
P
N
%I0.1
%M0
%I0.1
%I0.3
%Q0.3
%Q0.2
%Q0.4
%Q0.5
Operando Descripcin
0/1 Valor inmediato de 0 1
%I Entrada del autmata %Ii.j
%Q Salida del autmata %Qi.j
%M Bit interno %Mi
%S Bit de sistema %Si
%X Bit de pasos %Xi
%BLK.x Bit del bloque de funcin (por ejemplo, %TMi.Q)
%:Xk Bit de palabra (por ejemplo, %MWi:Xk)
[ Expresin de comparacin (por ejemplo, [%MWi<1000])
Instrucciones bsicas
452 35013228 03/2007
Cronogramas En la siguiente ilustracin puede apreciarse el modo en que se muestran los
cronogramas de cada instruccin.
Cronograma para la
instruccin LD
Estado de la entrada
Estado de la salida
%M0 %I0.3 %I0.1 %I0.2
LD LDN LDR LDF
%Q0.2 %Q0.5 %Q0.3 %Q0.4
Los cronogramas para los cuatro tipos de
instrucciones de carga se agrupan
conjuntamente.
%I0.1
LD
%Q0.3
Instrucciones bsicas
35013228 03/2007 453
Instrucciones de carga (LD, LDN, LDR, LDF)
Introduccin Las instrucciones de carga LD, LDN, LDR y LDF corresponden respectivamente a
los contactos abierto, cerrado, flanco ascendente y flanco descendente (LDR y LDF
slo se utilizan con entradas y palabras internas del autmata y con entradas de
slaves AS-Interface y PDO CANopen).
Ejemplos Los siguientes diagramas son ejemplos de instrucciones de carga.
Operandos
permitidos
En la tabla siguiente se enumeran los tipos de instrucciones de carga, sus
equivalentes en lenguaje Ladder, as como los operandos autorizados.
N
LD %I0.1
ST %Q0.3
LDN %M0
ST %Q0.2
LDR %I0.2
ST %Q0.4
LDF %I0.3
ST %Q0.5
P
%Q0.3
%Q0.2
%Q0.4
%Q0.5
%I0.1
%M0
%I0.2
%I0.3
Instruccin
de lista
Equivalente en
Ladder
Operandos permitidos
LD 0/1, %I, %IA, %IWCx.y.z:Xk, %Q, %QA, %M, %S, %X,
%BLK.x, %:Xk,[
LDN 0/1, %I, %IA, %IWCx.y.z:Xk, %Q, %QA, %M, %S, %X,
%BLK.x, %:Xk,[
LDR %I, %IA, %M
LDF %I, %IA, %M
P
N
Instrucciones bsicas
454 35013228 03/2007
Cronograma El siguiente diagrama muestra el cronograma de las instrucciones de carga.
%M0 %I0.3 %I0.1 %I0.2
LD LDN LDR LDF
%Q0.2 %Q0.5 %Q0.3 %Q0.4
Instrucciones bsicas
35013228 03/2007 455
Instrucciones de asignacin (ST, STN, R, S)
Introduccin Las instrucciones de asignacin ST, STN, S y R corresponden respectivamente a
las bobinas directa, inversa, de ajuste y de restablecimiento.
Ejemplos Los esquemas siguientes son ejemplos de instrucciones de asignacin.
Operandos
permitidos
En la tabla siguiente se enumeran los tipos de instrucciones de asignacin con los
operandos equivalentes y permitidos de Ladder.
LD %I0.1
ST %Q0.3
STN %Q0.2
S %Q0.4
LD %I0.2
R %Q0.4
%Q0.3
%Q0.2
%Q0.4
%Q0.4 %I0.2
%I0.1
R
S
/
Instruccin de lista Equivalente Ladder Operandos permitidos
ST %Q,%QA,%M,%S,%BLK.x,%:Xk
STN %Q,%QA%M,%S,%BLK.x,%:Xk
S %Q,%QA,%M,%S,%X,%BLK.x,%:Xk
R %Q,%QA,%M,%S,%X,%BLK.x,%:Xk
S
R
Instrucciones bsicas
456 35013228 03/2007
Cronograma La siguiente ilustracin muestra el cronograma de las instrucciones de asignacin.
%I0.1 %I0.2 %I0.1 %I0.1
ST STN S R
%Q0.2 %Q0.4 %Q0.3 %Q0.4
Instrucciones bsicas
35013228 03/2007 457
Instrucciones AND lgicas (AND, ANDN, ANDR, ANDF)
Introduccin Las instrucciones AND realizan una operacin lgica AND entre el operando (o su
inverso; o su flanco ascendente o descendente) y el resultado booleano de la
instruccin anterior.
Ejemplos Los siguientes diagramas son ejemplos de instrucciones AND lgicas.
Operandos
permitidos
En la tabla siguiente se enumeran los tipos de instrucciones AND con operandos
equivalentes y permitidos de Ladder.
LD %I0.1
AND %M1
ST %Q0.3
LD %M2
ANDN %I0.2
ST %Q0.2
LD %I0.3
ANDR %I0.4
S %Q0.4
LD %M3
ANDF %I0.5
S %Q0.5
%Q0.3
%Q0.2
%Q0.4
%Q0.5
S
S
%I0.1
%I0.2
%I0.4 %I0.3
%I0.5 %M3
%M2
%M1
N
P
Instruccin
de lista
Equivalente Ladder Operandos permitidos
AND 0/1, %I, %IA, %Q, %QA, %M, %S, %X, %BLK.x, %:Xk, [
ANDN 0/1, %I, %IA, %Q, %QA, %M, %S, %X, %BLK.x, %:Xk, [
ANDR %I, %IA, %M
ANDF %I, %IA, %M
P
N
Instrucciones bsicas
458 35013228 03/2007
Cronograma El siguiente diagrama muestra la temporizacin de las instrucciones AND.
%M2 %M3 %I0.1 %I0.3
AND ANDN ANDR ANDF
%I0.2 %I0.5 %M1 %I0.4
%Q0.2 %Q0.3 %Q0.4 %Q0.5
Instrucciones bsicas
35013228 03/2007 459
Instrucciones OR lgicas (OR, ORN, ORR, ORF)
Introduccin Las instrucciones OR realizan una operacin lgica OR entre el operando (o su inverso; o su
flanco ascendente o descendente) y el resultado booleano de la instruccin anterior.
Ejemplos Los siguientes diagramas son ejemplos de instrucciones OR lgicas.
LD %I0.1
OR %M1
ST %Q0.3
LD %M2
ORN %I0.2
ST %Q0.2
LD %M3
ORR %I0.4
S %Q0.4
LDF %I0.5
ORF %I0.6
S %Q0.5
%Q0.3
%Q0.2
%Q0.4
%Q0.5
S
S
%I0.1
%M1
%I0.2
%I0.4
%I0.5
%I0.6
%M2
%M3
P
N
N
Instrucciones bsicas
460 35013228 03/2007
Operandos
permitidos
En la tabla siguiente se enumeran los tipos de instrucciones OR con operandos
equivalentes y permitidos de Ladder.
Cronograma El siguiente diagrama muestra la temporizacin de las instrucciones OR.
Instruccin
de lista
Equivalente Ladder Operandos permitidos
OR 0/1, %I,%IA, %Q, %QA, %M, %S, %X, %BLK.x, %:Xk
ORN 0/1, %I,%IA, %Q, %QA, %M, %S, %X, %BLK.x, %:Xk
ORR %I, %IA, %M
ORF %I, %IA, %M
P
N
%M2 %I0.5 %I0.1 %M3
OR ORN ORR ORF
%I0.2 %I0.6 %M1 %I0.4
%Q0.2 %Q0.3 %Q0.4 %Q0.5
Instrucciones bsicas
35013228 03/2007 461
OR exclusivo, instrucciones (XOR, XORN, XORR, XORF)
Introduccin Las instrucciones XOR realizan una operacin de OR exclusivo entre el operando
(o su inverso; o su flanco ascendente o descendente) y el resultado booleano de la
instruccin precedente.
Ejemplos Las instrucciones XOR pueden utilizarse como se muestra en el ejemplo siguiente.
Operandos
permitidos
En la tabla siguiente se enumeran los tipos de instrucciones XOR y operandos
permitidos.
LD %I0.1
XOR %M1
ST %Q0.3
LD %I0.1
ANDN %M1
OR( %M1
ANDN %I0.1
)
ST %Q0.3
%Q0.3 %M1
%I0.1
XOR
%Q0.3
%I0.1
%I0.1
%M1
%M1
Esquema NOT con la instruccin XOR:
Esquema con la instruccin XOR:
Instruccin de lista Operandos permitidos
XOR %I, %IA, %Q, %QA, %M, %S, %X, %BLK.x, %:Xk
XORN %I, %IA, %Q, %QA, %M, %S, %X, %BLK.x, %:Xk
XORR %I, %IA, %M
XORF %I, %IA, %M
Instrucciones bsicas
462 35013228 03/2007
Cronograma El siguiente diagrama muestra la temporizacin de las instrucciones XOR.
Casos
especiales
A continuacin, se indica una serie de precauciones especiales que se deben
observar al utilizar instrucciones XOR en programas de Ladder:
No inserte contactos XOR en la primera posicin de una red.
No inserte contactos XOR de forma paralela con otros elementos de Ladder
(consulte el siguiente ejemplo).
Tal como se muestra en el siguiente ejemplo, la insercin de un elemento de forma
paralela con el contacto XOR generar un error de validacin.
%I0.1
XOR
%M1
%Q0.3
%Q1.10
%M10
XOR
%I1.5 %M13
Instrucciones bsicas
35013228 03/2007 463
Instruccin NOT (N)
Introduccin La instruccin NOT (N) niega el resultado booleano de la instruccin anterior.
Ejemplo A continuacin se muestra un ejemplo de uso de la instruccin NOT.
Operandos
permitidos
No aplicable.
Cronograma El siguiente diagrama muestra la temporizacin de la instruccin NOT.
Nota: La instruccin NOT no es reversible.
LD %I0.1
OR %M2
ST %Q0.2
N
AND %M3
ST %Q0.3
%I0.1
NOT
%M2
%Q0.2
%M3
%Q0.3
Instrucciones bsicas
464 35013228 03/2007
17.2 Bloques de funcin bsicos
Presentacin
Objeto Esta seccin proporciona descripciones y directrices de programacin para utilizar
bloques de funcin bsicos.
Contenido Esta seccin contiene los siguientes apartados:
Apartado Pgina
Bloques de funcin estndar 465
Principios para programar bloques de funcin estndar 467
Bloque de funcin del temporizador (%TMi) 469
Tipo de temporizador TOF 471
Tipo de temporizador TON 472
Tipo de temporizador TP 473
Programacin y configuracin de temporizadores 474
Bloque de funcin del contador progresivo/regresivo (%Ci) 477
Programacin y configuracin de contadores 480
Bloque de funcin del registro de bits de desplazamiento (%SBRi) 482
Bloque de funcin del contador de pasos (%SCi) 484
Instrucciones bsicas
35013228 03/2007 465
Bloques de funcin estndar
Introduccin Los bloques de funcin son los orgenes de los objetos de bit y las palabras especficas
utilizados por el programa. Los bloques de funcin bsicos proporcionan funciones
simples como, por ejemplo, temporizadores o conteo progresivo/regresivo.
Ejemplo de un
bloque de
funcin
A continuacin se muestra una ilustracin del bloque de funcin del contador
progresivo/regresivo.
Objetos bits Los objetos bits corresponden a las salidas de los bloques. Es posible acceder a
estos bits mediante las instrucciones de verificacin booleanas a travs de uno de
los mtodos siguientes:
Directamente (por ejemplo, LD E), si estn cableados al bloque en programacin
reversible (consulte p. 467).
Especificando el tipo de bloque (por ejemplo, LD %Ci.E).
Puede accederse a las entradas en forma de instrucciones.
Objetos de
palabra
Los objetos de palabra corresponden a parmetros y valores especificados, tal
como se indica a continuacin:
Parmetros de configuracin de bloques: es posible acceder a algunos
parmetros a travs del programa (por ejemplo, parmetros de preseleccin),
aunque a otros no (por ejemplo, base de tiempo).
Valores actuales: por ejemplo, %Ci.V, el valor de conteo actual.
Bloque del contador progresivo/regresivo
R E
S D
CD F
CU
%Ci
ADJ Y
%Ci.P 9999
Instrucciones bsicas
466 35013228 03/2007
Objetos palabras
y objetos bits
accesibles
En la siguiente tabla se describen los objetos palabras y los objetos bits de bloques
de funcin a los que puede acceder el programa.
Bloque de funcin
estndar
Smbolo Rango (i) Tipos de
objetos
Descripcin Direccin Acceso de
escritura
Temporizador %TMi 0 - 127 Palabra Valor actual %TMi.V no
Valor preestablecido %TMi.P s
Bit Salida del temporizador %TMi.Q no
Contador progresivo/
regresivo
%Ci 0 - 127 Palabra Valor actual %Ci.V no
Valor preestablecido %Ci.P s
Bit Salida de transgresin por
debajo de rango (vaco)
%Ci.E no
Salida predeterminada
alcanzada
%Ci.D no
Salida de desborde (lleno) %Ci.F no
Instrucciones bsicas
35013228 03/2007 467
Principios para programar bloques de funcin estndar
Introduccin Utilice uno de los mtodos que aparecen a continuacin para programar bloques de
funcin estndar:
Instrucciones de bloque de funcin (por ejemplo, BLK %TM2): mtodo reversible de
programacin en lenguaje Ladder reversible que permite que las operaciones que se
van a realizar en el bloque se lleven a cabo en un nico lugar del programa.
Instrucciones especficas (por ejemplo, CU %Ci): mtodo no reversible que
permite que las operaciones que van a realizarse en las entradas del bloque se
lleven a cabo en varias partes del programa (por ejemplo, line 100 CU %C1,
line 174 CD %C1, line 209 LD %C1.D).
Programacin
reversible
Utilice las instrucciones BLK, OUT_BLK y END_BLK para la programacin reversible:
BLK: indica el principio del bloque.
OUT_BLK: se utiliza para cablear directamente las salidas de bloque.
END_BLK: indica el final del bloque.
Ejemplo con
salidas
cableadas
El siguiente ejemplo muestra la programacin reversible de un bloque de funcin
del contador con salidas cableadas.
BLK %C8
LDF %I1.1
R
LD %I1.2
AND %M0
CU
OUT_BLK
LD D
AND %M1
ST %Q0.4
END_BLK
N
Procesamiento
de entrada
Procesamiento
de salida
R
S
CU
CD
E
D
F
%C8
ADJ Y
%Ci.P 9999
%I1.1
%I1.2 %M0
%M1 %Q0.4
Instrucciones bsicas
468 35013228 03/2007
Ejemplo sin
salida cableada
Este ejemplo muestra la programacin reversible de un bloque de funcin del
contador sin cableado en las salidas.
Nota: Slo se pueden colocar instrucciones de entrada y de prueba en el bloque
relevante entre las instrucciones BLK y OUT_BLK (o entre BLK y END_BLK
cuando no se programa OUT_BLK).
BLK %C8
LDF %I1.1
R
LD %I1.2
AND %M0
CU
END_BLK
LD %C8.D
AND %M1
ST %Q0.4
N
R
S
CU
CD
E
D
F
%C8
ADJ Y
%Ci.P 9999
%I1.1
%I1.2 %M0
%C8.D %M1 %Q0.4
Procesamient
o de entrada
Procesamiento
de salida
Instrucciones bsicas
35013228 03/2007 469
Bloque de funcin del temporizador (%TMi)
Introduccin Existen tres tipos de bloques de funcin del temporizador:
TON (temporizador de retraso durante el ajuste): este tipo de temporizador
permite gestionar los retrasos durante el ajuste.
TOF (temporizador de retraso durante el restablecimiento): este tipo de
temporizador permite gestionar los retrasos durante el restablecimiento.
TP (pulso de temporizador): utilice este tipo de temporizador para generar pulsos
de duracin determinada.
Los retrasos o perodos de pulsos de los temporizadores se pueden programar y
modificar mediante TwidoSuite.
Ilustracin A continuacin se muestra una ilustracin del bloque de funcin del temporizador.
TYPE TON
TB 1 min
ADJ Y
%TMi.P 9999
Bloque de funcin del temporizador
Q
IN
%TMi
Instrucciones bsicas
470 35013228 03/2007
Parmetros El bloque de funcin del temporizador dispone de los parmetros enumerados a
continuacin.
Parmetro Etiqueta Valor
Nmero de
temporizador
%TMi De 0 a 63: TWDLCAA10DRF y TWDLCAA16DRF.
De 0 a 127 para los dems autmatas.
Tipo TON retraso durante el ajuste (valor predeterminado)
TOF retraso durante el restablecimiento
TP pulso (monoestable)
Base de tiempo TB 1 min (predeterminado), 1 s, 100 ms, 10 ms, 1 ms
Valor actual %TMi.V Palabra que aumenta de 0 a %TMi.P cuando el temporizador est en
funcionamiento. Se puede leer y comprobar, pero no se puede escribir desde el
programa. %TMi.V se puede modificar utilizando el Editor de tablas de animacin.
Valor preestablecido %TMi.P 0 - 9.999. Palabra que se puede leer, comprobar y escribir desde el programa. El
valor predeterminado es 9.999. El perodo o retardo generado es %TMi.P x TB.
Editor de tablas de
animacin
Y/N Y: S, el valor preestablecido %TMi.P se puede modificar mediante el Editor de
tablas de animacin.
Nmero: No, el valor preestablecido %TMi.P no se puede modificar.
Entrada de validacin
(o de la instruccin)
IN Inicia el temporizador en flanco ascendente (tipos TON o TP) o en flanco
descendente (tipo TOF).
Salida del temporizador Q El bit asociado %TMi.Q se ajusta en 1 dependiendo de la funcin realizada:
TON, TOF, o TP.
Nota: Cuanto mayor sea el valor preestablecido, mayor ser la precisin del
temporizador.
Instrucciones bsicas
35013228 03/2007 471
Tipo de temporizador TOF
Introduccin Utilice el tipo de temporizador TOF (temporizador de retardo a la desconexin) para
controlar las acciones de retardo a la desconexin. Este retardo se puede
programar con TwidoSuite.
Cronograma El siguiente cronograma ilustra el funcionamiento del temporizador de tipo TOF.
Operacin En la siguiente tabla se describe el funcionamiento del temporizador de tipo TOF.
IN
Q
%TMi.
%TMi.
(1)
(3)
(4)
(2)
(5)
(1)
Fase Descripcin
1 El valor actual %TMi.V se establece en 0 en un flanco ascendente en la entrada IN,
aun cuando el temporizador se encuentre en ejecucin.
2 El bit de salida %TMi.Q se establece en 1 cuando se detecte un flanco ascendente
en la entrada N.
3 El temporizador inicia en el flanco descendente de la entrada IN.
4 El valor actual %TMi.V aumenta a %TMi.P en incrementos de una unidad por pulso
de la base de tiempo TB.
5 El bit de salida %TMi.Q se restablece en 0 cuando el valor actual llega a %TMi.P.
Instrucciones bsicas
472 35013228 03/2007
Tipo de temporizador TON
Introduccin Utilice el tipo de temporizador TON (temporizador de retardo a la conexin) para
controlar las acciones de retardo a la conexin. Este retardo puede programarse
con TwidoSuite.
Cronograma El siguiente cronograma ilustra el funcionamiento del temporizador de tipo TON.
Operacin En la siguiente tabla se describe el funcionamiento del temporizador de tipo TON.
IN
Q
%TMi.
%TMi.
(1)
(3)
(4)
(2)
(5)
Fase Descripcin
1 El temporizador inicia en el flanco ascendente de la entrada IN.
2 El valor actual %TMi.V aumenta de 0 a %TMi.P en incrementos de una unidad por
pulso de la base de tiempo TB.
3 El bit de salida %TMi.Q se establece en 1 cuando el valor actual llega a %TMi.P.
4 El bit de salida %TMi.Q permanece en 1 mientras la entrada IN est en 1.
5 Si se detecta un flanco descendente en la entrada IN, el temporizador se detiene, aun
cuando el temporizador no haya alcanzado el valor %TMi.P, y %TMi.V se establece en 0.
Instrucciones bsicas
35013228 03/2007 473
Tipo de temporizador TP
Introduccin El tipo de temporizador TP (pulso de temporizador) se utiliza para generar pulsos
de duracin determinada. Este retardo puede programarse con TwidoSuite.
Cronograma El siguiente cronograma ilustra el funcionamiento del temporizador de tipo TP.
Funcionamiento En la siguiente tabla se describe el funcionamiento del temporizador de tipo TP.
IN
Q
%TMi.P
%TMi.V
(1)
(3)
(4)
(5)
(2) (6)
Fase Descripcin
1 El temporizador se ejecuta en el flanco ascendente de la entrada IN. El valor actual
%TMi.V se pone en 0 si el temporizador an no se ha ejecutado.
2 El bit de salida %TMi.Q se establece en 1 cuando se inicia el temporizador.
3 El valor actual %TMi.V del temporizador aumenta de 0 a %TMi.P en incrementos de
una unidad por pulso de la base de tiempo TB.
4 El bit de salida %TMi.Q se establece en 0 cuando el valor actual llega a %TMi.P.
5 El valor actual %TMi.V se establece en 0 cuando %TMi.V es igual a %TMi.P y la
entrada IN vuelve a 0.
6 El temporizador no se puede restablecer en cero. Cuando %TMi.V es igual a
%TMi.P y la entrada IN se establece en 0, %TMi.V se ajusta en 0.
Instrucciones bsicas
474 35013228 03/2007
Programacin y configuracin de temporizadores
Introduccin Los bloques de funcin del temporizador (%TMi) se programan de la misma
manera, independientemente del modo en que vayan a utilizarse. La funcin del
temporizador (TON, TOF o TP) se selecciona durante la configuracin.
Ejemplos La ilustracin siguiente es un bloque de funcin del temporizador con ejemplos de
programacin reversible y no reversible.
Configuracin Durante la configuracin, deben introducirse los parmetros siguientes:
Tipo de temporizador: TON, TOF o TP
Base de tiempo: 1 min, 1 s, 100 ms, 10 ms o 1 ms
Valor preestablecido (%TMi.P): De 0 a 9999
Ajuste: comprobado o no comprobado
BLK %TM1
LD %I0.1
IN
OUT_BLK
LD Q
ST %Q0.3
END_BLK
LD %I0.1
IN %TM1
LD %TM1.Q
ST %Q0.3
Programacin reversible Programacin no reversible
Tipo TON
TB 1 min
ADJ Y
%TMi.P 9.999
%I0.1 %Q0.3
%TMi
IN Q
Instrucciones bsicas
35013228 03/2007 475
Casos
especiales
La tabla siguiente contiene una lista de casos especiales para programar el bloque
de funcin del temporizador:
Temporizadores
con una base de
tiempo de 1 ms
La base de tiempo de 1 ms slo est disponible con los primeros cinco
temporizadores. Las cuatro palabras de sistema, %SW76, %SW77, %SW78, y
SW79, pueden utilizarse como "relojes de arena". El sistema hace que estas cuatro
palabras disminuyan individualmente cada milisegundo si tienen un valor positivo.
Se pueden conseguir varias temporizaciones cargando de manera sucesiva una de
estas palabras o realizando comprobaciones de los valores intermedios. Si el valor
de una de estas cuatro palabras es menor que 0, no se modificar. Es posible
inmovilizar un temporizador estableciendo el bit 15 correspondiente en 1 y, a
continuacin, cancelando la inmovilizacin mediante su restablecimiento en 0.
Caso especial Descripcin
Efecto de un reinicio en fro (%S0=1) Fuerza el valor actual en 0. Establece la salida %TMi.Q en 0. El valor
preestablecido se restablece en el valor definido durante la configuracin.
Efecto de un reinicio en caliente
(%S1=1)
No tiene ningn efecto en los valores actuales y preestablecidos del
temporizador. El valor actual no vara durante un corte de alimentacin.
Efecto de una detencin del controlador La detencin del controlador no inmovilizar el valor actual.
Efecto de un salto del programa Un salto sobre el bloque del temporizador no inmovilizar el temporizador.
El temporizador contina aumentando hasta que alcanza el valor
preestablecido (%TMi.P). En este punto, el bit de finalizacin (%TMi.Q)
asignado a la salida Q del bloque del temporizador cambia de estado. Sin
embargo, la salida asociada conectada directamente a la salida del bloque
no se activa y el controlador no la explora.
Comprobacin por bit %TMi.Q (bit de
finalizacin)
Es recomendable realizar una prueba del bit %TMi.Q una nica vez en el
programa.
Efecto de modificar el valor
preestablecido %TMi.P
La modificacin del valor preestablecido mediante una instruccin o un ajuste
del valor slo tiene efecto cuando se vuelve a activar el temporizador.
Instrucciones bsicas
476 35013228 03/2007
Ejemplo de
programacin
A continuacin se muestra un ejemplo de programacin de un bloque de funcin del
temporizador.
LDR %I0.1 (inicio del temporizador en el flanco ascendente de
%I0.1)
[%SW76:=XXXX] (XXXX = valor necesario)
LD %I0.2 (gestin opcional de inmovilizacin, la entrada I0.2
queda inmovilizada)
ST %SW76:X15
LD [%SW76=0] (comprobacin final del temporizador)
ST %M0
..............
%I0.1
%SW76:=XXXX
%I0.2
%SW76:=0 %M0
%SW76:X15
P
Instrucciones bsicas
35013228 03/2007 477
Bloque de funcin del contador progresivo/regresivo (%Ci)
Introduccin El bloque de funcin del contador (%Ci) cuenta los eventos de forma progresiva y
regresiva. Estas dos operaciones se pueden realizar simultneamente.
Ilustracin A continuacin se muestra una ilustracin del bloque de funcin del contador
progresivo/regresivo.
ADJ Y
%Ci.P 9999
Bloque de funcin del contador progresivo/regresivo
R E
S D
CD F
CU
%Ci
Instrucciones bsicas
478 35013228 03/2007
Parmetros El bloque de funcin del contador contiene los parmetros siguientes:
Parmetro Etiqueta Valor
Nmero de contador %Ci de 0 a 127
Valor actual %Ci.V La palabra se incrementa o reduce de acuerdo con las entradas (o instrucciones)
CU y CD. Se puede leer y comprobar, pero no se puede escribir desde el
programa. Si desea modificar %Ci.V, utilice el editor de datos.
Valor preestablecido %Ci.P 0 %Ci.P 9.999. La palabra se puede leer, comprobar y escribir (valor
predeterminado: 9.999).
Edicin con el Editor de
tablas de animacin
ADJ Y: S, el valor preestablecido se puede modificar mediante el Editor de
tablas de animacin.
Nmero: No, el valor preestablecido no se puede modificar mediante el
Editor de tablas de animacin.
Restablecer entrada (o
instruccin)
R En estado 1: %Ci.V = 0.
Restablecer entrada (o
instruccin)
S En estado 1: %Ci.V = %Ci.P.
Conteo progresivo de la
entrada (o instruccin)
CU Incrementos %Ci.V en un flanco ascendente.
Conteo regresivo de la
entrada (o instruccin)
CD Disminuciones %Ci.V en un flanco ascendente.
Conteo regresivo de la
salida de desborde
E (Vaco) El bit asociado %Ci.E = 1, cuando el contador regresivo %Ci.V cambia de 0
a 9.999 (establecido en 1 cuando %Ci.V alcanza 9.999 y se restablece en 0
si el contador contina con el conteo regresivo).
Salida predeterminada
alcanzada
D (Hecho) El bit asociado %Ci.D = 1, cuando %Ci.V = %Ci.P.
Conteo progresivo de la
salida de desborde
F
(Completo)
El bit asociado %Ci.F = 1, cuando %Ci.V cambia de 9.999 a 0 (ajustado en
1 cuando %Ci.V alcanza 0 y se restablece en 0 si el contador contina con
el conteo progresivo).
Instrucciones bsicas
35013228 03/2007 479
Funcionamiento En la tabla siguiente se describen las fases principales de funcionamiento del
contador progresivo/regresivo.
Casos
especiales
En la tabla siguiente se muestra una lista de casos especiales de funcionamiento y
configuracin de los contadores.
Funcionamiento Accin Resultado
Conteo Aparece un flanco ascendente en la entrada de
conteo progresivo CU (o se activa la instruccin CU).
El valor actual de %Ci.V aumenta en una unidad.
El valor actual de %Ci.V es igual al valor
%Ci.P preestablecido.
El bit de salida "preestablecida alcanzada" %Ci.D
cambia a 1.
El valor actual %Ci.V cambia de 9.999 a 0. El bit de salida %Ci.F (desborde de conteo
progresivo) cambia a 1.
Si el contador contina con el conteo progresivo. El bit de salida %Ci.F (desborde de conteo
progresivo) se restablece en cero.
Conteo regresivo Aparece un flanco ascendente en la entrada de
conteo regresivo CD (o se activa la instruccin CD).
El valor actual de %Ci.V disminuye en una unidad.
El valor actual %Ci.V cambia de 0 a 9.999. El bit de salida %Ci.E (desborde de conteo
regresivo) cambia a 1.
Si el contador contina con el conteo regresivo. El bit de salida %Ci.F (desborde de conteo
regresivo) se restablece en cero.
Conteo progresivo/
regresivo
Para utilizar las funciones de conteo progresivo y regresivo al mismo tiempo (o activar las dos instrucciones
CD y CU), debern controlarse las entradas CU y CD correspondientes. Estas dos entradas se exploran
sucesivamente. Si las dos se encuentran en 1, el valor actual se mantendr sin cambios.
Puesta a cero Reestablecimiento en 1 de la entrada R (o
se activa la instruccin R).
El valor actual %Ci.V se fuerza en 0. Las salidas
%Ci.E, %Ci.D y %Ci.F estn en 0. La entrada
restablecida tiene prioridad.
Preajuste Si la entrada se establece en 1 (o si se activa la
instruccin S) y la entrada restablecida en cero
est en el estado 0 (o se inactiva la instruccin R).
El valor actual %Ci.V toma el valor %Ci.P y la
salida %Ci.D se establece en 1.
Caso especial Descripcin
Efecto de un reinicio en fro (%S0=1) El valor actual %Ci se establece en 0.
Los bits de salida %Ci.E, %Ci.D y %Ci.F se establecen en 0.
El valor preestablecido se inicializa con el valor definido durante la configuracin
Efecto de un reinicio en caliente
(%S1=1) de una detencin del autmata
No tiene ningn efecto sobre el valor actual del contador (%Ci.V).
Efecto de modificar el valor
preestablecido %Ci.P
La modificacin del valor preestablecido mediante una instruccin o
ajustndolo entra en vigor cuando la aplicacin procesa el bloque
(activacin de una de las entradas).
Instrucciones bsicas
480 35013228 03/2007
Programacin y configuracin de contadores
Introduccin El ejemplo siguiente muestra un contador que permite contar hasta un mximo de
5.000 elementos. Cada pulso de entrada %I1.2 (cuando el bit interno %M0 est en
1) incrementa el contador %C8 hasta su valor preestablecido final (bit %C8.D=1).
El contador se restablece mediante la entrada %I1.1.
Ejemplo de
programacin
La siguiente ilustracin es un bloque de funcin del contador con ejemplos de
programacin reversibles y no reversibles.
Configuracin Durante la configuracin, deben introducirse los siguientes parmetros:
Valor preestablecido (%Ci.P): definido en 5.000 en este ejemplo
Ajuste: s
BLK %C8
LD %I1.1
R
LD %I1.2
AND %M0
CU
END_BLK
LD %C8.D
ST %Q0.0
R
S
CU
CD
E
D
F
%C8
ADJ Y
%Ci.P 9999
%I1.1
%I1.2 %M0
%C8.D %Q0.0
Programacin reversible Programacin no reversible
Diagrama Ladder
LD %I1.1
R %C8
LD %I1.2
AND %M0
CU %C8
LD %C8.D
ST %Q0.0
Instrucciones bsicas
35013228 03/2007 481
Ejemplo de
contador
progresivo/
regresivo
A continuacin se muestra una ilustracin del bloque de funcin del contador
progresivo/regresivo.
En este ejemplo, si tomamos %C1.P 4, el valor actual del contador %C1.V aumentar
de 0 a 3 y disminuir luego de 3 a 0; mientras %I0.0=1 %C1.V oscila entre 0 y 3.
R
S
CU
CD
E
D
F
%C1
%I0.0
%M0 %I0.0
Diagrama Ladder
%M0
%M0
%M0
R
S
Instrucciones bsicas
482 35013228 03/2007
Bloque de funcin del registro de bits de desplazamiento (%SBRi)
Introduccin El bloque de funcin del registro de bits de desplazamiento (%SBRi) proporciona un
desplazamiento de bits de datos binarios a la izquierda o la derecha (0 1).
Ilustracin A continuacin se muestra un ejemplo de un bloque de funcin del registro de
desplazamiento.
Parmetros El bloque de funcin del registro de bits de desplazamiento contiene los siguientes
parmetros.
%SBRi
R
CU
CD
Parmetro Etiqueta Valor
Nmero de registro %SBRi De 0 a 7
Bit de registro %SBRi.j Los bits 0 a 15 (j = 0 a 15) del registro de
desplazamiento pueden probarse mediante una
instruccin de prueba y escribirse utilizando una
instruccin de asignacin.
Restablecer entrada (o
instruccin)
R Cuando el parmetro de funcin R es 1, los bits de
registro de 0 a 15 %SBRi.j se establecen en 0.
Desplazar hacia la entrada
izquierda (o instruccin)
CU En un flanco ascendente, desplaza un bit de
registro a la izquierda.
Desplazar hacia la entrada
derecha (o instruccin)
CD En un flanco ascendente, desplaza un bit de
registro a la derecha.
Instrucciones bsicas
35013228 03/2007 483
Operacin La siguiente ilustracin muestra un modelo de bit antes y despus de una operacin
de desplazamiento.
Esto tambin es aplicable para una solicitud de desplazamiento de un bit a la
derecha (Bit 15 a Bit 0) mediante la instruccin CD. El bit 0 se pierde.
Si un registro de 16 bits no es adecuado, es posible utilizar el programa para
mostrar en cascada varios registros.
Programacin En el siguiente ejemplo, un bit se desplaza a la izquierda cada segundo mientras el
bit 0 asume el estado opuesto al bit 15.
Casos
especiales
La siguiente tabla contiene una lista de casos especiales para programar el bloque
de funcin del registro de bits de desplazamiento.
Bit 15 Bit 0
Bit 15 Bit 0
Estado inicial
de la operacin
CU %SBRi realiza un
desplazamiento a la
izquierda
El bit 15 se pierde
1 1 1 1 1 1 1
1 1 1 1 1 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 1
LDN %SBR0.15
ST %SBR0.0
BLK %SBR0
LD %S6
CU
END_BLK
LDN %SBR0.15
ST %SBR0.0
LD %S6
CU %SBR0
Programacin
reversible
Programacin
no reversible
%SBR0.0 %SBR0.15
/
%SBR0
R
CU
CD
%S6
Caso especial Descripcin
Efecto de un reinicio en fro (%S0=1) Establece todos los bits de la palabra de registro en 0.
Efecto de un reinicio en caliente (%S1=1) No tiene efecto sobre los bits de la palabra de registro.
Instrucciones bsicas
484 35013228 03/2007
Bloque de funcin del contador de pasos (%SCi)
Introduccin Un bloque de funcin del contador de pasos (%SCi) permite realizar una serie de pasos
a los que se pueden asignar acciones. El desplazamiento de un paso a otro depende de
eventos internos o externos. Cada vez que un paso est activo, el bit asociado (bit de
contador de pasos %SCi.j) se establece en 1. El contador de pasos puede controlar los
bits de salida (%Qi.j), los bits internos (%Mi) o bits de salida slave de AS Interface
(%QAx.y.z). Slo se puede activar un paso de un contador de pasos cada vez.
Ilustracin A continuacin, se muestra un ejemplo de un bloque de funcin del contador de pasos.
Parmetros El bloque de funcin de pasos contiene los parmetros siguientes:
Cronograma El cronograma que aparece a continuacin muestra el funcionamiento del bloque
del contador de pasos.
%SCi
R
CU
CD
Parmetro Etiqueta Valor
Nmero del contador de pasos %SCi 0 - 7
Bit del contador de pasos %SCi.J Los bits del contador de pasos 0 a 255 (j = de 0 a 255) se pueden
comprobar mediante una operacin lgica de carga y se pueden
escribir mediante la instruccin de asignacin.
Restablecer entrada (o instruccin) R Cuando el parmetro de funcin R es 1, se restablece el contador de pasos.
Entrada (o instruccin) de aumento CU En un flanco ascendente, aumenta un paso el contador de pasos.
Entrada (o instruccin) de disminucin CD En un flanco ascendente, disminuye un paso el contador de pasos.
Entrada CU
Entrada CD
Nmero del
paso activo
0 1 2 3 2 1 0
Instrucciones bsicas
35013228 03/2007 485
Programacin A continuacin, se muestra un ejemplo de un bloque de funcin del contador de pasos.
La entrada %I0.2 aumenta el contador de pasos 0.
El contador de pasos 0 se restablece en 0 cuando llega al paso 3 o mediante la entrada %I0.3.
El paso 0 controla la salida %Q0.1, el paso 1 controla la salida %Q0.2 y el paso
2 controla la salida %Q0.3.
La ilustracin que aparece a continuacin muestra tanto la programacin reversible
como la no reversible relativas al ejemplo.
Caso especial La siguiente tabla contiene una lista de casos especiales de funcionamiento del
bloque de funcin del contador de pasos.
BLK %SC0
LD %SC0.3
OR %I0.3
R
LD %I0.2
CU
END_BLK
LD %SC0.0
ST %Q0.1
LD %SC0.1
ST %Q0.2
LD %SC0.2
ST %Q0.3
LD %SC0.3
OR %I0.3
R %SC0
LD %I0.2
CU %SC0
LD %SC0.0
ST %Q0.1
LD %SC0.1
ST %Q0.2
LD %SC0.2
ST %Q0.3
Programacin
reversible
Programacin
no reversible
%SC0.3
%I0.3
%I0.2
%SC0
R
CU
CD
%Q0.1 %SC0.0
%SC0.1
%SC0.2
%Q0.2
%Q0.3
Caso especial Descripcin
Efecto de un reinicio en fro (%S0=1) Inicializa el contador de pasos.
Efecto de un reinicio en caliente (%S1=1) No tiene ningn efecto sobre el contador de pasos.
Instrucciones bsicas
486 35013228 03/2007
17.3 Procesamiento numrico
Presentacin
Objeto Esta seccin ofrece una introduccin al procesamiento numrico. Incluye
descripciones y directrices de programacin.
Contenido Esta seccin contiene los siguientes apartados:
Apartado Pgina
Introduccin a las instrucciones numricas 487
Instrucciones de asignacin 488
Instrucciones de comparacin 492
Instrucciones aritmticas en enteros 494
Instrucciones lgicas 497
Instrucciones de desplazamiento 498
Instrucciones de conversin 500
Instrucciones de conversin de palabras simples y dobles 502
Instrucciones bsicas
35013228 03/2007 487
Introduccin a las instrucciones numricas
Presentacin Normalmente, las instrucciones numricas se aplican a palabras de 16 bits
(consulte p. 31) y a palabras dobles de 32 bits (vase p. 35). Se escriben entre
corchetes. Si el resultado de la operacin de lgica anterior era verdadero
(acumulador booleano = 0), se ejecuta la instruccin numrica. Si el resultado de la
operacin lgica anterior era falso, (acumulador booleano = 0), la instruccin
numrica no se ejecuta y el operando permanece intacto.
Instrucciones bsicas
488 35013228 03/2007
Instrucciones de asignacin
Introduccin Las instrucciones de asignacin se utilizan para cargar el operando Op2 en el operando Op1.
Asignacin Sintaxis de las instrucciones de asignacin.
Pueden realizarse operaciones de asignacin en:
Cadenas de bits
Palabras
Palabras dobles
Flotantes
Tablas de palabras
Tablas de palabras dobles
Tablas de flotantes
Asignacin de
cadenas de bits
Las operaciones pueden llevarse a cabo en las cadenas de bits siguientes (consulte
la seccin p. 48):
Cadena de bits -> cadena de bits (Ejemplo 1)
Cadena de bits -> palabra (Ejemplo 2) o palabra doble (indexada)
Palabra o palabra doble (indexada) -> cadena de bits (Ejemplo 3)
Valor inmediato -> cadena de bits
Ejemplos Ejemplos de asignaciones de cadenas de bits.
Normas de uso:
Para la asignacin de cadena de bits -> palabra: Los bits de la cadena se
transfieren a la palabra comenzando por la derecha (primer bit de la cadena al
bit 0 de la palabra), y los bits de palabra no implicados en la transferencia
(longitud 16) se ponen en 0.
Para la asignacin de palabra -> cadena de bits: los bits de palabra se transfieren
desde la derecha (bit de palabra 0 al primer bit de la cadena).
[Op1:=Op2] <=> Op2 -> Op1
LD 1
[%Q0:8:=%M64:8]
LD %I0.2
[%MW100:=%I0:16]
LDR %I0.3
(Ex. 1)
(Ex. 2)
(Ex. 3)
%Q0:8:=%M64:8
%MW100:=%I0:16
%M104:16:=%KW0
%I0.2
%I0.3
P
Instrucciones bsicas
35013228 03/2007 489
Asignaciones de
cadenas de bits
Sintaxis de las asignaciones de cadenas de bits.
Asignacin de
palabras
Las operaciones de asignacin se pueden ejecutar en las palabras y en las palabras
dobles siguientes:
Palabra (indexada) -> palabra (Ejemplo 2) (indexada o no)
Palabra doble (indexada) -> palabra doble (indexada o no)
Valor entero inmediato -> palabra (Ejemplo 3) o palabra doble (indexadas o no)
Cadena de bits -> palabra o palabra doble
Flotante (indexada o no) -> flotante (indexada o no)
Palabra o palabra doble -> cadena de bits
Valor flotante inmediato -> flotante (indexado o no)
Ejemplos Ejemplos de asignaciones de palabras.
Operador Sintaxis Operando 1 (Op1) Operando 2 (Op2)
:= [Op1 : = Op2]
El operando 1 (Op1)
asume el valor del
operando 2 (Op2)
%MWi,%QWi, %QWCi
%QWAi,%SWi
%MWi[%MWi], %MDi,
%MDi[%MWi]
%Mi:L, %Qi:L, %Si:L, %Xi:L
Valor inmediato, %MWi, %KWi, %IW,%IWAi,
%IWCi %INWi, %QWi, %QWAi %QWCi,
%QNWi, %SWi, %BLK.x, %MWi[%MWi],
%KWi[%MWi], %MDi[%MWi], %KDi[%MWi],
%Mi:L,%Qi:L, %Si:L, %Xi:L, %Ii:L
Nota: La abreviatura %BLK.x (por ejemplo, %C0.P) se utiliza para describir
cualquier palabra de bloque de funcin.
LD 1
[%SW112:=%MW100]
LD %I0.2
[%MW0[%MW10]:=
%KW0[%MW20]]
LDR %I0.3
[%MW10:=100]
(Ex. 1)
(Ex. 2)
(Ex. 3)
%SW112:=%MW100
%MW0[%MW10]:=%KW0[%MW20]
%MW10:=100 %I0.3
%I0.2
P
Instrucciones bsicas
490 35013228 03/2007
Sintaxis Sintaxis de asignaciones de palabras.
En la tabla siguiente se detallan los operandos:
Asignacin de
tablas de
palabras,
palabras dobles
o flotantes
Pueden realizarse operaciones de asignacin en las siguientes tablas de palabras
de objetos (consulte la seccin p. 49):
Valor entero inmediato -> tabla de palabras (Ejemplo 1) o de palabras dobles
Palabra -> tabla de palabras (Ejemplo 2)
Tabla de palabras -> tabla de palabras (Ejemplo 3)
La longitud de la tabla (L) debe ser igual para ambas tablas.
Palabra doble -> tabla de palabras dobles
Tabla de palabras dobles -> tabla de palabras dobles
La longitud de la tabla (L) debe ser igual para ambas tablas.
Valor flotante inmediato -> tabla de flotantes
Flotante -> tabla de flotantes
Tabla de flotantes -> tabla de flotantes
La longitud de la tabla (L) debe ser igual para ambas tablas.
Operador Sintaxis
:= [Op1 : = Op2]
El operando 1 (Op1) asume el valor del operando 2 (Op2)
Tipo Operando 1 (Op1) Operando 2 (Op2)
palabra,
palabra doble,
cadena de bits
%BLK.x, %MWi, %QWi,
%QWAi, %QWCi, %SWi
%MWi[MWi], %MDi,
%MDi[%MWj], %Mi:L,
%Qi:L, %Si:L, %Xi:L
Valor inmediato, %MWi, %KWi, %IW, %IWAi,
%IWCi, %QWi, %QWAi,%QWCi, %SWi,
%MWi[MWi], %KWi[MWi], %MDi,
%MDi[%MWj], %KDi, %KDi[MWj] %INW,
%Mi:L, %Qi:L, %QNW, %Si:L, %Xi:L, %Ii:L
Flotante %MFi, %MFi[%MWj] Valor flotante inmediato, %MFi, %MFi[%MWj],
%KFi, %KFi[%MWj]
Nota: La abreviatura %BLK.x (por ejemplo, %R3.I) se utiliza para describir cualquier
palabra de bloque de funcin. Para las cadenas %Mi:L, %Si:L y %Xi:L, la direccin de
base del primer bit de la cadena debe ser un mltiplo de 8 (0, 8, 16, ..., 96, ...).
Instrucciones bsicas
35013228 03/2007 491
Ejemplos Ejemplos de asignaciones de tablas de palabras:
Sintaxis Sintaxis de las asignaciones de tablas de palabras, palabras dobles y flotantes.
En la tabla siguiente se detallan los operandos:
LD 1
[%MW0:10:=100]
LD %I0.2
[%MW0:10:=%MW11]
LDR %I0.3
[%MW10:20:=%KW30:20]
(Ex. 1)
(Ex. 2)
(Ex. 3)
%MW0:10:=100
%MW0:10:=%MW11
%MW10:20:=%KW30:20
%I0.2
%I0.3
P
Operador Sintaxis
:= [Op1 : = Op2]
El operando 1 (Op1) asume el valor del operando 2 (Op2)
Tipo Operando 1 (Op1) Operando 2 (Op2)
Tabla de palabras %MWi:L, %SWi:L %MWi:L, %SWi:L, Valor entero inmediato,
%MWi, %KWi, %IW, %QW, %IWA, %QWA,
%SWi, %BLK.x
Tablas de palabras
dobles
%MDi:L Valor entero inmediato, %MDi, %KDi,%MDi:L,
%KDi:L
Tablas de flotantes %MFi:L Valor flotante inmediato, %MFi, %KFi, %MFi:L,
%KFi:L
Nota: La abreviatura %BLK.x (por ejemplo, R3.I) se utiliza para describir cualquier
palabra de bloque de funcin.
Instrucciones bsicas
492 35013228 03/2007
Instrucciones de comparacin
Introduccin Las instrucciones de comparacin se utilizan para comparar dos operandos.
En la tabla siguiente se enumeran los diferentes tipos de instrucciones de comparacin.
Estructura La comparacin se ejecuta entre corchetes siguiendo las instrucciones LD, AND y
OR. El resultado es 1 cuando la comparacin solicitada es verdadera.
Ejemplos de instrucciones de comparacin.
Instruccin Funcin
> Comprueba si el operando 1 es mayor que el operando 2.
>= Comprueba si el operando 1 es mayor o igual que el operando 2.
< Comprueba si el operando 1 es menor que el operando 2.
<= Comprueba si el operando 1 es menor o igual que el operando 2.
= Comprueba si el operando 1 es igual al operando 2.
<> Comprueba si el operando 1 es distinto al operando 2.
LD [%MW10 > 100]
ST %Q0.3
LD %M0
AND [%MW20 < %KW35]
ST %Q0.2
LD %I0.2
OR [%MF30>=%MF40]
ST %Q0.4
%Q0.3
%Q0.2
%Q0.4
%M0
%I0.2
%MW10>100
%MW20<%KW35
%MF30>=%MF40
Instrucciones bsicas
35013228 03/2007 493
Sintaxis Sintaxis de las instrucciones de comparacin:
Operandos:
Ejemplo de utilizacin de una instruccin de comparacin entre parntesis:
Operador Sintaxis
>, >=, <, <=, =, <> LD [Op1 Operador Op2]
AND [Op1 Operador Op2]
OR [Op1 Operador Op2]
Tipo Operando 1 (Op1) Operando 2 (Op2)
Palabras %MWi, %KWi, %INWi, %IW,
%IWAi, %IWCi, %QNWi,
%QWi, %QWAi, %QWCi,
%QNWi, %SWi, %BLK.x
Valor inmediato, %MWi, %KWi, %INWi,
%IW, %IWAi, %IWCi, %QNWi, %QW,
%QWAi, %QWCi, %SWi, %BLK.x,
%MWi [%MWi], %KWi [%MWi]
Palabras dobles %MDi, %KDi Valor inmediato, %MDi, %KDi, %MDi
[%MWi], %KD [%MWi]
Palabras de punto
flotante
%MFi, %KFi Valor flotante inmediato, %MFi, %KFi,
%MFi [%MWi], %KFi [%MWi]
Nota: Las instrucciones de comparacin pueden utilizarse entre parntesis.
LD %M0
AND( [%MF20 > 10.0]
OR %I0.0
)
ST %Q0.1
Instrucciones bsicas
494 35013228 03/2007
Instrucciones aritmticas en enteros
Introduccin Las instrucciones aritmticas se utilizan para realizar operaciones aritmticas entre
dos operandos enteros o en un operando entero.
En la tabla siguiente se enumeran los diferentes tipos de instrucciones aritmticas.
Estructura Las operaciones aritmticas se realizan del siguiente modo:
Sintaxis La sintaxis depende de los operadores utilizados, tal como se muestra en la siguiente tabla.
Instruccin Funcin
+ Agregar dos operandos.
- Sustraer dos operandos.
* Multiplicar dos operandos.
/ Dividir dos operandos.
REM Resto de la divisin de dos operandos
SQRT Raz cuadrada de un operando
INC Aumentar un operando.
DEC Disminuir un operando.
ABS Valor absoluto de un operando
LD %M0
[%MW0:=%MW10 + 100]
LD %I0.2
[%MW0:=SQRT(%MW10)]
LDR %I0.3
[INC %MW100]
%I0.3
P
%I0.2
%M0
%MW0:=%MW10+100
%MW0:=SQRT(%MW10)
INC %MW100
Operador Sintaxis
+, -, *, /, REM [Op1: = Op 2 Operador Op3]
INC, DEC [Operador Op1]
SQRT (1) [Op1: = SQRT(Op2)]
ABS (1) [Op1: = ABS(Op2)]
Instrucciones bsicas
35013228 03/2007 495
Operandos:
Desborde y
condiciones de
error
Adicin
Desborde en la operacin con palabras
Si el resultado supera la capacidad de la palabra de resultados, el bit %S18
(desborde) se establece en 1 y el resultado no es significativo (consulte el ejemplo 1
en la siguiente pgina). El programa de aplicacin gestiona el bit %S18.
Nota:
Para las palabras dobles, los lmites son -2.147.483.648 y 2.147.483.647.
Multiplicacin
Desborde durante la operacin
Si el resultado supera la capacidad de la palabra de resultados, el bit %S18
(desborde) se establece en 1 y el resultado no es significativo.
Divisin/resto
Divisin por 0
Si el divisor es 0, la divisin es imposible y el bit del sistema %S18 se establece
en 1. El resultado es incorrecto.
Desborde durante la operacin
Si el cociente de la divisin supera la capacidad de la palabra de resultados, el
bit de sistema %S18 se establece en 1.
Extraccin de la raz cuadrada
Desborde durante la operacin
La extraccin de la raz cuadrada slo se realiza en valores positivos. De este
modo, el resultado siempre es positivo. Si el operando de la raz cuadrada es
negativo, el bit del sistema %S18 se establece en 1 y el resultado es incorrecto.
Tipo Operando 1 (Op1) Operandos 2 y 3 (Op2 & 3) (1)
Palabras %MWi, %QWi,
%QWAi, %QWCi,
%SWi
Valor inmediato, %MWi, %KWi, %INW, %IW,
%IWAi, %IWCi, %QNW, %QW, %QWAi,
%QWCi, %SWi, %BLK.x
Palabras dobles %MDi Valor inmediato, %MDi, %KDi
Nota: (1) Con este operador, Op2 no puede ser un valor inmediato.
La funcin ABS slo se puede emplear con palabras dobles (%MD y %KD) y
comas flotantes (%MF y %KF). Por lo tanto, OP1 y OP2 deben ser palabras dobles
o comas flotantes.
Nota: El programa de aplicacin es responsable de la gestin de los bits de
sistema %S17 y %S18. El controlador los establece en 1 y el programa debe
restablecerlos para que puedan volver a utilizarse (para ver un ejemplo, consulte
la pgina anterior).
Instrucciones bsicas
496 35013228 03/2007
Ejemplos Ejemplo 1: desborde durante la adicin
Si %MW1 =23.241 y %MW2=21.853, el resultado real (45.094) no puede
expresarse en una palabra de 16 bits, el bit %S18 se establece en 1 y el resultado
obtenido (-20.442) es incorrecto. En este ejemplo, cuando el resultado es superior
a 32.767, su valor se fija en 32.767.
LD %M0
[%MW0:=%MW1 + %MW2]
LDN %S18
[%MW10:=%MW0]
LD %S18
[%MW10:=32767]
R %S18
%M0
%S18
%S18
%MW0:=%MW1+%MW2
%MW10:=%MW0
%MW10:=32767
%S18
R
/
Instrucciones bsicas
35013228 03/2007 497
Instrucciones lgicas
Introduccin Las instrucciones lgicas se utilizan para realizar operaciones lgicas entre dos
operandos o en un operando.
En la tabla siguiente se enumeran los diferentes tipos de instrucciones lgicas:
Estructura Las operaciones de lgica se realizan tal como se muestra a continuacin:
Sintaxis La sintaxis vara segn el operador que se utilice:
Ejemplo: A continuacin, se muestra una instruccin AND lgica.
[%MW15:=%MW32 AND %MW12]
Instruccin Funcin
AND AND (mbito de bit) entre dos operandos
OR OR lgica (mbito de bit) entre dos operandos
XOR OR exclusiva (mbito de bit) entre dos operandos
NOT Complemento lgico (mbito de bit) de un operando
LD %M0
[%MW0:=%MW10 AND 16#FF00]
LD 1
[%MW0:=%KW5 OR %MW10]
LD %I0.3
[%MW102:=NOT(%MW100)]



%M0
%I0.3
%MW0:=%MW10 AND 16#FF00
[%MW0:=%KW5 OR %MW10]
%MW102:=NOT (%MW100)
Operador Sintaxis Operando 1 (Op1) Operandos 2 y 3 (Op2 y 3)
AND, OR, XOR [Op1 : = Op2 Operador Op3] %MWi, %QWi,
%QWAi, %QWCi,
%SWi
Valor inmediato (1), %MWi, %KWi, %IW,
%IWAi, %IWCi, %QW, %QWAi, %QWCi,
%SWi, %BLK.x
NOT [Op1:=NOT(Op2)]
Nota: (1) Con NOT, Op2 no puede ser un valor inmediato.
Instrucciones bsicas
498 35013228 03/2007
Instrucciones de desplazamiento
Introduccin Las instrucciones de desplazamiento mueven los bits de un operando un
determinado nmero de posiciones hacia la izquierda o hacia la derecha.
En la tabla siguiente se enumeran los tipos de instrucciones de desplazamiento.
Instruccin Funcin
Desplazamiento lgico
SHL(op2,i) Desplazamiento lgico
de i posiciones hacia la
izquierda
SHR(op2,i) Desplazamiento lgico
de i posiciones hacia la
derecha
Desfase de rotacin
ROR(op2,i) Desfase de rotacin de i
posiciones hacia la
izquierda
ROR(op2,i) Desfase de rotacin de i
posiciones hacia la
derecha
Nota: Bit del sistema %S17 (vase p. 688) se usa para indicar el ltimo bit expulsado.
F 0
%S17
F 0
%S17
F 0
F 0
%S17
%S17
Instrucciones bsicas
35013228 03/2007 499
Estructura Las operaciones de desplazamiento se realizan tal como se muestra a continuacin:
Sintaxis La sintaxis depende de los operadores utilizados, tal como se muestra en la
siguiente tabla.
Operandos:
LDR %I0.1
[%MW0 :=SHL(%MW10, 5)]
LDR %I0.2
[%MW10 :=ROR(%KW9, 8)]
%I0.2
P
P %MW0:=SHL(%MW10, 5)
%MW10:=ROR(%KW9, 8)
%I0.1
Operador Sintaxis
SHL, SHR [Op1: = Operador (Op2,i)]
ROL, ROR
Tipos Operando 1 (Op1) Operando 2 (Op2)
Palabras %MWi, %QWi, %QWAi,
%QWCi, %SWi
%MWi, %KWi, %IW, %IWAi, %IWCi, %QW,
%QWAi, %QWCi, %SWi, %BLK.x
Palabra doble %MDi %MDi, %KDi
Instrucciones bsicas
500 35013228 03/2007
Instrucciones de conversin
Introduccin Las instrucciones de conversin realizan conversiones entre distintas representa-
ciones de nmeros.
En la tabla siguiente se enumeran los tipos de instrucciones de conversin.
Revisin del
cdigo BCD
Decimal codificado en binario (BCD) representa un dgito decimal (0 a 9) con cdigo
de cuatro bits. Un objeto de palabra de 16 bits puede contener, de este modo, un
nmero expresado con cuatro cifras (0000 - 9.999) y un objeto de palabra de 32 bits
puede contener un nombre expresado por ocho cifras.
Durante una conversin, el bit de sistema %S18 se establece en 1 si el valor no es
BCD. Este bit se debe verificar y restablecer en 0 por el programa.
Representacin BCD de nmeros decimales:
Ejemplos:
La palabra %MW5 expresa el valor BCD "2450", que corresponde al valor
binario: 0010 0100 0101 0000
La palabra %MW12 expresa el valor decimal "2450", que corresponde al valor
binario: 0000 1001 1001 0010
La palabra %MW5 se convierte en la palabra %MW12 mediante la instruccin BTI.
La palabra %MW12 se convierte en la palabra %MW5 mediante la instruccin ITB.
Instruccin Funcin
BTI Conversin BCD --> binario
ITB Conversin binario --> BCD
Decimal 0 1 2 3 4 5 6 7 8 9
BCD 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001
Instrucciones bsicas
35013228 03/2007 501
Estructura Las operaciones de conversin se realizan del siguiente modo:
Sintaxis La sintaxis depende de los operadores utilizados, tal como se muestra en la
siguiente tabla.
Operandos:
Ejemplos de
aplicacin:
La instruccin BTI se utiliza para procesar un valor terico en las entradas del
controlador a travs de las ruedas codificadoras en BCD.
La instruccin se utiliza para mostrar los valores numricos (por ejemplo, el
resultado de un clculo, el valor actual de un bloque de funcin) en monitores de
operacin con codificacin BCD.
LD %M0
[%MW0 :=BTI(%MW10)]
LD %I0.2
[%MW10 :=ITB(%KW9)]
%I0.2
%M0
%MW0:=BTI(%MW10)
%MW10:=ITB(%KW9)
Operador Sintaxis
BTI, ITB [Op1: = Operador (Op2)]
Tipo Operando 1 (Op1) Operando 2 (Op2)
Palabras %MWi, %QWi, %QWAi,
%QWCi, %SWi
%MWi, %KWi, %IW, %IWAi, %IWCi, %QW,
%QWAi, %QWCi, %SWi, %BLK.x
Palabras dobles %MDi %MDi, %KDi
Instrucciones bsicas
502 35013228 03/2007
Instrucciones de conversin de palabras simples y dobles
Introduccin En la tabla siguiente se describen las instrucciones de conversiones de palabras
simples y dobles:
Estructura Las operaciones de conversin se realizan del siguiente modo:
Sintaxis La sintaxis depende de los operadores empleados, tal como se indica en la tabla
siguiente: l
Instruccin Funcin
LW Extrae el byte menos significativo de una palabra doble a una palabra.
HW Extrae el byte ms significativo de una palabra doble a una palabra.
CONCATW Concatena dos palabras para formar una palabra doble.
DWORD Convierte una palabra de 16 bits en una palabra doble de 32 bits.
LD %M0
[%MW0 :=HW(%MD10)]
LD %I0.2
[%MD10 :=DWORD(%KW9)]
LD %I0.3
[%MD11:=CONCATW(%MW10,%MW5)]
%I0.2
%M0
%MW0:=HW(%MD10)
%MD10:=DWORD(%KW9)
%I0.3 %MD11:=CONCATW(%MW10, %MW5)
Operador Sintaxis Operando 1
(Op1)
Operando 2
(Op2)
Operando 3
(Op3)
LW, HW Op1 = Operador (Op2) %MWi %MDi, %KDi [-]
CONCATW Op1 = Operador (Op2, Op3) %MDi %MWi, %KWi,
valor inmediato
%MWi, %KWi,
valor inmediato
DWORD Op1 = Operador (Op2) %MDi %MWi, %KWi [-]
Instrucciones bsicas
35013228 03/2007 503
17.4 Instrucciones del programa
Presentacin
Objeto En esta seccin se muestra una introduccin de las instrucciones del programa.
Contenido Esta seccin contiene los siguientes apartados:
Apartado Pgina
Instrucciones END 504
Instruccin NOP 506
Instrucciones de salto 507
Instrucciones de subrutina 508
Instrucciones bsicas
504 35013228 03/2007
Instrucciones END
Introduccin Las instrucciones END definen el final de la ejecucin de un ciclo de programa.
END, ENDC y
ENDCN
Existen tres instrucciones de fin disponibles:
END: fin incondicional del programa.
ENDC: fin de programa si el resultado booleano de la instruccin de prueba
precedente es 1.
ENDCN: fin de programa si el resultado booleano de la instruccin de prueba
precedente es 0.
De forma predeterminada (modo normal), cuando se activa el fin de un programa,
las salidas se actualizan y se inicia el siguiente ciclo.
Si el ciclo es peridico, cuando se alcanza el final del periodo se actualizan las
salidas y se inicia el ciclo siguiente.
Instrucciones bsicas
35013228 03/2007 505
Ejemplos Ejemplo de una instruccin END incondicional.
Ejemplo de una instruccin END condicional.
LD %M1
ST %Q0.1
LD %M2
ST %Q0.2
...................
END
%M1
%M2
%Q0.1
%Q0.2
END
LD %M1
ST %Q0.1
LD %M2
ST %Q0.2
...................
LD %I0.2
ENDC
LD %M2
ST %Q0.2
...................
END
Si %I0.2 = 1, finaliza
la exploracin del
programa.
Si %I0.2 = 0, contina
la
exploracin del
programa hasta que
se reciba de nuevo la
instruccin END.
%Q0.1 %M1
%M2
%I0.2
%M2 %Q0.2
END
END
%Q0.2
Instrucciones bsicas
506 35013228 03/2007
Instruccin NOP
NOP La instruccin NOP no realiza ninguna operacin. Utilcela para "reservar" lneas en
un programa para que pueda insertar instrucciones ms adelante sin modificar los
nmeros de lnea.
Instrucciones bsicas
35013228 03/2007 507
Instrucciones de salto
Introduccin Las instrucciones de salto provocan que la ejecucin de un programa se interrumpa
inmediatamente y que contine a partir de la lnea despus de la lnea del programa que
contiene la etiqueta %Li (i = de 1 a 63 para un compacto y de 1 a 63 para los dems).
JMP, JMPC y
JMPCN
Existen tres instrucciones de salto diferentes disponibles:
JMP: salto de programa incondicional.
JMPC: salto de programa si el resultado booleano de la lgica precedentes es 1.
JMPCN: salto de programa si el resultado booleano de la lgica precedentes es 0.
Ejemplos Ejemplos de instrucciones de salto.
Directrices Las instrucciones de salto no estn permitidas entre parntesis y no deben situarse
entre las instrucciones AND(, OR(, y una instruccin de cierre de parntesis ")".
La etiqueta slo puede situarse entes de una instruccin LD, LDN, LDR, LDF o BLK.
El nmero de etiqueta de la etiqueta %Li debe definirse una sola vez en un programa.
El salto de programa se realiza hacia una lnea de programacin ubicada delante
o detrs. Cuando el salto est ubicado detrs, debe prestarse especial atencin
al tiempo de ciclo del programa. Un tiempo de ciclo prolongado puede provocar
el arranque del watchdog.
000 LD %M15
001 JMPC %L8
002 LD [%MW24>%MW12]
003 ST %M15
004 JMP %L12
005 %L8:
006 LD %M12
007 AND %M13
008 ST %M12
009 JMPCN %L12
010 OR %M11
011 S %Q0.0
012 %L12:
013 LD %I0.0
...............
Salto a la etiqueta %L8 si
%M15 est ajustado en 1
Salto incondicional a la
etiqueta %L12:
Salto a la etiqueta %L12 si
%M12 est ajustado en 0
Instrucciones bsicas
508 35013228 03/2007
Instrucciones de subrutina
Introduccin Las instrucciones de subrutina hacen que un programa realice una subrutina y
regrese al programa principal.
SRn, SRn: y RET Las subrutinas constan de tres pasos:
La instruccin SRn llama a la subrutina a la que hace referencia la etiqueta SRn
si el resultado de la instruccin booleana precedente es 1.
La subrutina est indicada mediante la etiqueta SRn:, con n = 0 a 15 para
TWDLCAA10DRF, TWDLCAA16DRF y entre 0 y 63 para los autmatas restantes.
La instruccin RET situada al final de la subrutina devuelve el flujo de programas
al programa principal.
Ejemplo Ejemplos de instrucciones de subrutina.
000 LD %M15
001 AND %M5
002 ST %Q0.0
003 LD [%MW24>%MW12]
004 SR8
005 LD %I0.4
006 AND M13
007 _
008 _
009 _
010 END
011 SR8:
012 LD 1
013 IN %TM0
014 LD %TM0.Q
015 ST %M15
010 RET
.....................
Salto hacia la subrutina SR8
Vuelta a la subrutina principal
Instrucciones bsicas
35013228 03/2007 509
Directrices Una subrutina no debe llamar a otra subrutina.
Las instrucciones de subrutina no estn permitidas entre parntesis y no deben situarse
entre las instrucciones AND(, OR(, y una instruccin de cierre de parntesis ")".
La etiqueta no slo puede situarse antes de una instruccin LD o BLK para
indicar el inicio de una ecuacin booleana (o escaln).
La llamada de la subrutina no debe ir seguida por una instruccin de asignacin.
Esto se debe a que es posible que la subrutina modifique el contenido del
acumulador booleano. Por lo tanto, es posible que tenga un valor de retorno
diferente al que tena antes de la llamada (consulte el siguiente ejemplo).
Ejemplo de programacin de una subrutina.
LD %I0.0
SR0
ST %Q0.0
LD %I0.0
ST %Q0.0
SR0
%I0.0
>>%SR0
%Q0.0

Вам также может понравиться