MikeE
29. Juli 2015 um 14:07
1
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
MikeE
29. Juli 2015 um 15:01
4
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
paresy
29. Juli 2015 um 16:08
7
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
MikeE
30. Juli 2015 um 09:21
8
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
paresy
30. Juli 2015 um 09:53
9
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
MikeE
30. Juli 2015 um 10:24
11
Vielen Dank für die Infos.
Lg MikeE