Contrôle Programme/Opérateur
Les instructions suivantes prennent en charge le concept de contrôle Programme/Opérateur.
- Sélection améliorée (ESEL)
- Totalisateur (TOT)
- PID amélioré (PIDE)
- Rampe/Stabilisation (RMPS)
- Dispositif à 2 états discret (D2SD)
- Dispositif à 3 états discret (D3SD)
Les contrôles Programme/Opérateur vous permettent de contrôler ces instructions simultanément à la fois de votre programme utilisateur et de votre dispositif d’interface opérateur. Dans le contrôle Programme, l’instruction est contrôlée par les entrées Programme qui lui sont envoyées ; dans le contrôle Opérateur, l’instruction est contrôlée par les entrées Opérateur qui lui sont envoyées.
Le contrôle Programme ou Opérateur, est déterminé par l’utilisation de ces entrées.
Entrée | Description |
.ProgProgReq | Une requête du programme à envoyer au contrôle Programme. |
.ProgOperReq | Une requête du programme à envoyer au contrôle Opérateur. |
.OperProgReq | Une requête de l’opérateur à envoyer au contrôle Programme. |
.OperOperReq | Une requête de l’opérateur à envoyer au contrôle Opérateur. |
Pour déterminer si une instruction est sous le contrôle Programme ou Opérateur, examinez la sortie ProgOper. Si ProgOper est défini, l’instruction est sous le contrôle Programme ; si ProgOper est mis à zéro, l’instruction est sous le contrôle Opérateur.
Le contrôle Opérateur est prioritaire sur le contrôle Programme si les deux bits de requête d'entrée sont définis. Par exemple, si ProgProgReq et ProgOperReq sont tous les deux définis, l’instruction est envoyée au contrôle Opérateur.
Les entrées de requêtes de programme sont prioritaires sur les entrées de requêtes d’opérateur. Cela permet d’utiliser les entrées ProgProgReq et ProgOperReq pour « verrouiller » une instruction dans le contrôle désiré.
Par exemple, supposons qu’une instruction Totalisateur va toujours être utilisée sous le contrôle Opérateur, et que votre programme ne va jamais contrôler l’exécution ou l’arrêt du Totalisateur. Dans ce cas, vous pourriez câbler une valeur littérale de 1 dans ProgOperReq. Cela empêcherait l’opérateur de mettre le Totalisateur sous le contrôle Programme en définissant OperProgReq depuis le dispositif d’interface opérateur.

De même, le fait de définir constamment ProgProgReq peut « verrouiller » l’instruction sous le contrôle Programme. Cela est utile pour les séquences de démarrage automatique lorsque vous désirez que le programme contrôle les actions de l’instruction sans avoir à vous soucier d’un opérateur prenant par inadvertance le contrôle de l’instruction.
Dans cet exemple, le programme définit l’entrée ProgProgReq durant le démarrage, puis il met à zéro l’entrée ProgProgReq une fois que le démarrage est terminé. Une fois que l’entrée ProgProgReq est mise à zéro, l’instruction reste sous le contrôle Programme jusqu’à ce qu’elle reçoive un requête de changement. Par exemple, l’opérateur pourrait définir l’entrée OperOperReq depuis une façade pour prendre le contrôle de cette instruction.
L’exemple suivant montre comment verrouiller une instruction en contrôle Programme.

Les entrées de requêtes d’opérateur envoyées à une instruction sont toujours mises à zéro par l’instruction lorsque celle-ci est exécutée. Cela permet aux interfaces opérateur de fonctionner avec ces instructions en définissant simplement le bit de requête du mode désiré. Vous n’avez pas à programmer l’interface opérateur pour réinitialiser à zéro les bits de requête. Par exemple, si une interface opérateur définit l'entrée OperAutoReq vers une instruction PIDE, lorsque l'instruction PIDE est exécutée, celle-ci détermine la réponse appropriée et met à zéro OperAutoReq.
Les entrées de requêtes de programme sont normalement mises à zéro par l’instruction car elles sont en général câblées comme des entrées pour l’instruction. Si l’instruction met à zéro ces entrées, l’entrée serait simplement redéfinit par l’entrée câblée. Il peut exister des situations où vous voulez utiliser l’autre logique pour définir les requêtes de programme de façon à ce que les requêtes de programme soient mises à zéro par l’instruction. Dans ce cas, vous pouvez définir l’entrée ProgValueReset et l’instruction mettra toujours à zéro les entrées de requête en mode Programme, lorsqu’elle est exécutée.
Dans cet exemple, un échelon de logique à relais d'une autre routine est utilisé pour verrouiller par impulsion une entrée ProgAutoReq à une instruction PIDE lorsqu'un bouton-poussoir est enfoncé.
Lorsque le bouton-poussoir TIC101AutoReq est enfoncé, ProgAutoReq est verrouillé par impulsion à l'instruction PIDE TIC101. TIC101 a été configuré avec son entrée ProgValueReset définie. ProgAutoReq est réinitialisé parce que ProgValuieReset est toujours défini.

Fournir une réponse