Beispielprojekt: Neues Modbus-Projekt in CODESYS erstellen

In diesem Beispiel werden Sie ein Modbus-Projekt mit zwei Controllern PFC200 750-8212 erstellen, die als Modbus-Master und Modbus-Slave verwendet werden sollen. Sie werden I/O-Module hinzufügen, ein kleines Programm erstellen und Daten zwischen den Geräten austauschen.

Ausgangszustand:

Projekt anlegen

  1. Klicken Sie auf der Startseite oder im Register „Datei“ auf Neues Projekt....
  2. Wählen Sie als Vorlage das „Standardprojekt“ aus und vergeben Sie einen Namen für das Projekt.
  3. Im Dialogfenster „Standardprojekt“ werden alle verfügbaren Geräte angezeigt. Die Geräte resultieren aus den installierten Gerätebeschreibungen.
  4. Wählen Sie den ersten Controller (in diesem Beispiel ein PFC200 750-8212) und die Programmiersprache aus, die Sie verwenden möchten.
  5. Um I/O-Module hinzuzufügen, klicken Sie im Gerätebaum mit der rechten Maustaste auf das Element „Kbus“ und wählen Sie Gerät anhängen.
  6. Wählen Sie die I/O-Module des Knotens aus der Liste aus und klicken Sie für jedes I/O-Modul auf [Gerät anhängen]. In diesem Beispiel werden die I/O-Module 750-430 und 750-530 verwendet.
  7. Die I/O-Module des Knotens werden unterhalb des „Kbus“-Elementes angehängt.
  8. Um den zweiten Controller zum Projekt hinzuzufügen, klicken Sie im Gerätebaum mit der rechten Maustaste auf den Projektnamen (erstes Element des Gerätebaumes) und wählen Gerät anhängen....
  9. Wiederholen Sie die Schritte 4 und 5 für diesen Controller.

Mit dem Gerät verbinden

  1. Um sich mit dem Controller zu verbinden, klicken Sie diesen im Gerätebaum doppelt an.
  2. Tragen Sie in der grafischen Ansicht bestehend aus PC, Gateway und Gerät, die IP-Adresse des Controllers ein, z. B. hier 192.168.1.17 für den lokal am PC angeschlossenen Controller.
    Alternativ klicken Sie auf [Netzwerk durchsuchen], um das Netzwerk nach Geräten zu durchsuchen.
    Tipp: Um das Gerät bei einer Netzwerksuche leichter identifizieren zu können, ist es sinnvoll, zuvor über das WBM einen eindeutigen Hostnamen für das Gerät festzulegen.
  3. Wählen Sie Ihr Gerät aus und übernehmen Sie es mittels [OK].
  4. Die Anmeldemaske des Gerätes wird geöffnet.
  5. Loggen Sie sich mit Ihren Zugangsdaten (standardmäßig Benutzer „admin“, Passwort „wago)“ auf dem Gerät ein.
  6. Wiederholen Sie die Schritte 1 bis 5 für den zweiten Controller.

Slave-Gerät konfigurieren

  1. Erstellen Sie für den Controller, der als Slave verwendet werden soll, zunächst ein Feldbuselement „Ethernet“. Klicken Sie dazu mit der rechten Maustaste auf das Gerät und auf Gerät anhängen....
  2. Wählen Sie unter „Ethernet Adapter“ den Feldbus „Ethernet“ aus.
  3. Feldbus „Ethernet“ anhängen
  4. Klicken Sie auf [Gerät anhängen] und lassen Sie das Dialogfenster geöffnet.
  5. Im Gerätebaum wird ein neues Element „Ethernet (Ethernet)“ erstellt.
  6. Klicken Sie auf das neue Element und wählen Sie für das Slave-Gerät im noch geöffneten Dialogfenster unter „Modbus“ den „Modbus TCP Slave“ aus.
  7. Bestätigen Sie mit [Gerät anhängen].
  8. Um im Folgenden den Datenaustausch zwischen Master und Slave zu testen, werden Sie Variablen anlegen und ein kleines Programm schreiben:
  9. Variablen erzeugen: Klicken Sie doppelt auf das Slave-Gerät, um die Konfiguration zu öffnen.
  10. Erzeugen Sie im Register „Modbus TCP Slave Device E/A-Abbild“ zwei Variablen - eine mit dem Namen „fromMaster“ im Holding-Register und eine mit dem Namen „toMaster“ im Input-Register.
  11. Variablen erzeugen
  12. Um Variablen auf den I/O-Modulen auszugeben, klicken Sie jeweils doppelt auf die I/O-Module:
    Für das Digitaleingangsmodul 750-430 tragen Sie als Variable „localIn“ ein.
    Für das Digitalausgangsmodul 750-530 tragen Sie als Variable „localOut“ ein.
  13. Variable „localIn“
  14. Variable „localOut“
  15. Slave-Programm schreiben: Um den Programmeditor zu öffnen, klicken Sie im Gerätebaum doppelt auf das Slave-Programm „PLC_PRG“.
  16. Erstellen Sie ein einfaches Programm:
    localOut := WORD_TO_BYTE(fromMaster);
    toMaster := fromMaster / 10;
    localIn;

    Der Variablenwert, der vom Master an den Slave gesendet wird, wird einmal testweise auf dem I/O-Modul ausgegeben, durch 10 geteilt und zurück an den Master gesendet.
  17. Um das Programm zu übersetzen, klicken Sie im Register „Erstellen“ auf Code erzeugen (Alternativ Funktionstaste: F11).

