FB_MBDiagnose (Modbus-Funktion 8)

Die Diagnose-Funktion stellt eine Reihe von Tests für die Überprüfung des Übertragungssystems zwischen dem Master und dem Slave oder für die Überprüfung der verschiedenen internen Fehlerzustände innerhalb des Slaves zur Verfügung.
Eingänge
VAR_INPUT
sIPAddr : STRING(15);
nTCPPort : UINT:= MODBUS_TCP_PORT;
nUnitID : BYTE:=16#FF;
nSubFnc : WORD;
nWriteData : WORD;
bExecute : BOOL;
tTimeout : TIME;
END_VAR
Name | Typ | Beschreibung |
---|---|---|
sIPAddr | STRING (15) | Ist ein String, der die IP-Adresse des Zielgerätes enthält. |
nTCPPort | UINT | Portnummer des Zielgerätes. |
nUnitID | BYTE | Identifizierungsnummer eines Gerätes eines seriellen Sub-Netzwerkes. Wenn ein Gerät direkt über TCP/IP angesprochen wird, muss dieser Wert 16#FF entsprechen. |
nSubFnc | WORD | Die Subfunktion, die ausgeführt werden soll. |
nWriteData | WORD | Das Datenwort, das geschrieben werden soll. |
bExecute | BOOL | Durch eine steigende Flanke an diesem Eingang wird der Funktionsbaustein aktiviert. |
tTimeout | TIME | Gibt die Timeout-Zeit an, die bei der Ausführung des ADS-Kommandos nicht überschritten werden darf. |
Ausgänge
VAR_OUTPUT
bBUSY : BOOL;
bError : BOOL;
nErrId : UDINT;
nReadData : WORD;
END_VAR
Name | Typ | Beschreibung |
---|---|---|
bBusy | BOOL | Bei der Aktivierung des Funktionsbausteins wird dieser Ausgang gesetzt und bleibt gesetzt, bis eine Rückmeldung erfolgt. |
bError | BOOL | Sollte ein ADS-Fehler bei der Übertragung des Kommandos erfolgen, dann wird dieser Ausgang gesetzt, nachdem der bBusy-Ausgang zurückgesetzt wurde. |
nErrId | UDINT | Liefert bei einem gesetzten bError-Ausgang die ADS-Fehlernummer. |
nReadData | WORD | Liefert das gelesene Datenwort. |
Beispiel für den Aufruf des Bausteins in FBD
PROGRAM Test
VAR
fbDiagnose : FB_MBDiagnose;
bDiagnose : BOOL;
bDiagnoseBusy : BOOL;
bDiagnoseError : BOOL;
nDiagnoseErrorId : UDINT;
nSubFnc : WORD;
nReadData : WORD;
nWriteData : WORD;
END_VAR

Nach steigender Flanke von "bExecute" und erfolgreicher Ausführung des Diagnose-Befehls, befindet sich in nReadData das gelesene Datenwort.
Voraussetzungen
Entwicklungsumgebung |
Zielplattform |
Einzubindende SPS-Bibliotheken |
---|---|---|
TwinCAT v3.0.0 |
PC or CX (x86) |
Tc2_ModbusSrv |