Logique booléenne de procédé avec instantané (Process Boolean Logic with Snapshot, PBL)
Ces informations s’appliquent aux automates CompactLogix 5380P, ControlLogix 5580P et ControlLogix 5590P.
L'instruction Logique booléenne de procédé avec instantané (Process Boolean Logic with Snapshot, PBL) exécute jusqu'à huit portes de la logique booléenne configurable. Les types de porte disponibles sont AND, OR, XOR (OR exclusif), Définir/Réinitialiser, Sélectionner et Majorité. Chaque porte fournit jusqu'à quatre conditions d'entrée qui sont inversibles individuellement à l'aide d'un paramètre de configuration.
L'instruction PBL peut enregistrer son état actuel :
- Après une modification de l'état des sorties.
- Commande sur Opérateur ou Programme.
- Basé sur une entrée de bouclage de logique.
Langues disponibles
Diagramme à relais

Diagramme de bloc fonctionnel

Texte structuré
PBL(PBL tag);
Opérandes
IMPORTANT:
Une opération inattendue peut se produire dans les cas suivants :
- Les opérandes de balise de sortie sont remplacés.
- Les membres d'un opérande de structure sont remplacés.
- Sauf lorsque cela est spécifié, les opérandes de structure sont partagés par plusieurs instructions.
Il existe des règles de conversion de données pour combiner des types de données numériques dans une instruction. Reportez-vous à la section Conversions de données.
Opérandes de configuration
Opérande | Type | Format | Description |
|---|---|---|---|
PBL | P_BOOLEAN_LOGIC | balise | Structure des données requise pour obtenir une bonne exécution de l'instruction. |
Structure P_BOOLEAN_LOGIC
Les membres publics sont des membres standard, de balises visibles accessibles par programmation. Les membres privés et masqués sont utilisés dans les façades HMI et ne sont pas accessibles par programmation. Les membres du secteur privé se trouvent dans des tableaux distincts après les membres publics.
Membres d'entrée publique | Type de données | Description |
|---|---|---|
EnableIn | BOOL | Activez l'entrée. Diagramme à relais : Correspond à la condition d’échelon. La valeur par défaut est définie sur vrai. |
Inp_InitializeReq | BOOL | 1 = Demande d'initialisation de l'instruction. L'instruction est généralement initialisée lors de sa première exécution. Utilisez cette demande lorsqu'une réinitialisation est requise. L'instruction efface automatiquement cet opérande. La valeur par défaut est définie sur vrai. |
Inp_0 | BOOL | Entrée logique 0. La valeur par défaut est fausse. |
Inp_1 | BOOL | Entrée logique 1. La valeur par défaut est fausse. |
Inp_2 | BOOL | Entrée logique 2. La valeur par défaut est fausse. |
Inp_3 | BOOL | Entrée logique 3. La valeur par défaut est fausse. |
Inp_4 | BOOL | Entrée logique 4. La valeur par défaut est fausse. |
Inp_5 | BOOL | Entrée logique 5. La valeur par défaut est fausse. |
Inp_6 | BOOL | Entrée logique 6. La valeur par défaut est fausse. |
Inp_7 | BOOL | Entrée logique 7. La valeur par défaut est fausse. |
Inp_Hold | BOOL | 1 = conserver les états précédents dans l'instantané ; 0 = passer des états directs à l'instantané. La valeur par défaut est fausse. |
Inp_Reset | BOOL | 1 = réinitialiser le verrouillage de l'instantané, afficher les états en direct. La valeur par défaut est fausse. |
Cfg_UseInpHold | BOOL | 1 = Utiliser Inp_Hold pour aligner l'état ; 0 = Utiliser Cmds ou la Transition de sortie pour prendre l'instantané. La valeur par défaut est fausse. |
Cfg_UsePCmd | BOOL | 1 = Activer l'instantané sur PCmd_Snap 0 --> 1 (bord). La valeur par défaut est définie sur vrai. |
Cfg_UseOCmd | BOOL | 1 = Activer l'instantané sur OCmd_Snap 0 --> 1 (bord). La valeur par défaut est définie sur vrai. |
Cfg_UseOut01 | BOOL | 1 = Activer l'instantané sur Output 0 --> 1 (bord montant). La valeur par défaut est définie sur vrai. |
Cfg_UseOut10 | BOOL | 1 = Activer l'instantané sur Output 1 --> 0 (bord descendant). La valeur par défaut est fausse. |
Cfg_TimestampOnSnap | BOOL | 1 = Générer un horodatage quand un instantané se produit. La valeur par défaut est fausse. |
Cfg_SnapOver | BOOL | 1 = Remplacement du nouvel instantané sans réinitialisation, 0 = Enregistrer d'abord l'instantané jusqu'à la réinitialisation. La valeur par défaut est fausse. |
Cfg_HasMoreObj | BOOL | 1 = Indique à HMI qu'un objet contenant plus d'informations est disponible. La valeur par défaut est fausse. |
Cfg_HasNav | SINT | Définir les bits pour indiquer quels boutons de navigation sont activés. La valeur par défaut est 2#0000_0000. |
Cfg_OnDly | REAL | Délai de désactivation (ON) de sortie (en secondes). Valide = de 0,0 à 2 147 483,0 La valeur par défaut est 0,0. |
Cfg_OffDly | REAL | Délai de désactivation (OFF) de sortie (en secondes). Valide = de 0,0 à 2 147 483,0 La valeur par défaut est 0,0. |
Cfg_CnfrmReqd | SINT | Confirmation de la commande Opérateur requise. Représente le type de confirmation de commande requise. 0 = Aucun, 1 = Confirmation de commande requise, 2 = Signature électronique de l’exécutant requise, 3 = Signature électronique de l’exécutant et du validant requise. La valeur par défaut est 0. |
PCmd_Snap | BOOL | Commande Programme pour capturer les états Entrée et Porte dans un instantané. La valeur par défaut est fausse. |
PCmd_Reset | BOOL | Commande Programme permettant de réinitialiser (réarmer) le verrouillage du de l'instantané. La valeur par défaut est fausse. |
Membres de sortie publique | Type de données | Description |
|---|---|---|
EnableOut | BOOL | Activer la sortie. Cet état de sortie reflète toujours l'état de l'entrée EnableIn. |
Out_Live | BOOL | Sortie logique de condition (résultat) après le délai. |
Out_Snap | BOOL | Sortie logique de condition (résultat) à l'instantané. |
Val_DlyPctLive | DINT | Pourcentage de réussite OnDelay ou OffDelay de sortie : direct. |
Val_DlyPctSnap | DINT | Pourcentage de réussite OnDelay ou OffDelay de sortie : instantané. |
Val_SnapInit | DINT | Initiateur d'instantané : 1 = OCmd, 2 = PCmd, 3 = Out 0-->1, 4 = Out 1-->0, 5 = Inp_Hold. |
Sts_Initialized | BOOL | 1 = L'instruction est initialisée. Utilisez Inp_InitializeReq pour réinitialiser. |
Sts_Snapped | BOOL | 1 = L'instantané a été déclenché, 0 = L'instantané affiche les états directs. |
Sts_RdyReset | BOOL | 1 = Une alarme verrouillée ou une condition de mise hors tension est prête à être réinitialisée. |
Sts_InpLive | SINT | Bits d'état d'entrée directs : De 0 à 0,7 = d'Inp_0 à Inp_7. |
Sts_GateLive | SINT | Bits d'état de résultat de porte directs : De 0,0 à 0,7 = porte 0 à 7. |
Sts_InpSnap | SINT | Instantané de bits d'état d'entrée : De 0 à 0,7 = d'Inp_0 à Inp_7. |
Sts_GateSnap | SINT | Instantané de bits d'état de résultat de porte : De 0,0 à 0,7 = porte 0 à 7. |
Sts_GateSrc1Live | SINT | État filaire direct pour la source 1 de chaque porte (bit# = gate#). |
Sts_GateSrc2Live | SINT | État filaire direct pour la source 2 de chaque porte (bit# = gate#). |
Sts_GateSrc3Live | SINT | État filaire direct pour la source 3 de chaque porte (bit# = gate#). |
Sts_GateSrc4Live | SINT | État filaire direct pour la source 4 de chaque porte (bit# = gate#). |
Sts_GateSrc1Snap | SINT | Instantané d'état filaire pour la source 1 de chaque porte (bit# = gate#). |
Sts_GateSrc2Snap | SINT | Instantané d'état filaire pour la source 2 de chaque porte (bit# = gate#). |
Sts_GateSrc3Snap | SINT | Instantané d'état filaire pour la source 3 de chaque porte (bit# = gate#). |
Sts_GateSrc4Snap | SINT | Instantané d'état filaire pour la source 4 de chaque porte (bit# = gate#). |
Sts_OutInvertLive | BOOL | Sortie après l'inverseur, mais avant les horloges TON/TOF. |
Sts_OutInvertSnap | BOOL | Instantané de sortie après l'inverseur, mais avant les horloges TON/TOF. |
Sts_Err | BOOL | 1 = Erreur de configuration : Voir bits de détails (Sts_Errxxx) pour connaître la raison. |
Sts_ErrGateFunc | SINT | 1 = Erreur dans le code fonction de chaque porte (utilisez de 0 à 6). |
Sts_ErrGateSrcPtr | SINT | 1 = Erreur dans le pointeur source de chaque porte (utilisez de 0 à 15). |
Sts_ErrGateSrcMask | SINT | 1 = Erreur dans la configuration de masque (source utilisée) de chaque porte (qté, choix). |
Sts_ErrOutSrcPtr | BOOL | 1 = Erreur dans le pointeur source de sortie (utilisez de 0 à 15). |
Sts_ErrTimer | BOOL | 1 = Erreur dans la présélection du délai d'activation ou de désactivation de sortie (utilisez de 0,0 à 2147483,0). |
Membres d'entrée privés | Type de données | Description |
|---|---|---|
Cfg_GateFunc | DINT[8] | Code de fonction pour la porte M (1 = AND, 2 = OR, 3 = XOR, 4 = 2oo3, 5 = Set-Reset). |
Cfg_GateSrc1Invert | SINT | La source de porte #1 est inversée (M par bit) (1 = inverser). La valeur par défaut est 2#0000_0000. |
Cfg_GateSrc1Mask | SINT | La source M de porte #1 est utilisée (M par bit) (1 = utilisé). La valeur par défaut est 2#0000_0000. |
Cfg_GateSrc1Ptr | DINT[8] | Pointeur vers source M de porte #1 (0 à 7 = entrées, 8 à 15 = sorties de porte). |
Cfg_GateSrc2Invert | SINT | La source de porte #2 est inversée (M par bit) (1 = inverser). La valeur par défaut est 2#0000_0000. |
Cfg_GateSrc2Mask | SINT | La source M de porte #2 est utilisée (M par bit) (1 = utilisé). La valeur par défaut est 2#0000_0000. |
Cfg_GateSrc2Ptr | DINT[8] | Pointeur vers source M de porte #2 (0 à 7 = entrées, 8 à 15 = sorties de porte). |
Cfg_GateSrc3Invert | SINT | La source de porte #3 est inversée (M par bit) (1 = inverser). La valeur par défaut est 2#0000_0000. |
Cfg_GateSrc3Mask | SINT | La source M de porte #3 est utilisée (M par bit) (1 = utilisé). La valeur par défaut est 2#0000_0000. |
Cfg_GateSrc3Ptr | DINT[8] | Pointeur vers source M de porte #3 (0 à 7 = entrées, 8 à 15 = sorties de porte). |
Cfg_GateSrc4Invert | SINT | La source de porte #4 est inversée (M par bit) (1 = inverser). La valeur par défaut est 2#0000_0000. |
Cfg_GateSrc4Mask | SINT | La source M de porte #4 est utilisée (M par bit) (1 = utilisé). La valeur par défaut est 2#0000_0000. |
Cfg_GateSrc4Ptr | DINT[8] | Pointeur vers source M de porte #4 (0 à 7 = entrées, 8 à 15 = sorties de porte). |
Cfg_HasNav | SINT | Définir les bits pour indiquer quels boutons de navigation sont activés. La valeur par défaut est 2#0000_0000. |
Cfg_OutSrcInvert | BOOL | La source de sortie (avant l'horloge de durée minimale) est inversée (1 = inverser). La valeur par défaut est fausse. |
Cfg_OutSrcPtr | DINT | Bit source pour la sortie (0 à 7 = entrées, 8 à 15 = portes). La valeur par défaut est 0. |
HMI_Const | SINT[9] | Constantes (à utiliser dans HMI en direction des paramètres). |
OCmd_Reset | BOOL | Commande Opérateur pour réinitialiser (réarmer) le verrouillage de l'instantané. La valeur par défaut est fausse. |
OCmd_Snap | BOOL | Commande Opérateur permettant de capturer des entrées et des états de porte en instantané. La valeur par défaut est fausse. |
Membres de sortie privés | Type de données | Description |
|---|---|---|
ORdy_Reset | BOOL | 1 = Prêt pour l'OCmd_Reset (active le bouton). |
ORdy_Snap | BOOL | 1 = Prêt pour OCmd_Snap (active le bouton). |
Val_LastGate | DINT[8] | Dernière broche de porte qui utilise ce résultat de porte (0 = inutilisé, 1 à 32 = gâchettes, 33 = sortie). |
Val_LastInp | DINT[8] | Dernière broche de porte qui utilise cette entrée (0 = non utilisée, 1 à 32 = portes, 33 = sortie) pour animation. |
Val_SnapTimestamp | DINT[7] | Horodatage de l'instantané [0] = année, [1] = mois, [2] = jour, [3] = heure, [4] = minute, [5] = seconde, [6] = usecond. |
Fonctionnement
L'instruction PBL :
- Fournit jusqu'à huit entrées booléennes et huit portes logiques.
- Chaque porte possède quatre entrées. Chaque entrée peut être activée ou désactivée et peut être normale ou inversée. Chaque entrée de porte activée peut être liée à une source, qui est une entrée d'instruction ou le résultat d'une porte précédente.
- Utilisez l'une de ces méthodes pour configurer les huit portes :
- AND logique : La sortie de la porte est vraie si toutes les entrées de porte activées, après des inversions configurées, sont vraies. Une porte AND peut avoir jusqu'à quatre entrées activées.
- OR logique : La sortie de la porte est vraie si l'une des entrées de porte activées, après des inversions configurées, est vraie. Une porte OR peut avoir jusqu'à quatre entrées activées.
- XOR logique (OR exclusif) : La sortie de la porte est vraie si un nombre impair d'entrées de porte activées, après des inversions configurées, est vrai. Une porte XOR peut avoir jusqu'à quatre entrées activées.
- Définir- Réinitialiser : La sortie de la porte est définie sur vrai si l'une de ses entrées Définir est définie sur vrai, et est définie sur faux si l'une de ses entrées Réinitialiser est vraie. Les quatre entrées de la porte sont :Entrée 1 : SET (prioritaire)Entrée 2 : RESET (prioritaire)Entrée 3 : SETEntrée 4 : RESET
- Sélectionner : Si l'entrée 3 est fausse, l'état de l'entrée 1 est transmis à la sortie de porte. Si l'entrée 3 est vraie, l'état de l'entrée 2 est transmis à la sortie de porte. L'entrée 3 doit être activée pour une porte de sélection et l'une ou l'autre des entrées 1 et 2 doivent être activées.
- Majorité (étiqueté « En numérique » pour « M hors N ») : La sortie de porte est définie sur vrai si la plupart de ses entrées, après des inversions configurées, sont vraies. La majorité comprend 2 sur 2, 2 sur 3 ou 3 sur 4. Une porte de la majorité peut comporter deux, trois ou quatre entrées activées.
- Fournit une fonctionnalité d'instantané qui capture l'état de l'instruction pour utilisation ultérieure, jusqu'à la réinitialisation de tous les états d'entrée, de porte et de sortie. La fonctionnalité de l'instantané capture l'état de la logique au moment où elle a déclenché ou arrêté l'équipement, même si les états de la logique changent après la fermeture. L'instantané est éventuellement horodaté à partir de l'horloge de l'automate avec l'année, le mois, le jour, l'heure, la minute, la seconde ou la microseconde.
- Fournit les options permettant d'activer les conditions suivantes de déclenchement de l'instantané :
- Capture d'instantané sur une commande d'opérateur (OCmd_Snap).
- Capture d'instantané sur une commande de programme (PCmd_Snap).
- Capture d'instantané lorsque la sortie passe de 0 à 1.
- Capture d'instantané lorsque la sortie passe de 1 à 0.
- Capture de l'instantané de l'état de la scrutation précédente lorsqu'une entrée de bouclage devient vraie. Cette fonctionnalité capture l'instantané lorsque la condition de sortie PBL est la condition de première sortie dans un bloc PINTLK en aval. L'indication du premier sorti de l'instruction PINTLK peut être réenfichée en boucle avec l'entrée Inp_Hold de l'instruction PBL pour maintenir l'état de dernière scrutation dans l'instantané, y compris l'horodatage de la dernière scrutation.
Implémentation
Utilisez l'instruction PBL dans les cas suivants :
- Un projet requiert une condition de verrouillage ou condition permissive qui est plus complexe que la simple instruction OR-ing ou AND-ing fournie par les instructions complémentaires PINTLK (verrouillages) ou PPERM (permissives).
- Un projet requiert une logique booléenne (combinaison) qui peut être reconfigurée à partir d'HMI en ligne ou qui nécessite la fonctionnalité d'instantané pour enregistrer une copie de l'état de logique avec un horodatage.
- Un projet contient plus que les 16 conditions de verrouillage ou les conditions permissives fournies par les instructions complémentaires PINTLK et PPERM, mais certaines de ces conditions peuvent être regroupées sous la forme d'une seule identification. Par exemple, tous les signaux de surtempérature du roulement d'une pompe et d'un moteur (cadre de la pompe, panneau de sortie de la pompe, support du moteur et panneau du moteur) peuvent être régulés ensemble sur OR dans une instruction PBL, et le résultat présenté à une instruction PINTLK comme une condition de surtempérature de roulement unique.
N'utilisez pas cette instruction dans les situations suivantes :
- Un projet requiert de simples verrouillages et autorisations qui peuvent être traités directement par les instructions PINTLK et PPERM. Ces instructions peuvent autoriser le fonctionnement ou le déclenchement.
- Un projet requiert une logique qui dépasse les capacités de l'instruction complémentaire PBL ou qui présente un temps critique. L'instruction PBL ne fournit que huit entrées, huit portes et une sortie avec temporisation à l'enclenchement et au déclenchement, et est implémentée avec un code piloté par tableau. Utilisez plutôt la logique codée en dur dans les langages natifs de l'automate. Les langages de programmation natifs sont plus rapides et offrent des fonctionnalités qui dépassent les capacités de l'instruction PBL.
Ce diagramme illustre les fonctionnalités de l'instruction PBL :

Configuration
Un maximum de huit portes peuvent être configurées à l'aide des balises suivants :
Cfg_GateFunc[M] – Cette configuration est un tableau qui définit la fonction porte. M = le numéro de porte, 0 à 7.
- 1 = Porte AND logique
- 2 = Porte OR logique
- 3 = Porte XOR logique
- 4 = La plupart des sorties sont vraies
- 5 = Définir/Réinitialiser
- 6 = Sélecteur A/B
Chaque porte possède quatre broches d'entrée. Chaque broche d'entrée peut être activée ou désactivée à l'aide de ce balise :
Cfg_GateSrc#Mask : Cette configuration est une valeur SINT qui masque les portes (0-7) activées pour cette broche d'entrée dans un format binaire. # = le numéro de la broche d'entrée (1-4). Si le bit de masque est haut, la porte pour cette broche d'entrée spécifique est activée.
Exemples :
- Cfg_GateSrc1Mask.0 = 1 broche d'entrée 1 de la porte 0 est activée
- Cfg_GateSrc2Mask.1 = 1 broche d'entrée 2 de la porte 1 est activée
- Cfg_GateSrc3Mask.3 = 1 broche d'entrée 3 de la porte 3 est activée
- Cfg_GateSrc4Mask.0 = 1 broche d'entrée 4 de la porte 0 est activée
Chaque broche d'entrée de porte peut être normale ou inversée.
Cfg_GateSrc#Inversion : Cette configuration est une valeur SINT qui inverse une entrée. # = le numéro de la broche d'entrée (1-4).
Exemples :
- Cfg_GateSrc1Invert,0 = 1, la broche d'entrée 1 de la porte 0 est inversée.
- Cfg_GateSrc2Invert.2 = 1, la broche d'entrée 2 de la porte 2 est inversée
- Cfg_GateSrc3Invert.3 = 1, la broche d'entrée 3 de la porte 3 est inversée
- Cfg_GateSrc4Invert,6 = 1, la broche d'entrée 4 de la porte 6 est inversée
Chaque broche d'entrée de porte activée peut être liée à une source, soit une entrée d'instruction, soit le résultat d'une porte précédente.
Cfg_GateSrc#Ptr[M] - Cette configuration est un tableau qui définit la source de la broche d'entrée sur chaque porte. Où # = le numéro de la broche d'entrée (1-4) et M = le numéro de porte (0-7). Une valeur comprise entre 0 et 7 représente une entrée d'instruction. Une valeur comprise entre 8 et 15 représente le résultat d'une porte précédente.
CONSEIL:
Une porte ne peut être utilisée que comme entrée d'une autre porte avec une valeur de porte supérieure.
Exemples :
- Cfg_GateSrc1Ptr[0] = 2 indique que Inp_2 est configuré dans la porte 0 sur la broche 1.
- Cfg_GateSrc2Ptr[0] = 3 indique que Inp_3 est configuré dans la porte 0 sur la broche 2.
- Cfg_GateSrc3Ptr[2] = 8 indique que le résultat de la porte 0 est configuré dans la porte 2 sur la broche 3.
- Cfg_GateSrc4Ptr[7] = 12 indique que le résultat de la porte 4 est configuré dans la porte 7 sur la broche 4.
Configurez la sortie à l'aide des balises suivants :
- Cfg_OutSrcPtr – Cette configuration détermine quelle entrée/porte sera la sortie. Une valeur comprise entre 0 et 7 représente une entrée d'instruction. Une valeur comprise entre 8 et 15 représente le résultat d'une porte.
- Cfg_OutSrcInvert : cette configuration détermine si la sortie doit être inversée.
Configuration de chaînes pour HMI
Configurez les chaînes pour les façades HMI (FT View) et pour la boîte de dialogue de configuration Logix Designer. Les chaînes sont définies sur des propriétés étendues d'éléments de balise. Configurez les chaînes dans Logix Designer uniquement.
- Description
- Étiquette du symbole graphique
- Bibliothèque d'affichage pour l'appel de façade HMI
- Nom de l'instruction
- Nom de zone
- Lien URL
- Chaînes des noms d’état pour les états 0 et 1
- Plus d'informations
Surveillance de l'instruction PBL
Utilise la façade opérateur à partir de la bibliothèque PlantPAx d'objets de procédé pour la surveillance.
Affecte les indicateurs d'état mathématique
Non.
Défauts majeurs/mineurs
Aucun spécifique à cette instruction. Reportez-vous à Indexer via des tableaux pour consulter les défauts d'indexation par tableau.
Exécution
Diagramme à relais
Condition/état | Action entreprise |
|---|---|
Préscrutation | Réinitialise les horloges de retard actif et inactif de sortie ; efface l'horodatage et les données de l'instantané ; efface toutes les commandes reçues pendant que l'automate était en mode Programme. |
Première exécution de l'instruction | Réinitialise les horloges de retard actif et inactif de sortie ; efface l'horodatage et les données de l'instantané ; efface toutes les commandes reçues pendant que l'automate était en mode Programme. |
La condition d'entrée d'échelon est égale à faux | Définit la sortie sur faux (désactivé) et réinitialise les horloges de retard actif et de retard inactif de la sortie. |
La condition d'entrée d'échelon est égale à vrai | Définir la condition de sortie d'échelon sur la condition d'entrée d'échelon. L'instruction s'exécute. |
Post-scrutation | La condition de sortie d'échelon est définie sur faux. |
Diagramme de bloc fonctionnel
Condition/état | Action entreprise |
|---|---|
Préscrutation | Réinitialise les horloges de retard actif et inactif de sortie ; efface l'horodatage et les données de l'instantané ; efface toutes les commandes reçues pendant que l'automate était en mode Programme. |
Première exécution de l'instruction | Réinitialise les horloges de retard actif et inactif de sortie ; efface l'horodatage et les données de l'instantané ; efface toutes les commandes reçues pendant que l'automate était en mode Programme. |
Première scrutation de l'instruction | Reportez-vous à la section Première exécution de l'instruction dans le tableau Diagramme de bloc fonctionnel. |
EnableIn est faux | Définit la sortie sur faux (désactivé) et réinitialise les horloges de retard actif et de retard inactif de la sortie. |
EnableIn est vrai | EnableOut est définie sur vrai. L'instruction s'exécute. |
Post-scrutation | Les bits EnableIn et EnableOut sont définis sur faux. |
Texte structuré
Dans Texte Structuré, EnableIn est toujours vrai lors d'une scrutation normale. L'instruction s'exécute lorsqu'elle se trouve dans le chemin d'accès de commande activé par la logique.
Condition/état | Action entreprise |
|---|---|
Préscrutation | Reportez-vous à la section Pré-scrutation dans le tableau Diagramme de bloc fonctionnel. |
Première exécution de l'instruction | Reportez-vous à la section Première exécution de l'instruction dans le tableau Diagramme de bloc fonctionnel. |
EnableIn est vrai | Reportez-vous à EnableIn est vrai dans le tableau Diagramme de bloc fonctionnel. |
Post-scrutation | Reportez-vous à la section Post-scrutation dans le tableau Diagramme de bloc fonctionnel. |
Exemple
Cet exemple utilise l'instruction PBL pour exécuter une logique avancée de verrouillage, basée sur les températures d'enroulement d'un moteur. Cet exemple explore les paramètres pour illustrer entièrement l'exemple.
Dans cet exemple, il y a un moteur avec trois RTD mesurant la température des enroulements. Pour éviter d'endommager les enroulements, le moteur doit être verrouillé dans les cas suivants :
- N'importe lequel des enroulements est supérieur à la limite de température haute-haute.
- La plupart des enroulements sont supérieurs à la limite de température haute.
PBL exécute cette fonction. La sortie de cette logique alimente le verrouillage du moteur ailleurs dans la logique.
Diagramme à relais

Diagramme de bloc fonctionnel

Dans cet exemple, il y a un moteur avec trois RTD mesurant la température des enroulements. Pour éviter d'endommager les enroulements, le moteur doit être verrouillé si l'un des trois enroulements est supérieur à la limite de température haute-haute ou si la plupart des enroulements sont supérieurs à la limite de température haute. PBL est en cours d'utilisation pour effectuer cette fonction. La sortie de cette logique alimente le verrouillage du moteur ailleurs dans la logique.
Les paramètres d'entrée (Inp_0, Inp_1, Inp_2, Inp_3, Inp_4 Inp_5) sont connectés aux sorties d'état des trois entrées de température d'enroulement. Trois des huit portes (0... 7) dans PBL sont utilisés dans cet exemple (1, 5, 6). La porte 1 est le OR des trois bits d'état haut-haut. La porte 5 vérifie si la plupart des bits d'état haut sont vrais. La porte 6 exécute des opérations ou des sorties de porte 1 et 5 pour définir la sortie de PBL.
Pour configurer les fonctions de porte (portes 1 et 6 en tant qu'OR et porte 5 en tant que majorité), utilisez les paramètres suivants :
- Cfg_GateFunc[1] = 2
- Cfg_GateFunc[5] = 6
- Cfg_GateFunc[6] = 2
La porte 1 est configurée pour examiner les trois entrées d'état haut-haut (Inp_0, Inp_2 et Inp_4) à l'aide des paramètres suivants :
- Cfg_GateSrc1Mask,1 = 1, Cfg_GateSrc1Ptr[1] = 0
- Cfg_GateSrc2Mask,1 = 1, Cfg_GateSrc2Ptr[1] = 2
- Cfg_GateSrc3Mask,1 = 1, Cfg_GateSrc3Ptr[1] = 4
La porte 5 est configurée pour examiner les trois entrées d'état haut (Inp_1, Inp_4 et Inp_5) à l'aide des paramètres suivants :
- Cfg_GateSrc1Mask.5 = 1, Cfg_GateSrc1Ptr[5] = 1
- Cfg_GateSrc2Mask.5 = 1, Cfg_GateSrc2Ptr[5] = 3
- Cfg_GateSrc3Mask.5 = 1, Cfg_GateSrc3Ptr[5] = 5
Enfin, la porte 6 est configurée pour examiner les sorties des portes 1 et 5 en utilisant les paramètres suivants :
- Cfg_GateSrc1Mask.6 = 1, Cfg_GateSrc1Ptr[6] = 9
- Cfg_GateSrc2Mask.6 = 1, Cfg_GateSrc2Ptr[6] = 13
Cfg_OutSrcPtr doit être défini sur 14 pour prendre la sortie depuis la porte 6 et en faire la sortie (Out_Live) du bloc PBL. Le temps de retard actif est alors défini sur 5 secondes pour empêcher les déclenchements parasites de la sortie (Cfg_OnDly = 5).
Enfin, les descriptions fournissent la documentation sur la façade. Dans cet exemple, les paramètres de description sont les suivants :
- Out_Live.@State0 = OK
- Out_Live.@State1 = déclenché
- Inp_0.@Label = Temp. haute haute d'enroulement A
- Inp_1.@Label = Temp. haute d'enroulement A
- Inp_2.@Label = Temp. haute haute d'enroulement B
- Inp_3.@Label = Temp. haute d'enroulement B
- Inp_4.@Label = Temp. haute haute d'enroulement C
- Inp_5.@Etiquette = Temp. haute d'enroulement C
Ce diagramme illustre les fonctionnalités de l'exemple :

Texte structuré
TI1_P50.Inp_PVData := I_TE1_P50 ;
TI1_P50.Inp_PVUncertain := (CAF_117[12] OR Local_12_I_CH0Fault);
PAI(TI1_P50);
TI2_P50.Inp_PVData := I_TE2_P50 ;
TI2_P50.Inp_PVUncertain := (CAF_117[12] OR Local_12_I_CH1Fault);
PAI(TI2_P50);
TI3_P50.Inp_PVData := I_TE3_P50 ;
TI3_P50.Inp_PVUncertain := (CAF_117[12] OR Local_12_I_CH2Fault);
PAI(TI3_P50);
TI1_P50.Sts_HiHi := NG_PBL.Inp_0 ;
TI1_P50.Sts_Hi := NG_PBL.Inp_1 ;
TI2_P50.Sts_HiHi := NG_PBL.Inp_2 ;
TI2_P50.Sts_Hi := NG_PBL.Inp_3 ;
TI3_P50.Sts_HiHi := NG_PBL.Inp_4 ;
TI3_P50.Sts_Hi := NG_PBL.Inp_5 ;
PBL(NG_PBL);
Fournir une réponse