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










