引言
随着电子技术的发展,可编程序控制器(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指令后,要输入控制块,过程变量和控制变量的地址。对于SLC500 PID指令,过程变量(PV)和控制变量(CV)两者的量度范围为0到16383。在使用工程单位输入时,必须首先把用户的模拟量范围整定在0-16383数字量度范围之内,为了实现这个目的,需要在PID指令之前使用数值整定指令(SCP指令)进行整定。整定原理如图3。
图3 数值整定原理
整定了PID指令的模拟量I/O范围,用户就能输入适用的最小和最大的工程单位。过程变量,偏差,设定点和死区将在PID数据监视屏上以工程单位显示。图4为PID指令的设置界面,表1为PID指令各参数的说明。
图4 PID模块在线参数设定与标志位
表1 PID模块参数说明
一般温控系统的控制算法可以采用分段式PID控制,即在系统工作的大多数时间内,为PID控制,其参数由10%电源开度下的温度飞升曲线测得。在温度响应曲线的由初态向设定点的上升段过程中,大致采用三段控制。首先置电源为满开度,以最大的功输出克服热惯性;接下来转入PID控制;接近设定点时置电源开度为0,提供一个保温阶段,以适应温度的滞后温升。基于以上要求,PID指令各参数可设置如表2所示。
表2 PID模块参数设定
温控系统中热电阻模拟量输入模块的电压信号范围一般是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芯片[4>,它与控制器采用3线串行接口,只需要占用SLC500的3个输出点,可以驱动8个LED数码显示管,同过级联可以扩展数码显示管的数量,实现多段实时温度显示。SLC500与ZLG7289A的连接如图5所示。
图5 ZLG7289A与SLC500及显示器的接口
图5中CS为片选输入端,此脚为低电平时,可向芯片发送指令;CLK是时钟输入端,;DATA是串行数据输入端,串行数据在时钟CLK的上升沿有效。8个段驱动信号SEG接每个显示器的段,8个位驱动信号DIG0—DIG7分别接显示器的共阴极公共地。
SLC500有RS232通信口,可以通过专用电缆与PC机相连。通过Rsview32软件的组态,PC机可以动态显示PLC传送的温度采集数据,还可以通过联网对多台PLC进行网络监控。
4 PLC与PC通信设计
4.1 PLC数据包的信息格式
SLC500与上位机进行数据交换是以二进制字节数据进行,它包含四种主要命:读命令,代码:01H;响应读命令,代码:41H;写命令,代码:08H;响应写命令,代码:48H[5>。故PLC数据包的信息格式如图6所示:
图6 PLC数据包的信息格式
DST:一个字节,信息接收方的节点号或文件号;
SRC:一个字节,信息发出方的节点号;
CMD:一个字节,命令类型如01H,41H,08H或48H;
STS:一个字节,通信状态,表示通信有无错误或错误类型,0为无错误;
TNS:二个字节,信息包的业务批号,可作为本信息的识别编号;
Addata:地址/字节数/数据,具体内容由不同的命令类型决定。
PLC与PC机的数据通信采用自由端口通信模式,参数设置成为波特率9600bps,每个字符8位数据,无奇偶校验。采用主从式通信协议,PC机为主机,只有PC机有权主动发送报文,PLC则采用报文接受数据。用RSLogix500软件对SLC500的串口进行如下设置:
1) set the module for full duplex BSC (DF1 full duplex)
2) set the module for embedded response
3) set detect for automatic
4) disable duplicate packet detect
5) set the baud rate for 9600.
4.2 PC机程序
PC机采用VB编程,主要有监控界面、当前温度显示、动态温度曲线显示、温度数据库管理、参数设置以及与PLC通信等方面的设计。通信参数设置程序如下:
With MSComm1 //通信参数设置
CommPort=1 //通信口COM1
Settings=“9600,年n,8,1” //波特率9600bps,无奇偶校验,8位数据,1位停止
InputLen=2 //一次读取2个字节
InputMode= comLnputModeBinary // 二进制数据格式
PortOpen=Ture //打开通信端口
End With
PC机采用中断方式接受SLC500传来的实时温度。即串口收到数据,VB通信控件会触发OnComm事件,在OnComm事件程序中接受数据并处理。一个温度数据为16位两个字节,SLC500传送温度数据时,按报文传送格式高低字节正好相反,因此,VB程序