Master-Gerät konfigurieren

  1. Erstellen Sie für den Controller, der als Master verwendet werden soll, ein Feldbuselement „Ethernet“. Klicken Sie dazu mit der rechten Maustaste auf das Gerät und auf Gerät anhängen....
  2. Wählen Sie unter „Ethernet Adapter“ den Feldbus „Ethernet“ aus.
  3. Klicken Sie auf [Gerät anhängen] und lassen Sie das Dialogfenster geöffnet.
  4. Im Gerätebaum wird ein neues Element „Ethernet (Ethernet)“ erstellt.
  5. Klicken Sie auf das neue Element und wählen Sie für das Master-Gerät im noch geöffneten Dialogfenster unter „Modbus“ den „Modbus TCP Master“ aus.
  6. Bestätigen Sie mit [Gerät anhängen] und lassen Sie das Dialogfenster geöffnet.
  7. Klicken Sie auf das neue Element „Modbus_TCP_Master (Modbus TCP Master)“ im Gerätebaum und fügen Sie aus dem noch geöffneten Dialogfenster das „Modbus TCP Slave Device“ ein.
  8. Dieses wird im Gerätebaum unter dem Modbus-Master angeordnet und repräsentiert das Slave-Gerät.
  9. Master und Repräsentant des Slaves
  10. Um Master und Slave miteinander zu verknüpfen, tragen Sie nun die IP-Adresse des Slave-Gerätes bei dem „Modbus_TCP_Slave (Modbus TCP Slave)“ unterhalb des Masters ein. Klicken Sie dazu doppelt auf „Modbus_TCP_Slave (Modbus TCP Slave)“, um die Konfiguration zu öffnen und geben Sie im Register „Allgemein“ die IP-Adresse des Slave-Gerätes ein.
  11. Klicken Sie in das Register „Modbus Slave-Kanal“ und erstellen Sie zwei Kanäle. Damit geben Sie an, wie viel und wohin gelesen/geschrieben werden soll.
  12. Kanäle erstellen
  13. Welchen Zugriffstyp (bzw. Modbus-Dienst) und welchen Offset für die Adressierung Sie wählen, ist abhängig davon, was Ihr Slave unterstützt. Oftmals ist die Auswahl von Funktionscode 4 und 16 sinnvoll, um mehrere Werte zu lesen und zu schreiben. Weitere Informationen zu unterstützten Modbus-Diensten finden Sie im Handbuch Ihres Slave-Gerätes.
    In diesem Beispiel wird ein Kanal mit „WriteSingleRegister“ und ein Kanal mit „ReadInputRegisters“ erstellt, da hier nur ein Wert gelesen und geschrieben wird.
  14. Klicken Sie in das Register „Modbus TCP Slave E/A-Abbild“ und erstellen Sie hier zwei Variablen - „toSlave“ (WriteSingleRegister) und „fromSlave“ (ReadInputRegisters).
  15. Master-Programm schreiben: Um den Programmeditor zu öffnen, klicken Sie im Gerätebaum doppelt auf das Master-Programm „PLC_PRG“.
  16. Erstellen Sie ein einfaches Programm:
    toSlave:=toSlave+1;
    fromSlave;

    Ein Variablenwert wird hochgezählt und einer wird ausgegeben.
  17. Um das Programm zu übersetzen, klicken Sie im Register „Erstellen“ auf Code erzeugen (Alternativ Funktionstaste: F11).

Master- und Slave-Applikationen online verbinden

  1. Zum Verbinden der Applikation klicken Sie für Master und Slave jeweils mit der rechten Maustaste auf „Applikation“ und wählen [Einloggen].
  2. Laden Sie jeweils das Programm auf das Gerät herunter.
  3. Starten Sie die Applikation, indem Sie mit der rechten Maustaste auf „Applikation“ und Start klicken.
  4. Das Programm läuft.
Master-Programm
Master-Programm
Slave-Programm
Slave-Programm