[traduction g]

Pourquoi votre automate programmable doit-il s'arrêter immédiatement ? Comment utiliser les interruptions d'un automate programmable ?

Un automate programmable exécute généralement la logique en boucle. On appelle cela un cycle de balayage. Certains automates peuvent interrompre les tâches de moindre priorité et exécuter une routine spécifique en cas d'événement matériel ou temporisé.

Table des matières

Siemens appelle ces routines des OB. Rockwell Logix les appelle des tâches. Imaginez ceci : vous lisez un bon livre. Soudain, votre téléphone sonne. Vous marquez la page. Vous répondez à l’appel. Une fois votre lecture terminée, vous reprenez votre livre.

UN Automate programmable Les interruptions fonctionnent de manière similaire. Le processeur ne s'arrête pas véritablement. Il interrompt plutôt les traitements de priorité inférieure, traite l'événement urgent, puis reprend son exécution là où il l'avait interrompue. Toutefois, le temps de réaction dépend de la priorité, du type de déclencheur et de la charge du processeur. Les réactions rapides sont bien réelles, mais elles ne relèvent pas de la magie.

Qu'est-ce qu'une interruption d'automate programmable, au juste ?

Les automates programmables classiques suivent généralement un schéma de base : mise à jour des sorties, lecture des entrées en mémoire, puis exécution du programme utilisateur avec ces valeurs stockées. Ce modèle convient à de nombreuses machines. Cependant, certains événements surviennent trop rapidement pour que la seule phase de cycle principale puisse fonctionner.

C’est pourquoi les fournisseurs proposent des blocs d’interruption matérielle (OB), des blocs d’interruption cycliques, des blocs d’interruption temporels et des tâches événementielles pour les travaux spécifiques. Dans Logix, le contrôleur exécute une tâche à la fois, et une tâche périodique ou événementielle peut interrompre une tâche de priorité inférieure puis reprendre le contrôle de la tâche précédente.

CS1H-CPU63H

Pourquoi devons-nous les faire cesser ?

Imaginez une lame de scie qui tourne à grande vitesse. Vous voulez attraper une capteur Il faut agir au bon moment. On ne peut pas se permettre de réagir trop tard. Si la logique principale est trop longue, la machine risque d'avancer plus loin que prévu avant que la tâche principale n'atteigne son but.

Le code événementiel est utile car il s'exécute lorsque le déclencheur se produit, au lieu d'attendre le prochain passage complet dans la logique ordinaire.

Mais voici le point délicat. Il n'est pas toujours nécessaire d'utiliser une astuce particulière de “ sortie immédiate ” pour avoir un impact rapide sur le monde réel. Sur Siemens, le système peut transférer les partitions d'image de processus de sortie affectées à un OB d'interruption indépendamment de… UPDAT_PO.

Sur Logix, une tâche traite normalement les sorties une fois terminée, sauf si vous désactivez cette option. Par conséquent, ne partez pas du principe qu'une étiquette de sortie standard est toujours trop lente et qu'une instruction miracle ne résout pas tous les problèmes. Commencez par vérifier comment votre automate gère les E/S. Choisissez ensuite la méthode la plus adaptée à votre plateforme.

Les différentes marques utilisent des appellations différentes. Siemens S7-1200 utilise des blocs d'organisation tels que les blocs d'organisation d'interruptions matérielles et les blocs d'organisation d'interruptions cycliques. Logix utilise des tâches continues, périodiques et événementielles.

L'objectif est le même dans les deux cas : réagir au bon moment sans bloquer l'ensemble du système. Les détails, en revanche, varient selon les marques.

Comment utiliser une fonction d'interruption d'un automate programmable ?

Honnêtement, c'est assez facile si on respecte les règles. On a souvent tendance à en faire toute une histoire. Il suffit de faire simple.

Sélectionnez le déclencheur. Indiquez à l'automate programmable quel événement doit lancer la routine rapide. Ce déclencheur peut être une modification d'une entrée numérique, un événement de mouvement, un événement HSC, une étiquette consommée ou une interruption temporisée.

