Moin moin LVF!
Ich bin neu im Thema Modbus, jedoch etwas erfahrener mit LV..
Ich habe ein Problem mit der Datenkommunikation zwischen LV (2011) und Modbus des HC900 (verbaut in einem Parr 4871). Genauer gesagt funktioniert das Schreiben in das Holding Register nicht, weshalb ich hier Hilfe suche.
Hier die Fakten:
- Verwendet wird die freie nimodbus121 Bibliothek (ni.com)
- Auslesen der Register via TCP funktioniert (modpoll und LV)
- Schreiben in das Holding Regiser in LV funktioniert nicht (sowohl als "Write Single" und "Write Multiple Register")
- Schreiben via SpecView (Honywells Softwarelösung) funktioniert (den unten beschriebenen Setpoint)
Parameter:
Durch die verwendeten Modi in den VIs sind ja die "Function Codes" bereits definiert (Write Single=6, Write Multiple=16). Nun soll zunächst ein Wert (in einem 1D-U16-Array der größe 1) in das Holding Register geschrieben werden. Starting Address im Holding Register ist hier die 96, ein Setpoint für Temperatur (read/write).
Ausgegeben wird dann der Exception Code 6004.
Dieser Fehler bedeutet, dass der Slave einen Fehler erfährt und das Schrieben nicht funktioniert.
Vergleiche S. 20 (Single) und S.31(Multiple) im
MB-Protokoll.pdf
Wenn ich die Starting Address ändere, z.B. auf eine read only adresse kommt erwartungsgemäß der Fehler Code 6002 (falsche Adresse).
Kann jemand Rat geben oder hat eine Idee?
Ich danke im Voraus!
Grüße
labviewnick