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

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

3天内不再提示

【EsDA 应用】Modbus RTU Master 转 UDP Server

AGk5_ZLG_zhiyua 来源:未知 2023-07-26 11:45 次阅读
随着物联网技术蓬勃发展,Modbus 设备数据采集上报需求日益增加,本文将具体介绍如何利用 EsDA 快速实现Modbus RTU Master数据转UDP Server数据,缩短产品研发时间。 6283a458-2b66-11ee-a368-dac502259ad0.jpg  简介随着时代的发展,数据上云等需求越来越普遍,不同协议之间的数据转换,也成了用户普遍的需求之一。本文将带大家快速实现将EPC6450-AWI工控板的Modbus RTU数据,快速转发成UDP服务器数据,并传送给UDP客户端,工作框架如图1。62933486-2b66-11ee-a368-dac502259ad0.png

图1

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

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

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

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

  • EsDA应用串口服务器——UDPServer

6283a458-2b66-11ee-a368-dac502259ad0.jpg  硬件前提1. EPC6450-AWI型号工控板62bf1da8-2b66-11ee-a368-dac502259ad0.png

图2

2. USB转TTL类型串口设备62efc174-2b66-11ee-a368-dac502259ad0.jpg

图3

3. 温湿度变送器(ModbusRTU协议,RS485接口62ff594a-2b66-11ee-a368-dac502259ad0.jpg图4

传感器,内部使用了Modbus RTU协议,数据分别存储在地址为0(温度)和1(湿度)上。

4. Type-C线、网线、杜邦线若干632c5210-2b66-11ee-a368-dac502259ad0.jpg

图5

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

1. 本流图节点列表

  • modbus_master_in节点,该节点负责读取从机的相关寄存器地址中的数据。

  • modbus_parse_in节点,该节点负责解析modbus_master_in获取的数据,将数据转化成对应类型的数值数组。

  • fscript1节点,该节点主要负责对modbus_parse_in节点所生成的数值数组进行提取,并格式化输出对应的温湿度数据。

  • fscript2节点,该节点主要负责对PC上的UDP客户端发送的数据流进行读取与解析,并传送给log节点。

  • log节点,该节点主要负责把接收到的fscript节点输出的数据,显示于串口与调试口。

  • push节点,该节点主要负责将接收到的fscript节点输出的数据,传送至udp_server_ex节点。

  • udp_server_ex节点,该节点主要负责将得到的push节点数据,转发给PC上位机上的UDP客户端。

2. 数据流向

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

6283a458-2b66-11ee-a368-dac502259ad0.jpg  节点解析1. modbus_master_in节点63a83c54-2b66-11ee-a368-dac502259ad0.png图8

该节点关键参数一览:

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

    图9

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

  • 从机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节点6406d55c-2b66-11ee-a368-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. fscript1节点该节点为脚本节点,具体功能代码如下。
a = msg.payload


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

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

4. fscript2节点

该节点为脚本节点,具体功能代码如下。

b = istream_read_string(msg.istream, 100, 1000)
msg.payload = b

此脚本主要实现读取 udp_server_ex 节点接收到的客户端数据,并将数据传送给下一个节点(log节点)。

5.push节点64383b24-2b66-11ee-a368-dac502259ad0.png图11该节点用法较为简单,直接选择需要进行传送的目标节点即可。6. udp_server_ex节点645efb06-2b66-11ee-a368-dac502259ad0.png图12该节点主要实现将push节点发送而来的数据,传达给连接上来的UDP客户端。
该节点关键参数一览:
  • 端口,本地开放连接的端口号,取值为1024-60000,此处取值为777。

  • Multicast,为加入的组播地址,本章不需要填写。

  • 输出模式,存在两种输出模式可以选择,第一种为携带报文头部的模式,第二种为不携带报文头部的模式,此处我们设置为第二种模式payload。

7. log节点649c02c6-2b66-11ee-a368-dac502259ad0.png图13该节点主要实现,将上一个节点传输而下的数据,打印至串口和调试窗口上,一个很好用的调试信息反馈节点。 6283a458-2b66-11ee-a368-dac502259ad0.jpg  流图下载1.点击下拉框64c4cae4-2b66-11ee-a368-dac502259ad0.png

图14

2.点击配置按钮64e86a62-2b66-11ee-a368-dac502259ad0.png

图15

3.配置ip地址与端口号651890d4-2b66-11ee-a368-dac502259ad0.png图16若用户不知道流图下载的端口号,可以在板子重启时,调试串口中打印信息获取,或者在shell命令窗口使用ipconfig命令获取网口配置。4.先选择配置,后点击下载按钮6526fc5a-2b66-11ee-a368-dac502259ad0.png图17选择配置65530250-2b66-11ee-a368-dac502259ad0.png

图18点击下载运行按钮

5.下载完成657c1ffa-2b66-11ee-a368-dac502259ad0.png图196.完整调试窗口65a852be-2b66-11ee-a368-dac502259ad0.png图20 6283a458-2b66-11ee-a368-dac502259ad0.jpg  效果验证1.查看调试窗口信息65cf5f6c-2b66-11ee-a368-dac502259ad0.png图21点击对应信息条目可以查看详情。65f7a684-2b66-11ee-a368-dac502259ad0.png图22可见具体的温湿度数据信息。2. UDP客户端

此处需要使用一款助手工具,本章便用 TCP&UDP 测试工具进行效果展示。

2.1创建UDP客户端

66446e6a-2b66-11ee-a368-dac502259ad0.png图23点击创建连接6650a2de-2b66-11ee-a368-dac502259ad0.png图24配置相关参数667418ea-2b66-11ee-a368-dac502259ad0.png

图25点击创建

2.2 建立UDP连接66a227d0-2b66-11ee-a368-dac502259ad0.png图26建立连接可见服务器接收到数据内容如下:66cafd7c-2b66-11ee-a368-dac502259ad0.png图27查看UDP服务器接收数据可见客户端接收到的数据如下:66e78898-2b66-11ee-a368-dac502259ad0.png图28查看UDP客户端接收数据到此,本章结束,如果您对此有兴趣,那就赶快行动起来吧! 6283a458-2b66-11ee-a368-dac502259ad0.jpg  关联产品 6283a458-2b66-11ee-a368-dac502259ad0.jpg技术交流长按识别如下二维码可加入“EsDA嵌入式系统设计自动化交流群”,与志同道合的朋友交流,并有专业技术人员为您答疑解惑,如有问题可以咨询小致微信zlgmcu-888。6725009c-2b66-11ee-a368-dac502259ad0.png

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

    关注

    13

    文章

    406

    浏览量

    31310

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

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

收藏 人收藏

    评论

    相关推荐

    EtherCAT 4 路Modbus RTU网关-三格电子

    EtherCAT 4 路Modbus RTU网关 SG-ECAT-Modbus_4 产品介绍 本产品是天津三格电子的EtherCAT和Modbus
    的头像 发表于 12-25 17:25 78次阅读
    EtherCAT<b class='flag-5'>转</b> 4 路<b class='flag-5'>Modbus</b> <b class='flag-5'>RTU</b>网关-三格电子

    Profibus PAModbus RTU协议网关

    捷米特JM-RTU-PA网关将Profibus PA和Modbus RTU专用通讯协议桥接的协议转换设备。符合Modbus RTU通讯协议的
    的头像 发表于 09-25 11:47 318次阅读
    Profibus PA<b class='flag-5'>转</b><b class='flag-5'>Modbus</b> <b class='flag-5'>RTU</b>协议网关

    Modbus RTUCC-link协议网关(Modbus RTUCC-link)

    特JM-CCLK-RTU应用于支持Modbus RTU接口的变频器、仪表、上位机、马保等等。在纺纱设备领域,Modbus RTU
    的头像 发表于 09-10 10:28 656次阅读
    <b class='flag-5'>Modbus</b> <b class='flag-5'>RTU</b><b class='flag-5'>转</b>CC-link协议网关(<b class='flag-5'>Modbus</b> <b class='flag-5'>RTU</b><b class='flag-5'>转</b>CC-link)

    Profibus-PAModbus-RTU协议网关(Profibus-PAModbus-RTU

    一,设备主要功能 远创智控YC-PA-RTU型网关将Profibus PA和Modbus RTU专用通讯协议桥接的协议转换设备。符合Modbus R
    的头像 发表于 09-09 16:34 315次阅读
    Profibus-PA<b class='flag-5'>转</b><b class='flag-5'>Modbus-RTU</b>协议网关(Profibus-PA<b class='flag-5'>转</b><b class='flag-5'>Modbus-RTU</b>)

    EtherCAT主站Modbus RTU网关(EtherCATModbus RTU

    一,设备主要功能 远创智控YC-ECTM-RTU型网关将EtherCAT协议的设备接入到Modbus RTU网络中;可将EtherCAT主站接入Modbus
    的头像 发表于 09-09 16:32 287次阅读
    EtherCAT主站<b class='flag-5'>转</b><b class='flag-5'>Modbus</b> <b class='flag-5'>RTU</b>网关(EtherCAT<b class='flag-5'>转</b><b class='flag-5'>Modbus</b> <b class='flag-5'>RTU</b>)

    Profibus DP主站Modbus RTU网关(Modbus RTUProfibus DP)

    一,设备主要功能 远创智控YC-DPM-RTU型网关可将Profibus DP协议的设备接入到Modbus RTU网络中;通过增加DP/PA耦合器,也可将Profibus PA从站接入Modb
    的头像 发表于 09-09 16:18 278次阅读
    Profibus DP主站<b class='flag-5'>转</b><b class='flag-5'>Modbus</b> <b class='flag-5'>RTU</b>网关(<b class='flag-5'>Modbus</b> <b class='flag-5'>RTU</b><b class='flag-5'>转</b>Profibus DP)

    Modbus RTUCC-Link协议网关(CC-LinkModbus RTU

    远创智控YC-CCLK-RTU型网关实现了CC-Link从站和Modbus RTU主站(从站)。网关作为CC-Link从站接入到CC-Link网络中,比如连接到三菱PLC。CCLK-RTU
    的头像 发表于 09-07 14:59 451次阅读
    <b class='flag-5'>Modbus</b> <b class='flag-5'>RTU</b><b class='flag-5'>转</b>CC-Link协议网关(CC-Link<b class='flag-5'>转</b><b class='flag-5'>Modbus</b> <b class='flag-5'>RTU</b>)

    EtherNet/IPModbus-RTU主站网关(EtherNet/IPModbus-RTU

    ,用户的变频器采用Modbus RTU通信,耐用通信EtherNet/IPModbus RTU网关作为两者之间的桥梁,实现PLC对变频器的
    的头像 发表于 09-04 10:55 297次阅读
    EtherNet/IP<b class='flag-5'>转</b><b class='flag-5'>Modbus-RTU</b>主站网关(EtherNet/IP<b class='flag-5'>转</b><b class='flag-5'>Modbus-RTU</b>)

    EtherNet/IPModbus-RTU主站协议网关(JM-EIP-RTU

    ,用户的变频器采用Modbus RTU通信,耐用通信EtherNet/IPModbus RTU网关作为两者之间的桥梁,实现PLC对变频器的
    的头像 发表于 08-26 14:43 321次阅读
    EtherNet/IP<b class='flag-5'>转</b><b class='flag-5'>Modbus-RTU</b>主站协议网关(JM-EIP-<b class='flag-5'>RTU</b>)

    Profibus DP主站Modbus RTU协议网关(Modbus RTUProfibus DP)

    Profibus DP主站Modbus RTU如何实现有效连接与通信,这一问题常常让许多人感到困惑不已。现在,就来为大家专门解答这个疑问。远创智控YC-DPM-RTU设备有着极为出色
    的头像 发表于 08-25 14:43 309次阅读
    Profibus DP主站<b class='flag-5'>转</b><b class='flag-5'>Modbus</b> <b class='flag-5'>RTU</b>协议网关(<b class='flag-5'>Modbus</b> <b class='flag-5'>RTU</b><b class='flag-5'>转</b>Profibus DP)

    EtherCATModbus RTU协议网关(YC-ECT-RTU

    远创智控YC-ECT-RTU是自主研发的一款EtherCAT从站功能的通讯网关。该产品主要功能是将EtherCAT网络和Modbus RTU总线连接起来。本网关连接到EtherCAT总线中做为从站使用,连接到
    的头像 发表于 08-25 09:41 432次阅读
    EtherCAT<b class='flag-5'>转</b><b class='flag-5'>Modbus</b> <b class='flag-5'>RTU</b>协议网关(YC-ECT-<b class='flag-5'>RTU</b>)

    ProfiNetRS485/Modbus Rtu协议网关

    网关实现PNrs485、profinetRS485、Modbusprofinet、RS485PN、profinet
    的头像 发表于 06-13 08:55 710次阅读
    ProfiNet<b class='flag-5'>转</b>RS485/<b class='flag-5'>Modbus</b> <b class='flag-5'>Rtu</b>协议网关

    Modbus RTUPROFINET协议转换网关 HT1S-PNS485-S10

    Modbus RTU/RS485/232 PROFINET(S7-400/1500/1200、CPU315-2PN/DP)网关HT1S-PN485-S5为最大可支持5个MODBUS
    发表于 06-06 14:43

    CCLinkieModbus RTU在纺纱设备领域应用

    总的来说,CCLinkieModbus RTU网关在纺纱设备领域的应用可以大大提高设备的智能化水平、降低维护成本、提高生产效率。
    的头像 发表于 03-22 10:52 285次阅读
    CCLinkie<b class='flag-5'>转</b><b class='flag-5'>Modbus</b> <b class='flag-5'>RTU</b>在纺纱设备领域应用

    CCLinkieModbus RTU在纺纱设备领域应用

    在纺纱设备领域,CCLinkieModbus RTU网关可以发挥重要作用。这种网关的主要功能是将CC-Link IE Field总线协议转换为Modbus
    的头像 发表于 03-22 10:50 364次阅读
    CCLinkie<b class='flag-5'>转</b><b class='flag-5'>Modbus</b> <b class='flag-5'>RTU</b>在纺纱设备领域应用