" Tecnologías Emergentes en
Automatización "
Profesores: Israel Benítez Pina
Luis Vázquez Seisdedos
Luisa Villafruela Loperena
Enrique Castro
Orlando Obregón Pacheco
Facultad de Ingeniería Eléctrica
Universidad de Oriente
-2002-
" Programación IEC1131
compatible "
Profesor: Luisa Villafruela Loperena
Centro de Estudios de Automatización
Facultad de Ingeniería Eléctrica
Universidad de Oriente
-2002-
Características de los PLCs y
exigencias de su aplicación
Rápido desarrollo
de los PLCs
TC 65
del IEC
Objetivo
Métodos de diseño y
lenguajes de
programación propios
Se expanden algunos
Estandarizar los lenguajes de
programación para PLCs
IEC 1131
I
E
C
Parte 1 - “Informaciones generales”
Parte 2 - “Requerimientos de los equipos
y test”
Parte 3 - “Lenguajes de programación”
1
1
3
1
Parte 4 - “Recomendaciones al usuario”
Parte 5 - “Comunicaciones”
Parte 7 - “Control Fuzzy”
Director: O. Struger
Utilización
de los
PLCs en
redes de
control
distribuido
Ampliado el uso de
estos equipos
Solución:
Diseño actual de los
sistemas automatizados
depende de la
experiencia del
programador

Calidad masiva de las
automatizaciones
resultantes
Empleo de BF
como
bibliotecas
estructuradas
Resultados de la encuesta realizada por la CE
Febrero 2001
Tendencias actuales
No lo
Emplean emplean
24%
los PLCs
76%
Convertir
la PC en
PLC
Estandarizar
el uso de los
PLCs
Resultados de la encuesta realizada por la CE
Febrero 2001
Empleo de los PLCs según áreas de aplicación
87
81
67
58
2001
2000
40 40
26
32
18 18
Otros
Diagnostico
Control por
lote
Control de
movimiento
Control de
procesos
3 3
Control de
maquinaria
100
90
80
70
60
50
40
30
20
10
0
Resultados de la encuesta realizada por la CE
Febrero 2001
Empleo de los módulos de E/S
91
81
44
43
Contadores de
alta velocidad
PIDs
Comunicaciones
Digitales
62
Analógicas
100
90
80
70
60
50
40
30
20
10
0
Importancia de la utilización de la IEC 1131
según encuesta realizada por la CE Marzo
2000
Otros datos:
Algo
importante
41%
No
contesta
ron
13%
No es
importante
para
nada
39%
Es un
deber
7%
• 1999 alcanza
gran popularidad.
• 93% programan
en LD.
•1 de cada 5 usan
FB (incremento de
3 ptos).
El uso de lenguaje de programación
estandarizado permite:
• Extensibilidad de los programas de aplicaciones
a otros PLCs IEC compatibles.
• Facilidades para elaborar BF, utilizar los
propios del sistema o los suministrados como
bibliotecas estructuradas.
• BF parametrizables como mejor opción para la
reusabilidad y extensibilidad del lenguaje.
I
E
C
1
1
3
1
3
• LD: Diagrama a contactos o de escalera
(Ladder Diagram).
• IL: Lista de Instrucciones (Instruction List).
• FBD: Diagrama
de Bloques Funcionales
Es una representación
gráfica
(Function Block Diagram).
de expresiones booleanas,
combinando
contactos
• ST: Texto
Estructurado
(Structured Text).
(condiciones) con bobinas
• SFC: Carta
de Funciones
Secuenciales
(resultados)
similar
a un
(Sequential
FunctiondeChart).
diagrama
contactos
eléctricos.
I
E
C
1
1
3
1
3
• LD: Diagrama a contactos o de escalera
(Ladder Diagram).
• IL: Lista de Instrucciones (Instruction List).
• FBD: Diagrama de Bloques Funcionales
(Function Block Diagram).
Su estructura principal es una lista de
• ST:instrucciones,
Texto Estructurado
Text).
donde (Structured
cada instrucción
debe ocupar una nueva línea. Cada línea
• SFC:
Carta un
de Funciones
Secuenciales
contiene
operador, que
es completado
(Sequential
Function Chart).
por modificadores
opcionales y uno o
más operandos, si la operación
específica lo requiere.
I
E
C
1
1
3
1
3
• LD: Diagrama a contactos o de escalera
(Ladder Diagram).
• IL: Lista de Instrucciones (Instruction List).
• FBD: Diagrama de Bloques Funcionales
(Function Block Diagram).
• ST: Texto Estructurado (Structured Text).
Consiste en una representación gráfica de
tipos
ecuaciones.
Los operadores
•diferentes
SFC: Carta
dede
Funciones
Secuenciales
son representados
porChart).
cajas rectangulares de
(Sequential
Function
funciones y los operandos se conectan a sus
lados izquierdo (entradas) y derecho (salidas).
I
E
C
1
1
3
1
3
Un programa en ST es una lista de
sentencias ST. Cada sentencia termina en
un separador “;” y se incluye dentro de uno
• LD:
a contactos
o de escalera
deDiagrama
los tipos básicos
de: asignación,
selección,
(Ladder
Diagram).
iteración,
control o especiales. Los nombres
usados en el código fuente (identificadores de
palabras
reservadas
del
• IL:variables,
Lista de constantes,
Instrucciones
(Instruction
List).
lenguaje, ...) se desagrupan usando separadores
inactivos
o activos.
• FBD:
Diagrama
de Bloques Funcionales
(Function Block Diagram).
• ST: Texto Estructurado (Structured Text).
• SFC: Carta de Funciones Secuenciales
(Sequential Function Chart).
I
E
C
1
1
3
1
3
Es un conjunto gráfico de pasos y
transiciones
enlazadoso por
• LD: Diagrama
a contactos
de escalera
(Ladderconexiones
Diagram).orientadas. Cada
transición es atada a una condición
booleana.
Las acciones
de los pasos
• IL: Lista
de Instrucciones
(Instruction
List).
son detalladas usando otros
IL, LD, FBD).
• FBD:lenguajes
Diagrama(ST,
de Bloques
Funcionales
(Function Block Diagram).
• ST: Texto Estructurado (Structured Text).
• SFC: Carta de Funciones Secuenciales
(Sequential Function Chart).
Tipos de operandos de uso común en PLCs
La IEC 1131-3 recoge todos los tipos de
operandos de uso común en PLCs. En su
apartado 2.2 (Representación exterior de los
datos) se establece que dicha representación
deberá consistir en literales numéricos, literales
de cadenas de caracteres y literales de tiempo. A
partir de ello en el sistema ISaGRAF (IEC 11313 compatible) de CJ International se agrupan en
cuatro tipos básicos: Booleano, Analógico,
Temporizado y Mensaje.
Lenguaje LD
Barra de alimentación izquierda
(con enlace horizontal acoplado)
Contactos
Bobinas
Bloques funcionales
Barra de alimentación izquierda
(con enlace horizontal acoplado)
Símbolo de salto
Símbolo de retorno
Entrada “EN”
Salida “ENO”
Lenguaje LD
Contactos:
Contacto normalmente abierto
Contacto normalmente cerrado
Contacto detector de transición positiva (flanco
ascendente)
Contacto detector de transición negativa (flanco
descendente)
Lenguaje LD
Bobinas:
Bobina accionamiento directo
Bobina accionamiento inverso
Seteo de una salida (condicionado)
Reseteo de una salida (condicionado)
Accionamiento directo frente a detección de flanco
ascendente
Accionamiento directo frente a detección de flanco
descendente
Lenguaje LD
Enlaces:
Lenguaje IL
Una línea de programa esta formada por:
Operador modificadores
opcionales
operandos [; ó retorno]
Operadores de IL:
Operador Modificadores Operando
LD
N
ST
N
S
R
NOTA 2
NOTA 2
Semántica
NOTA 1 Poner el resultado actual igual al
operando
NOTA 1 Almacenar el resultado actual en
el emplazamiento del operando
NOTA 1 Poner el resultado booleano en 1
Poner el operando booleano a 0
Lenguaje IL
Operadores de IL:
Operador Modificadores Operando
AND
&
OR
XOR
ADD
SUB
MUL
DIV
N,(
N,(
N,(
N,(
(
(
(
(
BOOL
BOOL
BOOL
BOOL
WORD
WORD
WORD
WORD
Semántica
AND Booleano
AND Booleano
OR Booleano
OR exclusivo Booleano
Suma
Resta
Multiplicación
División
Lenguaje IL
Operadores de IL:
Operador Modificadores Operando
GT
GE
EQ
NE
LE
LT
JMP
CAL
RET
)
(
(
(
(
(
(
C, N
C, N
C, N
WORD
WORD
WORD
WORD
WORD
WORD
LABEL
NAME
Semántica
Comparación >
Comparación >=
Comparación =
Comparación <>
Comparación <=
Comparación <
Saltar a la etiqueta
Llamar al bloque funcional
Regresar de la función o
BF que ha sido llamado
Evaluar la operación aplazada
Lenguaje IL
D etec tor de Flanco
A sce nde nte
B ool
R _T R IG
C lk
Q
B ool
C ontador (C T U ,C T D )
T e m por izado r(T P,T O N ,T O F)
***
B ool
Cu
Q
B ool
B ool
T IM E
R
Int
Pv
***
B ool
Cv
B ool
In
Q
Pt
Et
Int
VAR
VAR
VAR
R _T R IG 1 : R _T R IG
C 10 : C T U
T 20 : T P
E N D _V A R
E N D _V A R
E N D _V A R
LD
% IX 10
LD
15
LD
150s
ST
R -T R IG 1.C lk
ST
C 10.Pv
ST
T 20.Pt
LD
R -T R IG 1.Q
LD
% M X 10
LD
% IX 10
ST
% M X 10
ST
C 10.C u
ST
T 20.In
CAL
C 10
CAL
T 20
LD
C 10.Q
LD
T 20.Q
ST
% M X 11
ST
% M X 12
LD
C 10.C v
LD
T 20.E t
ST
%MW1
ST
%MW2
T IM E
Lenguaje FBD
Lenguaje ST
Expresiones: Una expresión es una construcción
sintáctica que al ser evaluada suministra un valor
correspondiente a uno de los tipos de datos definidos en la
norma (BOOL, INT, REAL, TIME, BYTE, WORD,
STRING).
Operadores del lenguaje ST
Operación
Símbolo
Prioridad
Puesta entre paréntesis
Expresión
Máximo
Evaluación de la función Identificador
(lista de argumentos)
Ejemplos
LN(A), MAX(X,Y), etc.
Elevación a exponentes **
Lenguaje ST
Operadores del lenguaje ST
Operación
Negación
Complemento
Multiplicar
Dividir
Módulo
Sumar, Restar
Comparación
Igualdad, Desigualdad
AND Booleano
OR exclusivo Booleano
OR Booleano
Símbolo
NOT
*
/
MOD
+, <, >, <=, >=
=, <>
&, AND
XOR
OR
Prioridad
Mínimo
Lenguaje ST
Sentencias del lenguaje ST
Tipo de sentencia/referencia
Asignación
Invocación de FB y
utilización de salida FB
RETURN
Ejemplos
A:=B; CV := CV+ 1;
CMD_TMR(IN := %IX5, PT:=T#300ms)
A := CMD_TMR.Q;
RETURN;
Lenguaje ST
Sentencias del lenguaje ST
Tipo de sentencia/referencia
IF <expresión booleana> THEN
<instrucción>;
<instrucción>;
...
ELSIF <expresión bool.> THEN
<instrucción>;
...
ELSE
<instrucción>;
END_IF;
Ejemplos
D:= B*B - 4*A*C;
IF D < 0.0 THEN NROOTS := 0;
ELSIF D = 0.0 THEN
NROOTS := 1 ;
X1 := -B/ (2.0*A)
ELSE
NROOTS := 2 ;
X1 := (-B+SQRT(D))/(2.0*A)
X2 := (-B-SQRT(D))/(2.0*A)
END_IF ;
Lenguaje ST
Sentencias del lenguaje ST
Tipo de sentencia/referencia
Ejemplos
CASE <expresión entera> OF
TW := BCD_TO_INT (THUMBWHEEL) ;
<valor>: <instrucción>;
TW_ERROR := 0 ;
<valor>, <valor>: <instrucción>;
CASE TW OF
...
1,5 : DISPLAY := OVEN_TEMP ;
ELSE
2: DISPLAY := MOTOR_SPEED ;
<instrucción>;
3: DISPLAY := GROSS_TARE ;
END_CASE;
4,6..10: DISPLAY := STATUS (TW-4) ;
ELSE DISPLAY := 0 ;
TW_ERROR := 1 ;
END_CASE ;
QW100 := INT_TO_BCD (DISPLAY) ;
Lenguaje ST
Sentencias del lenguaje ST
Tipo de sentencia/referencia
Ejemplos
FOR<índice>:=<mini>TO<maxi>
J := 101 ;
BY <paso> DO
FOR I := 1 TO 100 BY 2 DO
IF WORDS[I] = ‘’KEY’’ THEN
<instrucción>;
<instrucción>;
J := I ;
END_FOR;
EXIT ;
END_IF ;
END_FOR ;
WHILE <expresión bool.> DO
J := 1 ;
<instrucción>;
WHILE J <= 100 & WORDS [J] <>’’KEY’ DO
<instrucción>;
END_WHILE;
J := J+2 ;
END_WHILE ;
Lenguaje ST
Sentencias del lenguaje ST
Tipo de sentencia/referencia
Ejemplos
REPEAT
J := -1 ;
<instrucción>;
REPEAT
<instrucción>;
J := J+2 ;
UNTIL <expresión booleana>
UNTIL J = 101 OR WORDS[J] = “KEY”
END_REPEAT;
END_REPEAT ;
EXIT
EXIT ;
Sentencia vacío
;
Lenguaje SFC
El lenguaje SFC es usado para describir operaciones de
procesos secuenciales. Utiliza una simple representación
gráfica de diferentes pasos de un proceso, y de las
condiciones que habilitan el cambio (transición) de los pasos
activos. Sus principales elementos son:
Paso inicial
Paso
Transición
Salto a un paso
Macro paso
Inicio del macro paso
Fin del macro paso
Lenguaje SFC
Las representaciones de los pasos tienen dos niveles
N ivel 1:
N ivel 2:
Lenguaje SFC
(*P rog ram a e n S F C c o n sim ple d ive rg e n cia y c o n v erg e n c ia *)
Lenguaje SFC
(*P rog ram a e n S F C c o n d o ble d iv erg e n cia y c o n v e rge n c ia*)
Lenguaje SFC
Acciones asociadas a los pasos:
Acciones Booleanas: Directa (N), Inversa (/), Seteo (S),
Reseteo (R).
Lenguaje SFC
Acciones asociadas a los pasos:
Para asociar funciones analógicas o de cualquier otro tipo a
un paso pueden agruparse en un programa ST que se acopla
al paso mediante las acciones P (PULSE) o N (Directa).
A continuación el resultado de una acción no guardada:
Lenguaje SFC
Se pueden utilizar las acciones booleanas N, S y R para
activar programas SFC hijos.
(* Progr am a S FC us ando ac c io nes S FC *)
Lenguaje SFC
A las transiciones se le pueden asociar operaciones en
lenguaje:
LD
IL
(* Progr am a S FC co n un progr am a e n IL para la trans ic ió n*)
(* Progr am a S FC co n un progr am a e n S T par a la tra nsició n*)
ST
Trabajando con el ISaGRAF V3.3
ISaGRAF V3.3
Descargar

Presentacion Power Point