亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 工业技术

改造 REST API – 设置反向代理

PLCnext REST 接口是一个出色的工具,用于呈现和接收来自后端系统的数据。 REST 或 REpresentational State Transfer 是一种软件架构风格,由用于创建可扩展 Web 服务的指南和最佳实践组成。 PLCnext 信息门户上已经有很多很棒的信息,请务必查看!如果您可以从头开始构建系统,PLCnext 固件提供的 URI 是完美的。但是,如果您想改造 PLCnext 上现有的 REST 接口,它们并不理想。本博客将向您展示如何设置自己的 URI 并使用反向代理将它们与您的变量连接起来。我们从建立一个小例子开始,然后从那里开始工作!

先决条件

我正在使用带有 FW2020.6 和 PLCnext Engineer 2020.6 的 AXC F 2152 控制器。但是对于 2020.0 之后的早期版本应该也可以做到这一点。我将使用 PuTTY 设置 SSH 连接和邮递员来处理我的 HTTP 请求。我出于开发目的禁用了身份验证,您不应该在生产中这样做! PLCnext Engineer 的指导将非常高水平,不知道该怎么办?查看 PLCnext 信息门户和说明视频和/或与示例项目进行比较!我使用的控制器的IP地址是192.168.10.10,请改成你使用的IP地址。

示例

在本博客中,我将使用一个简单的泵 UDT 作为示例。您可以从这个 GitHub 页面下载示例程序,当然也可以创建自己的。在 eHMI 设置中使用“用户管理”并创建一个全局变量。在 eHMI 页面上使用这个变量,以便我们可以在 API 中使用它。

第一个 API 调用

也许我们应该在片刻之后首先发现我们到底在改变什么!
让我们发送一个 GET 请求来获取我们的第一个泵的值。

使用 Postman 将 GET 请求发送到以下 URI:

GET https://192.168.10.10/_pxc_api/api/variables?paths=Arp.Plc.Eclr/Pump1

(您可以将 Pump1 更改为您自己的变量)

结果是:

{
"apiVersion": "1.4.0.0",
"projectCRC": 3448945666,
"userAuthenticationRequired": true,
"variables": [
{
"path": "Arp.Plc.Eclr/Pump1",
"value": {
"xStatus": false,
"iNumberOfStarts": 0,
"sStatus": ""
}
}
]
}

设置自定义端点

打开一个shell会话,创建一个root密码并以root用户身份登录。
接下来,在终端中输入以下命令,进入终端的“底部”,注意不要在此期间输入任何内容!

nano /etc/nginx/nginx.conf

复制粘贴下一部分到终端,用 ctrl + s 保存,用 ctrl +x 关闭。

location /Pump1 {
proxy_pass https://127.27.0.1:443/_pxc_api/api/variables?paths=Arp.Plc.Eclr/Pump1;
}

向新端点发送请求

使用邮递员发送一个新的 GET 请求,这次是到下一个 URI:

获取 https://192.168.10.10/Pump1

收到了同样的答案?恭喜您的代理设置成功!

设置多个泵

好的,但是如果我有多个泵怎么办?好吧,一种方法可以是制作一个房屋是泵 UDT 的阵列。您可以通过调用变量来获取整个数组,或者通过在右括号之间指定所需的索引来获取您感兴趣的元素,例如 Pump2[1] 将为您提供名为 Pump2 的数组中索引为 1 的元素。

但这就是这篇博客的主题。我们还可以设置代理以访问多个泵。
修改上一步粘贴的文字,匹配下一个方案:

location /pumps {
proxy_pass https://127.27.0.1:443/_pxc_api/api/variables?paths=Arp.Plc.Eclr;
}

使用邮递员向第一个 URI 发送 GET 请求将得到与以前相同的结果。向第二个 URI 发送 GET 请求会得到一个相同数据类型的数组。

https://192.168.10.10/pumps/Pump1
https://192.168.10.10/pumps/Pump2

现在您应该拥有与您遇到的任何 API 方案相匹配的所有内容,并将其集成到您的 PLCnext 设备中!

进一步阅读

https://www.howtogeek.com/343877/what-is-an-api/https://www.w3schools.com/tags/ref_httpmethods.asphttps://medium.com/@TebbaVonMathenstien/what-is-an -api-and-why-should-i-use-one-863c3365726b https://restfulapi.net/rest-api-design-tutorial-with-example/

工业技术

  1. 热固性塑料与热塑性塑料:了解区别
  2. 变得聪明:你家的未来
  3. 了解 CONNEX™ 加强制造商的供应链网络工具
  4. 在 B2B 购买过程中被选中:26 项检查
  5. 如何使用数字营销吸引国防工业客户
  6. 出口对小型制造商的好处以及如何开始
  7. 逆向物流的未开发潜力
  8. 反向拍卖的回归:供应商会玩吗?
  9. 如何充分利用您的仓库扫描系统
  10. 我如何从潜在客户开发投资中获得最大收益?
  11. 西班牙与其他国家/地区的工业 4.0 比较
  12. 如何开始在边缘进行 AI 推理