FB_CoE_DiagHistory_Read

FB_CoE_DiagHistory_Read 1:

Der Funktionsbaustein FB_ReadCoEDiagHistory kann EtherCAT Slaves, die das CoE Diag History Object unterstützen, auslesen. Der EtherCAT Slave muss sich dafür an die ETG-Norm halten.

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_DiagHistory_Entry;
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_Read 2: Eingänge

Name

Typ

Beschreibung

sNetId

T_AmsNetId

NetID des Slaves

nSlaveAddr

UINT

Port-Adresse des Slaves

bEnable

BOOL

Puls: die Diag History wird einmal ausgelesen.
Dauerhaft: die Diag History wird wiederholt ausgelesen (siehe tReadInterval).

Bei jeder neuen Flanke, wird 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 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

FB_CoE_DiagHistory_Read 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_Read 4: Ausgänge

Name

Typ

Beschreibung

bBusy

BOOL

Einfaches Busy Signal, es 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