将2 word16转换为双字

时间:2013-09-23 17:31:14

标签: vba plc

一点背景:我正在编写一个Visual Basic应用程序。它将连接到欧姆龙可编程逻辑控制器(PLC)。

当我从PLC读取数据时,它们是WORD(16位)。然而,PLC程序员需要有一个双字(32位)的大数字(大于16位可以容纳)。我需要能够在屏幕上显示该号码。如上所述,我从PLC读取为WORD。所以我可以进行2次读取以获得2个单词。但它们是分开的。

这就是它:我需要在屏幕上显示120,000(VB应用程序)。在PLC上,我读了2个字(以位形式): Word#1:1101 0100 1100 0000(无符号,等于54464)

Word#2:0000 0000 0000 0001

我需要把这些放在一起:0000 0000 0000 0001 1101 0100 1100 0000 = 120,000

Visual Basic中是否有内置函数将这两个16位字合并为一个双字?如果是这样的话是什么?

或者我是否必须编写一个函数将这两个值放在一起? 或者有人做过这样的事情,可以为我提供一些信息吗?

2 个答案:

答案 0 :(得分:2)

我找到了<<和>>操作数。他们左右移位。所以我使用公式(Word2<< 16)来生成Word2的值。然后添加了Word1的值。

答案 1 :(得分:0)

在VBA中,如果要将两个字符串连接在一起,则只需使用&运算符即可。例如:

Dim TempCombinedWord as String

TempCombinedWord = FirstWord & LastWord

如果FirstWord包含 快乐 LastWord包含 TreeFriends 。然后,TempCombinedWord将包含 HappyTreeFriends