PLC Test Harness
TDD para Automação Industrial
Defina cenários de teste, execute-os contra o PLCSim Advanced e obtenha vereditos PASS/FAIL instantâneos. Teste unitário para lógica de PLC — da mesma forma que os engenheiros de software testam seu código.
O Teste de PLC Ainda é Manual
Cada mudança de código é um risco sem testes automatizados
Sem Testes de Regressão
Você modifica um bloco de função e reza para que nada mais quebre. Sem testes automatizados, cada mudança corre o risco de introduzir bugs silenciosos que só aparecem no chão de fábrica.
Verificação Manual
Testar significa forçar manualmente as entradas no PLC ou PLCSim, observar as saídas mudarem e verificar os valores manualmente. Tedioso, propenso a erros e impossível de repetir consistentemente.
Sem Documentação de Teste
Como você prova que seu programa funciona corretamente? Os procedimentos de teste existem em documentos Word ou na cabeça de um engenheiro. Sem especificações de teste padronizadas e executáveis que acompanham o projeto.
A IA Não Pode Verificar Seu Próprio Código
A IA gera código de PLC, mas como você sabe que funciona? Sem testes automatizados, o código gerado pela IA vai sem testes para a produção. O Test Harness fecha o ciclo.
Como o PLC Test Harness Funciona
Um framework de teste estruturado para lógica de PLC, acessível via MCP, Copilot e REST API
Defina Cenários de Teste
Cada teste é uma sequência de etapas: definir entradas, esperar que o PLC reaja e verificar se as saídas correspondem às expectativas. Os testes são armazenados como arquivos .test.json junto ao seu projeto TIA Portal.
4 Tipos de Asserção
Correspondência exata para booleanos e inteiros. Tolerância para valores de ponto flutuante (±0.1). Intervalo para verificações de min/max. Diferente para verificar se um valor mudou. Abrange todos os tipos de dados do PLC.
Setup & Teardown
Cada teste começa com uma fase de setup (inicializar tags para um estado conhecido) e termina com o teardown (resetar tags para zero), mesmo que o teste falhe. Estado limpo garantido.
Execute Um ou Execute Todos
Execute um único teste pelo nome, passe um teste inline ou use o curinga (*) para executar todo o conjunto de testes. Os resultados são armazenados em last-results.json para revisão.
Trilha de Auditoria Completa
Cada execução de teste produz um relatório detalhado: quais etapas passaram, quais falharam, valores esperados vs reais e timestamps de execução. Exporte ou consulte os resultados a qualquer momento.
Ciclo TDD Impulsionado por IA
Um LLM conectado pode escrever código, criar testes, compilar, descarregar no PLCSim, executar testes e corrigir falhas — tudo de forma autônoma. Red → Green → Refactor, para PLC.
O Ciclo TDD para PLC
Da definição do teste à lógica de PLC validada
1. Escreva o Teste
Defina o comportamento esperado: quando Start_Button for pressionado, Motor_Running deve ser true dentro de 500ms. Crie o teste com plc_test_create.
2. Execute Contra o PLCSim
Execute o teste com plc_test_run. O T-IA Connect escreve as entradas no PLCSim, aguarda o atraso especificado, depois lê e verifica as saídas. Veredito: PASS ou FAIL.
3. Corrija e Intere
Se uma etapa falhar, você vê exatamente o que deu errado: esperado Motor_Running = true, obteve false. Corrija o programa do PLC, recompile, descarregue e execute o teste novamente.
4. Construa Seu Conjunto de Testes
Acumule testes à medida que desenvolve. Execute o conjunto completo após cada mudança para detectar regressões. Os testes acompanham o projeto em .tia-connect/tests/.
Tipos de Asserção em Detalhe
Cobrindo todos os tipos de dados do PLC com a comparação correta
Correspondência Exata
Para booleanos e inteiros. Motor_Running deve ser exatamente true. O contador deve ser exatamente 5. Sem margem de erro.
Tolerância (±)
Para valores REAL e LREAL. A velocidade deve ser 50.0 ± 0.1. Considera a precisão de ponto flutuante e o ruído de medição analógica.
Intervalo (min/max)
O valor deve estar dentro de um intervalo definido. Temperatura entre 10.0 e 100.0. Perfeito para entradas analógicas e valores de processo.
Diferente
Verifique se um valor mudou do seu estado inicial. O contador não deve ser igual a 0 — confirmando que a lógica de contagem realmente funcionou.
5 Ferramentas em 3 Canais
Disponível via MCP, Copilot (assistente integrado) e REST API
plc_test_create
Salve uma definição de caso de teste com setup, etapas (entradas → atraso → asserções) e teardown. Armazenado como um arquivo .test.json em .tia-connect/tests/.
plc_test_run
Execute um teste pelo nome, passe um inline ou use * para executar todos os testes. Assíncrono via REST (retorna um jobId). Resultados salvos em last-results.json.
plc_test_list
Liste todos os casos de teste salvos com seus nomes e descrições. Visão geral rápida da cobertura de testes do seu projeto.
plc_test_delete
Remova um caso de teste pelo nome. Limpe testes obsoletos à medida que seu projeto evolui.
plc_test_get_results
Recupere os resultados da execução de teste mais recente: status PASS/FAIL por etapa, valores esperados vs reais, tempo de execução e veredito geral.
Perguntas Frequentes
Isso requer o PLCSim Advanced?
Sim. O Test Harness escreve entradas e lê saídas via interface de simulação do PLCSim Advanced. Não funciona com PLCs reais (isso seria perigoso para testes automatizados). O PLCSim Advanced fornece um ambiente seguro e repetível.
Uma IA pode criar e executar testes de forma autônoma?
Com certeza. Um LLM conectado (via MCP ou Copilot) pode escrever código de PLC, criar um teste com plc_test_create, compilar e descarregar no PLCSim, executar o teste, verificar os resultados e corrigir o código se ele falhar. Ciclo TDD completo sem intervenção humana.
Onde os testes são armazenados?
Na pasta .tia-connect/tests/ junto ao seu projeto TIA Portal. Cada teste é um arquivo .test.json. Os resultados estão em last-results.json. Os testes acompanham o projeto — arquive o projeto, arquive os testes.
Quanto tempo leva uma execução de teste?
Depende dos atrasos que você define nas etapas do teste (o tempo que você dá para o PLC reagir). Um teste típico com 3-5 etapas e atrasos de 200-500ms é executado em 1-3 segundos. Executar um conjunto completo de 20 testes normalmente leva menos de um minuto.