Um eine Diagnose durchführen zu können, werden die im Weiteren beschriebenen Methoden GetMasterDiag und GetSlaveDiag und sowie deren Strukturen ST_MasterDiag und ST_SlaveDiag und verwendet.
Methoden GetMasterDiag und GetSlaveDiag
Die beiden Methoden GetMasterDiag und GetSlaveDiag, die in der Schnittstelle ICmpIoDrvProfibusDiag des Funktionsbausteins IoDrvPROFIBUSDPV1Master definiert sind, bieten Zugriff auf die Strukturen die im Register „Status“ des PROFIBUS-DPV1-Master sichtbar sind.
Method GetMasterDiag
METHOD GetMasterDiag : DINT
VAR_IN_OUT
stMasterDiag : ST_MasterDiag;
END_VAR
Die Struktur ST_MasterDiag ist in der Bibliothek IoDrvPROFIBUSDPV1Master im Ordner DataStructs definiert. Um die Struktur nutzen zu können, muss eine Variable von diesem Typ angelegt werden.
Parameter |
Bedeutung |
---|---|
CommunicationState |
Aktueller Netzwerk-Status des Kommunikationskanals Wert UNKNOWN / 0: Wert NOT_CONFIGURED / 1. Wert STOP / 2: Wert IDLE / 3: Wert OPERATE / 4: |
ErrorCount |
Gesamtanzahl der entdeckten Fehler seit dem letzten Power-up bzw. dem letzten Restart |
SlaveState |
Wert 0: undefiniert Wert 1: OK Wert 2: mindestens ein Slave hat einen Fehler Wert 3: mindestens ein Slave hat eine Warnung |
NumConfigSlaves |
Anzahl der konfigurierten Slaves im Netzwerk |
NumActiveSlaves |
Anzahl der aktiven Slaves im Netzwerk |
NumDiagSlaves |
Anzahl der Slaves mit Diagnose im Netzwerk |
Method GetSlaveDiag
METHOD GetSlaveDiag : DINT
VAR_INPUT
byStationAddress : BYTE;
END_VAR
VAR_IN_OUT
stSlaveDiag : ST_SlaveDiag;
END_VAR
Die Struktur ST_SlaveDiag ist in der Bibliothek IoDrvPROFIBUSDPV1Slave im Ordner DataStructs definiert. Um die Struktur nutzen zu können, muss eine Variable von diesem Typ angelegt werden.
Status 1
Bit |
Bedeutung |
---|---|
D7 |
Master_Lock: Slave wird durch einen anderen Master parametriert |
D6 |
Prm_Fault: Telegrammfehler des letzten Parameters |
D5 |
Inv._Sl_Res.: Unplausible Antwort des Slaves |
D4 |
Not_Supp.: Unbekannter Befehl durch Slave festgestellt |
D3 |
Ext_Diag: Bereich EXT_Diag wird für die erweiterte Diagnose verwendet |
D2 |
Cfg_Fault: Slave ist falsch parametriert |
D1 |
Sta._Not_Rdy: Slave nicht bereit |
D0 |
Sta._Non_Exist: Slave antwortet nicht |
Status 2
Bit |
Bedeutung |
---|---|
D7 |
Deaktivated: Slave nicht projektiert |
D6 |
Reserviert |
D5 |
Sync_Mode: Befehl Sync ist aktiv |
D4 |
Freeze_Mode: Befehl Freeze ist aktiv |
D3 |
WD_On: Watchdog ist aktiviert |
D2 |
1 |
D1 |
Stat_Diag: Hole solange Diagnose vom Slave, bis Bit ausgegeben wird. |
D0 |
Prm_Req: Slave muss parametriert werden |
Status 3
Bit |
Bedeutung |
---|---|
D7 |
Ext_Diag_Ovfl. |
D6 |
Reserviert |
D5 |
|
D4 |
|
D3 |
|
D2 |
|
D1 |
|
D0 |
|
Falls ein Fehler aufgetreten ist, wird dieser im Register "Status" des jeweiligen Geräte-Dialogs aufgelistet.
HINWEIS: Diagnoseparameter dürfen in allen Tasks außer der SystemMotionTask getract werden, da sonst der RTP durch das Abholen der Diagnose vom NetX-Chip verzögert werden kann.