大冶资讯网

【EsDA应用】ModbusRTUMaster转UDPClient

2023-08-17 10:04:09 来源:面包芯语

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


(相关资料图)

1. EPC6450-AWI型号工控板

图2

2.USB转TTL类型串口设备

图3

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

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

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

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

1. 本流图节点列表

tcpudp_client节点,该节点主要负责将得到的push节点数据,转发给PC上位机上的UDP服务器。

2. 数据流向

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

1.modbus_master_in节点

该节点关键参数一览:

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

(2)根据输入的信息读取从机设备的数据,读取成功则向下一节点输出数据。可使用push节点向此节点输入读取所需要的参数信息,具体请查看输入参数。此处我们选用periodic read data模式,即第(1)种。

从机ID,从机设备的ID号,数值为0-255。此处从机ID为1,具体用户可根据实际情况修改。

输出周期,数值为0-65535,此处我们设置为1000。

寄存器地址,该值为读取的起始寄存器地址,数值为0-65535,此处我们设置为0。

读取数量,数值为0-1000,此处我们设置为2,即读取两个数据(分别为温度和湿度)。

(4)读取输入寄存器,此类型的数据将输出uint16_t指针类型的payload。此处我们设置为read holding resgisters,即第(3)种。

2.modbus_parse_in节点

图10

该节点为脚本节点,具体脚本如下。

4.fscript2节点

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

图11

图12

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

使能,为true则允许建立连接,为false则禁止建立连接,此处我们选择true。

协议,此处选择UDP。

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

端口号,此处设置为7777。

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

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

则1000ms后便重新连接。

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

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

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

图13

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

图16

图17

图19

1. UDP服务器

图20点击创建连接

2. UDP客户端

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

关键词:

热门推荐