我正在尝试使用最小modbus写入_float的PLC需要交换单词。在
我已经用Modbus轮询测试了硬件。
最小Modbus write_float也可以使用,但使用错误的语序。
我检查了文档解决方案中的read_float,它可以处理工作区。在"Workaround for floats with wrong byte order"
When I try to swap the words before the write_float
I get values that generate an error:
"raise TypeError('The {0} must be numerical.
Given: {1!r}'.format(description, inputvalue))
TypeError: The input value must be numerical.
Given: array([-9.8611155e+32], dtype=float32)"
尝试使用单个write_寄存器作弊也会产生负值错误:
^{pr2}$
例如:Decimal float value of 123.456
with plc1.write_float(28672, 123.456, 2)
我需要:Word register 28672 dec-5767 hex word(42 F6)
Word register 28673 dec17142 hex word(E9 79)
我得到:Word register 28672 dec 17142 hex word(E9 79)
Word register 28673 dec-5767 hex word(42 F6)