Minimalmodbus read_register/read_float T3-PT10
Verfasst: Dienstag 21. März 2017, 11:24
Hallo,
ich versuche gerade Temperaturdaten zu lesen. PT100 Sensoren sind verknüft mit einem 10 Kanal Modbus Slave Device (Temco T3-PT10).
Dokumentation:
Address 100~101, Bytes 4
When set INT, 100 will show 0 and 101 show the temperature for channel 1, 250= 25.0C
when set flaot,100 and 101 show 25.0000C
-> Daher lese ich 101 als Adresse aus (103 für den nächsten Kanal usw...)
Minimalmodubs Einstellungen:
ich lese wie folgt:
*Anmerkung wenn ich ich hier mit r,3,1 lese kommen nur minus Werte komischerweise. Sobald ich hier auf 2 gehe scheinen Werte plausibler zu sein.
Ich bekomme solche Werte retour:
Start Reading P3-PT10 2017-03-21 09:47:12
Channel 1 RegisterValue: 17530 Float: 1000.0
Channel 2 RegisterValue: 50043 Float: -251.279998779
Channel 3 RegisterValue: 16681 Float: 10.5799999237
Channel 4 RegisterValue: 49421 Float: -8.81999969482
Channel 5 RegisterValue: 16685 Float: 10.8524999619
Channel 6 RegisterValue: 16684 Float: 10.7725000381
Channel 7 RegisterValue: 49523 Float: -15.1975002289
Channel 8 RegisterValue: 16692 Float: 11.2600002289
Channel 9 RegisterValue: 16688 Float: 11.0524997711
Channel 10 RegisterValue: 16691 Float: 11.1875009537
Fragen:
Kann ich den Wert des Register umwandeln zu Float? Um zu vergleichen ob das gleich retour kommt?
Lese ich korrekt aus?
ich versuche gerade Temperaturdaten zu lesen. PT100 Sensoren sind verknüft mit einem 10 Kanal Modbus Slave Device (Temco T3-PT10).
Dokumentation:
Address 100~101, Bytes 4
When set INT, 100 will show 0 and 101 show the temperature for channel 1, 250= 25.0C
when set flaot,100 and 101 show 25.0000C
-> Daher lese ich 101 als Adresse aus (103 für den nächsten Kanal usw...)
Minimalmodubs Einstellungen:
Code: Alles auswählen
instrument = minimalmodbus.Instrument('/dev/ttyUSB0', modbusAddress)
instrument.serial.baudrate = 9600
instrument.serial.bytesize = 8
instrument.serial.parity = minimalmodbus.serial.PARITY_NONE
instrument.serial.stopbits = 1
instrument.serial.timeout = 3.0
instrument.debug = False
instrument.mode = minimalmodbus.MODE_RTUCode: Alles auswählen
#read_float(registeraddress, functioncode=3, numberOfRegisters=2)
temperaturef = instrument.read_float(r, 3, 2)Code: Alles auswählen
#read_registers(registeraddress,numberOfRegisters,functioncode=3)
temperature = instrument.read_register(r, 1, 3)Start Reading P3-PT10 2017-03-21 09:47:12
Channel 1 RegisterValue: 17530 Float: 1000.0
Channel 2 RegisterValue: 50043 Float: -251.279998779
Channel 3 RegisterValue: 16681 Float: 10.5799999237
Channel 4 RegisterValue: 49421 Float: -8.81999969482
Channel 5 RegisterValue: 16685 Float: 10.8524999619
Channel 6 RegisterValue: 16684 Float: 10.7725000381
Channel 7 RegisterValue: 49523 Float: -15.1975002289
Channel 8 RegisterValue: 16692 Float: 11.2600002289
Channel 9 RegisterValue: 16688 Float: 11.0524997711
Channel 10 RegisterValue: 16691 Float: 11.1875009537
Fragen:
Kann ich den Wert des Register umwandeln zu Float? Um zu vergleichen ob das gleich retour kommt?
Lese ich korrekt aus?