2016-07-31 3 views
0

Ich muss die Geschwindigkeit eines VSD über Modbus mit Python steuern. Ich habe alle Arbeiten akzeptieren einen Teil und das ist die Geschwindigkeit des VSD zu senden.Python Minimalmodbus sendender Wert

Wenn ich diesen Befehl senden wird der Motor

vsd.write_register(8192 , 2 , 0) 

starten Und dieser Befehl wird es

vsd.write_register(8192 , 6 , 0) 

Das Format der Befehle sind wie diese

Id code adrsh adrsl high low crc 
01 06 20 00  00  06 02 08 

Der stoppen lassen Dokumentation des VSD zeigt die Befehle Register und Werte als hex Aber die Python-Bibliothek benötigt Dezimal. Wenn ich also einfache Befehle sende, funktioniert alles 100%.

Aber wenn ich die Geschwindigkeit einstellen will, muss ich die hohen und niedrigen Werte einstellen. Wenn ich es eine 0x2710 oder eine 10000 sende, sendet die vsd einen Fehler zurück. Wenn ich das Tool benutze, das mit dem VSD geliefert wurde und ich den Wert 100.00 (10000) in seine 2 Bytes von 27 und 10 aufspalte, dann funktioniert alles gut. Wie sende ich den Wert an den VSD, weil 0x2710 nicht funktioniert.

Mit freundlichen Grüßen.

Antwort

0

Sie müssen den Funktionscode = 6 setzen. Dann sendet es die richtigen Bytes.