Kommunikation über Modbus

scheffi87

Level-1
Beiträge
2
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hey Leute

Erstmal ein paar Vorworte...
Ich übernehme hauptsächlich die Programmierung in unserem Technikerprojekt.
Es geht um einige Automatisierungen.
Dazu muss ich sagen, dass ich so ziemlich bei 0 anfange.

Wir benutzen dafür eine ILC-151 und einen Inline IL AI 4.
Dazu hinzu (und da sitzt mein Problem) hängt an der Steuerung über Modbus ein IL ETH BK DI8 DO4 2TX-PAC.

An diesem Buskoppler sitzen ein IB IL 24 DO 16-PAC, ein IB IL AI 4/EF-PAC und drei IB IL TEMP 4/8 RTD-PAC.

Bis jetzt habe ich es nur geschafft, die Eingänge der IL ETH in PC Worx einzubinden.
Dabei bekomme ich den Typ "Word" in Form von 16#0001 (bei Eingang 1.1) 16#0010 (bei Eingang 2.1) und so weiter. Definiert habe ich die Eingänge mit FC03/Datentyp Word/Anzahl 1/Adresse 8000.
Frage 1: wie kann ich die einzelnen Eingänge separat weiter benutzen? Gibt es einen Funktionsbaustein dafür?

Ich habe aber noch nicht raus finden können, wie ich die Ausgänge ansteuern kann.
Die habe ich als FC16/Datentyp Word/Anzahl 1/Adresse 8006.

Und zum Schluss, wie bekomme ich die Werte von dem TEMP 4/8 über Modbus ausgelesen?

Die Bibliothek dafür habe ich schon eingefügt.

Grüße Mirco
 
Zuletzt bearbeitet:
Mit .X0, .X1, .X2, usw. kannst du die einzelnen Eingangsbits abfragen.

Wie kommst du auf 8006 bei den Ausgängen? Laut Datenblatt ist es 8009.

Bei der TEMP kannst du dich entscheiden für Prozessdaten oder PCP. Für PCP schaust du dann am besten auf Seite 30 vom Datenblatt.

Falls du auch nicht weißt wo das Datenblatt ist. Hier

Und dann halt die ganz normalen Bausteine nehmen aus der Lib.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Mit .X0 usw kann ich später mal ausprobieren.

Auf Ausgänge 8006 kam ich durch die Bus Configurationsseite des Buskopplers. Bus_Buskoppler.JPG

Das Datenblatt hatte ich schon gelesen, aber verstehe nicht, wie bzw wo ich das devinieren kann.
 
Achne Denkfehler von mir. Nach den Eingängen kommen die Ausgänge. Also musst du erstmal alle Eingänge quasi zusammenzählen und die entsprechenden Register abzählen. Und danach kommen die Asugänge. Also das kann auch 8006 sein. Aber auch 8005, 8007, oder 8008 oder oder oder. Ich arbeite immer mit den statischen Registern, als mit den dynamischen. Das ist einfacher.
 
Hallo scheffi87,

Allgemein
Modbus basiert auf Master Slave Kommunikation. Der Master stellt immer die Anfrage und der Slave Antwortet auf diese.

Die IL ETH BK DI8 DO4 stellt einmal statische und einmal dynamische Modbus Register zur Verfügung.
Man kann nun über den Master (Client) die statischen oder die dynamischen Register lesen oder schreiben.

Mit aktiven Plug and Play Mode wird die Buskonfiguration eingelesen und die dynamischen Register festgelegt. Im Datenblatt gibt es ein Beispiel wie die dynamischen Register aufgebaut werden (ab 8000). Da die ETH BK auch einen integrierten Webserver hat, kannst Du dich mit Beispielweise Firefox auf die ETH BK schalten und dort die dynamischen Register der einzelnen Module ablesen.

Um nun die einzelnen Module zu Konfigurieren oder einen Wert zu lesen müssen die entsprechenden Register beschrieben oder gelesen werden.
Hierzu sollte man die Datenblätter der einzelnen Module zur Hand nehmen um zu schauen welche Daten gesendet werden müssen um Beispielsweise ein Modul zu Konfigurieren.
Alternativ kann man natürlich auch die FB aus den Bibliotheken nutzen. Die Variablen die normalerweise mit Prozessdaten verknüpft werden müssen jetzt mit den einzelnen MB Registern verknüpft werden.
Wichtig ist , um Ausgänge schreiben zu können muss der Plug and Play Mode deaktiviert sein.

Gruß Uwe
 
Zurück
Oben