是否可以从同一应用程序中的多个线程与OPC服务器通信?

时间:2014-01-23 10:49:44

标签: c# multithreading plc opc libnodave

我正在开发一个自动化项目,我需要并行处理21个固定安装条形码扫描器(即所有扫描仪将一直运行)以实现我使用的多线程。这里每个线程将处理一个条形码扫描器。

现在,我想使用O.P.C更新P.L.C(DB /内存块/标签)中的扫描数据。所以,我想知道是否可以通过在多线程应用程序中使用O.P.C客户端来更新P.L.C值。
我使用的是Siemens P.L.C(型号: - CPU 315-2 PN / DP,第7步,300系列)。

我还想知道是否应该使用O.P.C Server或LibNoDave。将有大约300个标签(P.L.C中的数据块),我需要阅读并检查数据更改事件。

2 个答案:

答案 0 :(得分:0)

简短的回答是,但还有更多,A Murray提供的链接很好。 您还应该考虑是否可以真正为多线程带来任何速度优势。使用OPC-DA和单个线程,您可以轻松地每秒进行数千次数据更改 - 您真的需要更多线程吗?

答案 1 :(得分:0)

更好地保持您的架构尽可能简单并避免大量线程,多线程可能会不必要地使事情复杂化,并且在线程需要同步时还需要支付性能价格。由于您有一个OPC服务器和多个线程连接到它,因此必须注意不要让线程相互干扰。如果我是你,我会有一个线程,用所有条形码扫描仪设置OPC服务器的订阅。然后另一个线程来监视该线程,看它是否仍在工作。