0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

【EsDA 应用】Modbus RTU Master 转 TCP Server

AGk5_ZLG_zhiyua 来源:未知 2023-07-19 11:55 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

随着物联网技术蓬勃发展,Modbus 设备数据采集上报需求日益增加,本文将具体介绍如何利用 EsDA 快速实现Modbus RTU Master数据转TCP Server数据,缩短产品研发时间。

2bac1b6a-25e7-11ee-962d-dac502259ad0.jpg  简介随着时代的发展,数据上云等需求越来越普遍,不同协议之间的数据转换,也成了用户普遍的需求之一。本章将带大家快速实现如何将EPC6450-AWI工控板的Modbus RTU数据,快速转换成TCP服务器数据,传送给TCP客户端,工作框架如图1.1。

2bbd0a60-25e7-11ee-962d-dac502259ad0.png

图1 本文主要使用本公司的EPC6450-AWI型号工控板,外接使用Modbus RTU协议传输的温湿度变送器,读取相关温湿度数据,并创建TCP服务器,向PC机上的TCP客户端实时发送温湿度数据。 2bdede6a-25e7-11ee-962d-dac502259ad0.jpg入门基础

本章内容,主要使用modbus_master_in、modbus_parse_in、fscript、log、push、tcp_server_ex节点。用户在进行阅读之前,需具备一定基础的AWFlow Designer开发经验。若刚开始接触,可阅读以下文章,进行基础知识的学习。

  • EsDAMPC-ZC1入门(一)——软件安装

  • EsDAMPC-ZC1入门(二)——LED控制

  • EsDAEPC6450-AWI进阶(协议转换)——ModbusTCP转TCPClient

2bdede6a-25e7-11ee-962d-dac502259ad0.jpg硬件前提1. EPC6450-AWI型号工控板

2c0712fe-25e7-11ee-962d-dac502259ad0.png

图2

2.USB转TTL类型串口设备

2c8f4c1e-25e7-11ee-962d-dac502259ad0.jpg

图3

