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

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

3天内不再提示

【EsDA 应用】Modbus RTU Master 转 UDP Client

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

扫码添加小助手

加入工程师交流群

随着物联网技术蓬勃发展,Modbus 设备数据采集上报需求日益增加,本文将具体介绍如何利用 EsDA 快速实现Modbus RTU Master数据转UDP Client数据,缩短产品研发时间。 wKgZomToRfKAIQQpAAABH5UOQQI517.jpg  简介随着时代的发展,数据上云等需求越来越普遍,不同协议之间的数据转换,也成了用户普遍的需求之一。本文将带大家快速实现将EPC6450-AWI工控板的Modbus RTU数据,快速转发成UDP客户端数据,并传送给UDP服务器,工作框架如图1.1。

wKgZomToRfKACLJAAADguyUoXxQ958.png

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

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

  • EsDAMPC-ZC1入门(一)——软件安装
  • EsDAMPC-ZC1入门(二)——LED控制
  • EsDA应用串口服务器——UDPServer

wKgZomToRfKAIQQpAAABH5UOQQI517.jpg硬件前提

1. EPC6450-AWI型号工控板

wKgZomToRfKAKxgnAAc6qztNaF0391.png

图2

2.USB转TTL类型串口设备

wKgZomToRfOAOuHMABP-4uXgPyY904.jpg

图3

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

wKgZomToRfOAPbeyAADmMkvE6wY125.jpg

图4

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

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

wKgZomToRfOAK3hcAACciL2KiqM477.jpg

图5 wKgZomToRfKAIQQpAAABH5UOQQI517.jpg  硬件连接图

wKgZomToRfOAP_nQAAIj9nTSXio286.jpg

图6

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

wKgZomToRfKAIQQpAAABH5UOQQI517.jpg  本章流图解析

wKgZomToRfOAb7FaAAEx15RFbCQ000.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节点。
  • tcpudp_client节点,该节点主要负责将得到的push节点数据,转发给PC上位机上的UDP服务器。

2. 数据流向

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

wKgZomToRfKAIQQpAAABH5UOQQI517.jpg  节点解析

1.modbus_master_in节点

wKgZomToRfSASmupAAHPMS9oWgY618.png

图8

该节点关键参数一览:

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

    wKgZomToRfSAKGBpAAIKh37DohY747.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节点

wKgZomToRfSAIXCqAAKYCIdnCBQ906.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

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

5. push节点wKgZomToRfWAKTM2AADh14OytJo752.png

图11

该节点用法较为简单,直接填写需要进行传送的目标节点即可。6.tcp_client节点wKgZomToRfWAGoa5AAGslRqXDvs560.png

图12

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

该节点关键参数一览:
  • 使能,为true则允许建立连接,为false则禁止建立连接,此处我们选择true。

  • 协议,此处选择UDP。

  • 主机号,此处填PC上位机上所创建的UDP服务器的IP,为192.168.137.136。

  • 端口号,此处设置为7777。

  • 本地端口号,此处也设置为7777。

  • 重试间隔,此处设置为1000,单位为ms,表示断开连接后,若使能参数为true

  • 则1000ms后便重新连接。

  • 空闲下线,值为0则关闭该功能,在该时间内无数据通信则断开连接,此处设置为0。

  • 心跳包与注册包,具体请看节点的帮助文档,本章此处不填。

  • 保活时间,此参数仅在TCP协议模式下有效,此处我们设置为120。

7.log节点wKgZomToRfWAPCmJAAIvvM4G0Qs444.png

图13

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

wKgZomToRfKAIQQpAAABH5UOQQI517.jpg  流图下载1.点击下拉框wKgZomToRfWAJACqAAHnbeNz5m4732.png图142.点击配置按钮wKgZomToRfWAfrZwAAG5cJvccSc258.png图153.配置IP地址与端口号wKgZomToRfWAJYiPAAGA76rT8wo396.png

图16

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

图17

wKgZomToRfaAQ4xEAAHxcF-aZpU902.png图185.下载完成wKgZomToRfaAKA8oAAEP9vPYYh0102.png

图19

wKgZomToRfKAIQQpAAABH5UOQQI517.jpg  效果验证

1. UDP服务器

此处需要使用一款助手工具,本章便用sscom工具进行效果展示。1.1UDP服务器接收到的设备数据wKgZomToRfaAT-MoAAB4QZbNuEU273.png

图20点击创建连接

1.2 UDP服务器接收到的设备数据wKgZomToRfaAJ5Y6AABeteZLPCc293.png图21设备数据1.3UDP服务器向设备下发数据wKgZomToRfaAXDq6AAB-g6nM1SU216.png图22下发数据

2. UDP客户端

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

