Diagnose Eingänge
Der Master verfügt über verschiedene Diagnosevariablen, die den Zustand der Karte sowie des Profibusses beschreiben und die in der SPS verknüpft werden können:
Diagnosevariablen des PROFIBUS-masters
CdlInfo.error: Zeigt die Anzahl der Slaves an, mit denen kein Datenaustausch im letzten Zyklus durchgeführt werden konnte, nur wenn dieser Wert ungleich 0 ist, muss der BoxState der Slaves überprüft werden
CdlInfo.cycleCounter: wird am Ende jedes PROFIBUS-Zyklus inkrementiert, so dass man mit dieser Variable feststellen kann, ob der letzte Zyklus beendet war, bevor die Task gestartet wurde
CdlInfo.actualCycleTime: zeigt die aktuelle Zykluszeit in 4/25 µs an, diese Variable wird nur aktualisiert, falls alle Slaves im Datenaustausch sind (also CdlInfo.error gleich 0 ist)
CdlInfo.actualModulo: zeigt das aktuelle Modulo an, diese Variable spielt nur eine Rolle, wenn die Slaves priorisiert sind (s. Kapitel Slave-Priorisierung/mehrere DP-Zyklen)
Counter: werden für den Redundanz-Mode benutzt
DiagFlag: Zeigt an, ob sich die Master-Diagnoseinformationen der Karte geändert haben, die dann per ADS vom Steuerungsprogramm ausgelesen werden, woraufhin die Variable "DiagFlag" wieder zurückgesetzt wird.
GlobalState: GlobalState[0] gibt den Zustand der FC310x an, GlobalState[1-2] zeigen globale Bus-Stati an, GlobalState[3] ist reserviert für Erweiterungen:
RESET (1): Router der Karte wurde nicht gestartet (nach dem Hochlauf des PCs)
INIT (2): Router gestartet, Karte aber nicht am PROFIBUS aktiv
STOP (3): Karte am PROFIBUS aktiv, aber kein zyklischer Datenaustausch
STOPPING (4): Karte beendet den zyklischen Datenaustausch
RUN (0): Karte im zyklischen Datenaustausch
GlobalState[1] zählt die festgestellten Bus-Errors (ab FC310x, Version 1)
GlobalState[2]: Bit 0 ist gesetzt, wenn keine 11 Bit-Ruhezeit auf dem PROFIBUS erkannt wird (-> Verkablung prüfen), Bit 1 enthält die Betriebsart CLEAR (Bit 1 = 1) oder OPERATE (Bit 1 = 0), die anderen Bits (2 bis 7) sind reserviert für Erweiterungen (ab FC310x, Version 1)
GlobalState[3] ist reserviert für Erweiterungen
CycleFailedCounter: Dieser Zähler zeigt an, wie oft beim Start der TwinCAT-Task der PROFIBUS-Zyklus der FC310x noch nicht fertig war.
StartRedundantMasterFlag: wird für den Redundanz-Mode benutzt
Master-Diagnosedaten
Die Master-Diagnosedaten können per ADS ausgelesen werden:
|
| Net-ID des Masters (s. Karteireiter ADS des Devices) |
| |
| |
| Offset innerhalb der Diagnosedaten |
| Länge der auszulesenden Diagnosedaten |
| |
Die Master-Diagnosedaten sind wie folgt aufgebaut:
|
| BusStatus-Liste, je Stationsadresse 0-125 ein Byte, das den Status der Station enthält (s. BoxState bei den PROFIBUS-Boxen, zusätzlich für nicht projektierte Stationen: 0x80 - nicht vorhanden, 0x81 - Slave, 0x82 - Master nicht bereit für Token-Ring, 0x83 - Master bereit für Token-Ring, 0x84 - Master im Token-Ring) |
| |
| Zustand der FC310x (->GlobalState) |
| Sende-Fehler-Zähler über alle gesendeten Telegramme |
| Empfangs-Fehler-Zähler über alle empfangenen Telegramme |
| reserviert für Erweiterungen |
| Sync-Failed-Counter (s. Karteireiter EquiDiag (TwinCAT 2.8) bzw. MC-Diag (TwinCAT 2.9)) |
| Zyklus-Start-Fehler-Zähler, zählt hoch, wenn der PROFIBUS-Zyklus erneut gestartet wird bevor der alte Zyklus beendet wurde (wird vom TwinCAT-IO-Treiber abgefangen, nur bei kundenspezifischen Treibern möglich) |
| Time-Control-Failed-Counter (s. Karteireiter EquiDiag (TwinCAT 2.8) bzw. MC-Diag (TwinCAT 2.9)) |
| reserviert für Erweiterungen |
| minimaler Nachladewert des Echtzeittimers |
| maximaler Nachladewert des Echtzeittimers (max. FCxxxx-Jitter (s. Karteireiter EquiDiag (TwinCAT 2.8) bzw. MC-Diag (TwinCAT 2.9)) = max. Nachladewert - min. Nachladewert) |
| PLL-Overflow-Counter (s. Karteireiter EquiDiag (TwinCAT 2.8) bzw. MC-Diag (TwinCAT 2.9)) |
| PLL-Underflow-Counter (s. Karteireiter EquiDiag (TwinCAT 2.8) bzw. MC-Diag (TwinCAT 2.9)) |
TcIo-Diagnosedaten
Der TcIo-Treiber generiert ebenfalls Diagnosedaten, die per ADS ausgelesen, aktiviert, deaktiviert und zurückgesetzt werden können, aber defaultmäßig deaktiviert sind. Sie werden aktiviert, wenn der Karteireiter EquiDiag oder GeneralDiag (TwinCAT 2.8) MC-Diag bzw. DP-Diag oder des Devices angewählt wird und deaktiviert, wenn der Karteireiter abgewählt wird.
Aktivieren, Deaktivieren und Zurücksetzen der TcIo-Diagnosedaten
|
| |
| |
| 0x00005000 + Device-Id (Karteireiter Allgemein des Devices) |
| |
| |
| 0: Deaktivieren der TcIo-Diagnosedaten 1: Aktivieren der TcIo-Diagnosedaten 2: Zurücksetzen der TcIo-Diagnosedaten |
Auslesen der TcIo-Diagnosedaten
|
| |
| |
| 0x00005000 + Device-Id (Karteireiter Allgemein des Devices) |
| |
| Länge der TcIo-Diagnosedaten |
| |
Die TcIo-Diagnosedaten sind wie folgt aufgebaut:
|
| Max. TwinCAT-Jitter (in 100 ns, s. Karteireiter EquiDiag (TwinCAT 2.8) bzw. MC-Diag (TwinCAT 2.9)) |
| Min. Mapping-Time (in 100 ns, s. Karteireiter EquiDiag (TwinCAT 2.8) bzw. MC-Diag (TwinCAT 2.9)) |
| Max. Mapping-Time (in 100 ns, s. Karteireiter EquiDiag (TwinCAT 2.8) bzw. MC-Diag (TwinCAT 2.9)) |
| Max. FC310x-Jitter (in FC310x-Ticks, s. Karteireiter EquiDiag (TwinCAT 2.8) bzw. MC-Diag (TwinCAT 2.9)) |
| CycleWithNoDxch-Counter (s. Karteireiter GeneralDiag (TwinCAT 2.8) bzw. DP-Diag (TwinCAT 2.9)) |
| CycleWithRepeat-Counter (s. Karteireiter GeneralDiag (TwinCAT 2.8) bzw. DP-Diag (TwinCAT 2.9)) |
| |
| Actual Cycle-Time (in 4/25 µs, s. Karteireiter GeneralDiag (TwinCAT 2.8) bzw. DP-Diag (TwinCAT 2.9)) |
| Max. Cycle-Time (in 4/25 µs, s. Karteireiter GeneralDiag (TwinCAT 2.8) bzw. DP-Diag (TwinCAT 2.9)) |
| Min. Cycle-Time (in 4/25 µs, s. Karteireiter GeneralDiag (TwinCAT 2.8) bzw. DP-Diag (TwinCAT 2.9)) |
| RealFailedCycle-Counter (s. Karteireiter GeneralDiag (TwinCAT 2.8) bzw. DP-Diag (TwinCAT 2.9)) |
| EquiCycleNoDxch-Counter (s. Karteireiter EquiDiag (TwinCAT 2.8) bzw. MC-Diag (TwinCAT 2.9)) |
| EquiCycleRepeat-Counter (s. Karteireiter EquiDiag (TwinCAT 2.8) bzw. MC-Diag (TwinCAT 2.9)) |
| Max. Repeats/Equi-Cycle (s. Karteireiter EquiDiag (TwinCAT 2.8) bzw. MC-Diag (TwinCAT 2.9)) |
| Actual Equi-Cycle-Time (in 4/25 µs, s. Karteireiter EquiDiag (TwinCAT 2.8) bzw. MC-Diag (TwinCAT 2.9)) |
| Max. Equi-Cycle-Time (in 4/25 µs, s. Karteireiter EquiDiag (TwinCAT 2.8) bzw. MC-Diag (TwinCAT 2.9)) |
| Min. Equi-Cycle-Time (in 4/25 µs, s. Karteireiter EquiDiag (TwinCAT 2.8) bzw. MC-Diag (TwinCAT 2.9)) |