Instruções TIA Portal

Controlo do Programa
Fluxo & Execução

Domine o fluxo lógico do seu programa. Desde saltos condicionais até ferramentas de diagnóstico em tempo real, otimize a estrutura de execução do seu autómato.

O que são as operações de controlo no TIA Portal?

As operações de controlo do programa permitem modificar a ordem sequencial de execução dos segmentos. São utilizadas para ignorar partes do código (Saltos), criar ramificações complexas (Distribuidores) ou gerir o comportamento interno do CPU (Paragem, Watchdog, Medição de tempo).

Estas instruções são potentes mas devem ser utilizadas com precaução, nomeadamente a instrução WAIT que bloqueia o ciclo, ou os saltos que podem tornar o programa difícil de depurar se forem excessivos. O TIA Portal oferece também ferramentas modernas para intercetar erros localmente em cada bloco.

Saltos e Fluxo

Instruções de desvio do programa

JMP / JMPN — Saltos condicionais

JMP

O que faz

JMP interrompe a execução sequencial e salta para uma etiqueta (LABEL) se o RLO estiver a 1. JMPN faz o mesmo se o RLO estiver a 0.

Quando usar

Ignorar uma secção de código que não deve ser executada num modo específico, ou criar loops simples em LAD/FBD.

Dicas Pro

O destino do salto (LABEL) deve estar dentro do mesmo bloco (FC ou FB).

Não utilize saltos para trás para criar loops sem condição de saída, pois corre o risco de ultrapassar o tempo de ciclo.

Em SCL, utilize as estruturas IF...THEN ou CASE...OF.

SWITCH — Distribuidor multicaso

SWITCH

O que faz

Compara um valor de entrada com vários valores alvo e salta para o segmento correspondente ao primeiro caso verificado. Equivalente gráfico do Switch/Case.

Quando usar

Gestão de estados máquina (Grafcet simples), seleção de modos de funcionamento ou encaminhamento de peças segundo um código tipo.

Dicas Pro

Mais limpo e legível do que uma série de comparadores == em série.

Utilize a entrada 'ELSE' para gerir o caso em que nenhum valor corresponde.

Ideal para estruturas de menus em HMI.

RET — Retorno

RET

O que faz

Força o fim da execução do bloco atual (FC/FB) e regressa ao bloco que o chamou.

Quando usar

Terminação antecipada de uma função se for detetado um erro no início do bloco, ou se uma condição de segurança não for cumprida.

Dicas Pro

Útil para otimizar o tempo de ciclo ao não processar o resto do código desnecessariamente.

Esteja atento: as saídas do bloco ainda não processadas manterão o seu último estado.

Em SCL, utilize a instrução RETURN;

Controlo do Runtime

Gestão do ciclo CPU e medições de desempenho

RUNTIME — Medir o tempo

RUNTIME

O que faz

Mede o tempo de execução de uma porção do programa ou do bloco inteiro em microssegundos (µs).

Quando usar

Otimização do código, diagnóstico de segmentos pesados ou cálculos de desempenho da máquina.

Dicas Pro

Chame o RUNTIME uma vez para inicializar a medição e uma segunda vez para obter o resultado.

Utilize le tipo de dados LReal para armazenar o resultado da medição.

Prático para verificar se um loop FOR complexo não se aproxima dos limites do watchdog.

WAIT — Temporização fixa

WAIT

O que faz

Suspende a execução do programa durante uma duração especificada em microssegundos. ATENCAO: ao contrario de um Temporizador, o WAIT bloqueia totalmente o ciclo do CPU.

Quando usar

Esperar alguns microssegundos para estabilizar um sinal eletrónico numa placa de E/S ultra-rápida.

Dicas Pro

Utilizar com extrema moderação. Um WAIT demasiado longo ativará um erro de Watchdog e parará o PLC.

Nunca utilizar para temporizações de processo (segundos/minutos); use os Temporizadores TON para isso.

Apenas disponível no S7-1500.

STP — Paragem do CPU

STP

O que faz

Força a passagem do CPU para o modo STOP.

Quando usar

Condição de erro fatal onde a máquina não deve mais ser pilotada, ou teste de diagnóstico.

Dicas Pro

A paragem é imediata. Será necessária uma intervenção manual (HMI ou seletor) para reiniciar.

Prefira a gestão de alarmes com modo seguro em vez da paragem brusca do CPU sempre que possível.

Útil em projetos de comissionamento para fazer um 'break' num ponto preciso.

Gestão de Erros

Interceção local de falhas de execução

GET_ERROR / GET_ERR_ID

O que fazem

Recuperam informações sobre o primeiro erro ocorrido dentro de um bloco (ex: acesso a um índice de array inexistente).

Quando usar

Tornar os seus blocos robustos intercetando erros de programação sem parar o PLC.

Dicas Pro

O GET_ERROR fornece uma estrutura detalhada, o GET_ERR_ID apenas devolve o número do erro.

Coloque estas instruções no final dos seus blocos críticos.

Permite criar um registo de erros personalizado.

Saltos vs Estruturas de controlo

Qual o método a usar para desviar o programa?

Você precisa de...Instrução recomendadaPorquê?
Salto simples em LadderJMPIgnorar um segmento
Escolha múltipla complexaSWITCH / CASEMais legível do que 10 JMPs
Medir duração internaRUNTIMEOtimização de desempenho
Paragem imediataSTPErro crítico de hardware
Espera muito curtaWAITEstabilização eletrónica
Diagnóstico localGET_ERROREvitar o STOP do CPU

Perguntas Frequentes

Qual é a diferença entre JMP e JMP_LIST?

O JMP é um salto único. O JMP_LIST permite definir uma lista de destinos. Com base num índice numérico, o programa salta para a 1ª, 2ª ou N-ésima etiqueta da lista.

A instrução WAIT é perigosa?

Sim, se for mal utilizada. Suspende a execução de TODO o programa do utilizador. Se a soma dos seus WAITs e do seu código exceder o tempo de watchdog (geralmente 150ms), o CPU passará a STOP.

Como medir o tempo de ciclo total do PLC?

Não precisa da instrução RUNTIME para isso. Pode ler a informação diretamente nas propriedades do CPU online ou utilizar as variáveis de sistema do OB1.

Onde colocar as etiquetas LABEL?

Os LABELs podem ser colocados no início de qualquer segmento. No LAD aparecem por cima do carril esquerdo. O nome deve ser único no bloco.

Automatize as suas estruturas de controlo

Descreva a sua lógica de salto e o T-IA Connect gerará os segmentos JMP e SWITCH otimizados para a sua aplicação.