FB_CoE_DiagHistory_ReadAxis

FB_CoE_DiagHistory_ReadAxis 1:

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

FB_CoE_DiagHistory_ReadAxis 2: 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.
Dauerhaft: die Diag History wird wiederholt ausgelesen (siehe tReadInterval).

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

ST_CoE_DiagHistory_Options

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.

FB_CoE_DiagHistory_ReadAxis 3: 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.

FB_CoE_DiagHistory_ReadAxis 4: 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

ST_CoE_DiagHistory_Info

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