1.2 擴(kuò)展通用A/D模塊
在PLC溫度控制系統(tǒng)中,可以用通用模擬量輸入輸出混合模塊構(gòu)成溫度采集和處理系統(tǒng)。通用A/D轉(zhuǎn)換模塊不具有溫度數(shù)據(jù)處理功能,因此溫度傳感器采集到的溫度信號(hào)要經(jīng)過外圍電路的轉(zhuǎn)換、放大、濾波、冷端補(bǔ)償和線性化處理后,才能被A/D轉(zhuǎn)換器識(shí)別并轉(zhuǎn)換為相應(yīng)的數(shù)字信號(hào)。SLC500系列PLC常用的模擬量輸入輸出混合模塊有——2路差分輸入/2路電壓輸出模塊(1746-NIO4V),其A/D轉(zhuǎn)換為16位。由A/D轉(zhuǎn)換模塊構(gòu)建的溫控系統(tǒng)不但需要外加外圍電路,而且其軟件和硬件的設(shè)計(jì)也比較復(fù)雜。系統(tǒng)如圖2所示。
2 輸入輸出控制
比較而言用溫度模塊1746-NR4構(gòu)建的PLC溫控系統(tǒng)具有較好的控制效果。SLC500控制器的輸入通道中一個(gè)熱電阻模塊最多可以接4個(gè)溫度熱電阻溫度傳感器。輸出通道為模擬量輸出模塊(1746NIO4V),其輸出信號(hào)是電壓信號(hào),可以通過電壓調(diào)整器控制電源的開度(即一周期內(nèi)的導(dǎo)通比率),從而控制電源的輸出功率。
在被控對(duì)象要求較高的控溫精度時(shí),SLC500控制器可以采用PLC自身具有的PID指令進(jìn)行PID控制算法的研究。SLC500系列PLC的PID指令使用下列算法:
輸出=Kc[(E)+1/Ti∫(E)dt+Td?D(PV)/Dt] +bias
程序設(shè)計(jì)時(shí),輸入PID指令后,要輸入控制塊,過程變量和控制變量的地址。對(duì)于SLC500 PID指令,過程變量(PV)和控制變量(CV)兩者的量度范圍為0到16383。在使用工程單位輸入時(shí),必須首先把用戶的模擬量范圍整定在0-16383數(shù)字量度范圍之內(nèi),為了實(shí)現(xiàn)這個(gè)目的,需要在PID指令之前使用數(shù)值整定指令(SCP指令)進(jìn)行整定。整定原理如圖3。
整定了PID指令的模擬量I/O范圍,用戶就能輸入適用的最小和最大的工程單位。過程變量,偏差,設(shè)定點(diǎn)和死區(qū)將在PID數(shù)據(jù)監(jiān)視屏上以工程單位顯示。圖4為PID指令的設(shè)置界面,表1為PID指令各參數(shù)的說明。
一般溫控系統(tǒng)的控制算法可以采用分段式PID控制,即在系統(tǒng)工作的大多數(shù)時(shí)間內(nèi),為PID控制,其參數(shù)由10%電源開度下的溫度飛升曲線測得。在溫度響應(yīng)曲線的由初態(tài)向設(shè)定點(diǎn)的上升段過程中,大致采用三段控制。首先置電源為滿開度,以最大的功輸出克服熱慣性;接下來轉(zhuǎn)入PID控制;接近設(shè)定點(diǎn)時(shí)置電源開度為0,提供一個(gè)保溫階段,以適應(yīng)溫度的滯后溫升?;谝陨弦?,PID指令各參數(shù)可設(shè)置如表2所示。
表2 PID模塊參數(shù)設(shè)定
溫控系統(tǒng)中熱電阻模擬量輸入模塊的電壓信號(hào)范圍一般是0~4124,SCP指令把它整定為0~16383的工程單位,將其值放入PV(過程變量)的內(nèi)存地址N7∶38中,把控制輸出值放入N7∶39當(dāng)中。最后用MOV指令把N7∶39中的過程變量傳遞到1746NIO4V模擬量輸出模塊中??刂菩Ч缦拢海?)SP-PV≥50時(shí),輸出值為最大值32767,使電壓調(diào)節(jié)器開度最大,即給加熱器最大電壓供電,使被測對(duì)象溫度快速上升。(2)SP-PV>-30和SP-PV<50時(shí),輸出為PID控制輸出,此范圍為PID參數(shù)調(diào)節(jié)的范圍。(3)SP-PV<-30時(shí),輸出值為最小值0,電壓調(diào)節(jié)器開度為零,即停止加熱。
3 顯示擴(kuò)展
PLC控制系統(tǒng)顯示界面比較單調(diào),一般是通過觀察控制柜上的指示燈或PLC的LED燈來了解控制器狀態(tài),但對(duì)于溫控系統(tǒng)這樣的顯示是不夠的,需要采用數(shù)碼管顯示或PC顯示。
采用數(shù)碼管顯示時(shí),可以選用ZLG7289A芯片,它與控制器采用3線串行接口,只需要占用SLC500的3個(gè)輸出點(diǎn),可以驅(qū)動(dòng)8個(gè)LED數(shù)碼顯示管,同過級(jí)聯(lián)可以擴(kuò)展數(shù)碼顯示管的數(shù)量,實(shí)現(xiàn)多段實(shí)時(shí)溫度顯示。SLC500與ZLG7289A的連接如圖5所示。
圖5中CS為片選輸入端,此腳為低電平時(shí),可向芯片發(fā)送指令;CLK是時(shí)鐘輸入端;DATA是串行數(shù)據(jù)輸入端,串行數(shù)據(jù)在時(shí)鐘CLK的上升沿有效。8個(gè)段驅(qū)動(dòng)信號(hào)SEG接每個(gè)顯示器的段,8個(gè)位驅(qū)動(dòng)信號(hào)DIG0~DIG7分別接顯示器的共陰極公共地。
SLC500有RS232通信口,可以通過專用電纜與PC機(jī)相連。通過Rsview32軟件的組態(tài),PC機(jī)可以動(dòng)態(tài)顯示PLC傳送的溫度采集數(shù)據(jù),還可以通過聯(lián)網(wǎng)對(duì)多臺(tái)PLC進(jìn)行網(wǎng)絡(luò)監(jiān)控。
4 PLC與PC通信設(shè)計(jì)
4.1 PLC數(shù)據(jù)包的信息格式
SLC500與上位機(jī)進(jìn)行數(shù)據(jù)交換是以二進(jìn)制字節(jié)數(shù)據(jù)進(jìn)行,它包含四種主要命:讀命令,代碼:01H;響應(yīng)讀命令,代碼:41H;寫命令,代碼:08H;響應(yīng)寫命令,代碼:48H。故PLC數(shù)據(jù)包的信息格式如圖6所示:
DST:一個(gè)字節(jié),信息接收方的節(jié)點(diǎn)號(hào)或文件號(hào);
SRC:一個(gè)字節(jié),信息發(fā)出方的節(jié)點(diǎn)號(hào);
CMD:一個(gè)字節(jié),命令類型如01H,41H,08H或48H;
STS:一個(gè)字節(jié),通信狀態(tài),表示通信有無錯(cuò)誤或錯(cuò)誤類型,0為無錯(cuò)誤;
TNS:二個(gè)字節(jié),信息包的業(yè)務(wù)批號(hào),可作為本信息的識(shí)別編號(hào);
Addata:地址/字節(jié)數(shù)/數(shù)據(jù),具體內(nèi)容由不同的命令類型決定。
PLC與PC機(jī)的數(shù)據(jù)通信采用自由端口通信模式,參數(shù)設(shè)置成為波特率9600 bps,每個(gè)字符8位數(shù)據(jù),無奇偶校驗(yàn)。采用主從式通信協(xié)議,PC機(jī)為主機(jī),只有PC機(jī)有權(quán)主動(dòng)發(fā)送報(bào)文,PLC則采用報(bào)文接受數(shù)據(jù)。用RSLogix500軟件對(duì)SLC500的串口進(jìn)行如下設(shè)置:
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機(jī)程序
PC機(jī)采用VB編程,主要有監(jiān)控界面、當(dāng)前溫度顯示、動(dòng)態(tài)溫度曲線顯示、溫度數(shù)據(jù)庫管理、參數(shù)設(shè)置以及與PLC通信等方面的設(shè)計(jì)。通信參數(shù)設(shè)置程序如下:
With MSComm 1 // 通信參數(shù)設(shè)置
CommPort=1 // 通信口COM1
Settings=“9600,年n,8,1”// 波特率9600 bps,無奇偶校驗(yàn),8位數(shù)據(jù),1位停止
InputLen=2 //一次讀取2個(gè)字節(jié)
InputMode=comLnputModeBinary // 二進(jìn)制數(shù)據(jù)格式
PortOpen=Ture // 打開通信端口
End With
PC機(jī)采用中斷方式接受SLC500傳來的實(shí)時(shí)溫度。即串口收到數(shù)據(jù),VB通信控件會(huì)觸發(fā)OnComm事件,在OnComm事件程序中接受數(shù)據(jù)并處理。一個(gè)溫度數(shù)據(jù)為16位兩個(gè)字節(jié),SLC500傳送溫度數(shù)據(jù)時(shí),按報(bào)文傳送格式高低字節(jié)正好相反,因此,VB程序要對(duì)接收的數(shù)據(jù)進(jìn)行處理,并按照SLC500溫度采集的精度(1/8度)轉(zhuǎn)換成溫度值用于顯示。
5 結(jié)束語
本系統(tǒng)設(shè)計(jì)使用了PLC的熱電阻溫度采集模塊,在上位機(jī)的控制下,對(duì)工業(yè)現(xiàn)場的溫度進(jìn)行實(shí)時(shí)的采集和監(jiān)控。本文作者的創(chuàng)新點(diǎn)是,采用了羅克韋爾的SLC500控制器來實(shí)現(xiàn)整個(gè)系統(tǒng)的設(shè)計(jì),并編程實(shí)現(xiàn)了SLC500控制器與計(jì)算機(jī)串口的實(shí)時(shí)通信。由于PLC可以適應(yīng)環(huán)境惡劣的工業(yè)現(xiàn)場,故其使用范圍十分的廣泛。