Écrivez du code rapide. Veillez à ce qu'il soit court et concis. Tout code superflu augmente la latence et le risque de chevauchement ou de dépassement de délai.

Effacez l'indicateur. Dans de nombreux cas, le système gère lui-même l'appel d'événement. Toutefois, il peut être nécessaire de réinitialiser la condition de votre application ou de réarmer l'événement source pour que le prochain événement soit cohérent.

Attention également aux chevauchements. Dans Logix, si une tâche événementielle se déclenche à nouveau pendant son exécution, le contrôleur ignore ce déclenchement simultané.

CP1E-NA20DT-D

Quels types d'interruptions existent ?

Les noms varient d'une marque à l'autre. Il ne faut donc pas considérer l'appellation d'un fournisseur comme une référence absolue pour tous les automates programmables. Néanmoins, ces trois groupes constituent un cadre de travail fiable.

Type d'interruptionCe qu'il faitCas d'utilisation optimal
Matériel ou événementS'exécute lorsqu'un événement matériel ou logiciel configuré se produit et peut interrompre les tâches de priorité inférieure.Détection rapide des bords du capteur, marques d'enregistrement, événements HSC ou déclencheurs liés au mouvement
Périodique ou cycliqueS'exécute à intervalle fixe au lieu d'attendre l'analyse principaleTravail de contrôle régulier nécessitant une synchronisation précise
Gestion des pannes ou des diagnosticsS'exécute lorsqu'un processeur ou un module signale un événement temporel ou de diagnosticDétection des dépassements de capacité d'analyse, des débordements de file d'attente ou des diagnostics de modules

Comparons maintenant ces notions de synchronisation. Les valeurs exactes dépendent toujours du processeur, de la priorité, de la fréquence de déclenchement et de la charge totale du programme. Il faut donc considérer cela comme un guide, et non comme une règle absolue.

MétriqueCycle de balayage principalTâche d'interruption/événement matériel
Délai d'exécutionS'exécute dans le cadre de l'exécution cyclique normale du programme, et sa durée dépend de la charge et de la configuration de votre programme.S'exécute lorsqu'un déclencheur survient et peut interrompre les tâches de priorité inférieure, mais la latence réelle dépend toujours de la priorité et de la charge du système.
UrgenceConvient aux applications logiques machine classiques et au séquençage général.Idéal pour les événements urgents qui ne doivent pas attendre une logique de routine
Longueur du codePeut contenir une logique machine plus largeIl devrait rester court pour qu'il se termine avant le prochain déclenchement et évite les problèmes de chevauchement.

Comme vous pouvez le constater, la différence de vitesse peut être considérable. Cependant, il n'existe pas de temps de réponse idéal qui convienne à tous les automates programmables. Tout se joue dans les détails.

CJ1W-OD262

Faites-vous ces graves erreurs ?

Je vois ça tout le temps. Il ne faut pas supposer qu'une minuterie IEC standard se comportera de la même manière lors d'une interruption unique que lors d'une interruption OB1 ou d'une tâche cyclique normale.

Siemens indique que le minuteur ne se met à jour que lorsque l'instruction de minuterie s'exécute ou lorsque le code lit des membres clés du minuteur. Par conséquent, une interruption matérielle ou une tâche événementielle exécutée une seule fois par déclenchement peut entraîner un comportement du minuteur imprécis, voire trompeur. Une interruption cyclique ou une tâche périodique, en revanche, se comporte différemment car elle s'exécute de manière répétée.

De plus, évitez d'écrire des boucles mortes pour “ attendre ” que le temps passe. C'est comme accélérer à fond alors que la voiture est à l'arrêt : vous gaspillez du temps d'exécution et vous vous exposez à des problèmes. Siemens indique que les dépassements de capacité de balayage, les débordements de file d'attente et les conflits de synchronisation d'interruptions peuvent provoquer des erreurs de temps. Dans certains cas, des erreurs de temps de cycle répétées peuvent entraîner l'arrêt complet du processeur.

