ARTICLE · 1027543
OPC Router之REST插件演示:以天气API为例,走通REST查询+SQL入库+Telegram推送全流程
导读:只要对方提供 REST API,OPC Router 的 REST 插件就能把数据接进来、送出去。本文用一个完整案例:通过OPC Router的 REST 插件调用 OpenWeather 天气 API,实现天气数据的自动查询、SQL Server 入库与 Telegram 消息推送。

示意图
围绕OPC Router的REST插件,下面这条链路会完整走一遍,共涉及四个目标:
☑ 从OpenWeatherMap 检索天气数据。
☑ 对JSON 格式的天气数据进行处理。
☑ 使用SQL Server 插件将数据存储到 SQL 数据库中。
☑ 使用Telegram 插件通过电报发送天气数据。
OPC Router-中央通讯平台
OPC Router是一种软件解决方案,可简单清晰的将工业自动化系统与IT系统连接。
它实现了PLC、OPC系统、ERP、SCADA/HMI、MES、云(REST、MQTT)和数据库系统(SQL Server、Kafka、influxdb、MySQL、PostgreSQL、MongoDB、SAP HANA等)以及打印机、RFID和条形码系统之间的自动双向数据交换。如下图所示:

中央通讯平台
天气API——访问天气数据的REST接口
REST 接口是一种基于 Web 技术的数据接口。数据可以通过 https 协议从 REST API 获取。从技术上讲,就像在浏览器中一样,通过 URL 调用一个网页;参数以字段形式追加到 URL 中传递给网页调用,各参数的含义由对应的 REST API 文档定义。
OpenWeather 天气 API 的文档可在线查阅:https://openweathermap.org/api需要注意的是,并非所有以往可用的预报类型(例如 16 天或 30 天预报)如今仍可免费获取,部分数据只能通过 One Call API 3.0 等付费 API 获得。根据 API 版本的不同,存在相应的使用量与检索次数限制;若超出限制或使用付费 API,则需要激活付费计费方案。
REST调用(REST Call)
参数 "q" 用于指定城市和国家代码。REST API 端点为 "weather"。参数通过 "?" 附加到端点之后,并以 "&" 连接多个参数;每个参数以 "参数名=参数值" 的形式声明。
参数 "appid" 被天气 API 用作身份验证标识,用于识别发起检索的客户端。若要搭建自己的测试环境,必须先申请一个 App-ID(即 API KEY)才能进行数据检索。
在 OPC Router中连接REST接口
要使用 OPC Router 调用 REST 端点,第一步需要将 REST 插件(REST Plug-in) 引入到 HOST(主机)中,为此需在主机中创建相应条目。

