问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

Node-Red读写西门子PLC并上传至云服务器

创作时间:
作者:
@小白创作中心

Node-Red读写西门子PLC并上传至云服务器

引用
CSDN
1.
https://blog.csdn.net/xiangfengbingzhi/article/details/122635620

在工业自动化领域,西门子PLC(可编程逻辑控制器)是常见的控制设备,而将PLC数据上传至云服务器进行远程监控和管理,是实现智能制造的重要一环。本文将详细介绍如何使用Node-Red这一可视化编程工具,读取西门子PLC数据并上传至阿里云服务器的过程。

在Ubuntu中安装Node-Red

打开终端,依次输入以下命令:

sudo apt-get install nodejs
sudo apt-get install npm
sudo npm install -g node-red

在Windows中安装Node-Red

  1. 下载Node.js安装包并运行
  2. 打开Power Shell,输入以下命令检查Node.js和npm是否安装成功:
node --version
npm --version
  1. 安装Node-Red模块:
npm install -g --unsafe-perm node-red

运行Node-Red并安装S7模块

  1. 在终端中输入:
node-red
  1. 在浏览器中输入{安装有node-red的设备的地址}:1880
  2. 在界面右上角三杠-节点管理-控制板-安装中搜索node-red-contrib-s7并安装第一个

编辑S7命令

  1. 在主界面左侧找到S7 control并拖动至流程区后双击
  2. 在弹出的属性界面PLC处选择添加新的S7 endpoint节点,并点击后面的笔编辑,在Address处输入PLC地址,可在Cycle time处设置发送周期
  3. Variables地址填写方式:n为数据区域偏移量,x为数据字节偏移量,y为数据位偏移量。确保“STRING”或“S”的数据字节偏移量非0,length替换为字符串长度
  4. 拖出S7 in命令,PLC处选择刚才新建的PLC,Mode选择All variables(读取全部变量,可用Debug命令查看)
  5. 拖出S7 out命令,PLC处选择刚才新建的PLC,Variable选择要写入的变量

编辑MQTT命令

  1. 在主界面左侧找到mqtt out并拖动至流程区后双击编辑
  2. 主题和名称填写OUT,在服务端处新建并填写服务器公网IP地址
  3. 安全处的用户名和密码为部署在阿里云上的MQTT服务器的密码(默认用户名为admin,密码为password)
  4. 之后拖出mqtt in命令选择刚才新建的服务端,主题和名称填写INT

大致部署如图:

PLC处设置

  1. PLC在组态后设置-防护与安全-连接机制处勾选允许来自远程对象的PUT/GET访问
  2. 新建DB1数据块,在数据块属性中取消勾选优化块的访问并新建变量

阿里云服务器处设置

  1. 云端(ubuntu18.04)安装EMQX服务器:
curl https://repos.emqx.io/install_emqx.sh | bash
  1. 后台启动EMQX:
emqx start
  1. 在阿里云控制台的安全组中添加1883,8083,18083端口
  2. 若服务器装有ufw防火墙,需在终端打开相应端口:
sudo ufw allow 1883,8083,18083
  1. 通过浏览器访问服务器:IP:18083
  2. 默认用户名:admin 默认密码:public
  3. 在界面左侧工具-Websocket-连接中更改主机地址为服务器IP并点击连接
  4. 在界面左侧工具-Websocket-订阅中分别输入主题名称(INT和OUT)并点击订阅

最后

在Node-Red网页界面右上角点击部署即可实现阿里云与本地PLC通信

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号