Accueil technologie Instruction d'interruption

Instruction d'interruption



Instructions de fonction spéciales

3.9 Instructions de fonction spéciales S7-200

1. Instruction d'interruption

L'UC de l'automate est dans l'ensemble du processus de contrôle Certains contrôles dépendent d'événements externes. Par exemple, uniquement lorsque le périphérique externe demande au processeur d'envoyer des données, le processeur peut envoyer des données au périphérique. L'exécution de ce type de contrôle dépend de la demande du périphérique externe et de la réponse de la CPU. Lorsque la CPU accepte la demande du périphérique externe, la CPU suspend son travail en cours pour terminer la demande du processus externe. , Cette méthode de travail est appelée mode interruption.

Avant de démarrer le programme d'interruption, l'événement d'interruption doit être connecté au segment de programme que vous souhaitez exécuter lorsque cet événement se produit. Laisser

Utilisez la commande de connexion d'interruption (ATCH) pour établir la connexion entre l'événement d'interruption (spécifié par le numéro d'événement d'interruption) et le segment de programme (spécifié par le numéro de programme d'interruption)

. Lorsque l'événement d'interruption est connecté au programme d'interruption, l'interruption est automatiquement lancée.

L'utilisation de l'instruction de séparation d'interruption (DTCH) peut supprimer la connexion entre l'événement d'interruption et le programme d'interruption, fermant ainsi une seule interruption

un événement. L'instruction de séparation d'interruption renvoie l'interruption à un état inactif ou ignoré.

S7-200 peut déclencher un total de 34 événements d'alarme dans 5 catégories. Parmi eux, il y a 8 événements d'interruption provoqués par des signaux d'entrée,

Il existe 6 événements d'interruption provoqués par les ports de communication, 4 événements d'interruption provoqués par des temporisateurs et des événements d'interruption provoqués par des compteurs rapides.

14 éléments, il y a 2 événements d'interruption provoqués par des instructions de sortie d'impulsion. Comme indiqué dans le tableau

S7-200 peut cliquer avec le bouton droit sur n'importe quelle position dans l'éditeur de schéma à contacts et choisir d'insérer une interruption. Pour S7-200, vous pouvez également cliquer avec le bouton droit de la souris sur l'icône de bloc dans le

dans l'arborescence d'instructions et sélectionnez Insérer une interruption dans le menu contextuel. S7-200 peut également insérer une interruption à partir de la fenêtre de l'éditeur de programme, cliquez avec le bouton droit de la souris dans le menu. Une fois une nouvelle interruption créée, un nouvel onglet apparaîtra en bas de l'éditeur de programme,

représentant le nouveau programme d'interruption.

(1)Instruction de connexion d'interruption

·L'indication de l'instruction d'interruption de connexion : l'instruction d'interruption de connexion est composée de la fin de validation de l'instruction EN, le mnémonique de l'instruction

ATCH, Le numéro de programme d'interruption (numéro d'entrée) INT n et le numéro d'événement EVNT de l'événement d'interruption sont composés. Utiliser une échelle

à montrer comme le montre la figure 3-9-1.

·Le fonctionnement de l'instruction de connexion d'interruption : l'instruction de connexion d'interruption (ATCH) rend l'événement d'interruption (EVNT) et le numéro de programme d'interruption (INT) liés et initie l'événement d'interruption. Selon le groupe de priorité d'événement désigné, l'API fournit des services aux interruptions dans l'ordre du premier arrivé, premier servi.

Une seule interruption utilisateur peut être activée à la fois. Lorsque d'autres interruptions sont actives, la CPU émet une interruption pour mettre temporairement la file d'attente en file d'attente et attendre un traitement ultérieur. Si trop d'interruptions se produisent et que la file d'attente ne peut pas être traitée, activez le bit d'état de débordement de file d'attente. Lorsque l'équipe est vide, réinitialisez ces bits.

Plage de données

INT ; 0~127

ÉVÉNEMENT : 0~33

(2) Interruption de l'instruction de séparation

· Représentation de l'instruction de séparation d'interruption : L'instruction de séparation d'interruption est composée de la borne d'activation EN de l'instruction, le mnémonique de l'instruction DTCH

et le numéro d'événement EVNT de l'événement d'interruption. Utilisez un schéma à contacts ou une liste d'instructions comme illustré à la Figure 3-9-2. ·Le fonctionnement de l'instruction de séparation d'interruption : l'instruction de séparation d'interruption (DTCH) annule la connexion entre l'événement d'interruption (EVNT) et tous les programmes d'interruption, et ferme l'événement d'interruption. Plage de données:

