Node-Red与ModbusTCP设备通信——读数据

这篇具有很好参考价值的文章主要介绍了Node-Red与ModbusTCP设备通信——读数据。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、内容简介

本篇内容主要介绍Node-Red通过node-red-contrib-modbus插件与ModbusTCP设备进行通讯,这里用Modbus Slave工具来模拟从站设备,Node-Red作为主站分别从0地址开始读取10个线圈状态和10个保持寄存器,分别用Modbus-Read、Modbus-Getter、Modbus-Flex-Getter三个节点以不同的方式来实现。

二、设置Modbus Slave

点击Connection->Connect菜单,弹出如图所示对话框,在Connection下拉框选择“Modbus TCP/IP”,将TCP/IP Server组合框中的Port(端口)设置为“502”,选择“Any Address”和“IPv4”,点击OK按钮确认。

node modbus,网络

默认新建了10个保持寄存器,还需要新建10个线圈,点击File->New菜单,新建10个保持寄存器,修改参数将保持寄存器改为线圈,点击Setup->Slave Definition...菜单,在弹出的对话框找到Function下拉框,选择01 Coil Status (0x),其它参数保持默认值,点击OK按钮确认。

node modbus,网络

三、安装node-red-contrib-modbus插件

在Node-Red工作台点击右上角的菜单按钮,选择“节点管理”菜单项,再在弹出的对话框左边选择“控制板”标签,然后在该页面选择上面的“安装”标签,在搜索框中输入“modbus”,在搜索结果中找到“node-red-contrib-modbus”插件,并点击插件右下角的“安装”按钮。

node modbus,网络

 此时会弹出确认安装的确认对话框,点击“安装”按钮,稍等片刻即可安装完成。

node modbus,网络

安装完成之后,左侧面板显示已经安装的节点,如下图。

node modbus,网络

四、设置Modbus-Read节点

1. 读线圈

将Modbus-Read节点拖动到工作台的默认流程,此处为“流程1”,双击节点,在弹出的对话框中找到FC下拉框,选择“FC1:Read Coil Status”,在Address输入框中输入“0”,在Quantity输入框中输入“10”,在Poll Rate输入框中输入“1”,在随后的下拉框中选择单位“seconds(s)”,其它值保持默认,如图所示。

node modbus,网络

接下来添加Modbus-client节点,点击“Server”最右边的笔形按钮,弹出设置对话框,默认选择“Settings”标签,在“Type”下拉框中选择“TCP”选项,在Host输入框中输入“127.0.0.1”,Port设置为“502”,TCP Type选择“DEFAULT”选项,其它保持默认值,如下图所示,最后点击右上角的“添加”按钮确定。

node modbus,网络

添加完modbus-client节点之后回到Modbus-Read编辑界,点击右上角的“完成”按钮完成编辑。

添加一个debug节点到流程,将Modbus-Read的第一个输出点与之连接。

node modbus,网络

 点击工作台右上角的“部署”按钮,右侧边栏切换到调试窗口,可以看到接收的数据,点击debug节点后面的“尾巴”可以隐藏当前节点的调试信息,立即生效,不需要重新部署。

node modbus,网络

 2.读保持寄存器

从左侧边栏再拖动一个Modbus-Read节点到流程中,双击节点弹出设置对话框,在FC下拉框选择“FC 3: Read Holding Registers”选项,在Address输入框输入“0”,在Quantity输入框输入“10”,Poll Rate设置为“1”,单位选择“second(s)”,Server下拉框选择已添加的“modbus-tcp@127.0.0.1:502”选项,点击“完成”按钮确定。

node modbus,网络

从左侧面板拖动一个debug节点到流程中,连接刚设置好的Modbus-Read节点,部署之后可以看到调试信息,改变ModbusSlave中相应保持寄存器的值。

node modbus,网络

调试信息也会随之发生变化。

五、设置Modbus-Getter节点

1. 读线圈

从左侧边栏拖动Modbus-Getter节点到流程中,双击节点弹出设置对话框,如图所示,在FC下拉框选择“FC 1: Read Coil Status”选项,Address输入框中输入“0”,Quantity输入框中输入“10”,Server下拉框选择“modbus-tcp@127.0.0.1:502”选项,点击“完成”按钮确认。

