在 TwinCAT 3 中将两个词组合成一个双词?

问题描述 投票:0回答:1

我正在使用 TwinCAT 3.

我正在尝试通过 MODBUS TCP 读取浮动变量。 读取的变量在一个字数组中。如何将 2 字转换为浮点数/实数?我的意思是这两个词首先要结合起来,然后另存为另一个变量,如 DWORD。 此外,我什么时候必须进行交换?

modbus
1个回答
0
投票

您可以创建一个包含 2 个 WORD 的数组,并使用 MEMCPY 直接将内存与 REAL 类型交换,因为它们都是 4 个字节。 例子:


主要程序
无功函数

真实价值:真实;
单词:单词数组 [0..1];
第一个字:字; //从modbus读取
第二个字:字; //从modbus读取

END_VAR

字[0] := firstWord;
单词[1] := secondWord;

MEMCPY(ADR(RealValue), ADR(words), 4);


MEMCPY分别取3个输入;目标地址、源地址和要传输的字节数。

© www.soinside.com 2019 - 2024. All rights reserved.