Hallo zusammen,
ich versuche von einem Modbus-Gerät einen 64Bit -Wert ( ROMCODE eines angeschlossenen 1wire-Sensors) zu lesen und darzustellen.
das Listing des Devices sieht so aus:
Internals:
BUSY 1
DEF 6 10 192.168.3.72:502 TCP
DEST 192.168.3.72:502
DeviceName 192.168.3.72:502
FD 31
INTERVAL 10
IODev ZContr
LASTOPEN 1509648323.46095
LeadingZeros 1
MODBUSID 6
ModuleVersion 3.7.0 - 20.8.2017
NAME ZContr
NOTIFYDEV global
NR 126
NTFY_ORDER 50-ZContr
PARTIAL
PROTOCOL TCP
REQUESTHEX 003a00000006060200030001
STATE opened
TRIGGERTIME 1509651039.83311
TRIGGERTIME_FMT 2017-11-02 20:30:39
TYPE ModbusAttr
devioLoglevel 3
nextOpenDelay 60
QUEUE:
HASH(0x28b17f0)
HASH(0x28bf060)
HASH(0x28c1470)
HASH(0x28b16a0)
HASH(0x28be910)
READINGS:
2017-11-02 20:30:17 1W-DevCount 1
2017-11-02 20:30:17 1W-ROM-1 000000000000fe28
2017-11-02 20:30:16 LaufZeit 20
2017-11-02 20:30:17 SperrZeit 15
2017-11-02 20:30:17 ZTrigger 0
2017-11-02 20:30:16 runF 0
2017-11-02 19:45:23 state opened
REQUEST:
ADR 0003
FCODE 2
FRAME :
LEN 1
MODBUSID 6
OPERATION read
PROTOCOL TCP
READING runF
TID 58
TYPE d
VALUE 0
DEVHASH:
defptr:
6:
gotReadings:
1W-ROM-1 000000000000fe28
helper:
buffer
lid 6
lrecv 1509651017.43614
lsend 1509651029.84018
lastRead:
c0008 1509651017.08168
d0003 1509651016.84678
h40001 1509651016.96514
h40002 1509651017.31743
h41000 1509651017.19971
h41001 1509651017.43789
Attributes:
dev-c-defPoll 1
dev-d-defPoll 1
dev-h-defPoll 1
obj-c0008-reading ZTrigger
obj-c0008-set 1
obj-d0003-reading runF
obj-h40001-reading LaufZeit
obj-h40001-set 1
obj-h40002-reading SperrZeit
obj-h40002-set 1
obj-h41000-reading 1W-DevCount
obj-h41001-format %.16x
obj-h41001-len 4
obj-h41001-reading 1W-ROM-1
obj-i30001-reading 1W-VAL-1
room Heizung
userattr dev-c-defPoll dev-d-defPoll dev-h-defPoll obj-c0008-reading obj-c0008-set obj-c1008-reading obj-c1008-set obj-d0001-reading obj-d0002-reading obj-d0003-reading obj-h40001-reading obj-h40001-set obj-h40002-reading obj-h40002-set obj-h41000-reading obj-h41001-format obj-h41001-len obj-h41001-reading obj-h41001-setexpr obj-h41001-unpack obj-i0001-reading obj-i30001-reading
Das Reading 1W-ROM-1 wird zwar mit 16 Stellen dargestellt, der Teil "fe28" ist auch korrekt, nur müsste der ganz links im MSB stehen. Die übrigen 6 Bytes fehlen und ich weiß nicht, wo die sind ...
Der ROMCode steht in den Registern korrekt zur Verfügung, das habe ich mit einem ModbusMonitor überprüft. Es scheint, dass trotz der Längenangabe "obj-h41001-len 4" nur 1 Register = 16Bit gelesen werden. Kann das sein? Woran liegt's?
Für Tipps und Hilfe vorab schon vielen Dank :)
Mike