Tests PLC Automatisés

PLC Test Harness
TDD pour l'Automatisme Industriel

Définissez des scénarios de test, exécutez-les contre PLCSim Advanced et obtenez des verdicts PASS/FAIL instantanés. Les tests unitaires pour la logique PLC — comme les développeurs logiciels testent leur code.

Les Tests PLC Sont Encore Manuels

Chaque modification de code est un pari sans tests automatisés

Pas de Tests de Régression

Vous modifiez un bloc fonction et priez pour que rien d'autre ne casse. Sans tests automatisés, chaque changement risque d'introduire des bugs silencieux qui ne se révèlent que sur le terrain.

Vérification Manuelle

Tester signifie forcer manuellement des entrées sur l'automate ou PLCSim, observer les sorties changer et vérifier les valeurs à la main. Fastidieux, sujet aux erreurs et impossible à reproduire systématiquement.

Pas de Documentation de Test

Comment prouver que votre programme fonctionne correctement ? Les procédures de test existent dans des documents Word ou dans la tête d'un ingénieur. Pas de spécifications de test standardisées et exécutables qui voyagent avec le projet.

L'IA Ne Peut Pas Vérifier Son Propre Code

L'IA génère du code PLC, mais comment savoir s'il fonctionne ? Sans tests automatisés, le code généré par l'IA part en production sans vérification. Le Test Harness ferme la boucle.

Comment Fonctionne le PLC Test Harness

Un framework de test structuré pour la logique PLC, accessible via MCP, Copilot et API REST

Définir des Scénarios de Test

Chaque test est une séquence d'étapes : écrire les entrées, attendre que l'automate réagisse, puis vérifier que les sorties correspondent aux attentes. Les tests sont stockés en fichiers .test.json à côté du projet TIA Portal.

4 Types d'Assertions

Correspondance exacte pour booléens et entiers. Tolérance pour les valeurs flottantes (±0.1). Plage pour les vérifications min/max. Différent-de pour vérifier qu'une valeur a changé. Couvre tous les types de données PLC.

Setup & Teardown

Chaque test commence par une phase de setup (initialiser les tags à un état connu) et se termine par un teardown (remise à zéro des tags), même si le test échoue. État propre garanti.

Exécuter Un ou Tous

Exécutez un seul test par nom, passez-en un en ligne, ou utilisez le joker (*) pour lancer toute la suite de tests. Les résultats sont stockés dans last-results.json.

Traçabilité Complète

Chaque exécution produit un rapport détaillé : quelles étapes ont réussi, lesquelles ont échoué, valeurs attendues vs réelles, et horodatages. Exportez ou consultez les résultats à tout moment.

Cycle TDD Piloté par IA

Un LLM connecté peut écrire du code, créer des tests, compiler, télécharger dans PLCSim, exécuter les tests et corriger les erreurs — en totale autonomie. Red → Green → Refactor, pour l'automate.

Le Cycle TDD pour Automate

De la définition du test à la logique PLC validée

1

1. Écrire le Test

Définissez le comportement attendu : quand Start_Button est appuyé, Motor_Running doit être true sous 500ms. Créez le test avec plc_test_create.

2

2. Exécuter Contre PLCSim

Lancez le test avec plc_test_run. T-IA Connect écrit les entrées dans PLCSim, attend le délai spécifié, puis lit et vérifie les sorties. Verdict : PASS ou FAIL.

3

3. Corriger et Itérer

Si une étape échoue, vous voyez exactement ce qui a foiré : attendu Motor_Running = true, obtenu false. Corrigez le programme, recompilez, téléchargez et relancez le test.

4

4. Construire la Suite de Tests

Accumulez les tests au fil du développement. Lancez la suite complète après chaque changement pour détecter les régressions. Les tests voyagent avec le projet dans .tia-connect/tests/.

Types d'Assertions en Détail

Couvrir chaque type de donnée PLC avec la bonne comparaison

Correspondance Exacte

Pour les booléens et entiers. Motor_Running doit être exactement true. Counter doit être exactement 5. Aucune marge d'erreur.

Tolérance (±)

Pour les valeurs REAL et LREAL. Speed doit être 50.0 ± 0.1. Prend en compte la précision flottante et le bruit des mesures analogiques.

Plage (min/max)

La valeur doit se situer dans une plage définie. Temperature entre 10.0 et 100.0. Parfait pour les entrées analogiques et les valeurs process.

Différent De

Vérifier qu'une valeur a changé par rapport à son état initial. Counter ne doit pas être égal à 0 — confirmant que la logique de comptage s'est bien exécutée.

5 Outils sur 3 Canaux

Disponibles via MCP, Copilot (assistant intégré) et API REST

plc_test_create

Sauvegarder une définition de test avec setup, étapes (entrées → délai → assertions) et teardown. Stocké en fichier .test.json dans .tia-connect/tests/.

plc_test_run

Exécuter un test par nom, en passer un en ligne, ou utiliser * pour tout lancer. Asynchrone via REST (retourne un jobId). Résultats dans last-results.json.

plc_test_list

Lister tous les tests sauvegardés avec leurs noms et descriptions. Vue d'ensemble rapide de la couverture de test du projet.

plc_test_delete

Supprimer un test par nom. Nettoyez les tests obsolètes au fil de l'évolution du projet.

plc_test_get_results

Récupérer les derniers résultats : statut PASS/FAIL par étape, valeurs attendues vs réelles, temps d'exécution et verdict global.

Questions Fréquentes

Cela nécessite-t-il PLCSim Advanced ?

Oui. Le Test Harness écrit les entrées et lit les sorties via l'interface de simulation de PLCSim Advanced. Il ne fonctionne pas avec des automates réels (ce serait dangereux pour des tests automatisés). PLCSim Advanced fournit un environnement sûr et reproductible.

Une IA peut-elle créer et exécuter des tests de façon autonome ?

Tout à fait. Un LLM connecté (via MCP ou Copilot) peut écrire du code PLC, créer un test avec plc_test_create, compiler et télécharger dans PLCSim, exécuter le test, vérifier les résultats et corriger le code si nécessaire. Cycle TDD complet sans intervention humaine.

Où sont stockés les tests ?

Dans le dossier .tia-connect/tests/ à côté de votre projet TIA Portal. Chaque test est un fichier .test.json. Les résultats sont dans last-results.json. Les tests voyagent avec le projet — archivez le projet, archivez les tests.

Combien de temps dure l'exécution d'un test ?

Cela dépend des délais définis dans vos étapes de test (le temps laissé à l'automate pour réagir). Un test typique avec 3-5 étapes et des délais de 200-500ms s'exécute en 1-3 secondes. Une suite complète de 20 tests prend généralement moins d'une minute.

Testez Votre Code PLC Comme du Logiciel

Tests automatisés, détection de régressions et TDD — tout ce que les développeurs logiciels tiennent pour acquis, maintenant pour les programmes PLC TIA Portal.