Modbus SPS Erweiterungsmodule

Bei der Entwicklung eines Automatisierungssystems mittels CODESYS steht man oft vor der Aufgabe ein Feldbussystem zu realisieren. Angenommen es besteht der Bedarf, eine Klimaregelung in einem Kartoffellager auf Basis des Control-Panels SPK207 von akYtec durchzuführen. Da das SPK207 keine eigenen Ein- und Ausgänge besitzt, muss man Erweiterungsmodule verwenden. Es gibt die Möglichkeit, sowohl die I/O-Module der MX110-Serie von akYtec über die RS485-Schnittstelle als auch beliebige andere Module über die Ethernet-Schnittstelle an dieses Control-Panel anzuschließen. Dieser Artikel beschreibt ausführlich die notwendigen Schritte zur ordnungsgemäßen Konfigurierung des SPK207 für den Datenaustausch via Modbus-Protokoll in CODESYS v3.5 SP3 Patch 5.

Allgemeine Vorgehensweise zur Konfigurierung der Kommunikationsschnittstellen in CODESYS 3.5

Modbus-Kommunikationseinstellungen in CODESYS

Schnittstellen

Wenn das SPK207 erfolgreich mit dem PC verbunden ist (siehe Anhang C in der Bedienungsanleitung oder im Video-Tutorial), können Sie ein altes Projekt im CODESYS öffnen oder ein neues erstellen. Die Tastenkombination „Alt + 0“ öffnet den Gerätebaum, so dass Sie mit der rechten Maustaste auf das Zielgerät (akYtec SPK2XX) klicken könnten, um die Option “Gerät anhängen“ im Kontextmenü auszuwählen.

Zielgerät anhängen CODESYS

Unter den erscheinenden Schnittstellen müssen Sie mit der linken Maustaste auf „Modbus“ klicken, um den Eintrag „Modbus COM“ der gleichen Zielgerätversion oder einer älteren Version auszuwählen.

Modbus COM Port anhängen CODESYS

Bestätigen Sie Ihre Auswahl durch Drücken der Taste „Gerät anhängen“. Jetzt ist der serielle Port „Modbus COM“ im Gerätebaum verfügbar. Sie müssen auf diesen Port doppelklicken, um den Reiter “Modbus Serial Port“ zu öffnen und die gewünschten Parameter einzustellen.

Modbus Serieller Port Konfigurierung CODESYS

In ähnlicher Weise können Sie einen Ethernet-Port anhängen. Wählen Sie einfach „Ethernet“ im Dialogfeld “Add Device“ anstelle von „Modbus“.

SPK207 als Modbus-Master

Wenn die gewünschte Schnittstelle des SPK207 als Master funktioniert werden soll, sollte ein Master-Gerät im Gerätebaum zu dieser Schnittstelle hinzugefügt werden.

Erstmal soll ein Master-Gerät zum Port „Modbus COM“ hinzufügt werden, indem Sie die Option „Gerät anhängen“ wieder verwenden. Im geöffneten Fenster wählen Sie „Modbus Serial Master“ für den COM-Port oder „Modbus TCP Master“ für den Ethernet-Port.

Modbus Master COM Port anhängen CODESYS Modbus TCP Master anhängen CODESYS

Jetzt sind die Master-Geräte in dem Gerätebaum verfügbar. Um die Master-Geräte zu konfigurieren, kann einen zugehörigen Editor durch einen Doppelklick auf den Eintrag des Masters im Gerätebaum geöffnet werden.

Gerätebaum mit Modbus TCP Master und Modbus Master COM Port CODESYS

Modbus TCP Master hat zwei Konfigurationsparameter: Response Timeout und Socket Timeout.

Modbus TCP Master Konfigurierung CODESYS

Die Parameter „Response Timeout“ definiert ein Zeitintervall, in dem der Master die Antwort von Slave abwartet. Falls es da keine Antwort während dieses Intervall gibt, fragt der Master dann das nächste Slave-Gerät ab. Dieses Timeout wird für jedes Slave-Gerät übernommen.

Die Parameter „Socket Timeout“ definiert eine Zeitdauer, in der der Master für die kommende TCP/IP Pakete wartet.

Für die COM-Schnittstelle ist das Verfahren ähnlich, aber man muss den Parameter „Zeit zwischen den Frames“ anstelle des Parameters „Socket interface“ bestimmen. Dieser Parameter definiert die Länge einer Zeitspanne, die der Master zwischen der letzten Antwort (oder Timeout) und der nächsten Abfrage abwartet.

Modbus Master COM Port Konfigurierung CODESYS

Wenn die Master-Geräte konfiguriert sind, muss man die Slave-Geräte durch das bereits bekannte Dialog-Fenster „Geräte anhängen“ hinzufügen. Wählen Sie entweder „Modbus Slave“ oder „Modbus TCP Slave“ je nach Port-Typ (Ethernet oder COM).

Modbus Slave COM Port anhängen CODESYS Modbus TCP Slave anhängen CODESYS

