Box States
Direkt unter dem PROFINET Controller Protokoll gibt es ein Sammel-PROFINET Error und einen Sammel-PROFINET Status. Beide geben die Anzahl der Geräte wieder, bei denen ein Problem aufgetreten bzw. bei welchen eine Diagnose verfügbar ist. D.h. der Fehler zeigt mögliche Probleme beim Verbindungsaufbau an oder Gründe für einen Abbruch. Die Diagnose gibt Status-Infos über eine bestehende Verbindung.
PnIoError - Anzahl an PROFINET IO Geräten, die einen Fehler haben
PnIoDiag - Anzahl an PROFINET IO Geräten, die eine Diagnose anstehen haben
Welches Gerät bzw. Box ein Problem hat kann, im Protokoll unter Box States auf einen Blick geprüft werden.
Aktuell werden folgende Fehlermeldungen über den "PnIoState" angezeigt.
Nummer | Text | Beschreibung | Abhilfe/Ursache |
---|---|---|---|
0 | No Error | Kein Fehler | Kein Fehler |
1 | PROFINET Device state machine in in boot mode | PROFINET DeviceStateMachine ist noch in der Hochlauf Phase | Kein Fehler, warten |
2 | Device not found | Gerät antwortet nicht auf den Indentify Request | Verbindung prüfen, Gerät eingeschaltet und angeschlossen, wurde das Gerät mit dem richtigen Namen benannt? |
3 | The stationame is not unique | Stationsname ist nicht eindeutig | Es gibt zwei oder mehr Geräte mit demselben PROFINET-Namen im Netzwerk. Eine korrekte Identifizierung kann nicht erfolgen. |
4 | IP could not set | IP-Adresse konnte nicht gesetzt werden | Das PROFINET Gerät hat aus irgendwelchen Gründen das Setzen der IP settings abgelehnt. Prüfen, ob die IP-Einstellungen korrekt sind. |
5 | IP conflict | Im Netzwerk trat/ist ein IP-Konflikt aufgetreten | Eine mögliche Ursache ist, dass mehrere Geräte die gleiche IP-Adresse haben. |
6 | DCP set was not successful | Auf einen DCP Set kam keine bzw. eine fehlerhafte Antwort | Verbindung prüfen, Gerät angeschlossen, wurde das Gerät mit dem richtigen Namen benannt? |
7 | Watchdog error | Die Verbindung wurde mit einem Watchdog-Fehler abgebrochen | Zykluszeit prüfen, Verbindung prüfen, ggf. Watchdog-Faktor erhöhen. |
8 | Datahold error | Die Verbindung wurde mit einem Datahold-Fehler abgebrochen | Frame Datenstatus war für die Länge des DataHoldTimers ungültig. Evtl. Gerät neu starten |
9 | RTC3: Sync signal could not started | Nur für IRT: Das Sync-Signal konnte nicht gestartet werden. | EtherCAT Sync Signal korrekt bzw. Sync0 gestartet? |
10 | PROFINET Controller has a link error | Der PROFINET Controller hat keinen Link | Kabel und Verbindung checken. |
11 | The aliasname is not unique | Der Aliasname ist nicht eindeutig | Es gibt zwei oder mehr Geräte mit demselben Alias Namen im Netzwerk. Dieser setzt sich aus Nachbarschaftsinformationen zusammen (PortId.ChassisId). Eine korrekte Identifizierung kann nicht erfolgen. |
12 | The automatic name assignement isn't possible - wrong device type | Das automatische Setzen des Namens ist nicht möglich | An der projektierten Position befindet sich nicht das erwartete PROFINET-Gerät (VendorId oder DeviceId stimmen nicht überein). Somit ist kein automatisches Benennen und damit kein Geräteanlauf möglich. |
31 | Only for EtherCAT gateways: WC-State of cyclic EtherCAT frame is 1 | Nur für EL6631: EtherCATWC State ist auf 1 | Am EtherCAT Master + Slave den Mode checken (OP?).
|
Im "BoxPnIoDiag" kann im Gegensatz zum State auch mehr als ein Zustand gleichzeitig angezeigt werden, d.h. das Ganze ist bitcodiert und es können bis zu 16 Infos angezeigt werden. Aktuell werden folgende Zustände dargestellt.
0x0000 = No diagnosis
0xXXX1 = IOC-AR is not established
0xXXX2 = IOC-AR is established
0xXXX4 = IOC-AR is established but no ApplReady
0xXXX8 = IOC-AR is established but module difference
0xXX1X = At least one AlarmCR get diagnosis alarm
0xX1XX = At least one InputCR is invalid
0xX2XX = At least one InputCR Provider is in stop
0xX4XX = At least one InputCR Problemindicator is set
0x1XXX = At least one OutputCR is invalid
0x2XXX = At least one OutputCR Provider is in stop
0x4XXX = At least one OutputCR Problemindicator is set
Es werden hier zum einen Infos über den Zustand der IO Controller Single AR angezeigt. Außerdem werden aus den Frame-Datenstati der einzelnen CRs Sammelstati gebildet. Das gilt für die Input- und die OutputCRs (aktuell ist nur eine, zukünftig sind mehrere CRs möglich). Des Weiteren wird im "PnIoDiag" auch ein PROFINET Alarm angezeigt
Auslesen über ADS
Das Auslesen des Box-Status kann über einen ADS Read erfolgen.
ADS Read:
NetId = AMSNETID des PROFINET Controllers
Port = BoxPort (0x1000 + BoxId)
Indexgroup = 0xF829
IndexOffset = 0
Length = sizeof(TPnIoDeviceDiagData);
wobei:typedef struct{
WORD pnioState;
WORD pnioDiag;
WORD NrOfInputCRs;
WORD NrOfOutputCRs;
WORD reserved[8];} TPnIoDeviceDiagData, *PTPnIoDeviceDiagData;
Auslesen über CoE (für EL663x)
Das Auslesen des Box-Status kann für die EL663x auch über CoE erfolgen. Hierfür ist der Index 0xAyy0(wobei yy die Adapter / Device Nummer ist) und der Subindex 0x001 zu nehmen.