Heartbeat

In diesem Kapitel finden Sie eine Beschreibung der VIs, mit denen Sie eine Heartbeat-Verbindungsüberwachung zwischen LabVIEWTM und TwinCAT erstellen können. Weitere Informationen zu den Parametern finden Sie im Abschnitt Heartbeat Connection Monitoring in der technischen Einführung. Die Verbindungsüberwachung kann aus folgenden Low-Level VIs erstellt werden:

Außerdem enthält der Ordner das Heartbeat Grund-VI, in dem die Verbindungsüberwachung zu einem VI zusammengefasst ist.

Heartbeat 1:

Systemvoraussetzung

Die Heartbeat-Funktion ist ab TwinCAT 3.1 Build 4026 verfügbar.

Init Heartbeat

Der Block „Init Heartbeat“ erstellt eine Heartbeat-Instanz. Basierend auf dem Client-Handle (siehe Init) wird für jedes registrierte Target gescannt, ob eine Instanz vom FB_Heartbeat vorhanden ist. Ist dies der Fall, wird für jedes gefundene Heartbeat eine Verbindungsüberwachung vorbereitet. Wird an keinem Target eine Instanz vom FB_Heartbeat gefunden, gibt das VI den Fehler -8114 zurück.

Heartbeat 2:

FB_Heartbeat

Der Funktionsbaustein FB_Heartbeat kann in der Bibliothek Tc3_HeartbeatConnectionMonitoring gefunden werden und muss in dem Projekt, zu dem eine Verbindungsüberwachung aufgebaut wird, angelegt und aufgerufen werden.

Außerdem erstellt der Block ein Heartbeat-Event. Dieses kann im weiteren Verlauf genutzt werden, um den Zustand der Verbindung abzufragen. Sobald sich der Status der Verbindung ändert, wird ein Heartbeat-Event erzeugt. Das Heartbeat-Event verfügt über folgende Event-Daten:

Heartbeat 3:

Eingang/Ausgang

Bedeutung

[0][4] Handle

Handle zum ADS-Client

[5] PollingTime in ms

Parameter Polling-Zeit in ms

[6] HeartbeatHandle

Handle zur Heartbeat-Instanz

[7] UseRtdEstimation?

Parameter UseRtdEstimation

[9] Offset in ms

Parameter Offset

[10] HeartbeatEvent

User Event Refnum auf das erzeugte Heartbeat Event

Run Heartbeat

Der Block Run Heartbeat dient dazu, das Connection-Monitoring zu starten und kontinuierlich auszuführen. Dieser Block wird so lange ausgeführt, bis das Connection-Monitoring mit dem Stop Heartbeat gestoppt wird.

Heartbeat 4:

Eingang/Ausgang

Bedeutung

[0][4] Handle

Handle zum ADS-Client

[5][6] HeartbeatHandle

Handle zur Heartbeat Instanz

Stop Heartbeat

Der Block Stop Heartbeat dient dazu, das Connection-Monitoring zu stoppen.

Heartbeat 5:

Eingang/Ausgang

Bedeutung

[0][4] HeartbeatHandle

Handle zur Heartbeat-Instanz

Release Heartbeat

Der Block Release Heartbeat gibt das Handle auf das Heartbeat Connection-Monitoring aus dem Speicher frei.

Heartbeat 6:

Eingang/Ausgang

Bedeutung

[0][4] Handle

Handle zum ADS-Client

[5] HeartbeatHandle

Handle zur Heartbeat Instanz

Get RTD Estimate

Der Block Get RTD Estimate gibt die aktuelle (maximale) Roundtrip-Delay (RTD) Schätzung zum ausgewählten Target zurück. Das Target kann über den „TargetAddr“ String ausgewählt werden. Ist der String leer, wird automatisch das zuerst gefundene Target ausgewählt. Um diesen Block zu nutzen, ist es erforderlich, das Heartbeat Connection-Monitoring auszuführen (siehe zuvor beschriebene VIs).

Heartbeat 7:

Eingang/Ausgang

Bedeutung

[0][4] Handle

Handle zum ADS-Client

[5][6] HeartbeatHandle

Handle zur Heartbeat-Instanz

[7][8] TargetAddr

String mit der Addresse des Targets

[10] RTDEstimate

Schätzung des maximalen RTDs in ms

Heartbeat

Der Block Heartbeat nutzt intern die Blöcke Init Heartbeat, Run Heartbeat, Stop Heartbeat und Release Heartbeat, um mit nur einem Block den Einsatz des Heartbeat Connection-Monitorings zu ermöglichen. Der Heartbeat Block dient außerdem als Illustration dafür, wie das Heartbeat Connection-Monitoring eingesetzt und bearbeitet werden kann.

Das Heartbeat Connection-Monitoring wird kontinuierlich ausgeführt, bis es über ein Control gestoppt wird. Detektiert die Verbindungsüberwachung eine Unterbrechung (Timeout), wird versucht, ein VI (vi path timeout detected) aufzurufen. Ist der Aufruf des VIs nicht möglich, wird der Block und das Heartbeat Connection-Monitoring gestoppt. Am Ausgang des VIs wird dann über Timeout detected und die TargetAddr angezeigt, zu welchem Target eine Unterbrechung detektiert wurde. Bei mehreren Unterbrechungen wird nur die erste Unterbrechung angezeigt.

Heartbeat 8:

Eingang/Ausgang

Bedeutung

[0][4] Handle

Handle zum ADS-Client

[1] Stop Heartbeat

Referenz auf ein Boolean Control, über das die Ausführung des Heartbeat VIs beendet wird.

[2] vi path timeout detected

Pfad zu einem VI, das aufgerufen werden soll, falls eine Verbindungsunterbrechung detektiert wird.

[5] PollingTime in ms

Parameter Polling-Zeit in ms

[6] TargetAddr

String, der angibt, zu welchem Target der mögliche Timeout gehört.

[7] UseRtdEstimation?

Parameter UseRtdEstimation

[9] Offset in ms

Parameter Offset

[10] Timeout detected

Gibt an, ob eine Verbindungsunterbrechung detektiert wurde.