Anda di halaman 1dari 111

Lenguaje Ladder

14
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

35013228 03/2007 399


Lenguaje Ladder

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:
z Todas las entradas estn representadas por smbolos de contactos ( ).
z Todas las salida estn representadas por smbolos de bobinas ( ).
z Las operaciones numricas estn incluidas en el conjunto de instrucciones de
Ladder grficas.

Equivalentes La siguiente ilustracin muestra un diagrama simplificado del cableado de un


Ladder a los circuito de lgica de rel y el diagrama Ladder equivalente.
circuitos de rel
LS1 PB1 CR1 M1
LS1 PB1 CR1 M1 %I0.0 %I0.2 %I0.4 %Q0.4

LS2 SS1
LS2 SS1 %I0.1 %I0.7

Circuito de lgica de rel Diagrama Ladder


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.

400 35013228 03/2007


Lenguaje Ladder

Escalones Un programa en lenguaje de diagrama Ladder est formado por "escalones" que
Ladder 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:
z Entradas/salidas del controlador (botones de comando, sensores, rels, luces de
pilotos, etc.).
z Funciones del controlador (temporizadores, contadores, etc.).
z Operaciones lgicas y matemticas (adicin, divisin, AND, XOR, etc.).
z Operadores de comparacin y otras operaciones numricas (A<B, A=B,
desplazamiento, rotacin, etc.)
z 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 El siguiente diagrama es un ejemplo de un programa Ladder compuesto por dos escalones.
escalones
Ladder %I0.1 %M42
Ejemplo de escaln 1

%I0.3

%M42 %Q1.2
Ejemplo de escaln 2
%MW22:=%MW15+%KW1

35013228 03/2007 401


Lenguaje Ladder

Principios de programacin para diagramas Ladder

Reticulado de Cada escaln de Ladder se compone de un reticulado de siete filas por once
programacin columnas organizadas en dos reas como se muestra en la siguiente ilustracin.
Columnas
1 2 3 4 5 6 7 8 9 10 11

Filas
1

4 Barras
Celdas de potenciales
5 reticulado

rea de comprobacin

rea de accin

reas del El reticulado de programacin del diagrama Ladder est dividido en dos reas:
reticulado z 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.
z 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.

402 35013228 03/2007


Lenguaje Ladder

Introduccin de Un escaln de Ladder proporciona un reticulado de programacin de siete por once


instrucciones en que comienza en la primera celda de la esquina superior izquierda del reticulado. La
el reticulado 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 Cada seccin/subrutina se compone de los elementos siguientes:


subrutinas z 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.
z Una secuencia de escalones debajo del encabezado de seccin/subrutina.

Cabeceras de Adems del escaln, una cabecera de escaln aparece directamente por encima
escaln del escaln. Utilice la cabecera de escaln para documentar el propsito lgico del
escaln. La cabecera de escaln puede contener la siguiente informacin:
z Nmero de escaln
z Etiquetas (%Li)
z Ttulo de escaln
z Comentarios de escaln
Para obtener ms informacin acerca de la utilizacin de la cabecera de escaln
para documentar los programas, consulte p. 420.

35013228 03/2007 403


Lenguaje Ladder

Bloques de diagramas Ladder

Introduccin Los diagramas Ladder estn compuestos por bloques que representan el flujo de
programas y las funciones, por ejemplo:
z Contactos
z Bobinas
z Instrucciones de flujo de programas
z Bloques de funcin
z Bloques de comparacin
z Bloques de operacin

Contactos, Las instrucciones contactos, bobinas y flujo de programas (saltar y llamadas)


bobinas y flujo ocupan una nica celda en el reticulado de programacin de Ladder. Los bloques
de programas de funcin, comparacin y operacin ocupan varias.
A continuacin se muestran ejemplos de contactos y bobinas.

1 LD contacto - bobina

Escaln 1
CONTACT COIL
%I0.4 %Q0.4

404 35013228 03/2007


Lenguaje Ladder

Bloques de Los bloques de funcin estn ubicados en el rea de comprobacin del reticulado
funcin 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.

1 LD contador

Escaln 1
RESET COUNTER0 SOWNCT_O
VERFLOW
%I0.0 %C0 %Q0.0
P R E

ADJ Y PSET_OUT_
SET
%CO.P REACHED
%I0.1 9999 %Q0.1
P S D

UPCOUNT

%I0.2
P CU F

DOWNCOUNT

%I0.3
P CD

35013228 03/2007 405


Lenguaje Ladder

Bloques de Los bloques de comparacin estn ubicados en el rea de comprobacin del reticulado de
comparacin 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.

2 LD bloque de comparacin

Escaln 1
%MW0=%SW50 OUTPUTS5
%I0.4 %Q0.5
<

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.

406 35013228 03/2007


Lenguaje Ladder

Bloques de Los bloques de operacin estn ubicados en el rea de accin del reticulado de
operacin 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.

2 LD bloque de operacin,

Escaln 1

%MW120 := SQRT(%MW15)
SHORT

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.

3 LD bloque de operacin

Escaln 1
OPERATE_SWITCH := %MW3 SQRT(%MW1
%MW2 := %MW3
SHORT

35013228 03/2007 407


Lenguaje Ladder

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).
Nombre Elemento Instruccin Funcin
grfico
Contacto normalmente LD Establece contacto cuando el
abierto objeto de bit de control est en
estado 1.
Contacto normalmente LDN Establece contacto cuando el
cerrado objeto de bit de control est en
estado 0.
Contacto para detectar LDR Flanco ascendente: detecta el
un flanco ascendente P cambio de 0 a 1 del objeto de bit
de control.
Contacto para detectar LDF Flanco descendente: detecta el
un flanco descendente N cambio de 1 a 0 del objeto de bit
de control.

Elementos de Los elementos de conexin grficos se utilizan para insertar/eliminar bucles Ladder:
conexin
Nombre Elemento Funcin
grfico
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.

408 35013228 03/2007


Lenguaje Ladder

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 Instruccin Funcin
grfico
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
S
en 1 cuando el resultado del rea de
comprobacin es 1.
Restablecer bobina R El objeto de bit asociado se establece
R en 0 cuando el resultado del rea de
comprobacin es 1.
Llamada de JMP Se conecta a una instruccin
subrutina o salto ->>%Li SR etiquetada ubicada delante o detrs.
->>%SRi

Bobina de condicin Lenguaje Grafcet. Se utiliza cuando la


de transicin programacin de las condiciones de
# transicin asociadas a las transiciones
provoca una inversin de corriente en
el siguiente paso.
Retorno desde una RET Situado al final de las subrutinas para
subrutina <RET> regresar al programa principal.

Detener programa END Define el final del programa.


<END>

35013228 03/2007 409


Lenguaje Ladder

Bloques de Los elementos grficos de los bloques de funcin se programan en el rea de


funcin 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).
Nombre Elemento Funcin
grfico
Temporizadores, Cada bloque de funcin utiliza entradas y salidas que
contadores, permiten conexiones con otros elementos grficos.
registros, etc. Nota: Las salidas de los bloques de funcin no pueden
conectarse entre s (conexiones verticales).

Bloques de Los bloques de comparacin se programan en el rea de comprobacin, mientras


operacin y que los de operacin lo hacen en el rea de accin.
comparacin
Nombre Elemento Funcin
grfico
Bloque de Compara dos operandos y la salida cambia a 1
comparacin cuando se comprueba el resultado.
Tamao: una fila por dos columnas

Bloque de Realiza operaciones aritmticas y lgicas.


operacin
Tamao: una fila por cuatro columnas

410 35013228 03/2007


Lenguaje Ladder

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.

Instruccin Descripcin Instruccin de lista


OPEN Al principio del escaln. LD 0
En un escaln: establece una interrupcin en la AND 0
continuidad de un escaln Ladder sin tener en cuenta
los resultados de la ltima operacin lgica.
SHORT Al principio del escaln. LD 1
En un escaln: permite la continuidad a travs del OR 1
escaln sin tener en cuenta los resultados de la ltima
operacin lgica.

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.

35013228 03/2007 411


Lenguaje Ladder

Ejemplos A continuacin se muestran ejemplos de uso de las instrucciones OPEN y SHORT.

%I0.1 %M3 %Q0.1 LD %I0.1


OPEN OR %Q1.5
ANDN %M3
%Q1.5
AND 0
ST %Q0.1
%I0.9 %Q1.6 LD %I0.9
OR 1
ST %Q1.6

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.

BLK %C0
%C0
OPEN R E LD 0
R
%M1 %Q0.1 LD %I0.2
S D AND %M0
%I0.2 %M0 CU
OUT_BLK
CU F LD D
AND %M1
CD
ST %Q0.1
END_BLK

412 35013228 03/2007


Lenguaje Ladder

Consejos sobre programacin

