如何将OPC UA服务器连接到PLC?

时间:2020-07-01 09:53:37

标签: python plc opc-ua siemens

我有一台不包含OPC-UA服务器许可证的PLC西门子s7-1500,因此我正在寻找替代方案,因为我需要将此PLC信息链接到OPC-UA服务器然后由另一个OPC-UA客户进行咨询。

到目前为止,我已经探究了python库python-opcua,但是我是IoT和OPC-UA的新手,我希望能获得一些指导以继续进行此实现。

最好的问候 亚历杭德罗

4 个答案:

答案 0 :(得分:0)

通常,我认为为S7编写自己的OPC UA服务器并不可行。即使有了一个好的SDK,这也不是一件容易的事。

市场上有几种为S7提供OPC UA的软件和硬件产品,尽管它们不是免费的,但它们通常是非常值得的,除非您对自己的工作没有太大的价值。< / p>

答案 1 :(得分:0)

OPC UA是一个复杂的协议,编写您自己的服务器并不容易,编写必须与S7进行通信且与OPC UA不相关的部分也很复杂。

Siemens从未发布过与S7通信的协议,您只能找到大约20年历史的,功能非常有限的库。

从PLC处购买OPC UA许可证将更加便宜和安全,与PLC价格相比,我想我还记得这并不昂贵。

答案 2 :(得分:0)

正如其他答案已经提到的那样,与西门子S7一样,在封闭的PLC周围编写自己的OPC UA服务器不是最佳选择。

如果仍然需要这样做,可以尝试以下方法:

  1. 使用Snap7库(http://snap7.sourceforge.net/)和C ++来连接到Siemens S7
  2. 使用open62541 OPC UA堆栈(https://github.com/open62541/open62541)将上一步中的代码包装到OPC UA服务器中
  3. 将GitHub上的所有内容作为开源发布,以帮助他人:)

open62541中有一些OPC UA服务器示例,应该可以帮助您入门: https://github.com/open62541/open62541/blob/master/examples/tutorial_server_variable.c

答案 3 :(得分:0)

我还没有完成您对Siemens S7 PLC的要求,但是我已经使用Node-red与许多其他PLC一起完成了

Siemens S7 PLC有一个节点