Download Los lenguajes de programación

Document related concepts
no text concepts found
Transcript
Control builder
PS501
© ABB Automation Products Training Page - 1 8/9/2017 / V2
Advant Controller 500 (AC500)
Insert
image
here
IEC 61131-3
El Control Builder PS501
Empecemos
Información Básica sobre el PS501
Los lenguajes de programación
POUs y tipos de datos
© ABB Automation Products Training Page - 2 ControlBuilder PS501
La estructura de un programa
Las diferentes librerías
Información Básica sobre el PS501
PS501 cumple con la IEC 6 1131-3.
Este estándar internacional define:
- la estructura de un programa,
- la declaración de datos
© ABB Automation Products Training Page - 3 ControlBuilder PS501
- la sintaxis y semántica de 5 lenguajes de programación
diferentes:
Instruction List (IL) – Lista de Instrucciones
Structured text (ST) – Texto estructurado
Function block diagram (FBD) - Diagramas de Bloques de Función
Continuous function chart (CFC) – Gráficos de Función Contínuas
Ladder Diagram (LD) - Contactos
Sequencial flow chart (SFC) – Gráficos de Flujo Secuenciales
Información Básica sobre el PS501
El software de programación PS501 está basado en CoDeSys
© ABB Automation Products Training Page - 4 ControlBuilder PS501
para:
Programar,
Testeo,
Depuración,
Ingeniería,
Documentación
de programas para el AC500 - Hardware por ABB.
Información Básica sobre el PS501
© ABB Automation Products Training Page - 5 ControlBuilder PS501
CoDeSys es un producto de la empresa
3S - Smart Software Solutions GmbH
Some 3S - customers
Some 3S - customers
Los lenguajes de programación
Información Básica sobre el PS501
Coming up
Los lenguajes de programación
© ABB Automation Products Training Page - 6 ControlBuilder PS501
POUs y tipos de datos
La estructura de un programa
Las diferentes librerías
© ABB Automation Products Training Page - 7 ControlBuilder PS501
Los lenguajes de programación: Lista de Instrucciones IL
En texto
Lenguaje Assembler
Los operadores funcionan con un
registro especial (accumulator, LD, ST)
Los programas pequeños son muy
fáciles de entender
No soporta programación estructurada
Los lenguajes de programación: Texto Estructurado ST
•Lenguaje tipo Texto
•Lenguaje de alto nivel: similar al PASCAL
•De todos los lenguajes es el más
© ABB Automation Products Training Page - 8 ControlBuilder PS501
adaptable para programación condicional
y programas tipo „loops“ (espiral)
•Es pposible programacíones muy
potentes:
•Escriba sus propias funciones o Bloques
de Funciones en texto estructurado muy
pòtente y llámelos desde un programa
escrito en FBD, CFC o LD
Los lenguajes de programación: Function Block Biagram FBD
© ABB Automation Products Training Page - 9 ControlBuilder PS501
•Lenguaje gráfico
•Fácil de entender
•Estructura determinada para bloques y
operadores
© ABB Automation Products Training Page - 10 ControlBuilder PS501
Los lenguajes de programación: Continuous function chart CFC
•Lenguaje gráfico, similar al FBD
•Fácil de entender
•Libre estructura para bloques y
operadores
•El retorno puede conectarse
diréctamente
© ABB Automation Products Training Page - 11 ControlBuilder PS501
Los lenguajes de programación: Ladder diagram LD (contactos)
Lenguaje gráfico, orientado a redes
Disponible en casi todos los sistemas de PLCs
Especialmente adaptado para programar en términos
booleanos
Menos adaptable para programas complicados
Los lenguajes de programación: SFC (Sequencial Function Chart)
Lenguaje gráfico, consigue un
programa muy bien estructurado
© ABB Automation Products Training Page - 12 ControlBuilder PS501
Contiene Pasos y Transiciones
Este programa esta formado de Pasos
SFC no puede reemplazar otros lenguajes.
Los POUs y tipos de datos
Información Básica sobre el PS501
Los lenguajes de programación
© ABB Automation Products Training Page - 13 ControlBuilder PS501
Coming up
POUs y tipos de datos
La estructura de un programa
Las diferentes librerías
Direcciones, POUs y Tipos de datos: Introducción
Entradas, Salidas, Constantes Indirectas, Pasos(Steps) y Marcas(Flags)
Son aquellos tipos de direcciones que se han de adaptar al hardware
Un POU es una secuencia de líneas de programa, la cual puede
ser llamada por otro POU
© ABB Automation Products Training Page - 14 ControlBuilder PS501
La programación se puede elaborar en uno de los cinco lenguajes
de programación
El POU reservado PLC_PRG arranca cíclicamente por el propio
sistema
Los datos pueden ser validados localmente o globalmente y pueden
Ser declarados a priori, programados en una tabla o automáticamente
mientras se está programando.
Direcciones, POUs y Tipo de Datos: El Program Organization Units
Función:
FUN
Entrada, un resultado, no memoria.
© ABB Automation Products Training Page - 15 ControlBuilder PS501
Ejemplo:
operador AND (todos los operadores)
Bloque de Función:
FB
Entradas, Salidas, memoria.
Es posible crear diferentes instancias (copias) de un Bloque
de Función
Ejemplo:
TON (ON retrasado))
Programa:
PRG
Como un Bloque de Función, pero sólo una instancia global.
Ejemplo:
Un programa llama a otro.
Direcciones, POUs y Tipo de Datos: Tipos de datos Estándar (1)
Bool:
TRUE
o
FALSE
Datos tipo Integer (Enteros):
© ABB Automation Products Training Page - 16 ControlBuilder PS501
Tipo
BYTE
WORD
DWORD
SINT
USINT
INT
UINT
DINT
UDINT
Límite Inferior Límite
Superior
255
0
65535
0
4294967295
0
127
-128
255
0
32767
-32768
65535
0
-2147483648 2147483647
4294967295
0
Memoria
Requerida
8 bit
16 bit
32 bit
8 bit
8 bit
16 bit
16 bit
32 bit
32 bit
Direcciones, POUs y Tipo de Datos: Tipos de datos Estándar (2)
REAL / LREAL
REAL y LREAL (long real) son de tipo coma flotante. Se aplican para números racionales. Ocupan
un rango de memoria de 32 bits para REAL y 64 bits para LREAL.
STRING
Una variable de tipo STRING puede tener cualquier carácter uno tras otro. La definición del
TRING-length hace referencia a los carácteres y puede estar definido dentro de „ (..) o ..... .
La longitud por defecto es 80.
© ABB Automation Products Training Page - 17 ControlBuilder PS501
Ejemplo para una declaración de STRING:
str:STRING(35):='Esto es un string!';
Tipo de datos para Tiempos
Los datos tipo TIME, TIME_OF_DAY (TOD), DATE y DATE_AND_TIME (DT) están definidos
internamente como DWORD.
TIME y TOD se han de definir en milisegundos (ms) . TOD está calculado desde 00:00 hrs .
DATE y DT an de estar definidos en segundos (s). Estos están calculados desde
El 1 de Enero de 1970, 00:00hrs.
La estructura de un programa
Información Básica sobre el PS501
Los lenguajes de programación
© ABB Automation Products Training Page - 18 ControlBuilder PS501
POUs y tipos de datos
Coming up
La estructura de un programa
Las diferentes librerías
La estructura de un programa (1)
Un proyecto contiene
un amplio rango de
Project
(Proyecto)
Grabado en archivo:
name.pro
P Programm O Organisation U Units
© ABB Automation Products Training Page - 19 ControlBuilder PS501
POU
Global variables
Data types
(Variables Globales)
(Tipo de datos)
En la posición inicial hay un programa
Llamado PLC_PRG (Programa Principal), y
es ejecutado cíclicamente
Declaración
(variables locales)
Codigo
La estructura de un programa (3)
Program PRG
© ABB Automation Products Training Page - 20 ControlBuilder PS501
Function FUN
FUN
Function block FB
FB
FUN
PRG
FB
FUN
La estructura de un programa : Normas para escribir un programa de usuario
Normas Importantes:
Los POUs llamados siempre vuelven al que llama
(programa y sus módulos están enlazados)
© ABB Automation Products Training Page - 21 ControlBuilder PS501
Tenga en cuenta el ciclo del programa (cycle time)
Proyectos ejecutados dentro del ciclo han de ser
siempre un programa definido con el nombre
PLC_PRG
Definición: Según es Standar IEC 61131-3
PLC_PRG es el nombre de un POU cíclico
La estructura de un programa : Llamada de POUs (1)
© ABB Automation Products Training Page - 22 ControlBuilder PS501
POU:
Llamada desde el editor
POU:
Llamada desde el programa
La estructura de un programa : Llamada de POUs (2)
© ABB Automation Products Training Page - 23 ControlBuilder PS501
Llamada de programas
dentro del programa ppal:
PLC_PRG
La estructura de un programa : Las funciones y los operadores
Hay diferentes grupos de operadores:
Asignadores
Operadores Booleanos
Operadores Analógicos
.
Comparadores
© ABB Automation Products Training Page - 24 ControlBuilder PS501
Selectores
Operador Real
Operador Shift
Operador
Convertidor de Tipo
Funciones
Su representación depende del
lenguaje de programación escogido.
La expresión OPERATOR
no
existe en el Stándar. En el estándar
IEC 61131-3 los operadores están
definidos bajo funciones estándar.
Pero 3S creó una lista de operadores
para simplificar la operación:
La estructura de un programa : Las funciones, Bloques de Funciones
Funciones String
LEN LEFT RIGHT MID CONCAT INSERT DELETE REPLACE FIND
Funciones
Detección de rampa
R_TRIG
F_TRIG
Detecta rampa positiva
Detecta rampa negativa
© ABB Automation Products Training Page - 25 ControlBuilder PS501
Contador
CTU
CTD
CTUD
Incrementa por cada rampa (up- counter)
Decrementa por cada rampa (down - counter)
Incrementa / decrementa en cada rampa (up-/down
counter)
Temporizador
TP
TON
TOF
Pulso
Temporizador Activar con Retraso
Temporizador Desactivar con Retraso
Bloques de Funciones
Las Librerías
Información Básica sobre el PS501
Los lenguajes de programación
© ABB Automation Products Training Page - 26 ControlBuilder PS501
POUs y tipos de datos
La estructura de un programa
Coming up
Las diferentes librerías
© ABB Automation Products Training Page - 27 ControlBuilder PS501
Las diferentes librerías: Librería Estandar: p.ej. FB CTUD
© ABB Automation Products Training Page - 28 ControlBuilder PS501
Las diferentes librerías: Librería del Fabricante: p.ej. FB PDM
© ABB Automation Products Training Page - 29 ControlBuilder PS501
Las diferentes librerías: Librería de usuario
The different libraries: Creando una librería de usuario:
1. Crear el FB o FUN : programe, compile, testee y exporte:
Project
Export
resultado
<FUN / FB name> .exp
FUN or FB (click)
2. Abrir un nuevo Proyecto e importe sus FBs o FUNs que quiera cargar en la nueva librería
y „Rebuild all“:
Importante
© ABB Automation Products Training Page - 30 ControlBuilder PS501
Project
> Este proyecto no debe contener una lista de variables globales
> PLC_PRG ha de ser borrado
1:
Import
2:
Rebuild all
resultado
<FUN / FB name> in Object Organizer
3. Guarde este proyecto con un nuevo nombre (nombre de la librería) en el directorio
LIBRARY
Date
guardad como
*.lib , click
resultado
„ Internal library“
Nueva librería en el directorio LIBRARY :
< name>. Lib