使用 PLCnext 控制器构建低代码 IoT 应用
PLCnext 控制器支持多种连接云服务方式。可用 IOT 库的 IEC 功能块、构建自己的 .NET 应用、写 Python 脚本或编译 GoLang 连接器。若想写代码,选项很多。但如果出于某种原因不想写代码呢?可能是首个项目,或许久未写代码?本博客展示如何构建 IoT Web 应用,不写一行代码!
好吧,说不写一行代码可能有点夸张。当然我们需要某种方式告诉 PLCnext 控制器和云服务我们想要什么。为此我们只用图形界面,所以我猜技术上说不写一行代码是对的?总之这种方法叫 “低代码”。
先介绍本博客用到的不同元素或服务。
简介
PLCnext 控制器,这不需多介绍。若对其能力仍不确定请访问 PLCnext Infocenter。
Node-RED,官网描述 Node-RED 为:
之前的 Maker 博客多次提到 Node-RED。不知如何开始用 Node-RED?建议读这篇文章。
Azure IoT Central,是 Azure 云中构建无代码 IoT 解决方案的 SAAS (Software As A Service) 方案。我们将创建带定义接口的设备模板,可视化从模板衍生。
此模板可定义三 “种变量”。遥测、属性和命令。我将在模板中用不同种类,希望用完后遥测与属性区别清晰。若仍模糊,请阅读延伸阅读链接文章。
为简单起见,例题限定为极基础的泵控制器。可设置泵不同模式并给泵设定值。
构建应用
准备控制器
从更新控制器到最新固件并安装 balena-engine 用于 OCI 容器开始。Balena 安装说明见这里。Balena Engine 成功安装后运行下一命令(需一会)。
balena-engine run -it -p 1880:1880 --name nodered --restart always pxcbe/node-red:azureiot
创建 Azure IoT Central 服务
登录 Azure 账号创建资源组。在资源组中新建 Azure IoT Central 应用。务必查看不同层级再选。
进入新建的 Azure IoT Central 服务,若一切顺利应提示创建新设备模板。选择创建新自定义模板作为 IoT 设备。执行以下步骤创建本练习正确模板。
创建设备模板
- 设备模板命名为 “pump”
- 创建自定义模型
- 按 “add capability”
- 创建属性 “Pump status”
- 创建遥测 “Flow Rate”
- 创建命令 “Change Mode”
- 创建命令 “Set Power”
- 保存新建能力
- 去 Views 选择生成默认视图 (稍后可改)
- 发布设备模板。
(遇到困难?可从仓库导入模板)
创建新设备
基于新建模板创建设备。点击 “connect” 记下 “ID scope”、“Device ID” 和 “Primary key” 供 Node-RED 后用。
PLCnext Engineer
我们需要一些逻辑控制泵。仓库 提供 PLCnext Engineer 项目可用。随意在此项目基础上添加新功能!
Node-RED
此时容器应已创建,Node-RED 环境应运行。从仓库导入 flow.json。点击 “Device” 节点设置 “Device ID”、“Scope ID” 选 “Device Provisioning service” 粘贴 primary key。
点击 READ 或 WRITE 节点设置 OPC UA 服务器适配您的控制器,部署节点完成应用。
测试应用
准备好测试应用。您应能通过改变泵状态和设定新设定值控制泵。应用刻意保持基础,鼓励您在此基础上构建以掌握设置接口时的各种设置。甚至可创建地图显示泵位置!
延伸阅读
Node-RED
https://nodered.org/docs/user-guide/editor/workspace/import-export
https://nodered.org/docs/user-guide/writing-functions
Azure-IoT-Central
https://docs.microsoft.com/en-us/azure/iot-central/
https://docs.microsoft.com/en-us/azure/iot-central/core/concepts-architecture
https://docs.microsoft.com/en-us/azure/iot-central/core/quick-monitor-devices
工业技术
- 树莓派自平衡Segway搭建全攻略
- ABB推出直观物联网仪表盘 助力中型商业楼宇自动化提效
- Rockwell Automation与Accenture推出Industry X.0数字平台 变革工业企业全价值链
- 工业物联网安全:破解挑战与实施稳健解决方案
- 革新汽车生产:以物联网解决方案破解制造难题
- PLCnext CLI 模板:简化 C++ 开发流程
- 用 Go 轻松托管静态文件:经验证的方法
- ADLINK 与 Google Cloud 合作交付无缝物联网解决方案
- 革新消防:IoT 如何提升安全、响应与救援
- 以IoT网络方案应对城市洪涝
- 工程下一代跨边界IoT方案:驱动运营卓越
- 利用IoT挖掘暖通大数据:优化能效、舒适度与空气质量(下)