引 言
目前检测温度一般采用热电偶或热敏电阻作为传感器。这种传感器至仪表之间一般都要用专用的温度补偿导线;而温度补偿导线价格很贵,并且线路太长也会影响测量精度。在实际应用中往往需要对较远处(1 km左右)的温度信号进行监视。现有的解决方案有很多,例如:① 在现场用智能仪表对温度信号进行测量, 用计算机作上位机与智能仪表进行通信来实现远程温度监测。采用这种方案要增加计算机设备及相关计算机软件。② NCU+DDC实现远程温度监测。用2个DDC,一个安装在现场测量温度,另一个安装在监视地,2个DDC通过NCU进行通信,从而实现远程温度监测。
但以上方案都存在成本高的问题。有没有低成本的解决方案呢?其实,在单片机应用日益广泛的今天,完全可以用单片机以极低的成本来实现远程温度监测。
1 问题的提出
我单位管理的锅炉房同时给2栋建筑物内的2家酒店供应蒸汽,由安装在2栋建筑物地下室的热交换器进行热交换后产生热水送给客房。从锅炉房至2个热交换站的距离分别约600 m,值班人员要不停地奔波于2个热交换站与锅炉房之间进行设备巡视,检查热水温度是否控制在规定的范围。这样不仅增加了值班人员的劳动强度,同时也使锅炉房经常无人(因每班1人值班)。如果能在锅炉房显示2个热交换站内各热交换器的热水温度,则值班人员仅在热水温度异常时才需到热交换站检查设备,这样便可解决上述问题。经过分析,本人用单片机+智能仪表以低成本实现温度远程显示,并且经过实验取得了成功。
2 控制要求及解决方案选择
① 2个热交换站分高低区共安装有8个热交换器,正常水温在45~65℃之间;2个热交换站与锅炉房的距离分别为500 m和600 m左右。
② 要求在锅炉房内能以巡回及定点2种方式显示8个热交换器的热水温度:巡回方式以3 s为周期轮流更新及显示各热交换器热水温度;定点方式时,每按上键或下键1次则显示上或下1个热交换器热水温度,每3 s自动更新数据1次。
③ 根据控制要求选择单片机+智能仪表的解决方案:用带通信接口的智能仪表安装在现场测量温度,设计制作1个单片机装置完成与智能仪表的通信及数据显示。
3 通信协议、智能仪表选择及其参数介绍
因热水温度信号变化较慢,因而对通信的速度要求不高。对于这种低速率、远距离的通信选用RS485总线适宜。RS485是EIA(美国电子工业联合会)在1983年公布的新的平衡传输标准,是工业界使用最为广泛的双向、平衡传输线标准接口。它以半双工方式通信,支持多点连接,传统驱动器允许创建多达32个节点的网络,且其具有传输距离远(最大传输距离为1200 m),传输速度快(1200 m时为100 Kbps)等优点,连接方法如图1所示。
为了满足现场温度检测及与单片机装置通信的要求,必须选择至少有5个温度检测点及具有RS485通信端口的智能仪表。经过对市场上常用的温度检测仪进行分析,选择由重庆川仪十八厂生产的XJ-08S型巡回检测仪作现场测量仪表。
3.1 XJ-08S主要特点
① 多量程方式,热电偶、热电阻,1~5 V标准信号混合输入,可通过键盘进行设置;
② 最多8个测量通道(能测量8个温度信号);
③ 采用RS485通信标准,可将各通道最新数据向上位机传送。
重要的是,该仪表的说明书详细介绍了与该仪表进行数据交换的命令及格式,其通信协议也相对较简单,这给我们用单片机实现温度远程显示降低了难度(虽然有RS485端口的仪表很多,但大多没有通信命令的详细说明。
3.2 XJ-08S巡回检测仪通信协议
(1) 通信口设置
◇ 通信方式:RS485标准电平。
◇ 同步方式:起停同步方式。
◇ 波特率:9600 bps。
◇ 通信距离:不大于1200 m。
◇ 通信线:2线。
◇ 数据代码:ASCII码。
◇ 数据格式:每字符10位,即1个起始位,8个数据位,1个停止位。
(2)数据传输格式
◇ 地址:2字节(高字节在前,低字节在后)。
◇ 数据:按地址顺序,仪表数据传输格式为十六进制2字节定点数。
2字节定点数 = 低字节高4位+低字节低4位
(ASCII码) (ASCII码)
高字节高4位+高字节低4位
(ASCII码) (ASCII码)
若数据为负数,则采用补码方式传输。
◇ 在传输实时测量值时,传输完2字节定点数后,紧接着又传输2字节定点数,其中高字节低4位为小数位数。
例:(50.0)10 表示为 46 34 30 3130 3030 31
低字节 高字节 小数位数
(3)仪表通信格式
@ DE 帧类型 帧数据 CRC CR
◇ @:通信起始符。
◇ DE:仪表设备号(地址)。
◇ 帧类型:操作命令。
◇ 帧数据:各种操作命令所对应的命令及数据。
◇ CRC:校验字节(除@外CRC之前的其它几个字节的异或值)。
◇ CR:结束符(回车符)。
(4)应用中用到的命令及数据格式
◇ 读仪表全部动态数据命令帧
@ DE RD CRC CR
◇ 命令回送帧 正确 @DE RD 帧数据 CRC CR
错误 @DE * * CRC CR
例:读28号仪表的全部动态数据
命令:
'@1CRD64',0D(ASCII码40 31 43 52 44 36 34 d)错误返回码
'@1C**72',0D(ASCII码40 31 43 2A 2A 37 32 0D)正确返回数据'@ 1C RDXXXXXXXX
第0通道
XXXX XXXXXXXX XXXXXXXX XXXX XXXX XXXXXXXX XXXX XXXX XXXX
第1通道 第2通道 第3通道第4通道 第5通道 第6通道
XXXX XXXX XX',0D
第7通道 校验
4 单片机选择及硬件电路设计
① 选用Atmel公司生产的AT89S8252-24PC单片机,其主要参数及特点如下。
◇ 与MCS-51产品兼容。
◇ 具有8K字节可擦写的Flash内部程序存储器,可擦写1000次;2K字节EEPROM,可擦写 100 000次;SPI口(用PC机的并口连接5条线即可通过SPI口下载程序,软件可从网上下载,这样可节省购买编程器的费用;如果用1片AT89C2051自编1个小程序可制成1个烧写式仿真器,不占用单片机任何资源,并且烧写完可自动运行程序,非常方便。本文介绍的远程温度显示装置就是用这种方法开发完成的)。
◇ 256字节RAM,32根可编程I/O线,可编程串行口,内置看门狗。
与看门狗有关的特殊功能寄存器WMCON 地址= 96H,与看门狗有关的控制位为96H中的第0、1、5、6、7位。第5、6、7位用于设置看门狗定时时间。本应用中第5、6、7位均置1,设置看门狗溢出时间为2048 ms,第0位为看门狗使能控制位。该位置1将使能看门狗,其第1位为复用位,向第1位写1将复位看门狗定时器,具体操作如下:
a. 使能看门狗,并将其溢出时间设定为2048 ms:ORL 96H, #0E1H;
b. 看门狗定时器清0:ORL 96H, #2。
② 按键设计。为方便使用,设计了3个按键,分别为巡回/定点切换键、上键、下键。切换键用于巡检与定点模式的切换,上键向上切换通道,下键向下切换通道。其中巡检/定点切换键通过外部中断1以中断方式工作,中断程序将巡回/定点标志取反后直接跳到主程序中巡回/定点标志判断程序前运行,由判断程序完成巡回/定点的切换。按键信号由单片机P3.3、P3.4、P3.5引脚输入。
③ 显示电路设计。为方便观察,选用3个2位共阳级8段数码显示管(TOD5201AE)动态显示,1位显示仪表地址(A~F),1位显示通道号(0~7通道),其余4位用来显示实时温度值;用单片机P1口驱动1片74HC244以吸收电流的方式控制段码,用单片机P0.0~P0.5引脚驱动6个PNP三极管(9012)控制位选。
④电源选用5V/1A市售成品开关电源。
⑤ 根据智能仪表通信协议的要求,串行口定义为方式1工作,1帧10位:1个起始位、8个数据位、1个停止位;用1片75176完成数据的发送与接收,由于RS485为半双工,故用单片机P3.2引脚控制发送与接收的切换;2个智能仪表处于RS485总线的2个端点,为提高可靠性,在RS485总线的2个端点上分别并联1个120Ω、1/4W终端电阻。
看门狗溢出时间表如表1所列。系统方框图如图2所示。
表1 看门狗溢出时间表
7 6 5 定时值/ms
0 0 0 16
0 0 1 32
0 1 0 64
0 1 1 128
1 0 0 256
1 0 1 512
1 1 0 1024
1 1 1 2048
5 单片机软件设计说明及程序流程图
6 调试及运行情况
调试步骤如下。
◇ 硬件连接:将各芯片插在面包板上并用导线按原理图连接。
◇ 软件开发环境:Keil uVision2 for Windows。该软件的模拟调试器支持C语言及汇编语言源代码调试,其汇编程序支持宏汇编及模块化编程,使用方便。
◇ 首先在模拟调试器中调试各子模块,各子模块调试正常后再将各子模块及主模块全部汇编连接成目标文件,最后将目标代码下载到单片机中并连接智能仪表进行统调。
该系统软硬件已全部开发完成并投入使用,经过近半年的连续运行观察,运行可靠稳定,完全满足使用要求。
结束语
用单片机+智能仪表构成的温度远程显示系统总造价约人民币7000元(2块智能仪表+温度传感器约3500元,通信电缆约2000元,单片机装置及施工费用约1500元),与采用其它方案的系统比较,造价较低。其硬件及软件的设计、制作都较简单,有一定的电子及单片机知识便可完成。同时对该装置软件稍加修改即可与其它带有RS485通信端口的仪器仪表通信(如变频器、电路传感器等),实现远程测量、监视及控制。