Tratamiento de Utilice los saltos de programa con precaucin para evitar bucles largos que
los saltos de prolonguen el tiempo de ciclo. Evite los saltos en las instrucciones ubicadas "detrs"
programa (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 Los bits de salida, al igual que los bits internos, slo se deben modificar una vez en
salidas 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 Los sensores utilizados directamente para paradas de emergencia no deben ser
sensores de procesados por el autmata. Se deben conectar directamente a las salidas
parada de correspondientes.
emergencia de
cableado directo

Tratamiento de Haga que la recuperacin de la alimentacin dependa de una operacin manual. Un


recuperacin de reinicio automtico puede provocar un funcionamiento no deseado de la instalacin
la alimentacin (utilice los bits de sistema %S0, %S1 y %S9).

Gestin de la Se debe comprobar el estado del bit de sistema %S51, que indica los posibles fallos
hora y de los del RTC.
fechadores

Comprobacin Cuando se introduce un programa, TwidoSuite comprueba la sintaxis de las


de errores y instrucciones, los operandos y sus asociaciones.
sintaxis

35013228 03/2007 413


Lenguaje Ladder

Notas Las operaciones de asignacin nunca deben aparecer entre parntesis:


adicionales
sobre cmo LD %I0.0
%I0.0 %I0.1 %Q0.1 AND %I0.1
utilizar los
OR( %I0.2
parntesis ST %Q0.0
%I0.2 %I0.3
AND %I0.3
)
ST %Q0.1
%Q0.0

Para realizar la misma funcin, deben programarse las siguientes ecuaciones:

LD %I0.0
%I0.0 %I0.1 %Q0.1
MPS
AND( %I0.1
OR( %I0.2
AND %I0.3
%I0.2 %I0.3
)
)
ST %Q0.1
%I0.2 %Q0.0 MPP
AND %I0.2
ST %Q0.0

414 35013228 03/2007


Lenguaje Ladder

Si se realizan varias conexiones en paralelo, debern encontrarse unas dentro de


otras o estar totalmente separadas:

%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

No se puede programar el siguiente esquema:

%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

35013228 03/2007 415


Lenguaje Ladder

Para ejecutar esquemas equivalentes a estos, se deben modificar, tal como se


especifica a continuacin.

LD %I0.0
%I0.0 %I0.1 %Q0.1 AND( %I0.1
OR( %I0.2
AND %I0.3
)
%I0.2 %I0.3
)
OR( %I0.4
AND %I0.3
%I0.4 %I0.3 )
ST %Q0.1

LD %I0.0
%I0.0 %I0.1 %I0.5 %Q0.1
AND( %I0.1
OR( %I0.2
AND %I0.3
)
%I0.2 %I0.3
AND %I0.5
OR( %I0.2
AND %I0.4
%I0.2 %I0.4 )
)
ST %Q0.1

416 35013228 03/2007


Lenguaje Ladder

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.

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.

Comprender la Para llegar a comprender la funcin reversibilidad de programas, es necesario


reversibilidad examinar la relacin de un escaln de Ladder Logic con la secuencia de Lista de
instruccin asociada.
z Escaln de Ladder: conjunto de instrucciones de Ladder que forma una
expresin lgica.
z 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.

%I0.5 %Q0.4
LD %I0.5
OR %I0.4
%I0.4 ST %Q0.4

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 Cualquier programa creado en forma de diagrama Ladder se puede convertir a


reversibilidad 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.

35013228 03/2007 417


Lenguaje Ladder

Directrices para la reversibilidad Ladder Logic/Lista

Instrucciones Las instrucciones que aparecen a continuacin son necesarias para la estructura
bsicas para la de un bloque de funcin reversible en lenguaje de lista:
reversibilidad z BLK indica el comienzo del bloque y define el inicio del escaln y de la parte de
entrada al bloque.
z OUT_BLK indica el comienzo de la parte de salida del bloque.
z 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 Evite utilizar determinadas instrucciones de lista o determinadas combinaciones de


equivalentes que instrucciones y operandos, ya que no tienen ningn equivalente en diagramas
se deben evitar 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

418 35013228 03/2007


Lenguaje Ladder

Escalones La programacin de escalones incondicionales tambin requiere las siguientes


incondicionales 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.

%Q0.4
LD 1
ST %Q0.4
%MW5 := 0
LD 1
[%MW5 := 0]
JMP %L6

>>%L6

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 Si un programa de lista que no es totalmente reversible se invierte, las partes
Ladder Logic 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.

35013228 03/2007 419


Lenguaje Ladder

Documentacin del programa

Documentacin Puede documentar el programa introduciendo comentarios por medio de los


del programa editores de lista y Ladder:
z 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.
z 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 A continuacin se muestra un ejemplo de un programa de lista con los comentarios


comentarios de de la lnea de lista.
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

420 35013228 03/2007


Lenguaje Ladder

Inversin de Cuando se invierten las instrucciones de lista en un diagrama de Ladder, los comentarios
comentarios de de la lnea de lista aparecen en el editor de Ladder con arreglo a las siguientes normas:
lista a Ladder z El primer comentario que aparece en una lnea por s solo se asigna a la
cabecera de escaln.
z Cualquier comentario encontrado despus del primero se convierte en el cuerpo
del escaln.
z 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 A continuacin se muestra un ejemplo de un programa de Ladder con los


comentarios de comentarios de cabecera de escaln.
cabecera de Introduzca sus comentarios aqu. Introduzca sus comentarios aqu.

escaln 1 LD TTULO DE LA SECCIN Introduzca sus comentarios aqu. Introduzca sus comentarios aqu.
Introduzca sus comentarios aqu. Introduzca sus comentarios aqu.

Escaln 1 %I0.0 %M10 M101

%I0.1

Escaln 2

%L 0 %MW20 :- %KW2*16
%M101

Escaln 3 %Q0.5 %Q0.5

%I0.3

Inversin de Cuando se invierte un diagrama de Ladder a instrucciones de lista, los comentarios de la


comentarios de cabecera de escaln aparecen en el editor de Ladder con arreglo a las siguientes normas:
Ladder a lista z Cualquier comentario de la cabecera de escaln se inserta entre las secuencias
de lista asociadas.
z 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.
z Si la lista se invirti a Ladder, los comentarios ignorados volvern a aparecer en
el editor de lista.

35013228 03/2007 421


Lenguaje Ladder

422 35013228 03/2007


Lenguaje Instruction List o Lista
de instrucciones
15
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

35013228 03/2007 423


Lenguaje Instruction List o Lista de instrucciones

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:
z Nmero de lnea
z Cdigo de instruccin
z Operandos

Ejemplo de un A continuacin se muestra un ejemplo de un programa de lista.


programa de lista
0 LD %I0.1
1 ST %Q0.3
0 LD %I0.1
2 LDN %M0
3 ST %Q0.2 Operandos
4 LDR %I0.2
5 ST %Q0.4 Cdigo de instruccin
6 LDF %I0.3 Nmero de lnea
7 ST %Q0.5

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.

424 35013228 03/2007


Lenguaje Instruction List o Lista de instrucciones

Cdigo de El cdigo de instruccin es un smbolo para un operador que identifica la operacin


instruccin 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:
z Instrucciones de prueba
Estas instrucciones configuran o comprueban las condiciones necesarias para
realizar una accin. Por ejemplo, LOAD (LD) y AND.
z 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:
z Entradas y salidas del autmata, como sensores, botones y rels.
z Funciones de sistema predefinidas, como temporizadores y contadores.
z Operaciones aritmticas, numricas y de comparacin.
z Variables internas del autmata, como bits y palabras.

35013228 03/2007 425


Lenguaje Instruction List o Lista de instrucciones

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 En la siguiente tabla se muestran algunas instrucciones de lista:


lista admitidas
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

426 35013228 03/2007


Lenguaje Instruction List o Lista de instrucciones

Instrucciones del lenguaje de lista

Introduccin Un lenguaje de lista se compone de los siguientes tipos de instrucciones:


z Instrucciones de prueba
z Instrucciones de accin
z Instrucciones sobre bloques de funcin
En esta seccin se identifican y describen las instrucciones Twido para la
programacin de listas.

Instrucciones de En la tabla siguiente se describen las instrucciones de prueba en lenguaje de listas.


prueba
Nombre Elemento grfico Funcin
equivalente
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
P operando (flanco ascendente) que cambia de 0 a 1.

LDF El resultado booleano cambia a 1 durante la deteccin del


N 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
P 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
N 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.

35013228 03/2007 427


Lenguaje Instruction List o Lista de instrucciones

Nombre Elemento grfico Funcin


equivalente
AND( Instruccin lgica AND (8 niveles de parntesis)

OR( Instruccin lgica OR (8 niveles de parntesis)

XOR, OR exclusivo
XOR
XORN,
XORR, XORN
XORF
XORR

XORF

MPS Conmutacin a las bobinas.


MRD
MPP

N - Negacin (NOT)

428 35013228 03/2007


Lenguaje Instruction List o Lista de instrucciones

Instrucciones de En la tabla siguiente se describen las instrucciones de accin en lenguaje de listas.


accin
Nombre Elemento grfico Funcin
equivalente
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
S resultado del rea de comprobacin es 1.
R El operando asociado se establece en 0 cuando el
R resultado del rea de comprobacin es 1.
JMP Se conecta de forma incondicional a una secuencia
->>%Li etiquetada ubicada delante o detrs.

SRn Conexin al comienzo de una subrutina.


->>%SRi

RET Retorno desde una subrutina.


<RET>

END Fin del programa.


<END>

ENDC Fin del programa condicionado en un resultado booleano de


<ENDC> 1.
ENDCN Fin del programa condicionado en un resultado booleano de
<ENDCN>
0.

Instrucciones En la tabla siguiente se describen los bloques de funcin en lenguaje de listas.


sobre bloques de
Nombre Elemento Funcin
funcin
grfico
equivalente
Temporizadores, Para cada bloque de funcin existen instrucciones
contadores, para controlar el bloque.
registros, etc. 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).

35013228 03/2007 429


Lenguaje Instruction List o Lista de instrucciones

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:
z El parntesis de apertura se asocia con la instruccin AND u OR.
z El parntesis de cierre es una instruccin necesaria siempre que se haya abierto
un parntesis.

Ejemplo de uso Los siguientes diagramas son ejemplos de utilizacin de parntesis con una
de una instruccin AND: AND(...).
instruccin AND
%I0.0 %I0.1 %Q0.0
LD %I0.0
AND %I0.1
%I0.2 OR %I0.2
ST %Q0.0

%I0.0 %I0.1 %Q0.1 LD %I0.0


AND( %I0.1
OR %I0.2
%I0.2
)
ST %Q0.1

Ejemplo de uso Los siguientes diagramas son ejemplos de utilizacin de parntesis con una
de una instruccin OR: OR(...).
instruccin OR
LD %I0.0
%I0.0 %I0.1 %Q0.0
AND %I0.1
OR( %I0.2
%I0.2 %I0.3
AND %I0.3
)
ST %Q0.0

430 35013228 03/2007


Lenguaje Instruction List o Lista de instrucciones

Modificadores En la siguiente tabla se enumeran los modificadores que pueden asignarse a los
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

Intercalado de Es posible intercalar hasta ocho niveles de parntesis.


parntesis Tenga en cuenta las siguientes reglas para intercalar parntesis:
z Cada parntesis de apertura debe tener su parntesis de cierre correspondiente.
z No se deben colocar etiquetas (%Li:), subrutinas (SRi:), instrucciones de salto
(JMP) ni instrucciones de bloque de funcin en instrucciones entre parntesis.
z No se deben programar instrucciones de almacenamiento ST, STN, S o R entre
parntesis.
z No se pueden utilizar instrucciones de stack MPS, MRD o MPP entre parntesis.

Ejemplos de Los siguientes diagramas muestran ejemplos de intercalado de parntesis.


intercalado de
LD %I0.0
parntesis %I0.0 %I0.1 %Q0.0
AND( %I0.1
OR(N %I0.2
%I0.2 %M3 AND %M3
)
)
ST %Q0.0

LD %I0.1
%I0.1 %I0.2 %I0.3 %I0.4 %Q0.0
AND( %I0.2
AND %I0.3
%I0.5 %I0.6 OR( %I0.5
AND %I0.6
)
%I0.7 %I0.8 AND %I0.4
OR( %I0.7
AND %I0.8
)
)
ST %Q0.0

35013228 03/2007 431


Lenguaje Instruction List o Lista de instrucciones

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.

Nota: Estas instrucciones no se pueden utilizar en una expresin entre parntesis.

Funcionamiento En la siguiente tabla se describe el funcionamiento de las tres instrucciones de


de las stack.
instrucciones de
Instruccin Descripcin Funcin
stack
MPS Introducir memoria en Almacena el resultado de la ltima instruccin
stack 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.

432 35013228 03/2007


Lenguaje Instruction List o Lista de instrucciones

Ejemplos de Los siguientes diagramas son ejemplos de utilizacin de las instrucciones de stack.
instrucciones de
stack
%I0.0 %M1 %I0.1 %Q0.0 LD %I0.0
AND %M1
MPS
MPS %I0.2 %Q0.1 AND %I0.1
ST %Q0.0
MRD
MRD %I0.3 %Q0.2
AND %I0.2
ST %Q0.1
MPP %I0.4 %Q0.3 MRD
AND %I0.3
ST %Q0.2
MPP
AND %I0.4
ST %Q0.3

Ejemplos de Los siguientes diagramas muestran el funcionamiento de las instrucciones de stack.


funcionamiento
de stack
%I0.0 %I0.1 %I0.3 %Q0.0 LD %I0.0
MPS
AND %I0.1
%M0
MPS
AND( %I0.3
%M1 %Q0.1 OR %M0
)
ST %Q0.0
%I0.4 %Q0.2 MPP
ANDN %M1
ST %Q0.1
%M10 %Q0.3 MRD
AND %I0.4
ST %Q0.2
MPP
AND %M10
ST %Q0.3

35013228 03/2007 433


Lenguaje Instruction List o Lista de instrucciones

434 35013228 03/2007


Grafcet

16
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

35013228 03/2007 435


Grafcet

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.

436 35013228 03/2007


Grafcet

Instrucciones En la tabla siguiente se enumeran todas las instrucciones y objetos necesarios para
Grafcet programar un diagrama Grafcet.
Representacin Transcripcin en el Funcin
grfica (1) lenguaje de TwidoSuite
Ilustracin:
Paso inicial =*= i Comenzar el paso inicial (2).

#i Activar el paso i tras desactivar el paso actual.


Transicin
-*- i Iniciar el paso i y validar la transicin
asociada (2).
Paso
# 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 Comprobar actividad del paso i.
AND %Xi, ANDN %Xi,
OR %Xi, ORN %Xi
Xi
XOR %Xi, XORN %Xi
S %Xi Activar el paso i.

Xi R %Xi Desactivar el paso i.

Xi
R

(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.

35013228 03/2007 437


Grafcet

Ejemplos de Secuencia lineal:


Grafcet
%I0.5 %S21 LD %I0.5
%I0.5
ST %S21
=*= 1
=*=1
1 %Q0.1 LD %I0.1
%I0.1 2 # 2
# -*- 2
%I0.1 LD %I0.2
-*-2 # 3
%I0.2 3 -*- 3
2 %Q0.2 LD %I0.3
#
# 1
%I0.2 -*-2 =*= POST
%I0.3 1 LD %X1
# ST %Q0.1
3 %Q0.3
LD %X2
= * = POST ST %Q0.2
%I0.3 LD %X3
%X1 %Q0.1
ST %Q0.3

%X2 %Q0.2

%X3 %Q0.3

No admitido Twido Ladder Instruccin de Twido


Programa de lenguaje Programa de lista

438 35013228 03/2007


Grafcet

Secuencia alternativa:

4 =* = 4
%I0.3 5 =*= 4
%I0.3 %I0.4
LD %I0.3
# # 5
%I0.4 6 LD %I0.4
# 6
5 6 #
-*- 5
%I0.5 %I0.6 -*-5
LD %I0.5
%I0.5 7 # 7
#
7 -*- 6
-*-6 LD %I0.6
%I0.6 7 # 7
#

No admitido Twido Ladder Instruccin de Twido


Programa de lenguaje Programa de lista

35013228 03/2007 439


Grafcet

Secuencias simultneas:

8 -*-8
-*- 8
%I0.7 %I0.7 9 LD %I0.7
# # 9
# 10
10
9 10
# -*- 9
%I0.8 %I0.9 -*-9
LD %I0.8
%I0.8 11 # 11
11 12 #
-*- 10
%M0 - * - 10 LD %I0.9
# 12
%I0.9 12
# -*- 11
13 LD %M0
- * - 11 AND %X12
#D 12
%M0 %X12 12
# 13
#D
13 -*- 12
LD %M0
# AND %X11
- * - 12 #D 11
%M0 %X11 11 # 13
#D
13
#

No admitido Twido Ladder Instruccin de Twido


Programa de lenguaje Programa de lista

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.

440 35013228 03/2007


Grafcet

Descripcin de la estructura del programa Grafcet

Introduccin Un programa Grafcet de TwidoSuite consta de tres partes:


z Procesamiento previo
z Procesamiento secuencial
z Procesamiento posterior

Procesamiento El procesamiento previo consta de las siguientes partes:


previo z Recuperacin de la alimentacin
z Errores
z Cambios de modo de funcionamiento
z Pasos Grafcet de ubicacin previa
z 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.

%I0.6 %S22 000 LDN %I0.6


/ S 001 S %S22
002 ST %M0
%M0 003 LDR %I0.6
004 S %S21

%I0.6 %S21
P S

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.
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).

35013228 03/2007 441


Grafcet

Procesamiento El procesamiento secuencial se realiza en el diagrama (instrucciones que


secuencial representan el diagrama).
z Pasos
z Acciones asociadas a los pasos
z Transiciones
z Condiciones de transicin

Ejemplo:

=*= 1
005 =*= 1
%I0.2 %I0.3 2 006 LD %I0.2
/ # 007 ANDN %I0.3
008 # 2
%I0.3 %I0.2 3 009 LD %I0.3
/ # 010 ANDN %I0.2
011 # 3
-*- 2 012 -*- 2
013 LD %I0.4
%I0.4 1 014 # 1
015 -*- 3
# 016 LD %I0.5
017 # 1
-*- 3

%I0.5 1
#

El procesamiento secuencial termina con la ejecucin de la instruccin "= * = POST"


o con la finalizacin del programa.

442 35013228 03/2007


Grafcet

Procesamiento El procesamiento posterior consta de las siguientes partes:


posterior z Comandos del procesamiento secuencial para controlar las salidas
z Dispositivos de bloqueo de seguridad especficos para las salidas

Ejemplo:

=*= POST

%X1 %Q0.1 018 =*= POST


019 LD %X1
020 ST %Q0.1
%X2 %Q0.2 021 LD %X2
022 ST %Q0.2
023 LD %X3
%X3 %Q0.3
024 OR( %M1
025 ANDN %I0.2
026 AND %I0.7
027 )
%M1 %I0.2 %I0.7 028 ST %Q0.3
/

35013228 03/2007 443


Grafcet

Acciones asociadas a pasos Grafcet

Introduccin Un programa Grafcet de TwidoSuite ofrece dos modos para programar acciones
asociadas con los pasos:
z En la seccin de procesamiento posterior
z En las instrucciones de lista o escalones de Ladder de los propios pasos

Asociacin de En caso de que existan limitaciones en el modo de seguridad o de ejecucin, es


acciones en el preferible programar acciones en la seccin de procesamiento posterior de una
procesamiento aplicacin Grafcet. Puede utilizar las instrucciones de lista Establecer y Restablecer
posterior o conectar bobinas en el programa Ladder para activar los pasos de Grafcet (%Xi).
Ejemplo:
%X1 %Q0.1 018 =*= POST
019 LD %X1
020 ST %Q0.1
%X2 %Q0.2 021 LD %X2
022 ST %Q0.2
023 LD %X3
%X2 %Q0.3
024 ST %Q0.3

Asociacin de Puede programar las acciones asociadas a los pasos dentro de las instrucciones de
acciones desde lista o escalones de Ladder. En este caso, la instruccin de lista o el escaln de
una aplicacin Ladder no se examina a menos que est activo el paso. ste es el modo ms eficaz,
claro y sostenible de utilizar Grafcet.
Ejemplo:
-*- 3
%Q0.5 020 -*- 3
021 LD 1
S 022 S %Q0.5
023 LD %M10
4 024 # 4
# 025 -*- 4
026 LD 1
027 R %Q0.5
-*- 4 028 ...
%Q0.5 029 ...

444 35013228 03/2007


Descripcin de instrucciones y
funciones
IV
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

35013228 09/2007 445


Instrucciones y funciones

446 35013228 09/2007


Instrucciones bsicas

17
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

35013228 03/2007 447


Instrucciones bsicas

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

448 35013228 03/2007


Instrucciones bsicas

Instrucciones booleanas

Introduccin Las instrucciones booleanas pueden compararse con los elementos grficos de
Ladder. En la tabla siguiente se muestran estas instrucciones.
Elemento Instruccin Ejemplo Descripcin
Elementos de prueba La instruccin Cargar (LD) LD %I0.0 El contacto se cierra cuando el bit %I0.0
equivale a un contacto abierto. se encuentra en estado 1.
Elementos de accin La instruccin Almacenar (ST) ST %Q0.0 El objeto de bit asociado toma un valor
equivale a una bobina. lgico del acumulador de bits (resultado
de lgica anterior).

El resultado booleano de los elementos de prueba se aplica a los elementos de


accin como muestran las siguientes instrucciones.

LD %I0.0
AND %I0.1
ST %Q0.0

Comprobacin Pueden utilizarse instrucciones de prueba booleana para detectar flancos


de las entradas ascendentes o descendentes en las entradas del autmata. Se detecta un flanco
del autmata cuando el estado de una entrada cambia de "explorar n-1" a "explorar n". Dicho
flanco permanece detectado durante la exploracin actual.

Deteccin de La instruccin LDR (Cargar flanco ascendente) equivale a un contacto de deteccin de


flanco flanco ascendente. El flanco ascendente detecta el cambio del valor de entrada de 0 a 1.
ascendente Se utiliza un contacto de deteccin de transicin positiva para detectar un flanco
ascendente como se muestra en el siguiente diagrama.
%I0.0
LDR %I0.0 P P: Contacto de deteccin de transicin positiva

35013228 03/2007 449


Instrucciones bsicas

Deteccin de un La instruccin LDF (Cargar flanco descendente) equivale a un contacto de


flanco deteccin del flanco descendente. El flanco descendente detecta el cambio del
descendente 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.
%I0.0
LDF %I0.0 N Nmero: Contacto de deteccin de transicin negativa

Deteccin de un En la tabla siguiente se resumen las instrucciones de deteccin de flancos y su cronograma:


flanco
Flanco Instruccin Diagrama Cronograma
de prueba Ladder
Flanco LDR %I0.0
ascendente Flanco ascendente
%I0.0
P %I0.0 tiempo
T
Resultado T=1 exploracin
booleano del autmata
tiempo
Flanco LDF %I0.0
descendente
Flanco descendente
%I0.0
%I0.0 tiempo
N
T
Resultado
booleano T=1 exploracin
del autmata
tiempo

Nota: A partir de ahora ser posible aplicar las instrucciones sobre flancos a los
bits internos %Mi.

450 35013228 03/2007


Instrucciones bsicas

Comprensin del formato para describir instrucciones booleanas

Introduccin Todas las instrucciones booleanas de esta seccin se describen utilizando la


siguiente informacin:
z Breve descripcin
z Ejemplo de la instruccin y del correspondiente diagrama de Ladder
z Lista de operandos permitidos
z 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.
%I0.1 %Q0.3
LD %I0.1
ST %Q0.3
%M0 %Q0.2 LDN %M0
ST %Q0.2
%I0.1 %Q0.4
P
LDR %I0.1
ST %Q0.4
%I0.3 %Q0.5
N
LDF %I0.3
ST %Q0.5

Equivalentes del diagrama de Ladder Instrucciones de lista

Operandos En la tabla siguiente se definen los tipos de operandos permitidos utilizados para
permitidos las instrucciones booleanas.
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])

