Auf S7-1200 via Modbus von CODESYS RaspberryPi zugreifen, Teil 1

Damit man auf die Siemens S7-1200 PLC via Modbus drauf zugreifen kann muss man erstmal die 1200 etwas konfigurieren und die Bausteine für den MB_SERVER erstellen.

Bei der S7-1200 folgendes einstellen:

1200 IP-Adresse einstellen
IP-Adresse einstellen

 

1200 Takt- & Systemmerker
Takt- & Systemmerker einstellen

 

Danach denn den Datenbaustein erstellen der als Holding Register für den Modbus-Server der 1200 dient, wobei der DB keinen optimierten Bausteinzugriff nutzen darf:

Datenbaustein
Datenbaustein anlegen

 

Optimierter Bausteinzugriff
Optimierter Bausteinzugriff AUS

 

Nun entweder einen FC anlegen in den die Netzwerke für den Modbus-Server hinein kommen und diesen FC dann in OB1 aufrufen, oder alles in OB1 direkt einfügen:

Testwerte
Ein paar Testwerte um später die Übertragung zu testen.

 

Modbus-Server
MB_SERVER

Am besten ersteinmal folgende Werte wählen:
CONNECT_ID = 1 (man kann auch mehrere MB_SERVER starten, dann muss jeder eine einzigartige ID haben, z.B. indem sie fortlaufend nummeriert werden)
IP_PORT = 502
MB_HOLD_REG = P#DB1.DBx0.0 WORD 25 (bedeutet das Holding-Register hat als Quelle DB1 und beginnt bei DBX0.0 und hat eine Länge von 25 WORD)

Danach Programm übersetzen und übertragen. Falls ein Fehler auftritt kann die Fehlermeldung mit Hilfe des STATUS und der Hilfe-Funktion nachgesehen werden, da dort alle Statusmeldungen aufgeschlüsselt sind.