FB_CoE_DiagHistory_ReadAxis

Der Funktionsbaustein FB_ReadCoEDiagHistory_Axis ist eine Variation des Funktionsbausteins FB_ReadCoEDiagHistory, dem an Stelle einer Adresse eine AXIS_REF-Struktur zugewiesen werden kann. Es werden nur Meldungen ausgegeben, die entweder zum Gerät oder zu der spezifischen Achse gehören (bspw. bei einem AX8206 Doppelachsmodul).
Syntax
VAR_INPUT
sNetId : T_AmsNetId;
nSlaveAddr : UINT;
bEnable : BOOL;
bAck : BOOL;
tTimeout : TIME := DEFAULT_ADS_TIMEOUT;
tReadInterval : TIME := T#10S;
stOptions : ST_CoE_DiagHistory_Options;
END_VAR
VAR_IN_OUT
aDiagHistory : ARRAY[*] OF ST_CoE_DiagHistoryEntry;
END_VAR
VAR_INPUT
refAxis : REFERNCE TO AXIS_REF;
END_VAR
VAR_OUTPUT
bBusy : BOOL;
bValid : BOOL;
bError : BOOL;
hrErrorCode : HRESULT;
ipErrorMessage : I_TcMessage := fbResult;
stInfo : ST_CoE_DiagHistory_Info;
END_VAR
Eingänge
Name | Typ | Beschreibung |
---|---|---|
sNetId | T_AmsNetId | Dieser Eingang wird nicht verwendet und sollte nicht zugewiesen werden. |
nSlaveAddr | UINT | Dieser Eingang wird nicht verwendet und sollte nicht zugewiesen werden. |
bEnable | BOOL | Puls: die Diag History wird einmal ausgelesen. Bei jeder neuen Flanke, wird erst alles resetet. Anschließend wird die Verbindung neu aufgebaut und der Slave ausgelesen. |
bAck | BOOL | Alle Meldungen werden quittiert, wenn bAck getriggert wird. |
tTimeout | TIME | Timeout für die jeweiligen ADS Reads/Writes im Baustein. Default ist hier der ADS-Timeout von fünf Sekunden. |
tReadInterval | TIME | Zeitintervall zwischen dem wiederholten Auslesen des Slaves bei dauerhaftem „bEnable“-Signal. Default ist ein Zeitintervall von 10 Sekunden. |
stOptions | Steuerelemente zur Handhabung von CoE Diag History | |
refAxis | REFERNCE TO AXIS_REF | AXIS_REF einer Achse, aus dieser kann die Adresse des entsprechenden Slaves ermittelt werden. |
Ein-/Ausgänge
Name | Typ | Beschreibung |
---|---|---|
aDiagHistory | ARRAY[*] OF ST_CoE_DiagHistory_Entry | Dieser In-Out-Variable wird ein Array beliebiger Länge von ST_CoE_DiagHistory_Entry zugewiesen. Der FB passt sich automatisch der Länge des Arrays an. Wenn es zu kurz ist, werden ältere Meldungen im Diag History Object des Slaves ignoriert. Wenn es zu lang ist, werden überflüssige Einträge gelöscht. Eine größere Länge als 250 ergibt hier keinen Sinn, da die ETG-Norm ein Max. von 250 Meldungen für das Diag History Object definiert. |
Ausgänge
Name | Typ | Beschreibung |
---|---|---|
bBusy | BOOL | Einfaches Busy Signal, signalisiert, dass der Baustein einen Slave ausliest. |
bValid | BOOL | Das Diag History Object wurde erfolgreich ausgelesen und die ausgegebenen Meldungen sind gültig. |
bError | BOOL | Wird TRUE, sobald eine Fehlersituation eintritt. |
hrErrorCode | HRESULT | Liefert bei einem gesetzten bError-Ausgang einen Fehlercode. |
ipErrorMessage | I_TcMessage | Liefert bei einem gesetzten bError-Ausgang detaillierte Informationen. Der hierzu verwendete Schnittstellenzeiger ist immer gültig (ungleich Null) und vom Typ I_TcMessage. Insbesondere ist der entsprechende Fehler im PLC-OnlineView sofort als Klartext zu sehen. |
stInfo | Liefert Informationen vom ausgelesenen EtherCAT Slave Diag History Object. Dies beinhaltet u.a. den verwendeten Buffer Mode und Informationen zu den verfügbaren Meldungen. Dieser Ausgang wird nur nach erfolgreichem Lesen aktualisiert. |
Voraussetzungen
TwinCAT Version | Hardware | Einzubindende Bibliotheken |
---|---|---|
TwinCAT 3.1 >= Build 4024.57 | x86, x64, ARM | Tc3_EtherCATDiag |