35013228 03/2007 451


Instrucciones bsicas

Cronogramas En la siguiente ilustracin puede apreciarse el modo en que se muestran los


cronogramas de cada instruccin.

LD

Estado de la entrada LD LDN LDR LDF

%I0.1 %I0.1 %M0 %I0.2 %I0.3

Estado de la salida %Q0.3 %Q0.2 %Q0.4 %Q0.5

%Q0.3 Los cronogramas para los cuatro tipos de


instrucciones de carga se agrupan
Cronograma para la
conjuntamente.
instruccin LD

452 35013228 03/2007


Instrucciones bsicas

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.


%I0.1 %Q0.3
LD %I0.1
%M0 %Q0.2 ST %Q0.3
LDN %M0
ST %Q0.2
%I0.2 %Q0.4 LDR %I0.2
P ST %Q0.4
LDF %I0.3
%I0.3 %Q0.5 ST %Q0.5
N

Operandos En la tabla siguiente se enumeran los tipos de instrucciones de carga, sus


permitidos equivalentes en lenguaje Ladder, as como los operandos autorizados.
Instruccin Equivalente en Operandos permitidos
de lista Ladder
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


P

LDF %I, %IA, %M


N

35013228 03/2007 453


Instrucciones bsicas

Cronograma El siguiente diagrama muestra el cronograma de las instrucciones de carga.