3.温湿度变送器(Modbus RTU协议,RS485接口

2f3d6338-25e7-11ee-962d-dac502259ad0.jpg

图4传感器,内部使用了Modbus RTU协议,数据分别存储在地址为0(温度)和1(湿度)上。4. Type-C线、网线、杜邦线若干

2f83ac58-25e7-11ee-962d-dac502259ad0.jpg

图5

2bdede6a-25e7-11ee-962d-dac502259ad0.jpg硬件连接图2fba6608-25e7-11ee-962d-dac502259ad0.jpg图6将USB转TLL接口与DUART接口相接(此处注意RXD接TXD,TXD接RXD),Type-C供电线与工控板Type-C接口相接,网口接eth0接口,温湿度变送器上的A/B信号线分别与工控板上的RS485A/RS485B相连,+电源线接于5V,-地线接于GND。 2bdede6a-25e7-11ee-962d-dac502259ad0.jpg本章流图解析30102a84-25e7-11ee-962d-dac502259ad0.png图7

1. 本流图节点列表

  • modbus_master_in节点,该节点负责读取从机的相关寄存器地址中的数据。
  • modbus_parse_in节点,该节点负责解析modbus_master_in获取的数据,将数据转化成对应类型的数值数组。
  • fscript节点,该节点主要负责对modbus_parse_in节点所生成的数值数组进行提取,并格式化输出对应的温湿度数据。
  • log节点,该节点主要负责把接收到的fscript节点输出的数据,显示于串口与调试口。
  • push节点,该节点主要负责将接收到的fscript节点输出的数据,传送至tcp_server_ex节点。
  • tcp_server_ex节点,该节点主要负责将得到的push节点数据,转发给PC上位机上的TCP客户端。
2. 数据流向

通过RS485接口与Modbus RTU协议读取温湿度变送器的数据,对该数据进行数值化生成对应的数值数组,对生成的数值数组进行提取,格式化输出对应的温湿度情况,并将信息显示在串口与调试窗口上,以及发送至PC上位机上的TCP客户端窗口。

2bdede6a-25e7-11ee-962d-dac502259ad0.jpg节点解析1. modbus_master_in节点30564b18-25e7-11ee-962d-dac502259ad0.png图8该节点关键参数一览:
  • 主机参数配置,此处配置与配置串口参数同理,配置如下:

307d91b4-25e7-11ee-962d-dac502259ad0.png图9

(可参照学习《EsDA MPC-ZC1应用——串口服务器(一), 以及《EsDA MPC-ZC1 应用——串口服务器(二)

  • 读取模式,该属性将决定节点的触发方式。分别有:(1)循环读取数据,该模式节点将以用户设定的周期定时输出数据,如周期内数据未被刷新,则在下一周期输出;(2)根据输入的信息读取从机设备的数据,读取成功则向下一节点输出数据。可使用push节点向此节点输入读取所需要的参数信息,具体请查看输入参数。此处我们选用periodic read data模式,即第(1)种。

  • 从机ID,从机设备的ID号,数值为0-255。此处从机ID为1,具体用户可根据实际情况修改。

  • 输出周期,数值为0-65535,此处我们设置为1000。
    寄存器地址,该值为读取的起始寄存器地址,数值为0-65535,此处我们设置为0。

  • 读取数量,数值为0-1000,此处我们设置为2,即读取两个数据(分别为温度和湿度)。

  • 寄存器类型,读取的寄存器类型。分别有:(1)读取线圈量,此类型的数据将输出uint8_t指针类型的payload;(2)读取离散量,此类型的数据将输出uint8_t指针类型的payload;(3)读取保持寄存器,此类型的数据将输出uint16_t指针类型的payload;(4)读取输入寄存器,此类型的数据将输出uint16_t指针类型的payload。此处我们设置为read holding resgisters,即第(3)种。
2. modbus_parse_in节点315a3a4c-25e7-11ee-962d-dac502259ad0.png图10

该节点关键参数一览:

  • 数据转换模式,该模式有:(1)单地址数据转换,此模式只对某一地址的数据进行转换,因此输出payload是对应地址的单个数据值;(2)多地址数据转换,此模式对指定地址及数量的数据进行同一的转换,并将转换后的值存入array对象;(3)全地址数据转换,此模式对输入的所有数据进行同一的转换,并将转换后的值存入array对象。

    注:数据地址及长度必须在modbus输入节点的读取范围内,否则转换将失败。此处我们选择multi-address address parse模式,即第(2)种。

  • 数据转换起始地址,此处设置为0。

  • 转换数量,此处设置为2。

  • 数据转换类型,读取的数据格式,对读取的数据进行位整合,例: int32_t:将数据地址开始的4byte整合成int32_t类型的值。此处我们选择16bits-unsigned int类型。

  • 大小端选择,此处选择配置读取的存储大小端模式,此处我们设置为小端模式。

3. fscript节点该节点为脚本节点,具体脚本如下。
a = msg.payload


output.payload = "temp:" + array_get(a, 0)/10 + "C,   " + "humi:" +  array_get(a, 1)/10 + "RH"

此脚本主要实现将modbus_parse_in节点所生成的数值数组提取数值,并进行格式化处理,输出对应的温湿度数据。

4. push节点31a002c0-25e7-11ee-962d-dac502259ad0.png图11

该节点用法较为简单,直接选择需要进行传送的目标节点即可。

5.tcp_server_ex节点31c4ae0e-25e7-11ee-962d-dac502259ad0.png图12该节点主要实现将push节点发送而来的数据,传达给连接上来的TCP客户端。

该节点关键参数一览:

  • 端口,本地开放连接的端口号,取值为1024-60000,此处取值为5353。
  • 最大连接数,是指可支持的最大客户端连接数量,此处我们设置为8。
  • 输出模式,存在两种输出模式可以选择,第一种为携带报文头部的模式,第二种为不携带报文头部的模式,此处我们设置为第二种模式payload。
  • 保活时间,取值范围为0-100000,此处我们设置为120。
  • 空闲掉线时间,取值范围为0-100000,此处我们设置为0。
6.log节点320c467e-25e7-11ee-962d-dac502259ad0.png图13

该节点主要实现,将上一个节点传输而下的数据,打印至串口和调试窗口上,一个很好用的调试信息反馈节点。

2bdede6a-25e7-11ee-962d-dac502259ad0.jpg流图下载1.点击下拉框327c4ba4-25e7-11ee-962d-dac502259ad0.png图142.点击配置按钮32ad38ea-25e7-11ee-962d-dac502259ad0.png图153.配置ip地址与端口号32f1ce06-25e7-11ee-962d-dac502259ad0.png图16

若用户不知道流图下载的端口号,可以在板子重启时,调试串口中打印信息获取,或者在shell命令窗口使用ipconfig命令获取网口配置。

4.先选择配置,后点击下载按钮33262a66-25e7-11ee-962d-dac502259ad0.png图175.下载完成33553c52-25e7-11ee-962d-dac502259ad0.png图186.完整调试窗口33f9c092-25e7-11ee-962d-dac502259ad0.png图19 2bdede6a-25e7-11ee-962d-dac502259ad0.jpg效果验证1.查看调试窗口信息344e89d8-25e7-11ee-962d-dac502259ad0.png图20

点击对应信息条目可以查看详情。

3484d2ae-25e7-11ee-962d-dac502259ad0.png图21

可见具体的温湿度数据信息。

2.TCP客户端此处需要使用一款助手工具,而本章便用SSCOM进行效果展示。34c2eb16-25e7-11ee-962d-dac502259ad0.png图22

可见客户端接收到的数据如下。

34e7f2d0-25e7-11ee-962d-dac502259ad0.png图23

到此,本章结束,如果您对此有兴趣,那就赶快行动起来吧!

2bdede6a-25e7-11ee-962d-dac502259ad0.jpg技术交流长按识别如下二维码可加入“EsDA嵌入式系统设计自动化交流群”,与志同道合的朋友交流,并有专业技术人员为您答疑解惑,如有问题可以咨询小致微信zlgmcu-888。3543b368-25e7-11ee-962d-dac502259ad0.png  


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 致远电子
    +关注

    关注

    13

    文章

    421

    浏览量

    32375

原文标题:【EsDA 应用】Modbus RTU Master 转 TCP Server

文章出处:【微信号:ZLG_zhiyuan,微信公众号:ZLG致远电子】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    Modbus RTU Modbus TCP 智能网关 保障发那科 31i-B 与贝加莱 X20 数据同步

    在工业自动化航空航天领域的航空发动机零部件精密加工生产线中,Modbus RTU Modbus TCP总线协议通讯, 因总线协议不兼容,
    的头像 发表于 11-27 08:40 455次阅读
    <b class='flag-5'>Modbus</b> <b class='flag-5'>RTU</b> <b class='flag-5'>转</b> <b class='flag-5'>Modbus</b> <b class='flag-5'>TCP</b> 智能网关 保障发那科 31i-B 与贝加莱 X20 数据同步

    生物疫苗生产精度保障依托总线协议的Modbus TCP RTU案例

    在工业自动化领域的生物疫苗生产车间中,某企业采用威纶通 HMI(Modbus RTU 协议)负责发酵罐、纯化设备的实时操作监控与参数设定,搭配罗克韦尔 Micro800 系列 PLC(Modbus
    的头像 发表于 11-14 15:14 309次阅读
    生物疫苗生产精度保障依托总线协议的<b class='flag-5'>Modbus</b> <b class='flag-5'>TCP</b> <b class='flag-5'>转</b> <b class='flag-5'>RTU</b>案例

    智能物流立体仓库通讯困境:基于协议转换的Modbus TCP Modbus RTU解决方案

    在工业自动化领域的智能物流自动化立体仓库中,塔讯 TX 131-RE-RS/TCP在某企业采用研华工控机(Modbus RTU 协议)负责仓储管理系统(WMS)的订单下发、库存统计,搭配三菱 Q 系列 PLC(
    的头像 发表于 11-08 11:25 135次阅读
    智能物流立体仓库通讯困境:基于协议转换的<b class='flag-5'>Modbus</b> <b class='flag-5'>TCP</b> <b class='flag-5'>转</b> <b class='flag-5'>Modbus</b> <b class='flag-5'>RTU</b>解决方案

    DLT698Modbus RTU-TCP网关

    深圳振鑫通信科技公司生产得ZP-DLT698-RTU系列模块是把DLT698Modbus RTU/TCP模块是一个通信协议转换网关(或称为
    的头像 发表于 09-20 15:43 677次阅读
    DLT698<b class='flag-5'>转</b><b class='flag-5'>Modbus</b> <b class='flag-5'>RTU-TCP</b>网关

    Profinet从Modbus(TCP)主总线协议转换网关

    一,设备主要功能 1、 疆鸿智能JH -TCP-PN 型网关是Profinet从Modbus(TCP)主/从工业级Profinet网关。‌这种网关设备允许将Profinet主站网络设
    的头像 发表于 09-18 14:57 400次阅读
    Profinet从<b class='flag-5'>转</b><b class='flag-5'>Modbus</b>(<b class='flag-5'>TCP</b>)主总线协议转换网关

    工业场景下塔讯 Modbus RTU Modbus TCP 网关实现横河流量计与 WinCC 数据交互案例

    米)、组网复杂、无法直接接入以太网等问题。Modbus RTUModbus TCP协议 塔讯TX 131-RE-RS/
    的头像 发表于 08-19 15:16 629次阅读
    工业场景下塔讯 <b class='flag-5'>Modbus</b> <b class='flag-5'>RTU</b> <b class='flag-5'>转</b> <b class='flag-5'>Modbus</b> <b class='flag-5'>TCP</b> 网关实现横河流量计与 WinCC 数据交互案例

    塔讯 Modbus RTU Modbus TCP 在污水处理厂 PLC 数据采集中的配置案例

    水处理厂中有多种支持 Modbus RTU 协议的设备,如水质分析仪表、流量计、液位计等,为了实现这些设备与上位机系统(采用 Modbus TCP 协议)的通信,以便集中监控和管理,需
    的头像 发表于 08-18 15:20 504次阅读
    塔讯 <b class='flag-5'>Modbus</b> <b class='flag-5'>RTU</b> <b class='flag-5'>转</b> <b class='flag-5'>Modbus</b> <b class='flag-5'>TCP</b> 在污水处理厂 PLC  数据采集中的配置案例

    Modbus TCP Modbus RTU电脑端 TCP 与西门子 V20 变频器的通信案例

    从站)进行通信,Modbus TCPModbus RTU塔讯TX 131-RE-RS/TCP
    的头像 发表于 07-27 17:19 605次阅读
    <b class='flag-5'>Modbus</b> <b class='flag-5'>TCP</b> <b class='flag-5'>转</b> <b class='flag-5'>Modbus</b> <b class='flag-5'>RTU</b>电脑端 <b class='flag-5'>TCP</b> 与西门子 V20 变频器的通信案例

    艾默生流量计与Profibus DP主站Modbus RTU/TCP网关通讯案例

    在现代工业自动化控制系统中,艾默生流量计因其高精度、稳定性和易用性而备受青睐。然而,为了实现与不同协议设备之间的无缝通信,经常需要借助专业的通讯网关进行协议转换。本文将详细探讨艾默生流量计与Profibus DP主站Modbus RT
    的头像 发表于 05-19 12:56 505次阅读
    艾默生流量计与Profibus DP主站<b class='flag-5'>转</b><b class='flag-5'>Modbus</b> <b class='flag-5'>RTU</b>/<b class='flag-5'>TCP</b>网关通讯案例

    CANModbus TCP工具的应用案例

    CANModbus TCP工具在工业自动化、汽车电子、能源管理等领域有广泛的应用,主要用于实现不同协议设备之间的数据互通。
    的头像 发表于 04-10 16:24 922次阅读

    Modbus TCPProfibus DP网关的防撞雷达应用

    则是一种高速、实时性强的现场总线系统,常用于连接传感器和执行器。当需要将使用Modbus TCP协议的防撞雷达接入Profibus DP网络时,就需要借助Modbus TCP
    的头像 发表于 03-31 16:18 577次阅读
    <b class='flag-5'>Modbus</b> <b class='flag-5'>TCP</b><b class='flag-5'>转</b>Profibus DP网关的防撞雷达应用

    Modbus TCPModbus RTU网关连接组态王的5大技巧!

    Modbus RTU网关(XD-ETH20)便成为了解决这一难题的关键工具。本文将详细解析兴达易控Modbus TCP
    的头像 发表于 03-16 16:11 880次阅读
    <b class='flag-5'>Modbus</b> <b class='flag-5'>TCP</b><b class='flag-5'>转</b><b class='flag-5'>Modbus</b> <b class='flag-5'>RTU</b>网关连接组态王的5大技巧!

    Modbus TCPRTU:轻松转换指南!

    Modbus TCPModbus RTU网关便扮演了至关重要的角色,它不仅实现了Modbus
    的头像 发表于 03-14 15:21 1316次阅读
    <b class='flag-5'>Modbus</b> <b class='flag-5'>TCP</b> 到 <b class='flag-5'>RTU</b>:轻松转换指南!

    Modbus TCP Server程序开发与Yocto系统构建

    解压后,源码为“modbus_server_tcp.c”,它模拟一个Modbus TCP传感器。源码的讲解请参考《11.7 Modbus TCP
    的头像 发表于 02-14 13:38 1469次阅读
    <b class='flag-5'>Modbus</b> <b class='flag-5'>TCP</b> <b class='flag-5'>Server</b>程序开发与Yocto系统构建

    CC-Link IE FB Modbus TCP

    CC-Link IE FB协议 Modbus TCP
    的头像 发表于 01-24 17:35 825次阅读
    CC-Link IE FB<b class='flag-5'>转</b> <b class='flag-5'>Modbus</b> <b class='flag-5'>TCP</b>