LUA - 交换字节
我想知道是否有人可以帮助我解决这个问题。
我正在尝试使用 LUA 脚本读取设备(modbus)的变量,它可以工作。 但是我正在读取交换的变量,我知道我需要交换字节,但是如何交换?
例如,我的设备的真实价值是 1000,我的票据是 59395。
谢谢大家。
这是我的代码:
modbus_tcp = getfenv(0).modbus_tcp -- load the library
modbus_tcp.open(2,'10.50.80.10',502) -- Open the Modbus TCP connection
-- Read from ID 1, holding register 4101, two value:
result,values=modbus_tcp.hr_read(2, 1799,10)
val1=values[1]
val2=values[2]
val3=values[3]
val4=values[4]
val5=values[5]
val6=values[6]
val7=values[7]
val8=values[8]
val9=values[9]
print(val1)
print(val2)
print(val3)
print(val4)
print(val5)
print(val6)
print(val7)
print(val8)
print(val9)
print(">------<")
modbus_tcp.close() -- Close the Modbus TCP connection
I want to know if anyone could help me with this one.
I'm trying to read variables of a device (modbus) with a LUA scrip and it works.
But I'm reading the variable swapped, I know I need to swap the bytes but how?
For exemple, my true value of the device is 1000 and my scrip is reading 59395.
Thanks guys.
This my code:
modbus_tcp = getfenv(0).modbus_tcp -- load the library
modbus_tcp.open(2,'10.50.80.10',502) -- Open the Modbus TCP connection
-- Read from ID 1, holding register 4101, two value:
result,values=modbus_tcp.hr_read(2, 1799,10)
val1=values[1]
val2=values[2]
val3=values[3]
val4=values[4]
val5=values[5]
val6=values[6]
val7=values[7]
val8=values[8]
val9=values[9]
print(val1)
print(val2)
print(val3)
print(val4)
print(val5)
print(val6)
print(val7)
print(val8)
print(val9)
print(">------<")
modbus_tcp.close() -- Close the Modbus TCP connection
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可以使用以下功能:
You can use the following function: