1总体设计
针对泵站的目标而设计的自动控制系统分为主泵站和次级泵站两个计算机系统。主泵站系统为有人值守,次级泵站系统为无人值守。次级泵站系统既要相对独立工作,又要将该泵站的工作信息传至主泵站计算机,在主泵站计算机控制下工作。
1.1主泵站计算机系统的任务和功能
系统应采集进水管的水压、电控阀门的开度、水池A的水位、出水压力等输入信号。系统输出控制变频器输出量(0?5伏)、电动阀门的控制量、两路变频器的切换等输出信号。系统提供液晶显示,作为人机交互的重要通道,显示文字、简单的图形、表格等,直观地反映主、次级泵站的计算机系统的工作状态;安装微型打印机作为主要的硬拷贝输出设备,用于打印各类工作历史记录;通过单片机的在线系统可编程接口(ISP)直接对电路板上的CPU进行编程,方便了系统的升级与调试;使用红外遥控器作为按键输入手段,避免无关人员的操作;配置不间断电源(UPS),为系统提供稳定的交流电。所有的设备都安装在19“标准机柜中,设备的排列按强电到弱电次序从下到上,分层、分块安放,使维护方便。系统具备远程通信功能,以便主、次系统协调工作;机柜使用强制通风以解决散热问题。
1.2无人值守的次级泵站计算机实现的任务和功能
系统输入水池B、C的水位信号;向水池C供水的水泵输出开关信号和主、次级泵站的计算机的通信信号。水池C水位检测的信号线从山顶通过架空线引入,要特别考虑系统的防雷问题。
1.3计算机的内嵌调试模块
主、次级泵站的计算机均采用自行设计的内嵌调试模块,开发人员通过上位机与主、次级计算机相连就可以调阅计算机中的存储器、端口的实时工作情况,鼠标点在存储器、端口的字节单元上,与原程序对应的变量名和注释均可显示,大大方便于对计算机系统的开发,调试者对现场的维护和PID自动控制参数的整定。
2计算机系统的硬件设计
计算机系统主要由以下模块组成:模数转换,数模转换,实时时钟,开关量输入,开关量输出,打印机接口,MODEM通讯接口,EEPROM,点阵图形式液晶显示模块,红外遥控键盘等。主泵站的计算机系统采用ATMEL公司的89S52作为系统的MCU,89S52支持在系统编程(ISP),使系统的调试、维护更方便;89S52增加了片内看门狗,使用户的应用系统更坚固;为了简化系统结构,提高系统的可靠性,主要使用I2C串行总线来扩展外围器件。次级泵站的计算机系统采用ATMEL公司的89S51作为系统的MCU.
2.1实时时钟PCF8563
PCF8563是I2C总线的,具有极低功耗的多功能时钟/日历芯片。在本系统中该芯片为供水工作记录、异常情况的报警处理提供时间参数。
2.2数据存储器(AT24C32,X5045)
主泵站计算机采用ATMEL公司的AT24C32作为数据存储器,AT24C32是I 2C串行总线接口的4K字节的EEPROM,用于存放水压、水位等系统工作的参数和工作进程纪录。
次级泵站计算机采用X5045.X5045是SPI总线接口的CMOS的4K位串行EEPROM.次级系统使用X5045保存工作设定参数并提供看门狗功能2.3电源
根据硬件设计的要求,计算机需要提供以下五种电源:
①系统电源:+5V;②水位开关模块电源:+9V,③传感器电源:+24V,④A/D转换器电源:+5V,⑤D/A转换器电源:+5V.其中传感器的+24V工作电源是通过DC——DC变换器MAX629升压芯片提供的。为防止外部干扰通过水位开关模块进入计算机系统,水位开关模块与主板利用变压器实现隔离。系统配备了一台300W的不间断电源(UPS),为系统提供稳定的交流电源,该交流电源同时为停电期间的报警电铃供电。
2.4模数转换(TCL549)
TCL549是美国德洲仪器公司生产的8位分辨率CMOS模数转换器,TCL549模数转换要完成水压力传感器、进水电控调节阀门开度的电位器、水位的浮球开关传送来的开关量信号也通过该模数转换器,变成数字信号传给CPU处理。
2.5数模转换(Max518)
Max518是I2C的双总线串行接口的8位电压输出型数模转换器,由两片DAC集成,具有两路输出。该芯片完成两路变频器控制。
2.6通讯方式
在远程通讯的接口形式的选择上,主要考虑通讯任务的非紧迫性、非实时性要求。通讯仅发生在:次级泵站计算机定时与主泵站计算机通讯,主泵站计算机可以此判定次级泵站计算机的工作状态;远程次级泵站的计算机系统根据任务需要触发通信(次级水池的水位低到一定水位时,要求主泵站向次级水池供水,次级水池的水位达到一定水位时停止供水,次级水池有异常情况报警),主泵站的计算机需要查询远程次级泵站的计算机系统所记录的两个水池的水位时,另外考虑线路租用的经济性,选用拨号MODEM通讯方式,而不使用专线MODEM或宽带网络,从维护方便考虑采用标准的外置MODEM.
2.7水位检测模块
水池水位的检测采用独立的模块实现,水位检测模块由CPU板提供+9V电源。每个模块可以接入4个浮球开关的水位信号,转换为4路经过光耦隔离的开关量信号,“0”即低电平表示到达该水位,“1”即高电平表示低于该水位。模块可以提供2组相同的水位指示灯插座,一组用于在室内显示水位情况,一组用于接至远程显示。
水池C的水位经过电线杆架空的信号线接入室内的次级泵站计算机,必须考虑系统的防雷击问题。信号线采用非屏蔽双绞线,将四对双绞线中每一根杂色线都并在一起作为屏蔽线接地,另外的四根纯色线作为四路的信号线。
电路采用放电气隙电路实现防雷击。水位检测模块通过独立的印刷电路板上形成微小的尖端气隙来实现气隙放电。当雷击冲击电压传来时,受到电感的阻挡,形成数百伏以上的高压,击穿气隙放电,将输入线上冲击脉冲导入大地,如所示。
电容C1旁路信号中的毛刺消除干扰;光电偶合器用于电路隔离;门电路7407用于信号整形并进一步保护系统。两年来的使用证明抗雷击的效果良好。
3计算机系统的软件设计
软件设计采取分层模块化,自顶向下的开发方式,该方式便于程序的开发、调试和移植。本系统软件分为三个层次:系统层,驱动程序层和应用任务层,其中,系统层负责系统的自检和初始化、提供线程运行时标、中断支持和系统级软件抗干扰措施,负责应用任务的调度和错误的处理,系统层主要由实时多任务操作系统构成;驱动程序层提供了面向芯片和外设的各种子程序,由多通道模数转换(TLC549,MAX4558)、红外遥控键盘、液晶显示模块(ACM12832)、实时时钟PCF8563、数据存储(X5045或AT24C32)、MODEM通讯接口(支持通用AT指令集)、I2C总线接口、PID控制器、开关量输入、开关量输出、微型打印机接口(MP-D16)的驱动程序构成;应用任务层实现了系统的各项具体功能,由以下模块组成:系统参数输入、系统标定与设置、打印任务、变频恒压供水PID控制计算、自动进水控制、自动供水控制、通信功能以及无人值守自动进水控制等。限于篇幅以下仅介绍软件系统中的开关量输入部分。
系统从水位开关检测模块取得开关量信号,系统对开关量的检测采取两种不同的方式。
3.1主泵站计算机开关量的输入形式
在主泵站计算机系统中由于A/D通道有剩余,而I/O口不足,所以设计时主泵站计算机将开关量视同模拟量,接入模数转换电路,通过模数转换,使用滑动平均法管理数据:
在单片机的存储器中开一段空间(其长度S= 2n)作为数据缓冲区,建立一个先进先出的FIFO队列,如3所示,用来存放采样的数据。
3先进先出的FIFO队列队列中的元素d1,d2,d 3……到ds.采样的新数据从队尾依次进入队列,与此同时旧数据从队头出队,这样始终保持队列中元素个数不变,以便对其进行运算。其优点在于:不必等到测量达到S个数据后才进行运算,每采样一个数据后就可对前面的S个数据进行计算,便于单片机编程,可用移位进行快速除法运算。得到开关量对应的FIFO队列中元素均值,保存在A/D缓冲区中。
开关量输入模块只需要从AD缓冲区中取出相应的字节进行判断,转换成逻辑值“0”或“1”。本系统采用如下规则:①AD值大于0FOH,转换为逻辑值“1”。
②AD值小于10H,转换为逻辑值“O”。
③AD值在10H-0F0H之间,视为不确定值,不予处理,提高了抗干扰能力。
3.2次级泵站计算机开关量的输入处理
次级泵站计算机系统功能相对简单,有较多的I/O端口,所以设计时次级泵站计算机将开关量直接接入CPU的通用I/O口,由I/O读取开关量。
本系统采用位单元FIFO队列存储结构,经过处理获得开关量数值。具体实现如下:①队列的初始化:在内存中为每个开关量建立一个8字节共8?8个位的先进先出缓冲区,读取开关量测量值,若测量值为1则将队列中的所有位全部置1,如所示,这时队列中所有位的和就是80H,若测量值为0则将队列中的所有位全部置0,队列中所有位的和是0H.
64位先进先出的FIFO队列②每隔1/16秒读取一次开关量信号获得逻辑值0或1.
③将该值通过Cy加到位的和单元S中,并且从FIFO队列进入。
④队列移出的位进入Cy,从位的和单元S中减掉。
⑤检查S内容,若S≥60H转换为开关量“1”,S≤20H转换为开关量“0”,当20H<S<60H时不进行转换,提高了抗干扰能力。
使用这种方法获得开关量数值,可有效地消除开关量传输信号线闯入的干扰信号和开关触点过渡时或水位开关老化引起的接触不良引起的的抖动,大大提高了系统输入接口的可靠性。
4结束
本远程多级联动加压泵站自动控制系统的设计是本着尽可能投入成本低廉的原则,用单片机和使用多任务的系统十分灵活地处理各类信息,实现各种功能,充分发挥了软件开发的优势。系统投入两年多的实际运行来看,该系统稳定可靠,完全达到设计的要求。作为易损件之一,采用模块化设计方案,而独立设计的带有避雷电路和采用光耦隔离措施的开关量检测模块,也经受了多次的雷击考验,由此可见避雷线路的设计还是十分成功的。