LD LDN LDR LDF

%I0.1 %M0 %I0.2 %I0.3

%Q0.3 %Q0.2 %Q0.4 %Q0.5

454 35013228 03/2007


Instrucciones bsicas

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.

%I0.1 %Q0.3
LD %I0.1
ST %Q0.3
%Q0.2
STN %Q0.2
/ S %Q0.4
%Q0.4
S LD %I0.2
R %Q0.4
%I0.2 %Q0.4
R

Operandos En la tabla siguiente se enumeran los tipos de instrucciones de asignacin con los
permitidos operandos equivalentes y permitidos de Ladder.
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
S

R %Q,%QA,%M,%S,%X,%BLK.x,%:Xk
R

35013228 03/2007 455


Instrucciones bsicas

Cronograma La siguiente ilustracin muestra el cronograma de las instrucciones de asignacin.

ST STN S R

%I0.1 %I0.1 %I0.1 %I0.2

%Q0.3 %Q0.2 %Q0.4 %Q0.4

456 35013228 03/2007


Instrucciones bsicas

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.

LD %I0.1
%I0.1 %M1 %Q0.3
AND %M1
ST %Q0.3
%M2 %I0.2 %Q0.2 LD %M2
ANDN %I0.2
ST %Q0.2
%I0.3 %I0.4 %Q0.4 LD %I0.3
ANDR %I0.4
P S
S %Q0.4
%M3 %I0.5 %Q0.5 LD %M3
ANDF %I0.5
N S
S %Q0.5

Operandos En la tabla siguiente se enumeran los tipos de instrucciones AND con operandos
permitidos equivalentes y permitidos de Ladder.
Instruccin Equivalente Ladder Operandos permitidos
de lista
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


P

ANDF %I, %IA, %M


N

35013228 03/2007 457


Instrucciones bsicas

Cronograma El siguiente diagrama muestra la temporizacin de las instrucciones AND.

AND ANDN ANDR ANDF

%I0.1 %M2 %I0.3 %M3

%M1 %I0.2 %I0.4 %I0.5

%Q0.3 %Q0.2 %Q0.4 %Q0.5

458 35013228 03/2007


Instrucciones bsicas

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.

%I0.1 %Q0.3
LD %I0.1
OR %M1
%M1 ST %Q0.3

%M2 %Q0.2
LD %M2
ORN %I0.2
%I0.2 ST %Q0.2

%M3 %Q0.4
LD %M3
S
ORR %I0.4
%I0.4 S %Q0.4
P
%I0.5 %Q0.5
LDF %I0.5
N S
ORF %I0.6
%I0.6 S %Q0.5
N

35013228 03/2007 459


Instrucciones bsicas

Operandos En la tabla siguiente se enumeran los tipos de instrucciones OR con operandos


permitidos equivalentes y permitidos de Ladder.
Instruccin Equivalente Ladder Operandos permitidos
de lista
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

Cronograma El siguiente diagrama muestra la temporizacin de las instrucciones OR.

OR ORN ORR ORF

%I0.1 %M2 %M3 %I0.5

%M1 %I0.2 %I0.4 %I0.6

%Q0.3 %Q0.2 %Q0.4 %Q0.5

460 35013228 03/2007


Instrucciones bsicas

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.
Esquema con la instruccin XOR:

%I0.1 %M1 %Q0.3 LD %I0.1


XOR %M1
XOR
ST %Q0.3

Esquema NOT con la instruccin XOR:


%I0.1 %M1 %Q0.3 LD %I0.1
ANDN %M1
OR( %M1
%M1 %I0.1
ANDN %I0.1
)
ST %Q0.3

Operandos En la tabla siguiente se enumeran los tipos de instrucciones XOR y operandos


permitidos permitidos.
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

35013228 03/2007 461


Instrucciones bsicas

Cronograma El siguiente diagrama muestra la temporizacin de las instrucciones XOR.


XOR

%I0.1

%M1

%Q0.3

Casos A continuacin, se indica una serie de precauciones especiales que se deben


especiales observar al utilizar instrucciones XOR en programas de Ladder:
z No inserte contactos XOR en la primera posicin de una red.
z 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.

%M13 %I1.5 %Q1.10


XOR

%M10

462 35013228 03/2007


Instrucciones bsicas

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.

LD %I0.1
OR %M2
ST %Q0.2
N
AND %M3
ST %Q0.3

Nota: La instruccin NOT no es reversible.

Operandos No aplicable.
permitidos

Cronograma El siguiente diagrama muestra la temporizacin de la instruccin NOT.


NOT

%I0.1

%M2

%Q0.2

%M3

%Q0.3

35013228 03/2007 463


Instrucciones bsicas

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

464 35013228 03/2007


Instrucciones bsicas

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 A continuacin se muestra una ilustracin del bloque de funcin del contador
bloque de progresivo/regresivo.
funcin
%Ci
R E

S D
ADJ Y
%Ci.P 9999
CU

CD F

Bloque 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:
z Directamente (por ejemplo, LD E), si estn cableados al bloque en programacin
reversible (consulte p. 467).
z Especificando el tipo de bloque (por ejemplo, LD %Ci.E).
Puede accederse a las entradas en forma de instrucciones.

Objetos de Los objetos de palabra corresponden a parmetros y valores especificados, tal


palabra como se indica a continuacin:
z 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).
z Valores actuales: por ejemplo, %Ci.V, el valor de conteo actual.

35013228 03/2007 465


Instrucciones bsicas

Objetos palabras En la siguiente tabla se describen los objetos palabras y los objetos bits de bloques
y objetos bits de funcin a los que puede acceder el programa.
accesibles
Bloque de funcin Smbolo Rango (i) Tipos de Descripcin Direccin Acceso de
estndar objetos 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/ %Ci 0 - 127 Palabra Valor actual %Ci.V no
regresivo Valor preestablecido %Ci.P s
Bit Salida de transgresin por %Ci.E no
debajo de rango (vaco)
Salida predeterminada %Ci.D no
alcanzada
Salida de desborde (lleno) %Ci.F no

466 35013228 03/2007


Instrucciones bsicas

Principios para programar bloques de funcin estndar

Introduccin Utilice uno de los mtodos que aparecen a continuacin para programar bloques de
funcin estndar:
z 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.
z 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 Utilice las instrucciones BLK, OUT_BLK y END_BLK para la programacin reversible:
reversible z BLK: indica el principio del bloque.
z OUT_BLK: se utiliza para cablear directamente las salidas de bloque.
z END_BLK: indica el final del bloque.

Ejemplo con El siguiente ejemplo muestra la programacin reversible de un bloque de funcin


salidas del contador con salidas cableadas.
cableadas
%I1.1
N R %C8 E BLK %C8
LDF %I1.1
S %M1 %Q0.4 R Procesamiento
%I1.2 %M0 ADJ Y D LD %I1.2 de entrada
CU %Ci.P 9999 AND %M0
CU
OUT_BLK
CD F
LD D
Procesamiento
AND %M1
de salida
ST %Q0.4
END_BLK

35013228 03/2007 467


Instrucciones bsicas

Ejemplo sin Este ejemplo muestra la programacin reversible de un bloque de funcin del
salida cableada contador sin cableado en las salidas.

%I1.1
N R %C8 E BLK %C8
LDF %I1.1
S R Procesamient
%I1.2 %M0 ADJ Y D LD %I1.2 o de entrada
%Ci.P 9999 AND %M0
CU
CU
END_BLK
CD F
LD %C8.D
AND %M1 Procesamiento
ST %Q0.4 de salida
%C8.D %M1 %Q0.4

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).

468 35013228 03/2007


Instrucciones bsicas

Bloque de funcin del temporizador (%TMi)

Introduccin Existen tres tipos de bloques de funcin del temporizador:


z TON (temporizador de retraso durante el ajuste): este tipo de temporizador
permite gestionar los retrasos durante el ajuste.
z TOF (temporizador de retraso durante el restablecimiento): este tipo de
temporizador permite gestionar los retrasos durante el restablecimiento.
z 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.

%TMi
IN Q
TYPE TON
TB 1 min
ADJ Y
%TMi.P 9999

Bloque de funcin del temporizador

35013228 03/2007 469


Instrucciones bsicas

Parmetros El bloque de funcin del temporizador dispone de los parmetros enumerados a


continuacin.
Parmetro Etiqueta Valor
Nmero de %TMi De 0 a 63: TWDLCAA10DRF y TWDLCAA16DRF.
temporizador 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 Y/N Y: S, el valor preestablecido %TMi.P se puede modificar mediante el Editor de
animacin tablas de animacin.
Nmero: No, el valor preestablecido %TMi.P no se puede modificar.
Entrada de validacin IN Inicia el temporizador en flanco ascendente (tipos TON o TP) o en flanco
(o de la instruccin) 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.

470 35013228 03/2007


Instrucciones bsicas

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.

(1) (1)

(3)
IN
(2)

Q (5)

%TMi.
(4)
%TMi.

Operacin En la siguiente tabla se describe el funcionamiento del temporizador de tipo TOF.


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.

35013228 03/2007 471


Instrucciones bsicas

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.

(1)

IN

(3) (5)
Q
%TMi. (4)
(2)
%TMi.

Operacin En la siguiente tabla se describe el funcionamiento del temporizador de tipo TON.


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.

472 35013228 03/2007


Instrucciones bsicas

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.

(1)

IN
(2) (6)

(4)
Q

%TMi.P
(3) (5)
%TMi.V

Funcionamiento En la siguiente tabla se describe el funcionamiento del temporizador de tipo TP.


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.

35013228 03/2007 473


Instrucciones bsicas

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.

%I0.1 %TMi %Q0.3


IN Q

Tipo TON
TB 1 min
ADJ Y
%TMi.P 9.999

Programacin reversible Programacin no reversible

BLK %TM1 LD %I0.1


LD %I0.1 IN %TM1
IN LD %TM1.Q
OUT_BLK ST %Q0.3
LD Q
ST %Q0.3
END_BLK

