Senden musst du das hier (rot eingerahmt, beachte, der String ist in HEX-Darstellung), und bei richtigem Typecast kommt auch 19,3 raus:
[
attachment=46378]
Gruß, Jens
P.S.: Dein Gerät versteht verwendet also als Protokoll Modbus RTU. Es bietet sich also die Verwendung der
NI Modbus Lib an.
Hallo GerdW,
erstmal danke dür die Antwort. Du, ich hab einfach mittlerweile soviel versucht, dass ich den Wald
vor lauter Bäumen nicht mehr sehe. Ich will hier ganz bestimmt keinen Nerven sobald ein sich mir
ein kleines Problem stellt.
Am Ende war es auch so, ich hatte vergessen die Hex Darstellung in der konstanten einzustellen .
Ich hoffe, dass ist auch der Grund warum der VISA read nicht funktioniert hat.
Aber danke erstmal
Hallo GerdW,
erstmal danke dür die Antwort. Du, ich hab einfach mittlerweile soviel versucht, dass ich den Wald
vor lauter Bäumen nicht mehr sehe. Ich will hier ganz bestimmt keinen Nerven sobald ein sich mir
ein kleines Problem stellt.
Am Ende war es auch so, ich hatte vergessen die Hex Darstellung in der konstanten einzustellen .
Ich hoffe, dass ist auch der Grund warum der VISA read nicht funktioniert hat.
Aber danke erstmal
Hallo,
also es lag doch an der kleinen aber wichtigen Hexadezimaleinstellung im
write-String. Hier noch einmal die vollständige Lösung für das auslesen
der Werte eines ABB AO2020 (Uras 14 + Magnos 106).
Beispiel für das Lesen der CO2 Konzentration (Bsp):
Request: 01 04 00 02 00 02 d0 0b (auch mit dem MDDE Server ermittelbar)
Response: 01 04 04 3d 43 fa 96 c5 32
Zu 100% kann ich die Ein- und Ausgabetelegramme noch nicht erklären. Grundlegend
bildet jedoch in beiden die 01 die Modbusadresse (im ABB), die 04 die Funktion
(in diesem Falle "read input register") und die letzten 2 Bytes die Prüfsumme.
Der reine auszulesende Datenwert ist 3d 43 fa 96. Wozu die vorranstehende 04 steht
weiss ich leider nicht. Genauso geht es mir mit dem Datenabschnitt im Request.
Für Interresierte oder jmd, der Leuten die auch mit dem selben Problem zu tun haben,
besser helfen kann als ich, habe ich das ABB Skript dazu angehangen.
Vielen Dank noch mal für die Hilfe.
(23.09.2013 08:02 )Blinky_Bill schrieb: [ -> ]Zu 100% kann ich die Ein- und Ausgabetelegramme noch nicht erklären.
Dann mach dich schlau über den Aufbau des Modbus Protokoll (in deinem Fall in der Variante Modbus RTU).
Alternativ schau dir den Sourcecode der
NI Modbus Lib an.
Gruß, Jens
Hi Jens,
hab mich informiert, in meinem Post vom 17.09
steht auch die Struktur des zu übertragenden
Telegrammes drin.
Das heisst bei Request wie Response steht die
01 für die Modbusadresse
04 für die Funktion
die letzen 4 Zeichen für die Prüfsumme.
Jetzt mit der Response weiter. Dort ergeben sich 8 Zeichen in der Mitte des Telegrammes,
von denen jedoch nur 6 den Wert wiedergeben. Die vorrangestellte 04 könnte eventuell den Eingabebefehl
zum Abgleich wiederholen.
Aber wozu die Datensequenz im Request steht kannst du mir vielleicht
sagen.
Grüße Bill
Hallo Jens,
danke für die Antwort. Auch wenn sich mein ABB Skript direkt auf das Übertragungsprotokoll bezieht,
ist es etwas Lückenhaft bzw. nur für jemanden hilfreich, der sich mit dem Thema auskennt.
Zusätzliche Literatur ist hier echt angebracht.
Gruß Bill