![6283a458-2b66-11ee-a368-dac502259ad0.jpg](https://file1.elecfans.com//web2/M00/9F/67/wKgZomToNOmAZOveAAABH5UOQQI852.jpg)
![62933486-2b66-11ee-a368-dac502259ad0.png](https://file1.elecfans.com//web2/M00/9F/67/wKgZomToNOmAKxUnAADb1vEkrBI184.png)
图1
本文主要使用本公司的EPC6450-AWI型号工控板,外接使用Modbus RTU协议传输的温湿度变送器,读取相关温湿度数据,并创建UDP服务器,向PC机上的UDP客户端实时发送温湿度数据。![6283a458-2b66-11ee-a368-dac502259ad0.jpg](https://file1.elecfans.com//web2/M00/9F/67/wKgZomToNOmAZOveAAABH5UOQQI852.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](https://file1.elecfans.com//web2/M00/9F/67/wKgZomToNOmAZOveAAABH5UOQQI852.jpg)
![62bf1da8-2b66-11ee-a368-dac502259ad0.png](https://file1.elecfans.com//web2/M00/9F/67/wKgZomToNOqAFcayAAc6qztNaF0629.png)
图2
2. USB转TTL类型串口设备![62efc174-2b66-11ee-a368-dac502259ad0.jpg](https://file1.elecfans.com//web2/M00/9F/67/wKgZomToNOqAOgT6AABwa9AOADE749.jpg)
图3
3. 温湿度变送器(ModbusRTU协议,RS485接口)![62ff594a-2b66-11ee-a368-dac502259ad0.jpg](https://file1.elecfans.com//web2/M00/9F/67/wKgZomToNOqASdswAAFiQOVjSTs817.jpg)
此传感器,内部使用了Modbus RTU协议,数据分别存储在地址为0(温度)和1(湿度)上。
4. Type-C线、网线、杜邦线若干![632c5210-2b66-11ee-a368-dac502259ad0.jpg](https://file1.elecfans.com//web2/M00/9F/67/wKgZomToNOqAFllfAACciL2KiqM283.jpg)
图5
![6283a458-2b66-11ee-a368-dac502259ad0.jpg](https://file1.elecfans.com//web2/M00/9F/67/wKgZomToNOmAZOveAAABH5UOQQI852.jpg)
![6360cf36-2b66-11ee-a368-dac502259ad0.jpg](https://file1.elecfans.com//web2/M00/9F/67/wKgZomToNOqAWr_qAAIj9nTSXio581.jpg)
![6283a458-2b66-11ee-a368-dac502259ad0.jpg](https://file1.elecfans.com//web2/M00/9F/67/wKgZomToNOmAZOveAAABH5UOQQI852.jpg)
![63850b58-2b66-11ee-a368-dac502259ad0.png](https://file1.elecfans.com//web2/M00/9F/67/wKgZomToNOuAI3oRAAFsjryRUY8023.png)
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客户端。
通过RS485接口与Modbus RTU协议读取温湿度变送器的数据,对该数据进行数值化生成对应的数值数组,对生成的数值数组进行提取,格式化输出对应的温湿度情况,并将信息显示在串口与调试窗口上,以及发送至PC上位机上的UDP客户端窗口。
![6283a458-2b66-11ee-a368-dac502259ad0.jpg](https://file1.elecfans.com//web2/M00/9F/67/wKgZomToNOmAZOveAAABH5UOQQI852.jpg)
![63a83c54-2b66-11ee-a368-dac502259ad0.png](https://file1.elecfans.com//web2/M00/9F/67/wKgZomToNOuAEyOFAAJRtTWFxIk650.png)
该节点关键参数一览:
主机参数配置,此处配置与配置串口参数同理,配置如下:-
读取模式,该属性将决定节点的触发方式。分别有:(1)循环读取数据,该模式节点将以用户设定的周期定时输出数据,如周期内数据未被刷新,则在下一周期输出;(2)根据输入的信息读取从机设备的数据,读取成功则向下一节点输出数据。可使用push节点向此节点输入读取所需要的参数信息,具体请查看输入参数。此处我们选用periodic read data模式,即第(1)种。
图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)种。
![6406d55c-2b66-11ee-a368-dac502259ad0.png](https://file1.elecfans.com//web2/M00/9F/67/wKgZomToNOuAGLG6AAKYCIdnCBQ857.png)
- 数据转换模式,该模式有:(1)单地址数据转换,此模式只对某一地址的数据进行转换,因此输出payload是对应地址的单个数据值;(2)多地址数据转换,此模式对指定地址及数量的数据进行同一的转换,并将转换后的值存入array对象;(3)全地址数据转换,此模式对输入的所有数据进行同一的转换,并将转换后的值存入array对象。注:数据地址及长度必须在modbus输入节点的读取范围内,否则转换将失败。此处我们选择multi-address address parse模式,即第(2)种。
- 数据转换起始地址,此处设置为0。
- 转换数量,此处设置为2。
- 数据转换类型,读取的数据格式,对读取的数据进行位整合,例: int32_t:将数据地址开始的4byte整合成int32_t类型的值。此处我们选择16bits-unsigned int类型。
- 大小端选择,此处选择配置读取的存储大小端模式,此处我们设置为小端模式。
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](https://file1.elecfans.com//web2/M00/9F/67/wKgZomToNOuASbOBAAD7Z-5fuDE552.png)
![645efb06-2b66-11ee-a368-dac502259ad0.png](https://file1.elecfans.com//web2/M00/9F/67/wKgZomToNOuAKpt_AAFWM9vgX54860.png)
该节点关键参数一览:
-
端口,本地开放连接的端口号,取值为1024-60000,此处取值为777。
-
Multicast,为加入的组播地址,本章不需要填写。
-
输出模式,存在两种输出模式可以选择,第一种为携带报文头部的模式,第二种为不携带报文头部的模式,此处我们设置为第二种模式payload。
![649c02c6-2b66-11ee-a368-dac502259ad0.png](https://file1.elecfans.com//web2/M00/9F/67/wKgZomToNOyAS6YXAAIvvM4G0Qs824.png)
![6283a458-2b66-11ee-a368-dac502259ad0.jpg](https://file1.elecfans.com//web2/M00/9F/67/wKgZomToNOmAZOveAAABH5UOQQI852.jpg)
![64c4cae4-2b66-11ee-a368-dac502259ad0.png](https://file1.elecfans.com//web2/M00/9F/67/wKgZomToNOyAba6VAAGaayyG1cU710.png)
图14
2.点击配置按钮![64e86a62-2b66-11ee-a368-dac502259ad0.png](https://file1.elecfans.com//web2/M00/9F/67/wKgZomToNOyARdB7AAGhxFIV-JU600.png)
图15
3.配置ip地址与端口号![651890d4-2b66-11ee-a368-dac502259ad0.png](https://file1.elecfans.com//web2/M00/9F/67/wKgZomToNOyAbbCZAAGACAgbkyE885.png)
![6526fc5a-2b66-11ee-a368-dac502259ad0.png](https://file1.elecfans.com//web2/M00/9F/67/wKgZomToNOyASL0RAAGi2PhyzUI846.png)
![65530250-2b66-11ee-a368-dac502259ad0.png](https://file1.elecfans.com//web2/M00/9F/67/wKgZomToNOyAXnqMAAGgMcAYJf0745.png)
图18点击下载运行按钮
5.下载完成![657c1ffa-2b66-11ee-a368-dac502259ad0.png](https://file1.elecfans.com//web2/M00/9F/67/wKgZomToNO2AMJKyAAGeMZuLkCg015.png)
![65a852be-2b66-11ee-a368-dac502259ad0.png](https://file1.elecfans.com//web2/M00/9F/67/wKgZomToNO2AP_BCAAKAp4mUnPU668.png)
![6283a458-2b66-11ee-a368-dac502259ad0.jpg](https://file1.elecfans.com//web2/M00/9F/67/wKgZomToNOmAZOveAAABH5UOQQI852.jpg)
![65cf5f6c-2b66-11ee-a368-dac502259ad0.png](https://file1.elecfans.com//web2/M00/9F/67/wKgZomToNO2AcnkhAAKMiMw6EOs689.png)
![65f7a684-2b66-11ee-a368-dac502259ad0.png](https://file1.elecfans.com//web2/M00/9F/67/wKgZomToNO2ACbw3AAKjkCq0zkk179.png)
此处需要使用一款助手工具,本章便用 TCP&UDP 测试工具进行效果展示。
2.1创建UDP客户端
![66446e6a-2b66-11ee-a368-dac502259ad0.png](https://file1.elecfans.com//web2/M00/9F/67/wKgZomToNO2AaRcyAACScJofV2A040.png)
![6650a2de-2b66-11ee-a368-dac502259ad0.png](https://file1.elecfans.com//web2/M00/9F/67/wKgZomToNO2AKBssAADyvqt_Mj8076.png)
![667418ea-2b66-11ee-a368-dac502259ad0.png](https://file1.elecfans.com//web2/M00/9F/67/wKgZomToNO6APw8-AADDIloZO8Y442.png)
图25点击创建
2.2 建立UDP连接![66a227d0-2b66-11ee-a368-dac502259ad0.png](https://file1.elecfans.com//web2/M00/9F/67/wKgZomToNO6AavmaAADbWS81ORw372.png)
![66cafd7c-2b66-11ee-a368-dac502259ad0.png](https://file1.elecfans.com//web2/M00/9F/67/wKgZomToNO6AZJuzAAKYebBpCGw799.png)
![66e78898-2b66-11ee-a368-dac502259ad0.png](https://file1.elecfans.com//web2/M00/9F/67/wKgZomToNO6AJEztAADQUB23uEY380.png)
![6283a458-2b66-11ee-a368-dac502259ad0.jpg](https://file1.elecfans.com//web2/M00/9F/67/wKgZomToNOmAZOveAAABH5UOQQI852.jpg)
![6283a458-2b66-11ee-a368-dac502259ad0.jpg](https://file1.elecfans.com//web2/M00/9F/67/wKgZomToNOmAZOveAAABH5UOQQI852.jpg)
![6725009c-2b66-11ee-a368-dac502259ad0.png](https://file1.elecfans.com//web2/M00/9F/67/wKgZomToNO6AScDYAADsKECXPss964.png)
-
致远电子
+关注
关注
13文章
409浏览量
31472
原文标题:【EsDA 应用】Modbus RTU Master 转 UDP Server
文章出处:【微信号:ZLG_zhiyuan,微信公众号:ZLG致远电子】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
EtherCAT转 4 路Modbus RTU网关-三格电子
![EtherCAT<b class='flag-5'>转</b> 4 路<b class='flag-5'>Modbus</b> <b class='flag-5'>RTU</b>网关-三格电子](https://file1.elecfans.com//web3/M00/02/DB/wKgZO2diO_uAVrv5AACgNIUco1U51.jpeg)
Modbus RTU转CC-link协议网关(Modbus RTU转CC-link)
![<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)](https://file1.elecfans.com/web2/M00/05/DC/wKgZombfrU-AOGw0AAKv-cw_KUw942.png)
Profibus-PA转Modbus-RTU协议网关(Profibus-PA转Modbus-RTU)
![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>)](https://file1.elecfans.com/web2/M00/06/B4/wKgaombesuyANQsXAAFBw0V4Q28553.png)
EtherCAT主站转Modbus RTU网关(EtherCAT转Modbus RTU)
![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>)](https://file1.elecfans.com/web2/M00/04/0F/wKgZombJmN6AGcuFAAEor7btuCk962.png)
Profibus DP主站转Modbus RTU网关(Modbus RTU转Profibus DP)
![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)](https://file1.elecfans.com/web2/M00/04/EA/wKgaombIgduADp9aAAFBQPcZdwI516.png)
Modbus RTU转CC-Link协议网关(CC-Link转Modbus RTU)
![<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>)](https://file1.elecfans.com//web2/M00/06/90/wKgaombb-cyAas06AAB6XwjfMa4293.jpg)
EtherNet/IP转Modbus-RTU主站网关(EtherNet/IP转Modbus-RTU)
![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>)](https://file1.elecfans.com/web2/M00/05/1E/wKgaombMIuGAMqO0AAK22mjr9qA153.png)
EtherNet/IP转Modbus-RTU主站协议网关(JM-EIP-RTU)
![EtherNet/IP<b class='flag-5'>转</b><b class='flag-5'>Modbus-RTU</b>主站协议网关(JM-EIP-<b class='flag-5'>RTU</b>)](https://file1.elecfans.com/web2/M00/05/1E/wKgaombMIuGAMqO0AAK22mjr9qA153.png)
Profibus DP主站转Modbus RTU协议网关(Modbus RTU转Profibus DP)
![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)](https://file1.elecfans.com//web2/M00/04/EA/wKgaombIgf6AOO_JAAB1KKWaVrk660.jpg)
EtherCAT转Modbus RTU协议网关(YC-ECT-RTU)
![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>)](https://file1.elecfans.com//web2/M00/04/FC/wKgaombJmf-ASm3TAAB3Qt1U4po135.jpg)
Modbus RTU转PROFINET协议转换网关 HT1S-PNS485-S10
CCLinkie转Modbus RTU在纺纱设备领域应用
![CCLinkie<b class='flag-5'>转</b><b class='flag-5'>Modbus</b> <b class='flag-5'>RTU</b>在纺纱设备领域应用](https://file1.elecfans.com/web2/M00/C5/61/wKgZomX88e6ATlFSAAVVfyUwyDE647.png)
评论