一种微机远距离多点测温系统的制作方法

文档序号:6136342阅读:278来源:国知局
专利名称:一种微机远距离多点测温系统的制作方法
技术领域
本发明主要用于为粮食安全储藏而进行的微机远距离多点测温。具体说,是一种微机远距离多点测温系统。
原有的微机远距离多点测温系统使用的温度传感器是热敏电阻,经多路转换、AD转换和单片机,把测量结果临时存储,再经串行接口远距离传至微机(PC机)。通过程序转换把测量结果存储。显示、打印。这是一种分布式数据采集系统,或称多处理机系统。热敏电阻是一种低阻抗非线性器件,虽然价格低廉,但其稳定性、可靠性、一致性和精度都很差,不能保证长期使用,且极易受工作电压波动、电磁干扰等随机因素影响。使系统精度差、稳定性差,极易损坏,造成报废。虽然传感器是低档次、低成本,但其由多路转换、AD转换、单片机和电源组成的“分机”成本较高,造成成本分配不合理。另外,该系统需要把220V市电引进仓内。给无人值守的粮仓造成火灾隐患。在已使用该系统的粮食保管部门,普遍反映不好。
本发明的目的在于在不大幅度提高总成本的前提下,采用先进的温度传感器,以提高系统的稳定性、可靠性、一致性和测量精度,并且满足粮食保管部门的特殊要求,适应粮仓的特殊环境,以达到长期可靠使用的目的。
本发明的目的可采用以下措施来实现它包括微机1、打印机2、AD转换卡3、第二并口卡4,主控制器5和分控制器及其传感器6;AD转换卡3、第二并口卡4插在微机的扩展槽内;分控制器及其传感器6安装在粮仓内;主控制器5最多可连接32个分控制器,主控制器5与分控制器6的最大距离可达2KM;第二并口的引出线经重新定义,从主控制器5转接至分控制器6,并从一个分控制器6向另一个分控制器6转接,用于控制传感器的多路转换;每个分控制器6最多可连接64个传感器;全系统最多可连2048个传感器;分控制器6的输出经主控制器5的电阻接地,AD转换卡3在电阻上端进行电压采样,转换成电压数字,再经程序转换成温度。
本发明中的主控制器5是由模块7、模块8、模块9构成;模块7是一电源转换装置,其输出供给分控制器6的Vdd;模块9把模块7的输出、第二并口卡4的第16,14,1,4,3,2引脚用7芯屏蔽线转接至分控制器6,最大距离≤2KM;引脚17在主控制器5的模块9内备用;模块8由32个固定电阻和32个精密微调电阻构成;把它们的电阻之和调至10KΩ,误差不超过±1Ω;模块8的输入来自32个分控制器6的输出;在32个电阻的上端连接AD转换卡3的32个通道;分控制器6的输出线也用屏蔽线;各分控制器6的输出可以根据远近合并成多芯屏蔽线进入主控制器5;所有屏蔽两端均应接地;模块7的地线也应与微机1的地线实行无阻抗连接;最远的分控制器6的地线与主控制器5的地线的直流阻抗不应大于10Ω。
本发明中的分控制器及其传感器6是由模块10、模块11、模块12构成;模块11由6组电压放大器构成;其输入与模块9的16,14,1,4,3,2引脚线相连,其输出分两组16,14,1引脚线对应的输出连接模块10的S’2,S’1,S’0;另一组4,3,2引脚线对应的输出连接模块12的S2,S1,S0;模块10由4051芯片构成;其输入连接模块12的8个输出,其输出按分控制器的编号连接模块8的对应电阻;模块12由8个4051芯片、8个4028芯片、8个HTS-2型温度传感器构成;8个温度传感器的电源端连接4028芯片的8个输出端,8个温度传感器的信号端连接4051芯片的8个输入端;4051芯片和4028芯片的3个控制端均连接模块11的S2,S1,S0。分控制器6的所有器件均使用主控制器5引来的电源。
本发明中第二并口卡4使用操作指令OUT(N),M和OUT(N+2),M;其中N是第二并口卡4的首地址,M是操作数;当M按照12,13,14,15,8,9,10,11的顺序变化时,OUT(N+2),M将按照附录A的表-2的规律,在16,14,1的引脚上产生7,6,5,4,3,2,1,0的输出;当M按照15,14,13,12,11,10,9,8的顺序变化时,OUT(N),M将按照附录A的表-1的规律,在4,3,2的引脚上产生7,6,5,4,3,2,1,0的输出;经模块11的反相放大,在模块11的输出端将分别产生两组控制序列0,1,2,3,4,5,6,7,用于分别控制模块10和模块12。
本发明的微机远距离多点测温系统的基本算法是
(1)重复测量,取平均值为最终结果;(2)每次测量之间,要有1mS的时间间隔;(3)每对传感器进行测量操作时,均应先进行一定数量的空测量,其测量结果弃之不用;(4)用计算方差的方法检验系统的稳定性;当方差≤1000时,测量的重复性可达±0.1℃之内;否则,应检查线路连接质量或传感器好坏;(5)基本算法程序在附录B中;本发明的微机远距离多点测温系统的系统误差的调整方法是(1)建立温度文件,如附录C;(2)把一个分控制器(6)的64个传感器放入具有相同温度的介质中;介质温度调至低温点附近;(3)用测试程序算法(附录D),使每个传感器低温点的电压数值逐步向全部传感器温度平均值的对应电压数值靠近;(4)用文字编辑程序修改温度文件中的每个传感器的温度项,使之与介质温度一致。;(5)把介质温度从接近低温点升致接近高温点,再进行(3)、(4);(6)在用户程序中使用已调好的温度文件,使用基本算法和直线两点式方程,就可换算出准确的多点温度。
本发明的优点是全系统最多可连2048个传感器;最大传输距离可达2KM;程序采用特殊算法;在30℃~+50℃范围内,可使每个传感器周围介质温度与微机的屏幕上的对应点温度的误差≤0.5℃,重复性≤0.1℃;市电不进粮仓;节能;不必考虑散热问题,就可对粮仓内电路实行全密封,以防止粮仓内有害气体腐蚀。
附图的图面说明如下

