O tempo de ciclo da tarefa é um dos valores práticos que os engenheiros podem usar para entender como uma aplicação do controlador programável se comporta durante a execução. Se uma tarefa leva mais tempo do que o esperado, isso pode afetar o tempo de processo, a sincronização, a resolução de problemas e a estabilidade do sistema.

CODESYS é um ambiente de desenvolvimento para programação de aplicações do controlador programável conforme a norma IEC 61131-3. É usado em sistemas de automação e controle onde as tarefas precisam ser executadas de forma confiável dentro de condições de tempo definidas.

Nos projetos CODESYS, monitorar o tempo de ciclo real da tarefa pode ajudar os engenheiros a otimizar o desempenho, identificar gargalos e detectar comportamentos temporais que podem afetar a sequência da máquina. Isso é especialmente importante quando tarefas de controle, de comunicação ou funções relacionadas ao movimento precisam permanecer nos limites de uma janela de tempo específica.

Este tutorial mostra duas maneiras de medir o tempo de ciclo real da tarefa no CODESYS:

  • Usando a função TIME() integrada
  • Usando a biblioteca CmpIecTask

Ambos os métodos podem ser úteis. A escolha certa depende da precisão necessária e da profundidade com que você deseja analisar o comportamento da tarefa.

O tempo de ciclo da tarefa indica quanto tempo uma tarefa ou operação específica leva para ser executada em um sistema de controle. Em uma aplicação de controlador programável, este valor ajuda a entender se o código está sendo executado dentro do intervalo de tempo esperado.

O monitoramento do tempo de ciclo da tarefa pode oferecer suporte a várias tarefas de engenharia:

  • Verificar se uma tarefa se mantém dentro do tempo de ciclo configurado
  • Identificar seções do código que aumentam o tempo de execução
  • Detectar variações inesperadas de tempo
  • Suporte à resolução de problemas durante o comissionamento
  • Melhorar a sincronização do processo
  • Ajudar a estabilizar o comportamento do controlador programável

Um tempo de ciclo estável da tarefa não resolve todos os problemas de controle, mas oferece aos engenheiros um ponto de partida útil. Se o tempo de ciclo real for maior do que o esperado ou variar muito, a aplicação pode precisar de uma análise mais detalhada.

No CODESYS, uma tarefa define quando e como um programa ou função é executada. O tempo de ciclo da tarefa é o tempo necessário para concluir essa execução.

Por exemplo, uma tarefa cíclica pode ser configurada para ser executada a cada poucos milissegundos. Se o código executado na tarefa demorar demais, o controlador programável poderá não concluir a tarefa dentro da janela de tempo prevista. Isso pode afetar o desempenho, a sincronização do processo ou o comportamento de movimento.

A medição do tempo de ciclo da tarefa pode ser desafiador porque o valor real pode ser influenciado por vários fatores:

  • Carga do sistema
  • Latência de rede
  • Desempenho do hardware
  • Configuração de tarefas
  • Arquitetura de software
  • Comportamento de comunicação
  • A quantidade e a estrutura do código exceutado pela tarefa

É por isso que o método de medição é importante. Um método simples de medição do tempo pode ser suficiente para verificações básicas. Um método mais preciso pode ser necessário quando se requer uma medição na escala de microssegundos ou informações específicas da tarefa.

Uma maneira simples de medir o tempo decorrido no CODESYS é usar a função integrada TIME().

A lógica básica é simples:
1. Registrar o instante inicial antes da execução da seção de código
2. Executar o código que você deseja medir
3. Registrar o instante final após a execução da seção de código
4. Subtrair o instante inicial do instante final
5. Usar o resultado como o tempo decorrido medido

No exemplo, dois loops FOR são usados para simular uma tarefa demorada. A função TIME() registra o tempo antes e depois da seção de loop, e a diferença entre esses valores fornece uma estimativa do tempo de execução da tarefa.

Esse método pode ser útil quando você deseja uma indicação rápida de quanto tempo uma seção de código leva.

O exemplo mostra um tempo de ciclo de tarefa medido que geralmente varia de 6 a 8 milissegundos. Um rastreamento pode ser adicionado para monitorar a variável medida ao longo do tempo. No exemplo, o tempo de ciclo salta ocasionalmente para 10 milissegundos.

Essa variação é importante. Se uma tarefa de movimento suave estiver configurada com um tempo de ciclo de 4 milissegundos ou menos, exceder o tempo de ciclo configurado pode causar exceções. Isso torna o tempo de execução das tarefas especialmente relevante para aplicações com requisitos rigorosos de movimento ou sincronização.

A função TIME() é útil por ser simples. Ela requer pouco código, é fácil de entender e pode ser adicionada rapidamente a um projeto existente.

Pode ser uma boa opção quando:

  • Você precisa de uma verificação rápida do tempo
  • A resolução em milissegundos é suficiente
  • Você quer medir uma seção de código específica
  • A aplicação não requer dados de temporização de alta precisão

