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

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

3天内不再提示

Modbus RTU Master 转 TCP Client

ZLG致远电子 2023-08-10 08:28 次阅读

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

ca92efc2-3714-11ee-bbcf-dac502259ad0.jpg  简介随着时代的发展,数据上云等需求越来越普遍,不同协议之间的数据转换,也成了用户普遍的需求之一。本文将带大家快速实现将EPC6450-AWI工控板的Modbus RTU数据,快速转发成TCP客户端数据,与服务器建立通信,工作框架如图1。

cab3bf9a-3714-11ee-bbcf-dac502259ad0.png

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

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

  • EsDAMPC-ZC1入门(一)——软件安装
  • EsDAMPC-ZC1入门(二)——LED控制
  • EsDAEPC6450-AWI进阶(协议转换)——ModbusTCP转TCPClient


cacdf2d4-3714-11ee-bbcf-dac502259ad0.jpg 硬件前提

1. EPC6450-AWI型号工控板

caf82694-3714-11ee-bbcf-dac502259ad0.png

图2

2.USB转TTL类型串口设备

cb3c829e-3714-11ee-bbcf-dac502259ad0.jpg

图3

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

cc724856-3714-11ee-bbcf-dac502259ad0.jpg

图4

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

4.Type-C线、网线、杜邦线若干

cc8658fa-3714-11ee-bbcf-dac502259ad0.jpg

图5
cacdf2d4-3714-11ee-bbcf-dac502259ad0.jpg  硬件连接图

cca128ba-3714-11ee-bbcf-dac502259ad0.jpg

图6

将USB转TLL接口与DUART接口相接(此处注意RXD接TXD,TXD接RXD),Type-C供电线与工控板Type-C接口相接,网口接NET0接口,温湿度变送器上的A/B信号线分别于工控板上的RS485A/RS485B相连,+电源线接于5V,-地线接于GND。

cacdf2d4-3714-11ee-bbcf-dac502259ad0.jpg  本章流图解析

ccbcee38-3714-11ee-bbcf-dac502259ad0.png

图7

1. 本流图节点列表

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

2. 数据流向通过RS485接口与Modbus RTU协议读取温湿度变送器的数据,对该数据进行数值化生成对应的数值数组,对生成的数值数组进行提取,格式化输出对应的温湿度情况,通过建立TCP客户端,发送至PC上位机上的TCP服务器窗口,服务器也向客户端发送数据,双方进行数据交互。
cacdf2d4-3714-11ee-bbcf-dac502259ad0.jpg  节点解析

1.modbus_master_in节点

ccdc4d50-3714-11ee-bbcf-dac502259ad0.png

图8

该节点关键参数一览:

  • 主机参数配置,此处配置与配置串口参数同理,配置如下:

cce791a6-3714-11ee-bbcf-dac502259ad0.png

  • 图9

