FB_SoEReadClassXDiag
Mit dem Funktionsbaustein FB_SoEReadClassXDiag kann die aktuelle Class-1-Diagnose(S-0-0011) ... Class-3-Diagnose (S-0-0013) als WORD ausgelesen werden. Für die Auswertung der Class-1-Diagnose als Struktur ST_AX5000_C1D gibt es die Konvertierungsfunktion F_ConvWordToSTAX5000C1D (siehe Dokumentation TwinCAT 3 PLC Lib Tc2_Drive).
Eingänge
VAR_INPUT
sNetId : T_AmsNetId := '';
bExecute : BOOL;
iDiagClass : USINT:= 1; (* 1: C1D (S-0-0011) is default, 2: C2D (S-0-0012), 3: C3D (S-0-0013) *)
tTimeout : TIME := DEFAULT_ADS_TIMEOUT;
END_VAR
Name | Typ | Beschreibung |
---|---|---|
sNetId | T_AmsNetId | String, der die AMS-Netzwerkkennung des PCs enthält (Typ: T_AmsNetId). |
bExecute | BOOL | Der Baustein wird über eine positive Flanke an diesem Eingang aktiviert. |
iDiagClass | USINT | Gibt an, welche Diagnose gelesen werden soll. Die Diagnoseparameter können sich von Hersteller zu Hersteller unterscheiden. Nicht immer sind alle Diagnoseparameter (C1D ... C3D) oder alle Bits darin implementiert. 1: Fehler: Class 1 Diag (S-0-0011) 2: Warnungen: Class 2 Diag (S-0-0012) 3: Informationen: Class 3 Diag (S-0-0013) |
tTimeout | TIME | Maximale Zeit, die bei der Ausführung des Funktionsbausteins nicht überschritten werden darf. |
Ein-/Ausgänge
VAR_IN_OUT
Axis : NCTOPLC_AXIS_REF;(* reference to NC axis *)
END_VAR
Name | Typ | Beschreibung |
---|---|---|
Axis | Achsdatenstruktur vom Typ NCTOPLC_AXIS_REF |
Ausgänge
VAR_OUTPUT
bBusy : BOOL;
bError : BOOL;
iAdsErrId : UINT;
iSercosErrId : UINT;
wClassXDiag : WORD;
dwAttribute : DWORD;
END_VAR
Name | Typ | Beschreibung |
---|---|---|
bBusy | BOOL | Dieser Ausgang wird bei der Aktivierung des Funktionsbausteins gesetzt und bleibt gesetzt, bis eine Rückmeldung erfolgt. |
bError | BOOL | Dieser Ausgang wird gesetzt, nachdem der bBusy-Ausgang zurückgesetzt wurde, wenn ein Fehler bei der Übertragung des Kommandos auftritt. |
iAdsErrId | UINT | Liefert bei gesetztem bError-Ausgang den ADS-Fehlercode des zuletzt ausgeführten Befehls. |
iSercosErrId | UINT | Liefert bei gesetztem bError-Ausgang den Sercos-Fehler des zuletzt ausgeführten Befehls. |
wClassXDiag | WORD | Liefert die aktuelle Class-X-Diagnose. |
dwAttribute | DWORD | Liefert das Attribut des Sercos-Parameters. |
Beispiel
fbClassXDiag : FB_SoEReadClassXDiag;
bClassXDiag : BOOL;
iDiagClass : USINT := 1;
wClass1Diag : WORD;
stAX5000C1D : ST_AX5000_C1D;
wClass2Diag : WORD;
(* NcAxis *)
NcToPlc AT %I* : NCTOPLC_AXIS_REF;
IF bClassXDiag THEN
fbClassXDiag(
Axis := NcToPlc,
bExecute := TRUE,
iDiagClass := iDiagClass,
tTimeout := DEFAULT_ADS_TIMEOUT
);
IF NOT fbClassXDiag.bBusy THEN
fbClassXDiag(Axis := NcToPlc, bExecute := FALSE);
bClassXDiag := FALSE;
CASE fbClassXDiag.iDiagClass OF
1:
wClass1Diag := fbClassXDiag.wClassXDiag;
stAX5000C1D := F_ConvWordToSTAX5000C1D(wClass1Diag);
2:
wClass2Diag := fbClassXDiag.wClassXDiag;
END_CASE
END_IF
END_IF