< p>ÉVÉNEMENT : 0~33

(3) Interruption de l'instruction de retour

·L'expression de l'instruction de retour d'interruption : l'instruction de retour d'interruption est représentée par l'instruction mnémonique RETI

Constituer. Utilisez un schéma à contacts ou une liste d'instructions comme illustré à la Figure 3-9-3.

·Le fonctionnement de l'instruction de retour d'interruption : l'instruction de retour d'interruption (retour de condition RETI) peut être utilisée pour revenir de l'interruption selon la condition logique précédente.

·Remarques:

Micro/WIN 32 ajoute automatiquement des retours inconditionnels pour chaque programme d'interruption. Lors de l'écriture d'un programme, l'utilisateur n'a pas besoin d'écrire une instruction de retour inconditionnel. La gestion des interruptions fournit une réponse à des événements d'interruption internes ou externes spéciaux.

Lors de l'écriture du programme de service d'interruption, rendez le programme d'interruption court et simple, accélérez la vitesse d'exécution

et ne tardez pas trop. Sinon, des conditions inattendues peuvent provoquer un fonctionnement anormal de l'équipement contrôlé par le programme principal. Pour les routines de service d'interruption, le dicton dit : "Plus c'est court, mieux c'est", c'est tout à fait correct.

Les instructions DISI, ENI, HDEF, LSCR, END ne peuvent pas être utilisées dans le programme d'interruption.

(4) Instruction d'activation d'interruption

·La représentation de l'instruction d'activation d'interruption : l'instruction d'activation d'interruption est composée de

instruction mnémotechnique ENI. Utiliser un schéma à contacts ou une liste d'instructions

comme illustré à la Figure 3-9-4. · Le fonctionnement de l'instruction d'activation d'interruption : l'instruction d'activation d'interruption

L'instruction (ENI) démarre globalement tous les événements d'interruption. Une fois la

entrer dans le mode d'exécution, chaque événement d'interruption qui a été activé

est autorisé à être exécuté.

(5) Instruction d'interdiction d'interruption

·L'expression de l'instruction d'interdiction d'interruption : l'instruction d'interdiction d'interruption est composée de

instruction mnémonique DISI. Utilisez un schéma à contacts ou une liste d'instructions comme illustré à la Figure 3-9-4.

·Le fonctionnement de l'instruction d'interdiction d'interruption : l'instruction d'interdiction d'interruption (DISI) peut fermer globalement tous les événements d'interruption. Interdiction d'interrompre signifie

L'ordre permet à l'interruption d'entrer dans la file d'attente, mais ne permet pas au programme d'interruption de démarrer.

(6)Plusieurs problèmes expliqués plus en détail dans l'interruption

1) A propos de l'appel d'un sous-programme lors d'une interruption : Un sous-programme imbriqué peut être appelé à partir d'un programme d'interruption. L'accumulateur et la pile logique

sont partagés dans la routine d'interruption et la sous-routine appelée.

2) À propos du partage de données : Les données peuvent être partagées entre le programme principal et un ou plusieurs programmes d'interruption. Par exemple, un certain endroit dans le programme principal de l'utilisateur peut fournir des données à utiliser pour un certain programme d'interruption, et vice versa. Si le programme utilisateur partage des données, vous devez considérer

l'impact de la nature asynchrone des événements d'interruption, car les événements d'interruption apparaîtront partout où le programme principal de l'utilisateur est exécuté. Partage

La solution au problème de cohérence des données dépend du fonctionnement du programme d'interruption lorsque le programme principal est interrompu par un événement d'interruption.

Il existe plusieurs techniques de programmation qui peuvent assurer le bon partage des données entre le programme principal de l'utilisateur et le programme d'interruption. Ces techniques

ou restreindre la méthode d'accès de l'unité de mémoire partagée, ou faire en sorte que la séquence d'instructions utilisant l'unité de mémoire partagée ne soit pas interrompue.

Le programme de liste d'instructions partage une seule variable. Si les données partagées sont une variable à un octet, un mot ou un double mot et que le programme utilisateur est écrit dans

STL, alors la valeur intermédiaire obtenue en exploitant les données partagées n'est stockée que dans l'unité de mémoire non partagée ou l'accumulateur In, vous pouvez garantir un accès partagé correct.

Les programmes de schéma à contacts partagent une seule variable. Si les données partagées sont une variable à un octet, un mot ou un double mot et que le programme utilisateur est écrit avec

schéma à contacts, alors l'unité de mémoire partagée est accessible en utilisant uniquement l'instruction Move (MOVB, MOVW, MOVD, MOVR),< /p>

