FC310x - Master-Diagnose
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:
CdlInfo:
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-Zyklusses 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..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:
ADS-Read-Parameter |
Bedeutung |
---|---|
Net-ID |
Net-ID des Masters (s. Karteireiter ADS des Devices) |
Port |
200 |
IndexGroup |
0x0000F100 |
IndexOffset |
Offset innerhalb der Diagnosedaten |
Length |
Länge der auszulesenden Diagnosedaten |
Data |
Diagnosedaten |
Die Master-Diagnosedaten sind wie folgt aufgebaut:
Offset |
Beschreibung |
---|---|
0 -125 |
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) |
126 - 127 |
reserviert |
128 - 135 |
Zustand der FC310x (->GlobalState) |
136 - 137 |
Sende-Fehler-Zähler über alle gesendeten Telegramme |
138 - 139 |
Empfangs-Fehler-Zähler über alle empfangenen Telegramme |
140 - 255 |
reserviert für Erweiterungen |
256 - 257 |
Sync-Failed-Counter (s. Karteireiter EquiDiag (TwinCAT 2.8) bzw. MC-Diag (TwinCAT 2.9)) |
258 - 259 |
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) |
260 - 261 |
Time-Control-Failed-Counter (s. Karteireiter EquiDiag (TwinCAT 2.8) bzw. MC-Diag (TwinCAT 2.9)) |
262 - 263 |
reserviert für Erweiterungen |
264 - 265 |
minimaler Nachladewert des Echtzeittimers |
266 - 267 |
maximaler Nachladewert des Echtzeittimers (max. FCxxxx-Jitter (s. Karteireiter EquiDiag (TwinCAT 2.8) bzw. MC-Diag (TwinCAT 2.9)) = max. Nachladewert - min. Nachladewert) |
268 - 269 |
PLL-Overflow-Counter (s. Karteireiter EquiDiag (TwinCAT 2.8) bzw. MC-Diag (TwinCAT 2.9)) |
270 - 271 |
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
ADS-Write-Parameter |
Bedeutung |
---|---|
Net-ID |
Net-ID des PCs |
Port |
300 |
IndexGroup |
0x00005000 + Device-Id (Karteireiter Allgemein des Devices) |
IndexOffset |
0xFFFFF100 |
Length |
2 |
Data |
0: Deaktivieren der TcIo-Diagnosedaten 1: Aktivieren der TcIo-Diagnosedaten 2: Zurücksetzen der TcIo-Diagnosedaten |
Auslesen der TcIo-Diagnosedaten
ADS-Read-Parameter |
Bedeutung |
---|---|
Net-ID |
Net-ID des PCs |
Port |
300 |
IndexGroup |
0x00005000 + Device-Id (Karteireiter Allgemein des Devices) |
IndexOffset |
0xFFFFF100 |
Length |
Länge der TcIo-Diagnosedaten |
Data |
TcIo-Diagnosedaten |
Die TcIo-Diagnosedaten sind wie folgt aufgebaut:
Voraussetzungen
Offset |
Beschreibung |
---|---|
0 -3 |
Max. TwinCAT-Jitter (in 100 ns, s. Karteireiter EquiDiag (TwinCAT 2.8) bzw. MC-Diag (TwinCAT 2.9)) |
4 - 7 |
Min. Mapping-Time (in 100 ns, s. Karteireiter EquiDiag (TwinCAT 2.8) bzw. MC-Diag (TwinCAT 2.9)) |
8 - 11 |
Max. Mapping-Time (in 100 ns, s. Karteireiter EquiDiag (TwinCAT 2.8) bzw. MC-Diag (TwinCAT 2.9)) |
12 - 15 |
max. FC310x-Jitter (in FC310x-Ticks, s. Karteireiter EquiDiag (TwinCAT 2.8) bzw. MC-Diag (TwinCAT 2.9)) |
16 - 19 |
CycleWithNoDxch-Counter (s. Karteireiter GeneralDiag (TwinCAT 2.8) bzw. DP-Diag (TwinCAT 2.9)) |
20 - 23 |
CycleWithRepeat-Counter (s. Karteireiter GeneralDiag (TwinCAT 2.8) bzw. DP-Diag (TwinCAT 2.9)) |
24 - 27 |
Max. Repeat/Cycle (s. Karteireiter GeneralDiag (TwinCAT 2.8) bzw. DP-Diag (TwinCAT 2.9)) |
28 - 31 |
Actual Cycle-Time (in 4/25 µs, s. Karteireiter GeneralDiag (TwinCAT 2.8) bzw. DP-Diag (TwinCAT 2.9)) |
32 - 35 |
Max. Cycle-Time (in 4/25 µs, s. Karteireiter GeneralDiag (TwinCAT 2.8) bzw. DP-Diag (TwinCAT 2.9)) |
36 - 39 |
Min. Cycle-Time (in 4/25 µs, s. Karteireiter GeneralDiag (TwinCAT 2.8) bzw. DP-Diag (TwinCAT 2.9)) |
40 - 43 |
RealFailedCycle-Counter (s. Karteireiter GeneralDiag (TwinCAT 2.8) bzw. DP-Diag (TwinCAT 2.9)) |
44 - 47 |
EquiCycleNoDxch-Counter (s. Karteireiter EquiDiag (TwinCAT 2.8) bzw. MC-Diag (TwinCAT 2.9)) |
48 - 51 |
EquiCycleRepeat-Counter (s. Karteireiter EquiDiag (TwinCAT 2.8) bzw. MC-Diag (TwinCAT 2.9)) |
52 - 55 |
Max. Repeats/Equi-Cycle (s. Karteireiter EquiDiag (TwinCAT 2.8) bzw. MC-Diag (TwinCAT 2.9)) |
56 - 59 |
Actual Equi-Cycle-Time (in 4/25 µs, s. Karteireiter EquiDiag (TwinCAT 2.8) bzw. MC-Diag (TwinCAT 2.9)) |
60 - 63 |
Max. Equi-Cycle-Time (in 4/25 µs, s. Karteireiter EquiDiag (TwinCAT 2.8) bzw. MC-Diag (TwinCAT 2.9)) |
64 - 67 |
Min. Equi-Cycle-Time (in 4/25 µs, s. Karteireiter EquiDiag (TwinCAT 2.8) bzw. MC-Diag (TwinCAT 2.9)) |