Baixe o app para aproveitar ainda mais
Prévia do material em texto
Conjunto Didático de Automação Industrial Apostila de Treinamento CONJUNTO DIDÁTICO DE AUTOMAÇÃO INDUSTRIAL 1 Apostila de Treinamento Sumário 1. Características do S7-300 .......................... ..................................................... 3 1.1. Visão geral ........................................................................................... 3 1.2. Step 7 SIMATIC Manager .................................................................... 4 1.3. Configuração de hardware ................................................................. 10 1.4. Endereçamento .................................................................................. 12 2. Estrutura do programa do usuário................... ............................................ 16 2.1. Tipos de blocos .................................................................................. 16 2.2. Hierarquia de chamada dos blocos .................................................... 19 3. Técnicas de programação............................ ................................................. 21 3.1. Linguagem Ladder (LAD) ................................................................... 22 3.2. Linguagem de Blocos (FBD) .............................................................. 23 3.3. Linguagem STL .................................................................................. 24 4. Funções Lógicas básicas ............................ ................................................. 25 4.1. Operações binárias básicas ............................................................... 25 4.2. Operações digitais básicas................................................................. 32 5. Funções Avançadas .................................. .................................................... 45 5.1. Comparadores e Conversores............................................................ 45 5.2. Instruções de Controle de Lógica....................................................... 61 5.3. Instruções de Controle de Programa.................................................. 66 5.4. Instruções matemáticas...................................................................... 70 5.5. Instruções de movimentação e deslocamento ................................... 75 5.6. Instruções Lógicas com Palavra......................................................... 86 5.7. Controle PID....................................................................................... 92 6. Processamento de valores analógicos................ ...................................... 103 6.1. Resolução dos módulos de entrada e saída .................................... 103 6.2. Escalonamento de valores de entrada e saída ................................ 105 7. Download, Upload e monitoração ..................... ......................................... 110 7.1. Download do PG/PC para o Controlador Programável .................... 110 7.2. Upload do Controlador Programável para o PG/PC......................... 112 7.3. Monitoração de variáveis e programas............................................. 114 7.4. Diagnóstico....................................................................................... 119 CONJUNTO DIDÁTICO DE AUTOMAÇÃO INDUSTRIAL 2 Apostila de Treinamento 8. Exercícios práticos ................................ ...................................................... 122 8.1. Experiência 1.................................................................................... 122 8.2. Experiência 2.................................................................................... 128 8.3. Experiência 3.................................................................................... 133 8.4. Experiência 4.................................................................................... 139 8.5. Experiência 5.................................................................................... 145 8.6. Experiência 6.................................................................................... 150 8.7. Experiência 7.................................................................................... 155 8.8. Experiência 8.................................................................................... 162 8.9. Experiência 9.................................................................................... 169 8.10. Experiência 10.................................................................................. 174 8.11. Experiência 11.................................................................................. 181 8.12. Experiência 12.................................................................................. 188 8.13. Experiência 13.................................................................................. 194 8.14. Experiência 14.................................................................................. 200 8.15. Experiência 15.................................................................................. 209 8.16. Experiência 16.................................................................................. 218 8.17. Experiência 17.................................................................................. 224 9. Instalação / Desinstalação do Programa ............. ...................................... 234 9.1. Gerenciamento de Licenças............................................................. 234 9.2. Instalando o STEP 7......................................................................... 236 9.3. Definindo a interface PG / PC .......................................................... 242 9.4. Desinstalando o STEP 7 .................................................................. 245 10. Referências Bibliográficas......................... ................................................. 246 CONJUNTO DIDÁTICO DE AUTOMAÇÃO INDUSTRIAL 3 Apostila de Treinamento 1. Características do S7-300 1.1. Visão geral Um sistema SIMATIC S7-300 poderá apresentar, entre outras, a seguinte configuração: Rack Componente Descrição Rack (Trilho) Suporte para montagem do sistema SIMATIC S7-300 podendo ser da unidade central (contém a CPU) ou da unidade de expansão PS Fonte de alimentação da CPU e módulos montados ao rack. Transforma a tensão da linha de alimentação do circuito (120/230 Vca) em tensão de operação 24Vcc. CPU Unidade central de processamento que armazena e executa o programa de usuário, alimenta com 5V o bus do S7-300 e a comunicação com outro nó MPI via interface de rede MPI. Funções adicionais para CPU´s específicas: • Mestre ou escravo da rede Profibus DP; • Funções tecnológicas; • Conexão ponto-a-ponto; • Comunicação Ethernet via interface Profinet. IM É o módulo de interface responsável pela conexão de barramento entre os racks. CP Processador de comunicação. Exemplo: CP342-5 DP para conexão de Profibus DP. SM Módulos de sinais que podem ser de entrada/ saída analógica ou digital. Tabela 1.1 – Componentes básicos do sistema O termo "configuração" refere-se à organização de racks, módulos, I/O distribuídos, e submódulos de interface em uma janela da estação. Racks são representados por uma tabela de configuração que permite que um determinado número de módulos sejam inseridos assim como em um rack real. Na tabela de configuração, o STEP 7 atribui automaticamente um endereço para cada módulo. Você pode alterar os endereços dos módulos em uma estação se a CPU permitir endereçar livremente (ou seja, um endereço pode ser atribuído CONJUNTO DIDÁTICO DE AUTOMAÇÃO INDUSTRIAL 4 Apostila de Treinamento livremente para cada canal do módulo, independente do seu slot). 1.2. Step 7 SIMATIC Manager O SIMATIC Manager é uma interface gráfica com o usuáriopara a edição online/offline de objetos S7 (projetos, arquivos de programa do usuário, blocos, estações de hardware e ferramentas). Com o SIMATIC Manager é possível: • administrar projetos e bibliotecas; • ativar as ferramentas STEP 7; • acessar online o PLC; • editar módulos de memória. Existe o ícone designado "SIMATIC Manager" na área de trabalho do Windows, e um item de programa "SIMATIC Manager" dentro do campo SIMATIC no menu Iniciar. O programa é ativado como qualquer aplicação do Windows, através de duplo-click no ícone ou através do menu Iniciar -> SIMATIC -> SIMATIC Manager. Figura 1.1 – Ícones de abertura do SIMATIC Manager Criando um projeto Selecione a opção de menu File -> New ou o símbolo na barra de ferramentas para abrir a caixa de diálogo "New Project“, que permite criar um novo projeto ou uma nova biblioteca. Introduza o nome do projeto no campo "Name" e confirme selecionando "OK“. CONJUNTO DIDÁTICO DE AUTOMAÇÃO INDUSTRIAL 5 Apostila de Treinamento Figura 1.2 – Criando um projeto a partir do menu File !Notas 1.O campo “Storage location (path)” mostra o caminh o configurado no SIMATIC Manager na sequência de menus Options -> Customize. 2.A partir do STEP 7 V3.2 existe um assistente (Wiz ard) para ajudar a criar um novo projeto. Inserindo um programa S7 Selecione a sequência de menus Insert -> Program -> S7 Program para introduzir um novo programa no projeto atual. Ao introduzir um objeto, o sistema atribui-lhe automaticamente um nome, por ex., "S7 Program(1)". Posteriormente é possível alterar este nome. CONJUNTO DIDÁTICO DE AUTOMAÇÃO INDUSTRIAL 6 Apostila de Treinamento Figura 1.3 – Inserindo um S7 Program a partir do menu Insert !Notas 1.Utilize o método acima descrito para criar um pro grama independente de um hardware. 2.Programas relacionados a um hardware particular s ão tratados no capítulo sobre configuração de hardware. Um programa S7 contém os seguintes objetos: • Blocks, no qual são armazenados os blocos (OB’s, FC’s, FB’s e DB’s), e que podem ser enviados para a CPU; • Sources, no qual são armazenados os programas fonte que são criados através de editores de texto, por exemplo, para STL, S7-SCL ou S7-HiGraph; • Symbols, no qual são armazenados os simbólicos (nomes) para o endereçamento das variáveis globais do S7, tais como entradas, saídas, memórias, temporizadores e contadores. Salvando e arquivando um Projeto Você pode armazenar projetos individuais ou bibliotecas na forma comprimida em um arquivo. CONJUNTO DIDÁTICO DE AUTOMAÇÃO INDUSTRIAL 7 Apostila de Treinamento Este procedimento de armazenamento comprimido de arquivo é possível em um disco rígido ou num suporte de dados portátil (como um pendrive). No STEP 7, você pode usar o programa de arquivamento de sua escolha. Os programas de arquivamento ARJ e PKZIP 4.0 são incluídos como parte do pacote do STEP 7. Estes programas e suas descrições estão localizados no caminho de instalação na pasta ...\Step7\S7bin\. Será exigido as seguintes versões se utilizar um dos programas de arquivamento abaixo (ou uma versão mais recente): • PKZip Commandline (incluído com STEP 7) • WinZip versão 6.0 • JAR versão 1.02 • ARJ V2.4.1a (somente para desarquivar arquivos, incluído com STEP 7) • ARJ32 V3.x (somente para desarquivar arquivos) • LHArc versão 2.13 (somente para desarquivar arquivos). Você pode arquivar ou desarquivar projetos ou bibliotecas usando o comando de menu File -> Archive ou File -> Retrieve. Figura 1.4 – Arquivando e desarquivando projetos Para criar cópia de segurança de um projeto ou duplicar um projeto existente, você pode utilizar o recurso Save As. A estrutura de arquivo inteira do diretório do projeto abaixo é copiada sem uma verificação e salva com outro nome. Deve haver espaço suficiente na mídia de dados para armazenar a cópia de segurança. CONJUNTO DIDÁTICO DE AUTOMAÇÃO INDUSTRIAL 8 Apostila de Treinamento Salvando com reorganização leva mais tempo, mas uma mensagem é exibida se um objeto não pode ser copiado e salvo. As causas para estes erros geralmente são pacotes adicionais perdidos ou dados defeituosos de um objeto. Você pode salvar uma cópia usando o comando de menu File -> Save As. Figura 1.5 – Salvando projetos Abrindo um Projeto existente Para abrir um projeto já criado selecione a opção de menu File -> Open ou o símbolo na barra de ferramentas para abrir a caixa de diálogo “Open Project”, que permite selecionar um projeto ou biblioteca criada. CONJUNTO DIDÁTICO DE AUTOMAÇÃO INDUSTRIAL 9 Apostila de Treinamento Figura 1.6 – Abrindo um projeto existente CONJUNTO DIDÁTICO DE AUTOMAÇÃO INDUSTRIAL 10 Apostila de Treinamento 1.3. Configuração de hardware Para inserir uma nova estação de hardware no projeto atual, selecione a seqüência de menus Insert -> Station -> SIMATIC 300 Station. O nome automaticamente dado à estação é “SIMATIC 300(1)”, e pode ser alterado posteriormente. Figura 1.7 – Inserindo uma estação S7 300 Após esta etapa, selecione o objeto “Station” na janela de projeto para que o objeto “Hardware” fique visível. Para iniciar a ferramenta de configuração de hardware, escolha a seqüência de menus Edit -> Open Object ou um duplo-clique no objeto “Hardware” . Uma janela de estação e do catálogo de módulo (se ele ainda estava aberto quando foi fechada a aplicação) aparece na tela. Você pode posicionar racks e outros componentes, de acordo com a estrutura da estação selecionando os componentes necessários a partir do catálogo de hardware (Hardware Catalog). CONJUNTO DIDÁTICO DE AUTOMAÇÃO INDUSTRIAL 11 Apostila de Treinamento Figura 1.8 – Catálogo de Hardware no HW Config Independente de qual estrutura a estação tem - você pode configurar usando sempre os seguintes passos: 1. Selecione um componente de hardware na janela do catálogo de hardware. 2. Copie o componente selecionado para a janela de estação usando arraste & solte. A figura abaixo mostra a operação básica: Figura 1.9 – Configurando um rack S7 300 CONJUNTO DIDÁTICO DE AUTOMAÇÃO INDUSTRIAL 12 Apostila de Treinamento Você pode copiar a sua configuração de outros projetos do STEP 7, modificá-la conforme necessário, e transferi-la para uma ou mais instalações existentes. Quando o controlador programável é iniciado, a CPU compara a configuração predefinida criada no STEP 7 com a configuração atual da planta. Os eventuais erros são, portanto, reconhecidos imediatamente e comunicados. 1.4. Endereçamento No endereçamento de um slot específico (endereçamento padrão se a configuração de dados não foi carregada na CPU ainda), cada número de slot é associado a um endereço inicial do módulo. Este endereço digital ou analógico é baseado no tipo de módulo. A figura abaixo nos mostra os slots do S7300 e os endereços iniciais correspondentes aos módulos: ! NOTA Na família de CPUs 31xC você não pode inserir nenhu m módulo no slot 11 do rack 3. Esta área de endereço é reservada I/O integ rado. CONJUNTO DIDÁTICO DE AUTOMAÇÃO INDUSTRIAL 13 Apostila de Treinamento Figura 1.10 – Endereçamento dos módulos Endereço é a referência de localização dos sinais de entrada e saída utilizada na execução do programa do STEP7 na CPU. Na programação do STEP7 cada endereço deve ser associado a um mnemônico. A tabela abaixo mostra a relação entre os mnemônicos, tipos de dados e área de endereçamento. CONJUNTO DIDÁTICO DE AUTOMAÇÃO INDUSTRIAL 14 Apostila de Treinamento IEC Descrição Tipo de Dado Área de endereço I Input bit (bitde entrada) BOOL 0.0 a 65535.7 IB Input byte (byte de entrada) BYTE, CHAR 0 a 65535 IW Input word (palavra de entrada) WORD, INT, S5TIME, DATE 0 a 65534 ID Input double word (dupla palavra de entrada) DWORD, DINT, REAL, TOD, TIME 0 a 65532 Q Output bit (bit de saída) BOOL 0.0 a 65535.7 QB Output byte (byte de saída) BYTE, CHAR 0 a 65535 QW Output word (palavra de saída) WORD, INT, S5TIME, DATE 0 a 65534 QD Output double word (dupla palavra de saída) DWORD, DINT, REAL, TOD, TIME 0 a 65532 M Memory bit (bit de memória) BOOL 0.0 a 65535.7 MB Memory byte (byte de memória) BYTE, CHAR 0 a 65535 MW Memory word (palavra de memória) WORD, INT, S5TIME, DATE 0 a 65534 MD Memory double word (dupla palavra de memória) DWORD, DINT, REAL, TOD, TIME 0 a 65532 PIB Peripheral input byte (byte de entrada de periferia) BYTE, CHAR 0 a 65535 PQB Peripheral output byte (byte de saída de periferia) BYTE, CHAR 0 a 65535 PIW Peripheral input word (palavra de entrada de periferia) WORD, INT, S5TIME, DATE 0 a 65534 PQW Peripheral output word (palavra de saída de periferia) WORD, INT, S5TIME, DATE 0 a 65534 PID Peripheral input double word (dupla palavra de entrada de periferia) DWORD, DINT, REAL, TOD, TIME 0 a 65532 PQD Peripheral output double word (dupla palavra de saída de periferia) DWORD, DINT, REAL, TOD, TIME 0 a 65532 T Timer (temporizador) TIMER 0 a 65535 C Counter (contador) COUNTER 0 a 65535 FB Function block (bloco de funções) FB 0 a 65535 OB Organization block (bloco de organização) OB 1 a 65535 DB Data block (bloco de dados) DB, FB, SFB, UDT 1 a 65535 FC Function (funções) FC 0 a 65535 SFB System function block (bloco de funções de sistema) SFB 0 a 65535 SFC System function (funções de sistema) SFC 0 a 65535 VAT Variable table (tabela de variáveis) 0 a 65535 UDT User-defined data type (tipo de dado definido pelo usuário) UDT 0 a 65535 Tabela 1.2 – Área de endereçamento e dados Endereçamento dos módulos digitais O endereçamento dos módulos digitais (de entrada ou saída) consiste em byte de endereço e bit de endereço. Exemplo: I 1.2 Onde: • I = entrada • 1= byte de endereço (baseado no endereço onde o módulo inicia) • 2= bit de endereço (é o número impresso no módulo) CONJUNTO DIDÁTICO DE AUTOMAÇÃO INDUSTRIAL 15 Apostila de Treinamento Quando o primeiro módulo digital esta alocado no slot 4, é padrão ele iniciar com o byte de endereço 0. O endereço inicial para cada módulo subseqüente é acrescido de 4. Endereçamento dos módulos analógicos Os endereçamentos dos canais de entrada e saída analógica são sempre associados à palavra de endereço (word address). Quando o primeiro módulo esta alocado no slot 4, é padrão ele iniciar com o endereço 256. Para cada módulo subseqüente será acrescido de 16 no endereço. Endereçamento de entradas e saídas integradas da CP U 312C Entradas / saídas Endereço padrão Observação 10 entradas digitais 124.0 à 125.1 Sendo que 8 entradas são funções tecnológicas: 124.0 à 124.7 6 saídas digitais 124.0 à 124.5 Sendo que 2 saídas são funções tecnológicas: 124.0 à 124.1 Todas as entradas podem ser associadas a função de interrupção. Funções tecnológicas opcionais: • Contador • Medição de freqüência • Modulação de largura de pulso Tabela 1.3 – Entradas e saídas integradas à CPU 312C CONJUNTO DIDÁTICO DE AUTOMAÇÃO INDUSTRIAL 16 Apostila de Treinamento 2. Estrutura do programa do usuário 2.1. Tipos de blocos O software de programação STEP 7 permite estruturar seu programa do usuário, em outras palavras para quebrar o programa em seções individuais. Isto tem as seguintes vantagens: • Diversos programas são mais fáceis de entender. • Programas individuais podem ser padronizados. • A organização do programa é simplificada. • É mais fácil fazer modificações no programa. • A depuração é simplificada, pois você pode testar seções separadas. • O comissionamento do sistema é muito mais fácil. Existem vários tipos de blocos que você pode usar dentro de um programa do usuário S7: Organization blocks (OB) Os blocos de organização (OB’s) representam a interface entre o sistema operacional e o programa do usuário. Chamado pelo sistema operacional, eles controlam o programa de forma cíclica e por interrupção, o comportamento de inicialização do CLP e manipulação de erro. Você pode programar os blocos de organização para determinar o comportamento da CPU. System function blocks (SFB) and system functions ( SFC) Um bloco de função do sistema (SFB) é uma função de bloco integrado na CPU. SFB’s fazem parte do sistema operacional e não são carregados como parte do programa. Assim como os FB’s, SFB’s são blocos com memória. Você também pode criar blocos de dados instanciados para SFB’s e transferi-los para a CPU como parte do programa. Uma função de sistema (SFC) é uma função pré-programada que é integrada na CPU S7. Você pode chamar o SFC em seu programa. SFC’s fazem parte do sistema operacional e não são carregados como parte do programa. Assim como FC’s, SFC’s são blocos sem memória. CONJUNTO DIDÁTICO DE AUTOMAÇÃO INDUSTRIAL 17 Apostila de Treinamento Function blocks (FB) Os blocos de função (FB’s) fazem parte dos blocos que são programáveis e são blocos com memória. Para os blocos instanciados é atribuído um bloco de dado (DB) em sua memória. Os parâmetros que são transferidos para o FB e as variáveis estáticas são salvos no DB instanciado. Variáveis temporárias são guardadas como dados locais. Um FB contém um programa que é sempre executado quando o FB é chamado por um bloco de lógica diferente. Dessa maneira, as funções se tornam muito mais fáceis para serem reutilizadas no programa, e para realizarem tarefas complexas como cálculos. Functions (FC) Uma função (FC) faz parte dos blocos que são programáveis e são blocos sem memória. As variáveis temporárias pertencentes ao FC são salvas como dados locais e são perdidas quando o FC é executado. Para guardar dados de forma permanente, as funções devem usar blocos de dados (DB) compartilhados. Um FC contém um programa que é sempre executado quando o FC é chamado por um bloco de lógica diferente. Você pode usar um FC, entre outras, para retornar um valor de função para o bloco de chamada (por exemplo: funções matemáticas) ou para executar uma função tecnológica (exemplo: função de controle único com uma operação lógica de bits). Data Block (DB) Em contraste com blocos lógicos, os blocos de dados não contém instruções no STEP 7. Eles são usados para armazenar dados do usuário que podem ser acessados por todos os outros blocos. O tamanho pode variar de DB’s. Consulte a descrição de sua CPU para verificar o tamanho máximo possível. Você pode estruturar um bloco de dados de forma a se adequar a sua necessidade. Inserindo Blocos Você programa os blocos FC ou FB em LAD/STL/FBD escolhendo a linguagem mais apropriada na janela de propriedades. Para criar um novo bloco selecione a opção de menu Insert -> S7 Block ou com o botão direito do mouse na pasta Blocks selecione Insert New Object. CONJUNTO DIDÁTICO DE AUTOMAÇÃO INDUSTRIAL 18 Apostila de Treinamento Figura 2.1 – Inserindo blocos no S7 Program Na caixa de diálogo da janela Propriedades do bloco, insira um nome e selecione a linguagem de programação. Figura 2.2 – Propriedades de um bloco CONJUNTO DIDÁTICO DE AUTOMAÇÃO INDUSTRIAL 19 Apostila de Treinamento 2.2. Hierarquia de chamada dos blocos A ordem e a seqüência das chamadas de bloco são conhecidas como a “hierarquia de chamadas”. O número de blocos que podem ser chamados na seqüência depende do modelo da CPU. A figura a seguirilustra a forma e a seqüência de chamada dos blocos dentro de um ciclo de scan. Figura 2.3 – Hierarquia de chamada dos blocos A figura abaixo mostra a seqüência de chamada de um bloco dentro do programa de usuário. O programa chama o segundo bloco após a execução completa das instruções. Uma vez que o segundo ou o bloco chamado tenha sido executado, a execução do bloco é interrompida até que a instrução de chamada do próximo bloco seja processada. Figura 2.4 – Chamada entre blocos CONJUNTO DIDÁTICO DE AUTOMAÇÃO INDUSTRIAL 20 Apostila de Treinamento Programação Linear x Programação estruturada Você pode escrever todo o seu programa de usuário no OB1 (programação linear). Isto é apenas aconselhável para programas simples escritos para CPU S7-300 e que requerem pouca memória. A automatização de tarefas mais complexas pode ser controlada mais facilmente dividindo-a em tarefas menores refletindo as funções tecnológicas do processo ou que podem ser utilizada mais de uma vez. Essas tarefas são representadas por programa correspondentes em seções, conhecidos como blocos (programação estruturada). Figura 2.5 – Programação Linear versus Programação Estruturada Programação Linear Programação Estruturada CONJUNTO DIDÁTICO DE AUTOMAÇÃO INDUSTRIAL 21 Apostila de Treinamento 3. Técnicas de programação Antes de você gerar um determinado bloco ou um “source file” (arquivo fonte), selecionar a linguagem de programação, através do editor de propriedades do objeto. Esta seleção determina qual editor é iniciado quando o bloco ou arquivo fonte é aberto. Inicie o editor da linguagem adequada, quer em SIMATIC Manager com um duplo clique sobre o objeto correspondente (bloco, arquivo fonte, etc), selecionando o menu Edit -> Open Object ou clique no botão correspondente da barra de ferramentas. Para criar um programa S7, as linguagens de programação listadas na tabela estão disponíveis para você. As linguagens de programação LAD, FBD e STL são fornecidas com o pacote padrão do software STEP 7. Você pode comprar outras linguagens de programação como pacotes de software opcional. Você tem a escolha de diferentes filosofias de programação (Ladder Logic, Function Block Diagram, Statement List, Standard Language, Sequential Control, ou Status Graph) e se pretende utilizar baseada em texto ou linguagem gráfica. Linguagem de Programação Grupo de Usuários Aplicação Statement List – STL Usuários que preferem programar em uma linguagem similar a código de máquina Programas mais otimizados, são mais rápidos e necessitam de menor espaço de memória Ladder Logic – LAD Usuários acostumados a trabalhar com diagramas de circuitos Programação de controles lógicos Function Block Diagram - FBD Usuários familiarizados com portas lógicas e algebra booleana Programação de controles lógicos Structured Control Language – SCL (Pacote opcional) Usuários que programam com linguagens de alto nível como PASCAL ou C Programação de processamento de dados S7-GRAPH (Pacote opcional) Usuários que sem muita experiência em programar PLC, mas com experiência em trabalhar com funções orientadas à objeto Conveniente para descrição de processos sequênciais HiGraph (Pacote opcional) Usuários que sem muita experiência em programar PLC, mas com experiência em trabalhar com funções orientadas à objeto Conveniente para descrição de processos assíncronos e não- sequenciais CONJUNTO DIDÁTICO DE AUTOMAÇÃO INDUSTRIAL 22 Apostila de Treinamento CFC (Pacote opcional) Usuários que sem muita experiência em programar PLC, mas com experiência em trabalhar com funções orientadas à objeto Descrição de processos contínuos Tabela 3.1 – Linguagens de Programação Se os blocos não contêm erros, você pode alternar entre Lógica Ladder, Diagrama de Blocos, ou STL. Partes de programas que não podem ser exibidas na linguagem-alvo são mostradas na linguagem STL. Na linguagem STL, você pode gerar blocos de arquivos fonte e vice-versa. 3.1. Linguagem Ladder (LAD) A representação gráfica da linguagem Ladder é baseada em diagramas de circuitos elétricos. Os elementos de um diagrama de circuito, por exemplo, contatos abertos, contatos fechados e bobinas, são combinados para formar redes (Network). Os elementos mais utilizados aparecem na Figura 3.1. Figura 3.1 – Elementos da linguagem Ladder CONJUNTO DIDÁTICO DE AUTOMAÇÃO INDUSTRIAL 23 Apostila de Treinamento Exemplo de uma Network em LAD: Figura 3.2 – Network de exemplo em LAD 3.2. Linguagem de Blocos (FBD) O Diagrama de Blocos de Funções é baseado em símbolos lógicos conhecidos na álgebra booleana. São utilizadas caixas para representação de funções simples e complexas combinadas de outras funções lógicas. Os elementos mais utilizados aparecem na Figura 3.3. Figura 3.3 – Elementos da linguagem de Blocos CONJUNTO DIDÁTICO DE AUTOMAÇÃO INDUSTRIAL 24 Apostila de Treinamento Exemplo de uma Network em FBD: Figura 3.4 – Network de exemplo em FBD 3.3. Linguagem STL A linguagem de programação STL é baseada em texto e possui uma estrutura semelhante ao código de máquina. Cada declaração representa uma operação de processamento da CPU. A figura abaixo é a representação em STL do diagrama de blocos da Figura ?. Figura 3.5 – Network de exemplo em STL CONJUNTO DIDÁTICO DE AUTOMAÇÃO INDUSTRIAL 25 Apostila de Treinamento 4. Funções Lógicas básicas 4.1. Operações binárias básicas As instruções lógicas com bit trabalham com dois dígitos, 1 e 0. Estes dois dígitos formam a base do sistema numérico chamado sistema binário. As instruções lógicas binárias interpretam o estado do sinal 1 e 0 e combinam então de acordo com a lógica booleana. Esta combinação produz o resultado 1 ou 0 que é chamado de “Result of Logic Operation” (RLO). Operação Lógica AND (E) Simbologia Expressão Tabela Verdade S = A * B Com a instrução AND é possível verificar o estado de sinal de dois ou mais endereços de entrada da porta. Se o estado do sinal de todas as entradas é 1, a condição esta satisfeita e o resultado 1 é obtido na saída. Se o estado do sinal de uma entrada é 0, então a condição não esta satisfeita e o resultado obtido na saída é 0. Exemplo: Circuito Elétrico LAD FBD A B S 0 0 0 0 1 0 1 0 0 1 1 1 CONJUNTO DIDÁTICO DE AUTOMAÇÃO INDUSTRIAL 26 Apostila de Treinamento Operação Lógica OR (OU) Simbologia Expressão Tabela Verdade S = A + B Com a instrução OR é possível verificar o estado de sinal de dois ou mais endereços de entrada da porta. Se o estado do sinal de uma entrada é 1, a condição esta satisfeita e o resultado 1 é obtido na saída. Se o estado do sinal de todas as entradas é 0, então a condição não esta satisfeita e o resultado obtido na saída é 0. Exemplo: Circuito Elétrico LAD FBD A B S 0 0 0 0 1 1 1 0 1 1 1 1CONJUNTO DIDÁTICO DE AUTOMAÇÃO INDUSTRIAL 27 Apostila de Treinamento Operação Lógica XOR (OU Exclusivo) Simbologia Expressão Tabela Verdade S = A + B Com a instrução XOR é possível verificar na saída os resultados de acordo com a tabela verdade da porta. Se o estado do sinal de uma entrada é 1 e da outra é 0, a condição esta satisfeita e o resultado 1 é obtido na saída. Ou seja, a saída terá nível lógico 1 quando o número de entradas ativadas for ímpar. Exemplo: Circuito Elétrico LAD FBD A B S 0 0 0 0 1 1 1 0 1 1 1 0 CONJUNTO DIDÁTICO DE AUTOMAÇÃO INDUSTRIAL 28 Apostila de Treinamento Operação Lógica NOT (NÃO) Simbologia Expressão Tabela Verdade S = A Com a instrução NOT o estado do sinal de saída é invertido, ou seja, se a entrada estiver em 1 a saída resulta em 0 e se a entrada estiver em 0 o resultado obtido na saída é 1. Exemplo: LAD FBD A S 0 1 1 0 CONJUNTO DIDÁTICO DE AUTOMAÇÃO INDUSTRIAL 29 Apostila de Treinamento Instrução Set e Reset Simbologia Set Reset A instrução Set Output é somente executada se o RLO que precede a instrução é “1”. Se o RLO esta em nível lógico “1” o endereço determinado no elemento é setado. Quando o RLO = 0, nenhuma mudança ocorrerá e o estado do endereço especificado no elemento permanecerá inalterado. A instrução Reset Output também só será executada se o RLO que precede a instrução for “1”. Quando o RLO estiver em nível lógico “1” o endereço determinado no elemento será resetado. Para o RLO = 0, nenhuma mudança ocorrerá e o estado do endereço especificado no elemento permanecerá inalterado. O endereço também pode ser um temporizador (T) cujo valor do temporizador é resetado para "0" ou um contador (C) cujo valor do contador é resetado para "0". Exemplo: LAD FBD CONJUNTO DIDÁTICO DE AUTOMAÇÃO INDUSTRIAL 30 Apostila de Treinamento Instrução com Flip Flop Set / Reset Reset Dominante Set Dominante O Flip Flop Set_Reset executa as instruções como Set (S) ou R (Reset) apenas quando o RLO na entrada é 1. Para a instrução Set, se o sinal de entrada é igual a 1, o endereço especificado no elemento é setado (vai a nível lógico “1”) e permanece até que seja feito um reset. Na instrução Reset, quando o sinal de entrada é igual a 1, o endereço especificado no elemento é resetado (vai a nível lógico “0”) e permanece até que seja feito um set. Se ambas as entradas possuirem simultaneamente nível lógico “1”, o estado da saída obedecerá a prioridade de quem for dominante. Exemplo: LAD FBD S R Q 0 0 0 0 1 0 1 0 1 1 1 0 S R Q 0 0 0 0 1 0 1 0 1 1 1 1 CONJUNTO DIDÁTICO DE AUTOMAÇÃO INDUSTRIAL 31 Apostila de Treinamento Instrução Detecção de borda de subida e descida Simbologia Borda de subida Borda de descida A instrução “Positive RLO Edge Detection ” detecta uma mudança de 0 a 1 (borda de subida) no endereço especificado e indica isto com RLO de nível lógico “1” após a instrução. O estado atual do sinal no RLO é comparado como estado do sinal do endereço (o bit de memória). Se o estado do sinal do endereço é “0” e o RLO é de nível lógico “1” antes da instrução, resulta em um pulso de nível lógico “1” após a instrução. O RLO antes da instrução é armazenado no endereço. A instrução “Negative RLO Edge Detection ” detecta uma mudança de 1 a 0 (borda de descida) no endereço especificado e indica isto com RLO de nível lógico “1” após a instrução. O estado atual do sinal no RLO é comparado como estado do sinal do endereço (o bit de memória). Se o estado do sinal do endereço é “1” e o RLO é de nível lógico “0” antes da instrução, resulta em um pulso de nível lógico “1” após a instrução. O RLO antes da instrução é armazenado no endereço. Diagrama de tempo: Exemplo: LAD FBD CONJUNTO DIDÁTICO DE AUTOMAÇÃO INDUSTRIAL 32 Apostila de Treinamento 4.2. Operações digitais básicas Temporizadores Os temporizadores possuem uma área reservada para eles na memória da CPU. Esta área de memória reserva uma palavra de 16-bits para cada endereço de temporizador. Quando você programa em LAD ou FBD, 256 temporizadores são suportados. Por favor, para sua CPU, consulte as informações técnicas para verificar o número de temporizadores disponíveis. Os bits de 0 a 9 da palavra do temporizador contêm o valor de tempo em código binário. O valor de tempo especifica um número de unidades. Quando o temporizador é atualizado, o valor de tempo é decrementado de uma unidade em intervalos determinados pela base de tempo. O valor de tempo é decrementado até que seja igual a zero. Você pode pré-carregar um valor de tempo usando uma das seguintes formas: • S5T#aH_bM_cS_dMS - Onde H = horas, M = minutos, S = segundos, e MS = milisegundos; a, b, c, d são definidos pelo usuário. - A base de tempo é selecionada automaticamente, e o valor é arredondado para o menor número seguinte, com essa base de tempo. O máximo valor de tempo que pode ser inserido é 9990 segundos, ou 2 horas 46 minutos e 30 segundos. Exemplos: S5TIME#4S = 4 segundos s5t#2h_15m = 2 horas e 15 minutos S5T#1H_12M_18S = 1 hora 12 minutos e 18 segundos Os bits 12 e 13 da palavra do temporizador contêm a base de tempo do código binário. A base de tempo define o intervalo em que o valor do tempo deve ser decrementado de uma unidade. A menor base de tempo é 10ms e a maior é 10s. CONJUNTO DIDÁTICO DE AUTOMAÇÃO INDUSTRIAL 33 Apostila de Treinamento Base de tempo Código Binário para base de tempo 10 ms 00 100 ms 01 1 s 10 10 s 11 Quandoum temporizador é iniciado, os conteúdos da célula do temporizador são usados como o valor de tempo. A seguir a figura mostra o conteúdo da célula do temporizador carregado com o valor 127, com uma base de tempo de 1 segundo. Figura 4.1 – Base de tempo dos temporizadores CONJUNTO DIDÁTICO DE AUTOMAÇÃO INDUSTRIAL 34 Apostila de Treinamento S_PULSE: Pulse (Temporizador de Pulso) Simbologia A instrução S_PULSE inicia o temporizador especificado se houver uma borda de subida (uma mudança no estado do sinal de “0” a “1”) na entrada (S). A mudança de sinal é sempre necessária para iniciar um temporizador. O temporizador é executado para o intervalo de tempo pré-determinado no valor de entrada (TV) até que seja decorrido o tempo programado. Enquanto o temporizador estiver funcionando, o estado de sinal da saída (Q) é “1”. Se houver uma alteração de “1” a “0” na entrada de S antes do tempo decorrido, o cronômetro é parado e a saída (Q) vai a “0”. Se ocorrer uma mudança de estado de “0” para “1” no Reset (R) do temporizador, a instrução é resetada e a base de tempo vai para zero. Um estado de sinal “1” na entrada R do temporizador não tem nenhum efeito se ele não está funcionando. O valor do tempo atual pode ser lido nas saídas de BI e BCD. O valor de tempo em BI está no formato binário; em BCD é em formato de código binário decimal. Diagrama de tempo: CONJUNTO DIDÁTICO DE AUTOMAÇÃO INDUSTRIAL 35 Apostila de Treinamento Exemplo: LAD FBD S_PEXT: Extended Pulse (Temporizador de Pulso extendido) Simbologia A instrução S_PEXT inicia o temporizador especificado, se houver uma borda de subida (alteração no estado de sinal de “0” a “1”) na entrada (S). A mudança de sinal é sempre necessária para iniciar um temporizador. O temporizador continua a ser executado durante o período especificado no valor de entrada de tempo (TV), mesmo se o estado do sinal da entrada (S) muda para “0” antes do tempo decorrido. Enquanto o temporizador estiver funcionando, o estado de sinal da saída (Q) é “1”. Se ocorrer uma nova mudança de estado de “0” para “1” na entrada (S) do temporizador, a instrução é reiniciada com o valor de tempo pré- determinado. Se ocorrer uma mudança de estado de “0” para “1” no Reset (R) do temporizador, a instrução é resetada e a base de tempo vai para zero. Um estado de sinal “1” na entrada R do temporizador não tem nenhum efeito se ele não está funcionando. O valor do tempo atual pode ser lido nas saídas de BI e BCD. O valor de tempo em BI está no formato binário; em BCD é em formato de código binário decimal. CONJUNTO DIDÁTICO DE AUTOMAÇÃO INDUSTRIAL 36 Apostila de Treinamento Diagrama de tempo: Exemplo: LAD FBD S_ODT: On-Delay (Temporizador de atraso na energização) Simbologia A instrução S_ODT inicia o temporizador especificado, se houver uma borda de subida (alteração no estado de sinal de “0” a “1”) na entrada (S). A mudança de sinal é sempre necessária para iniciar um temporizador. O temporizador é executado para o intervalo de tempo pré-determinado no valor de entrada (TV), desde que a entrada (S) permaneça em “1”. O estado do sinal na saída (Q) é “1” quando o tempo já tiver decorrido sem erros e a entrada (S) ainda for CONJUNTO DIDÁTICO DE AUTOMAÇÃO INDUSTRIAL 37 Apostila de Treinamento “1”. Se houver uma alteração de “1” a “0” na entrada de S antes do tempo decorrido, o cronômetro é parado e a saída (Q) vai a “0”. Se ocorrer uma mudança de estado de “0” para “1” no Reset (R) do temporizador, a instrução é resetada e a base de tempo vai para zero. O temporizador também é resetado se o estado de sinal é “1” na entrada R enquanto o temporizador não esta funcionando e a entrada (S) é “1”. O valor do tempo atual pode ser lido nas saídas de BI e BCD. O valor de tempo em BI está no formato binário; em BCD é em formato de código binário decimal. Diagrama de tempo: Exemplo: LAD FBD CONJUNTO DIDÁTICO DE AUTOMAÇÃO INDUSTRIAL 38 Apostila de Treinamento S_ODTS: Retentive On-Delay (Temporizador retentivo de atraso na energização) Simbologia A instrução S_ODTS inicia o temporizador especificado, se houver uma borda de subida (alteração no estado de sinal de “0” a “1”) na entrada (S). A mudança de sinal é sempre necessária para iniciar um temporizador. O temporizador é executado para o intervalo de tempo pré-determinado no valor de entrada (TV), mesmo se o estado do sinal da entrada (S) muda para “0” antes do tempo decorrido. O estado do sinal na saída (Q) é “1” quando o tempo já tiver decorrido sem levar em conta o estado da entrada (S). Se ocorrer uma nova mudança de estado de “0” para “1” na entrada (S) do temporizador, a instrução é reiniciada com o valor de tempo pré-determinado. Se ocorrer uma mudança de estado de “0” para “1” no Reset (R) do temporizador, a instrução é resetada e a base de tempo vai para zero independente do estado de sinal de S. O sinal da saída (Q) vai a “0’. O valor do tempo atual pode ser lido nas saídas de BI e BCD. O valor de tempo em BI está no formato binário; em BCD é em formato de código binário decimal. Diagrama de tempo: CONJUNTO DIDÁTICO DE AUTOMAÇÃO INDUSTRIAL 39 Apostila de Treinamento Exemplo: LAD FBD S_OFFDT: Off-Delay (Temporizador de atraso na desenergização) Simbologia A instrução S_OFFDT inicia o temporizador especificado, se houver uma borda de descida (alteração no estado de sinal de “1” a “0”) na entrada (S). A mudança de sinal é sempre necessária para iniciar um temporizador. A saída (Q) vai para “1” enquanto a entrada (S) for “1” ou o temporizador estiver funcionando. O temporizador é resetado quando o estado do sinal em S vai de “0” para “1” enquanto o temporizador estiver funcionando e só reinicia a contagem novamente quando a entrada S for de ‘1” para “0”. Se ocorrer uma mudança de estado de “0” para “1” no Reset (R) do temporizador enquanto estiver funcionando, a instrução é resetada e a base de tempo vai para zero. O valor do tempo atual pode ser lido nas saídas de BI e BCD. O valor de tempo em BI está no formato binário; em BCD é em formato de código binário decimal. CONJUNTO DIDÁTICO DE AUTOMAÇÃO INDUSTRIAL 40 Apostilade Treinamento Diagrama de tempo: Exemplo: LAD FBD CONJUNTO DIDÁTICO DE AUTOMAÇÃO INDUSTRIAL 41 Apostila de Treinamento Contadores Os contadores possuem uma área reservada para eles na memória da CPU. Esta área de memória reserva uma palavra de 16-bits para cada endereço de contador. Quando você programa em LAD ou FBD, 256 contadores são suportados. Por favor, para sua CPU, consulte as informações técnicas para verificar o número de temporizadores disponíveis. Os bits de 0 a 9 da palavra do temporizador contêm o valor de tempo em código binário. O valor de contagem é movido para a palavra do contador quando ele é energizado. O intervalo do valor de contagem é de 0 a 999. Você pode pré-carregar um valor de contagem, digitando um número de 0 a 999, por exemplo, 127, no seguinte formato: C# 127. O C# é o formato de código binário decimal. Os bits de 0 a 11 do contador contêm o valor de contagem em formato de código binário decimal. A seguir a figura mostra o conteúdo da célula do contador carregado com o valor 127. Figura 4.2 – Exemplo para contador carregado com o valor 127 CONJUNTO DIDÁTICO DE AUTOMAÇÃO INDUSTRIAL 42 Apostila de Treinamento S_CUD: Up-Down (Contador crescente e decrescente) Simbologia A instrução S_CUD inicia a contagem com o valor pré-definido na entrada PV, se houver uma borda de subida na entrada S. Se houver um estado de sinal “1” na entrada R, o contador é zerado e a contagem é definida como zero. O contador é incrementado de uma unidade se o estado do sinal de entrada CU muda de “0” para “1” e o valor do contador é inferior a “999”. O contador é decrementado de uma unidade se houver uma borda de subida na entrada CD e o valor do contador é maior que “0”. Se ocorrer uma borda de subida em ambas as entradas de contagem, ambas as instruções são executadas e o valor de contagem permanece o mesmo. O estado de sinal na saída Q é “1” se a contagem é maior que zero e “0” se a contagem é igual a zero. O valor da contagem atual pode ser lido nas saídas de CV e CV_BCD. O valor de contagem de CV está no formato binário; e em CV_BCD esta em formato de código binário decimal. Exemplo: LAD FBD CONJUNTO DIDÁTICO DE AUTOMAÇÃO INDUSTRIAL 43 Apostila de Treinamento S_CU: Up (Contador crescente) Simbologia A instrução S_CU inicia a contagem com o valor pré-definido na entrada PV, se houver uma borda de subida na entrada S. O contador é incrementado de uma unidade se o estado do sinal de entrada CU muda de “0” para “1” e o valor de contagem é inferior a “999”. Se houver um estado de sinal “1” na entrada R, o contador é zerado e a contagem é definida como zero. O estado de sinal na saída Q é “1” se a contagem é maior que zero e “0” se a contagem é igual a zero. O valor da contagem atual pode ser lido nas saídas de CV e CV_BCD. O valor de contagem de CV está no formato binário; e em CV_BCD esta em formato de código binário decimal. Exemplo: LAD FBD CONJUNTO DIDÁTICO DE AUTOMAÇÃO INDUSTRIAL 44 Apostila de Treinamento S_CD: Up (Contador decrescente) Simbologia A instrução S_CD inicia a contagem com o valor pré-definido na entrada PV, se houver uma borda de subida na entrada S. O contador é decrementado de uma unidade se o estado do sinal de entrada CD muda de “0” para “1” e o valor de contagem é superior a “0”. Se houver um estado de sinal “1” na entrada R, o contador é zerado e a contagem é definida como zero. O estado de sinal na saída Q é “1” se a contagem é maior que zero e “0” se a contagem é igual a zero. O valor da contagem atual pode ser lido nas saídas de CV e CV_BCD. O valor de contagem de CV está no formato binário; e em CV_BCD esta em formato de código binário decimal. Exemplo: LAD FBD CONJUNTO DIDÁTICO DE AUTOMAÇÃO INDUSTRIAL 45 Apostila de Treinamento 5. Funções Avançadas 5.1. Comparadores e Conversores Comparadores Na instrução Comparador as entradas IN1 e IN2 são comparadas de acordo com o tipo escolhida: == IN1 é igual a IN2 <> IN1 é diferente de IN2 > IN1 é maior que IN2 < IN1 é menor que IN2 >= IN1 é maior ou igual a IN2 <= IN1 é menor ou igual a IN2 Se a comparação é verdadeira, a RLO da instrução é “1”, caso contrário é “0”. Você não pode negar o resultado da comparação, mas você pode obter o mesmo resultado de negação utilizando a função de comparação oposta. As seguintes instruções de comparação estão disponíveis: • CMP ? I : Comparação de Inteiro • CMP ? D: Comparação de Duplo Inteiro • CMP ? R: Comparação de Real CONJUNTO DIDÁTICO DE AUTOMAÇÃO INDUSTRIAL 46 Apostila de Treinamento CMP ? I: Comparador de número Inteiro Simbologia A instrução CMP ? I compara dois valores com base em 16-bits de números de ponto flutuante. Exemplos: LAD FBD A saída Q4.0 é setada se as seguintes condições existir: • as entradas I0.0 e I0.1 possuir nível lógico“1” • e MW0 for maior ou igual MW2 A saída Q4.0 é setada se as seguintes condições existir: • MW0 é igual a MW2 • e a entrada I0.0 possuir nível lógico “1” CONJUNTO DIDÁTICO DE AUTOMAÇÃO INDUSTRIAL 47 Apostila de Treinamento CMP ? D: Comparador de número Duplo Inteiro Simbologia A instrução CMP ? D compara dois valores com base em 32-bits de números de ponto flutuante. Exemplos: LAD FBD A saída Q4.0 é setada se as seguintes condições existir: • as entradas I0.0 e I0.1 possuir nível lógico “1” • MD0 for maior ou igual MD4 • e a entrada I0.2 possuir nível lógico “1” A saída Q4.0 é setada se as seguintes condições existir: • MD0 for diferente de MD4 • e a entrada I0.0 possuir nível lógico “1” CONJUNTO DIDÁTICO DE AUTOMAÇÃOINDUSTRIAL 48 Apostila de Treinamento CMP ? R: Comparador de número Real Simbologia A instrução CMP ? R compara dois valores com base em números reais. Exemplos: LAD FBD A saída Q4.0 é setada se as seguintes condições existir: • as entradas I0.0 e I0.1 possuir nível lógico “1” • MD0 for maior ou igual MD4 • e a entrada I0.2 possuir nível lógico “1” A saída Q4.0 é setada se as seguintes condições existir: • MD0 for menor que MD4 • e a entrada I0.0 possuir nível lógico “1” CONJUNTO DIDÁTICO DE AUTOMAÇÃO INDUSTRIAL 49 Apostila de Treinamento Conversores As instruções de conversão lêem o conteúdo do parâmetro IN e o converte ou complementa o sinal. O resultado pode ser obtido no parâmetro OUT. As seguintes instruções de conversão estão disponíveis: • BCD_I: BCD para Inteiro • I_BCD: Inteiro para BCD • BCD_DI: BCD para Duplo Inteiro • I_DI: Inteiro para Duplo Inteiro • DI_BCD: Duplo Inteiro para BCD • DI_REAL: Duplo Inteiro para Ponto-flutuante • INV_I: Inverte número Inteiro • INV_DI: Inverte número Duplo Inteiro • NEG_I: Nega número Inteiro • NEG_DI: Nega número Duplo Inteiro • NEG_R: Nega número real Outras quatro instruções convertem um valor de ponto-flutuante (32 bits) para um valor duplo inteiro (32 bits). Cada uma das instruções possui um método diferente de arredondamento. • ROUND: Arredonda para Duplo Inteiro • TRUNC: Arredonda Truncando para Duplo Inteiro • CEIL: Arredonda pelo Teto para Duplo Inteiro • FLOOR: Arredonda pelo Piso para Duplo Inteiro CONJUNTO DIDÁTICO DE AUTOMAÇÃO INDUSTRIAL 50 Apostila de Treinamento BCD_I: BCD para Inteiro Simbologia A instrução BCD_I lê o conteúdo do parâmetro IN como um número de três dígitos em formato BCD (999) e converte para um valor inteiro (16-bits). O resultado é obtido no parâmetro OUT. Se algum dos números individuais decimais do número BCD está no intervalo inválido entre 10 e 15, um erro BCD ocorre quando a conversão tenta ser feita, causando a seguinte reação: • A CPU muda para o modo STOP. O erro “BCD Conversion Error” fica escrito no buffer de diagnóstico com o evento de número 2521. • Se o OB121 está programado, ele é chamado. Exemplos: LAD FBD Se a entrada I0.0 está no nível lógico “1”, então o conteúdo de MW10 é lido como número de código BCD e convertido á um Inteiro. O resultado é armazenado em MW12. A saída Q4.0 é “1” se a conversão não foi executada. Se a entrada I0.0 está no nível lógico “1”, então o conteúdo de MW10 é lido como número de código BCD e convertido á um Inteiro. O resultado é armazenado em MW12. Se a conversão foi executada, a saída Q4.0 vai ao nível lógico “1”. CONJUNTO DIDÁTICO DE AUTOMAÇÃO INDUSTRIAL 51 Apostila de Treinamento I_BCD: Inteiro para BCD Simbologia A instrução I_BCD lê o conteúdo do parâmetro IN como um valor inteiro (16-bits) e converte à um número de três dígitos em formato BCD (999). O resultado é obtido no parâmetro OUT. Se um “overflow” ocorrer, o parâmetro ENO é levado ao nível lógico “0”. Exemplos: LAD FBD Se a entrada I0.0 está no nível lógico “1”, então o conteúdo de MW10 é lido como número Inteiro e convertido á um número de código BCD. O resultado é armazenado em MW12. A saída Q4.0 é “1” se a conversão não foi executada (por exemplo, overflow na conversão). Se a entrada I0.0 está no nível lógico “1”, então o conteúdo de MW10 é lido como número Inteiro e convertido á um número de código BCD. O resultado é armazenado em MW12. Se a conversão foi executada, a saída Q4.0 vai ao nível lógico “1”. CONJUNTO DIDÁTICO DE AUTOMAÇÃO INDUSTRIAL 52 Apostila de Treinamento BCD_DI: BCD para Duplo Inteiro Simbologia A instrução BCD_DI lê o conteúdo do parâmetro IN como um número de sete dígitos em formato BCD (9 999 999) e converte para um valor duplo inteiro (32-bits). O resultado é obtido no parâmetro OUT. O parâmetro ENO sempre terá o mesmo estado de sinal do parâmetro EN. Se algum dos números individuais decimais do número BCD está no intervalo inválido entre 10 e 15, um erro BCD ocorre quando a conversão tenta ser feita, causando a seguinte reação: • A CPU muda para o modo STOP. O erro “BCD Conversion Error” fica escrito no buffer de diagnóstico com o evento de número 2521. • Se o OB121 está programado, ele é chamado. Exemplos: LAD FBD Se a entrada I0.0 está no nível lógico “1”, então o conteúdo de MD8 é lido como número de código BCD e convertido á um Duplo Inteiro. O resultado é armazenado em MD12. A saída Q4.0 é “1” se a conversão não foi executada (ENO = EM = 0). Se a entrada I0.0 está no nível lógico “1”, então o conteúdo de MD8 é lido como número de código BCD e convertido á um Duplo Inteiro. O resultado é armazenado em MD12. Se a conversão foi executada, a saída Q4.0 vai ao nível lógico “1” (ENO = EN). CONJUNTO DIDÁTICO DE AUTOMAÇÃO INDUSTRIAL 53 Apostila de Treinamento I_DI: Inteiro para Duplo Inteiro Simbologia A instrução I_DI lê o conteúdo do parâmetro IN como um valor inteiro (16-bits) e converte para um valor duplo inteiro (32-bits). O resultado é obtido no parâmetro OUT. O parâmetro ENO sempre terá o mesmo estado de sinal do parâmetro EN. Exemplos: LAD FBD Se a entrada I0.0 está no nível lógico “1”, então o conteúdo de MW10 é lido como número Inteiro e convertido á um número Duplo Inteiro. O resultado é armazenado em MD12. A saída Q4.0 é “1” se a conversão não foi executada (ENO = EN = 0). Se a entrada I0.0 está no nível lógico “1”, então o conteúdo de MW10 é lido como número Inteiro e convertido á um número Duplo Inteiro. O resultado é armazenado em MD12. Se a conversão foi executada, a saída Q4.0 vai ao nível lógico “1” (ENO = EN). CONJUNTO DIDÁTICO DE AUTOMAÇÃO INDUSTRIAL 54 Apostila de Treinamento DI_BCD: Duplo Inteiro para BCD Simbologia A instrução DI_BCD lê o conteúdo do parâmetro IN como um valor Duplo inteiro (32- bits) e converte à um número de sete dígitos em formato BCD (9 999 999). O resultado é obtido no parâmetro OUT. Se um “overflow” ocorrer, o parâmetro ENO é levado ao nível lógico “0”. Exemplos:LAD FBD Se a entrada I0.0 está no nível lógico “1”, então o conteúdo de MD8 é lido como número Duplo Inteiro e convertido á um número de código BCD. O resultado é armazenado em MD12. A saída Q4.0 é “1” se a conversão não foi executada (por exemplo, overflow na conversão). Se a entrada I0.0 está no nível lógico “1”, então o conteúdo de MD8 é lido como número Duplo Inteiro e convertido á um número de código BCD. O resultado é armazenado em MD12. Se a conversão foi executada, a saída Q4.0 vai ao nível lógico “1”. CONJUNTO DIDÁTICO DE AUTOMAÇÃO INDUSTRIAL 55 Apostila de Treinamento DI_REAL: Duplo Inteiro para Ponto-flutuante Simbologia A instrução DI_REAL lê o conteúdo do parâmetro IN como um valor Duplo inteiro (32-bits) e converte à um número de ponto-flutuante. O resultado é obtido no parâmetro OUT. O parâmetro ENO sempre terá o mesmo estado de sinal do parâmetro EN. Exemplos: LAD FBD Se a entrada I0.0 está no nível lógico “1”, então o conteúdo de MD8 é lido como número Duplo Inteiro e convertido á um número de Ponto-flutuante. O resultado é armazenado em MD12. A saída Q4.0 é “1” se a conversão não foi executada. Se a entrada I0.0 está no nível lógico “1”, então o conteúdo de MD8 é lido como número Duplo Inteiro e convertido á um número de Ponto-flutuante. O resultado é armazenado em MD12. Se a conversão foi executada, a saída Q4.0 vai ao nível lógico “1”. CONJUNTO DIDÁTICO DE AUTOMAÇÃO INDUSTRIAL 56 Apostila de Treinamento INV_I: Inverte número Inteiro Simbologia A instrução INV_I lê o conteúdo do parâmetro IN e executa uma função booleana XOR com a máscara hexadecimal W#16#FFFF. Deste modo, o valor de cada bit é invertido. O resultado é obtido no parâmetro OUT. O parâmetro ENO sempre terá o mesmo estado de sinal do parâmetro EN. Exemplos: LAD FBD A conversão é executada se o estado de sinal da entrada I0.0 é “1”. O valor para todos os bits de MW8 é invertido: MW8 = 01000001 10000001 resulta em -> MW10 = 10111110 01111110. A conversão é executada se o estado de sinal da entrada I0.0 é “1”. O valor para todos os bits de MW8 é invertido: MW8 = 01000001 10000001 resulta em -> MW10 = 10111110 01111110. CONJUNTO DIDÁTICO DE AUTOMAÇÃO INDUSTRIAL 57 Apostila de Treinamento INV_DI: Inverte número Duplo Inteiro Simbologia A instrução INV_DI lê o conteúdo do parâmetro IN e executa uma função booleana XOR com a máscara hexadecimal W#16#FFFF FFFF. Deste modo, o valor de cada bit é invertido. O resultado é obtido no parâmetro OUT. O parâmetro ENO sempre terá o mesmo estado de sinal do parâmetro EN. Exemplos: LAD FBD A conversão é executada se o estado de sinal da entrada I0.0 é “1”. O valor para todos os bits de MD8 é invertido: MD8 = F0FF FFF0 resulta em -> MD12 = 0F00 000F. A conversão é executada se o estado de sinal da entrada I0.0 é “1”. O valor para todos os bits de MD8 é invertido: MD8 = F0FF FFF0 resulta em -> MD12 = 0F00 000F. CONJUNTO DIDÁTICO DE AUTOMAÇÃO INDUSTRIAL 58 Apostila de Treinamento NEG_I: Nega número Inteiro Simbologia A instrução NEG_I lê o conteúdo do parâmetro IN e executa a instrução de dois complementos. A instrução de dois complementos é equivalente à multiplicação por (-1) e muda o sinal (por exemplo: a partir de um valor positivo para um negativo). O resultado é obtido no parâmetro OUT. O parâmetro ENO sempre terá o mesmo estado de sinal do parâmetro EN com a seguinte exceção: se o estado de sinal de EN = 1 e ocorrer um “overflow”, o estado de sinal de ENO será = 0. Exemplos: LAD FBD A conversão é executada se o estado de sinal da entrada I0.0 é “1”. O valor da memória MW8 é enviado á saída em MW10 com o sinal contrário: MW8 = +10 resulta em MW10 = -10. A conversão é executada se o estado de sinal da entrada I0.0 é “1”. O valor da memória MW8 é enviado á saída em MW10 com o sinal contrário: MW8 = +10 resulta em MW10 = -10. CONJUNTO DIDÁTICO DE AUTOMAÇÃO INDUSTRIAL 59 Apostila de Treinamento NEG_DI: Nega número Duplo Inteiro Simbologia A instrução NEG_DI lê o conteúdo do parâmetro IN e executa a instrução de dois complementos. A instrução de dois complementos é equivalente à multiplicação por (-1) e muda o sinal (por exemplo: a partir de um valor positivo para um negativo). O resultado é obtido no parâmetro OUT. O parâmetro ENO sempre terá o mesmo estado de sinal do parâmetro EN com a seguinte exceção: se o estado de sinal de EN = 1 e ocorrer um “overflow”, o estado de sinal de ENO será = 0. Exemplos: LAD FBD A conversão é executada se o estado de sinal da entrada I0.0 é “1”. O valor da memória MD8 é enviado á saída em MD12 com o sinal contrário: MD8 = +1000 resulta em MD12 = -1000. A conversão é executada se o estado de sinal da entrada I0.0 é “1”. O valor da memória MD8 é enviado á saída em MD12 com o sinal contrário: MD8 = +1000 resulta em MD12 = -1000. CONJUNTO DIDÁTICO DE AUTOMAÇÃO INDUSTRIAL 60 Apostila de Treinamento NEG_R: Nega número Real Simbologia A instrução NEG_R lê o conteúdo do parâmetro IN e muda o sinal. A instrução é equivalente à multiplicação por (-1), (por exemplo: a partir de um valor positivo para um negativo). O resultado é obtido no parâmetro OUT. O parâmetro ENO sempre terá o mesmo estado de sinal do parâmetro EN com a seguinte exceção: se o estado de sinal de EN = 1 e ocorrer um “overflow”, o estado de sinal de ENO será = 0. Exemplos: LAD FBD A conversão é executada se o estado de sinal da entrada I0.0 é “1”. O valor da memória MD8 é enviado á saída em MD12 com o sinal contrário: MD8 = +6.234 resulta em MD12 = -6.234.A conversão é executada se o estado de sinal da entrada I0.0 é “1”. O valor da memória MD8 é enviado á saída em MD12 com o sinal contrário: MD8 = +6.234 resulta em MD12 = -6.234. CONJUNTO DIDÁTICO DE AUTOMAÇÃO INDUSTRIAL 61 Apostila de Treinamento 5.2. Instruções de Controle de Lógica Instruções de salto Você pode usar esta instrução em todos os blocos lógicos, por exemplo, em blocos de organização (OB’s), blocos de função (FB’s) e função (FC’s). As seguintes instruções de salto estão disponíveis: • JMP Salto Incondicional em um bloco • JMP Salto Condicional em um bloco • JMPN Salto-se-não O endereço de uma instrução de salto é um label. O label indica o destino para o qual você deseja que o programa salte. Você entra com o label acima da caixa JMP. Um label é composto por um máximo de quatro caracteres. O primeiro caractere deve ser uma letra; os outros caracteres podem ser letras ou números (por exmplo, SEG3). O label de destino deve ser no início de uma network. Quando inserido, uma caixa vazia aparece. Na caixa, digite o nome do label. Figura 5.1 – Exemplo de JMP e Label CONJUNTO DIDÁTICO DE AUTOMAÇÃO INDUSTRIAL 62 Apostila de Treinamento JMP: Salto incondicional em um bloco Simbologia A instrução salto incondicional de um bloco corresponde a uma instrução “Vai para [...]”. Nenhuma das instruções de operação entre o salto e o label é executada. Não deve haver qualquer operação lógica antes do salto incondicional. Exemplos: LAD FBD O salto é sempre executado. Nenhuma das instruções entre a instrução de salto e o label é executada. CONJUNTO DIDÁTICO DE AUTOMAÇÃO INDUSTRIAL 63 Apostila de Treinamento JMP: Salto condicional em um bloco Simbologia A instrução salto condicional de um bloco corresponde a uma instrução “Vai para [...]” se a RLO possui nível lógico “1”. O elemento “Salto Incondicional” também é usado para esta operação, no entanto, é condicionado pela operação lógica anterior. O salto condicional só é executado quando o resultado da operação lógica é “1”. Nenhuma das instruções de operação entre o salto e o label é executada. Exemplos: LAD FBD Se o estado de sinal da entrada I0.0 é “1”, o salto para o label CAS1 é executado. A instrução para resetar a saída Q4.0 não é executada, mesmo se o estado de sinal da entrada I0.3 é “1”. CONJUNTO DIDÁTICO DE AUTOMAÇÃO INDUSTRIAL 64 Apostila de Treinamento JMP: Salto condicional em um bloco Simbologia A instrução salto condicional de um bloco corresponde a uma instrução “Vai para [...]” se a RLO possui nível lógico “1”. O elemento “Salto Incondicional” também é usado para esta operação, no entanto, é condicionado pela operação lógica anterior. O salto condicional só é executado quando o resultado da operação lógica é “1”. Nenhuma das instruções de operação entre o salto e o label é executada. Exemplos: LAD FBD Se o estado de sinal da entrada I0.0 é “1”, o salto para o label CAS1 é executado. A instrução para resetar a saída Q4.0 não é executada, mesmo se o estado de sinal da entrada I0.3 é “1”. CONJUNTO DIDÁTICO DE AUTOMAÇÃO INDUSTRIAL 65 Apostila de Treinamento JMPN: Salto-se-não Simbologia A instrução Salto-se-não corresponde a uma instrução “Vai para [...]” se a RLO possui nível lógico “0”. Nenhuma das instruções de operação entre o salto e o label é executada. Exemplos: LAD FBD Se o estado de sinal da entrada I0.0 é “0”, o salto para o label CAS1 é executado. A instrução para resetar a saída Q4.0 não é executada, mesmo se o estado de sinal da entrada I0.3 é “1”. CONJUNTO DIDÁTICO DE AUTOMAÇÃO INDUSTRIAL 66 Apostila de Treinamento 5.3. Instruções de Controle de Programa As seguintes instruções de controle de programa estão disponíveis: • CALL: Chama um FC/SFC sem parâmetros • CALL_FB: Chama FB como bloco • CALL_FC: Chama FC como bloco • CALL_SFB: Chama FB de sistema como bloco • CALL_SFC Chama FC de sistema como bloco CALL: Chama um FC/SFC sem parâmetros Simbologia A instrução CALL é usada para chamar uma função (FC) ou função de sistema (SFC) que não tem parâmetros passados. Uma chamada só é executada se a RLO é “1”. Exemplos: LAD FBD CONJUNTO DIDÁTICO DE AUTOMAÇÃO INDUSTRIAL 67 Apostila de Treinamento CALL_FB: Chama FB como bloco Simbologia A instrução CALL_FB é executada quando o estado de sinal em EN é “1”. Se a instrução CALL_FB é executada: • O endereço de retorno do bloco de chamada é armazenado, • Os dados selecionados para os dois blocos de dados atuais (DB e DB instanciado) são armazenados, • A área de dados local anterior passa a ter o valor da área de dados local atual, • O bit MA (bit MCR ativo) é deslocado para a pilha B, • Uma nova área de dados local para o bloco de função chamado é criada. Exemplos: LAD FBD CALL_FC: Chama FC como bloco Simbologia CONJUNTO DIDÁTICO DE AUTOMAÇÃO INDUSTRIAL 68 Apostila de Treinamento A instrução CALL_FC é executada quando o estado de sinal em EN é “1”. Se a instrução CALL_FC é executada: • O endereço de retorno do bloco de chamada é salvo, • Uma nova área de dados local para a função chamada é criada, • O bit MA (bit MCR ativo) é movido para a pilha B, Exemplos: LAD FBD CALL_SFB: Chama FB de sistema como bloco Simbologia A instrução CALL_SFB é executada quando o estado de sinal em EN é “1”. Se a instrução CALL_FB é executada: • O endereço de retorno do bloco de chamada é armazenado, • Os dados selecionados para os dois blocos de dados atuais (DB e DB instanciado) são armazenados, • Uma nova área de dados local para o bloco de função de sistema chamado é criada, • O bit MA (bit MCR ativo) é deslocado para a pilha B.
Compartilhar