LUA - 交换字节

发布于 2025-01-21 03:27:48 字数 748 浏览 0 评论 0原文

我想知道是否有人可以帮助我解决这个问题。

我正在尝试使用 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

满身野味 2025-01-28 03:27:48

您可以使用以下功能:

function SwapValues(v)
     return (v-(math.modf(v/2^8)*2^8))*2^8+math.modf(59395/2^8)
end

You can use the following function:

function SwapValues(v)
     return (v-(math.modf(v/2^8)*2^8))*2^8+math.modf(59395/2^8)
end
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文