Configuracin Durante la configuracin, deben introducirse los parmetros siguientes:


z Tipo de temporizador: TON, TOF o TP
z Base de tiempo: 1 min, 1 s, 100 ms, 10 ms o 1 ms
z Valor preestablecido (%TMi.P): De 0 a 9999
z Ajuste: comprobado o no comprobado

474 35013228 03/2007


Instrucciones bsicas

Casos La tabla siguiente contiene una lista de casos especiales para programar el bloque
especiales de funcin del temporizador:
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 No tiene ningn efecto en los valores actuales y preestablecidos del
(%S1=1) 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 Es recomendable realizar una prueba del bit %TMi.Q una nica vez en el
finalizacin) programa.
Efecto de modificar el valor La modificacin del valor preestablecido mediante una instruccin o un ajuste
preestablecido %TMi.P del valor slo tiene efecto cuando se vuelve a activar el temporizador.

Temporizadores La base de tiempo de 1 ms slo est disponible con los primeros cinco
con una base de temporizadores. Las cuatro palabras de sistema, %SW76, %SW77, %SW78, y
tiempo de 1 ms 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.

35013228 03/2007 475


Instrucciones bsicas

Ejemplo de A continuacin se muestra un ejemplo de programacin de un bloque de funcin del


programacin 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
P

%I0.2 %SW76:X15

%SW76:=0 %M0

476 35013228 03/2007


Instrucciones bsicas

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.

%Ci
R E

S D
ADJ Y
%Ci.P 9999
CU

CD F

Bloque de funcin del contador progresivo/regresivo

35013228 03/2007 477


Instrucciones bsicas

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 ADJ z Y: S, el valor preestablecido se puede modificar mediante el Editor de
tablas de animacin tablas de animacin.
z Nmero: No, el valor preestablecido no se puede modificar mediante el
Editor de tablas de animacin.
Restablecer entrada (o R En estado 1: %Ci.V = 0.
instruccin)
Restablecer entrada (o S En estado 1: %Ci.V = %Ci.P.
instruccin)
Conteo progresivo de la CU Incrementos %Ci.V en un flanco ascendente.
entrada (o instruccin)
Conteo regresivo de la CD Disminuciones %Ci.V en un flanco ascendente.
entrada (o instruccin)
Conteo regresivo de la E (Vaco) El bit asociado %Ci.E = 1, cuando el contador regresivo %Ci.V cambia de 0
salida de desborde 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 D (Hecho) El bit asociado %Ci.D = 1, cuando %Ci.V = %Ci.P.
alcanzada
Conteo progresivo de la F El bit asociado %Ci.F = 1, cuando %Ci.V cambia de 9.999 a 0 (ajustado en
salida de desborde (Completo) 1 cuando %Ci.V alcanza 0 y se restablece en 0 si el contador contina con
el conteo progresivo).

478 35013228 03/2007


Instrucciones bsicas

Funcionamiento En la tabla siguiente se describen las fases principales de funcionamiento del


contador progresivo/regresivo.
Funcionamiento Accin Resultado
Conteo Aparece un flanco ascendente en la entrada de El valor actual de %Ci.V aumenta en una unidad.
conteo progresivo CU (o se activa la instruccin CU).
El valor actual de %Ci.V es igual al valor El bit de salida "preestablecida alcanzada" %Ci.D
%Ci.P preestablecido. 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 El valor actual de %Ci.V disminuye en una unidad.
conteo regresivo CD (o se activa la instruccin CD).
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/ Para utilizar las funciones de conteo progresivo y regresivo al mismo tiempo (o activar las dos instrucciones
regresivo 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 El valor actual %Ci.V se fuerza en 0. Las salidas
se activa la instruccin R). %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 El valor actual %Ci.V toma el valor %Ci.P y la
instruccin S) y la entrada restablecida en cero salida %Ci.D se establece en 1.
est en el estado 0 (o se inactiva la instruccin R).

Casos En la tabla siguiente se muestra una lista de casos especiales de funcionamiento y


especiales configuracin de los contadores.
Caso especial Descripcin
Efecto de un reinicio en fro (%S0=1) z El valor actual %Ci se establece en 0.
z Los bits de salida %Ci.E, %Ci.D y %Ci.F se establecen en 0.
z El valor preestablecido se inicializa con el valor definido durante la configuracin
Efecto de un reinicio en caliente No tiene ningn efecto sobre el valor actual del contador (%Ci.V).
(%S1=1) de una detencin del autmata
Efecto de modificar el valor La modificacin del valor preestablecido mediante una instruccin o
preestablecido %Ci.P ajustndolo entra en vigor cuando la aplicacin procesa el bloque
(activacin de una de las entradas).

35013228 03/2007 479


Instrucciones bsicas

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 La siguiente ilustracin es un bloque de funcin del contador con ejemplos de


programacin programacin reversibles y no reversibles.

%I1.1

R %C8 E

S
%I1.2 %M0 ADJ Y D
CU %Ci.P 9999

CD F

%C8.D %Q0.0

Diagrama Ladder

BLK %C8 LD %I1.1


LD %I1.1 R %C8
R LD %I1.2
LD %I1.2 AND %M0
AND %M0 CU %C8
CU LD %C8.D
END_BLK ST %Q0.0
LD %C8.D
ST %Q0.0

Programacin reversible Programacin no reversible

Configuracin Durante la configuracin, deben introducirse los siguientes parmetros:


z Valor preestablecido (%Ci.P): definido en 5.000 en este ejemplo
z Ajuste: s

480 35013228 03/2007


Instrucciones bsicas

Ejemplo de A continuacin se muestra una ilustracin del bloque de funcin del contador
contador progresivo/regresivo.
progresivo/
regresivo %M0 %I0.0 %M0
R %C1 E R

S %M0
D S
CU
%M0 %I0.0

CD F

Diagrama Ladder

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.

35013228 03/2007 481


Instrucciones bsicas

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.

%SBRi
R

CU

CD

Parmetros El bloque de funcin del registro de bits de desplazamiento contiene los siguientes
parmetros.
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 R Cuando el parmetro de funcin R es 1, los bits de
instruccin) registro de 0 a 15 %SBRi.j se establecen en 0.
Desplazar hacia la entrada CU En un flanco ascendente, desplaza un bit de
izquierda (o instruccin) registro a la izquierda.
Desplazar hacia la entrada CD En un flanco ascendente, desplaza un bit de
derecha (o instruccin) registro a la derecha.

482 35013228 03/2007


Instrucciones bsicas

Operacin La siguiente ilustracin muestra un modelo de bit antes y despus de una operacin
de desplazamiento.
Estado inicial
de la operacin 1 1 0 0 0 0 0 0 1 1 0 1 1 1 0 0
Bit 15 Bit 0
CU %SBRi realiza un
desplazamiento a la
izquierda

El bit 15 se pierde 1 0 0 0 0 0 0 1 1 0 1 1 1 0 0 0
Bit 15 Bit 0

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.
Programacin
reversible
%SBR0.15 %SBR0.0
/ LDN %SBR0.15
ST %SBR0.0
BLK %SBR0
LD %S6
%SBR0 CU
R END_BLK

%S6 Programacin
CU no reversible

LDN %SBR0.15
CD ST %SBR0.0
LD %S6
CU %SBR0

Casos La siguiente tabla contiene una lista de casos especiales para programar el bloque
especiales de funcin del registro de bits de desplazamiento.
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.

35013228 03/2007 483


Instrucciones bsicas

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.

%SCi
R

CU

CD

Parmetros El bloque de funcin de pasos contiene los parmetros siguientes:


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.

Cronograma El cronograma que aparece a continuacin muestra el funcionamiento del bloque


del contador de pasos.
Entrada CU

Entrada CD

Nmero del
paso activo
0 1 2 3 2 1 0

484 35013228 03/2007


Instrucciones bsicas

Programacin A continuacin, se muestra un ejemplo de un bloque de funcin del contador de pasos.


z La entrada %I0.2 aumenta el contador de pasos 0.
z El contador de pasos 0 se restablece en 0 cuando llega al paso 3 o mediante la entrada %I0.3.
z 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.
Programacin
reversible
BLK %SC0
%SC0.3 LD %SC0.3
OR %I0.3
R
%I0.3 %SC0 LD %I0.2
CU
R END_BLK
%I0.2
LD %SC0.0
ST %Q0.1
CU LD %SC0.1
ST %Q0.2
LD %SC0.2
CD ST %Q0.3

Programacin
%SC0.0 %Q0.1 no reversible
LD %SC0.3
OR %I0.3
%SC0.1 %Q0.2 R %SC0
LD %I0.2
CU %SC0
LD %SC0.0
%SC0.2 %Q0.3 ST %Q0.1
LD %SC0.1
ST %Q0.2
LD %SC0.2
ST %Q0.3

Caso especial La siguiente tabla contiene una lista de casos especiales de funcionamiento del
bloque de funcin del contador de pasos.
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.

