我有一个 PLC Siemens s7-1500,它不包括 OPC-UA 服务器的许可证,因此我正在尝试寻找替代品,因为我需要将此 PLC 信息链接到 OPC-UA 服务器,然后再咨询由另一个 OPC-UA 客户端。
到目前为止,我已经探索了 python 库 python-opcua,但我是 IoT 和 OPC-UA 的新手,我希望获得一些指导以继续此实施。
最好的问候亚历杭德罗
正如其他答案已经提到的那样,围绕封闭的 PLC 编写自己的 OPC UA 服务器并不是最佳选择,因为 Siemens S7 就是这种情况。
如果您仍然需要这样做,您可以尝试以下方法:
open62541 中有一些 OPC UA 服务器的示例,应该可以帮助您入门: https ://github.com/open62541/open62541/blob/master/examples/tutorial_server_variable.c
一般来说,我认为为 S7 编写自己的 OPC UA 服务器不太可行。即使有一个好的 SDK 的帮助,这也不是一件容易的事。
市场上有几种软件和硬件产品为 S7 提供 OPC UA,虽然它们不是免费的,但它们通常非常值得,除非您对自己的工作没有太多价值。
OPC UA是一个复杂的协议,编写自己的服务器并不容易,编写与OPC UA无关的必须与S7通信的部分也会很复杂。
西门子从未发布过与 S7 通信的协议,您只能找到一些功能非常有限的 20 年历史的库。
从西门子购买 OPC UA 许可证会便宜得多,也安全得多,我想我记得它并不贵,与 PLC 价格相比。
我没有在 Siemens S7 PLC 上完成您要求的操作,但我已经使用 node-red 对许多其他 PLC 完成了此操作。
西门子S7 PLC有节点