Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Curso de PLC Twido Basico 5ta Parte
Curso de PLC Twido Basico 5ta Parte
PLC TWIDO
QUINTA PARTE:
LENGUAJES DE
PROGRAMACION
V PARTE
LENGUAJES DE PROGRAMACION 1
5.1. Estructura de un Programa
• La estructura de un programa facilita la depuración y el
mantenimiento.
• Para mejorar la legibilidad, los programas son separados en
módulos con módulos que comprenden instrucciones asignadas a
una función dada.
V PARTE
LENGUAJES DE PROGRAMACION 2
5.1. Estructura de un Programa
V PARTE
LENGUAJES DE PROGRAMACION 3
5.2. Lenguajes de Programación
– Los lenguajes de programación fueron establecidos
en la norma IEC 61131-3.
– Esta estandarización limita el número de lenguajes
de programación usados por las distintas
plataformas de PLC.
– Los lenguajes estandarizados son:
• Ladder (LD)
• Bloques de función (FBD)
• Literal Estructurado (ST)
• Listas (IL)
• Grafcet (SFC)
V PARTE
LENGUAJES DE PROGRAMACION 4
5.2. Lenguajes de Programación
• Sin embargo, para crear programas de control con Twido sólo se
pueden utilizar los siguientes lenguajes de programación:
V PARTE
LENGUAJES DE PROGRAMACION 6
5.2.1. Lenguaje Ladder (LD)
ESCALON o RUNG
R E
S
Cu
Cd ESCALON o RUNG
Barras de potencial
V PARTE
LENGUAJES DE PROGRAMACION 7
5.2.1. Lenguaje Ladder (LD)
Los diagramas Ladder Logic (lógica de escalón) son similares a los
diagramas de lógica de relé que se utilizan para representar los
circuitos de control de relé. Los elementos gráficos, como bobinas,
contactos y bloques, representan las instrucciones. A continuación
aparece un ejemplo de diagrama Ladder Logic:
V PARTE
LENGUAJES DE PROGRAMACION 8
Instrucciones básicas en
Lenguaje Ladder
• Contactos
– Normalmente abiertos
– Normalmente cerrados
• Bobinas
– Directas
– Inversas
– SET
– RESET
• Temporizadores/Timers
– TON
– TOF
– TP
• Contadores
– Representación gráfica
– Entradas
– Salidas
V PARTE
LENGUAJES DE PROGRAMACION 9
a. Contactos
• Normalmente abiertos
• Normalmente
cerrados
V PARTE
LENGUAJES DE PROGRAMACION 10
b. Bobinas
• Directas
• Inversas
V PARTE
LENGUAJES DE PROGRAMACION 11
b. Bobinas
• SET
• RESET
V PARTE
LENGUAJES DE PROGRAMACION 12
5.2.1. Instrucciones básicas con
TwidoSoft
• Procesamiento booleano
• Bloques de función básicos
• Procesamiento numérico
• Instrucciones del programa
V PARTE
LENGUAJES DE PROGRAMACION 13
5.3.1. El editor de lenguaje Ladder
• Un programa escrito en lenguaje Ladder está formado por redes de
elementos gráficos unidos que se organizan en escalones que el
controlador ejecuta de forma secuencial. Un diagrama Ladder es una
representación gráfica de un programa Ladder similar a un diagrama
lógico de relé.
V PARTE
LENGUAJES DE PROGRAMACION 14
5.3.1. El editor de lenguaje Ladder
Escalones:
V PARTE
LENGUAJES DE PROGRAMACION 15
5.3.1. El editor de lenguaje Ladder
Elementos gráficos:
V PARTE
LENGUAJES DE PROGRAMACION 16
5.3.1. El editor de lenguaje Ladder
Reticulado de programación:
El reticulado de programación de un diagrama Ladder se
divide en dos áreas:
• Área de prueba
– Contiene las condiciones que se han de probar a fin de
realizar acciones. Está formada por las columnas 1 a 10 y
contiene contactos, bloques de función y bloques de
comparación.
• Área de actividad
– Contiene la salida u operación que será realizada según sean
los resultados de las pruebas llevadas a cabo en el área de
prueba. Está formada por las columnas 9 a 11 y contiene
bobinas y bloques de operación.
V PARTE
LENGUAJES DE PROGRAMACION 17
5.3.1. El editor de lenguaje Ladder
Reticulado de programación:
V PARTE
LENGUAJES DE PROGRAMACION 18
5.3.1. El editor de lenguaje Ladder
V PARTE
LENGUAJES DE PROGRAMACION 19
EJERCICIOS
SERIE - PARALELO
V PARTE
LENGUAJES DE PROGRAMACION 20
Ejemplo – Arranque de un motor
(Ladder)
PA K
PP
V PARTE
LENGUAJES DE PROGRAMACION 21
5.2.2. Lenguaje de lista de
instrucciones (IL)
V PARTE
LENGUAJES DE PROGRAMACION 22
5.2.2. Lenguaje de lista de
instrucciones (IL)
Un programa escrito en lenguaje de lista de instrucciones es
ejecutado de manera secuencial por el controlador. A continuación
aparece un ejemplo de programa de Lista.
V PARTE
LENGUAJES DE PROGRAMACION 23
Número de línea:
• Los números de línea se generan automáticamente al introducir una
instrucción. Las líneas vacías y las líneas de comentario no tienen
números de línea.
Código de instrucción:
• El código de instrucción es un símbolo para un operador que
identifica la operación que se va a realizar utilizando los operandos.
Los operadores típicos especifican operaciones numéricas y
booleanas. Por ejemplo, en el programa de ejemplo anterior, LD es
la abreviatura del código de instrucción para una instrucción LOAD.
La instrucción LOAD coloca (carga) el valor del operando %I0.1 en
un registro interno llamado el acumulador. Hay dos tipos de
instrucciones básicas:
Instrucciones de prueba
– Estas instrucciones configuran o comprueban las condiciones necesarias
para realizar una acción. Por ejemplo, LOAD (LD) y AND.
Instrucciones de acción
– Estas instrucciones realizan acciones como resultado de las condiciones
configuradas. Por ejemplo, instrucciones de asignación como STORE
(ST) y RESET (R).
V PARTE
LENGUAJES DE PROGRAMACION 24
Operando:
PROCESAMIENTO BOOLEANO
V PARTE
LENGUAJES DE PROGRAMACION 26
Procesamiento booleano
• Las instrucciones booleanas pueden compararse con los elementos
gráficos de Ladder. En la tabla siguiente se muestran estas
instrucciones.
V PARTE
LENGUAJES DE PROGRAMACION 28
Instrucciones de carga
V PARTE
LENGUAJES DE PROGRAMACION 29
Instrucciones de carga
V PARTE
LENGUAJES DE PROGRAMACION 30
Instrucciones de almacenamiento
V PARTE
LENGUAJES DE PROGRAMACION 31
Instrucciones de almacenamiento
V PARTE
LENGUAJES DE PROGRAMACION 32
Instrucciones de almacenamiento
V PARTE
LENGUAJES DE PROGRAMACION 33
a. Resumen contactos
V PARTE
LENGUAJES DE PROGRAMACION 34
b. Resumen bobinas
V PARTE
LENGUAJES DE PROGRAMACION 35
Instrucciones lógicas - AND
V PARTE
LENGUAJES DE PROGRAMACION 36
Instrucciones Lógicas - AND
V PARTE
LENGUAJES DE PROGRAMACION 37
Instrucciones lógicas - AND
V PARTE
LENGUAJES DE PROGRAMACION 38
Instrucciones lógicas - OR
V PARTE
LENGUAJES DE PROGRAMACION 39
Instrucciones lógicas - OR
V PARTE
LENGUAJES DE PROGRAMACION 40
Instrucciones lógicas - OR
V PARTE
LENGUAJES DE PROGRAMACION 41
Instrucciones lógicas - XOR
V PARTE
LENGUAJES DE PROGRAMACION 42
Instrucciones lógicas - XOR
V PARTE
LENGUAJES DE PROGRAMACION 43
Instrucciones lógicas - XOR
V PARTE
LENGUAJES DE PROGRAMACION 44
Instrucción NOT (N)
V PARTE
LENGUAJES DE PROGRAMACION 45
Ejemplo – Arranque de un motor
(IL)
PA K
PP
V PARTE
LENGUAJES DE PROGRAMACION 46
5.3.2. Editor de listas
Instrucciones básicas para la reversibilidad
• Las instrucciones que aparecen a continuación son
necesarias para la estructura de un bloque de función
reversible en lenguaje de lista.
• BLK : indica el comienzo del bloque y define el inicio del
escalón y de la parte de entrada al bloque.
• OUT_BLK : indica el comienzo de la parte de salida del
bloque.
• END_BLK : indica el final del bloque y del escalón.
• El uso de las instrucciones del bloque de función
reversible no es obligatorio cuando el programa de lista
funciona correctamente. Es posible programar en lista
algunas instrucciones, lo cual no es reversible.
V PARTE
LENGUAJES DE PROGRAMACION 47
Principios para programar bloques de
función estándar
Se pueden usar cualquiera de los siguientes métodos:
V PARTE
LENGUAJES DE PROGRAMACION 48
Programación reversible
V PARTE
LENGUAJES DE PROGRAMACION 49
Ejemplo con salidas cableadas
V PARTE
LENGUAJES DE PROGRAMACION 50
Ejemplo sin salida cableada
V PARTE
LENGUAJES DE PROGRAMACION 51
5.3.2. Editor de listas
Instrucciones no equivalentes que se deben evitar
V PARTE
LENGUAJES DE PROGRAMACION 52
5.3.2. Bloques de función básicos
V PARTE
LENGUAJES DE PROGRAMACION 55
Temporizadores/Timers
• Representación gráfica:
%TM0
IN Q
TYPE TON
TB 1S
ADJ Y
%TM0.P 4
V PARTE
LENGUAJES DE PROGRAMACION 56
Programación y configuración de
temporizadores
Durante la configuración, deben
introducirse los parámetros siguientes:
V PARTE
LENGUAJES DE PROGRAMACION 57
Bloque de función del temporizador (%TMi)
Parámetro Etiqueta Valor
Número de 0 a 63: TWDLCAA10DRF y TWDLCAA16DRF.
%TMi
temporizador 0 a 127 para los demás controladores.
TON Retraso durante el ajuste (predeterminado)
Tipo TOF Retraso durante el restablecimiento
TP Pulso (monoestable)
Base de tiempo TB 1 min (predeterminado), 1s, 100ms, 10ms, 1ms
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
Valor actual %Tmi.V
programa. %TMi.V se puede modificar utilizando el editor de tablas de
animación.
0 - 9999. Palabra que se puede leer, comprobar y escribir desde el programa.
Valor preestablecido %Tmi.P El valor predeterminado es 9999. El período o retardo generado es igual a
%TMi.P x
Y: Sí, el valor preestablecido %TMi.P se puede modificar mediante el editor de
Editor de tablas de tablas de animación.
Y
animación
N: No, el valor preestablecido %TMi.P no se puede modificar.
Entrada de Inicia el temporizador en flanco ascendente (tipos TON o TP) o en flanco
IN
validación descendente (tipo TOF).
Salida del El bit asociado %TMi.Q se ajusta a 1 dependiendo de la función realizada:
Q
temporizador TON, TOF, o TP.
V PARTE
LENGUAJES DE PROGRAMACION 58
Temporizador tipo TON
V PARTE
LENGUAJES DE PROGRAMACION 59
Tipo de temporizador TON
V PARTE
LENGUAJES DE PROGRAMACION 61
Tipo de temporizador TOF
V PARTE
LENGUAJES DE PROGRAMACION 63
Tipo de temporizador TP
1. El temporizador se ejecuta en el
flanco ascendente de la entrada IN.
El valor actual %TMi.V se pone a 0
si el temporizador aún 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.6El 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 a 0.
V PARTE
LENGUAJES DE PROGRAMACION 64
Ejercicio - Semáforo
• Diagrama de tiempos
t1
t2 t3
t4
V PARTE
LENGUAJES DE PROGRAMACION 65
Contadores
• Los contadores son usados para conteo de pulsos ascendente o
descendente. Ellos tienen sus propios parámetros internos, entradas
y salidas para determinar como trabajan. Para un contador %Cn
estos son:
– Un reset
– Una entrada predeterminada
– Una entrada de conteo ascendente
– Una entrada de conteo descendente
– Una salida de desborde de conteo regresivo: %Cn.E
– Una salida de valor preseleccionado alcanzado: %Cn.D
– Una salida de desborde de conteo progresivo: %Cn.F
– Un valor preestablecido %Cn.P
– Un valor actual: %Cn.V
V PARTE
LENGUAJES DE PROGRAMACION 66
Contadores
ENTRADAS SALIDAS
Reset Conteo regresivo
desbordado
Set
Conteo
preseleccionado
Contador Ascendente alcanzado
Contador Descendente
Conteo progresivo
desbordado
V PARTE
LENGUAJES DE PROGRAMACION 67
Bloque de función del contador
progresivo/regresivo (%Ci)
V PARTE
LENGUAJES DE PROGRAMACION 68
Contadores
V PARTE
LENGUAJES DE PROGRAMACION 69
5.4. Grafcet (SFC)
• El lenguaje Grafcet fue desarrollado para
suministrar una descripción gráfica y
estructurada de una operación de un sistema
automatizado.
• Esta descripción es producida usando:
– Número de pasos, en los cuales las asignaciones
pueden ser asignadas
– Número de transiciones, en las cuales condiciones de
receptividad son asignados.
– Número de cada paso y transición es asignado un
proceso para ejecutar. Este procesamiento puede ser
descrito en un lenguaje conveniente, por ejemplo LD.
V PARTE
LENGUAJES DE PROGRAMACION 70
5.4. Lenguaje Grafcet (SFC)
Grafcet es un método analítico que divide cualquier sistema de control
secuencial en una serie de pasos con acciones, transiciones y condiciones
asociadas. La ilustración que aparece a continuación muestra ejemplos de
instrucciones Grafcet en programas Ladder Logic y Lista respectivamente.
V PARTE
LENGUAJES DE PROGRAMACION 71
Instrucciones aritméticas
V PARTE
LENGUAJES DE PROGRAMACION 72
Estructura de las operaciones
matemáticas
V PARTE
LENGUAJES DE PROGRAMACION 73
Sintaxis operaciones matemáticas
V PARTE
LENGUAJES DE PROGRAMACION 74
Instrucciones lógicas
• Las instrucciones de lógica se utilizan para realizar
operaciones lógicas entre dos operandos de palabra o en
un operando de palabra. La siguiente tabla enumera los
tipos de instrucciones de lógica.
V PARTE
LENGUAJES DE PROGRAMACION 75
Instrucciones lógicas
V PARTE
LENGUAJES DE PROGRAMACION 76
Instrucciones de desplazamiento
V PARTE
LENGUAJES DE PROGRAMACION 77
Consejos sobre programación
Tratamiento de los saltos de programa
• Utilice los saltos de programa con precaución para evitar bucles largos que
prolonguen el tiempo de ciclo. Evite los saltos en las instrucciones ubicadas "detrás"
(Aparece una instrucción delante antes de un salto en un programa. Sin embargo,
aparece una instrucción detrás después de un salto en un programa).
Programación de salidas
• ‘Los bits de salida, al igual que los bits internos, sólo se deben modificar una vez en
el programa. En el caso de los bits de salida, sólo se tiene en cuenta el último valor
examinado cuando se actualizan las salidas.
V PARTE
LENGUAJES DE PROGRAMACION 78
Consejos sobre programación
Tratamiento de recuperación de la alimentación
• Se debe comprobar el estado del bit de sistema %S51, que indica los
posibles fallos del fechador.
V PARTE
LENGUAJES DE PROGRAMACION 79
5.6. Documentación
• La utilidad de la documentación es la de
poseer un documento en papel que
describe en detalle la aplicación. La verdad
es que cuando todo comienza a funcionar
durante un tiempo, si un error ocurre o es
necesario alguna modificación, es muy útil
tener un archivo completo que documenta
la historia del automatismo creado.
V PARTE
LENGUAJES DE PROGRAMACION 80
Principio y propósito de una copia en
papel de la documentación
V PARTE
LENGUAJES DE PROGRAMACION 81
Impresión de la documentación
V PARTE
LENGUAJES DE PROGRAMACION 82
Impresión de la documentación
V PARTE
LENGUAJES DE PROGRAMACION 83