图1是全系统框图;图2是主控制器5的框图;图3是分控制器6的框图;图4是电压放大器模块11的电路图;图5是4051和4028芯片的管脚图;图6是模块10的电路图7是模块12的电路图;图8是模块8的电路图;图9是模块8的简化电路图;图10是本系统的简化系统的原理图;本发明以下将结合实施例(附图)作以详细的描述通用微机1可选用PC-486以上的任何一种。最小内存4MB,硬盘最小剩余空间20MB,VGA彩色显示。软件平台为DOS6.2以上和UCDOS5.0以上。
打印机2可选用市场上的任意一种。它与通用微机1的主板上的第一并口,按照标准方法相连。
AD转换卡3选用PS-2108型AD/DA卡。其主要技术参数如下▲AD部分转换位数8位;模入通道32路;模入范围0~+5V;转换时间(114μS;系统误差(0.4FSR;▲DA部分通道数; 4路;其余略;PS-2108卡插在通用微机1的主板上的EISA扩展槽内。通用微机1的机箱外露出一个37芯插座。用40芯扁平电缆把它引至主控制器5的模块8中。其中只连1~37芯,其余38~40芯空,连接方法一对一,最大长度≤3米。PS-2108卡的首地址用卡上的DIP开关设定。出厂时的地址为100H(十进制256)。
第二并口卡可选用任意一种IO卡,即PC-386以下微机常用的接口卡。IO卡通常有两个串行接口,一个并行接口,一个软驱接口,一个硬盘接口。它插在通用微机1的EISA扩展槽内。机箱外露出的25芯插座,是并口插座。PC-486以上微机的第一并口通常在主板上。微机在开机时可进入SETUP程序(POST程序)。利用这个程序可把原配置的一个并口扩充为两个并口。根据BIOS版本不同,第二并口的首地址可能是3BCH(十进制956),378H(十进制888),278H(十进制632)。请注意分清第一并口和第二并口,因为DOS的屏幕打印要求打印机连在第一并口上。
PS-2108卡上的4路DA、IO卡上的两个串口、软驱接口、硬盘接口为LQCK系统再扩充时备用。
本发明的微机远距离多点测温系统对第二并口的使用,并不采用标准并口的25芯引脚的定义。它重新定义了其中的16,14,1,4,3,2,17共七个引脚,并把它们用7芯屏蔽线引至主控制器5的模块9。7芯屏蔽线的最大长度≤3米。
16号引脚定义为(S’2);14号引脚定义为(S’1);1号引脚定义为(S’0);4号引脚定义为(S2);3号引脚定义为(S1);2号引脚定义为(S0);17号引脚备用;主控制器5分为模块7,模块8,模块9。
模块7是电源转换装置,可按220V市电输入,+17V输出,30W功率设计。+17V在主控制器5内部从模块7接至模块9的一个端子。模块7的地线必须与通用微机1的地线实行无阻抗连接(≤4Ω)。
模块9由端子构成。最少有9个端子。其中一个端子接第二并口引来的7芯线的屏蔽、接模块7的地线,屏蔽的另一端接通用微机1的地线。7个端子接第二并口的7芯。第九个端子接模块7引来的+17V电源。
模块9在向分控制器6引出时,也采用7芯屏蔽线。除第二并口的17引脚留在主控制器内备用外,其余已经定义的第二并口的6芯及+17V电源组成7芯,屏蔽接地。
分控制器6由“前置4051”模块10、“电压放大器”模块11和“4051单元组”模块12构成。
“电压放大器”模块11的电路图见图4。其中晶体管Q1,Q2,...,Q12采用小功率管9014;R1,R3,R5,R7,R9,R11为5KΩ;R2,R4,R6,R8,R10,R12为4.7MΩ。从主控制器5引出的7芯屏蔽线分别接模块11的输入端Vdd,(S’2),(S’1),(S’0),(S2),(S1),(S0)。其6路输出端分两组其中S’2,S’1,S’0接“前置4051”模块10的S’2,S’1,S’0;S2,S1,S0接“4051单元组”的S2,S1,S0。
“前置4051”模块10由一个4051芯片构成。其8路输入X0,X1,X2,X3,X4,X5,X6,X7分别接8个“4051单元组”模块12的输出X。模块10的输出X远距离(≤2KM)接主控制器5的模块8中的某一通道Ti(i=1,2,...,32)。这里假定分控制器6的编号为T-i(i=1,2,...,32)。
模块12由一个4051芯片、一个4028芯片、8个DIP型开关,8个HTS-2型温度传感器构成。
HTS-2型传感器的技术参数如下工作温度范围-55℃~+150℃;工作电压范围+3V~+30V;输出电流294.1μA(介质温度为25℃时);温度灵敏度 1μA/℃;线性度 优于0.5%;动态阻抗≥10MΩ;最大传输距离≤2KM;模块11的数出端S2,S1,S0接至4051芯片和4028芯片的S2,S1,S0管脚。4028芯片的输出端X0,X1,X2,X3,X4,X5,X6,X7分别接至传感器C0,C1,C2,C3,C4,C5,C6,C7的电源端。传感器的信号端接至4051芯片的输入端X0,X1,X2,X3,X4,X5,X6,X7。DIP型开关SW0,SW1,SW2,SW3,SW4,SW5,SW6,SW7也分别接至4051芯片的输入端X0,X1,X2,X3,X4,X5,X6,X7。另一端均接地。4051芯片的输出端X按“4051单元组”的编号分别接至模块10的输入端X0,X1,X2,X3,X4,X5,X6,X7。
模块10的输出端X按分控制器6的编号6-i(i=1,2,...,32)分别接至主控制器5的模块8的T-i(i=1,2,...,32)。
模块8的电路图见图8和图9。其中Ri(i=1,2,...,32)的阻值为9.1KΩ,ri(i=1,2,...,32)是0~2KΩ的精密微调电阻,SWi(i=1,2,...,32)是DIP型开关。分控制器6-i(i=1,2,...,32)的输出端X经过不大于2KM的距离接至模块8的Ti(i=1,2,...,32)。
通过调整ri(i=1,2,...,32),使Ri和ri(i=1,2,...,32)的阻值之和等于10KΩ,误差不大于±1Ω。DIP型开关SWi(i=1,2,...,32)的接法见图9。
系统所有的地线之间的最大直流阻抗必须≤10Ω,96×φ0.15的铜网屏蔽在不大于2KM的长度内,可保证这一点。
从主控制器5向分控制器6引出的7芯控制线,在连接时应先接最近的分控制器6,再从这个分控制器向别的分控制器转接,以节约线材。
从分控制器6向主控制器5连接的模拟信号线也必须加屏蔽。但可根据分控制器所在的相对地理位置进行转接合并,使进入主控制器的模拟信号线为多芯屏蔽线,以节约成本。
本发明的微机远距离多点测温系统最多可支持32个分控制器6,每个分控制器6最多可支持64个HTS-2型温度传感器。这样,本发明的微机远距离多点测温系统最多可支持2048个HTS-2型温度传感器。
本发明的微机远距离多点测温系统的工作原理如下本发明的微机远距离多点测温系统是集中式数据采集系统的一种。
如果按照图10接线,把+17V电压送到HTS-2型传感器的电源端,传感器随周围介质温度变化,产生线性电流信号,经不大于2KM的线路传输和10KΩ电阻接地,形成回路。采样电压送至AD卡的第i路通道(i=1,2,...,32),交微机1处理,就组成了一个较小的微机远距离多点测温系统。这个小系统最多可支持32个传感器。
因HTS-2型传感器要求的工作电压为+3V~+30V,Vdd在+11V~+17V变化时,不会影响测量结果。又因HTS-2型传感器的动态阻抗≥10MΩ,最多不超过2KM的传输线的动态阻抗不超过传感器阻抗的万分之一,也不会影响测量结果。
温度的电流灵敏度1μA/℃;
温度的电压灵敏度10mV/℃;温度的电压数值灵敏度0.5/℃;根据粮仓保管的要求和实际情况,介质(粮食)温度范围为-30℃~+50℃。因此电流信号的范围为239.1μA~319.1μA;采样电压的范围为2.391V~3.191V;电压数值的范围为121.941~162.741;在此范围外的数值均属不正常。
现在,把系统扩充至本发明的微机远距离多点测温系统本身。即把图10中的HTS-2型传感器替换成分控制器6,并加上控制线(S’2),(S’1),(S’0),(S2),(S1),(S0)等。
信号组(S’2),(S’1),(S’0)和信号组(S2),(S1),(S0)是受程序控制的。其操作指令见附录A的表-1和表-2。
根据表-1的真值表,按以下顺序使用操作指令OUT(N),15OUT(N),14OUT(N),13OUT(N),12OUT(N),11OUT(N),10OUT(N),9OUT(N),8时,引脚4,3,2组成的控制序列就会顺序产生7,6,5,4,3,2,1,0的数字控制信号。
根据表-2的真值表,按以下顺序使用操作指令OUT(N+2),12OUT(N+2),13OUT(N+2),14OUT(N+2),15OUT(N+2),8
OUT(N+2),9OUT(N+2),10OUT(N+2),11时,引脚16,14,1的控制序列就会顺序产生7,6,5,4,3,2,1,0的数字控制信号。
这里,N是第二并口的首地址。根据真值表,两组操作指令是互相独立的,互不影响。
亦即,信号组(S2),(S1),(S0)和信号组(S’2),(S’1),(S’0)会分别产生控制序列7,6,5,4,3,2,1,0。模块11的6组电压放大器的输入和输出是反相的,输出信号组S2,S1,S0和输出信号组S’2,S’1,S’0就分别产生控制序列0,1,2,3,4,5,6,7。
第二并口是正逻辑信号,高电平为+5V,低电平为0V。在经过长达2KM的距离后,高电平可能衰减至+3V以下。模块11的电压放大器可把高电平提高至+6V~+10V。低电平维持不变。在Vdd工作在+11V~+17V之间时,所有芯片均可正常工作。
当模块12的信号组S2,S1,S0的控制信号为i(i=0,1,2,...,7)时,4028芯片的输出Xi被选通,得到Vdd电压,其余Xi(j≠i)均得到0V电压。传感器Ci(i=0,1,2,...,7)得到工作电压,其余Cj(j≠i)只得到0V电压。同时,4051芯片的输入X1(i=0,1,2,...,7)与输出X接通,其余Xi(j≠i)均未被接通。
当模块10的信号组(S’2),(S’1),(S’0)的控制信号为i(i=0,1,2,...,7)时,编号为12-i(i=0,1,2,...,7)的模块12的输出X与“前置4051”模块10的输出X接通,经传输线、Ri、ri(i=0,1,2,...,7)接地,形成回路。于是,传感器Ci(i=0,1,2,...,7)的介质温度的电流信号,在Ti处被采样。其余传感器Cj(j≠i)均在模块12-j(j≠i)的输出端被阻断。
这样,分控制器的64个传感器均能被轮询。
当程序控制选通通道号k(k=1,2,...,32)时,32个分控制器6-k(k=1,2,...,32)均有机会被轮询。亦即,2048个传感器均有机会被轮询。
模块8的DIP型开关SWk(k=1,2,...,32)的作用是当Tk号通道未连接分控制器时,闭合SWk(K=1,2,...,32),使k号通道得到0V电压。即使k号通道接有分控制器,它也将得到0V电压,只是温度信号不经过10KΩ电阻。
模块10的DIP型开关SWi(i=0,1,2,...,7)的作用是当编号为i(i=0,1,2,...,7)的模块12未接入电路时,闭合SWi(i=0,1,2,...,7),可以使“前置4051”的输入端Xi(i=0,1,2,...,7)得到0V电压,不被悬浮,从而可以长期可靠工作。
模块12的DIP型开关SWi(i=0,1,2,...,7)的作用是当传感器Ci(i=0,1,2,...,7)未接入电路时,闭合SWi(i=0,1,2,...,7),可以使“4051单元组”的输入端Xi(i=0,1,2,...,7)得到0V电压,不被悬浮,从而可以长期可靠工作。
本发明的微机远距离多点测温系统是一个电子测量温度的产品,其测量的准确性是产品成败的关键。本发明的微机远距离多点测温系统又是一个受微机程序控制的测温产品,其误差的控制在很大程度上受程序算法的制约。本发明的本发明的微机远距离多点测温系统的程序基本算法见附录B。算法程序由C语言写成。其要点是1、重复测量,取平均值为最终测量结果。综合测量速度和精度两方面因素,以重复测量80~100次为好。
2、每次重复测量之间,要有1mS的时间间隔。
3、在测量某一传感器时,应先进行20次左右的“空测量”,把测量结果弃之不用。
4.应计算方差。方差应≤1000。否则,应检查线路连接质量和传感器好坏。
在把电压数值转换成温度值时,采用两点式直线方程。给定低温点(例如Y1=15℃)和高温点(例如Y2=35℃),理论计算其对应的电压数值分别为X1=147.5和X2=152.5。当实测某传感器的电压数值为X时,其对应的温度Y,可按下列公式计算y=(x-x1)*(y2-y1)/(x2-x1)+y1;但是,无论是传感器还是电路,均可能产生不一致性。也就是说,理论计算的X1和X2,对于多个传感器及其线路并不一定都是准确的,甚至可以说,大部份是不准确的。也就是说,虽然传感器的线性和稳定性是好的,但其斜率和截距却是千差万别的。如果都按上述公式计算,会产生相当大的系统误差。针对每个具体的传感器及其对应电路,找出其准确的斜率和截距,才能调准温度。
本发明的微机远距离多点测温系统,采用计算机辅助测试(CAT)技术,用特定的程序算法,找出每一路传感器的斜率和截距。具体做法如下准备一个最少能盛60公升水的容器,内装2KW防水电热器。其保温性能应达到在-30℃~+50℃范围内,10分钟内温度增减不超过1℃。再准备一个能制冰的设备。使盛水容器内随时能放冰水混合物。一个0.1℃刻度的水银温度计是必不可少的。
把连入系统的64个传感器放入水中(传感器及其引线必须防水放潮)。测出水的准确温度。如果温度较高,应加冰,使温度在10℃左右。再准确测量水温,记为Tmin℃。
在微机磁盘内建立一个温度文件(记为WDWJ)。文件内应有以下信息▲传感器所在通道号;▲传感器所在“4051单元组”编号;▲传感器本身编号;▲Y1和X1,X1为初始值;▲Y2和X2,X2为初始值;;▲每个传感器的信息占一行;WDWJ的例子见附录C。测试程序的基本算法(C语言编程)见附录D。
算法要点如下1、键盘输入水银温度计读数(也可省略);2、用基本算法(附录B)实测出传感器的电压数值Xi(i=0,1,2,...,63);3、用两点式直线方程计算温度Yi(i=0,1,2,...,63);
4、从64个传感器中挑选出一个最大者Ymax和一个最小者Ymin,并记录所在编号Kmax和Kmin;5、计算64个传感器的平均温度
6、计算(
),记为Cmin;7、计算(
)和(
),分别记为Dmax和Dmin;8.程序自动修改WDWJ中的X1的当前值,每次只修改编号为Kmax和Kmin的传感器的X1的当前值,替换公式为X1′=X1+0.25*Dmax;(Kmax项);X1′=X1-0.25*Dmin;(Kmin项);9、回到2,直到最大值和最小值之差小于0.5;10、停止程序运行,进入文字编辑程序,对WDWJ进行编辑。把每个传感器的15℃数据项全部改为Y1-Cmin的值;用电加热把水温提高到40℃左右,记下准确水温Tmax。用上述算法修改X2。
至此,每个传感器均经过“调姿”,WDWJ即可在用户程序中使用。
功率估算每个传感器耗电0.3mA×V=5.1mW。未被选通的传感器,理论上不耗电,控制信号耗电很小。所以,每个分控制器及所属传感器耗电≤1W。全系统耗电≤32W。
频率估算在线路上,温度信号是直流信号,不产生频率。控制信号因每次测量间隔要有1mS时间,所以,频率≤1KHZ。微机的主频对线路频率影响很小。
专用于粮堆测温时,还应注意以下事项粮堆经常进行磷化铝熏蒸,产生强烈腐蚀性气体,应对仓内电路进行全密封传感器应做成测温电缆形式,测温电缆与延长线的接头应密封,延长线进入分控制器处应密封,分控制器应全密封。
附录A表-1并口指令OUT(N),M真值表
注N为并口首地址表-2 并口指令OUT(N+2),M真值表
注N为并口首地址附录B 程序基本算法<pre listing-type="program-listing"><![CDATA[void main(){ intbingkou2={388};/*并口二的首地址*/ intic,k,m,n; intpport1[8]={15,14,13,12,11,10,9,8}; intpport2[8]={12,13,14,15,8,9,10,11}; float fb,fm,fy1[64]={0},fs1[64]={0}; float fb1[100]={0};outportb(256,0);/*选择AD卡的0#通道,首地址是256*/delay(4),for(k=0;k<=7;k++){outportb(bingkou2+2,pport2[k]);delay(1);for(m=0;m<=7;m++){outportb(bingkou2,pport1[m]);for(n=0;n<=19;n++){ /*扔掉前20次测量结果*/ic=inportb(256);/*启动AD转换*/delay(1);ic=inportb(257);/*读取AD转换数据*/ }; fb=0; fm=0, for(n=0;n<=99;n++){ ic=inportb(256);go ic=inportb(258); delay(1); if(ic=0)goto go, ic=inportb(257); fb1[n]=(float)ic; fb=fb+fb1[n]; fm=fm+fb1[n]*fb1[n]; }; fb=fb/100; fy1[k*8+m]=fb,/*电压数字*/ fs1[k*8+m]=fm-100*fb*fb; /*方差*/}; };}]]></pre>
附录C 温度文件WDWJ0 0 0 15.0 147.5 35.0 152.50 0 1 15.0 147.5 35.0 152.50 0 2 15.0 147.5 35.0 152.50 0 3 15.0 147.5 35.0 152.50 0 4 15.0 147.5 35.0 152.50 0 5 15.0 147.5 35.0 152.50 0 6 15.0 147.5 36.0 152.50 0 7 15.0 147.5 35.0 152.50 1 0 15.0 147.5 35.0 152.50 1 1 15.0 147.5 35.0 152.50 1 2 15.0 147.5 35 0 152.50 1 3 15.0 147.5 35.0 152.50 1 4 15.0 147.5 35.0 152.50 1 5 15.0 147.5 35.0 152.50 1 6 15.0 147.5 35.0 152.50 1 7 15.0 147.5 35.0 152.50 2 0 15.0 147.5 35.0 152.50 2 1 15.0 147.5 35.0 152.50 2 2 15.0 147.5 35.0 152.50 2 3 15.0 147.5 35.0 152.50 2 4 15.0 147.5 35.0 152.50 2 5 15.0 147.5 35.0 152.50 2 6 15.0 147.5 35.0 152.50 2 7 15.0 147.5 35.0 152.50 3 0 15.0 147.5 35.0 152.50 3 1 15.0 147.5 35.0 152.50 3 2 15.0 147.5 35.0 152.50 3 3 15.0 147.5 35.0 152.50 3 4 15.0 147.5 35.0 152.50 3 5 15.0 147.5 35.0 152.50 3 6 15.0 147.5 35.0 152 50 3 7 15.0 147.5 35.0 152.50 4 0 15.0 147.5 35.0 152.50 4 1 15.0 147.5 35.0 152.50 4 2 15.0 147.5 35.0 152.50 4 3 15.0 147.5 35.0 152.50 4 4 15.0 147.5 35.0 152.50 4 5 15.0 147.5 35.0 152.50 4 6 15.0 147.5 35.0 152.50 4 7 15.0 147.5 35.0 152.50 5 0 15.0 147.5 35.0 152.50 5 1 15.0 147.5 35.0 152.50 5 2 15.0 147.5 35.0 152.50 5 3 15.0 147.5 35.0 152.50 5 4 15.0 147.5 35.0 152.50 5 5 15.0 147.5 35 0 152.50 5 6 15.0 147.5 35.0 152.50 5 7 15.0 147.5 35.0 152.50 6 0 15.0 147.5 35.0 152.50 6 1 15.0 147.5 35.0 152.50 6 2 15.0 147.5 35.0 152.50 6 3 15.0 147.5 35.0 152 50 6 4 15.0 147.5 35.0 152.50 6 5 15.0 147.5 35.0 152.50 6 6 15.0 147.5 35.0 152.50 6 7 15.0 147.5 35.0 152.50 7 0 15.0 147.5 35.0 152.50 7 1 15.0 147.5 35.0 152.50 7 2 15.0 147.5 35.0 152.50 7 3 15.0 147.5 35.0 147.50 7 4 15.0 147.5 35.0 152.50 7 5 15.0 147.5 35.0 152.50 7 6 15.0 147.5 35.0 152.50 7 7 15.0 147.5 35.0 152.5
附录D 测试程序算法<pre listing-type="program-listing"><![CDATA[struct wdwj{inttd,bb1,bh2,float wendu1[2];float wendu2[2]; }wdwj; struct wdwj far*pf0[64]; int bingkou2={888}; /*并口二的首地址*/ int adk={256}; /*AD卡的首地址*/ int pport1[8]={15,14,13,12,11,10,9,9}, int pport2[8]={12,13,14,15,8,9 10,11}, float fy[64],fy1[64]={0},fs[64]={0}; voidteat(); /**************min program********************/void main(){ FILE*fp; charche[8]; int ia1,ia2,ia3,kmax, kmin; float fa1,fa2,fa3,fa4,fb,fc,fd,ff; float fdmax,fdmin,fmax,fmin; pf0
=(struct wdwj*)malloc(sizeof(struct wdwj);, if(!pf0
){ exit(1); }; for(i=0;i<=63;i++){ pf0[i+1]=pf0[i]+1, }; strcpy(che,"wdwj"); if(!(fp=fopen(che,"r"))){exit(1); }; for(i=0;i<=63;i++){ fscanf(fp,"%i %i %i″,&amp;a1,&amp;ia2,&amp;ia3); fscanf(fp,"%f %f %f %f",&amp;fa1,&amp;fa2,&amp;fa3,&amp;fa4); (*pf0[i]),td=ia1; (*pf0[i]),bb1=ia2; (*pf0[i]},bb2=ia3; (*pf0[i]),wendu1
=fa1;(*pf0[i]),wendu1[1]=fa2 (*pf0[i]),wendu2
=fa3; (*pf0[i]),wendu2[1]=fa4; };if(fclose(fp)){exit(1); };yn: test(); fb=0; for(i=0;i<=63;i++){ fa1=(*pf0[i]),wcndu1
; fa2=(*pf0[i]),wendu1[1]; fa3=(*pf0[i]),wendu2
; fa4=(*pf0[i]),wendu2[1]; ff=py1[i]); fy[i]=(ff-fa2)*(fa3-fa1)/(fa4-fa2)+fa1;/*温度值*/ fb=fb+fy[i]; }; fb=fb/64; /*平均值*/ kmax=0; kmin=0; fmax=fy
; fmin=fy
; for(i=0;i<=63;i++){ if(fy[i]>fmax){fmax=fy[i];kmax=i; }; if(fy[i]<fmin){fmin=fy[i];kmin=i; }; }; fdmax=fmax-fb; /*替换*/ fdmin=fb-fmin; fc=(*pf0[kmax]),wendu1[1]; fc=fc+0.25*fdmax; (*pf0[kmax]),wendu1[1]=fc; fd=(*pf0[kmin]),wendu1[1]; fd=fd-0.25*fdmin;(*pf0[kmin])wendu1[1]=fd;if((fdmax-fdmin)>0.5){goto yn;};} /**************end main**********************/void test(){ intic,k,m,n; flout fb,fm; float fb1[100]={0};outportb(adk,0); /*选择AD卡的0#通道*/delay(4);for(k=0;k<=7;k++){ ontportb(bingkou2+2,pport2[k]); delay(1); for(m=0;m<=7;m++){ outportb(bingkou2,pport1[m]); for(n=0;n<=19;n++){ /*扔掉前20次测量结果*/ ic=inportb(adk); /*启动AD转换*/ delay(1); ic=inportb(adk+1); /*读取AD转换数据*/ }; fb=0; fm=0; for(n=0;n\=99;n++){ ic=inportb(adk);go; ic=inportb(adk+2); dclay(1); if(ic==0)goto go; ic=inportb(adk+1); fb1[n]=(float)ic; fb=fb+fb1[n]; fm=fm+fb1[n]*fb1[n]; };fb=fb/100;fy1[k*8+m]=fb; /*电压数字*/fs1[k*8+m]=fm-100*fb*fb;/*方差*/ };};}]]></pre>
权利要求
1.一种微机远距离多点测温系统,其特征在于它包括微机(1)、打印机(2)、AD转换卡(3)、第二并口卡(4)、主控制器(5)和分控制器及其传感器(6);AD转换卡(3)、第二并口卡(4)插在微机的扩展槽内;分控制器及其传感器(6)安装在粮仓内;主控制器(5)最多可连接32个分控制器,主控制器(5)与分控制器(6)的最大距离可达2KM;第二并口的引出线经重新定义,从主控制器(5)转接至分控制器(6),并从一个分控制器(6)向另一个分控制器(6)转接,用于控制传感器的多路转换;每个分控制器(6)最多可连接64个传感器;全系统最多可连2048个传感器;分控制器(6)的输出经主控制器(5)的电阻接地,AD转换卡(3)在电阻上端进行电压采样,转换成电压数字,再经程序转换成温度。
2.根据权利要求1所述的微机远距离多点测温系统,其特征在于主空制器(5)是由模块(7)、模块(8)、模块(9)构成;模块(7)是一电源转换装置,其输出供给分控制器(6)的Vdd;模块(9)把模块(7)的输出、第二并口卡(4)的第16,14,1,4,3,2引脚用7芯屏蔽线转接至分控制器(6),最大距离≤2KM;引脚17在主控制器(5)的模块(9)内备用;模块(8)由32个固定电阻和32个精密微调电阻构成;把它们的电阻之和调至10KΩ,误差不超过±1Ω;模块(8)的输入来自32个分控制器(6)的输出;在32个电阻的上端连接AD转换卡(3)的32个通道;分控制器(6)的输出线也用屏蔽线;各分控制器(6)的输出可以根据远近合并成多芯屏蔽线进入主控制器(5);所有屏蔽两端均应接地;模块(7)的地线也应与微机(1)的地线实行无阻抗连接;最远的分控制器(6)的地线与主控制器(5)的地线的直流阻抗不应大于10Ω。
3.根据权利要求1所述的微机远距离多点测温系统,其特征在于分控制器(6)是由模块(10)、模块(11)、模块(12)构成;模块(11)由6组电压放大器构成;其输入与模块(9)的16,14,1,4,3,2引脚线相连,其输出分两组16,14,1引脚线对应的输出连接模块(10)的S’2,S’1,S’0;另一组4,3,2引脚线对应的输出连接模块(12)的S2,S1,S0;模块(10)由4051芯片构成;其输入连接模块(12)的8个输出,其输出按分控制器的编号连接模块(8)的对应电阻;模块(12)由8个4051芯片、8个4028芯片、8个HTS-2型温度传感器构成;8个温度传感器的电源端连接4028芯片的8个输出端,8个温度传感器的信号端连接4051芯片的8个输入端;4051芯片和4028芯片的3个控制端均连接模块(11)的S2,S1,S0。分控制器(6)的所有器件均使用主控制器(5)引来的电源。
4.根据权利要求1所述的微机远距离多点测温系统,其特征在于第二并口卡(4)使用的操作指令为OUT(N),M和OUT(N+2),M;其中N是第二并口卡(4)的首地址,M是操作数;当M按照12,13,14,15,8,9,10,11的顺序变化时,OUT(N+2),M将按照附录A的表-2的规律,在16,14,1的引脚上产生7,6,5,4,3,2,1,0的输出;当M按照15,14,13,12,11,10,9,8的顺序变化时,OUT(N),M将按照附录A的表-1的规律,在4,3,2的引脚上产生7,6,5,4,3,2,1,0的输出;经模块(11)的反相放大,在模块(11)的输出端将分别产生两组控制序列0,1,2,3,4,5,6,7,用于分别控制模块(10)和模块(12)。
5.根据权利要求1所述的微机远距离多点测温系统,其特征在于基本算法是(1)重复测量,取平均值为最终结果;(2)每次测量之间,要有1mS的时间间隔;(3)每对传感器进行测量操作时,均应先进行一定数量的空测量,其测量结果弃之不用;(4)用计算方差的方法检验系统的稳定性;当方差≤1000时,测量的重复性可达±0.1℃之内;否则,应检查线路连接质量或传感器好坏;(5)基本算法程序在附录B中;
6.根据权利要求1所述的微机远距离多点测温系统,其特征在于系统误差的调整方法如下(1)建立温度文件,如附录C;(2)把一个分控制器(6)的64个传感器放入具有相同温度的介质中;介质温度调至低温点附近;(3)用测试程序算法(附录D),使每个传感器低温点的电压数值逐步向全部传感器温度平均值的对应电压数值靠近;(4)用文字编辑程序修改温度文件中的每个传感器的温度项,使之与介质温度一致;(5)把介质温度从接近低温点升致接近高温点,再进行(3)、(4);(6)在用户程序中使用已调好的温度文件,使用基本算法和直线两点式方程,就可换算出准确的多点温度。
全文摘要
一种微机远距离多点测温系统,它包括微机1、打印机2、AD转换卡3、第二并口卡4、主控制器5和分控制器及其传感器6;主控制器5最多可连32个分控制器6,每个分控制器6最多可连64个传感器;全系统最多可连2048个传感器;最大传输距离可达2KM;程序采用特殊算法。其优点是在-30℃~+50℃范围内,可使每个传感器周围介质温度与微机1的屏幕上的对应点温度的误差≤0.5℃,重复性≤0.1℃;市电不进粮仓;节能;不必考虑散热问题,就可对粮仓内电路实行全密封,以防止粮仓内有害气体腐蚀。
文档编号G01K3/00GK1239222SQ98113599
公开日1999年12月22日 申请日期1998年6月12日 优先权日1998年6月12日
发明者戴怀来 申请人:戴怀来
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1