Programando Blocos
Tipos de dados dos PLC tags
Endereçamento dos tipos de dados
Tipo de Dado
BOOL – tags com tipo de dado BOOL são endereçados com um byte number e um bit number. A numeração dos bytes começa em cada área de operandos a partir do 0. A numeração dos bits vai de 0 a 7. Exemplo: M 1.0.
BYTE, CHAR, SINT, USINT – tags com tipo de dado BYTE, CHAR, SINT ou USINT são endereçados com um byte number. Exemplo: MB 1.
WORD, INT, UINT, DATE, S5TIME – tags com tipo de dado WORD, INT, UINT, DATE ou S5TIME consistem de dois bytes. Eles são endereçados com o número do byte mais baixo. Exemplo: IW 1.
DWORD, DINT, UDINT, REAL, TIME – tags com tipo de dado DWORD, DINT, UDINT, REAL ou TIME consistem de quatro bytes. Eles são endereçados com o número do byte mais baixo. Exemplo: MD 1.
LWORD, LINT, ULINT, LTIME, LTOD, LDT, LREAL– tags com tipo de dado LWORD, LINT, ULINT, LTIME, LTOD, LDT ou LREAL consistem de oito bytes. Eles são endereçados com o número do byte mais baixo. Exemplo: IL 1.0.
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 subprogramas 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 único 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 uma chamada de bloco dentro do programa do usuário:
Program Editor
O Program Editor é um ambiente de desenvolvimento integrado para programar functions, functions blocks e organization blocks.
Estrutura do Program Editor