王宏文,刘 赞,韩振磊
(河北工业大学 控制科学与工程学院,天津 300130)
目前市场上的远程采集系统多数采用单片机跑裸机程序实现,随着用户对系统任务要求的增加,裸机系统对事件处理的实时性和逻辑性处理难度进一步增大,导致设计出的产品稳定性也相对较差,选用μC/OS-II实时操作系统移植到STM32F103单片机上,增加了系统的稳定性[1]。吸收ModBus协议帧格式简单、紧凑等特点和Hydrometer热量表协议数据安全性强的优势,整理出了一套高效率、高可靠性的传输协议,增加了采集系统的实时性和安全性。
远程采集系统自上而下包括上位机、集中器、采集器和热量表。系统物理层采用RS485总线完成户热量表数据采集工作,为了增加系统采集数据的效率,采集器与热量表、集中器与采集器之间分别采用两条独立的总线[2],其结构图如图1所示。
图1 采集系统结构图Fig.1 Acquisition system structure
上位机在远程采集系统中负责分类、汇总和显示采集数据,与集中器间采用广域网进行数据交互。集中器与采集器之间和采集器与热量表之间分别采用独立的RS485总线方式,避免了共用同一条总线时采集器采集数据必须等待总线空闲,采用独立的总线,多个采集器可实现定时并行的采集热量表数据,提高系统抄表效率[3]。
集中器是远程采集系统中连接采集器和网络服务器的关键环节,其主要功能是定时采集采集器数据,上传数据到网络服务器,起到数据汇总和中转的作用。
集中器硬件系统采用模块化设计思想,在增强系统的稳定性和可靠性方面起到了至关重要的作用[4]。集中器的硬件结构如图2所示。
图2 集中器硬件设计图Fig.2 Concentrator hardware design diagram
集中器在项目中是市电供电,整个系统的事件都是由集中器的实时时钟来产生的,为防止停电造成系统时钟紊乱,硬件系统配有一个RTC芯片,来维持掉电时的系统时间。系统为了备份抄收数据信息,将近2个采集周期的数据备份到STM32F103VET6单片机的FLASH中,自供暖季开始的所有数据备份到装有FAT32的SD卡里,管理人员可从SD卡直接查看用户数据和故障信息。集中器上传用户数据到网络服务器,广域网采用DTU模块来完成上传工作,模块化设计保证DTU全天候在线,增加了系统的稳定性。集中器和采集器在安装时共用同一套代码,通过系统配置端口可配置设备类型和楼栋信息。在μC/OS-II系统上移植图形用户接口 GUI(graphical user interface),增加界面友好性[5],用户现场可以查询采暖信息和应缴热费。集中器的电源电路均采用隔离的DC-DC模块构成,在RS485总线发生短路的情况下能够有效的起到保护作用。
μC/OS-II操作系统是一个可移植、可固化的、可裁剪的、占先式多任务实时内核。该系统源代码开放、整洁、一致,注释详尽,适合中小型系统开发。μC/OSII采用的是可剥夺型实时多任务内核,在任何时候都运行就绪了的最高优先级的任务。μC/OS-II操作系统的启动过程如图3所示。
图3 μC/OS-II操作系统的启动过程Fig.3 μC/OS-II of the operating system to start the process
集中器的软件设计采用模块化设计思想。将集中器的工作按功能化分成7个任务,分别为时钟任务、存储任务、显示任务、上传任务、监控任务、采集任务和数据校验任务[6]。系统任务结构如图4所示。
图4 系统任务结构Fig.4 System task structure
集中器在增加产品稳定性和缩短开发周期上,将μC/OS-II实时操作系统移植到STM32F103VET6单片机上,实现了控制系统的多任务有序运行,保证系统的可靠性和稳定性[7]。μC/OS-II操作系统负责协调各个任务,并通过实施调度将CPU使用权让给当前最高优先级的任务。各个任务间使用信号量、消息邮箱、消息队列和信号量集来实现任务间的通信,保证了任务之间的同步性和互不干扰性。
数据传输协议在远程采集系统中关系到系统的工作效率、可靠性和安全性。本文结合ModBus协议和Hydrometer热量表通信协议总结出一套高效、可靠的通信协议,不仅具有ModBus协议的高效率特点,而且还结合Hydrometer热量表协议的可靠性和灵活性[8]。
数据传输协议采用总线拓扑结构,由物理层、数据链路层、网路层和应用层组成。在数据链路层,数据信息是以帧形式传输的,每帧由帧起始符、地址域、数据长度(L)、数据域(DATA)、校验码(CRC16)和结束符6部分组成,如表1所示。
表1 数据帧格式Tab.1 Data frame format
数据帧格式沿用了ModBus协议的起始符、地址域和结束符,而数据域中每个数据都是由其在数据结构中的位置、类型和数值组成,在数据传输中提供数据校验的依据,数据结构中的位置使指针读写操作更加方便,数据的解析、组合操作更具有通用性。
系统软件设计中,良好、清晰的数据结构有利于对系统数据的管理和传输,热量表和采集器的数据结构如图5所示。
采集器软件设计时,将有关热量表的所有数据总结到HotData结构中,并且定义CollectData结构保存所有用户的采集数据。增加代码的紧凑度和可读性。
图5 数据结构Fig.5 Data structure
本文提出的远程采集系统稳定性和高效性的研究方案有显著实用性,其结构简单,生产成本低廉,运行费用少,维护成本低,易于推广等显著优势,促进了我国热计量系统的改造进程。本系统采用μC/OS-II操作系统和改进的协议,在复杂环境下仍能稳定高效工作,解决了市场上远程采集系统的隐患。本系统已经在北京市通州区莲水怡园小区完成了全区的供暖系统改造,系统运行稳定,极大地提高了抄表效率。
[1]王晓兰,谭文忠.基于仪表总线的嵌入式接口设计[J].仪表技术与传感器,2004(6):21-38.
[2]Jean J Labrosse.嵌入式实时操作系统μC/OS-II[M].2版.邵贝贝,译.北京:中国电力出版社,2001.
[3]李纪奎,向怀坤.基于μC/OS-II的视频动态交通信息采集系统研究[J].哈尔滨工业大学学报,2007(2):306-309.
[4]林品.基于MBUS总线的远程抄表系统研究与开发[D].南京:南京理工大学,2012.
[5]郜焕平.基于模糊产生式规则的智能管理模型及其应用[J].现代制造工程,2005(11):26-29.
[6]迟雪华.基于GPRS无线远程抄表系统的研究与设计[D].南京:南京理工大学,2011.
[7]李金拌.自动抄表系统原理与应用[M].北京:化学工业出版社,2012.
[8]闰德光,谢军龙,戴汝平.M-BUS二线制总线[J].自动化仪表,2003,24(3):24-32. ■