【发布时间】:2016-07-25 01:17:17
【问题描述】:
我有一个 RESTful HTTP API。现在我想从我的 S7 PLC 向 API 发送 HTTPS 请求。我联系了 Siemens,他们说他们没有 HTTPS 客户端实现。
但是库中有一个tcpClient 模块。由于 TCP 是基于 SSL 的 HTTP 的基础,我想问一下是否有人已经实现了 HTTPSClient,或者是否有人知道从哪里开始?
API 只能通过 HTTPS 访问以保护隐私。
【问题讨论】:
我有一个 RESTful HTTP API。现在我想从我的 S7 PLC 向 API 发送 HTTPS 请求。我联系了 Siemens,他们说他们没有 HTTPS 客户端实现。
但是库中有一个tcpClient 模块。由于 TCP 是基于 SSL 的 HTTP 的基础,我想问一下是否有人已经实现了 HTTPSClient,或者是否有人知道从哪里开始?
API 只能通过 HTTPS 访问以保护隐私。
【问题讨论】:
tcpClient 仅使您能够创建 TCP 套接字,而不是提供与 HTTP(s) 服务器的通信。 S7 没有足够的处理能力来提供完整的 HTTP 通信。
您的选择之一是在 PLC 附近放置一台小型计算机,并转换为 S7 支持的协议之一,如 OPC-Da,或编写自定义实现以与 tcpClient 一起使用。
根据 S7 版本,您还可以使用 OPC-Ua,它是 OPC-Da 的继任者,因此您在使用 dcom 时不会遇到任何问题。 OPC-Ua 的另一个好处是它具有内置加密功能,可以通过防火墙。
如果您需要任何进一步的信息,请告诉我。
【讨论】:
拥有 tcpClient 模块可以让您创建 TCP 套接字以与 PC 或其他 PLC 通信。然而,HTTPS 是另一回事:它是应用层协议。
PLC 编程软件,在您的情况下为 Step 7,通常是为实现控制算法而设计的;数据处理绝对不是强项,尽管今天的 PLC 硬件应该足以支持 HTTPS。
我想说,如果您可以访问 S7 PLC 的内核 API(我知道 Schneider 确实为他们的 Unity 平台提供了 SDK,但我不确定 Siemens),您应该能够使用 C 语言编写您的 HTTPS 模块。但是,IEC61131-5 语言根本不是一种选择。
问候, 豪
【讨论】: