CONTROLADORES PROGRAMABLES Professor : Jair Jonko Araujo Sumario Tipos de industrias; Niveles de Control; Conceptos: SVC, SED, Clasificación de los dispositivos; CLP: Histórico, componentes, funcionamiento, clasificación, ejemplos; Introducción – Conceptos Básicos Tipos de Industria Manufactura producir un bien cualquiera utilizando herramientas o máquinas (transformación mecánica a través de sucesivas operaciones); Proceso Conjunto de operaciones/transformaciones realizadas sobre un material, con la finalidad de variar sus propiedades físicas/químicas. Procesos pueden ser contínuos o discontinuos (batch). Niveles de control - Funciones Gerenciamiento COMUNICACIÓN Supervisión COMUNICACIÓN La Zona de Control COMUNICACIÓN Sensores / Actuadores Niveles de Control (1) Niveles de Control (2) Niveles de Control (3) Nível de Planta Ciclo < 1s PCME 1 2 3 4 5 6 7 8 9 0 CNC Host Nível de Controle Ciclo < 100 ms VMEPC PLC DCS Nível de Campo PROFIBUS-DP Ciclo < 10 ms Acionador E/S Remoto Válvulas Dispositivo de Campo Transmissor Dispositivo de Campo Conceptos Control es “aplicación de una acción preplaneada para que aquello que se considera como objeto de control alcance ciertos objetivos” (Miyagi, 1996). Sistemas de control: SVC (sistemas de variables continuas) igualar el valor de una variable física (var. de control) a un valor de referencia; SED (Sistema de eventos discretos) ejecución de operaciones conforme procedimiento prestablecido. Conceptos Valores de referencia Dispositivo de Control (SVC) Regulador Señales de realimentación Variábles de actuación Actuador Objeto de control Detector Variables controladas Comandos de tarea Dispositivo de Control (SED) Variables de Comandos de actuación Control Procesador de Actuador Objeto de Comandos control Estados Detector Variables controladas Conceptos Dispositivo de Comando Dispositivo de Monitoreo Dispositivo de Realización de Control Recursos Dispositivo de Actuación Dispositivo de Detección Objeto de Control Operador/ Usuario Sistema de Control SED Dispositivo de Control Sistema de Control Productos Conceptos Dispositivos de comando (E): botoneras, llaves rotativas, etc; Dispositivos de actuación(S): contactores, solenoides(válvulas), servo-motores, etc; Dispositivos de detección(E): llaves fin de curso, potenciómetros, sensores, encoders, etc; Dispositivos de monitoreo(S): lámparas, bocinas, displays, registradores, etc. Dispositivos de Realización: circuitos eléctricos, CLPs, etc. Dispositivos - Ejemplos CLP – Controlador Lógico Programable Histórico Hasta el final de la década de 60 los sistemas de control eran electromecánicos (realizados para armarios/cuadros de relés); Ocupaban mucho espacio y eran de difícil mantenimiento; Modificaciones en las líneas de producción demandaban mucho tiempo y practicamente exigían el montage de nuevos cuadros; En 1968 la GM (USA) lanzó una especificación técnica de un nuevo dispositivo de control. Histórico Requisitos de especificación: Fácil programación y mantenimiento (reprogramación); Alta confiabilidad en el ambiente industrial (vibración, calentamiento, polvo, etc.); Dimensiones reducidas; Capacidad de enviar datos a un Sistema Central; Ser modular (expansible); Señales de E/S de 115VCA (2A mínimo salida) Histórico En 1969 surgieron los primeros controladores Eran muy simples apenas con E/S digitales; La fácil programación fue una de las claves del éxito (basada en ladder); A lo largo de la década del 70 fueron siendo introducidas nuevas funcionalidades (temporización, computación numérica, etc.) A partir de la década de 80 las funciones de comunicación fueron perfeccionadas Histórico Hoy el PLC es un sistema microcontrolador (microprocesador) industrial con software y hardware adaptado para ambiente industrial (especialmente ruído eletromagnético) con muchas opciones de programación, con capacidad de operar en red en diversos niveles. Componentes Dispositivos Placa Entrada Comunicación Barramento Memoria Computador Fuente CPU Placa Salida Dispositivos Componentes CPU Microcontrolador de 16/32 bits: Funciones: Comunicación entre las partes del PLC; Control de entradas y salidas; Ejecución; Operación de memoria; Check-ups internos. Componentes Memoria La memoria es divida en 2 grandes bloques: Memoria del Sistema Programa de Ejecución; Área de Borrador: flags, cálculos, alarmas, errores. Memoria del Usuario Programa del usuario (binario); Tabla de Datos: Mapa E/S, valor actual y pre-set de contadores y temporizadores, variables de programa. Componentes Módulos de E/S Pueden ser Discretos o Analógicos Discretos Cantidad de Puntos Disponibles AC, DC, Relé DC: Tipo P ou Tipo N Salida: necesidad de alimentación externa, fusibles Analógicos Número de Canales, Resolución del conversor A/D Faja de operación: 0-20mA, 4-20mA, 0-5V, 0-10V, +5V, +-10V, temperatura (termopar - J,E,K ... , termorresistencia – PT100, ...) Funcionamiento Basado en procesamiento cíclico compuesto, de forma simplificada, por 3 etapas visibles al usuario: Adquisición de las entradas; Procesamiento; Actualización de Salidas; Comunicación y Mantenimiento del S.O (Carga de módulos, actualización de timers, tratamiento de interrupción, etc.) X ms para cada 1000 instrucciones 1 ciclo con período de T segundos Com. - Man. SO Adquisición de entradas Procesamiento Actualización de Salidas Funcionamiento Las etapas son distintas e independientes; El proceso se inicia después que las señales de entrada son mostradas; Durante el proceso las entradas y salidas permanecen inalteradas (cualquier alteración de las E/S y estados internos solo puede ocurrir fuera de este intervalo); Durante la actualización de las salidas los valores de las entradas permanecen inalterados Funcionamiento ALTERNATIVAS Una entrada debe permanecer accionada, como mínimo: tiempo de varredura de las entradas + tiempo de procesamiento Características(ejemplo) Clasificación Basada en el número de E/S (no padronizado): Nano: hasta 50 puntos de E/S; Micro: hasta 250 puntos de E/S; Medio:hasta 1000 puntos de E/S; Generalmente asociado al aumento del número de E/S están asociados aumentos de los recursos de programación y disminución de los tiempos de respuestas. Ejemplos de Aplicaciones máquinas industriales (operadoras, inyectoras de plástico, textiles, calzados); equipamientos industriales para procesos ( siderurgia, papel y celulosa, petroquímica, química, alimentación, minería, etc); equipamientos para control de energia (demanda, factor de carga); adquisición de datos de supervisión en: fábricas, edificios; bancadas de test automático de componentes industriales. Ejemplos (modelos) Norma IEC 61131 Introducción Las herramientas para programación de CLP no evoluconarían a la misma velocidad que las herramientas para programación de computadores pues no presentan (aban): Facilidad de uso Portabilidad Interoperabilidad entre diferentes productos Padrones de comunicación La norma IEC 61131 busca llenar esta laguna Norma IEC 61131 Define la sintaxis y el comportamiento del lenguage Provee un conjunto de lenguages interligados para resolver diferentes problemas de control Mejora la calidad del software aplicado a través de las técnicas de proyecto estructurado, encapsulamiento de datos, etc. Norma IEC 61131 Part 1 – General Overview, definitions Part 2 – Hardware, I/O Signals, safety requeriments, environment Part 3 – Programming Languages Part 4 –User Guidelines Part 5 – Messaging Service Specification Norma IEC 61131 – parte 3 Principales características Programación estructurada y lenguage de alto nivel para construcción de grandes programas Conjunto padronizado de instrucciones (en inglés) Programación Simbólica Gran variedad de tipos de datos padronizados Funciones reutilizables pueden ser creadas Conjunto de funciones matemáticas padronizadas disponibles (trigronométricas, logaritmos, etc.) La estrutura de la Norma IEC 61131-3 Elementos Comunes Lenguages de Programación La estructura de la Norma IEC 61131-3 Elementos Comunes Lenguages de Programación IEC 61131-3 : Elementos Comunes ELEMENTOS COMUNES 1. Tipos de Datos y Variables 2. Modelo de Software * Configuración, Recursos, Tareas 3. POUs (Unidades de Organización de Programa) * Funciones * Bloques de Función (FB’s) * Programas IEC 61131-3 : Elementos Comunes ELEMENTOS COMUNES 1. Tipos de Datos y Variables 2. Modelo de Software * Configuración, Recursos, Tareas 3. POUs (Unidades de Organización de * Funciones * Bloques de Función (FB’s) * Programas Programa) Variables y Tipos de Datos Que es esto? 01010101 10101010 Históricamente • Referencia a una posición física de memoria • Referencia a una entrada física Variables y Tipos de Datos Sensor_Temperatura_1 : Integer • Representación simbólica • Área propia para mapeo de I/O • Código independente de hardware • Altamente transparente y comprensible • Menos errores Variables y Tipos de Datos Representación de las Variables IEC 61131-3 : Elementos Comunes ELEMENTOS COMUNES 1. Tipos de Datos y Variables 2. Modelo de Software * Configuración, Recursos, Tareas 3. POUs (Unidades de Organización de * Funciones * Bloques de Función (FB’s) * Programas Programa) IEC 61131-3 Modelo de Software Configuración Conjunto de software que define el comportamiento de un hardware (CP) para una aplicación específica Función de Comunicación IEC 61131-3 Modelo de Software Configuración Recurso Recurso Soporte para la ejecución de un programa, interface entre programas y las E/S de controlador Función de Comunicación IEC 61131-3 Modelo de Software Configuración Recurso Task (Tarea) Recurso Task Task Task un mecanismo de escalonamiento que ejecuta Programs o function blocks periódicamente o en respuesta a un evento (cambio de estado de alguna variable booleana), de Comunicação permitiendo la ejecuciónFunção de programas en diferentes tareas con objetivo de optimizar el uso de recurso del IEC 61131-3 Modelo de Software Tipos de Tareas (Task ): No preemptiva: siempre completa su procesamiento Preemptiva: puede ser interrumpida por otra de mayor prioridad Cualquiera puede ser activada cíclicamente, por tiempo o por evento) Cada tarea se puede atribuir un período de ejecución y una prioridad un Program o function block quedará aguardando su ejecución hasta que sea asociado a una determinada Tarea y esta sea activada por una ejecución periódica o por un determinado evento IEC 61131-3 : Elementos Comunes ELEMENTOS COMUNES 1. Tipos de Datos y Variables 2. Modelo de Software * Configuración, Recursos, Tareas 3. POUs (Unidades de Organización de * Funciones * Bloques de Función (FB’s) * Programas Programa) IEC 61131-3 Modelo de Software Configuración Recurso Task Program Recurso Task Program Task Program (Programa) Task Program Típicamente, un Program consiste de un número de bloques uncionales interconectados, capaces de intercambiar datos a vés de las conecciones de software. Un Program puede anular las variables de CLP y comunicar con otros FunçãoPrograms. de Comunicação Camino de control de ejecución IEC 61131-3 Modelo de Software Programs ( Programas) pueden contener variables de acceso, las cuales permiten el acceso remoto por los servicios de comunicación. pueden contener instancias de bloques funcionales, mas no de otros programas, (no pueden ser aninhados) as instâncias de blocos funcionais de um programa podem ser executadas por diferentes tarefas de controle. IEC 61131-3 Modelo de Software Programs ( Programas) podem ser declarados somente no nível do recurso. podem conter declarações de variáveis de endereçamento direto (endereçamento direto de pontos de E/S. podem conter declarações de variáveis globais, as quais podem ser acessíveis pelos Function Blocks através do uso de variáveis externas. IEC 61131-3 Modelo de Software Configuração Recurso Recurso CI de softwares. Possuem um conjunto de dados queTarefa pode ser alterados Tarefa Tarefapor um Tarefa algoritmo interno caminho de acesso a Variável FB Bloco de Função’’ Programa Programa FB Programa FB Programa FB FB Variáveis globais e diretas Variável Caminho do controle de execução Caminho de acesso Função de Comunicação Todo o mapeamento de memória pode ser acessado pelo gerenciador global de variáveis IEC 61131-3 Modelo de Software Functions Blocks (Blocos de Funções) podem ser utilizados para a criação de elementos de software totalmente reutilizáveis, desde a criação de outros Function Blocks mais simples, até Programs complexos. possuem um conjunto de dados, os quais podem ser alterados por um algoritmo interno (algoritmos + dados) podem ser escritos em qualquer linguagem IEC 61131-3 Modelo de Software Functions Blocks (Blocos de Funções) Os dados possuem persistência (estados internos que são mantidos entre uma execução e outra) podem ser utilizados para a criação de outros Function Blocks (blocos derivados), aumentando ainda mais a capacidade de reutilização do software. Functions Blocks (Blocos de Funções) Blocos de Função padrões Biestáveis: SR, RS, SEMA Detecção de Borda: R_TRIG, F_TRIG Contadores: CTU, CTD, CTUD Temporizadores: TP, TON, TOF, RTC Blocos de Função fornecidos adicionalmente pelo fabricante Blocos de Função definidos pelo usuário Todos FBs são altamente reutilizáveis no mesmo programa, diferentes programas ou projetos Exemplo de Function Block adicional (ATOS) Exemplo de Function Block construído pelo usuário FUNCTION_BLOCK HYSTERISIS VAR_INPUT Hysterisis REAL REAL XIN1 XIN2 REAL EPS Q XIN1, XIN2 : REAL; BOOL EPS : REAL; histerese *) (* faixa de END_VAR VAR_OUTPUT Q : BOOL := 0 END_VAR IF Q THEN Q IF XIN1 < (XIN2-EPS) THEN Q := 0 (* XIN1 diminuindo *) 1 END_IF; ELSIF XIN1 > (XIN2 + EPS ) THEN 0 Q := 1; (* XIN1 aumentando *) EPS EPS XIN2 END_IF; END_FUNCTION_BLOCK IEC 61131-3 Modelo de Software Functions (Funções) são elementos de software que não aparecem no modelo de software, porém podem ser reutilizados não possuem persistência, existindo apenas em tempo de execução, assim como subrotinas (não armazenam dados) não possuem estados internos, ou seja, sempre produzem o mesmo resultado para o mesmo conjunto de entradas podem ter apenas uma saída podem ser escritas em qualquer linguagem Functions (Funções) Funções padrões Bit: ADD, OR, XOR, NOT SHL, SHR, ROL, ROR Numéricas: ADD, SUB, MULT, DIV, MOD, EXPT, ABS, SQRT, LN, LOG, EXP, SIN, COS, TAN, ASIN, ACOS, ATAN Conversão de tipo Seleção: SEL, MIM, MAX, LIMIT, MUX Cadeias de Caracteres: LEN, LEFT,RIGHT, MID, CONCAT, INSERT, DELETE, REPLACE, FIND Functions (Funções) Exemplo de funções definidas pelo usuário FUNCTION SIMPLE_FUN : REAL VAR_INPUT A, B : REAL; C : REAL := 1.0; END_VAR SIMPLE_FUN := A*B/C; END FUNCTION Tarefas e POUS Ir para arquivo de help da ATOS IEC 61131-3 x PLC convencional Configuração Recurso Tarefa caminho de acesso a Variável Recurso Tarefa Tarefa Tarefa FB Bloco de Função’’ Programa Programa FB Programa FB Programa FB Variável FB Variáveis globais e diretas Caminho de acesso Função de Comunicação Caminho do controle de execução PLC convencional x IEC 61131-3 Temporizada Tarefa 1 Recurso Tarefas Programa Loop Infinito: Tarefa 2 Evento Lê entradas Executa lógica Evento Tarefa 3 Atualiza saídas Temporizada Tarefa 4 Vantagens das POU’s Crie suas próprias bibliotecas de FBs (por tipo de aplicação) FBs são testados e documentados Faça bibliotecas acessíveis em todo o mundo Reutilize o máximo possível Mude da programação para a criação de redes de FBs Economize 40% no próximo projeto A estrutura da Norma IEC 61131-3 Elementos Comuns Linguagens de Programação Linguagens de Programação IEC 61131 – parte 3 Definição de Cinco Linguagens Interligadas Sintaxe e Semântica de 2 linguagens textuais e 2 gráficas: Instruction List (IL) Structered Text (ST) Ladder Diagram (LD) Function Block Diagram (FBD) Linguagem para estruturação da Programação Sequential Function Chart (SFC) Linguagens Tradicionais Ladder Diagram (LD) Function Block Diagram (FBD) Linguagens Tradicionais Instruction List (IL) Linguagens Novas Structered Text (ST) Linguagem estruturada de alto nível Sintaxe semelhante ao Pascal Permitido o uso de declarações complexas e instruções aninhadas Suporte para: Laços de controle (REPEAT-UNTIL; WHILE-DO) Execução condicional (IF-THEN-ELSE; CASE) Funções (SQRT(), SIN()) Linguagens Novas Sequential Function Chart (SFC) Técnica gráfica muito poderosa para descrever o comportamento seqüencial de um programa de controle Usado para particionar um problema de controle Mostra uma visão geral, desejável para um rápido diagnóstico Processo de Fermentação Agitador Reagente ácido Reagente básico Válvula de alimentação Sensor de temperatura Sensor de pH Camisa de aquecimento Válvula de dreno Como criar um programa de controle de forma estruturada? Passo 1 : Identificação das interfaces externas do sistema Sinais de Entrada (sensores): sensor de temperatura sensor de PH posições das válvulas velocidade motor Sinais de Saída (atuadores): válvulas motor aquecedor Passo 2: Definição dos principais sinais entre o Sistema e o restante do processo Neste exemplo não existe nenhum acoplamento do processo, mas poderia existir, do tipo: … acoplamento com os vasos com líquidos principais … acoplamento com o sistema de transporte / estação de enchimento após o dreno Passo 3: Definição de todas as interações com o Operador, intervenções e dados de supervisão Para o operador foram definidos: … um botão ‘Liga’ … um botão ‘Desliga’ … uma entrada ‘Duracao’ Agora estão definidas todas as interfaces Passo 4: “Quebrar” o problema de cima para baixo em partições lógicas (funcionalidades) SequenciaPrinc – enchimento, aquecimento, agitação, fermentação, descarga, limpeza. ControleValvulas – comando das vávulas para encher e esvaziar o vaso ControleTemp – controle de temperatura ControleAgitador – controle do motor do agitador (velocidade) ControlepH – controle de pH Passo 5: Definição das POUs necessárias (Programas e Blocos de Função) Usando as definições anteriores e Representando na linguagem gráfica de programação Diagrama de Blocos de Função temos … Programa de Controle da Fermentação Saídas Entradas ControleTemp Aquecer Aquecer SetPoint PV SensorTemp Esfriar SensorpH ControlepH SequenciaPrinc Liga Esfriar SetPoint PV Temp Liga AdicAcido AdicAcido AdicBase AdicBase pH Desliga Desliga Duracao Duracao Agitacao LiberEncher ControleAgitador SetPoint VelocMotor VelocMotor PV VelocAgitador ControleValvulas Libera PosicaoValvulas Encher Encher Drenar Drenar Seqüência principal (MainSequence) em SFC Apresenta os principais estados do processo Os Blocos de Ação e as S1 Inicialização S2 Enchimento S3 Aquecimento S4 Fermentação Transições podem ser programados em qualquer uma das S5 Descarga S6 Limpeza quatro Linguagens de Programação IEC Passo 6: Definição dos tempos do ciclo de scan para as diferentes partes da aplicação Neste exemplo temos apenas um ciclo em modo contínuo O tempo restante pode ser usado por outros ciclos para: …. o sistema de enchimento / transporte … verificação de limites e condições de erro (em uma seqüência paralela) Passo 7: Configuração do Sistema: Definição dos Recursos, Tarefas e conexão do programa com o I/O físico Depende do sistema utilizado Inclui o mapeamento do I/O físico com os símbolos usados Mapeamento dos recursos (leia: CPUs do sistema) Definição dos ciclos de scan e eventos (vide Passo 6)