NEWS
UNSOLVED Modbus HEX in IOBroker Modbus Adpater
-
Hallo,
Ich habe mir eine Relais Platine die über Modbus TCP/IP Steuerbar ist gekauft.
Nun meine Frage ist wie bekomme ich den IOBroker Adpater dazu die Platine zu Steuern und ab zu fragen?
Der Hersteller liefert die Ansteuerung in HEX was über eine Software auf dem Rechner auch gut funktioniert.
Jedoch habe ich keine Ahnung wie ich die Register aus den Hex angaben bekommen soll.evtl hat ja jemand einen Tipp?
-
@nils-arnold
In Javascript können Zahlen auch im Hex-Format eingegeben werden:const x = 0x01050000FF008C3A; // 73464973199707200
Welche Datenpunkte liefert der Modbus-Adapter zur Relais-Platine.
-
@paul53 Ich würde Sagen den Status und das Öffnen und Schließen der Relais.
Ich bin mir nicht sicher ob du das wissen wolltest. Sonst gibt es hier noch die Seite von dem Gerät aus der ich nicht Schlau werde.
-
@nils-arnold sagte: Ich würde Sagen
Wenn das Gerät eingebunden wurde, muss der Modbus-Adapter Datenpunkte erstellt haben.
-
@paul53 Ich habe über eine Windows Modbus TCP Software anfragen an den Adapter gesendet. Die Anfrage sieht so aus: 00 00 00 00 00 06 01 05 00 00 FF 00
in diesem fall wird das Relais 1 Geschlossen.
Ich habe nun nicht Verstanden Welche Adresse und Slave-ID diese Relais hat.
Ich habe zwar die Liste von befehlen, jedoch sind alle in diesem HEX format, und ich weiß leider nicht wie ich diese in den IObroker Modbus Adapter einbinden kann.Daher die Frage: wie binde ich dieses Gerät denn ein?
-
@nils-arnold sagte in Modbus HEX in IOBroker Modbus Adpater:
ch habe zwar die Liste von befehlen, jedoch sind alle in diesem HEX format
du brauchst nur die Registeradressen. Wenn die in HEX sind kannst du umrechnen in Dec
-
@homoran OK,
Siehst du auf der Seite des Herstellers die Adressen?
Ich habe da bis jetzt leider keine gefunden.oder übersehe ich etwas?
-
@nils-arnold sagte in Modbus HEX in IOBroker Modbus Adpater:
Siehst du auf der Seite des Herstellers die Adressen?
ich vermute ja, zitieren aus dem Bild ist aber nicht möglich
zeile 3, also byte 3+4
-
@homoran Das würde bedeuten die Adresse von CH1 Relay ist 0?
Wäre in diesem fall die Slave-ID auch 0?
und was für ein Typ wäre diese Adresse dann?
und wäre das dann unter Holding-Register richtig?So wie ich es verstanden habe sollten RW Register Holding-Register sein.
-
@nils-arnold sagte in Modbus HEX in IOBroker Modbus Adpater:
Wäre in diesem fall die Slave-ID auch 0?
das scheint Byte 1 zu sein
-
@nils-arnold
Hallo,
Also in deinem Bild steht ja ein komplettes MB-Telegramm drin.
Dröseln wir das mal auf:
01 05 00 00 FF 00 8C 3A
01 -> Adresse des Board, die muss im MB-Adapter bei der "Geräte ID" rein, wobei das bei MB-TCP eigentlich egal sein sollte, da das Board über die IP eindeutig identifziert ist.
05 -> MB Function Code 5 -> Force single coil, also ein Bit schreiben
00 00 -> Adresse des Relais, also in dem Fall das 1. Relais
FF 00 -> einschalten, 00 00 -> ausschalten
8C 3A -> Checksumme die wir vom Programm/Adapter errechnetDa du ein Bit schreiben willst musst du im MB-Adapter bei den diskreten Ausgängen Einträge mit den Adressen 0 bis 3 anlegen. Dann kannst du unter den Objekten in den entsprechenden Datenpunkt entwerder 0000 für ausschalten oder 65280 (Hex FF00) zum einschalten eintragen. Dann sollten die Relais eigentlich schaltbar sein.
Edit: Typo
-
@dolomiti sagte: in den entsprechenden Datenpunkt entwerder 0000 für ausschalten oder 65280 (Hex FF00) zum einschalten eintragen.
... oder einen Alias vom Typ "Logikwert" mit Schreibkonvertierung verwenden:
val ? 0xFF00 : 0
... oder Formel in der Instanz-Konfiguration?
@dolomiti sagte in Modbus HEX in IOBroker Modbus Adpater:
8C 3A -> Checksumme die wir vom Programm/Adapter errechnet
Die gibt es laut dieser Doku bei Modbus-TCP nicht.
-
@paul53
Stimmt. Wird bei den Modbus-Testprogrammen immer nur mitangezeigt und dann bei MB-TCP abgeschnitten.
Die Seite kannte ich noch nicht. Direkt mal Lesezeichen gesetzt.