FactoryLogix Learning

Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Current »

Hinweis:

Dieser Abschnitt richtet sich an Entwickler


Der Zweck des CFX-Gateways besteht darin, als Stellvertreter für ein Gerät CFX-Nachrichten zu senden und zu empfangen. Die Kommunikation zwischen einem Gerät und dem CFX-Gateway für jede unterstützte CFX-Nachricht wurde so konzipiert, dass sie unabhängig von der Kommunikation für alle anderen unterstützten Nachrichten ist (d. h. jede unterstützte Nachricht wurde so konzipiert, dass sie in Bezug auf alle anderen unterstützten Nachrichten asynchron arbeitet). Durch sorgfältige Konfiguration ist es jedoch möglich, zwei unterstützte CFX-Nachrichten synchron arbeiten zu lassen, was z. B. beim Umgang mit Request & Response-Nachrichten nützlich sein kann.

Asynchrone Nachrichten

Der einzelne Handshake

Wenn ein einzelnes Handshake für eine unterstützte Nachricht verwendet wird, die unabhängig von allen anderen unterstützten Nachrichten funktioniert, wird ein SPS-Tag verwendet. Die Einheit, die Daten an die andere Einheit sendet, schreibt einen bekannten Wert in das Tag (setzt den Tag-Wert auf "high"), um dem Empfänger zu signalisieren, dass die Daten übertragen werden können. Sobald der Empfänger die Daten übertragen hat, setzt er den Wert desselben SPS-Tags zurück (setzt den Tag-Wert niedrig).

Bei der Konfiguration der Trigger-Tag-Zuordnungen für eine CFX-Nachricht, die einen einzelnen Handshake verwendet, sollte nur die TxTriggerSet-Zuordnung definiert werden - die RxTriggerSet-, TxTriggerReset- und RxTriggerReset-Tag-Zuordnungen sollten undefiniert bleiben..


Hinweis:

Jeder Tag-Zuordnung werden zwei oder drei Buchstaben vorangestellt, die die CFX-Nachricht identifizieren, z. B. würde RA für RecipeActivated als RATxTriggerSet, RARxTriggerSet, RATxTriggerReset und RARxTriggerReset zugeordnet werden.

Der doppelte Handshake

Wenn ein doppelter Handshake für eine unterstützte Nachricht verwendet wird, die unabhängig von allen anderen unterstützten Nachrichten funktioniert, werden zwei SPS-Tags verwendet. Die Einheit, die Daten an die andere Einheit sendet, schreibt einen bekannten Wert in das Tag des "Senders" (setzt den Tag-Wert auf "high"), um dem Empfänger zu signalisieren, dass die Daten übertragen werden können. Sobald der Empfänger die Daten übertragen hat, schreibt er einen bekannten Wert in das Tag des "Empfängers" (setzt den Tag-Wert hoch), um dem Absender zu signalisieren, dass die Daten übertragen wurden. Der Absender bestätigt dann, dass er weiß, dass die Datenübertragung erfolgreich war, indem er das Tag des "Absenders" zurücksetzt (setzt den Tag-Wert niedrig). Der Empfänger quittiert dies, indem er das Tag des "Empfängers" zurücksetzt (setzt den Tag-Wert auf low).

Hinweis:

Bei der Konfiguration der Trigger-Tag-Zuordnungen für eine CFX-Nachricht, die einen doppelten Handshake verwendet, sollten alle vier Trigger-Zuordnungen definiert werden (TxTriggerSet, RxTriggerSet, TxTriggerReset und RxTriggerReset). Denken Sie daran, dass jedem Tag-Mapping zwei oder drei Buchstaben vorangestellt werden, die die CFX-Nachricht identifizieren, z. B. würde RA für RecipeActivated als RATxTriggerSet abgebildet werden.

Synchrone Nachrichten

Wenn zwei unterstützte CFX-Nachrichten synchron arbeiten müssen, teilen sich die beiden unterstützten Nachrichten die Tags, die zur Steuerung des Handshake jeder Nachricht verwendet werden. Bei der Konfiguration eines Paares von unterstützten Nachrichten ist es wichtig zu berücksichtigen, welche Partei den Kommunikations-Handshake jeder Nachricht initiiert.

Nehmen wir die Nachrichten ValidateUnitsRequest und ValidateUnitsResponse. In diesem Fall initiiert das Gerät die Kommunikation für die ValidateUnitsRequest-Nachricht, während das CFX-Gateway die Kommunikation für die ValidateUnitsResponse-Nachricht initiiert, während das Gerät die Kommunikation für beide Nachrichten initiiert, wenn die WorkStarted- und WorkCompleted-Nachrichten synchron arbeiten sollen.

Unidirektionale Kommunikation

In einer Situation, in der zwei Nachrichten synchron verarbeitet werden sollen und die Kommunikation beider Nachrichten von derselben Instanz initiiert wird (z. B. von einem Gerät, das die WorkStarted- und WorkCompleted-Nachrichten übermittelt), setzt das Gerät das "Absender"-Tag, um die WorkStarted-Nachricht zu initiieren, setzt seinen Wert jedoch nicht zurück - dies wird dem Handshake der WorkCompleted-Nachricht überlassen.

Bei der Konfiguration der Trigger-Tag-Zuordnungen für zwei synchron zu verarbeitende CFX-Nachrichten, bei denen die Kommunikation für beide Nachrichten von derselben Instanz ausgelöst werden soll, sollte das TxTriggerSet definiert werden, um die erste Nachricht auszulösen, und alle vier Trigger-Zuordnungen der zweiten Nachricht sollten definiert werden (TxTriggerSet, RxTriggerSet, TxTriggerReset und RxTriggerReset), um den Handshake abzuschließen.

Bidirektionale Kommunikation

In einer Situation, in der zwei Nachrichten synchron ablaufen sollen und die Kommunikation einer Nachricht von einer Entität und die Kommunikation der anderen Nachricht von der anderen Entität initiiert wird (z. B. ein Gerät, das die ValidateUnitsRequest-Nachricht übermittelt, und das CFX-Gateway, das die ValidateUnitsResponse-Nachricht übermittelt), setzt das Gerät das "Absender"-Tag, um die ValidateUnitsRequest-Nachricht zu initiieren, setzt aber seinen Wert nicht zurück - dies wird dem Handshake der ValidateUnitsResponse-Nachricht überlassen.

Bei der Konfiguration der Trigger-Tag-Zuordnungen für zwei synchron zu verarbeitende CFX-Nachrichten, bei denen die Kommunikation für die eine Nachricht von einer Entität und die Kommunikation für die andere Nachricht von der anderen Entität ausgelöst werden soll, sollte das TxTriggerSet definiert werden, um die erste Nachricht auszulösen, und die ersten drei Trigger-Zuordnungen der zweiten Nachricht sollten definiert werden (TxTriggerSet, RxTriggerSet und TxTriggerReset, aber nicht RxTriggerReset), um den Handshake abzuschließen.


  • No labels