我正在使用OPC自动化包装器连接到AllenBradley PLC。
我现在需要在一个字内设置一个位,独立于任何其他位。
有什么方法可以让我严格地实现这个功能吗?
我尝试过的两个选项是:
在OPC服务器(Kepware)中将该字设置为单独的位。换句话说,我有16个标签,其中每个标签都是单词中的一位,因此标签名称看起来像:
[FULLTAGNAME].0
[FULLTAGNAME].1
[FULLTAGNAME].2然而,这意味着我需要保留许多独立的OPCItem对象
另一种方法是读取整个字,使用BitConverter将其转换为位,更改我需要更改的位,然后将保持字写回可编程控制器。
然而,在测试过程中,我发现线程1可以读取这个单词。然后线程2将写入该字,改变比特2,然后线程1将改变比特4并写回整个字,并且对比特2的改变将被重写。
有没有人知道一种方法,可以让我拥有一个OPCItem并写入特定的位?或者我被困在有很多与某个比特相关的OPCItems??
谢谢
发布于 2016-03-05 03:11:20
将OPC驱动程序设置为使用位数组。PLC本身将接受对内存的引用,作为带有偏移量的位数组。在此之后,OPC驱动程序实际上如何实现它就成了一个问题。我很确定Kepware会接受这种方式。
https://stackoverflow.com/questions/16938033
复制相似问题