基于PLC的溫控系統(tǒng)設(shè)計(jì)與研究
4、PLC與PC通信設(shè)計(jì)
4.1PLC數(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所示:
圖6PLC數(shù)據(jù)包的信息格式
DST:一個字節(jié),信息接收方的節(jié)點(diǎn)號或文件號;
SRC:一個字節(jié),信息發(fā)出方的節(jié)點(diǎn)號;
CMD:一個字節(jié),命令類型如01H,41H,08H或48H;
STS:一個字節(jié),通信狀態(tài),表示通信有無錯誤或錯誤類型,0為無錯誤;
TNS:二個字節(jié),信息包的業(yè)務(wù)批號,可作為本信息的識別編號;
Addata:地址/字節(jié)數(shù)/數(shù)據(jù),具體內(nèi)容由不同的命令類型決定。
PLC與PC機(jī)的數(shù)據(jù)通信采用自由端口通信模式,參數(shù)設(shè)置成為波特率9600bps,每個字符8位數(shù)據(jù),無奇偶校驗(yàn)。采用主從式通信協(xié)議,PC機(jī)為主機(jī),只有PC機(jī)有權(quán)主動發(fā)送報(bào)文,PLC則采用報(bào)文接受數(shù)據(jù)。用RSLogix500軟件對SLC500的串口進(jìn)行如下設(shè)置:
1)setthemoduleforfullduplexBSC(DF1fullduplex)
2)setthemoduleforbbbbbdedresponse
3)setdetectforautomatic
4)disableduplicatepacketdetect
5)setthebaudratefor9600.
4.2PC機(jī)程序
PC機(jī)采用VB編程,主要有監(jiān)控界面、當(dāng)前溫度顯示、動態(tài)溫度曲線顯示、溫度數(shù)據(jù)庫管理、參數(shù)設(shè)置以及與PLC通信等方面的設(shè)計(jì)。通信參數(shù)設(shè)置程序如下:
WithMSComm1//通信參數(shù)設(shè)置
CommPort=1//通信口COM1
Settings=“9600,年n,8,1”//波特率9600bps,無奇偶校驗(yàn),8位數(shù)據(jù),1位停止
bbbbbLen=2//一次讀取2個字節(jié)
bbbbbMode=comLnputModeBinary//二進(jìn)制數(shù)據(jù)格式
PortOpen=Ture//打開通信端口
EndWith
PC機(jī)采用中斷方式接受SLC500傳來的實(shí)時溫度。即串口收到數(shù)據(jù),VB通信控件會觸發(fā)OnComm事件,在OnComm事件程序中接受數(shù)據(jù)并處理。一個溫度數(shù)據(jù)為16位兩個字節(jié),SLC500傳送溫度數(shù)據(jù)時,按報(bào)文傳送格式高低字節(jié)正好相反,因此,VB程序要對接收的數(shù)據(jù)進(jìn)行處理,并按照SLC500溫度采集的精度(1/8度)轉(zhuǎn)換成溫度值用于顯示。
5、結(jié)束語
本系統(tǒng)設(shè)計(jì)使用了PLC的熱電阻溫度采集模塊,在上位機(jī)的控制下,對工業(yè)現(xiàn)場的溫度進(jìn)行實(shí)時的采集和監(jiān)控。本文作者的創(chuàng)新點(diǎn)是,采用了羅克韋爾的SLC500控制器來實(shí)現(xiàn)整個系統(tǒng)的設(shè)計(jì),并編程實(shí)現(xiàn)了SLC500控制器與計(jì)算機(jī)串口的實(shí)時通信。由于PLC可以適應(yīng)環(huán)境惡劣的工業(yè)現(xiàn)場,故其使用范圍十分的廣泛。










