Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Lenguajes Programacion V4 PDF
Lenguajes Programacion V4 PDF
1
20/11/2003
Objetivos
1. Comprender la necesidad de estandarización
del software de programación de PLC
2. Conocer la norma IEC 1131
3. Conocer los lenguajes más utilizados para la
programación de PLC
4. Conocer la forma de ejecución de programas
en un AP
2
20/11/2003
Introducción
Programación
Modos de funcionamiento
Lenguajes
3
20/11/2003
Programación
• Resolución del problema de automatización
• Confeccionar los programas
– Programas = conjunto de instrucciones elementales
– Instrucciones = conjunto de operandos y operadores
– Operadores: particulares de cada lenguaje
– Operandos: siempre los mismos:
• entradas y salidas digitales y analógicas
• Módulos o estructuras complejas de datos: contadores, temporizadores,
desplazadores,...
• Memoria, marcas o TAGS
4
20/11/2003
(PROGRAM)
Modos de funcionamiento CONFECCIÓN
DEL PROGRAMA
DE SUSUARIO:
- LDI
• PROGRAM - EDC...
– Permite programar y transferir
el programa de usuario desde
TRANSFERENCIA
el sistema de programación
hasta el AP
• RUN:
(RUN)
– Permite al AP controlar el
proceso
lectura variables int/ext TL
• Ejecución periódica
actualización variables TA
Tproceso > Tperiodo
20/11/2003 Sistemas Electrónicos de Control
TC=TL+TE+T5A
5
20/11/2003
Lenguajes
LI ST SFC
LD A
ANDN B C:= A AND NOT B Step 1 N FILL
ST C
Transition 1
6
20/11/2003
Estandarización
Norma IEC 1131-3
7
20/11/2003
¿Estandarización?
Problema planteado a los ingenieros de Sw
8
20/11/2003
IS = International Standard
9
20/11/2003
Lenguajes de Programación Vs
Programación de Control Industrial
El interface entre el programador
y el Sistema de control ...
10
20/11/2003
Usuarios de la norma
Control de
Procesos Integradores
de Sistemas
TU ??
Educación
Programadores
Mantenimiento Instaladores
11
20/11/2003
12
20/11/2003
13
20/11/2003
Bottom Up
Lenguajes de Programación
Sistemas Electrónicos de Control 14
14
20/11/2003
IEC 1131-3
Elementos Comunes Diseño
Proyectos
Tareas
• Variables, tipos de datos y declaraciones Variables Globales
• Diseño, proyectos y tareas Caminos de Acceso
Lenguajes de Programación
FBD
LI LD AND
LD A ST
A B C A C
ANDN B
-| |--|/|----------------( ) B C:= A AND NOT B
ST C
15
20/11/2003
FB
Programa Programa Programa Programa Boque de
FB FB FB FB funciones
Variables Globales
Variable
16
20/11/2003
Automation
application
INPUT OUTPUT IN_OUT EXTERNAL
FUNCTION_BLOCK
PROGRAM
Type Local
Type Local
GLOBAL
INPUT
FUNCTION
Type Local
17
20/11/2003
Lista de Instrucciones
Instruction List (IL)
18
20/11/2003
Listado de Instrucciones
LI
LD A
ANDN B
ST C
19
20/11/2003
Semántica y Operadores
LD Set current result equal to operand
ADD Addition
ST Store current result to operand location
SUB Subtraction
S Set Boolean operand to 1
MUL Multiplication
R Reset Boolean operand to 0
DIV Division
20
20/11/2003
Ejemplos de instrucciones
OPERADORES
ETIQUETAS OPERANDOS
COMENTARIOS
21
20/11/2003
Texto Estructurado
Structured Text (ST)
22
20/11/2003
Texto Estructurado
ST
23
20/11/2003
Operadores
Symbol Operation
(expression) Parenthesization
identifier(argument list) Function evaluation
Examples:
LN(A), MAX(X,Y), etc.
** Exponentiation
- Negation
NOT Complement
24
20/11/2003
Operadores
* Multiply &, AND Boolean AND
/ Divide OR Boolean OR
MOD Modulo XOR Boolean xclusive OR
+ Add
- Subtract A := B; asignación
< , > , <= , >= Comparison
= Equality Datatype to Datatype
<> Inequality INT to INT
or
IF .. THEN .. ELSE Analog_Channel_Configuration to
CASE Analog_Channel_Configuration
FOR
WHILE … CV := CV+1;
REPEAT UNTIL C := SIN(X);
25
20/11/2003
26
20/11/2003
27
20/11/2003
Ventajas
• Documentación y programación en un mismo
elemento del programa
– Informes generales, comentarios, flujo de datos...
• Aplicación universal, enteros, punto flotante...
• Programación estructurada
– Definición y llamada a subrutinas
• Conjunto de funciones y de bloques estandarizados
– Se pueden mezclar bloques de distintos fabricantes
– Se pueden definir nuevos bloques
• Los FBs son altmaente reutilizables
– En un mismo programa
– En programas diferentes
– En diferentes proyectos
20/11/2003 Sistemas Electrónicos de Control 28
28
20/11/2003
horizontal, vertical
flow direction
crossing with / without contact
29
20/11/2003
Elementos - Parametrización
Negation
Duplication
30
20/11/2003
Elementos adicionales
Jumps
20/11/2003 Conectores
Sistemas Electrónicos de Control 31
31
20/11/2003
Reglas de Ejecución
32
20/11/2003
Realimentación
33
20/11/2003
34
20/11/2003
Esquema de Contactos
Ladder Diagram (LD)
35
20/11/2003
Ladder
LD
A B C
-| |--|/|----------------( )
36
20/11/2003
Origenes del LD
• Su origen es la representación gráfica
utilizada en el diseño de sistemas de control
eléctricos
– Las decisiones de control se hacen efectivas
activando relés
OR
• Despues los relés se sustituyeron por AND
circuitos lógicos
– Las decisiones de control se hacen efectivas
en función de las salidas de la puertas lógicas
• Finalmente las CPUs sustiteyen los
complejos y amplios circuitos lógicos
– Las E/S se cablean con buffers CPU
– Las decisiones de control son programas en
ejecución
• La representación de la lógica de relés
evolucionó para una creación y comprensión
más sencilla de los programas
– Reduce el tiempo de formación de los
programadores
20/11/2003 Sistemas Electrónicos de Control 37
37
20/11/2003
¿Qué es un Rung?
• Es una línea de programa
• Contiene las instrucciones de entrada y salida
– Entrada: permiten una comparación o test de las
condiciones y se obtiene el resultado de la
evaluación.
• Habitualmente aparecen el la parte izquierda del rung
– Salida (Coil): examinan el resultado de la evaluación
y si es true ejecutan alguna operación o función
• En algunos casos pueden ser el estado del rung
• Habitualmente aparecen el la parte derecha del rung
COIL
38
20/11/2003
A C D E
B AND F
OR Branches
39
20/11/2003
A D E
40
20/11/2003
Contactos
• Normalmente Abierto --| |--
– Activa el rung hacia la derecha de la instrucción cuando el contacto
se activa
41
20/11/2003
Acciones (Coils)
• Acción --( )--
– Activa un bit cuando el rung es true y lo desactiva cuando es false
• Acción negada --( / )--
– Activa un bit cuando el rung es false y lo desactiva cuando es true
• Enclavamiento (Latch) --(S)--
– Activa un bit cuando el rung es true y no hace nada cuando es
false
• Desenclavamiento (Unlatch) --(R)--
– Desactiva un bit cuando el rung es true y no hace nada cuando es
false
• Acción activa por flanco de subida --(P)--
– Activa un bit cuando la instrucción de entrada transiciona de false a
true
• Acción activa por flanco de bajada --(N)--
– Activa un bit cuando la instrucción de entrada transiciona de true a
false
20/11/2003 Sistemas Electrónicos de Control 42
42
20/11/2003
Instrucciones IEC de
Comparación
• Si el rung de entrada está activo
(EN), la instrucción ejecuta la EQ
operación y activa el rung de EN ENO
salida (ENO) basado en la Tank1_Level
IN1
comparación 100.000
Tank_max
– Ejemplo 78.251 IN2
• Cuando EN es true, EQ (=) la funcion
compara In1 y In2 y si son iguales activa
ENO
• Conjunto de instrucciones de
comparación
– EQ(=), GT (>), GE (>=), LT (<), LE
(<=), NE (<>)
20/11/2003 Sistemas Electrónicos de Control 43
43
20/11/2003
Instrucciones IEC de
Temporización
Pump_Tmr
• Tres insctrucciones básicas
TON
– TP - Pulse timer IN Q
44
20/11/2003
IN
Temporizador Q
PT
ET |
0
45
20/11/2003
Instrucciones IEC de
Contadores
Load_Cnt
46
20/11/2003
IN
... ...
Q
Contadores CV
PV
|
0
R
de salida
Count Up/Down (CTUD) Counter
• R = Puesta a cero CU
...
QU
• LD = Carga CV con PV CD
...
• PV = Preset Value QD
PV
• CV = Count Value CV |
0
R
LD
20/11/2003 Sistemas Electrónicos de Control 47
47
20/11/2003
Ruptura de la secuencia de
ejecución
• Instrucciones de salto a • Instrucciones de salto a
subrutinas
etiquetas – Salta a un bloque de código
– Salta a un bloque de código encapsulado como una
del programa subrutina
– LBL – nombre de la etiqueta – CALL – pasa el control a otra
para la operación de salto función
– JMP – ejecución de un salto – RET – retorno al punto siguiente
cuando se activa la desde donde fue llamada la
instrucción de entrada subrutina
| Skip_Calc |
|-| |-------------(JMP)--| CAL
| ... | CAL
| Skip_Calc |
|---[LBL]---... RET RET
48
20/11/2003
1 Rung of Logic
1 Instruction
11 Rungs of Logic Minutes to code and debug
17 Instructions
Hours to code and debug
49
20/11/2003
50
20/11/2003
51
20/11/2003
Grafcet
• Las etapas o estados
implican acciones asociadas
etapa inicial
0
• Las transiciones gobiernan
los cambios de estado transición COMIENZO DEL CICLO
52
20/11/2003
12 ACC. E 16 ACC. K
h
f e
13 ACC. G 17 ACC. L
g e
14 ACC. H 18 ACC. M
m
h n
15 ACC. J 19 ACC. P
j j
53
20/11/2003
• DIRECCIONAMIENTO CONDICIONAL:
Elección condicional entre varias secuencias posibles
x y z
6 ACC. A 8 ACC. C 9
a c w
7 ACC. G 10 ACC. D
g d
11 ACC. E
54
20/11/2003
• SECUENCIAS SIMULTÁNEAS:
Varios estados activos a la vez
5
y
6 ACC. A 8 ACC. C 9
a w
7 ACC. G 10 ACC. D
11 ACC. E
e
20/11/2003 Sistemas Electrónicos de Control 55
55
20/11/2003
Fuentes de Información
56
20/11/2003
Fuentes de Información
57