1

一点背景知识:我正在编写一个 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)

字#2:0000 0000 0000 0001

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

Visual Basic 中是否有任何内置函数可以将这两个 16 位字组合成 1 个双字?如果是这样,那是什么?

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

4

2 回答 2

2

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

于 2013-09-23T19:57:02.253 回答
0

在 VBA 中,如果您想将两个字符串连接在一起,您需要做的就是使用&运算符。例如:

Dim TempCombinedWord as String

TempCombinedWord = FirstWord & LastWord

如果FirstWord包含HappyLastWord包含TreeFriends。然后TempCombinedWord将包含HappyTreeFriends

于 2013-09-23T17:35:59.377 回答