Modbus Code 15 und Code 16

Hallo!

Habe eine Datenübertragung mit vielen Modbus Werten, diese werden aber alle einzeln seriell Übertragen.

Ich benötige daher die Hilfe, wie man folgende Modebus-Funktionen anprechen kann.

0x0F (15) 1 - 10000 Geräteadresse - 1 Write Multiple Coils
0x10 (16) 40001 - 50000 Geräteadresse - 40001 Write Multiple registers

Danke

MikeE

Hier ganz unten ist die Tabelle für die Codes.
Modbus RTU/TCP — IP-Symcon :: Automatisierungssoftware
Michael

Ja schon, die Tabelle ist mir schon klar.

Aber wo kann ich die Funktion aktivieren?

Auf der Instanz des Modbus kann man nur ein Resister eintragen.
Mir dem Häckchen „Lesen“ ist Funktion 1 oder 2 aktiv.

Wie aber 15 und 16??

Danke

Wenn du den passenden Datentyp einstellst.
Michael

FunctionCode ist das Schlüsselwort

Du kannst über IP-Symcon nur die vorhandenen Datentypen auslesen. Falls du einfach Rohdaten aus deiner SPS ziehen willst, müsstest du auf soetwas ausweichen: https://code.google.com/p/phpmodbus/

paresy

Wenn ich das so verstanden findet der Funktionscode 16 Write multiple registers nur bei 64bit Variablen Anwendung.

Mehrere 16 Bit (SmallInt) variablen konnen nicht gepackt übertragen werden?

Habe das Problem, dass ich ca. 25 Smallint und 40 Bits zur Übertragung benötige, einzeln benötigen diese zur Übertragung bis zu 10 Sek. oder mehr.

Danke

Genau. Du müsstest meine oben Vorgeschlagene Lösung nutzen, wenn du alle Register auf einen Schlag auslesen möchtest.

paresy

Es müsste auch gehen aus den Ints dann per Scripts die BITs zu holen und in neue Bool Vars zu schreiben.
Und umgekehrt dann auch per Scripts aus allen Bits den Int zu errechnen und dann zu schreiben.
Dürfte aber der gleiche Aufwand sein wie gleich phpmodbus zu nutzen…
Michael

Vielen Dank für die Infos.

Lg MikeE