Материал: m015000d

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

MODBUS-Funktionen 167

Interne Variablen

0x1024

R

1-2

Anzahl digitaler Ausgangsdaten im PA (in Bits)

 

 

 

 

0x1025

R

1-4

Anzahl digitaler Eingangsdaten im PA (in Bits)

 

 

 

 

 

 

 

 

0x1028

R/W

1

Bootkonfiguration

 

 

 

 

0x1029

R

9

MODBUS-TCP-Statistik

 

 

 

 

0x102A

R

1

Anzahl der TCP-Verbindungen

 

 

 

 

 

 

 

 

0x1030

R/W

1

Konfiguration MODBUS/TCP Timeout

 

 

 

 

0x1031

W

1

Lesen der MAC-ID des Controllers

 

 

 

 

 

 

 

 

0x2000

R

1

Konstante 0x0000

 

 

 

 

0x2001

R

1

Konstante 0xFFFF

 

 

 

 

0x2002

R

1

Konstante 0x1234

 

 

 

 

0x2003

R

1

Konstante 0xAAAA

 

 

 

 

0x2004

R

1

Konstante 0x5555

 

 

 

 

0x2005

R

1

Konstante 0x7FFF

 

 

 

 

0x2006

R

1

Konstante 0x8000

 

 

 

 

0x2007

R

1

Konstante 0x3FFF

 

 

 

 

0x2008

R

1

Konstante 0x4000

 

 

 

 

 

 

 

 

0x2010

R

1

Firmware Version

 

 

 

 

0x2011

R

1

Serien Code

 

 

 

 

0x2012

R

1

Controller Code

 

 

 

 

0x2013

R

1

Firmware Versionen Major Revision

 

 

 

 

0x2014

R

1

Firmware Versionen Minor Revision

 

 

 

 

0x2020

R

16

Kurzbeschreibung Controller

 

 

 

 

0x2021

R

8

Compile-Zeit der Firmware

 

 

 

 

0x2022

R

8

Compile-Datum der Firmware

 

 

 

 

0x2023

R

32

Angabe des Firmware-Loaders

 

 

 

 

0x2030

R

65

Beschreibung der angeschlossenen Klemmen (Modul 0–64)

 

 

 

 

0x2031

R

64

Beschreibung der angeschlossenen Klemmen (Modul 65-129)

 

 

 

 

0x2032

R

64

Beschreibung der angeschlossenen Klemmen (Modul 130-

 

 

 

194)

 

 

 

 

0x2033

R

63

Beschreibung der angeschlossenen Klemmen (Modul 195-

 

 

 

255)

 

 

 

 

0x2040

W

1

Software Reset (Schreibsequenz 0x55AA oder 0xAA55)

 

 

 

 

WAGO-I/O-SYSTEM 750 ETHERNET TCP/IP

168 MODBUS-Funktionen

Interne Variablen

6.5.1 Beschreibung der internen Variablen

6.5.1.1 Watchdog (Verhalten bei Feldbusausfall)

Der Watchdog dient zur Überwachung der Datenübertragung zwischen übergeordneter Steuerung und Feldbus-Controller. Dazu wird von der übergeordneten Steuerung eine Zeitfunktion (Time-out) in dem Controller zyklisch angestoßen.

Bei fehlerfreier Kommunikation kann diese Zeit ihren Endwert nicht erreichen, weil sie zuvor immer wieder neu gestartet wird.

Falls diese Zeit abgelaufen sein sollte, liegt ein Feldbusausfall vor.

In diesem Fall antwortet der Feldbus-Controller allen folgenden MODBUS TCP/IP Requests mit dem Exceptioncode 0x0004 (Slave Device Failure).

Im Feldbus-Controller sind gesonderte Register für die Ansteuerung und für die Statusabfrage des Watchdogs durch die übergeordnete Steuerung vorhanden (Register-Adressen 0x1000 bis 0x1008).

Nach dem Einschalten der Versorgungsspannung ist der Watchdog noch nicht aktiviert. Zunächst ist der Time-out-Wert festzulegen (Register 0x1000). Der Watchdog kann dadurch aktiviert werden, dass im Masken-Register (0x1001) ein Funktionscode geschrieben wird, der ungleich 0 ist. Eine zweite Möglichkeit zur Aktivierung besteht darin, im Toggle-Register (0x1003) einen von 0 abweichenden Wert zu schreiben.

Durch Lesen der minimalen Triggerzeit (Register 0x1004) wird festgestellt, ob die Watchdog-Fehlerreaktion aktiviert wurde. Falls dieser Zeitwert 0 ist, wird ein Feldbusausfall angenommen. Der Watchdog kann entsprechend der zuvor genannten beiden Möglichkeiten oder mittels Register 0x1007 neu gestartet werden.

Wenn der Watchdog einmal gestartet wurde, kann er vom Anwender aus Sicherheitsgründen nur über einen bestimmten Weg gestoppt werden (Register 0x1005 oder 0x1008).

6.5.1.2 Watchdog-Register:

