我正在使用OPC DA Automation Wrapper连接到AllenBradley PLC。
我现在要求在一个字内设置一个位,独立于任何其他位。
我有什么办法可以严格地实现这个功能吗?
我尝试过的两个选项是:
将字设置为OPC服务器(Kepware)中的单独位。换句话说,我有16个标签,其中每个标签都有一个,标签名称如下所示:
[FULLTAGNAME].0
[FULLTAGNAME].1
[FULLTAGNAME].2
然而,这意味着我需要保留许多单独的OPCItem对象
另一种方法是读取整个字,使用BitConverter
将其转换为位,更改需要更改的位,然后将保持字写回PLC。
然而,在测试期间,我发现线程1可以读取该单词。 然后线程2将写入该字,更改为第2位。然后,线程1将更改第4位并将整个字写回,并且将更改第2位的更改。
有没有人知道我可以使用单个OPCItem并写入特定位的方法?或者我是否因为有很多与某个位相关的OPCItem而陷入困境?
由于
答案 0 :(得分:0)
设置OPC驱动程序以使用位数组。 PLC本身将接受对存储器的引用,作为具有偏移的位数组。之后,这只是OPC驱动程序如何实现这一点的问题。我很确定凯美华会以这种方式接受它。