node modbus,网络

从左侧面板中拖动inject节点到流程,连接到Modbus-Getter节点,再拖动debug节点到流程,使Modbus-Getter节点与之连接,点击“部署”按钮,如下图所示,点击inject节点前面的方框,可以看到调试信息显示读到的一条线圈数据。

node modbus,网络

 注意:为了避免冲突,可以将之前添加的Modbus-Read节点设置为无效,双击节点,在弹出的对话框中点击左下角的“无效”按钮,点击“完成”按钮以确定。

node modbus,网络

 2.读保持寄存器

从左侧边栏拖动Modbus-Getter节点到流程中,双击节点弹出设置对话框,如图所示,在FC下拉框选择“FC 3: Read Holding Registers”选项,Address输入框中输入“0”,Quantity输入框中输入“10”,Server下拉框选择“modbus-tcp@127.0.0.1:502”选项,点击“完成”按钮确认。

node modbus,网络

拖入inject和debug节点,并将其与Modbus-Getter节点连接,跟上面类似,部署后点击inject节点前面的方框,在调试信息面板可以看到读取了一条数据。

如果希望按时间间隔读取数据,可以通过设置inject节点实现,双击节点弹出设置对话框,在下方的“重复”下拉框选择“周期性执行”,间隔保持默认值1秒,点击“完成”按钮确认,重新部署后,可以从调试信息面板看到系统按1秒的间隔在定时读取保持寄存器数据。

node modbus,网络

六、设置Modbus-Flex-Getter节点

1. 读线圈

从左侧边栏拖动Modbus-Flex-Getter节点到流程中,双击节点弹出设置对话框,如图所示,在Server下拉框选择“modbus-tcp@127.0.0.1:502”选项,点击“完成”按钮确认。

node modbus,网络

然后在Modbus-Flex-Getter节点前面拖入一个function节点,将其与之连接,双击function节点,在弹出的对话框中的“函数”标签页面加入如下代码,然后点击“完成”按钮确定。

msg.payload = { 'fc': 1, 'unitid': 1, 'address': 0, 'quantity': 10 }

node modbus,网络

 从左侧面板中拖入一个inject节点到function节点的前面,再拖入一个debug节点到Modbus-Flex-Getter节点的后面,连接拖入的节点,如图所示,部署之后,点击inject节点前面的方框读取数据,可以在右侧的调试面板看到读到的线圈值。

node modbus,网络

 2.读保持寄存器

从左侧面板分别拖入一个Modbus-Flex-Getter节点、一个function节点和一个debug节点到流程,依次连接拖入的节点,双击function节点,在弹出对话框中加入如下代码,再点击“完成”按钮确认。

msg.payload = { 'fc': 3, 'unitid': 1, 'address': 0, 'quantity': 10 }

node modbus,网络

将上面读线圈的Modbus-Flex-Getter节点的第一个输出连接到当前Modbus-Flex-Getter节点的输入,部署之后,再点击inject节点前面的方框,可以在右侧的调试面板中同时看到读取到的线圈和保持寄存器数据,如图。

node modbus,网络

注意:如果读线圈的Modbus-Flex-Getter节点读取失败,则读取保持寄存器的Modbus-Flex-Getter节点不会被触发,要解决此问题还需要进一步设置,双击读线圈的Modbus-Flex-Getter节点,在弹出的对话框中选择Optionals标签,勾选第一个选项“Empty msg on Modbus fail”,点击“完成”按钮确定,重新部署即可。

node modbus,网络

关注公众号“NodeRed物联网”,回复“nr”获取文章相关的代码、工具等资料。文章来源地址https://www.toymoban.com/news/detail-819724.html

