基于RTU油井远程测控系统的数据采集与传输层软件设计
(2)Modbus/RTU通信协议实现
Modbus主站需要处理发送请求帧、等待应答、处理应答、处理差错和等待转换延时等事件。其主站设计流程如图5所示。
Modbus/RTU报文帧是否完整和帧与帧之间的区分可以通过空闲间隔来实现,但这需要使用定时器完成1.5个字符和3.5个字符的定时,并在定时到后,进入接收处理函数,然后实现ADU数据到PDU数据的处理。
3.2.3 系统软件的实现
系统上电后,首先进行初始化操作,主要包括设置串口、定时器等内容,并读取EEPROM中的配置信息,对RTU进行配置,包括主从工作模式选择、IP地址设置、轮询的通信方式选择、传感器的开关状态、继电器输出状态等。若处于主站状态,还可以获取从站配置信息并配置从站,配置成功后,主站开始对各从站进行扫描,并对从站报文进行处理;每扫描完一个从站,主站就对轮询到的数据进行存储;在扫描从站的同时,如果主站传感器和外部继电器处于开状态,会同时采集模拟通道和数字通道的数据并控制外部继电器,采集到的数据存于相应寄存器中,等待上位机请求命令,按照Modbus协议将相应数据打包,并上传到上位机。若处于从站,采集模拟通道和数字通道的数据并控制外部继电器,采集到的数据存于相应寄存器中,并等待RTU主站轮询命令,当轮询到该从站时,按Modbus协议打包数据并发送到RTU主站。不管该RTU是主站还是从站,其TCP/IP的服务器程序一直等待系统配置软件的配置信息,当收到配置信息后,将数据存入EEPROM并复位系统程序,整个系统设计流程图如图6所示。
从图6中可以同时看到Modbus/RTU和Modbus/TCP的从站处理函数,在实际应用中,RTU处于Modbus/RTU主站时,其Modbus/RTU从站的
处理任务不运行,Modbus/TCP从站的处理任务运行,该状态下RTU可用于图1中井场1的RTU主站和井场2的RTU两种情况;处于Modbus/RTU从站时,该状态下RTU可用于图1中井场1的从站情况,以太网服务器任务只等待配置信息。
4 测试
本系统的测试采用了第三方的Modbus测试工具Modbus Poll V4.3.3、Modbus Slave V4.3.1和实验室自主开发的配置软件。
4.1 轮询测试
利用系统配置软件的界面如图7所示,设置一个RTU主站和两个RTU从站,在一台PC机上运行Modbus Poll程序,模拟Modbus/TCP客户机,通过以太网与RTU主站相连,RTU主从站之间通过无线ZigBee模块(或RS 485模块)相连。串行通信的波特率设置为38 400 b/s,无校验位,停止位为1位。
PC端的Modbus/TCP客户机可向RTU主站发送命令,并读取存于RTU主站输入寄存器的从站数据。当从站的数字输入端接高电平(24 V)时,从Modbus Poll的对应地址可读取到1,图8所示是Modbus/TCP客户机接收到的轮询数据,其中地址500~507为从站1中8通道数字输入端对应的状态值;地址508~515为从站2中8通道数字输入端对应的状态值。经多次测量,均正确无误。
4.2 控制测试
PC端模拟的Modbus/TCP客户机向RTU的保持寄存器写入数据,RTU会将对应寄存器的数据输出到对应的数字输出端口,例如地址100对应数字输出端口0,当对地址100置1时,对应指示灯亮,输出高电平。
4.3 数据采集测试
RTU模拟输入端0接一定频率的正弦波,数字输入端接高电平信号,利用Modbus Poll查询RTU模拟输入端与数字输入端的数据。
图9所示为Modbus/TCP客户机所接收到的采集数据。
RTU采集到数字输入端的脉冲值以及开关状态,地址0~7对应相应通道的脉冲值,地址8~15对应相应通道的开关状态值;地址19为RTU板上的温度传感器的值,当前RTU的温度是24℃;地址20~49为模拟通道0采集到的正弦波信号,之后为其他通道采集到的AD值,每个通道的采样点数和频率可调。
5 结语
在油井远程测控系统数据采集与传输层系统软件设计中,由于采用了μC/OS_II的操作系统平台,可实现Modbus/RTU和Modbus/TCP通信,还可采集各种数字、模拟传感器的数据,并能对外部继电器进行控制,保障了本系统能适用于各种工作环境。此外,还可以根据实际的工作环境,利用系统配置软件进行合理的配置,保证了系统数据采集与传输层工作方式的多样性。经过一段时间的运行,本系统工作稳定、可靠。
- 一种高性价比等精度数字频率计方案设计(03-16)
- 基于FPGA的PLL频率合成器设计(08-12)
- 一种基于CCD技术的钢管长度测量系统设计(01-27)
- 一种基于DDS的电路板检测仪信号源设计(01-27)
- 逻辑分析仪我也DIY (一)(02-24)
- ADM2483在建筑能耗检测系统中的应用(10-25)