Die Watchdog-Register sind analog mit den beschriebenen MODBUS-

Funktionscodes (read und write) ansprechbar. Statt der Adresse eines

Klemmenkanals wird dazu die jeweilige Register-Adresse angegeben.

Register Adresse 0x1000

Wert

Watchdog time, WS_TIME

Zugang

lesen / schreiben

Standard

0x0000

Beschreibung

Dieses Register speichert den Wert für die Zeitüberschreitung (Time-out).

 

Damit der Watchdog gestartet werden kann, muss der Vorgabewert auf einen

 

Wert ungleich Null geändert werden. Die Zeit wird in Vielfachen von 100 ms

WAGO-I/O-SYSTEM 750 ETHERNET TCP/IP

MODBUS-Funktionen 169

Interne Variablen

gesetzt, 0x0009 bedeutet also eine Time-out-Zeit von 0.9 s. Dieser Wert kann bei laufendem Watchdog nicht geändert werden. Es gibt keinen Code durch den der aktuelle Datenwert nochmals geschrieben werden kann, während der Watchdog aktiv ist

Register Adresse 0x1001

Wert

Watchdog-Funktion Codiermaske, Funktionscode 1...16, WDFCM_1_16

Zugang

lesen / schreiben

Standard

0x0000

Beschreibung

Mittels dieser Maske sind die Funktionscodes einstellbar, um die Watchdog-

 

Funktion zu triggern.

 

Über die 1 kann der Funktionscode ausgewählt werden ( = 2(Funktionscode-1)+ ....)

 

D1001.0 entspricht Funktionscode1, D1001.1 entspricht Funktionscode2...

 

Wenn hier ein Wert ungleich Null steht, wird die Watchdog-Funktion

 

gestartet. Wenn in die Maske nur Codes von nicht unterstützten Funktionen

 

eingetragen werden, startet der Watchdog nicht. Ein bestehender Fehler wird

 

rückgesetzt und das Prozessabbild kann wieder beschrieben werden. Auch hier

 

kann bei laufendem Watchdog keine Änderung erfolgen. Es gibt keinen Code

 

durch den der aktuelle Datenwert nochmals geschrieben werden kann,

 

während der Watchdog aktiv ist

Register Adresse 0x1002

Wert

Watchdog-Funktion Codiermaske, Funktionscode 17...32, WD_FCM_17_32

Zugang

lesen / schreiben

Standard

0x0000

Beschreibung

Gleiche Funktion wie zuvor, aber mit den Funktionscodes 17 bis 32. Diese

 

Codes werden nicht unterstützt, dieses Register sollte deshalb auf dem

 

Vorgabewert belassen werden. Es gibt keinen Ausnahmecode durch den der

 

aktuelle Datenwert nochmals geschrieben werden kann, während der

 

Watchdog aktiv ist

 

Register Adresse 0x1003

Wert

Watchdog-Trigger, WD_TRIGGER

Zugang

lesen / schreiben

Standard

0x0000

Beschreibung

Dieses Register wird für eine alternative Triggermethode benutzt. Durch

 

Schreiben unterschiedlicher Werte in dieses Register wird der Watchdog

 

getriggert. Aufeinanderfolgende Werte müssen sich in der Größe

 

unterscheiden. Das Schreiben eines Werts ungleich Null startet den Watchdog.

 

Ein Watchdog Fehler wird zurückgesetzt und das Schreiben der Prozessdaten

 

wird wieder ermöglicht.

 

Register Adresse 0x1004

Wert

Minimale aktuelle Trigger-Zeit, WD_AC_TRG_TIME

Zugang

lesen / schreiben

Standard

0xFFFF

Beschreibung

Durch diesen Wert kann der aktuelle WatchdogStatus ausgelesen werden.

 

Wenn der Watchdog getriggert wird, wird der gespeicherte Wert mit dem

 

aktuellen verglichen. Wenn der aktuelle Wert kleiner ist als der gespeicherte,

 

wird dieser durch den aktuellen ersetzt. Die Einheit ist 100 ms/Digit. Durch

 

das Schreiben neuer Werte wird der gespeicherte Wert geändert, dies hat keine

 

Auswirkung auf den Watchdog. 0x000 ist nicht erlaubt.

WAGO-I/O-SYSTEM 750

ETHERNET TCP/IP

170 MODBUS-Funktionen

Interne Variablen

Register Adresse 0x1005

 

Wert

Watchdog stoppen, WD_AC_STOP_MASK

 

 

Zugang

lesen / schreiben

 

 

Standard

0x0000

 

 

Beschreibung

Wenn hier zunächst der Wert 0xAAAA und dann 0x5555 geschrieben wird,

 

 

 

wird der Watchdog gestoppt, d. h. ganz abgeschaltet. Die Watchdog-

 

 

 

Fehlerreaktion wird gesperrt. Ein Watchdog-Fehler wird zurückgesetzt und das

 

 

 

Schreiben auf die Prozessdaten wird wieder ermöglicht.

 

 

 

 

 

Register Adresse 0x1006

 

 

Wert