35013228 03/2007 485


Instrucciones bsicas

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

486 35013228 03/2007


Instrucciones bsicas

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.

35013228 03/2007 487


Instrucciones bsicas

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.

[Op1:=Op2] <=> Op2 -> Op1


Pueden realizarse operaciones de asignacin en:
z Cadenas de bits
z Palabras
z Palabras dobles
z Flotantes
z Tablas de palabras
z Tablas de palabras dobles
z Tablas de flotantes

Asignacin de Las operaciones pueden llevarse a cabo en las cadenas de bits siguientes (consulte
cadenas de bits la seccin p. 48):
z Cadena de bits -> cadena de bits (Ejemplo 1)
z Cadena de bits -> palabra (Ejemplo 2) o palabra doble (indexada)
z Palabra o palabra doble (indexada) -> cadena de bits (Ejemplo 3)
z Valor inmediato -> cadena de bits

Ejemplos Ejemplos de asignaciones de cadenas de bits.


%Q0:8:=%M64:8
LD 1
[%Q0:8:=%M64:8] (Ex. 1)

%I0.2 %MW100:=%I0:16
LD %I0.2 (Ex. 2)
[%MW100:=%I0:16]
%I0.3 %M104:16:=%KW0

P (Ex. 3)
LDR %I0.3
Normas de uso:
z 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.
z 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).

488 35013228 03/2007


Instrucciones bsicas

Asignaciones de Sintaxis de las asignaciones de cadenas de bits.


cadenas de bits
Operador Sintaxis Operando 1 (Op1) Operando 2 (Op2)
:= [Op1 : = Op2] %MWi,%QWi, %QWCi Valor inmediato, %MWi, %KWi, %IW,%IWAi,
%QWAi,%SWi %IWCi %INWi, %QWi, %QWAi %QWCi,
El operando 1 (Op1) %MWi[%MWi], %MDi, %QNWi, %SWi, %BLK.x, %MWi[%MWi],
asume el valor del %MDi[%MWi] %KWi[%MWi], %MDi[%MWi], %KDi[%MWi],
operando 2 (Op2) %Mi:L, %Qi:L, %Si:L, %Xi:L %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.

Asignacin de Las operaciones de asignacin se pueden ejecutar en las palabras y en las palabras
palabras dobles siguientes:
z Palabra (indexada) -> palabra (Ejemplo 2) (indexada o no)
z Palabra doble (indexada) -> palabra doble (indexada o no)
z Valor entero inmediato -> palabra (Ejemplo 3) o palabra doble (indexadas o no)
z Cadena de bits -> palabra o palabra doble
z Flotante (indexada o no) -> flotante (indexada o no)
z Palabra o palabra doble -> cadena de bits
z Valor flotante inmediato -> flotante (indexado o no)

Ejemplos Ejemplos de asignaciones de palabras.


%SW112:=%MW100
LD 1
[%SW112:=%MW100] (Ex. 1)

%I0.2 %MW0[%MW10]:=%KW0[%MW20]
LD %I0.2
[%MW0[%MW10]:= (Ex. 2)
%KW0[%MW20]]

%I0.3 %MW10:=100
P LDR %I0.3 (Ex. 3)
[%MW10:=100]

35013228 03/2007 489


Instrucciones bsicas

Sintaxis Sintaxis de asignaciones de palabras.


Operador Sintaxis
:= [Op1 : = Op2]
El operando 1 (Op1) asume el valor del operando 2 (Op2)

En la tabla siguiente se detallan los operandos:


Tipo Operando 1 (Op1) Operando 2 (Op2)
palabra, %BLK.x, %MWi, %QWi, Valor inmediato, %MWi, %KWi, %IW, %IWAi,
palabra doble, %QWAi, %QWCi, %SWi %IWCi, %QWi, %QWAi,%QWCi, %SWi,
cadena de bits %MWi[MWi], %MDi, %MWi[MWi], %KWi[MWi], %MDi,
%MDi[%MWj], %Mi:L, %MDi[%MWj], %KDi, %KDi[MWj] %INW,
%Qi:L, %Si:L, %Xi:L %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, ...).

Asignacin de Pueden realizarse operaciones de asignacin en las siguientes tablas de palabras


tablas de de objetos (consulte la seccin p. 49):
palabras, z Valor entero inmediato -> tabla de palabras (Ejemplo 1) o de palabras dobles
palabras dobles z Palabra -> tabla de palabras (Ejemplo 2)
o flotantes z Tabla de palabras -> tabla de palabras (Ejemplo 3)
La longitud de la tabla (L) debe ser igual para ambas tablas.
z Palabra doble -> tabla de palabras dobles
z Tabla de palabras dobles -> tabla de palabras dobles
La longitud de la tabla (L) debe ser igual para ambas tablas.
z Valor flotante inmediato -> tabla de flotantes
z Flotante -> tabla de flotantes
z Tabla de flotantes -> tabla de flotantes
La longitud de la tabla (L) debe ser igual para ambas tablas.

490 35013228 03/2007


Instrucciones bsicas

Ejemplos Ejemplos de asignaciones de tablas de palabras:

%MW0:10:=100 LD 1
[%MW0:10:=100] (Ex. 1)

%I0.2 %MW0:10:=%MW11 LD %I0.2


[%MW0:10:=%MW11] (Ex. 2)

%I0.3 %MW10:20:=%KW30:20 LDR %I0.3


P [%MW10:20:=%KW30:20] (Ex. 3)

Sintaxis Sintaxis de las asignaciones de tablas de palabras, palabras dobles y flotantes.


Operador Sintaxis
:= [Op1 : = Op2]
El operando 1 (Op1) asume el valor del operando 2 (Op2)

En la tabla siguiente se detallan los operandos:


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 %MDi:L Valor entero inmediato, %MDi, %KDi,%MDi:L,
dobles %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.

35013228 03/2007 491


Instrucciones bsicas

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.
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.

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.

%MW10>100 %Q0.3
LD [%MW10 > 100]
ST %Q0.3

%M0 %MW20<%KW35 %Q0.2 LD %M0


AND [%MW20 < %KW35]
ST %Q0.2

%I0.2 %Q0.4 LD %I0.2


OR [%MF30>=%MF40]
ST %Q0.4
%MF30>=%MF40

492 35013228 03/2007


Instrucciones bsicas

Sintaxis Sintaxis de las instrucciones de comparacin:


Operador Sintaxis
>, >=, <, <=, =, <> LD [Op1 Operador Op2]
AND [Op1 Operador Op2]
OR [Op1 Operador Op2]

Operandos:
Tipo Operando 1 (Op1) Operando 2 (Op2)
Palabras %MWi, %KWi, %INWi, %IW, Valor inmediato, %MWi, %KWi, %INWi,
%IWAi, %IWCi, %QNWi, %IW, %IWAi, %IWCi, %QNWi, %QW,
%QWi, %QWAi, %QWCi, %QWAi, %QWCi, %SWi, %BLK.x,
%QNWi, %SWi, %BLK.x %MWi [%MWi], %KWi [%MWi]
Palabras dobles %MDi, %KDi Valor inmediato, %MDi, %KDi, %MDi
[%MWi], %KD [%MWi]
Palabras de punto %MFi, %KFi Valor flotante inmediato, %MFi, %KFi,
flotante %MFi [%MWi], %KFi [%MWi]

Nota: Las instrucciones de comparacin pueden utilizarse entre parntesis.

Ejemplo de utilizacin de una instruccin de comparacin entre parntesis:

LD %M0
AND( [%MF20 > 10.0]
OR %I0.0
)
ST %Q0.1

35013228 03/2007 493


Instrucciones bsicas

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.
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

Estructura Las operaciones aritmticas se realizan del siguiente modo:

%M0 %MW0:=%MW10+100
LD %M0
[%MW0:=%MW10 + 100]

%I0.2 %MW0:=SQRT(%MW10) LD %I0.2


[%MW0:=SQRT(%MW10)]

%I0.3 INC %MW100 LDR %I0.3


P [INC %MW100]

Sintaxis La sintaxis depende de los operadores utilizados, tal como se muestra en la siguiente tabla.
Operador Sintaxis
+, -, *, /, REM [Op1: = Op 2 Operador Op3]
INC, DEC [Operador Op1]
SQRT (1) [Op1: = SQRT(Op2)]
ABS (1) [Op1: = ABS(Op2)]

494 35013228 03/2007


Instrucciones bsicas

Operandos:
Tipo Operando 1 (Op1) Operandos 2 y 3 (Op2 & 3) (1)
Palabras %MWi, %QWi, Valor inmediato, %MWi, %KWi, %INW, %IW,
%QWAi, %QWCi, %IWAi, %IWCi, %QNW, %QW, %QWAi,
%SWi %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.

Desborde y Adicin
condiciones de z Desborde en la operacin con palabras
error 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
z 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
z 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.
z 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
z 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.

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).