peut garantir un accès partagé correct. Ces instructions Move ne sont pas affectées par les événements d'interruption lorsqu'elles sont exécutées.

La liste d'instructions ou le programme de schéma à contacts partagent plusieurs variables. Si les données partagées sont constituées de quelques octets, mots ou doubles mots liés,

alors vous pouvez utiliser l'instruction d'interdiction/autorisation d'interruption ( DISI et ENI) pour contrôler l'exécution du programme d'interruption. Au début du programme utilisateur

Les interruptions sont interdites à l'endroit où l'unité de mémoire partagée est exploitée. Une fois toutes les opérations affectant l'unité de mémoire partagée terminées, autorisez l'interruption

, mais cette méthode entraînera un délai en réponse aux événements d'interruption.

3) À propos de l'interruption du port de communication :

Le port de communication série de l'API peut être contrôlé par un schéma à contacts ou un programme de liste d'instructions. Ce mode de fonctionnement du port de communication est appelé l'extrémité libre

mode portuaire. En mode port libre, les utilisateurs peuvent programmer pour définir le débit en bauds, le nombre de bits par caractère, la parité et le protocole de communication

protocole. L'utilisation de la réception et de l'envoi d'interruptions peut simplifier le contrôle de la communication par le programme.

4) À propos des interruptions d'E/S :

Les interruptions d'E/S incluent les interruptions de front montant ou descendant, les interruptions de compteur à grande vitesse et les interruptions de sortie de train d'impulsions (PTO). S7

-200 La CPU peut utiliser le front montant ou descendant des entrées I0.0 à I0.3 pour générer des interruptions. Les événements de front montant et les événements de front descendant peuvent être capturés par ces points d'entrée. Ces événements de front montant ou descendant peuvent être utilisés pour indiquer les conditions auxquelles il faut prêter attention lorsqu'un événement se produit

.

L'interruption du compteur à grande vitesse permet de générer des interruptions en réponse à des événements tels que la valeur actuelle est égale à la valeur prédéfinie, le changement de sens de comptage du compteur et la réinitialisation externe du compteur

bit. Chaque compteur à grande vitesse peut répondre aux événements à grande vitesse en temps réel, et le taux de scrutation de l'API ne peut pas contrôler ces événements à grande vitesse. L'interruption de sortie de train d'impulsions indique que le nombre spécifié d'impulsions a été émis. Une application typique de sortie de train d'impulsions est le moteur pas à pas. Vous pouvez autoriser chacune des interruptions mentionnées ci-dessus en connectant un programme d'interruption à l'événement d'E/S correspondant.

5) À propos des interruptions de la base de temps :

Les interruptions de base de temps incluent les interruptions de temporisation et les interruptions de temporisation T32/T96. La CPU peut prendre en charge les interruptions de minuterie. Vous pouvez utiliser chronométré

des interruptions pour spécifier une activité périodique. La période est par incréments de 1 ms et peut aller de 5 ms à 255 ms. Pour l'interruption de synchronisation 0, écrivez le temps de cycle dans SMB34 ; pour l'interruption de synchronisation 1, écrivez le temps de cycle dans SMB35. Chaque fois que la minuterie déborde,

L'événement d'interruption de synchronisation transfère le droit de contrôle au programme d'interruption correspondant. Habituellement, une interruption temporisée peut être utilisée pour contrôler l'échantillonnage de l'entrée analogique ou exécuter une boucle PID à des intervalles de temps fixes.

Lorsqu'un programme d'interruption est connecté à un événement d'interruption temporisée, si l'interruption temporisée est autorisée, alors la temporisation démarre.

Pendant la connexion, le système capture la valeur du temps de cycle, de sorte que les modifications ultérieures n'affecteront pas le cycle. Pour modifier le temps de cycle, commencez par

doit modifier la valeur du temps de cycle, puis reconnecter le programme d'interruption à l'événement d'interruption de synchronisation. Lors de la reconnexion, la fonction d'interruption du temporisateur efface toute valeur accumulée lors de la connexion précédente et redémarre le temporisateur avec la nouvelle valeur.

Une fois activée, l'interruption du temporisateur s'exécutera en continu et le programme d'interruption connecté sera exécuté à chaque fois que l'intervalle de temps spécifié déborde.

Si vous quittez le mode RUN ou séparez l'interruption du temporisateur, l'interruption du temporisateur est interdite. Si l'instruction d'interdiction d'interruption globale est exécutée, l'événement d'interruption continuera à apparaître à certains

, et chaque événement d'interruption programmé qui apparaît entrera dans la file d'attente d'interruption et attendra jusqu'à ce que l'interruption soit autorisée ou que la file d'attente soit pleine.

