Linguagem Ladder
Blocks no programa do usuário
Programação Linear e Estruturada
Programação Linear
Soluções para pequenas automation tasks podem ser programadas linearmente em um program cycle OB (Organization Block executado ciclicamente). Isto só é recomendado para pequenos programas. A figura abaixo mostra o esquema de um programa linear: O program cycle OB “Main1” contém o programa do usuário completo.
Programação Estruturada
Complexas automation tasks podem ser mais facilmente controladas e gerenciadas dividindo-as em pequenas sub-tasks que correspondem a funções tecnológicas de processos ou que possam ser reutilizadas. Estas sub-tasks são representadas no programa do usuário por blocos (blocks). Cada bloco é, então, uma seção (section) independente no programa do usuário.
Estruturar o programa oferece as seguintes vantagens:
• Programas extensos são mais fáceis de programar utilizando uma estrutura.
• Individual program sections podem ser padronizadas e usadas repetidamente com alteração de parâmetros.
• A organização do programa é simplificada.
• Debugging é simplificado uma vez que sections separadas podem ser testadas.
• Comissionamento é simplificado.
A figura abaixo mostra o esquema de um programa estruturado: O program cycle OB “Main1” chama sub-programas um após o outro para executar definidas subtasks.
Tipos de Blocos (Block Types)
Diferentes tipos de blocos são usados para executar tasks dentro de uma sistema de automação. Os tipos de blocos são:
Organization Blocks (OB)
Organization Blocks definem a estrutura do programa do usuário. Eles fazem a interface entre o sistema operacional e o programa do usuário. Eles são chamados pelo sistema operacional e controlam, por exemplo, as seguintes operações:
• Características de startup do sistema de automação
• Processamento cíclico do programa
• Execução de interrupção de programa
• Controle de erros
Vários tipos de Organization Blocks são permitidos dependendo da CPU.
Functions (FC)
Functions contém rotinas de programa para tasks repetidas. Elas não tem “memória”, pois não apresentam um memória de dados em que os parâmetros do bloco podem ser armazenados. Quando uma function é chamada, todos os parâmetros formais devem receber valores. Functions podem usar Global Data Blocks para armazenar dados permanentemente.
Function Blocks (FB)
Function Blocks são blocos de código que armazenam seus parâmetros de entrada, saída e entrada-saída permanentemente em Instance Data Blocks. Function Blocks também podem utilizar temporary tags. Temporary tags não são armazenados no Instance Data Block e são armazenados durante um únicio ciclo (scan).
Function Blocks contêm sub-rotinas que são sempre executadas quando um function block é chamado a partir de outro code block. Um Function Block pode ser chamado diversas vezes em diferentes pontos do programa.
Uma chamada de um function block é referida como uma instância. Um Instance Data Block é requerido para cada instância de um Function Block. O Instance Data Block contém a mesma estrutura dos parâmetros formais declarados no Function Block.
Instance Data Blocks
Instance Data Blocks são atribuídos a um Function Block quando este é chamado com o propósito de armazenar dados do programa.
Globa Data Blocks
Global Data Blocks são áreas de dados para armazenar dados que podem ser acessados por qualquer bloco. O tamanho máximo dos data blocks dependem da CPU. Existe a opção de usar PLC data types (UDT) como um template para criar Global Data Types.
Cada Function Block, Function ou Organization Block podem ler e escrever dados de/para um Global Data Block.
A imagem abaixo mostra os diferentes acessos a data blocks:
Chamadas de blocos (Block calls)
Para um bloco ser chamado no programa do usuário, ele necessita ser chamado de um outro bloco.
Quando um bloco chama outro bloco, as instruções do bloco chamado são executadas. Somente quando a execução do bloco chamado é terminada que a o bloco de chamada retoma sua execução. A execução é retomada na instrução seguinte à chamada do bloco.
A imagem abaixo mostra a sequencia de um chamada de bloco dentro do programa do usuário:
Projeto Reator
• Criar um novo bloco FC (function) VV_ONOFF. Executar Add new block em Project tree > Devices > PLC_1 > Program blocks.
• Selecionar Function (FC) e nomear bloco como VV_ONOFF. A linguagem de programação será Ladder (LAD). O número da function será determinado automaticamente. Clicar em OK.
• Nova function VV_ONOFF criada.
• Chamar function VV_ONOFF para ser executada em Main[OB1]. Abrir Main.
Programando Blocos
O Program Editor é um ambiente de desenvolvimento integrado para programar functions, functions blocks e organization blocks.
Estrutura do Program Editor
1 – Toolbar
A Toolbar permite acessar as principais funções do program editor, tais como:
• Mostrar e esconder operandos
• Mostrar e esconder favoritos
• Pular para erros de sintaxe
• Atualizar block calls
• Mostrar e esconder program status
As funções apresentadas na Toolbar podem variar de acordo com a linguagem de programação usada.
2 – Block interface
A block interface contém as declarações para local tags usadas somente dentro do bloco. Esta seção é apresentada dependendo do tipo de bloco.
3 – Painel “Favorites” na “Instructions” task card e favorites no Program Editor
É possível salvar instruções frequentemente usadas como favoritas. Os favoritos são então mostrados na “Instructions” task card e no “Favorites” pane.
4 – Programming window
A Programming window é a área de trabalho do program editor. O código do programa é inserido nesta janela.
5 – “Instructions” task card
A “Instructions” task card permite acessar facilmente todas as instruções para criação do programa. As instruções são divididas por área em um certo número de palhetas.
6 – “Testing” task card
A “Testing” task card é usada para comissionamento usando os status do programa. As funções de “Testing” task card são permitidas no modo online.
Projeto Reator
• Inserir Empty box na Network 1 (duplo clique sobre o Empty box na caixa de ferramenta ou arrastando e soltando).
• Selecionar VV_ONOFF como função/instrução da Empty box (abrir lista e selecionar).
• Criar lógica de programação para válvula on-off V112.
A lógica deve controlar o sinal de abertura/fechamento da válvula e monitorar os sinais de retorno de válvula aberta ou válvula fechada. O comando poderá ser feito manualmente pelo operador ou automaticamente por exigência do processo.
• Criar variáveis:
AF_V112 | BOOL | %M0.0 | Botão operador abre/fecha válvula V112 |
ALM_V112 | BOOL | %M0.1 | Alarme válvula V112 |
AM_V112 | BOOL | %M0.2 | Auto/Manual válvula V112 |
CA_V112 | BOOL | %M0.3 | Comando automático válvula V112 |
Lógica
Network 1
Comando para abrir V112 (move 1 para a saída Q). A válvula abre em duas condições:
• quando em manual (AM_V112 = 0) e o botão do operador recebe o comando abrir (AF_V112 = 1).
• quando em automático (AM_V112 = 1) e o comando em automático manda abrir (CA_V112 = 1).
Network 2
Comando para fechar V112 (move 0 para a saída Q). A válvula fecha em duas condições:
• quando em manual (AM_V112 = 0) e o botão do operador recebe o comando fechar (AF_V112 = 0).
• quando em automático (AM_V112 = 1) e o comando em automático manda fechar (CA_V112 = 0).
Network 3
Comando para mudar status do botão de comando manual operador para aberto quando V112 abre em automático. Essa instrução garante que a válvula permanece com comando para abrir, assim que houver uma mudança do modo de operação de automático para manual.
Network 4
Comando para mudar status do botão de comando manual operador para fechado quando V112 fecha em automático. Essa instrução garante que a válvula permanece com comando para fechar, assim que houver uma mudança do modo de operação de automático para manual.
Network 5
Ativação de alarme de V112 (ALM_V112 = 1). O alarme é ativado depois de transcorridos 5 segundos apósao menos uma das seguintes condições:
• Comando de válvula em abrir (V112 = 1) e com sensor de retorno de status de válvula fechada ativado (V112_C = 1) – indicação de que a válvula não abriu;
• Comando de válvula em fechar (V112 = 0) e com sensor de retorno de status de válvula aberta ativado (V112_O = 1)- indicação de que a válvula não fechou;
• Ambos os sensores de retorno de status de válvula ativados (V112_C = 1 e V112_O = 1);
• Ambos os sensores de retorno de status de válvula desativados (V112_C = 0 e V112_O = 0).
Quando nenhuma das condições é verdadeira, imediatamente o alarme é desativado.
• Selecionar TON em Instructions > Basic instructions. Definir nome do Data block de TON como DB_TON_VVONOFF. Clicar em OK.
Próximo
Usuário não registrado. Compre o treinamento em jats.com.br.