Unité 6 / 9

Automatisation industrielle et programmation d'automates

Gains :

  • Capacité à produire des structures de logique à relais et de texte structuré (ST) sous forme de brouillons avec l'IA
  • Possibilité de configurer des circuits de sécurité, des verrouillages et des machines d'état à l'aide de l'IA
  • Possibilité de vérifier la logique API générée par l'IA par rapport au mappage d'E/S et aux exigences de sécurité

Le nom de fiabilité dans le domaine de l'usine est PLC (Programmable Logic Controller). Convoyeurs, cellules robotisées, lignes de remplissage, presses ; le tout contrôlé par des automates. La programmation d'automates est un monde à part des logiciels de bureau : Ladder Logic (LD) est un langage visuel qui imite la logique de relais, tandis que Structured Text (ST) est un langage textuel de type Pascal ; les deux sont définis dans la norme CEI 61131-3. Dans cet environnement, le plus important n’est pas la fonctionnalité mais la sécurité ; car une erreur logique peut arrêter une presse au mauvais moment, mettant ainsi en danger un opérateur. L'IA aide à générer des ébauches d'échelle et ST, à construire des machines à états et à documenter la logique. Cependant, les circuits de sécurité, les verrouillages et la vérification finale relèvent de la responsabilité de l'ingénieur et ne peuvent être délégués à AI. Dans cette unité, nous expliquons comment construire et vérifier la logique API avec l'IA.

Logique de fonctionnement du PLC : Cycle de balayage

L'automate n'exécute pas simplement le code une seule fois et c'est fait ; Il effectue un cycle de numérisation continu. Dans chaque boucle : (1) lit toutes les entrées, (2) exécute la logique de haut en bas, (3) met à jour toutes les sorties. Ce cycle dure quelques millisecondes et se répète sans fin. Ce comportement a des conséquences critiques lors de l'écriture de la logique API :

  • Les sorties sont mises à jour à la fin de la boucle ; Si vous attribuez une valeur à une sortie à plusieurs endroits de la boucle, la dernière affectation l'emporte.
  • La logique fonctionne à partir de zéro à chaque cycle ; donc les variables de verrouillage ou d'état sont utilisées pour "se souvenir" de l'état.
  • Des événements rapides peuvent être manqués si la durée d'analyse est prolongée ; les événements critiques sont capturés par une interruption matérielle ou un compteur à grande vitesse.
Astuce : lors de l'écriture de la logique PLC dans l'IA, dites "prendre en compte le comportement de la boucle de scrutation, aucune affectation conflictuelle à la même sortie, utiliser le verrou/machine à états pour l'état". L’IA pense parfois comme une logique de bureau et ignore le comportement d’analyse.

Logique à relais et texte structuré

La même logique peut être écrite dans les deux langues. Un exemple simple : un moteur démarre lorsque le bouton de démarrage est enfoncé, s'arrête et s'auto-verrouille lorsque le bouton d'arrêt est enfoncé.

ÉCHELLE (affichage de texte) : Démarrer Arrêter le moteur --- | |------|/|-------------( )--- | Moteur |---| |------+ (Le contact du moteur se maintient -> scellé)Explication : Lorsque vous appuyez sur Démarrer, le moteur est sous tension ; Le moteur maintient le courant via son propre contact (scellé). Lorsque Stop (NC) est enfoncé, la chaîne est coupée.