(可参照学习EsDAMPC-ZC1应用——串口服务器(一),以及 EsDAMPC-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节点

cd0c3808-3714-11ee-bbcf-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

此脚本主要实现解析TCP客户端接收到的数据,并将其发送给log节点。

5. push节点cd462fcc-3714-11ee-bbcf-dac502259ad0.png

图11

该节点用法较为简单,直接填写需要进行传送的目标节点即可。6.tcp_client节点cd5e79ec-3714-11ee-bbcf-dac502259ad0.png

图12

该节点主要实现将push节点发送而来的数据,传达给TCP服务器。

该节点关键参数一览:

主机,此处我们设置为服务器的IP地址(192.168.137.136)。

端口,本地开放连接的端口号,取值为1024-60000,此处取值为7777。

重试时间间隔,此处我们设置为1000,单位为ms。

7.log节点cd88b7e8-3714-11ee-bbcf-dac502259ad0.png

图13

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


cacdf2d4-3714-11ee-bbcf-dac502259ad0.jpg  流图下载1.点击下拉框cdbfc6b6-3714-11ee-bbcf-dac502259ad0.png图142.点击配置按钮cdeb55ba-3714-11ee-bbcf-dac502259ad0.png图153.配置IP地址与端口号ce075c1a-3714-11ee-bbcf-dac502259ad0.png

图16

若用户不知道流图下载的端口号,可以在板子重启时,调试串口种打印信息获取,或者在shell命令窗口使用ipconfig命令获取网口配置。4.先选择配置,后点击下载按钮ce1c003e-3714-11ee-bbcf-dac502259ad0.png

图17

ce428538-3714-11ee-bbcf-dac502259ad0.png图185.下载完成ce834a82-3714-11ee-bbcf-dac502259ad0.png

图19


cacdf2d4-3714-11ee-bbcf-dac502259ad0.jpg  效果验证

1. TCP服务器的搭建

此处需要使用一款助手工具,而本章便用TCP&UDP测试工具进行效果展示。cea1fd60-3714-11ee-bbcf-dac502259ad0.png

图20创建服务器

cec1ed3c-3714-11ee-bbcf-dac502259ad0.png

图21配置服务器

ced669a6-3714-11ee-bbcf-dac502259ad0.png图22启动服务器2. TCP服务器的接收与下发cef96370-3714-11ee-bbcf-dac502259ad0.png

图23服务器接收

cf17af4c-3714-11ee-bbcf-dac502259ad0.png图24服务器发送可见客户端接收到的数据如下。cf2a4a6c-3714-11ee-bbcf-dac502259ad0.png图25调试信息列表cf5bbcd2-3714-11ee-bbcf-dac502259ad0.png图26调试信息详情到此,本章结束,如果您对此有兴趣,那就赶快行动起来吧!

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

    关注

    28

    文章

    1757

    浏览量

    76755
  • TCP
    TCP
    +关注

    关注

    8

    文章

    1347

    浏览量

    78926
  • RTU
    RTU
    +关注

    关注

    0

    文章

    403

    浏览量

    28596
收藏 人收藏

    评论

    相关推荐

    Modbus网关如何实现Modbus RTUModbus TCP协议的数据采集?

    着重要作用。 Modbus网关 作为数据通信的桥梁,能够实现Modbus RTUModbus TCP协议之间的数据采集与转换,进而为监控系
    的头像 发表于 10-22 15:57 157次阅读

    Modbus RTU协议与Modbus TCP/IP协议的区别

    Modbus RTUModbus TCP/IP的本质都是Modbus协议,都是通过Modbus
    的头像 发表于 10-18 17:44 254次阅读

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

    特JM-CCLK-RTU应用于支持Modbus RTU接口的变频器、仪表、上位机、马保等等。在纺纱设备领域,Modbus RTU
    的头像 发表于 09-10 10:28 579次阅读
    <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)

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

    ,用户的变频器采用Modbus RTU通信,耐用通信EtherNet/IPModbus RTU网关作为两者之间的桥梁,实现PLC对变频器的
    的头像 发表于 09-04 10:55 224次阅读
    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>)

    PLC协议、Modbus RTU TCP 、DL T645、IEC101-104、BACnet Modbus TCP RTU、OPC UA、MQTT、BACnet IP协议网关

    ,可同时采集不同协议,可定制二次开发,满足不同场景个性化需求。 二、协议支持 下行采集协议:各种PLC协议、Modbus RTU MasterModbus
    的头像 发表于 07-24 16:04 367次阅读
    PLC协议、<b class='flag-5'>Modbus</b> <b class='flag-5'>RTU</b>  <b class='flag-5'>TCP</b> 、DL T645、IEC101-104、BACnet <b class='flag-5'>转</b><b class='flag-5'>Modbus</b> <b class='flag-5'>TCP</b> <b class='flag-5'>RTU</b>、OPC UA、MQTT、BACnet IP协议网关

    Modbus RTUModbus TCPMQTT网关实现Modbus设备与云平台的无缝通信

    钡铼ModbusMQTT网关,简而言之,就是通过将Modbus协议(包括Modbus RTUModb
    的头像 发表于 07-23 16:58 2281次阅读
    <b class='flag-5'>Modbus</b> <b class='flag-5'>RTU</b>、<b class='flag-5'>Modbus</b> <b class='flag-5'>TCP</b><b class='flag-5'>转</b>MQTT网关实现<b class='flag-5'>Modbus</b>设备与云平台的无缝通信

    PNRS485 Modbus RTU协议网关通讯优势分析

    【ZP-WTU-PNMD02、ZP-WTU-PNMD04、ZP-WTU-PNMD10、ZP-WTU-PNMT01】系列ProfinetModbus TCP”或者“ProfinetR
    的头像 发表于 06-17 08:46 780次阅读
    PN<b class='flag-5'>转</b>RS485 <b class='flag-5'>Modbus</b> <b class='flag-5'>RTU</b>协议网关通讯优势分析

    ProfiNetRS485/Modbus Rtu协议网关

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

    Modbus TCPProfinet网关配置案例

    本案例采用Modbus TCPProfinet网关做为Modbus TCP通信协议设备与Profinet通信协议设备连接的桥梁。
    的头像 发表于 05-27 11:55 524次阅读
    <b class='flag-5'>Modbus</b> <b class='flag-5'>TCP</b><b class='flag-5'>转</b>Profinet网关配置案例

    BL124采集Modbus RTUModbus TCP协议

    同样支持Modbus RTUModbus TCPModbus网关为Modbus
    的头像 发表于 04-29 16:28 393次阅读
    BL124采集<b class='flag-5'>Modbus</b> <b class='flag-5'>RTU</b>和<b class='flag-5'>Modbus</b> <b class='flag-5'>TCP</b>协议

    CCLinkieModbus RTU在纺纱设备领域应用

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

    MODBUS RTU详细解释

    Modbus 一个工业上常用的通讯协议、一种通讯约定。Modbus 协议包括 RTU、ASCII、TCP。其中 MODBUS-RTU最常用,
    发表于 01-12 16:39 9次下载

    Modbus RTUModbus TCP网关应用技术

    通过Modbus RTUModbus TCP网关,设备之间的通信更加灵活便捷,大大提高了系统的可伸缩性和可靠性。此外,
    的头像 发表于 12-05 09:04 785次阅读
    <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>网关应用技术

    CCLinkModbus TCP网关_MODBUS网口设置

    兴达易控CCLinkModbus TCP网关是一种用于连接CCLink网络和Modbus TCP网络的设备。它提供了简单易用的
    的头像 发表于 11-15 09:06 1354次阅读
    CCLink<b class='flag-5'>转</b><b class='flag-5'>Modbus</b> <b class='flag-5'>TCP</b>网关_<b class='flag-5'>MODBUS</b>网口设置

    CCLinkModbus TCP网关_MODBUS报文配置

    兴达易控CCLinkModbus TCP网关是一种功能强大的设备,可实现两个不同通信协议之间的无缝对接。它能够将CCLink协议转换为Modbus
    的头像 发表于 11-15 09:05 500次阅读
    CCLink<b class='flag-5'>转</b><b class='flag-5'>Modbus</b> <b class='flag-5'>TCP</b>网关_<b class='flag-5'>MODBUS</b>报文配置