Während Watchdog läuft, WD_RUNNING

 

 

Zugang

lesen

 

 

Standard

0x0000

 

 

Beschreibung

Aktueller Watchdog-Status.

 

 

 

bei 0x0000: Watchdog nicht aktiv,

 

 

 

bei 0x0001: Watchdog aktiv.

 

 

 

bei 0x0002: Watchdog abgelaufen

 

 

 

 

 

Register Adresse 0x1007

 

 

Wert

Watchdog neu starten, WD_RESTART

 

 

Zugang

lesen / schreiben

 

 

Standard

0x0001

 

 

Beschreibung

Schreiben von 0x1 in das Register startet den Watchdog wieder.

 

 

 

Wurde der Watchdog vor dem Überlauf gestoppt, wird er nicht wieder

 

 

 

gestartet.

 

 

 

 

 

Register Adresse 0x1008

 

 

Wert

Watchdog einfach anhalten WD_AC_STOP_SIMPLE

 

 

Zugang

lesen / schreiben

 

 

Standard

0x0000

 

 

Beschreibung

Durch Schreiben der Werte 0x0AA55 oder 0X55AA wird der Watchdog

 

 

 

angehalten, falls er aktiv war. Die Watchdog-Fehlerreaktion wird

 

 

 

vorübergehend deaktiviert. Ein anstehender Watchdog-Fehler wird

 

 

 

zurückgesetzt und ein Schreiben ins Watchdog-Register ist wieder möglich.

 

 

 

 

 

Register Adresse 0x1009

 

 

Wert

MODBUS-Socket schließen nach Watchdog-Timeout

 

 

Zugang

lesen / schreiben

 

 

Beschreibung

0 : MODBUS-Socket wird nicht geschlossen

 

 

 

1: MODBUS-Socket wird geschlossen

 

 

 

 

 

Register Adresse 0x100A

 

 

Wert

Alternativer Watchdog

 

 

Zugang

lesen / schreiben

 

 

Standard

0x0000

 

 

Beschreibung

Schreiben eines Zeitwertes in Register 0x1000

 

 

 

Register 0x100A = 0x0001: Watchdog wird aktiv geschaltet.

 

 

 

Mit dem ersten MODBUStelegramm wird der Watchdog gestartet. Der

 

 

 

Watchdog wird mit jedem MODBUS/TCP-Befehl getriggert. Nach Ablauf der

 

 

 

Watchdogzeit werden alle Ausgänge zu Null gesetzt.

 

 

 

Die Ausgänge können durch erneutes Schreiben wieder gesetzt werden!

 

 

 

Das Register 0x00A ist remanent und damit auch das Register 0x1000.

 

 

 

Bei eingeschaltetem Watchdog lässt sich der Zeitwert in Register 0x1000 nicht

 

 

 

mehr ändern.

 

 

 

 

 

WAGO-I/O-SYSTEM 750 ETHERNET TCP/IP

MODBUS-Funktionen 171

Interne Variablen

Die Länge ist in allen Register 1, d. h. es kann bei jedem Zugriff nur ein Wort geschrieben oder gelesen werden.

Beispiele:

Watchdog für eine Zeitüberschreitung von mehr als 1 s setzen

1.Schreiben Sie 0x000A (=1000 ms / 100 ms) in das Register für Zeitüberschreitung (0x1000).

2.Schreiben Sie 0x0010 (=2(5-1)) in die Codiermaske (Register 0x1001), um den Watchdog zu starten.

3.Verwenden Sie die Funktion FC 5 ‘Write Coil’ um den Watchdog zu triggern.

4.Lesen Sie das Register der minimalen aktuellen Triggerzeit und vergleichen Sie es mit Null um zu prüfen, ob Zeitüberschreitung vorliegt.

Die letzten beiden Schritte werden zyklisch ausgeführt.

Watchdog für eine Zeitüberschreitung von mehr als 10 min setzen

1.Schreiben Sie 0x1770 (=10*60*1000 ms / 100 ms) in das Register für Zeitüberschreitung (0x1000).

2.Schreiben Sie 0x0001 in den Watchdog-Trigger-Register (0x1003) um den Watchdog zu starten.

3.Schreiben Sie 0x0001, 0x0000, 0x0001... oder einen Zählerwert in das Watchdog-Trigger-Register (0x1003) um den Watchdog zu triggern.

4.Lesen Sie das Register der minimalen aktuellen Triggerzeit und vergleichen Sie es mit Null um zu prüfen, ob Zeitüberschreitung vorliegt.

Die letzten beiden Schritte werden zyklisch ausgeführt.

6.5.2 Diagnose Funktionen

Folgende Register können gelesen werden, um einen Fehler des Feldbusknoten zu bestimmen:

Register Adresse 0x1020

Wert

LedErrCode

Zugang

lesen

Beschreibung

Angabe des Fehlercodes

 

Register Adresse 0x1021

Wert

LedErrArg

Zugang

lesen

Beschreibung

Angabe des Fehlerargumentes

WAGO-I/O-SYSTEM 750 ETHERNET TCP/IP