在Ubuntu中安装node-red:
sudo apt-get install nodejs
sudo apt-get install npm
sudo npm install -g node-red
在Windows中安装node-red:
下载 Node.js 安装包并运行
在Power Shell中分别输入
node --version
npm --version
若输出版本号则安装成功
安装Node-Red模块,在Power Shell中输入
npm install -g --unsafe-perm node-red
运行Node-red并安装S7模块:
在终端中输入:
node-red
在浏览器中输入 {安装有node-red的设备的地址}:1880
在界面右上角 三杠-节点管理-控制板-安装 中搜索 node-red-contrib-s7 并安装第一个
编辑S7命令:
在主界面左侧找到 S7 control 并拖动至流程区后双击
在弹出的属性界面 PLC 处选择添加新的 S7 endpoint 节点,并点击后面的笔编辑,在Address处输入PLC地址,可在Cycle time处设置发送周期
Variables地址填写方式:
n 为数据区域偏移量 x 为数据字节偏移量 y 为数据位偏移量 确保 “STRING” 或 “S” 的数据字节偏移量非 0,length 替换为字符串长度
拖出 S7 in 命令,PLC处选择刚才新建的PLC,Mode选择 All variables (读取全部变量,可用 Debug 命令查看) 拖出S7 out 命令,PLC处选择刚才新建的PLC,Variable选择要写入的变量
编辑MQTT命令:
在主界面左侧找到 mqtt out 并拖动至流程区后双击编辑
主题和名称填写OUT,在服务端处新建并填写服务器公网IP地址
安全处的用户名和密码为部署在阿里云上的MQTT服务器的密码
(默认用户名为admin,密码为password)
之后拖出 mqtt in 命令选择刚才新建的服务端,主题和名称填写INT
大致部署如图:
PLC处设置:
PLC在组态后 设置-防护与安全-连接机制 处勾选允许来自远程对象的PUT/GET访问
新建DB1数据块,在数据块属性中取消勾选优化块的访问并新建变量
阿里云服务器处设置:
云端(ubuntu18.04)安装EMQX服务器:
curl https://repos.emqx.io/install_emqx.sh | bash
后台启动EMQX:
emqx start
在阿里云控制台的安全组中添加1883,8083,18083端口
若服务器装有ufw防火墙,需在终端打开相应端口
sudo ufw allow 1883,8083,18083
通过浏览器访问服务器:IP:18083
默认用户名:admin 默认密码:public
在界面左侧工具-Websocket-连接中更改主机地址为服务器IP并点击连接
在界面左侧工具-Websocket-订阅中分别输入主题名称( INT 和 OUT )并点击订阅
在Node-Red网页界面右上角点击部署即可实现阿里云与本地PLC通信
Comments NOTHING