0

我正在使用 OPC DA 自动化包装器连接到 AllenBradley PLC。

我现在需要在一个单词中设置一个位,独立于任何其他位。

有什么方法可以严格实现这个功能吗?

我尝试过的两个选项是:

在 OPC 服务器 (Kepware) 中将单词设置为单独的位。所以换句话说,我有 16 个标签,每个标签都有一点,标签名称看起来像:

[FULLTAGNAME].0
[FULLTAGNAME].1
[FULLTAGNAME].2

但是,这意味着我需要保留许多单独的 OPCItem 对象

另一种方法是读取整个字,使用 将其转换为位BitConverter,更改我需要更改的位,然后将保留字写回 PLC。

然而,在测试过程中,我发现线程 1 可以读取这个词。然后线程 2 将写入字,更改位 2。然后线程 1 将更改位 4 并将整个字写回,而对位 2 的更改将被覆盖。

有谁知道我可以拥有一个 OPCItem 并写入特定位的方法?还是我坚持有很多与某个位相关的 OPCItems?

谢谢

4

1 回答 1

0

设置 OPC 驱动程序以使用位数组。PLC 本身将接受对内存的引用作为带有偏移的位数组。之后,只是 OPC 驱动程序如何实际实现这一点的问题。我很确定 Kepware 会以这种方式接受它。

于 2016-03-04T19:11:19.820 回答