AUTOMAÇÃO (M323) CAPÍTULO VIII Autómatos Programáveis 2013/2014 Bibliografia do capítulo David D W. Pessen (1989), Industrial Automation - Circuits, design and components, Editora John Wiley and Sons Daniel Bouteille & outros, Les Automatismes Po Programmables, Editions Cepadues, e 1987 Saia-Burgess Controls Division, Hardware manual, al Documento nº 26/737, Ed. E 14, 22.12.2005 Saia-Burgess Controls Division, Programming tools for SAIA PCD Controllers, User Manual, Document nº 26/732 E9 Luis Filipe Baptista ENIDH/DEM 2
Sumário Definição de autómato programável Arquitectura de um PLC Módulos de entrada/saída Linguagens de programação Descrição do software de programa- ção PG5 do autómato SAIA-BURGESS Luis Filipe Baptista ENIDH/DEM 3 A necessidade de aumento da produti- vidade e de qualidade da produção, levou à criação de sistemas de controlo: Programáveis de baixo custo Versáteis e de fácil instalação Estes equipamentos industriais designam-se comercialmente por autómatos programáveis (PLC s) Luis Filipe Baptista ENIDH/DEM 4
Os PLC s são construídas à base um microprocessador (CPU), memória e circuitos i auxiliares de modo a efectuar o controlo de processos industriais ou máquinas com elevado grau de automatização O autómato programável, foi inicial- mente concebido em 1968, por um grupo de engenheiros da General Motors Luis Filipe Baptista ENIDH/DEM 5 Especificações de projecto do PLC: De fácil programação e reprogramação, preferencialmente no local, de modo a poder alterar rapidamente a sequência de operações De fácil manutenção e reparação, utilizando de preferência módulos de encaixe padronizados na indústria Luis Filipe Baptista ENIDH/DEM 6
Especificações de projecto do PLC: Mais fiável em meio ambiente fabril e mais pequeno do que o seu circuito eléctrico equivalente com relés De preço competitivo em relação aos painéis de relés em uso na época Luis Filipe Baptista ENIDH/DEM 7 Norma DIN 19237 O PLC é um equipamento electrónico programável por técnicos de instrumentação industrial (pessoal não informático) Destina-se a controlar em tempo real e em ambiente industrial, máquinas ou processos sequenciais Luis Filipe Baptista ENIDH/DEM 8
Os autómatos foram originalmente projectados para substituir os painéis de lógica cablada com relés, temporizadores es e contadores que se utilizavam na altura para efectuar o comando dos sistemas industriais Luis Filipe Baptista ENIDH/DEM 9 Os PLC's apresentavam como principais argumentos a facilidade e flexibilidade de controlo baseados na programação e execução de instruções lógicas simples A maior parte das vezes es utilizavam am diagrama específicos, designados por diagramas de contactos ou de escada ("Ladder diaghrams") Luis Filipe Baptista ENIDH/DEM 10
O funcionamento dum autómato programável, faz-se pela: Leitura dos sinais de entrada de um processo Execução de instruções lógicas, previamente programadas na memória, sobre estas entradas Escrita dos sinais de saída que actuam nos equipamentos ou máquinas a controlar Luis Filipe Baptista ENIDH/DEM 11 Os PLC's possuem interfaces convencionais (Ex: porta RS-232C, ou mais recentemente porta USB) que permitem a sua ligação directa a um computador digital de modo a poder enviar/receber dados e programas compilados pelo software de programação de autómatos Luis Filipe Baptista ENIDH/DEM 12
Os PLC s são similares aos computadores convencionais no que respeita à sua constituição (hardware) Têm no entanto características específicas para o controlo em ambiente industrial, que a seguir se enunciam Luis Filipe Baptista ENIDH/DEM 13 Imunidade d ao ruído provocado por equipamento industrial Construção por módulos de encaixe, permitindo fácil substituição ou aumento de unidades específicas (módulos analógicos, controlo de eixos, etc.) Terminais de entrada/saída e níveis de sinais padronizados ( standard ) (standard) Luis Filipe Baptista ENIDH/DEM 14
Linguagem de programação de fácil compreensão: Lista de instruções Diagrama de contactos Blocos funcionais Baseada no GRAFCET Facilidade d de programação e reprogramação no local Luis Filipe Baptista ENIDH/DEM 15 Estas características ti fazem com que os autómatos programáveis tenham um grande interesse para uma vasta gama a de aplicações práticas Aplicam-se principalmente no controlo de processos industriais, onde se incluem obviamente as instalações marítimas Luis Filipe Baptista ENIDH/DEM 16
A título de exemplo podem referir-se em instalações marítimas, as seguintes aplicações: Caldeiras Grupos electrogéneos Centrifugadoras Sistemas de monitorização e alarme da máquina principal i Instalações frigoríficas... Luis Filipe Baptista ENIDH/DEM 17 Para designar os PLC s, existem três origens distintas: PC -> Programmable Controller (origem Inglaterra) PLC -> Programmable Logic Controller (origem E.U.A) PBS -> Programmable Binary System (origem Suécia) Em Portugal -> CLP (Controladores Lógicos Programáveis) Luis Filipe Baptista ENIDH/DEM 18
Arquitectura de um PLC Os autómatos programáveis são construídos como computadores para a fins específicos, sendo constituídos por três áreas funcionais: processamento, memória e entradas/saídas As condições de entrada do PLC, são detectadas e depois guardadas em memória, onde o PLC executa as instruções lógicas programadas relativamente à evolução das entradas Luis Filipe Baptista ENIDH/DEM 19 Arquitectura de um PLC As acções de saída, são seguidamente efectuadas de modo a activar os dispositivos de controlo do processo A evolução das acções depende totalmente do programa de controlo existente em memória Para introduzir-se ou alterar-se o programa de controlo existente em memória, pode utilizar-se uma consola de programação ou um computador com programa de interface com o PLC Luis Filipe Baptista ENIDH/DEM 20
PLC s dasaia Consolas de programação Luis Filipe Baptista ENIDH/DEM 21 Conexão PCD2 Computador através de porta RS232 Luis Filipe Baptista ENIDH/DEM 22
Arquitectura de um PLC (genérico) opera dor Módulo de diálogo Unidade de Alim. Interface de saída Actuadores Memória CPU Parte operativa Outros PLC s Módulo de comun. Bus interno de entradas/ saídas Interface de entrada Sensores Luis Filipe Baptista ENIDH/DEM 23 Arquitectura do PLC SAIA PCD2 Luis Filipe Baptista ENIDH/DEM 24
Arquitectura do PLC SAIA PCD2 Luis Filipe Baptista ENIDH/DEM 25 Unidade central de processamento (CPU) Processador central - As tarefas do processador central são executadas de uma forma cíclica pois o tratamento t t da informação é feito sequencialmente Os elementos susceptíveis de condicionar a estrutura do ciclo são: Método de aquisição das E/S Utilização de instruções de salto Cálculos numéricos (opcional) Luis Filipe Baptista ENIDH/DEM 26
Unidade central de processamento Todas as entradas (E) são lidas no início do ciclo Todas a saídas (S) são processadas só após o efectuado o tratamento (T) Forma mais usual de processamento Luis Filipe Baptista ENIDH/DEM 27 Fluxograma de cálculo Luis Filipe Baptista ENIDH/DEM 28
Características de processamento A velocidade de processamento de um PLC mede-se pelo tempo T em milisegundos, que este leva para processar 1024 instruções Velocidade de processamento = T (milisegundos)/1024 instruções Luis Filipe Baptista ENIDH/DEM 29 Características de processamento Para além do processamento normal das instruções do programa, a unidade d de processamento central efectua ciclica- mente um conjunto de verificações, como sejam: Vigilância do tempo de execução dum ciclo Verificação do estado da memória Verificação da operacionalidade do bus de Entradas/Saídas (E/S) Luis Filipe Baptista ENIDH/DEM 30
Bus de Entradas/Saídas de um PLC Luis Filipe Baptista ENIDH/DEM 31 Memória do PLC O autómato programável dispõe de uma memória ói perfeitamente t organizada em áreas de trabalho específicas Luis Filipe Baptista ENIDH/DEM 32
Memória do PLC O sistema operativo está geralmente alojado na ROM (Read Only Memory), logo não está acessível ao utilizador As restantes zonas utilizam memória do tipo RAM (Random Acess Memory) Luis Filipe Baptista ENIDH/DEM 33 Memória do PLC A região denominada "Entradas/Saídas" corresponde na verdade à imagem dos portos de entrada e de saída de forma a poder processar-se a informação de carácter lógico A região dos dados é utilizada pelo CPU para guardar os valores associados a contadores, temporizadores e de outras variáveis auxiliares Luis Filipe Baptista ENIDH/DEM 34
Esquema típico de ligações do autómato SAIA PCD2 Luis Filipe Baptista ENIDH/DEM 35 Dispositivos iti de entrada Circuito típico de uma entrada lógica Z zener ; D Díodo ; O foto-acoplador ; A Isolamento galvânico Luis Filipe Baptista ENIDH/DEM 36
Dispositivos de entrada Módulo de entradas lógicas (PCD2) Luis Filipe Baptista ENIDH/DEM 37 Dispositivos de entrada Módulo de entradas lógicas (PCD2) Luis Filipe Baptista ENIDH/DEM 38
Dispositivos de entrada Esquema de ligações das entradas Luis Filipe Baptista ENIDH/DEM 39 Dispositivos de saída Circuito típico de saída lógica a relé O porto de saída ; L Led de sinalização ; F - fusível Luis Filipe Baptista ENIDH/DEM 40
Dispositivos de saída Módulo de saída a relé (PCD2) Luis Filipe Baptista ENIDH/DEM 41 Dispositivos de saída Módulo de saída a relé (PCD2) Luis Filipe Baptista ENIDH/DEM 42
Dispositivos de saída Módulo de saída a transístor (PCD2) Luis Filipe Baptista ENIDH/DEM 43 Dispositivos de saída Módulo de saída a transístor (PCD2) Luis Filipe Baptista ENIDH/DEM 44
Dispositivos de saída Esquema de ligações das saídas Luis Filipe Baptista ENIDH/DEM 45 Linguagens de programação Lista de instruções (STL - STatement List) Linguagem de contactos (LAD - LAdder Diagram) Blocos funcionais (CSF Control System Flow chart) Baseada no diagrama funcional GRAFCET (SFC - Sequential Flow Chart) Luis Filipe Baptista ENIDH/DEM 46
LISTA DE INSTRUÇÕES (STL STatement List) Estrutura das instruções (segundo a norma DIN 19239) É uma linguagem constituída por mnemónicas das operações lógicas a implementar Luis Filipe Baptista ENIDH/DEM 47 LISTA DE INSTRUÇÕES Exemplo de uma instrução em STL Luis Filipe Baptista ENIDH/DEM 48
Diagrama de contactos ( LADDER DIAGRAM ) O diagrama ama de contactos ou diagrama ama de escada ("LAdder Diagram"), que iremos seguidamente designar abreviadamente por LAD, é o método de programação mais comum de autóma- tos programáveis Este método derivou directamente dos esquemas de comando com relés utilizado na indústria até ao aparecimento dos PLC's Luis Filipe Baptista ENIDH/DEM 49 Diagrama de contactos ( LADDER DIAGRAM ) Luis Filipe Baptista ENIDH/DEM 50
Diagrama de contactos ( LADDER DIAGRAM ) O conjunto de instruções é constituído por instruções lógicas (mnemónicas) que representam as acções que podem ser executadas por um determinado autómato programável Exemplo de mnemónicas: funções E, OU, Negação, Luis Filipe Baptista ENIDH/DEM 51 Diagrama de contactos ( LADDER DIAGRAM ) Exemplos de programação: Luis Filipe Baptista ENIDH/DEM 52
Diagrama de contactos ( LADDER DIAGRAM ) Exemplos de programação Luis Filipe Baptista ENIDH/DEM 53 Blocos funcionais (CSF Control Systems Flowchart) Neste caso, as funções lógicas são definidas por rectângulos, que correspon- dem a blocos lógicos As variáveis são definidas da seguinte forma: As entradas são introduzidas do lado esquerdo do bloco funcional As acções (resultados) obtêm-se do lado direito do bloco Luis Filipe Baptista ENIDH/DEM 54
Blocos funcionais (CSF Control Systems Flowchart) A conjugação de blocos determina as equações lógicas a ser implementadas Exemplo 1: Luis Filipe Baptista ENIDH/DEM 55 Blocos funcionais i (CSF) Exemplo 2: Luis Filipe Baptista ENIDH/DEM 56
Comparação entre linguagens No Quadro I podem observar-se alguns exemplos de programação em lista de instruções (STL), linguagem de contactos (LAD) e blocos funcionais (CSF) Neste quadro, podem-se verificar as diferenças existentes entre estas diferentes formas de programação Luis Filipe Baptista ENIDH/DEM 57 Comparação entre linguagens Luis Filipe Baptista ENIDH/DEM 58
ESTUDO DO AUTÓMATO SAIA PCD2 Este autómato aceita como entradas tensões de 12 a 24 Vcc, e fornece saídas a 24 Vcc quando estas estiverem em nível alto (estado HIGH), visto ser esta a tensão fornecido pela respectiva fonte de alimentação Luis Filipe Baptista ENIDH/DEM 59 CARACTERÍSTICAS DO AUTÓMATO SAIA PCD2 O autómato PCD2 possui registos programáveis, convertíveis em contadores e temporizadores (Timers e Counters) Estes registos podem reter informação com valores de 31 bits (0 a 1.147.483.647 em decimal) Luis Filipe Baptista ENIDH/DEM 60
CARACTERÍSTICAS DO AUTÓMATO SAIA PCD2 Os registos partilham a mesma gama de endereços, de 0 a 1599 O número de Timers depende da instrução DEFTC O valor por defeito é o de 32 Timers com endereços de 0 a 31 1568 Counters com endereços de 32 a 1599 Luis Filipe Baptista ENIDH/DEM 61 Características do autómato SAIA A única diferença existente entre o Timer e o Counter, consiste no facto de o Timer ser decrementado de acordo com a base de tempo (definida pelo comando DEFTB, cujo valor por defeito é de 0.1 seg) Os Timers e Counters só poderão assumir valores nulos ou positivos Luis Filipe Baptista ENIDH/DEM 62
Características ti do autómato t SAIA Podem-se obter registos formados por células de 32 bits os quais podem reter informação, quer em binário, decimal, hexadecimal ou vírgula flutuante Os registos podem guardar valores positivos ou negativos e localizam-se nos endereços de 0 a 4095, constituin- do portanto as memórias internas do sistema sste Luis Filipe Baptista ENIDH/DEM 63 Características do autómato SAIA O autómato PCD2 embora só possua apenas uma unidade central de processamento (CPU), tem capacidade de processamento simultâneo até 16 programas diferentes (processamento paralelo) Luis Filipe Baptista ENIDH/DEM 64
Características do autómato SAIA Este autómato usa na sua programação uma linguagem g interpretada, o que permite ao utilizador ler em qualquer momento, o que se passa no interior do autómato, através de uma consola apropriada p ou de um PC Luis Filipe Baptista ENIDH/DEM 65 Programação do autómato t SAIA BLOCTEC - É um método de programação estruturado que secciona o programa em blocos independentes de código Cada um destes blocos faz parte do programa de controlo Luis Filipe Baptista ENIDH/DEM 66
Programação do autómato t SAIA O bloco principal p de código, é designado por Cyclic Organisation Block (COB) Este bloco irá normalmente chamar outros blocos de código (Program Blocks - PB), que por sua vez irão chamar as Function Blocks (FB) Luis Filipe Baptista ENIDH/DEM 67 Programação do autómato t SAIA Cada bloco PB e FB pode por sua vez chamar um outro PB ou FB até um máximo de sete sub-níveis. Os blocos PB, são considerados como subrotinas Um bloco de função (FB) é idêntico ao de um PB, excepto no facto de os parâmetros poderem ser passados para o seu interior Luis Filipe Baptista ENIDH/DEM 68
Programação do autómato t SAIA Um outro tipo de bloco de código, é o Exception Organisation Block (XOB), que é comandado por funções de interrupção ("interrupt") O XOB é chamado somente se o PLC detectar alguma alteração no hardware ou defeitos no software Luis Filipe Baptista ENIDH/DEM 69 Programação do autómato SAIA GRAFTEC - Éummétodode método de programação auto-documentado para controlo de processos baseado no GRAFCET, através da elaboração sistemática de um gráfico com acções com condições intercaladas entre si Em termos gerais, este método é conhecido por SFC - Sequential Flow Chart Luis Filipe Baptista ENIDH/DEM 70
Programação do autómato SAIA Um programa em GRAFTEC é iniciado numa acção (ST - step), seguindo-se uma condição (TR - transition), ou conjunto de condições em paralelo, seguindo-se novamente uma acção, outra condição, outra acção, e assim sucessivamente até ao final do programa Luis Filipe Baptista ENIDH/DEM 71 Programação do autómato SAIA Esta sequência de STs e TRs forma o corpo de um Sequencial Block (SB), que é chamado através de um Cyclic Organisation Block (COB) Uma transição deve sempre ser seguida por uma etapa A etapa é executada somente se a transição precedente tiver sido satisfeita Luis Filipe Baptista ENIDH/DEM 72
Programação do autómato SAIA Luis Filipe Baptista ENIDH/DEM 73 Programação do autómato SAIA GRAFTEC - o programa começa por uma etapa inicial i i (step),( ) havendo depois e sempre, uma cadeia composta por condições e acções intercaladas até ao fim do programa O processador existente no autómato poderá também executar ramos alternados e simultâneos, o que facilita e acelera a realização de um programa que seja relativamente extenso Luis Filipe Baptista ENIDH/DEM 74
Programação do autómato SAIA A versão actual do software utilizado para a programar este autómato t designa-se por PG5 para Windows Este pacote permite editar programas em STL (ou IL), blocos funcionais (FUPLA) e lógica de contactos (KOPLA) e GRAFCET (GRAFTEC) O gestor de todos estes programas designa-se por Project Manager Luis Filipe Baptista ENIDH/DEM 75 Software de programação PG5 Arranque do Project Manager Luis Filipe Baptista ENIDH/DEM 76
Software de programação PG5 Criação de um novo projecto Luis Filipe Baptista ENIDH/DEM 77 Software de programação PG5 Criação de um novo projecto Luis Filipe Baptista ENIDH/DEM 78
Software de programação PG5 Adição de um ficheiro ao projecto Luis Filipe Baptista ENIDH/DEM 79 Software de programação PG5 Adição de um ficheiro ao projecto Luis Filipe Baptista ENIDH/DEM 80
Software de programação PG5 Edição de um ficheiro i (FUPLA) Luis Filipe Baptista ENIDH/DEM 81 Software de programação PG5 Simulação de um ficheiro i (FUPLA) Luis Filipe Baptista ENIDH/DEM 82
Programação do autómato SAIA O programa é composto por um programa de inicialização, denominado de Exception Organisation Block (XOB), e por um programa principal, denominado de Cyclic Organisation Block (COB) Luis Filipe Baptista ENIDH/DEM 83 Programação do autómato SAIA Se tivéssemos necessidade de estruturar um programa mais complexo, então no programa principal (COB), iria chamar quer subprogramas (sub-rotinas), para o qual se utilizaria o comando CPB (Call Program Block), quer blocos sequenciais, utilizando o comando CSB (Call Sequential Block) Luis Filipe Baptista ENIDH/DEM 84
Programação do autómato SAIA Estrutura de um programa em STL (No SAIA designa- se por IL) Luis Filipe Baptista ENIDH/DEM 85 Programação do autómato SAIA Principais comandos STL (ou IL como é designado d no manual do autómato t SAIA), geralmente utilizados em programas de controlo lógico Existem três grandes grupos de instruções a saber: Instruções Bit Instruções Word Instruções BLOCTEC Luis Filipe Baptista ENIDH/DEM 86
Programação do autómato SAIA Luis Filipe Baptista ENIDH/DEM 87 Programação do autómato SAIA Luis Filipe Baptista ENIDH/DEM 88
Programação do autómato SAIA Instruções BIT - START HIGH Descrição: O Accumulator (ACCU) é definido id com o estado lógico do elemento endereçado Representa o início de uma nova linha de linkagem O resultado anterior da linkagem é inicializado a zero com a instrução de início; em simultâneo o sinal H (High) do elemento endereçado, quer sejam Inputs, Outputs, Flags, Timers ou Counters é lido e o seu resultado é armazenado no ACCU Luis Filipe Baptista ENIDH/DEM 89 Instruções BIT - START HIGH Exemplo prático: COB 0 ; Inicio do programa 0 STH I 7 ; se input 7 estiver H (High) OUT O 32 ; então set output 32 ;senãoreset output 32 STH I 12 ; se input 12 estiver H (High) OUT O 40 ; então set output 40 ; senão reset output 40 ECOB ; fim do programa Luis Filipe Baptista ENIDH/DEM 90
Instruções BIT - START HIGH Esquema de contactos do exemplo anterior Luis Filipe Baptista ENIDH/DEM 91 Instruções BIT - START LOW COB 0 ; Inicio do programa 0 STL I 7 ; se input 7 estiver L (Low) OUT O 32 ; então set output 32 ; senão reset output 32 STL I 12 ; se input 12 estiver L (Low) OUT O 40 ;entãoset output 40 ; senão reset output 40 ECOB ; fim do programa Luis Filipe Baptista ENIDH/DEM 92
Instruções BIT - START ANH COB 0 ; Inicio do programa 0 STH I 3 ; se input 3 estiver H (High) ANH I 6 ; e input 6 estiver H (High) OUT O 32 ; então set output 32 ; senão reset output 32 ECOB ; fim do programa Luis Filipe Baptista ENIDH/DEM 93 Instruções BIT - START ANH Esquema de contactos; esquema em blocos funcionais Luis Filipe Baptista ENIDH/DEM 94
Instruções BIT START ANL ANL I 4 ; ANDs ACCU com o estado inverso do Input Instruções BIT - START ORH STH I 5 ; se input 5 estiver H (High) ORH I 13 ; ou I13 estiver H(High) ; então ACCU = 1 ; senão ACCU = 0 Luis Filipe Baptista ENIDH/DEM 95 Instruções BIT - START ORH COB 0 ; Inicio do programa 0 STH I 5 ; se input 5 estiver H (High) ORH I 13 ; e input 13 estiver H (High) OUT O 32 ; então set output 32 ; senão reset output 32 ECOB ; fim do programa Luis Filipe Baptista ENIDH/DEM 96
Instruções BIT - START ORH Esquema de contactos e de blocos funcionais do exemplo anterior Luis Filipe Baptista ENIDH/DEM 97 Instruções BIT - START ORL Exemplo: STH I 3 ; se input 3 estiver H (High) ORL I 7 ; ou input 7 estiver L (Low) ; então ACCU = 1 ; senão ACCU = 0 Luis Filipe Baptista ENIDH/DEM 98
Instruções BIT - DYN Este comando é usado para a detecção do sentido de actuação, ascendente ou descendente. O resultado do ACCU está H (High) somente quando o ACCU transita do Low para o High em execuções consecutivas de DYN A Flag escrita no operando, armazena o estado prévio do ACCU. Se estiver Low, mantém-se neste estado e a Flag é definida também como Low Luis Filipe Baptista ENIDH/DEM 99 Instruções BIT DYN Diagrama de funcionamento de um circuito lógico ver código no slide seguinte Luis Filipe Baptista ENIDH/DEM 100
Instruções BIT DYN Código com a instrução DYN COB 0 ; Início do programa 0 STH I 0 ; se o input 0 estiver H (High) DYN F 500 ; detecção de flanco COM O 32 ; então complementa a saída 32 ; senão nada faz ECOB ; fim programa Luis Filipe Baptista ENIDH/DEM 101 Instruções BIT - DYN Código sem a instrução DYN COB 0 ; Início do programa 0 STH I 0 ; se o input 0 estiver H (High) ANL F 500 ; e Flag 500 estiver L (Low) SET F 500 ; então define Flag 500 como H (High) COM O 32 ; complementa o output 32 ; senão nada faz STL I 0 ; se o input 0 estiver L (Low) RES F 500 ; então reset Flag 500 ;senãonadafaz nada ECOB ; fim do programa Luis Filipe Baptista ENIDH/DEM 102
Instruções BIT OUT (exemplo) COB 0 ; Início do programa 0 STH I 7 ; se o input 7 estiver H (High) OUT O 32 ; então define output 32 c/ estado do ACCU ; senão reset output 32 STH I 2 ; se o input 2 estiver H (High) OUT O 35 ; então set output 35, senão reset output 35 OUT O40 ; set output 40, senão reset output 40 OUT F 777 ; set Flag 777, senão reset Flag 777 ECOB ; fim programa Luis Filipe Baptista ENIDH/DEM 103 Instruções BIT OUT Esquema de contactos do exemplo anterior Luis Filipe Baptista ENIDH/DEM 104
Instruções BIT SET COB 0 ; início programa 0 STH I 8 ; se input 8 estiver H (High) ANH I 15 ; e input 15 estiver H SET O 32 ; então set output 32 ;senãonadafaz nada STL I 15 ; se input 15 estiver L (Low) RES O32 ; então reset output 32 ; senão nada faz ECOB ; fim programa Luis Filipe Baptista ENIDH/DEM 105 Instruções BIT SET Esquema de contactos e em blocos funcionais do exemplo anterior Luis Filipe Baptista ENIDH/DEM 106
Instruções BIT RES Exemplo: RES O 13 ; define o output O 32 como L se ACCU = 1 Instruções BIT COM Exemplo: COM O 32 ; Se ACCU = 1, então inverte o estado do output 32 Luis Filipe Baptista ENIDH/DEM 107 Instruções BIT RES Instruções BIT COM (exemplo) Luis Filipe Baptista ENIDH/DEM 108
Instruções WORD Luis Filipe Baptista ENIDH/DEM 109 Instruções WORD (continuação) Luis Filipe Baptista ENIDH/DEM 110
Instruções WORD LOAD (LD) Os registos endereçados, Timers ou Counters, podem ser carregados com um dado valor de 32 bits Para Timers e Counters: A operação é realizada somente se o ACCU estiver H (High) Não podem ser carregados com valores negativos ou de vírgula flutuante (só valores decimais, Hex, ASCII ou binários) Luis Filipe Baptista ENIDH/DEM 111 Instruções WORD LOAD (LD) O tempo começa a contar imediatamente t após o carregamento de um Timer O estado de um Timer ou de um Counter é H (High) se contém qualquer valor diferente de zero Caso contrário, o seu estado é L (Low) Luis Filipe Baptista ENIDH/DEM 112
Instruções WORD Para registos: A operação é independente do estado do ACCU O valor pode ser decimal, Hex, ASCII ou de vírgula flutuante Luis Filipe Baptista ENIDH/DEM 113 Instruções WORD Síntaxe da instrução LD (load): Luis Filipe Baptista ENIDH/DEM 114
Instruções WORD Exemplo: Activação de um Timer Luis Filipe Baptista ENIDH/DEM 115 Código do exemplo anterior: Luis Filipe Baptista ENIDH/DEM 116
Instruções WORD Instrução INC: O registo ou contador (Counter) é incrementado de uma unidade Os Counters são incrementados só se o estado lógico do ACCU for H (High), enquanto que os registos são sempre incrementados independentemente do estado do ACCU Luis Filipe Baptista ENIDH/DEM 117 Exemplo de aplicação: Luis Filipe Baptista ENIDH/DEM 118
Instruções WORD Esquema de blocos funcionais do exemplo anterior (Contador up/down) Luis Filipe Baptista ENIDH/DEM 119 Instruções WORD Instrução DEC O registo ou contador (Counter) é decrementado de uma unidade Os Counters são decrementados só se o estado lógico do ACCU for H (High) Os registos são sempre decrementados independentemente do estado do ACCU Luis Filipe Baptista ENIDH/DEM 120
Instruções WORD Instrução DEC Luis Filipe Baptista ENIDH/DEM 121 Instruções WORD Diagrama de funcionamento do contador (instruções INC e DEC) Luis Filipe Baptista ENIDH/DEM 122
Instruções BLOCTEC Luis Filipe Baptista ENIDH/DEM 123 Instruções BLOCTEC Instrução COB Este comando inicia o bloco principal, denominado de Cyclic Organisation Block O segundo operando deste comando é o designado watch-dog, que é referido também por tempo de supervisão, com incrementos de dez milisegundos Luis Filipe Baptista ENIDH/DEM 124
Instruções BLOCTEC C Instrução COB Assim, se o tempo de supervisão chegar ao fim antes de ser atingido a instrução ECOB, e consequentemente, antes de todo o COB ser realizado, é executado o bloco XOB 11, se este existir. Se não existir o bloco atrás mencionado, o programa inicia outro COB No início de cada COB, o ACCU é definido sempre como estando no estado lógico de H (High) Luis Filipe Baptista ENIDH/DEM 125 Instruções BLOCTEC Instrução ECOB Esta instrução finaliza o COB corrente, e assim começará a correr, se estiver presente o COB seguinte Um ciclo COB tem sempre de terminar com um comando ECOB Síntaxe: ECOB ; Não são necessários quaisquer operandos Luis Filipe Baptista ENIDH/DEM 126
Instruções BLOCTEC Instrução XOB Estes blocos excepcionais de organização, Exception Organisation Blocks (XOB), são automaticamente chamados e realizados sempre que ocorre algum erro ou outro evento importante O XOB poderá conter código de programa para poder lidar com estas situações Luis Filipe Baptista ENIDH/DEM 127 Instruções BLOCTEC Instrução XOB No fim do XOB, a rotina de excepção irá localizar-se exactamente no ponto onde foi chamada Existe um bloco de inicialização do autómato designado por XOB 16 O XOB 16 é executado sempre que o PCD é ligado ou se dá um reinício do seu funcionamento Luis Filipe Baptista ENIDH/DEM 128
Instruções BLOCTEC Instrução XOB Síntaxe: XOB número ;NúmerodoXOBde0a de 16 Exemplo: XOB 16 ; rotina de inicialização --- --- EXOB ;fimdarotina Luis Filipe Baptista ENIDH/DEM 129 Instruções BLOCTEC Instrução EXOB Descrição: Com esta instrução finaliza-se o XOB corrente. Síntaxe: XOB número ; Número do XOB de 0 a 16 Exemplo: XOB 16 ; rotina de inicialização --- --- EXOB ; fim da rotina Luis Filipe Baptista ENIDH/DEM 130
Instruções GRAFTEC Luis Filipe Baptista ENIDH/DEM 131 Instruções GRAFTEC Luis Filipe Baptista ENIDH/DEM 132
Instruções GRAFTEC Luis Filipe Baptista ENIDH/DEM 133 Exemplo As saídas 36 e 37 devem piscar quando I 7 for activado Luis Filipe Baptista ENIDH/DEM 134
Criação de programa GRAFTEC Luis Filipe Baptista ENIDH/DEM 135 Criação de programa GRAFTEC Luis Filipe Baptista ENIDH/DEM 136
Arquitectura de rede de PLC s Luis Filipe Baptista ENIDH/DEM 137 Anexo: guia para criação e compilação de diferentes programas num só projecto (PG5) Cada exercício deverá estar incluído num único projeto SAIA Todas as alíneas ou programas a efetuar deverão constar nesse mesmo projeto Luis Filipe Baptista ENIDH/DEM 138
Anexo: Todos os exercícios poderão partir da pasta ProjetoBase a fornecer Para a realização por exemplo do exercício 3 deverá ser feita uma cópia do ProjetoBase e posteriormente mudado o nome para EXERC3 Luis Filipe Baptista ENIDH/DEM 139 Anexo Dentro da nova pasta EXERC3 poderá ser mudado d o nome original i do ficheiro ProjetoBase.5pj para por exemplo exerc3.5pj Luis Filipe Baptista ENIDH/DEM 140
Anexo Para criar programas, abra o projeto SAIA (dois cliques em exerc3.5pj) e em Program Files criar um novo programa ( New ) Será aberta uma nova janela onde será escolhido o tipo de programação (*.scr, *.sfc ou*.fup) Dar um nome ao programa (exerc3p1 para a primeira alínea do exerc3). No final fazer OK para sair Luis Filipe Baptista ENIDH/DEM 141 Anexo Luis Filipe Baptista ENIDH/DEM 142
Anexo Para criar outros programas dentro do mesmo projeto (exercício) repetir o ponto anterior e dar um nome Identifique cada novo programa/ alínea (exerc3p2, exerc3p3, etc.) Luis Filipe Baptista ENIDH/DEM 143 Anexo Para criar outros programas dentro do mesmo projeto (exercício) repetir o ponto anterior e dar um nome Identifique cada novo programa/ alínea (exerc3p2, exerc3p3, etc.) Luis Filipe Baptista ENIDH/DEM 144
Anexo Uma vez que o software PG5 permite a compilação de vários programas em simultâneo será necessário indicar qual o programa a compilar Para isso, deve seleccionar os programas que não interessam com o botão direito do rato e desactivar a opção Linked/Built Luis Filipe Baptista ENIDH/DEM 145 Anexo O programa ativo ficará sinalizado com uma seta azul No final compilar e enviar para o autómato Luis Filipe Baptista ENIDH/DEM 146
Anexo: Lista de símbolos Numa boa programação, em vez de utilizarem-se os endereços reais das diversas variáveis dos autómatos (inputs, outputs, memórias, etc.) usam-se listas de símbolos para essas variáveis Caso seja necessário alterar o endereço de uma variável, bastará alterá-la apenas na lista de símbolos Luis Filipe Baptista ENIDH/DEM 147 Anexo: Lista de símbolos Para criar uma lista de símbolos global, premir o botão Global Symbols ou a tecla F5 Na tabela que irá abrir, introduza o nome pretendido para o símbolo fazendo New Symbol Luis Filipe Baptista ENIDH/DEM 148
Anexo: Lista de símbolos Luis Filipe Baptista ENIDH/DEM 149 Anexo: Lista de símbolos Clique em type para indicar o tipo de variável a usar (input, output, etc.) Luis Filipe Baptista ENIDH/DEM 150
Anexo: Lista de símbolos Clique em Address/Value para indicar o endereço da variável no autómato Luis Filipe Baptista ENIDH/DEM 151 Anexo: Lista de símbolos Adicione outras variáveis usando novamente os pontos anteriores Luis Filipe Baptista ENIDH/DEM 152
Anexo: Lista de símbolos Uma vez definida a lista de símbolos, a programação será feita usando os símbolos escolhido Qualquer alteração de endereços deverá ser efetuada na lista e nunca no programa (por exemplo na utilização de outro autómato) Luis Filipe Baptista ENIDH/DEM 153 Anexo: Lista de símbolos Exemplo de aplicação Luis Filipe Baptista ENIDH/DEM 154