CONTROLADORES PROGRAMÁVEIS Professor : Jair Jonko Araujo Sumário Tipos de indústrias; Níveis de Controle; Conceitos: SVC, SED, Classificação dos dispositivos; CLP: Histórico, componentes, funcionamento, classificação, exemplos; Introdução – Conceitos Básicos Tipos de Indústria Manufatura produzir um bem qualquer utilizando ferramentas ou máquinas (transformação mecânica através de sucessivas operações); Processo Conjunto de operações/transformações realizadas sobre um material, com a finalidade de variar suas propriedades físicas/químicas. Processos podem ser contínuos ou descontínuos (batch). Níveis de controle - Funções Gerenciamento COMUNICAÇÃO Supervisão COMUNICAÇÃO Laço de Controle COMUNICAÇÃO Sensores / Atuadores Níveis de Controle(1) Níveis de Controle(2) Níveis de Controle(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 Conceitos Controle é “aplicação de uma ação préplanejada para que aquilo que se considera como objeto de controle atinja certos objetivos” (Miyagi, 1996). Sistemas de controle: SVC (sistemas de variáveis contínuas) igualar o valor de uma variável física (var. de controle) a um valor de referência; SED (Sistema de eventos discretos) execução de operações conforme procedimento pré-estabelecido. Conceitos Valores de referência Dispositivo de Controle (SVC) Variáveis de atuação Atuador Objeto de controle Regulador Sinais de realimentação Detector Variáveis controladas Comandos de tarefa Dispositivo de Controle (SED) Processador de Comandos Camandos de Controle Estados Variáveis de atuação Atuador Objeto de controle Detector Variáveis controladas Conceitos Dispositivo de Monitoração Dispositivo de Realização do Controle Dispositivo de Controle Dispositivo de Atuação Dispositivo de Detecção Instalações/Máquinas Dispositivo de Comando Recursos Objeto de Controle Operador/ Usuário Sistema de Controle SED Sistema de Controle Produtos Conceitos Dispositivos de comando (E): botoeiras, chaves rotativas, etc; Dispositivos de atuação(S): contatores, solenóides(válvulas), servo-motores, etc; Dispositivos de detecção(E): chaves fim de curso, potenciômetros, sensores, encoders, etc; Dispositivos de monitoração(S): lâmpadas, buzinas, displays, registradores, etc. Dispositivos de Realização: circuitos elétricos, CLPs, etc. Dispositivos - Exemplos CLP – Controlador Lógico Programável Histórico Até o final da década de 60 os sistemas de controle eram eletromecânicos (realizados para armários/quadros de relés); Ocupavam muito espaço e eram de difícil manutenção; Modificações nas linhas de produção demandavam muito tempo e praticamente exigiam a montagem de novos quadros; Em 1968 a GM (USA) lançou uma especificação técnica de um novo dispositivo de controle. Histórico Requisitos de especificação: Fácil programação e manutenção (reprogramação); Alta confiabilidade no ambiente industrial (vibração, aquecimento, poeira, etc.); Dimensões reduzidas; Capacidade de enviar dados a um Sistema Central; Ser modular (expansível); Sinais de E/S de 115VCA (2A mínimo saída) Histórico Em 1969 surgiram os primeiros controladores Eram muito simples apenas com E/S digitais; A fácil programação foi uma das chave do sucesso (baseada em ladder); Ao longo da década de 70 foram sendo introduzidas novas funcionalidades (temporização, computação numérica, etc.) A partir da década de 80 as funções de comunicação foram aperfeiçoadas Histórico Hoje o PLC é um sistema microcontrolador (microprocessador) industrial com software e hardware adaptado para ambiente industrial (especialmente ruído eletromagnético) com muitas opções de programação, com capacidade de operar em rede em diversos níveis. Componentes Dispositivos Placa Entrada Comunicação Barramento Memória Computador Fonte CPU Placa Saída Dispositivos Componentes CPU Microcontrolador de 16/32 bits: Funções: Comunicação entre as partes do PLC; Controle das entradas e saídas; Execução; Operação da memória; Check-ups internos. Componentes Memória A memória é divida em 2 grandes blocos: Memória do Sistema Programa de Execução; Área de Rascunho: flags, cálculos, alarmes, erros. Memória do Usuário Programa do usuário (binário); Tabela de Dados: Mapa E/S, valor atual e pre-set de contadores e temporizadores, variáveis de programa. Componentes Módulos de E/S Podem ser Discretos ou Analógicos Discretos Quantidade de Pontos Disponíveis AC, DC, Relé DC: Tipo P ou Tipo N Saída: necessidade de alimentação externa, fusiveis Analógicos Número de Canais, Resolução do conversor A/D Faixa de operação: 0-20mA, 4-20mA, 0-5V, 0-10V, +5V, +-10V, temperatura (termopar - J,E,K ... , termorresistência – PT100, ...) Funcionamento Baseado em processamento cíclico composto, de forma simplificada, por 3 etapas visíveis ao usuário: Aquisição das entradas; Processamento; Atualização das Saídas; Comunicação e Manutenção do S.O (Carga de módulos, atualização de timers, tratamento de interrupção, etc.) X ms para cada 1000 instruções 1 ciclo com período de T segundos Com. - Man. SO Aquisição das entradas Processamento Atualização das Saídas Funcionamento As etapas são distintas e independentes; O processamento inicia depois que os sinais de entrada são amostrados; Durante o processamento as entradas e saídas permanecem inalteradas (qualquer alteração das E/S e estados internos só pode ocorrer fora deste intervalo); Durante a atualização das saídas os valores das entradas permanecem inalterados Funcionamento ALTERNATIVAS Uma entrada deve permanecer acionada, no mínimo: tempo de varredura das entradas + tempo de processamento Características(exemplo) Classificação Feita baseada no número de E/S (não padronizado): Nano: até 50 pontos de E/S; Micro: até 250 pontos de E/S; Médio: até 1000 pontos de E/S; Geralmente associado ao aumento do número de E/S estão associados aumentos dos recursos de programação e diminuição dos tempos de respostas. Exemplos de Aplicações máquinas industriais (operatrizes, injetoras de plástico, têxteis, calçados); equipamentos industriais para processos ( siderurgia, papel e celulose, petroquímica, química, alimentação, mineração, etc); equipamentos para controle de energia (demanda, fator de carga); aquisição de dados de supervisão em: fábricas, prédios; bancadas de teste automático de componentes industriais. Exemplos (modelos) Norma IEC 61131 Introdução As ferramentas para programação de CLP não evoluíram na mesma velocidade das ferramentas para programação de computadores pois não apresentam (avam): Facilidade de uso Portabilidade Interoperabilidade entre diferentes produtos Padrões de comunicação A norma IEC 61131 busca preencher esta lacuna Norma IEC 61131 Define a sintaxe e o comportamento da linguagem Provê um conjunto de linguagens interligadas para resolver diferentes problemas de controle Melhora a qualidade do software aplicativo através das técnicas de projeto estruturado, encapsulamento de dados, 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 Principais características Programação estruturada e linguagem de alto nível para construção de grandes programas Conjunto padronizado de instruções (em inglês) Programação Simbólica Grande variedade de tipos de dados padronizados Funções reutilizáveis podem ser criadas Conjunto de funções matemáticas padronizadas disponíveis (trigronométricas, logaritmos, etc.) A estrutura da Norma IEC 61131-3 Elementos Comuns Linguagens de Programação 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 Linguagens - Resumo A estrutura da Norma IEC 61131-3 Elementos Comuns Linguagens de Programação IEC 61131-3 : Elementos Comuns ELEMENTOS COMUNS 1. Tipos de Dados e Variáveis 2. Modelo de Software * Configuração, Recursos, Tarefas 3. POUs (Unidades de Organização de Programa) * Funções * Blocos de Função (FB’s) * Programas IEC 61131-3 : Elementos Comuns ELEMENTOS COMUNS 1. Tipos de Dados e Variáveis 2. Modelo de Software * Configuração, Recursos, Tarefas 3. POUs (Unidades de Organização de * Funções * Blocos de Função (FB’s) * Programas Programa) Variáveis e Tipos de Dados O que é isto? 01010101 10101010 Historicamente • Referência a uma posição física de memória • Referência a uma entrada física Variáveis e Tipos de Dados Sensor_Temperatura_1 : Integer • Representação simbólica • Área própria para mapeamento de I/O • Código independente do hardware • Altamente transparente e compreensível • Menos erros Variáveis e Tipos de Dados Representação das Variáveis IEC 61131-3 : Elementos Comuns ELEMENTOS COMUNS 1. Tipos de Dados e Variáveis 2. Modelo de Software * Configuração, Recursos, Tarefas 3. POUs (Unidades de Organização de * Funções * Blocos de Função (FB’s) * Programas Programa) IEC 61131-3 Modelo de Software Configuração Conjunto do software que define o comportamento de um hardware (CP) para uma aplicação específica Função de Comunicação IEC 61131-3 Modelo de Software Configuração Recurso Recurso Suporte para a execução de um programa, interface entre programas e as E/S do controlador Função de Comunicação IEC 61131-3 Modelo de Software Configuração Recurso Task (Tarefa) Recurso Task Task Task um mecanismo de escalonamento que executa Programs ou function blocks periodicamente ou em resposta a um evento (mudança de estado de alguma variável booleana), permitindo a execução de programas em diferentes taxas com objetivo de otimizar o uso de recurso do controlador Função de Comunicação IEC 61131-3 Modelo de Software Tipos de Tarefas (Task ): Não preemptiva: sempre completa seu processamento Preemptiva: pode ser interrompida por outra de maior prioridade Qualquer uma pode ser ativada cíclicamente, por tempo ou por evento) Cada tarefa pode-se atribuir um período de execução e uma prioridade um Program ou function block ficará aguardando a sua execução até que seja associado a uma determinada Tarefa e esta seja ativada por uma execução periódica ou por um determinado evento IEC 61131-3 : Elementos Comuns ELEMENTOS COMUNS 1. Tipos de Dados e Variáveis 2. Modelo de Software * Configuração, Recursos, Tarefas 3. POUs (Unidades de Organização de * Funções * Blocos de Função (FB’s) * Programas Programa) IEC 61131-3 Modelo de Software Configuração Recurso Task Program Recurso Task Program Task Program (Programa) Task Program Caminho do de blocos controle execução Tipicamente, um Program consiste de um número de funcionais interconectados, capazes de trocar dados através das conexões de software. Um Program pode acessar as variáveis do CLP e comunicar com outros Programs. Função de Comunicação IEC 61131-3 Modelo de Software Programs ( Programas) podem conter variáveis de acesso, as quais permitem o acesso remoto pelos serviços de comunicação. podem conter instâncias de blocos funcionais, mas não de outros programas, (não podem 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 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 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)