EtherCAT Diagnose
Diese Bibliothek kommt zum Einsatz um Diagnosemöglichkeiten für ein EtherCAT-Netzwerk in einer Baumüller-PLC zur Verfügung zu stellen.
TB_ECT_Diagnosis
Dieser Baustein stellt Diagnosemöglichkeiten eines EtherCAT-Bussystems für das PLC-Projekt zur Verfügung. Es werden Informationen (aktueller Zustand, Fehlerinformationen) des EtherCAT-Masters, des verwendeten EtherCAT-Kernels und jedes EtherCAT-Slave zur Verfügung gestellt. Die Zuordnung zu jedem Slave erfolgt anhand seiner Node-ID. Ebenfalls wird der Einfachheit halber ein Bit ausgegeben, welches einen funktionierenden Feldbus meldet. Beim erstmaligen Aufstarten des FB wird immer überprüft, ob der Baustein für die verwendete EtherCAT-Master Firmware, bzw. den aktuell verwendeten EtherCAT-Master Kernel geeignet ist. Optional kann zusätzlich die verwendete Datensatz-ID der aktiven EtherCAT-Konfiguration überprüft werden.
Die Klartext Fehlermeldungen sind aktuell ausschließlich auf Englisch hinterlegt. Damit dem Baustein die korrekten Daten zur Verfügung stehen, müssen globale Variablen mit den unten genannten Hardware-Adressen angelegt werden. Diese müssen dem Baustein als Ein- und Ausgangsvariable übergegen werden. Als Datentyp der Variablen müssen Strukturen (siehe unten) im PLC-Projekt angelegt werden.
Der Baustein ist kompatiblel bis zur EtherCAT-Masterfirmware 1427.0127.
Einschränkungen:
- Die Möglichkeit der EtherCAT-Diagnose steht ab EtherCAT-Masterfirmware 1427.0114 und EtherCAT Kernel Version > 100 zur Verfügung
- Die aktuelle Anzahl der Slaves ist intern auf 256 begrenzt!
Ausgänge
| Bezeichnung: | Datentyp: | Beschreibung: |
|---|---|---|
| x_EctIsOK | BOOL | TRUE: zentrale Meldung EtherCAT ist ok |
| u_EctSlavesConfigured | UINT | Anzahl der in der EtherCAT-Konfiguration definierten EtherCAT-Slaves |
| u_EctSlavesFound | UINT | Anzahl der am Bus gefunden EtherCAT-Slaves |
| u_EctSlavesInOperational | UINT | Anzahl der sich aktuell im Zustand Operational befindlichen EtherCAT-Slaves |
| w_EctMasterKernelVersion | WORD | Version des aktuellen EtherCAT-Kernel |
| s_EctKernelErrorInfo | STRING | Klartetext Fehlemeldungen EtherCAT-Kernel |
| s_EctMasterErrorInfo | STRING | Klartetext Fehlemeldungen EtherCAT-Master |
| a_EctDatasetIdFound | DWORD_4_BMARRAY | eindeutige Kennung (Datensatz-ID) der aktuell verwendeten EtherCAT-Konfiguration des Masters, die Datensatz-ID kann beim Parametrieren mit dem Engineering Framework ProMaster eingestellt werden |
| x_Active | BOOL | TRUE: Diagnose EtherCAT ist aktiv |
| x_Error | BOOL | TRUE: Baustein hat einen Fehler |
| w_ErrorID | WORD | detaillierte Fehlerinformationen des Bausteins, die Fehlerbedeutung kann in der Detailbeschreibung nachgelesen werden |
Beschreibungdereinausg.nge
Die zu verwendeten Strukturen sind in verschiedenen Bibliotheken enthalten und müssen eingebunden werden. Die Strukturen für _EctSlave, _EctMaster und _EctMasterKernel sind in der Bibliothek BM_TYPES enthalten. In der Bibliothek TECH_TYPES sind die Strukturen für _EctMasterActState und a_EctSlaveActState enthalten.
Bei der Einbindung der Strukturen _EctSlave, _EctMaster und _EctMasterKernel muss darauf geachtet werden, dass diese auf eine spezifische DPRAM-Adresse gelegt werden müssen.
| Bezeichnung: | Datentyp: | Adresse: |
|---|---|---|
| _EctMasterKernel | ECM_KERNEL_DIAGNOSTIC | %MD3.2016648 |
| _EctMaster | ECM_MASTER_STATUS | %MD3.2016672 |
| _EctSlave | ECM_SLAVE_STATES | %MD3.2027648 |
| _EctMasterActState | ECT_DIAGNOSIS_ECM_STATE | Adresse nicht erforderlich oder frei wählbar |
| a_EctSlaveActState | ARRAY_ECT_DIAGNOSIS_ECS_STATE | Adresse nicht erforderlich oder frei wählbar |
Beschreibungdereing.nge
Eingang x_Enable
TRUE: Freigabe des Baustein
FALSE: Baustein ist nicht freigegeben, alle Ausgänge sind 0, es findet keine Diagnose statt
Eingang x_CheckDatasetId
TRUE: Beim Freigeben des FB wird die Datensatz ID der EtherCAT-Konfiguration einmalig überprüft
FALSE: Das Freigeben erfolgt ohne Überprüfung der Datensatz-ID
Eingang t_ErrorInfoToggle
Zyklus der im Fehlerfall toggelnden Meldungen, muss größer als 0 gewählt werden
Eingang a_DatasetId
Hier kann die zu überprüfende Datensatz-ID der EtherCAT-Konfiguration vorgegeben werden. Durch den Eingang x_CheckDatasetId kann die Überprüfung aktiviert werden. Die ID ist ein DWord Array mit 4 Elementen und entspricht der Konfiguration, die z.B. durch ProMaster eingestellt wird.
a_DatasetID[0] entspricht DWord 0 in ProMaster
a_DatasetID[1] entspricht DWord 1 in ProMaster
a_DatasetID[2] entspricht DWord 2 in ProMaster
a_DatasetID[3] entspricht DWord 3 in ProMaster
Grundlegende Informationen zur Datensatz-ID in ProMaster:
Mit Hilfe der ID kann der EtherCAT-Konfiguration, welche vom EtherCAT-Master verwendet wird ein eindeutige Kennung zugewiesen werden. Somit kann diese beispielsweise nach dem Maschinenstart überprüft und im Falle eines Unterschiedes ein Fehler ausgegeben werden.
Die Datensatz-ID kann mit ProEtherCAT eingesehen und vorgenommen werden.
ProMaster-Einstellungen:
Beschreibungderausg.nge
Ausgang x_EctIsOK
TRUE: zentrale Meldung EtherCAT ist in Ordnung
FALSE: zentrale Meldung EtherCAT ist nicht in Ordnung, für genauere Informationen siehe Zustände und Klartextfehlermeldungen EtherCAT-Master, EtherCAT-Kernel, EtherCAT-Slaves
Ausgang u_EctSlavesConfigured
Anzahl der in der EtherCAT-Konfiguration definierten EtherCAT-Slaves
Ausgang u_EctSlavesFound
Anzahl der am Bus gefunden EtherCAT-Slaves
Ausgang u_EctSlavesInOperational
Anzahl der sich aktuell im Zustand Operational befindlichen Slaves
Ausgang w_EctMasterKernelVersion
Version des aktuellen EtherCAT-Kernel
Ausgang s_EctKernelErrorInfo
Klartext Fehlermeldungen des EtherCAT-Kernel
Ausgang s_EctMasterErrorInfo
Klartext Fehlermeldungen des EtherCAT-Master
Ausgang a_EctDatasetIdFound
Datensatz-ID der aktuell geladenen EtherCAT-Konfiguration, für genauere Informationen zur Datensatz-ID, siehe Detailbeschreibung der Eingänge a_DatasetId
Ausgang x_Active
TRUE: Diagnose des EtherCAT-Feldbus ist aktiv
FALSE: Diagnose des EtherCAT-Feldbus ist nicht aktiv, entweder der Baustein ist nicht freigegeben, oder er hat einen Fehler
Ausgang x_Error
TRUE: es liegt ein Bausteinfehler vor
FALSE: es liegt kein Bausteinfehler vor
Ausgang w_ErrorID
Bit 0: Baustein ist für diese EtherCAT-Kernel Version nicht geeignet
Bit 1: Anzahl der konfigurierten Slaves ist größer als 256, der Baustein ist hierfür nicht geeignet
Bit 2: Überprüfung Datensatz-ID der EtherCAT-Konfiguration fehlgeschlagen: Sollzustand passt nicht zu Istzustand
Bit 3: Toggle intervall der Baustein Fehler muss kleiner 10 Sekunden sein, Eingang: t_ErrorInfoToggle
Empfohlene Task: Cyclic/Default
Verwendete Bibliotheken: BM_TYPES_40bd04 oder höher TECH_TYPES_40bd08 oder höher
Eingänge
| Bezeichnung: | Datentyp: | Beschreibung: |
|---|---|---|
| x_Enable | BOOL | TRUE: Baustein freigeben |
| x_CheckDatasetId | BOOL | TRUE: Beim Start Datensatz ID der EtherCAT-Konfiguration überprüfen |
| t_ErrorInfoToggle | TIME | Zyklus der im Fehlerfall toggelnden Meldungen, Defaulteinstellung 1s, wenn Eingang = 0s, Maximal erlaubter Werte: 10s |
| a_DatasetId | DWORD_4_BMARRAY | Zu erwartete Datensatz-ID der EtherCAT-Konfiguration, die Datensatz-ID kann beim Parametrieren mit dem Engineering Framework ProMaster eingestellt werden |
Ein-/Ausgänge
| Bezeichnung: | Datentyp: | Beschreibung: |
|---|---|---|
| _EctMasterKernel | ECM_KERNEL_DIAGNOSTIC | DP-RAM Strukturvariable EtherCAT-Kernel, Struktur Aufbau und Hardware-Adressierung siehe Detailbeschreibung der Eingänge |
| _EctMaster | ECM_MASTER_STATUS | DP-RAM Strukturvariable EtherCAT-Master, Struktur Aufbau und Hardware-Adressierung siehe Detailbeschreibung der Eingänge |
| _EctSlave | ECM_SLAVE_STATES | DP-RAM Strukturvariable EtherCAT-Slave, Struktur Aufbau und Hardware-Adressierung siehe Detailbeschreibung der Eingänge |
| _EctMasterActState | ECT_DIAGNOSIS_ECM_STATE | aktueller Zustand des EtherCAT-Masters |
| a_EctSlaveActState | ARRAY_ECT_DIAGNOSIS_ECS_STATE | aktueller Zustand jedes EtherCAT-Slave, Zuordnung erfolgt anhand der Node-ID |
