引言
在工业控制中经常需要对某些温度进行巡检和控制,需要定时控制电机的起动和停止,需要根据料位计开关的状态控制多台卸料、输料电机按照设定顺序运转。在对温度巡检和控制时,要求当温度低于设定的温度下限时,加热系统开始工作,当温度超过设定温度上限时,加热系统停止工作。某台电机是启动还是停止不仅取决于定时时间、料位计开关状态, 还取决于其它电机的运行状态。
硬件设计
本系统以单片机为基础,将多路温度控制、电机定时起停和卸料、输料控制等几项功能合而为一。此外,本系统还具有以下功能:1、通过检测电机的接触器,在电机该运转而没有运转时进行故障报警。2、在热电阻开路时报警。3、能自动检测电机的通路,屏蔽掉没有接入的通路。4、通过键盘设置相应的参数并保存在FLASH存贮器中,这样即使在断电以后参数也不会丢失。5、通过大屏幕LCD显示温度、设定的参数及报警状态。6、具有RS-232和RS-485两种串行接口,可以通过上位机操作测控单元,显示结果,并可以实现多个单元通信。图1为系统结构框图。
考虑到本系统程序较大,需要的程序存贮器和内部RAM都较多,如果选用普通C51或C52系列的单片机,则需要外扩RAM和EEPROM,因此,本系统选用了Philips公司的P89c51RD+作为微处理器。P89c51RD+内部有1024B的RAM,64kB的FLASH存贮器,足以满足需要。但需要注意的是国内目前很多仿真器都不能仿真RAM大于256B和EEPEOM大于16kB的单片机,去年下半年Wave公司推出的E6000系统仿真器能解决这一问题。
图1 系统结构框图
图2 开关量的输入、输出
图3 信号调节与前置放大电路
图4 程序流程图
本系统共有79个开关信号,其中输入信号47个,输出信号32个,单片机可用的I/O口一般只有几个,必须扩展I/O口。输入的开关信号都是24V的直流信号。由于电机接触器的反馈输入信号有可能引入冲击,所以必须进行光电隔离,否则有可能损坏CPU系统。输出的电机或电铃控制信号都是220V的交流信号,用继电器输出,由于CPU的I/O口不能直接驱动继电器,所以必须进行驱动放大。另外,继电器控制线圈的两端必须反向并联一个二极管,以消除继电器触点断开时产生的电弧。
图2为本系统采用的开关量输入、输出电路图,共使用了5片8255以扩展I/O口,在电机的反馈输入端及料位计开关输入端进行了光电隔离,将24V的直流开关反馈信号转换成5V的TTL信号,同时将外部输入与系统隔开,对系统起保护作用。选用的TLP521-4光电隔离芯片含四个独立的光电隔离器。R1和R2选用电阻排,从而减小了电路空间。系统采用继电器输出,通过电机接触器控制电机或电铃的起停。
本系统采用Pt100热电阻作为温度传感器,但必须注意以下两点:1、温度接入点往往与控制系统有一定的距离,必须对导线电阻的影响进行补偿,否则会引起很大的误差,严重时甚至无法测试;2、电源波动的影响。因为系统电源一般有50mV的波动,这一波动范围与阻值变化引起的电压变化幅度相比不可忽视。
本系统温度传感器的信号调节与前置放大器电路如图3所示。图中R1、R2、R3为精密电阻,阻值为100W,Rt为热电阻Pt100,RL1、RL2、RL3表示导线电阻。R1、R2、R3和热电阻Pt100构成测量电桥,采用图中的三线制接线法,在往复导线长度等长的条件下可以对导线电阻获得较好的补偿。热电阻开路时,该电路的输出为+5V,通过测试电路输出是否为+5V,可以判断热电阻是否开路。
AD586为一精密稳压集成电路,其输出的5V直流精度达20ppm,从而降低了电源波动对输入信号的影响。VR1为调零电位器,VR2用来调整放大倍数。稳压管ZD1则用来防止过载。这样随温度而改变的铂电阻的阻值变化就转换成了0~5V电压变化。12路通道采用相同的结构,分别送入ADC0816进行A/D转换。
显示部分采用了T240128 (CFG)型液晶显示器,该显示器内置HD61830控制模块,提供了与CPU的接口。可以显示8行15列16×16点阵汉字。
设置参数的保存采用了24LC04存贮器,它是基于I2C总线的EEPROM器件,可通过软件模拟的方法对其进行读写操作,即使在断电的情况下,设置的参数也不会丢失。
此外,本系统采用了RS-232和RS-485两种串行通信接口,可以满足不同的应用场合。当传输距离较远时,采用RS-485接口,通过外接RS-485/232转换接口与上位机的RS-232串口相连;传输距离较近时,采用RS-232接口即可。RS-232接口还便于在没有RS-485/232转换接口的情况下对系统进行调试。
软件设计
本系统分温度巡检控制、定时电机控制、卸料输料电机控制、电机反馈检测报警、键盘参数设置和串行通信六个功能模块。其中键盘参数设置和串行通信采用中断方式,其余的功能模块都由定时器0来控制。
将定时器0设置成定时方式,每0.5s中断一次,每中断一次,变量timer1、timer2、timer3和timer4增加1。当timer1、timer2、timer3和timer4达到各自的规定值时,分别调用温度巡检控制、定时电机控制、顺序运行电机控制和电机反馈检测报警子程序。程序流程图如图4所示。
结语
本系统已经成功应用于电除尘低压供电控制系统中。其中温度巡检控制、定时控制和卸料、输料控制各部分功能独立,且各部分控制电机的路数可自动检测,可多可少,在很多场合可以取代工业PLC。