35013228 03/2007 495


Instrucciones bsicas

Ejemplos Ejemplo 1: desborde durante la adicin

%M0 %MW0:=%MW1+%MW2
LD %M0
[%MW0:=%MW1 + %MW2]

%S18 %MW10:=%MW0
LDN %S18
/ [%MW10:=%MW0]

%S18 %MW10:=32767
LD %S18
[%MW10:=32767]
R %S18
%S18
R

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.

496 35013228 03/2007


Instrucciones bsicas

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:
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

Estructura Las operaciones de lgica se realizan tal como se muestra a continuacin:

%M0 %MW0:=%MW10 AND 16#FF00


LD %M0
[%MW0:=%MW10 AND 16#FF00]

[%MW0:=%KW5 OR %MW10]
LD 1
[%MW0:=%KW5 OR %MW10]

%I0.3 %MW102:=NOT (%MW100)

LD %I0.3
[%MW102:=NOT(%MW100)]

Sintaxis La sintaxis vara segn el operador que se utilice:


Operador Sintaxis Operando 1 (Op1) Operandos 2 y 3 (Op2 y 3)
AND, OR, XOR [Op1 : = Op2 Operador Op3] %MWi, %QWi, Valor inmediato (1), %MWi, %KWi, %IW,
NOT [Op1:=NOT(Op2)] %QWAi, %QWCi, %IWAi, %IWCi, %QW, %QWAi, %QWCi,
%SWi %SWi, %BLK.x

Nota: (1) Con NOT, Op2 no puede ser un valor inmediato.

Ejemplo: A continuacin, se muestra una instruccin AND lgica.


[%MW15:=%MW32 AND %MW12]

35013228 03/2007 497


Instrucciones bsicas

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 F 0
de i posiciones hacia la
izquierda

%S17
F 0
SHR(op2,i) Desplazamiento lgico
de i posiciones hacia la
derecha
%S17

Desfase de rotacin
ROR(op2,i) Desfase de rotacin de i
posiciones hacia la
izquierda F 0

%S17
F 0
ROR(op2,i) Desfase de rotacin de i
posiciones hacia la
derecha
%S17

Nota: Bit del sistema %S17 (vase p. 688) se usa para indicar el ltimo bit expulsado.

498 35013228 03/2007


Instrucciones bsicas

Estructura Las operaciones de desplazamiento se realizan tal como se muestra a continuacin:

%I0.1
LDR %I0.1
P %MW0:=SHL(%MW10, 5) [%MW0 :=SHL(%MW10, 5)]

%I0.2 LDR %I0.2


P %MW10:=ROR(%KW9, 8) [%MW10 :=ROR(%KW9, 8)]

Sintaxis La sintaxis depende de los operadores utilizados, tal como se muestra en la


siguiente tabla.
Operador Sintaxis
SHL, SHR [Op1: = Operador (Op2,i)]
ROL, ROR

Operandos:
Tipos Operando 1 (Op1) Operando 2 (Op2)
Palabras %MWi, %QWi, %QWAi, %MWi, %KWi, %IW, %IWAi, %IWCi, %QW,
%QWCi, %SWi %QWAi, %QWCi, %SWi, %BLK.x
Palabra doble %MDi %MDi, %KDi

35013228 03/2007 499


Instrucciones bsicas

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.
Instruccin Funcin
BTI Conversin BCD --> binario
ITB Conversin binario --> BCD

Revisin del Decimal codificado en binario (BCD) representa un dgito decimal (0 a 9) con cdigo
cdigo BCD 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:
Decimal 0 1 2 3 4 5 6 7 8 9
BCD 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001

Ejemplos:
z La palabra %MW5 expresa el valor BCD "2450", que corresponde al valor
binario: 0010 0100 0101 0000
z 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.

500 35013228 03/2007


Instrucciones bsicas

Estructura Las operaciones de conversin se realizan del siguiente modo:

%M0 %MW0:=BTI(%MW10)
LD %M0
[%MW0 :=BTI(%MW10)]

%I0.2 %MW10:=ITB(%KW9) LD %I0.2


[%MW10 :=ITB(%KW9)]

Sintaxis La sintaxis depende de los operadores utilizados, tal como se muestra en la


siguiente tabla.
Operador Sintaxis
BTI, ITB [Op1: = Operador (Op2)]

Operandos:
Tipo Operando 1 (Op1) Operando 2 (Op2)
Palabras %MWi, %QWi, %QWAi, %MWi, %KWi, %IW, %IWAi, %IWCi, %QW,
%QWCi, %SWi %QWAi, %QWCi, %SWi, %BLK.x
Palabras dobles %MDi %MDi, %KDi

Ejemplos de La instruccin BTI se utiliza para procesar un valor terico en las entradas del
aplicacin: 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.

35013228 03/2007 501


Instrucciones bsicas

Instrucciones de conversin de palabras simples y dobles

Introduccin En la tabla siguiente se describen las instrucciones de conversiones de palabras


simples y dobles:
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.

Estructura Las operaciones de conversin se realizan del siguiente modo:

%M0 %MW0:=HW(%MD10)
LD %M0
[%MW0 :=HW(%MD10)]

%I0.2 %MD10:=DWORD(%KW9)
LD %I0.2
[%MD10 :=DWORD(%KW9)]

%I0.3 %MD11:=CONCATW(%MW10, %MW5)

LD %I0.3
[%MD11:=CONCATW(%MW10,%MW5)]

Sintaxis La sintaxis depende de los operadores empleados, tal como se indica en la tabla
siguiente: l
Operador Sintaxis Operando 1 Operando 2 Operando 3
(Op1) (Op2) (Op3)
LW, HW Op1 = Operador (Op2) %MWi %MDi, %KDi [-]
CONCATW Op1 = Operador (Op2, Op3) %MDi %MWi, %KWi, %MWi, %KWi,
valor inmediato valor inmediato
DWORD Op1 = Operador (Op2) %MDi %MWi, %KWi [-]

502 35013228 03/2007


Instrucciones bsicas

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

35013228 03/2007 503


Instrucciones bsicas

Instrucciones END

Introduccin Las instrucciones END definen el final de la ejecucin de un ciclo de programa.

END, ENDC y Existen tres instrucciones de fin disponibles:


ENDCN z END: fin incondicional del programa.
z ENDC: fin de programa si el resultado booleano de la instruccin de prueba
precedente es 1.
z 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.

504 35013228 03/2007


Instrucciones bsicas

Ejemplos Ejemplo de una instruccin END incondicional.


%M1 %Q0.1
LD %M1
ST %Q0.1
LD %M2
ST %Q0.2
%M2 %Q0.2

...................

END END

Ejemplo de una instruccin END condicional.

%M1 %Q0.1
LD %M1
ST %Q0.1
LD %M2
ST %Q0.2
%M2 %Q0.2

...................
%I0.2
LD %I0.2 Si %I0.2 = 1, finaliza
END ENDC la exploracin del
LD %M2 programa.
ST %Q0.2
%M2 %Q0.2 Si %I0.2 = 0, contina
la
exploracin del
................... programa hasta que
se reciba de nuevo la
END END instruccin END.

35013228 03/2007 505


Instrucciones bsicas

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.

506 35013228 03/2007


Instrucciones bsicas

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 Existen tres instrucciones de salto diferentes disponibles:


JMPCN z JMP: salto de programa incondicional.
z JMPC: salto de programa si el resultado booleano de la lgica precedentes es 1.
z JMPCN: salto de programa si el resultado booleano de la lgica precedentes es 0.

Ejemplos Ejemplos de instrucciones de salto.

000 LD %M15
001 JMPC %L8 Salto a la etiqueta %L8 si
002 LD [%MW24>%MW12] %M15 est ajustado en 1
003 ST %M15
004 JMP %L12 Salto incondicional a la
005 %L8: etiqueta %L12:
006 LD %M12
007 AND %M13
008 ST %M12
009 JMPCN %L12 Salto a la etiqueta %L12 si
010 OR %M11 %M12 est ajustado en 0
011 S %Q0.0
012 %L12:
013 LD %I0.0

...............

Directrices z 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 ")".
z La etiqueta slo puede situarse entes de una instruccin LD, LDN, LDR, LDF o BLK.
z El nmero de etiqueta de la etiqueta %Li debe definirse una sola vez en un programa.
z 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.

35013228 03/2007 507


Instrucciones bsicas

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:


z 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.
z 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.
z 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 Salto hacia la subrutina 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 Vuelta a la subrutina principal

.....................

508 35013228 03/2007


Instrucciones bsicas

Directrices z Una subrutina no debe llamar a otra subrutina.


z 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 ")".
z La etiqueta no slo puede situarse antes de una instruccin LD o BLK para
indicar el inicio de una ecuacin booleana (o escaln).
z 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
%I0.0
ST %Q0.0
>>%SR0

%Q0.0 LD %I0.0
ST %Q0.0
SR0

35013228 03/2007 509

Anda mungkin juga menyukai