.

L'interruption du temporisateur T32/T96 permet une réponse rapide à un intervalle de temps donné. Ces interruptions ne prennent en charge que la résolution lms

temporisateur d'activation (TON) et temporisateur d'arrêt (TOF) T32 et T96. Les temporisateurs T32 et T96 fonctionnent normalement d'autres manières.

Une fois que l'interruption est autorisée, lorsque la valeur actuelle du temporisateur effectif est égale à la valeur prédéfinie, le programme d'interruption connecté est exécuté dans la temporisation lms normale du rafraîchissement de la CPU. Connectez d'abord un programme d'interruption à l'événement d'interruption T32/T96, puis autorisez

pour permettre l'interruption.

6) À propos de la priorité d'interruption et de la file d'attente :

Les interruptions sont exécutées dans l'ordre de priorité fixe suivant. Communication (priorité la plus élevée), interruption d'E/S, interruption de base de temps (la plus faible

priorité). Dans chaque niveau de priorité désigné, la CPU traite les interruptions selon le principe du premier arrivé, premier servi. A tout moment, un seul

le programme d'interruption utilisateur est en cours d'exécution. Une fois que le programme d'interruption commence à s'exécuter, il doit être exécuté jusqu'à la fin. Et il ne sera pas interrompu par d'autres

programmes d'interruption, ou même des programmes d'interruption de priorité plus élevée. Lorsqu'une autre interruption est en cours de traitement, la nouvelle interruption

doit être mis en file d'attente pour le traitement.

Parfois, il peut y avoir plus d'interruptions que la file d'attente ne peut en contenir. Par conséquent, la mémoire de débordement de file d'attente maintenue par le système

bit indique le type d'événement d'interruption manquant. Utilisez ces bits de mémoire de débordement de file d'attente uniquement dans le programme d'interruption, car ces bits seront réinitialisés lorsque la file d'attente se vide ou que le contrôle revient au programme principal.

7) Restrictions sur l'utilisation des interruptions :

Un programme peut avoir jusqu'à 128 interruptions. Dans leurs plages de priorité respectives, PLC utilise le principe du premier arrivé, premier servi

pour gérer les interruptions. A tout moment, un seul programme d'interruption utilisateur peut être exécuté. Une fois qu'un programme d'interruption commence à s'exécuter, il s'exécutera jusqu'à la fin. Il ne peut pas être interrompu par un autre programme d'interruption, même si la priorité d'un autre programme est plus élevée. Lorsque l'interruption est en cours de traitement

Une nouvelle interruption qui se produit doit être mise en file d'attente pour traitement.

Les instructions DISI, ENI, HDEF, LSCR et END ne peuvent pas être utilisées dans le programme d'interruption.

(7) Interrompre les étapes de programmation du programme

·Établir le programme d'interruption INT n (même méthode que la création du sous-programme)

·Ecrire dans le programme d'interruption INT n Son programme d'application

·Écrire l'instruction de connexion d'interruption (ATCH)

·Activer l'interruption (ENI)

·Si nécessaire, vous pouvez écrire une instruction de déconnexion d'interruption (DTCH) Exemple 3-9-1 : La figure 3-9-5 est un exemple de programmation d'utilisation d'une interruption de temporisation pour lire une quantité analogique.

Le programme principal OB1 a une instruction dont la fonction est de scruter la première fois après la mise sous tension de l'automate

(SMO.l=1), appelez le sous-programme SBRO et initialisez-le.

La fonction du sous-programme SBR0 est de régler l'interruption du temporisateur. Parmi eux, supposons

L'intervalle de temps de l'interruption de temporisation fixe 0 est de 100 ms. L'instruction de transfert MOV stocke

100 dans SMB34, qui doit définir l'intervalle de temps de l'interruption de la minuterie 0.

La commande de connexion d'interruption ATCH connecte l'interruption de temporisation 0 (numéro d'événement d'interruption

est 10) et le programme d'interruption 0 (l'entrée d'interruption est INT0),

Et permettre l'interruption de l'événement. La dernière phrase du sous-programme est l'activation globale

interruption (ENI). Seulement avec celui-ci, l'événement d'interruption qui a été autorisé à interrompre peut être réellement exécuté.

La fonction de la routine de service d'interruption INT0 est d'exécuter l'opération de lecture de l'AIW0 analogique une fois à chaque interruption, et de transférer cette valeur à

VW0.

Cet article provient du réseau, ne représente pas la position de cette station. Veuillez indiquer l'origine de la réimpression
HAUT