Jetzt sind die Slave-Geräte in dem Gerätebaum verfügbar. Um die Slave-Geräte zu konfigurieren, kann einen zugehörigen Editor durch einen Doppelklick auf den Eintrag des Slaves im Gerätebaum geöffnet werden.

Gerätebaum mit Modbus TCP Slave und Modbus Slave COM Port CODESYS

Der Eintrag “Modbus TCP Slave” hat die folgenden Parameter:

  • Slave IP-Addresse – die IP-Adresse des Masters
  • Unit-ID – Unit-ID des Slaves, die im Bereich von 1 bis 247 angegeben sein kann
  • Response Timeout – das Zeitintervall, in dem der Master die Antwort vom Slave-Gerät abwartet. Das hier angegebene Timeout überschreibt die allgemeine Einstellung „Response Timeout“ des zugehörigen Masters.
  • Port – Port-Nummer des Slaves.
Modbus TCP Slave Konfigurierung CODESYS

Das Slave-Gerät, das an den COM-Port angeschlossen ist, hat ähnliche Parameter:

Modbus Slave COM Port Konfigurierung CODESYS

Die weiteren Kommunikationseinstellungen gehen um die Bestimmung der Kommunikationskanäle. Unter dem Kanal versteht man hier eine Gruppe von Register-Adressen, die eine nach der anderen angeordnet sind und nur bei einer bestimmten Funktion abgefragt werden. Um einen Kanal hinzuzufügen, muss man auf die Taste „Kanal hinzufügen“ im Tab „Modbus Slave-Kanal“ klicken und danach die notwendigen Parameter im geöffneten Fenster einstellen. Alle Parameterbeschreibungen sind in der Codesys Online-Hilfe zu entnehmen (Ctrl + Shift + F1).

Modbus Slave Kanal hinzufügen CODESYS

Wenn alle Kanäle hinzugefügt bereits hinzugefügt werden, aktivieren Sie den Reiter “ModbusGenericSerialSalve E/A-Abbild”, um die im Projekt bereits vorhandene Variable den Ein- oder Ausgangskanälen zuzuweisen. Doppelklicken Sie hier einfach auf die beliebige Zelle in der Spalte „Variable“ und durch einen Linksklick auf die jetzt nun verfügbare Taste button öffnen Sie das Fenster „Eingabehilfe“. Hier können Sie die beliebige Variable auswählen und sie den beliebigen Kanal zuweisen.

Modbus EA-Abbild CODESYS

Es gibt auch einen Tab „Modbus Slave Init” im Konfigurationsdialog des Slave-Geräts. Dieser Tab ist für die vorherige Dateninitialisierung vorgesehen. Zum Beispiel, wenn es erforderlich ist, einen Sensortyp einzustellen, bevor der Datenaustausch angefangen wird.

Modbus Slave Init CODESYS

SPK207 als Modbus-Slave

Ob der Ethernet-Port oder der COM-Port des SPK207 im Modus Slave verwendet werden soll, sollte ein Slave-Gerät dem Gerätebaum hinzugefügt werden. Wählen Sie einfach „Modbus Serial Device“ für den COM Port oder „Modbus TCP Slave Gerät“ für den Ethernet Port im Dialogfenster „Gerät anhängen“.

Modbus als Slave COM Port anhängen CODESYS Modbus TCP als Slave COM Port anhängen CODESYS

Jetzt die Slave-Geräte sind in dem Gerätebaum verfügbar. Um sie zu konfigurieren, kann einen zugehörigen Editor durch einen Doppelklick auf den Eintrag des Slave-Geräts im Gerätebaum geöffnet werden. Da stehen die folgenden Parameter zur Verfügung:

  • TimeOut – die maximale Zeitdauer (Schrittweite 500 ms), die das Slave-Gerät auf einen Schreibzugriff erwartet. Falls dieser Parameter auf 0 gesetzt ist, bedeutet es, dass kein Timeout aktiviert ist. Wenn kein Schreibzugriff innerhalb dieser Zeitdauer erfolgt ist, werden alle Ausgänge auf 0 gesetzt.
  • Unit ID – Netzwerk-Addresse des Geräts
  • Slave Port – Port-Nummer des Slaves
  • Holding Register – Anzahl der Holding-Register
  • Input Register – Anzahl der Eingangsregister
Modbus als Slave COM Port Konfigurierung CODESYS Modbus TCP als Slave COM Port Konfigurierung CODESYS

Die Projektvariablen können auf die Holding- oder Input-Register im Tab „… E/A-Abbild“ zugewiesen sein. Diese Prozedur ist genau wie im Modus Master.

Nach der Durchführung aller Einstellungen schließen Sie einfach die sekundären Geräte an das SPK207 (Modus Master) oder das SPK207 an das Master-Gerät (Modus Slave) an und prüfen, ob der Datenaustausch korrekt ist.

Die Modbus-Einstellungen für den SPK207 sind abgeschlossen.