manbetxapp下载 问题43 - 2020 学习资源 产品 可编程控制

你的PLC会讲JSON吗?

最新的PLC可以直接与Internet网站进行通信,从而创建新的自动化可能性。

由Eric Witcher,AutomationDirect

2019年7月发行的《控制工程》杂志刊登了一篇封面文章,描述了现代工业控制器现在如何能够直接与互联网资源进行交互。这篇文章的题目是将PLC连接到Internet的好处,它展示了用户如何增强他们的自动化系统,以便直接从Internet获取实时数据。下面几节是根据这个故事改编的。

可编程逻辑控制器(PLC)长期以来一直是可靠和快速地执行工业自动化所必需的控制逻辑的首选技术。PLC最初与他们的本地硬连线输入/输出(I / O)连接一起工作,最终获得网络功能,因此它们可以与人机接口(HMI)或其他智能设备进行通信。

但甚至更有可能。最终用户熟悉各种网站提供的丰富信息,使用浏览器或专用应用程序可查看。如果PLC连接到互联网并获取此类有用数据的方法,该怎么办?最新一代AutomationDirect Do-More的PLC(BRX PLC)包括PLC指令和功能来完成此任务。

例如,灌溉、冷却塔和暖通空调应用程序可以使用当前和预测的降水量、湿度和温度条件来微调操作,而无需操万博官网手机登陆作员交互。太阳能装置可以确定太阳在任何已知位置和时间的方位角和高度。从互联网上获得的信息可能不是实时控制所必需的,但可以在其他方面帮助操作员,例如显示实时商品价格的HMI。

许多有用的网站已经为用户提供了获取原始数据的编程方式。这称为应用程序编程接口(API)。具有正确指令的可编程逻辑控制器可以配置为使用API定义与这些类型的互联网资源进行通信。以下PLC工具使这成为可能:万博官网手机登陆

  • 访问超文本传输​​协议的说明(HTTP)
  • 处理和解析JavaScript对象表示法(JSON)的说明

使用这些指令,PLC可以启动与各种网站的HTTP通信,并从这些网站接收JSON数据。然后必须对接收到的JSON数据进行解析,以提取所需的信息。

浏览器基础知识

大多数人都使用Web浏览器导航互联网。他们熟悉将网站名称键入浏览器地址栏,有时以“http://”(或“https://”为安全站点)。网站地址是正式称为统一资源定位器(URL)的地址,并且该点指向特定域和网页。HTTP协议定义了应用程序如何通过万维网(WWW)进行通信。万博官网手机登陆具体地,HTTP描述了如何格式化,发送和处理消息。

当用户在浏览器中键入URL时,会向目标web服务器生成一个HTTP请求,并使用相应的HTTP响应填充浏览器显示。HTTP请求和响应都是轻量级的文本文件,软件很容易创建和解析它们。

可编程逻辑控制器可以以类似的方式与互联网交互,但有几个关键的区别。

正在运行的API

虽然许多网站提供各种API定义,但PLC社区可能最感兴趣的是那些提供对自动化机器、设备和系统有用的硬数据的网站。要获取此类信息,PLC需要出站互联网接入,以便可以连接到所需的网站。

通过搜索“网站API”和类似术语在互联网上进行的研究将确定各种网站及其提供的API。一些api提供免费访问,或者每天至少提供有限数量的免费连接。其他网站,往往有更多有价值的信息,可能需要注册,并收取使用费或订阅费。

程序员应该有一些软件工具,因为它们开始使用互联网网站连接PLC的PLC,包括开源Wireshark数据包监控软件和JSON感知文本编辑器。

json样本
图2:以颜色突出显示的JSON示例显示了信息的分层性质,其中包含供软件解析的可读数据。

打开json.

对WebsiteAPI的HTTP请求将返回JSON格式的响应,这在原始格式中不容易被人类读取(图1)。但是,JSON有一个定义良好的层和嵌套系统,这些信息对象可以通过兼容的文本编辑器轻松查看(图2)。

JSON数据有效载荷
图1:典型的JSON数据有效载荷需要一些解析以提取所需的数据。

用户想要的信息通常嵌套在JSON文件的几层深处,必须逐步解析这些信息才能检索到。在图2的例子中,44华氏度的温度存在于第3层,在第2层“帝国”和
第1层“温度”。

AutomationDirect BRX PLC包含四个关键功能,可以与Internet网站进行通信:

  • 在工厂网络上配置了一个以太网端口,具有适当的权限,允许PLC连接到Internet
  • 能够配置为传输控制协议(TCP)客户端,因此PLC可以打开逻辑信道以启动HTTP指令
  • HTTP命令指令,因此请求字符串可以发送到目标URL的API
  • JSON解析指令,以便可以处理响应数据有效载荷

对于AutomationDirect,特定的程序指令是Httpcmd和jsonparse。以下是演示必要步骤的应用示例。万博官网手机登陆

PLC问:“明天的温度是什么?”

使用可编程逻辑控制器获取互联网数据最常见的例子可能是当可编程逻辑控制器联系天气网站以确定第二天的预测当地温度时。也可以通过这种方式或通过连接到PLC的室外温度传感器获得当前的局部温度。

例如,AccuWeather网站在“API Reference”选项卡下提供具有许多细节的API。用户应始终咨询目标网站有关注册,创建申请,成本和其他技术细节或限制。万博官网手机登陆

在这种情况下,私有用户API密钥是启动HTTP通信所必需的。该用户API密钥授权通信并类似于密码。

此API提供了许多获取数据的方法。例如,如果PLC在一个主要城市,那么可以在一个步骤中获得温度。为了更好的准确性,用户可以选择纬度/经度甚至邮政邮政编码来查找位置键,用于调用其他API方法。

图3:AutomationDirect BRX PLC中的HTTPCMD块使PLC能够启动对internet网站API的请求以获取数据。AutomationDirectDoMore设计器软件有必要的说明。

此示例使用后一种方法。首先,将HTTPCMD指令发布到目标网站,以“获取”结果“邮政编码搜索”
(图3)。

在API规则之后,JSON响应将是一个包含“键”值的数据有效负载,在这种情况下是所需位置的查找索引。JSONPARSE指令允许PLC浏览到有效载荷并提取必要的密钥(图4)。

图4:使用AutomationDirect BRX PLC中的JSONPARSE块,因此PLC可以在JSON数据有效载荷中钻入对象的层,并提取所需信息。

一旦钥匙知道,它可以用于配置另一组HTTPCMD和JSONPARSE指令,然后根据温度值的必要时重复。

在这种情况下,为了获得第二天的温度预测,用户将将HttpCMD配置为“获取”“预测/ 1day”,然后使用JSONPARSE提取度的温度。请注意,JSON响应被处理为字符串变量,可能需要几个连续的JSOMPAxSE指令来深入浏览层以找到所需的数据。

虽然初始编程需要几步,但可以自动生成后续请求。

保持控制

PLC为有用数据询问互联网的能力是强大的,但用户必须为能够联系Internet的任何工业设备或网络提供仔细的安全性。此外,必须强大地安排PLC程序,以便它可以承受任何类型的互联网中断。

互联网提供了许多信息,其中许多信息不能用本地传感器和仪器轻松获得。通过正确的PLC,一些规划和一点编程,用户可以通过让他们的PLC直接从Internet网站收集信息来增强他们的应用程序。万博官网手机登陆