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