(* Même logique que TEXTE STRUCTURÉ *)IF Start AND NOT Stop THEN Engine := TRUE;END_IF;IF Stop THEN Engine := FALSE; (* L'arrêt est toujours prioritaire *)END_IF ;(* Remarque : le bouton Stop est physiquement connecté à NC (normalement fermé) ; donc si le câble se casse, Stop=FALSE et le système passe du côté sûr. *)

Le détail de sécurité ici est critique : le bouton d'arrêt est physiquement connecté normalement fermé (NC). Ainsi, en cas de rupture de câble ou de défaillance de contact, le signal est coupé et le système passe en sens « stop » (fail-safe). Si NO (normalement ouvert) est connecté, l'arrêt ne fonctionnera pas si le câble se casse, un défaut silencieux dangereux. Même si le code de l’IA semble logiquement correct, cette décision de connexion physique appartient à l’ingénieur.

Sécurité : arrêt d'urgence, verrouillage et sécurité intégrée

La sécurité dans l'automatisation industrielle n'est pas une question qui peut être « gérée par logiciel » ; Il s’agit d’une collaboration à plusieurs niveaux entre matériel et logiciels. Principes de base :

principe

Signification

Demande

sécurité intégrée

L’échec devrait conduire au côté sûr

Contact NF, défaut = arrêt

Redondance

Fonction critique double canal

Deux contacts, surveillance croisée

Verrouillage

Prévenir les situations dangereuses

La machine ne fonctionne pas lorsque la porte est ouverte

arrêt d'urgence

Arrêt d'urgence indépendant

Au niveau matériel, indépendant du PLC

Point critique : l'arrêt d'urgence n'est pas laissé au seul logiciel. L'arrêt d'urgence de sécurité est souvent également interrompu au niveau matériel par des relais de sécurité ou un API de sécurité ; Le logiciel API standard constitue une couche supplémentaire. L'ISO 13849 (sécurité des machines) et la CEI 62061 fournissent le cadre de ces conceptions.

Attention : Ne présumez pas qu'un arrêt d'urgence ou une logique de verrouillage généré par l'IA est « logiciel suffisant ». Les fonctions de sécurité sont conçues conformément aux normes en vigueur (ISO 13849 PL, IEC 62061 SIL), incluent une couche matérielle et sont vérifiées par une évaluation des risques. Cette évaluation relève de la responsabilité de l'ingénieur et de l'organisme; L’IA ne peut produire que des aperçus et des listes de contrôle.

Machines à états

Une logique d'automatisation complexe est organisée avec une machine à états plutôt qu'un if-else désordonné : le système trouve certains états (inactif, démarrage, en cours d'exécution, arrêt, erreur) et procède à des transitions définies. Cette structure est à la fois lisible et vérifiable.

(* Machine d'état de station-service simple *)CAS Cas DE 0 : (* BOSTA *) SI StartButton ET CoverClosed ALORS Cas := 10 ; END_IF ; 10 : (* REMPLIR *) Vanne := VRAI ; SI NiveauPlein ALORS Vanne := FALSE ; Statut := 20 ; END_IF ; SI CE N'EST PAS CoverClosed ALORS Valve := FALSE ; Statut := 90 ; END_IF ; (*sécurité*) 20 : (*VIDANGE*) PURGE := VRAI ; SI NiveauEmpty ALORS Vide := FALSE; Statut := 0 ; END_IF ; 90 : (* ERREUR *) Vanne := FAUX ; Vide := FAUX; (* tous les actionneurs sont sûrs *) IF ResetButton ALORS Statut := 0; END_IF;END_CASE;

Dans cette structure, les transitions de sécurité (passer à l'état d'erreur si le capot est ouvert, fermer tous les actionneurs) sont clairement incluses dans chaque situation. L'IA génère rapidement un squelette de machine d'état ; Mais quel incident de sécurité résultera de quelle situation dépend de votre analyse des risques.

Invite faible/Invite forte

FAIBLE : "Écrire le code PLC pour un convoyeur." (Pas d'E/S, pas de sécurité, langage peu clair. Impossible de rédiger un brouillon sur le terrain.) FORT : "Écrire une commande de convoyeur avec un texte structuré CEI 61131-3. Entrées : Démarrage (NO), Arrêt (NC), PhotocellProductVar (NO), CoverOpen (sécurité NC). Sorties : ConveyorMotor, WarningLamp. Utiliser la machine d'état (Idle, Running, Error). L'arrêt a toujours la priorité, allez à Error. Lorsque le couvercle est ouvert et arrêtez le moteur, assumez l'évaluation de la sécurité de ce code.

Mini-étui

L'ingénieur en automatisation Tolga demande le code ST à AI pour une ligne de conditionnement. L'IA produit du code qui semble fonctionner, mais lorsque Tolga le valide par rapport à la carte E/S, il découvre deux problèmes. Premièrement : l'IA a traité le bouton d'arrêt avec une logique NON (normalement ouverte) ; Tolga transforme cela en logique de sécurité NC, car si le câble se casse, la ligne doit s'arrêter. Deuxièmement : le verrouillage, dans lequel la machine doit s'arrêter lorsque le capot de protection est ouvert, n'est vérifié qu'au démarrage et non pendant le fonctionnement ; Tolga le corrige afin qu'il soit vérifié à chaque cycle de numérisation. Cela confirme également que l'arrêt d'urgence lui-même n'est pas laissé au logiciel, mais est également interrompu matériellement avec le relais de sécurité. L’IA a rapidement donné son squelette logique ; Mais la vérification de l'ingénieur a permis d'obtenir trois décisions de sécurité : connexion de sécurité, verrouillage permanent et arrêt d'urgence matériel.

Erreurs courantes

  • Connecter le bouton Stop/E-stop à NO et perdre le comportement de sécurité en cas de rupture de câble.
  • Vérifier le verrouillage (couvercle, barrière immatérielle) uniquement au démarrage et le sauter en fonctionnement.
  • Laisser entièrement la fonction de sécurité au logiciel et négliger la couche matérielle.
  • Oublier le comportement de la boucle d'analyse et effectuer des affectations contradictoires sur la même sortie.
  • Rendre une logique complexe invérifiable en l'écrivant avec un if-else désordonné au lieu d'une machine à états.
  • Accepter l'interprétation d'AI de la norme de sécurité sans la vérifier avec le texte officiel.

En résumé

  • L'automate fonctionne avec un cycle de balayage continu ; Les sorties sont mises à jour à la fin de la boucle.
  • Le texte à relais et le texte structuré expriment la même logique dans deux langages CEI 61131-3 différents.
  • Les boutons Stop/E-stop NC et Fail-Safe sont connectés ; l’échec devrait conduire au côté sûr.
  • Les verrouillages sont vérifiés à chaque cycle de balayage ; Inclut une couche matérielle de sécurité.
  • La machine à états rend la logique complexe lisible et vérifiable.
  • L'évaluation de la sécurité (ISO 13849/IEC 62061) relève de la responsabilité de l'ingénieur ; L'IA génère un brouillon.

Tâche de candidature

Choisissez un scénario d'automatisation simple (par exemple, démarrage/arrêt d'un moteur à verrouillage automatique, un actionneur à deux positions ou une petite station-service). Notez votre liste d'E/S et vos exigences de sécurité (quel bouton est NC, lequel est verrouillé). Demandez à l'IA de générer une machine à états de texte structuré avec ce contexte. Vérifiez ensuite la sortie pour des raisons de sécurité : (1) l'arrêt permet-il une sortie sûre de chaque état, (2) le verrouillage est-il vérifié à chaque cycle de scrutation, (3) tous les actionneurs passent-ils à l'état sûr en cas d'erreur ? Notez toutes les lacunes de sécurité et les corrections que vous trouvez.