FB_WriteReadVar: Funktionsbaustein zum Lesen und Schreiben
Der Funktionsbaustein FB_WriteReadVar kann für Folgendes verwendet werden:
oSchreiben von aufeinander folgenden internen Registern und Lesen der Werte im selben Ausführungszyklus des Funktionsbaustein (einfache Transaktion),
oSchreiben von aufeinander folgenden internen Registern und Lesen verschiedener Register.
Die folgende Grafik zeigt den Anschlussplan für den Funktionsbaustein FB_WriteReadVar:
Der Funktionsbaustein FB_WriteReadVar liest und schreibt interne Register (nur vom Typ MW) in einem externen Gerät im Modbus-Protokoll. Die Lese- und Schreiboperationen finden im Rahmen derselben Transaktion statt. Beachten Sie, dass die Schreiboperation zuerst ausgeführt wird.
Beschreibung der E/A-Variablen
In der folgenden Tabelle sind die Eingangsvariablen des Funktionsbausteins in der TwidoEmulationSupport-Bibliothek beschrieben:
Eingang |
Datentyp |
Beschreibung |
---|---|---|
i_xExecute |
BOOL |
Die Funktion wird an der steigenden Flanke dieses Eingangs ausgeführt. HINWEIS: Wenn i_xExecute beim ersten Durchlauf eines Tasks in RUNNING nach einem Kalt- oder Warm-Reset auf TRUE gesetzt ist, wird die steigende Flanke nicht erkannt. |
i_xAbort |
BOOL |
Stoppt die laufende Operation an der steigenden Flanke. |
i_iLink |
INT |
Gibt den Port an, über den kommuniziert wird: o1 = serieller Port 1 o2 = serieller Port 2 o3 = Ethernet / Modbus TCP |
i_iId |
INT |
Gerätebezeichner des externen Zielgeräts: oSlave-Adresse auf serieller Leitung: 1 bis 247 oder oEthernet-Index: 1 bis 16 (Abhängig von der Verbindungskonfiguration). |
i_iTimeout |
INT |
Legt die maximale Zeit fest, die bis zum Empfang einer Antwort vom Modem gewartet wird. In ms angegeben. Der Wert 0 bedeutet, dass kein Timeout angewendet wird. |
i_diFirstReadObj |
DINT |
Adresse des ersten Objekts, aus dem Werte gelesen werden. |
i_iReadQuantity |
INT |
Anzahl zu lesender Objekte. |
i_pbyReadBuffer |
POINTER TO BYTE |
Adresse des Puffers für die Speicherung zu lesender Objektwerte. |
i_diFirstWriteObj |
DINT |
Adresse des ersten Objekts, aus dem Werte geschrieben werden. |
i_iWriteQuantity |
INT |
Anzahl zu schreibender Objekte. |
i_pbyWriteBuffer |
POINTER TO BYTE |
Adresse des Puffers für die Speicherung zu schreibender Objektwerte. |
i_astRemoteDevices |
ARRAY [1..Gc_uiRemoteAddressTableLen] OF ST_RemoteDevice |
Enthält die Liste der dezentralen Geräteadressen für die Modbus-TCP-Kommunikation. |
In der folgenden Tabelle sind die Ausgangsvariablen des Funktionsbausteins in der TwidoEmulationSupport-Bibliothek beschrieben:
Ausgang |
Datentyp |
Beschreibung |
---|---|---|
q_xDone |
BOOL |
q_xDone wird auf TRUE gesetzt, wenn die Funktion erfolgreich abgeschlossen wurde. |
q_xBusy |
BOOL |
q_xBusy ist auf TRUE, während die Funktion ausgeführt wird. |
q_xAborted |
BOOL |
q_xAborted wird auf TRUE gesetzt, wenn die Funktion mit dem Eingang i_xAbort gestoppt wird. |
q_xError |
BOOL |
q_xError wird auf TRUE gesetzt, wenn die Funktion aufgrund eines erkannten Fehlers angehalten wird. |
q_etCommError |
SEN.CommunicationErrorCodes |
q_etCommError enthält den Wert des Kommunikationsfehlercodes SEN.CommunicationErrorCodes. |
q_etOperError |
SEN.OperationErrorCodes |
q_etOperError enthält den Wert des Betriebsfehlercodes SEN.OperationErrorCodes. |