艾红
(北京信息科技大学自动化学院,北京 100192)
多点温度监测系统与组态软件的数据通信
艾红
(北京信息科技大学自动化学院,北京 100192)
为了实现多点温度监测系统功能,针对智能仪表与监控界面的设计,需要实现单片机系统与组态软件的数据通信。采用单片机设计了菜单显示画面,描述了多点温度监测系统构成和测温程序设计思想,以及力控组态软件读数据命令格式和写数据命令格式。阐述了单片机和力控组态软件通信的原理、实现方法及设备组态与数据组态方法,力控与单片机通信协议的制定,描述了单片机和力控组态软件数据通信流程图。通过力控I/O设备监视器,概述了单片机与力控组态软件之间数据传输的全过程。
组态软件 数据通信 多点温度监测 通信协议 菜单显示
多点温度检测技术在仓库、楼宇、空调控制和生产过程监控等领域得到广泛应用。这些领域温度检测的共同特点是测量点多、环境复杂、布线分散等。为了克服这些弱点,利用可组网数字温度传感器DS18B20的单总线特点,设计硬件电路组成传感器网络,实现多点温度检测。同时,采用外部供电方式,结合单片机STC89C516RD,选用RT12864M液晶显示模块实时显示温度。
为了解决现场离监控室较远的问题,系统采用串行总线通信方式,通过接口转换器在监控计算机与单片机系统之间搭建一个RS-485网络实现数据通信,完成对现场多点温度的采集。上位计算机采用力控组态软件作为监测平台,完成温度与报警信息的实时显示。利用力控组态软件的人机界面和监控功能,可以开发一个界面直观、功能齐全的温度监测系统[1-2]。
多点温度监测系统结构图如图1所示。
图1 多点温度监测系统结构Fig.1 Structure of the multi-point temperature monitoring system
下位机由单片机STC89C516RD、采集多点温度的温度传感器、键盘、显示电路、存储器、报警电路和RS-485通信接口组成。下位机可以脱离上位机独立工作。系统设计上位机的目的在于能够更方便地远离现场实现监控和管理。上位机与下位机的数据通信接口采用RS-485接口,通过计算机可对温度数据进行全面的管理和监测,完成原始数据记录等工作。
根据数字温度传感器DS18B20的通信协议,依次对DS18B20进行初始化、发送ROM功能命令和存储器操作命令。当单片机发送温度转换命令后,往往要延迟足够的时间使传感器完成温度的转换。当传感器数量较多时,循环采集一次的时间比较长,这使得采集的温度数据实时性降低。为了提高多个传感器数据采集的效率,软件编程时执行跳过ROM匹配命令,发送温度转换命令,使所有传感器同时进行温度转换。当温度转换完成后,再依次发送每个传感器的序列号,读取相应的温度值。程序中设定了循环校验的次数,若超过5次,则认定传感器毁坏。温度数据处理程序设计时根据温度数据的符号位可以判断温度是否为负数,如果温度数据为负数,则对数据进行相应的转换。由于温度数据为两个字节,因此选用单片机的内部特殊功能寄存器DPTR存储整个温度数值。程序设计如下。
lcd_xianshi数组中存储了传感器采集到的温度值,采集到的多点温度值依次为多个房间的温度值。
3.1 菜单显示画面
多点温度监测系统通过键盘显示电路实现菜单管理,菜单选项通过按下“菜单”键调出。当在菜单画面上选择和上位机通信功能时,按下确认键后,程序返回到房间温度巡检画面,这时单片机系统的数据和力控组态软件中的数据能够相互通信。单片机系统内多个房间的温度值、报警上限设定值、报警下限设定值都能实时地传输给力控组态软件,并在力控组态软件的画面上实时显示。当在力控组态软件的画面上修改上限报警和下限报警设定值后,报警数据的修改也能够下传给单片机系统。多点温度监测系统配备了键盘,能够通过键盘调用房间温度定检画面、时间显示画面、报警显示画面、报警历史数据画面、时间设置画面以及报警参数设置画面等[3]。
3.2 远距离数据通信
计算机一般都配有标准RS-232接口,而用RS-232标准传输数据时,传输的距离会受到限制。因此,为了实现数据的远传,系统设计通过一个RS-232转RS-485的转换器,在上位机与单片机之间搭建一个能够使信号远传的RS-485网络。RS-485标准实质上是RS-422标准的改进增强版本,它在传输时不采用TTL电平,传输距离远。如以100 kbit/s的速率传输时,距离可达1.2 km;如果降低波特率,传输距离还可进一步提高。由于需要将信号转化成适合于远传的RS-485标准信号,系统设计采用一个MAX487芯片完成相应的电平转换。数据的传输主要受MAX487读写信号的控制。当单片机通过串口要发送数据时,需要把MAX487的状态置为发送数据状态;当单片机通过串口要接收数据时,则把MAX487的状态置为接收数据状态。为接收使能控制端,芯片处于接收数据状态时,引脚必须置为0。引脚DE为输出使能控制端,当芯片处于发送数据状态时,引脚DE必须置1[4]。
在力控组态软件组态画面中,必须对设备进行组态。具体操作是在力控组态软件画面的I/O设备选项中选择单片机,双击调出组态窗口设备配置。可以设置相应的参数,其中,更新周期、超时时间以及设备地址都关系到力控组态软件发送报文的数据格式。通信方式选择串口,点击高级按钮,进入设置高级配置单元。可以设置设备扫描周期、数据包采集失败后重试的次数以及下置失败的次数。设置完成后点击保存,返回设备组态窗口。设置串口的相关参数,选择串口的波特率、数据位、停止位和有无奇偶校验。随后进行数据组态,数据组态的目的是把各个数据的偏移地址分配好。
在数据组态时,将0~19地址组态为温度值,20~29地址组态为报警上限值,30~39地址组态为报警下限值。双击力控组态软件的数据组态选项,进入数据组态画面。其中,数据组态画面中有许多区域,用于区分不同的模块。多点温度监测系统设计中选用了区域00,选择组态的点为模拟I/O点,双击模拟I/O点进入模拟I/O点组态画面。
模拟I/O点组态画面中需要为组态的点取名字,以便后期调用。点击数据连接,进入数据连接窗口。由于在设备组态时,定义了名字为muc的I/O设备,因此设备选择muc,分别对这个点的瞬时值PV、低限报警值LO、高限报警值HI值进行组态。数据显示时,温度的整数和小数部分分别采用两个字节显示。设实际建立的点数为20个,在要显示整数数据的点上组态上限报警值和下限报警值的偏移地址。20个数据组态完成后的参数如表1示。从表1可以看出各个点组态的偏移地址。
表1 点组态偏移地址Tab.1 Offset address of point configuration
5.1 通信协议
上位机采用力控组态软件,它对单片机制定了特定的通信协议,通信参数包括数据位、停止位、波特率以及校验方式。其中,数据位、停止位、波特率须与单片机程序设定的一致。
力控组态软件读数据命令格式说明如下。
STX为报文开始码02H,ETX为报文结束码03H, 0DH为回车,0AH为换行。
Sta为设备地址,占1个字节,与在力控软件组态时建立的设备地址相同。
R为读标志,占1个字节,内容是52H;W为写标志,占1个字节,内容是57H。
DataType为需要交换的数据类型,占1个字节。当DataType的值为1时,表示字节;当DataType的值为2时,表示字;当DataType的值为3时,表示浮点数。
DataNum为要读取的数据数量,占1个字节。
DataAddr为数据偏移地址,2个字节,低字节在前,高字节在后。数据偏移地址以字节为单位。
Data为实际传输的数据,低字节在前,高字节在后。
DataLong为单片机返回Data的字节数,2个字节,低字节在前,高字节在后。
LRC为从第一个字节至LRC前的所有字节的异或值,占1个字节。
EndCode为结束码标志位,通过它可以确认数据是否发生错误。当EndCode的值为0时,表示正确应答;当EndCode的值为1时,表示数据类型错误;当EndCode的值为2时,表示数据范围超限;当EndCode的值为3时,表示指令无法识别,应为R或W;当EndCode的值为4时表示校验错误。如果结束码EndCode为异常值,则该数据帧的数据无效。
力控组态软件的单片机通信的数据协议如图2所示。
图2 数据通信协议Fig.2 The data communication protocol
5.2 单片机数据通信软件设计
单片机和上位机数据通信的协议要严格按照力控组态软件传输数据的协议来编写,主要包括读数据命令格式和写数据命令格式。单片机数据通信程序设计流程图如图3所示。
图3 单片机和组态软件数据通信流程图Fig.3 Flowchart of data communication between SCM and configuration software
力控组态软件可以发送读数据命令格式,也可以发送写数据命令格式。单片机需要判断格式的类型,而接收到第三个字节的数据就决定了其命令的类型。当n=0x52时,为读数据命令格式;当n=0x57时,为写数据命令格式。单片机接收力控组态软件发送的写数据命令格式数据,包含写入的数据、写入数据的偏移地址和数据类型等内容。
5.3 组态软件发送读命令
上位机在力控组态软件中对设备进行组态后,力控组态软件会根据在设备组态里设定的时间,向单片机应用系统循环发送一定的读数据格式。数据类型为数据组态时定义的数据类型,数据地址是要读取的第一个数据的偏移地址,数据个数是组态时定义的点数。当单片机通过串口收到力控组态软件发来的正确数据格式后,单片机向力控组态软件发送单片机应答读数据格式命令。单片机应答读数据格式命令中包含了单片机向上位机所要传送的数据。力控组态软件根据数据的偏移地址,将接收到的数据存储到相应的地址空间,这样就完成一次数据传输。
由于力控组态软件和单片机总的数据通信个数为40个,但是力控组态软件每次最多能接收0x20个数据即32个数据,因此,40个数据需要分两批传送给力控组态软件。单片机和力控组态软件数据通信成功后,在力控的I/O监视器可以看到相应信息。
力控组态软件读数据命令格式说明如下。如[02H][00H][52H][01H][20H][00H][08H][03H] [7AH][0DH][0AH]。其中,[02H]为报文开始码STX,[00H]为设备地址Sta,[52H]为读标志R。[01H]为DataType,说明需要交换的数据类型为1个字节,[20H][00H]为数据偏移地址DataAddr,说明读取的字节是从偏移地址0020H开始。[08H]为DataNum,说明传输的字节个数为8个。[03H]为报文结束码ETX。[7AH]为LRC,表示较验码。[0DH]为回车,[0AH]为换行。
单片机接收到这个数据格式的报文后,会将8个数据通过RS-232接口传送给力控组态软件。当力控组态软件收到传送上来的单片机应答读数据命令后,开始发送下一帧读取数据命令格式。当单片机将数据传输到力控组态软件后,力控组态软件根据数据的组态,自动分配数据到相应的地址,并在相应地址中显示出来[5]。
5.4 组态软件发送写命令
在力控组态软件的画面内改变某个数据后,力控组态软件会向单片机系统发送写数据命令格式。在写数据命令格式这帧数据中,包含了力控组态软件要写的数据。当单片机正确接收到这帧数据并从中取出数据后,发送单片机应答写数据格式,完成一次写数据的操作。如把第10个数据的报警上限值修改为33,需要力控组态软件向单片机发送写数据命令格式。力控组态软件向单片机发送写数据命令格式如下所示。
其中,[02H]为报文开始码STX,[00H]为设备地址Sta,[57H]为写标志W,表明是写数据命令报文。[01H]为DataType,表示需要交换的数据类型是1个字节。[1DH][00H]为数据偏移地址DataAddr,表明写入数据的偏移地址是001DH,即写入数据的偏移地址是十进制数29。在力控组态画面中,组态的第十个数据的偏移地址即为29。[21H]为Data表示实际传输的数据,即写入数据为十进制数33。[03H]为报文结束码ETX,[6BH]为LRC,[0DH]为回车,[0AH]为换行。当数据下置成功后,I/O监视器上会显示数据下置成功的信息。
本文设计了一种以单片机为核心的多点温度监测系统,实现多点温度显示、远传、存储以及温度报警等功能,解决了单片机与力控组态软件的数据通信问题。系统利用力控组态软件强大的功能,使上位机显示界面直观、功能完善,画面操作方便,人机交互好,实现了温度数据的曲线显示和数据的长期存储。为了实现数据的远距离传输,单片机与上位机之间采用RS-485进行通信。
上位机按照力控组态软件的通信协议接收到单片机上传的温度数据后,利用力控组态软件的功能实现对多点温度信号的实时监测,同时实现温度的报警、历史数据的显示以及系统运行情况的显示等功能,具有较好的应用前景。
[1] 李蒙,徐涛,冯硕.力控在长城润滑油罐区监控系统中的应用[J].控制工程,2007,14(S0):25-27.
[2] 卢超.基于PC机与单片机分布式温度采集系统的设计[J].仪表技术与传感器,2007(2):35-38.
[3] 贾群.基于粒子群神经网络的气化炉温度监测模型应用分析[J].中国仪器仪表,2013(2):37-38.
[4] 杨艳.PC机与单片机串行通信的协议策略研究及应用[J].云南大学学报:自然科学版,2007,29(S2):122-126.
[5] 吕秀丽,郑江红,祝立群.基于单片机与PC机的温度监测系统设计[J].电子设计工程,2012,20(22):165-167.
Data Communication Between Multi-point Temperature Monitoring System and Configuration Software
In order to realize the function of multi-point temperature monitoring system,in accordance with the design of intelligent instrument and monitoring interface,it is necessary to achieve data communication between single chip machine(SCM)system and configuration software.The menu display is designed by using SCM.The composition of the multi-point temperature monitoring system and the design concept of the temperature measurement program are described.The format of the read data command and write data command of the force control configuration software are explained.The principle and implementing method for communication between SCM and force control configuration software and the methods of equipment configuration and data configuration are described.The draw up of the communication protocol between force control and SCM is expounded,and the flowchart of the data communication between SCM and force control cofiguration software is described.Through force control I/O equipment monitor,the whole process of the data transmission between force control configuration software is illustrated.
Configuration software Data communication Multi-point temperature monitoring Communication protocol Menu display
TP216+.1
A
北京市自然科学基金资助项目(编号:4122029);
检测技术与自动化装置重点学科建设资助项目(编号:PXM2014-014224-000018)。
修改稿收到日期:2014-03-26。
作者艾红(1962-),女,1989年毕业于天津大学自动化仪表专业,获硕士学位,副教授;主要从事自动化仪表方面的研究。