Une autre erreur majeure consiste à multiplier les interruptions. Chaque petit signal de capteur ne justifie pas une interruption. Rockwell prévient que chaque tâche supplémentaire consomme du temps de contrôleur au détriment des autres.

Il est également indiqué que si une tâche est déclenchée à nouveau pendant son exécution, le contrôleur ignore ce déclenchement simultané. Par conséquent, n'utilisez les interruptions qu'en cas de réelle nécessité. Autrement, votre solution rapide se transformera en un véritable casse-tête.

Alimentez vos projets avec des PLC Omron, Mitsubishi, Schneider flambant neufs et originaux – en stock, prêts maintenant !

Conclusion

Les interruptions ou les tâches événementielles suspendent les opérations de moindre priorité afin que l'automate puisse réagir rapidement aux événements urgents. Le processeur ne s'arrête pas ; il change de tâche puis reprend son fonctionnement normal. 

Elles sont utiles lorsqu'un événement ne doit pas attendre la logique cyclique normale. Les interruptions matérielles, les interruptions cycliques et les tâches événementielles servent toutes cet objectif de différentes manières. 

Votre code d'interruption doit être court. Un code long augmente la latence et le risque de chevauchement. 

Ne présumez pas que les temporisateurs standard se comporteront correctement dans une routine d'événement ponctuel. Si vous avez besoin d'un comportement temporisé, réfléchissez bien à savoir si vous souhaitez réellement un événement matériel, une tâche périodique ou une interruption cyclique. 

N’oubliez pas que l’utilisation d’E/S physiques immédiates n’est pas toujours indispensable pour une réaction rapide. Commencez par vérifier comment votre automate gère les images de processus, l’accès direct aux E/S et le traitement des sorties de tâches. 

Attention aux chevauchements, aux débordements de file d'attente et aux erreurs de temps de cycle. Une logique rapide est excellente. Une logique rapide qui ne se termine jamais est catastrophique. 

Contactez-nous

Remplissez simplement votre nom, votre adresse e-mail et une brève description de votre demande dans ce formulaire. Nous vous contacterons dans les 24 heures.

Ces sujets pourraient également vous intéresser

Servomoteurs numériques

Servos numériques ou analogiques : lequel est le meilleur pour votre moteur RC ?

Cet article aborde les subtilités de la technologie des servomoteurs, en se concentrant plus particulièrement sur le débat entre les servomoteurs numériques et analogiques dans le domaine des moteurs RC. Que vous soyez un fabricant d'équipements de machines ou une entreprise de solutions de contrôle industriel, il est essentiel de comprendre les nuances du fonctionnement des servomoteurs pour optimiser les performances et l'efficacité du contrôle d'automatisation dans les usines de fabrication. Cette lecture vous fournira les connaissances nécessaires pour prendre une décision éclairée sur le type de servomoteur qui convient le mieux à vos besoins, améliorant ainsi vos offres de produits et vos solutions.

En savoir plus "
Automates programmables Allen-Bradley

CompactLogix vs MicroLogix : comparaison des automates Allen-Bradley

Dans le monde en constante évolution de l'automatisation industrielle, le choix du bon automate programmable industriel (PLC) est crucial pour des opérations efficaces et fiables. Allen-Bradley, une marque de Rockwell Automation, propose une large gamme d'automates programmables, notamment les séries populaires CompactLogix et MicroLogix. Cet article se penche sur une comparaison matérielle complète de ces automates, vous aidant à déterminer quel automate convient le mieux à vos applications de contrôle.

En savoir plus "
Domaines d'application et caractéristiques des automates programmables industriels (API)

Fonctionnement des automates programmables : domaines d’application et caractéristiques

Un automate programmable industriel (API) est parfaitement adapté au contrôle des systèmes d'automatisation industrielle exigeant une fiabilité élevée, une maintenance aisée et un fonctionnement stable à long terme. Il assure la commande logique, la commande de processus, la commande de mouvement, le traitement des données et la mise en réseau/les communications, et se prête aisément à la modernisation et à l'extension des systèmes existants.

En savoir plus "

Demandez un devis rapide

*nous respectons votre confidentialité et toutes les informations sont protégées.