当用于调用的主机配置完成后,即可在 OPC Router 连接中使用一个 REST 传输对象,该连接将使用所创建的主机。随后在传输对象中选择相应的端点并确定参数。本例中,为检索当前天气使用 "weather" 端点,并通过位置 ID 来确定地点(此处为 Schenefeld,ID = 2839763)。
如需查找您所在位置的 ID,只需在 OpenWeatherMap 首页 (https://openweathermap.org) 搜索您的城市。在城市预报页面中,ID 可从 URL 中找到,例如:https://openweathermap.org/city/2839763
此处使用 GET 作为 REST 方法,参数以 QueryString(查询字符串)形式传递。按城市 ID 检索当前天气的文档:https://openweathermap.org/current#cityid
当使用 One Call API 3.0 时,会使用不同的端点与参数(例如使用经纬度坐标代替城市 ID),详见:https://openweathermap.org/api/one-call-3?collection=one_call_api_3.0

通过REST以 JSON 格式检索天气数据
REST API 调用会返回一个包含天气数据的 JSON 文档。在 OPC Router 连接中,可以将该 JSON 文档传递给一个 JSON 传输对象 (JSON transfer object):

连接执行后,JSON 结构信息即可用。示例中已在连接中放置了一个 30 秒触发器,并已发布该连接以便其能够被执行。
连接执行后,可在 JSON 传输对象的配置中使用 "Suggestions"(字段建议)功能,从 JSON 文档中识别出可用字段,并将其列出供选择。随后可使用箭头按钮选择要在连接中使用的字段。

在本示例中,从 JSON 文档中选取了当前天气的部分基本信息:温度、气压、湿度、当日最低/最高温度、风速与风向。完成数据字段选择后,传输对象即按所选字段显示。

将天气数据存储到 SQL 数据库
检索到的天气数据此后可按需进行进一步处理。在本示例中,我们将数据存储到数据库,并将其发送到消息服务。
使用 OPC Router 的 SQL Server 插件,可以将数据存储到 MS SQL 数据库。在插件配置中指定 SQL 数据库的常规连接参数后,即可在传输对象的选择列表中看到相应的数据表和存储过程。示例中使用了一个名为 "Weather" 的数据库,其中表 "TBL_WEATHER_CURRENT" 用作当前天气数据的存储位置。选中该数据表并标记需要使用的列。

这样,SQL Server 传输对象便配置完成,并与 JSON 文档中的字段实现了对接。当连接触发器被触发时,该连接会将天气数据保存到 SQL Server 数据表中。示例中触发器被设置为每天清晨 6:15 执行一次数据传输。
此后,数据表中的数据即可供其他应用程序使用。
通过 Telegram 发送天气信息
使用 Telegram 插件,天气数据不仅可以通过 SQL 分发,还可以直接以推送消息(push message)的形式发送到移动设备(例如手机)。Telegram 插件用于连接所谓的 Telegram 机器人(Telegram Bot)。一方面,移动端用户可通过机器人向 OPC Router 主动发送指令;另一方面,OPC Router 也可以主动向已注册的用户发送消息。
在本示例中,我们创建了一个用于分发天气信息的 Telegram 机器人。机器人可通过 Telegram 应用程序创建:

要向已登录用户发送包含天气数据的消息,需要在连接中拖入一个Telegram 传输对象。该传输对象会将传入的文本发送给所有用户。为使文本对用户更易读,示例中还插入了一个 "Text Replace"(文本替换)传输对象,用于把 JSON 文档中的取值填入文本;另外还使用了一个计算器传输对象,用于将温度从开尔文(Kelvin)转换为摄氏度(°C)。

最终结果:从 OpenWeather 到 SQL Server 与 Telegram
最终效果是:到达设定的触发时间时(同样支持循环执行或在多个时间点执行),系统会向 SQL 数据库写入一条数据记录,同时发送一条 Telegram 消息。


除SQL Server 插件与Telegram 插件之外,OPC Router 还提供众多其他插件,可将天气数据传输到各类系统中,从而根据天气情况提供信息或优化相关业务流程。
作为OPC Router 中国区代理商,北京东方鼎晨科技有限公司可为您提供产品销售、技术支持等一站式服务。如果您在实操过程中遇到任何问题,或想深入了解 REST 插件的更多用法、以及 OPC Router 其他插件(如 MQTT、OPC UA、SAP 连接等)的配置,欢迎联系我们。
立即体验OPC Router!

扫描二维码申请试用
了解更多,欢迎致电
010-51659507




OPC Router功能特征
一、可作为OPC DA、UA客户端和服务器
OPC UA被视为最重要的物联网/工业4.0协议之一,OPC Router可充当OPC UA/DA 的OPC客户端软件。
使用OPC Router的OPC客户端插件,您可以在OPC服务器读取和写入数据点。
OPC Router可以用作数据记录器、机器对机器网关、物联网驱动程序或 PLC 与其他系统 (如ERP、数据库或电子邮件)之间的网关。

二、广泛的数据库及存储支持
OPC Router在与OPC、ERP、IoT、设备等的轻松集成方面表现出色。支持的存储类型包括:
·Microsoft SQL Server
·Apache Kafka
·MongoDB
·influxdb 时序数据库
·PostgreSQL
·ODBC
·MySQL 和 MariaDB
·Oracle 包括 Oracle 云数据库
·SAP HANA
·SQLite
·Excel
·FTP文件访问
·SMB 文件访问

三、将SAP连接到OPC、SQL、标签打印机、REST等
OPC Router使用 RFC、BAPI、IDOC、SOAP、REST 或 HANA 连接到 SAP、SAP Plant Maintenance (PM)、NetWeaver 等,并使用 SAP 认证的接口支持各种功能。
·与数据库、OPC DA、UA 服务器、控制系统、PLC、DCS之间的数据传输
·对数据点或连接数没有限制
·不需要 SAP MII
·图形设置,无需编程

更多功能特征请联系我们详细了解:010-51659507。
关注我们,获取最新资讯