wKgZomToRfaAEPpGAAFylpW8Bxg072.png图23查看UDP客户端接收数据wKgZomToRfeAd2RUAAFhoRoqSJ8287.png图24接收数据详情到此,本章结束,如果您对此有兴趣,那就赶快行动起来吧! wKgZomToRfKAIQQpAAABH5UOQQI517.jpg关联产品 wKgZomToRfKAIQQpAAABH5UOQQI517.jpg技术交流长按识别如下二维码可加入“EsDA嵌入式系统设计自动化交流群”,与志同道合的朋友交流,并有专业技术人员为您答疑解惑,如有问题可以咨询小致微信zlgmcu-888。wKgZomToRfeAABWTAADsKECXPss023.png

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

    关注

    13

    文章

    421

    浏览量

    32374

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

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

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    用ProfinetModbus RTU协议网关有什么好处

    在工业自动化系统集成中,ProfinetModbus RTU网关正如一位精通多国语言的翻译官,打破了不同协议设备之间的沟通壁垒,让数据流动再无障碍。 在现代工业自动化环境中,不同年代、不同品牌
    的头像 发表于 10-29 11:30 496次阅读
    用Profinet<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 670次阅读
    DLT698<b class='flag-5'>转</b><b class='flag-5'>Modbus</b> <b class='flag-5'>RTU</b>-TCP网关

    Modbus RTUProfinet总线协议网关

    疆鸿智能JH-RTU-PN 网关实现 ModbusProfinet 功能,能够实现Modbus接口仪表、变频器、综保、软启动器等设备接入到S71500、S71200、CPU315-2
    的头像 发表于 09-18 14:49 327次阅读
    <b class='flag-5'>Modbus</b> <b class='flag-5'>RTU</b><b class='flag-5'>转</b>Profinet总线协议网关

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

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

    从协议冲突到生产力爆发:EtherCATMODBUS RTU网关实战全解

    PLC通过Modbus-RTUEtherCAT网关与安川V1000变频器通讯 在工业自动化系统中,欧姆龙CP1H PLC可通过串口(RS232/RS485)以Modbus-RTU协议
    的头像 发表于 07-29 17:30 465次阅读
    从协议冲突到生产力爆发:EtherCAT<b class='flag-5'>转</b><b class='flag-5'>MODBUS</b> <b class='flag-5'>RTU</b>网关实战全解

    激情通信,Modbus RTUProfinet网关与激光测距仪通讯案例

    激情通信,Modbus RTUProfinet网关与激光测距仪通讯案例
    的头像 发表于 07-02 17:00 539次阅读
    激情通信,<b class='flag-5'>Modbus</b> <b class='flag-5'>RTU</b><b class='flag-5'>转</b>Profinet网关与激光测距仪通讯案例

    流量计连接神器 CClinkieModbus RTU:工程师的「断舍离」指南

    不必要的成本。有没有一种\"断舍离\"的方法,让工程师摆脱这个烦恼?答案就是耐达讯通信技术CClinkieModbus RTU的转换方案。 方案概述: CClinkie
    发表于 06-24 13:53

    CC\\-Link IEModbus RTU:让伺服驱动轻松“入网”的秘籍

    Modbus RTU,两边大眼瞪小眼,数据传不动,急得老张直挠头。重新布线?成本爆炸!换新伺服?周期太长! 救星就是耐达讯通信技术CC-Link IEModbus
    发表于 06-23 14:02

    ProfinetRS485-Modbus RTU通信案例详解

    在工业自动化系统中,常常需要将不同协议的设备进行集成,以实现数据的交互和控制。本案例介绍了一种利用‌工业级ProfinetRS485 Modbus-Rtu协议网关(规格型号:ZP-WTU-PNMD02)‌实现Profinet与RS485-
    的头像 发表于 06-23 10:10 1664次阅读
    Profinet<b class='flag-5'>转</b>RS485-<b class='flag-5'>Modbus</b> <b class='flag-5'>RTU</b>通信案例详解

    DeviceNetModbus RTU协议转换网关在石油开采行业的应用

    。为了更好地满足石油开采行业的需求,我们推出了一款DeviceNetModbus RTU协议转换网关,该产品能够将DeviceNet网络中的设备信息转换为Modbus
    的头像 发表于 06-11 14:40 422次阅读

    基于 DeviceNet MODBUS RTU 协议的施耐德 PLC 与 ABB 电机驱动器仓储堆垛机的定位控制优化方案​

    基于 DeviceNet MODBUS RTU 协议的施耐德 PLC 与 ABB 电机驱动器仓储堆垛机的定位控制优化方案​ 案例背景​ 物流仓储中心的自动化程度不断提升,大量设备协同作业以实现
    发表于 05-03 10:45

    化工厂通信 “破圈密码”:Profinet Modbus RTU 网关 “神助攻”

    化工厂通信 “破圈密码”:Profinet Modbus RTU 网关 “神助攻”
    的头像 发表于 04-07 17:32 495次阅读
    化工厂通信 “破圈密码”:Profinet <b class='flag-5'>转</b> <b class='flag-5'>Modbus</b> <b class='flag-5'>RTU</b> 网关 “神助攻”

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

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

    Modbus TCP 到 RTU:轻松转换指南!

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

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

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