0、引言
随着电子技术的发展,可编程序控制器(PLC)已经由原来简单的逻辑量控制,逐步具有了计算机控制系统的功能。在现代工业控制中,PLC占有了很重要的地位,它可以和计算机一起组成控制功能完善的控制系统。在许多行业的工业控制系统中,温度控制都是要解决的问题之一。如塑料挤出机大都采用简单的温控仪表和温控电路进行控制,存在控制精度低、超调量大等缺点,很难生产出高质量的塑料制品。在一些热处理行业都存在类似的问题。为此,设计了较为通用的温度控制系统,具体系统参数或部分器件可根据各行业的要求不同来进行调整。系统采用罗克韦尔SLC500系列PLC,通过PLC串口通信与计算机相连接,界面友好、运行稳定。
1、系统构成
基于PLC的温度控制系统一般有两种设计方案,一种是PLC扩展专用热电阻或热电偶温度模块构成;另一种是PLC扩展通用A/D转换模块来构成。
1.1扩展热电阻/热电偶模块
在SLC500控制器扩展模块中,有集温度采集和数据处理于一身的专用智能温度模块——热电阻/电阻信号输入模块(1746-NR4)。在此模块中温度模拟量产生对应的16位A/D数字值,其对热电阻变送的温度信号的分辨率约为1/8度,控制器在数值处理中可以直接使用模块的转换值,无需在硬件级电路上作其他处理。热电阻温度模块的使用十分方便,只需要将热电阻接到模块的接线端子上,不需要任何外部变送器或外围电路,温度信号由热电阻采集,变换为电信号后,直接送人温度模块中。热电偶/毫伏输入模块(1746-NT4)的功能与热电阻/电阻信号输入模块(1746-NR4)类似。系统如图1所示。
图1扩展温度模块的温控系统
1.2扩展通用A/D模块
在PLC温度控制系统中,可以用通用模拟量输入输出混合模块构成温度采集和处理系统。通用A/D转换模块不具有温度数据处理功能,因此温度传感器采集到的温度信号要经过外围电路的转换、放大、滤波、冷端补偿和线性化处理后,才能被A/D转换器识别并转换为相应的数字信号。SLC500系列PLC常用的模拟量输入输出混合模块有——2路差分输入/2路电压输出模块(1746-NIO4V),其A/D转换为16位。由A/D转换模块构建的温控系统不但需要外加外围电路,而且其软件和硬件的设计也比较复杂。系统如图2所示。
图2通用A/D转换模块温控系统
2、输入输出控制
比较而言用温度模块1746-NR4构建的PLC温控系统具有较好的控制效果。SLC500控制器的输入通道中一个热电阻模块最多可以接4个温度热电阻温度传感器。输出通道为模拟量输出模块(1746NIO4V),其输出信号是电压信号,可以通过电压调整器控制电源的开度(即一周期内的导通比率),从而控制电源的输出功率。
在被控对象要求较高的控温精度时,SLC500控制器可以采用PLC自身具有的PID指令进行PID控制算法的研究。SLC500系列PLC的PID指令使用下列算法:
输出=Kc[(E)+1/Ti∫(E)dt+Td•D(PV)/Dt]+bias
程序设计时,输入PID指令后,要输入控制块,过程变量和控制变量的地址。对于SLC500PID指令,过程变量(PV)和控制变量(CV)两者的量度范围为0到16383。在使用工程单位输入时,必须首先把用户的模拟量范围整定在0-16383数字量度范围之内,为了实现这个目的,需要在PID指令之前使用数值整定指令(SCP指令)进行整定。整定原理如图3。
图3数值整定原理
整定了PID指令的模拟量I/O范围,用户就能输入适用的最小和最大的工程单位。过程变量,偏差,设定点和死区将在PID数据监视屏上以工程单位显示。图4为PID指令的设置界面,表1为PID指令各参数的说明。
图4PID模块在线参数设定与标志位
表1PID模块参数说明
一般温控系统的控制算法可以采用分段式PID控制,即在系统工作的大多数时间内,为PID控制,其参数由10%电源开度下的温度飞升曲线测得。在温度响应曲线的由初态向设定点的上升段过程中,大致采用三段控制。首先置电源为满开度,以最大的功输出克服热惯性;接下来转入PID控制;接近设定点时置电源开度为0,提供一个保温阶段,以适应温度的滞后温升。基于以上要求,PID指令各参数可设置如表2所示。
表2PID模块参数设定
温控系统中热电阻模拟量输入模块的电压信号范围一般是0~4124,SCP指令把它整定为0~16383的工程单位,将其值放入PV(过程变量)的内存地址N7∶38中,把控制输出值放入N7∶39当中。最后用MOV指令把N7∶39中的过程变量传递到1746NIO4V模拟量输出模块中。控制效果如下:(1)SP-PV≥50时,输出值为最大值32767,使电压调节器开度最大,即给加热器最大电压供电,使被测对象温度快速上升。(2)SP-PV>-30和SP-PV<50时,输出为PID控制输出,此范围为PID参数调节的范围。(3)SP-PV<-30时,输出值为最小值0,电压调节器开度为零,即停止加热。
3、显示扩展
PLC控制系统显示界面比较单调,一般是通过观察控制柜上的指示灯或PLC的LED灯来了解控制器状态,但对于温控系统这样的显示是不够的,需要采用数码管显示或PC显示。
采用数码管显示时,可以选用ZLG7289A芯片,它与控制器采用3线串行接口,只需要占用SLC500的3个输出点,可以驱动8个LED数码显示管,同过级联可以扩展数码显示管的数量,实现多段实时温度显示。SLC500与ZLG7289A的连接如图5所示。
图5ZLG7289A与SLC500及显示器的接口
图5中CS为片选输入端,此脚为低电平时,可向芯片发送指令;CLK是时钟输入端;DATA是串行数据输入端,串行数据在时钟CLK的上升沿有效。8个段驱动信号SEG接每个显示器的段,8个位驱动信号DIG0~DIG7分别接显示器的共阴极公共地。
SLC500有RS232通信口,可以通过专用电缆与PC机相连。通过Rsview32软件的组态,PC机可以动态显示PLC传送的温度采集数据,还可以通过联网对多台PLC进行网络监控。
4、PLC与PC通信设计
4.1PLC数据包的信息格式
SLC500与上位机进行数据交换是以二进制字节数据进行,它包含四种主要命:读命令,代码:01H;响应读命令,代码:41H;写命令,代码:08H;响应写命令,代码:48H。故PLC数据包的信息格式如图6所示:
图6PLC数据包的信息格式
DST:一个字节,信息接收方的节点号或文件号;
SRC:一个字节,信息发出方的节点号;
CMD:一个字节,命令类型如01H,41H,08H或48H;
STS:一个字节,通信状态,表示通信有无错误或错误类型,0为无错误;
TNS:二个字节,信息包的业务批号,可作为本信息的识别编号;
Addata:地址/字节数/数据,具体内容由不同的命令类型决定。
PLC与PC机的数据通信采用自由端口通信模式,参数设置成为波特率9600bps,每个字符8位数据,无奇偶校验。采用主从式通信协议,PC机为主机,只有PC机有权主动发送报文,PLC则采用报文接受数据。用RSLogix500软件对SLC500的串口进行如下设置:
1)setthemoduleforfullduplexBSC(DF1fullduplex)
2)setthemoduleforembeddedresponse
3)setdetectforautomatic
4)disableduplicatepacketdetect
5)setthebaudratefor9600.
4.2PC机程序
PC机采用VB编程,主要有监控界面、当前温度显示、动态温度曲线显示、温度数据库管理、参数设置以及与PLC通信等方面的设计。通信参数设置程序如下:
WithMSComm1//通信参数设置
CommPort=1//通信口COM1
Settings=“9600,年n,8,1”//波特率9600bps,无奇偶校验,8位数据,1位停止
InputLen=2//一次读取2个字节
InputMode=comLnputModeBinary//二进制数据格式
PortOpen=Ture//打开通信端口
EndWith
PC机采用中断方式接受SLC500传来的实时温度。即串口收到数据,VB通信控件会触发OnComm事件,在OnComm事件程序中接受数据并处理。一个温度数据为16位两个字节,SLC500传送温度数据时,按报文传送格式高低字节正好相反,因此,VB程序要对接收的数据进行处理,并按照SLC500温度采集的精度(1/8度)转换成温度值用于显示。
5、结束语
本系统设计使用了PLC的热电阻温度采集模块,在上位机的控制下,对工业现场的温度进行实时的采集和监控。本文作者的创新点是,采用了罗克韦尔的SLC500控制器来实现整个系统的设计,并编程实现了SLC500控制器与计算机串口的实时通信。由于PLC可以适应环境恶劣的工业现场,故其使用范围十分的广泛。