到了这里,关于Node-Red与ModbusTCP设备通信——读数据的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • docker 安装 Node-RED

    Node-RED 是构建物联网应用程序的一个强大工具,使用可视化编程方法,连接起来执行任务。而homeassistant是家居智慧中枢,本文介绍如何安装Node-RED及HASS的插件 docker pull nodered/node-red # 2、部署镜像 创建目录 分配权限: 部署命令 端口是 18880 数据存储路径 /opt/node_red docker服务包

    2024年02月09日
    浏览(45)
  • node-red - 读写操作redis

    安装配置node-red环境: centos通过源文件的方式安装node-red nodered-环境搭建及使用 安装配置redis: centos - docker安装redis Windows10安装redis(图文教程) Redis支持的数据结构 回到目录 1.在node-red里面安装redis节点 : 2. 刷新node-red: 回到目录 3.1.1 List(列表)存储 :redis-out节点   redis

    2024年02月10日
    浏览(39)
  • Node-Red UI界面基础设计

    UI的布局依赖于节点中Tab和Group属性。Tab可以理解为页面,Group是分组。Tab可以包含Group。 在使用dashboard控件时,可以对节点的Tab和Group名称进行设置,设置后可在UI界面查看。 使用dashboard节点时,屏幕右侧“调试窗口”的旁边会多一个名为dashborad的小标签,下边有Layout,Them

    2024年02月02日
    浏览(43)
  • 如何使用 Docker 安装 Node-RED

    安装 Node-RED 使用 Docker 是一种简便的方式,以下是基本的步骤: 安装 Docker: 确保已在系统上安装 Docker。可从 Docker 官方网站 或 Windows Docker 安装教程 获取安装指南。 拉取运行 Node-RED 镜像: 打开终端或命令行界面,运行以下命令安装 Node-RED。您可以使用官方的 nodered/node-r

    2024年04月22日
    浏览(48)
  • Node-Red中Homeassistant节点使用

    谷歌解释:Home Assistant is an open-source home automation platform that focuses on privacy and local control. 是一个开源的家庭自动化控制管理平台。 Homeassistant简称HA,目前我们想要远程控制家里的电器等设备,首先需要购买智能家居,而智能家居市场上存在许多家居生态(米家、天猫、homeki

    2024年02月09日
    浏览(42)
  • node-red安全部署方式-安全登录功能

      安装号的node-red,默认是没有用户登陆功能的,每次进入工作界面只需输入 服务器ip:端口号 即可登陆。但是假如其他人知道了我们的ip地址,岂不是任何人都可以访问我们的服务器呢?基于这种情况,我们需要给node-red添加安全认证,即安全登陆功能,使得每次进入node

    2024年02月15日
    浏览(47)
  • 在nodejs应用中集成node-red

    随着物联网(IoT)和边缘计算的快速发展,实时数据处理和可视化变得越来越重要。Node-RED是一个基于JavaScript的开源平台,用于创建实时数据流应用程序。它提供了一个可视化的开发环境,使用户可以轻松地构建、部署和管理数据流。本文将介绍如何在Node.js应用中集成Node-RED,以

    2024年02月14日
    浏览(47)
  • 【Node-RED】安全登陆时,账号密码设置

    Node-RED 在初始下载完成时,登录是无账号密码的。基于安全性考虑,本期博文介绍 在安全登陆时,如何进行账号密码设置 。当然,此处可以参考官方使用指南Securing Node-RED,里面有更为详细的介绍。 而本博文只对用到的进行日志记录,方便后续回顾查看 。 在使用指南中,对

    2024年02月19日
    浏览(39)
  • Node-RED与uibuilder构建自定义UI

    Node-RED是一款可以进行可视化编程的低代码工具, 在快速构建原型和做小型应用有着较大优势. 在Node-RED中构建图形化(GUI)界面通常使用Dashboard完成, 其UI简约好看, 但其界面无法自定义, 只能使用现有的节点组件, 对于特殊界面无法满足. 因此Node-RED社区推出了uibuilder. 其可以使用

    2024年01月17日
    浏览(55)
  • centos通过源文件的方式安装node-red

    [回到目录]  查看你的Linux系统是32位还是64位的,不要搞错版本了。执行命令: cat /proc/version  下载地址:【https://npm.taobao.org/mirrors/node/】  选择合适的版本下载: 记住查看你的Linux系统是32位还是64位的,不要搞错版本了。一般x86_64是64位,x86是32位的。 我的服务器是64位的

    2024年02月11日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包