No entanto, a função TIME() também tem limites. Ela fornece valores com resolução em escala de milissegundos. Isso pode não ser preciso o suficiente para aplicações que exigem uma análise em escala de microssegundos.

Esse método também requer um rastreamento de tempo manual. Você precisa definir onde a medição começa, onde termina e como o tempo decorrido é calculado. Isso é aceitável para verificações simples, mas pode ser menos conveniente quando você precisa de informações específicas de execução de tarefas em um programa maior.

Para uma medição mais precisa do tempo de ciclo de tarefa, a biblioteca CmpIecTask é geralmente a melhor opção.

A biblioteca CmpIecTask está incluída no CODESYS. Essa biblioteca oferece funções para acessar informações do IEC Task Manager.

Após a adição da biblioteca a um projeto CODESYS, a inicialização requer apenas uma pequena quantidade de código. Após a inicialização, o programa pode acessar uma estrutura com informações detalhadas da tarefa, incluindo valores como o tempo real do ciclo da tarefa e o tempo médio do ciclo.

Essa abordagem é mais específica para a tarefa do que a medição manual do tempo antes e depois de uma seção de código. Em vez de criar sua própria lógica de temporização, você utiliza as informações da tarefa fornecidas pela biblioteca.

No exemplo original, a mesma carga de trabalho simulada é utilizada para permitir a comparação entre os métodos de medição. A diferença é que a biblioteca CmpIecTask gerencia as informações do tempo de ciclo da tarefa de forma mais direta.

A biblioteca CmpIecTask oferece várias vantagens quando você precisa medir com mais precisão o tempo de execução das tarefas.

Primeiro, ela pode ser instalada de forma flexível em diferentes partes do programa. Isso facilita o acesso às informações da tarefa sem inserir manualmente medições de início e fim em cada seção de código.

Em segundo lugar, a biblioteca gerencia o registro e o cálculo das informações de tempo de ciclo da tarefa. Isso reduz o esforço manual e diminui o risco de erros na lógica de medição.

Terceiro, a biblioteca fornece valores com resolução em escala de microssegundos. Isso é mais preciso do que os valores obtidos com a função TIME() e pode ser importante para aplicações com requisitos de temporização mais rigorosos.

A principal desvantagem é que a biblioteca tem de ser adicionada ao projeto CODESYS. No entanto, em muitas aplicações, é um pequeno preço a pagar diante da precisão adicional e das informações específicas da tarefa que ela fornece.

Ambos os métodos podem ajudar você a entender a temporização das tarefas, mas não são igualmente adequados para todas as situações.

Use a função TIME() quando você precisar de uma verificação simples e rápida, e uma resolução em escala de milissegundos for suficiente. É fácil de implementar e útil para comparações temporais básicas.

Use a biblioteca CmpIecTask quando você precisar de informações mais precisas da tarefa, quiser evitar a lógica de temporização manual ou necessitar de uma resolução em escala de microssegundos para análise de desempenho.

Para tarefas de movimento e de sincronização ou aplicações de controlador programável com requisitos de tempo mais rigorosos, a biblioteca CmpIecTask é geralmente a melhor escolha.

A temporização de tarefas do CODESYS é especialmente relevante quando o desempenho do controlador programável, o comportamento do movimento ou a sincronização da máquina devem ser avaliados durante o comissionamento ou solução de problemas.

No ambiente de software da Festo, o CODESYS pode fazer parte de um fluxo de trabalho mais amplo de engenharia e controle. Os controles Festo AX oferecem suporte ao controle determinístico em tempo real na programação padrão conforme a IEC 61131-3, incluindo CODESYS, e também suportam linguagens de alto nível como C/C++, C# e Python.

O Festo Automation Suite oferece suporte para comissionamento, programação e diagnóstico. Ele pode transferir dispositivos AX Controls como CEPE da topologia para o ambiente de programação CODESYS sem etapas adicionais de configuração, permitindo que os usuários continuem diretamente com a sequência da máquina.

Utilize este tutorial como um método CODESYS prático para verificar o tempo de execução da tarefa. Em seguida, continue com o software da Festo, licenciamento ou recurso de aprendizagem que melhor se adapta ao seu próximo passo em engenharia.

  • O tempo de ciclo da tarefa indica quanto tempo uma tarefa ou operação específica leva para ser executada em um sistema de controle
  • O monitoramento do tempo de ciclo da tarefa ajuda os engenheiros a otimizar o desempenho, detectar gargalos e melhorar a estabilidade do sistema
  • A função TIME() é fácil de usar e rapidamente implementada, mas oferece resolução na escala de milissegundos
  • A biblioteca CmpIecTask oferece informações específicas de tarefas e resolução na escala de microssegundos
  • Use a função TIME() para verificações simples e a biblioteca CmpIecTask para análises mais precisas do tempo de ciclo
  • Controle de movimento rigoroso ou tarefas de sincronização frequentemente exigem uma consideração mais cuidadosa do tempo real da tarefa
  • Os recursos de software e o suporte da Festo podem ajudar os usuários a passar da solução de problemas em CODESYS para o comissionamento, licenciamento e implementação de controle de borda