O objetivo deste tutorial é explicar como criar subrotinas do tipo bloco de função em um projeto do MasterTool X.
Componentes
Equipamentos: 1 computador/notebook.
Software: MasterTool X
Seções do Tutorial
- ARQUITETURA
- DESENVOLVIMENTO
1. ARQUITETURA
Será necessário a utilização de um computador/notebook para utilizar o Mastertool X.
Figura 1. Computador executando o Mastertool X
2. DESENVOLVIMENTO
Diferente de uma subrotina (programa), um Bloco Funcional (FB – Function Block) possui estado interno e exige a criação de uma variável de instância para funcionar corretamente, da mesma forma que ocorre com temporizadores e contadores.
Esse recurso é ideal quando se deseja reutilizar a mesma lógica várias vezes, mantendo estados independentes.
Diferença principal entre Subrotina e Bloco Funcional
| Subrotina (Programa) | Bloco Funcional |
| Não precisa de variável de instância | Exige variável de instância |
| Não mantém estado interno | Mantém estado interno |
| Executa sempre que chamada | Executa por instância |
| Uso único por chamada | Pode ter múltiplas instâncias |
Criação do Bloco Funcional
Para criar um bloco funcional:
- Clique com o botão direito do mouse.
- Selecione Adicionar Objeto.
- Escolha POU.
- No campo Tipo, selecione Bloco Funcional.
- Defina um nome para o bloco funcional.
- Escolha a linguagem de implementação como LD – Ladder Diagram.
- Confirme a criação.
Após isso, o Bloco Funcional será aberto para edição.
Figura 2. Criação um POU do tipo Bloco de Função
Desenvolvimento da lógica no Bloco Funcional
Dentro do Bloco Funcional:
- Desenvolva a lógica desejada (ex.: contatos, bobinas, comparações, etc.)
- Declare as variáveis de entrada (VAR_INPUT), saída (VAR_OUTPUT) e, se necessário, internas (VAR)
O bloco não executa sozinho — ele precisa ser instanciado e chamado.
Figura 3. Criação da lógica do bloco de função
Chamada do Bloco Funcional na lógica
Para utilizar o Bloco Funcional:
- Abra o UserPrg ou outra POU.
- Crie uma nova rede.
- Insira uma Caixa Vazia com EN/ENO.
- Clique dentro da caixa.
- Digite o nome do Bloco Funcional.
Diferente da subrotina, apenas chamar o nome não é suficiente.
Criação da variável de instância (obrigatória)
Para que o Bloco Funcional funcione corretamente, é necessário criar uma variável de instância, semelhante ao que ocorre com TON, TOF, CTU, CTD, etc.
Exemplo:
fb_controle : FB_Controle;Essa variável:
- Armazena o estado interno do bloco
- Deve ser associada à chamada do bloco na lógica
Uso de múltiplas instâncias do mesmo bloco
Uma grande vantagem do Bloco Funcional é a possibilidade de usar o mesmo bloco várias vezes no mesmo projeto:
Exemplo:
fb_motor1 : FB_Controle; fb_motor2 : FB_Controle;
Cada variável representa uma instância independente, com estados próprios, mesmo utilizando o mesmo código.
Isso é exatamente o mesmo conceito aplicado a temporizadores e contadores.
Figura 4. Chamada do bloco de função via UserPrg
Finalização e teste
Após configurar:
- Faça o download da aplicação.
- Coloque a CPU em modo RUN.
- Teste cada instância separadamente.
- Observe que cada bloco responde de forma independente.
O uso de Blocos Funcionais é essencial para criar lógicas reutilizáveis, organizadas e escaláveis, sendo uma das práticas mais importantes em programação Ladder profissional.
Figura 5. Funcionamento da Subrotina
Comentários
0 comentário
Por favor, entre para comentar.