随着物联网技术蓬勃发展,modbus 设备数据采集上报需求日益增加,本文将具体介绍如何利用 esda 快速实现modbus rtu master数据转udp client数据,缩短产品研发时间。 简介随着时代的发展,数据上云等需求越来越普遍,不同协议之间的数据转换,也成了用户普遍的需求之一。本文将带大家快速实现将epc6450-awi工控板的modbus rtu数据,快速转发成udp客户端数据,并传送给udp服务器,工作框架如图1.1。
图1本文主要使用本公司的epc6450-awi型号工控板,外接使用modbus rtu协议传输的温湿度变送器,读取相关温湿度数据,并创建udp客户端,向pc机上的udp服务器实时发送温湿度数据。 入门基础 本章内容,主要使用modbus_master_in、modbus_parse_in、fscript、log、push、tcpudp_client节点。用户在进行阅读之前,需具备一定基础的awflow designer开发经验。若刚开始接触,可阅读以下文章,进行基础知识的学习。
esda mpc-zc1 入门(一)—— 软件安装 esda mpc-zc1 入门(二)—— led 控制 esda应用 串口服务器 —— udp server
硬件前提 1. epc6450-awi型号工控板
图2
2. usb转ttl类型串口设备
图3
3. 温湿度变送器(modbus rtu协议,rs485接口)
图4 此传感器,内部使用了modbus rtu协议,数据分别存储在地址为0(温度)和1(湿度)上。
4. type-c线、网线、杜邦线若干
图5 硬件连接图
图6 将usb转tll接口与duart接口相接(此处注意rxd接txd,txd接rxd),type-c供电线与工控板type-c接口相接,网口接net0接口,温湿度变送器上的a/b信号线分别于工控板上的rs485a/rs485b相连,+电源线接于5v,-地线接于gnd。
本章流图解析
图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服务器窗口,进行数据交互。
节点解析 1. modbus_master_in节点
图8 该节点关键参数一览:
主机参数配置,此处配置与配置串口参数同理,配置如下:
图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节点
图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.payloadoutput.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 节点 图11
该节点用法较为简单,直接填写需要进行传送的目标节点即可。6. tcp_client节点 图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节点 图13
该节点主要实现,将上一个节点传输而下的数据,打印至串口和调试窗口上,一个很好用的调试信息反馈节点。
流图下载1. 点击下拉框图142. 点击配置按钮图153. 配置ip地址与端口号 图16
若用户不知道流图下载的端口号,可以在板子重启时,调试串口种打印信息获取,或者在shell命令窗口使用ipconfig命令获取网口配置。4. 先选择配置,后点击下载按钮 图17
图185. 下载完成 图19
效果验证 1. udp服务器
此处需要使用一款助手工具,本章便用sscom工具进行效果展示。1.1 udp服务器接收到的设备数据 图20 点击创建连接
1.2 udp服务器接收到的设备数据图21 设备数据1.3 udp服务器向设备下发数据图22 下发数据 2. udp客户端
可见客户端接收到的数据如下。
图23 查看udp客户端接收数据图24 接收数据详情到此,本章结束,如果您对此有兴趣,那就赶快行动起来吧! 关联产品 技术交流群长按识别如下二维码可加入“esda嵌入式系统设计自动化交流群”,与志同道合的朋友交流,并有专业技术人员为您答疑解惑,如有问题可以咨询小致微信:zlgmcu-888。
PLC案例三相异步电动机顺序启动逆序停止控制
4路电话光端机的作用与性能特点介绍
Openwrt开发指南 第19章 驱动开发之LED驱动程序
VR的成长速度远比我们想象中的要快——LUCI immers头戴测评
光伏系统运维—组件的除尘除雪
【EsDA 应用】Modbus RTU Master 转 UDP Client
共同探讨AI+技术将带来怎样的发展,对数据发展产生怎样的推动力
短视频搭配AR将为内容创作者激活更多新玩法
泰鼎携手雅虎推出首款家用互联影院电视
v853和v851参数对比
业界第一颗 Versal ACAP 到达 Xilinx 之后发生了什么?
中国首次利用VR技术返回案发现场 可视化系统体现四效
电子镇流器中的电磁干扰抑制措施解析
电动化和可再生能源的利用将成为低碳交通的未来发展方向
红米Note4X首开箱:能把骁龙625打造成最具性能的只有它
ETAP无功补偿(4)如何在ETAP中进行最佳电容器位置分析
【工程师开发板使用测评】爱普特 APT32F110 ev board 试用测评连载05
液晶显示屏节能标准更新 GB 21520-2023
变频器的质量性能指标
激光发射器的测量应用与三角测量法