一、引言
近幾年來,PLC因其可靠性高、編程簡單、抗干擾強(qiáng)等優(yōu)點(diǎn)在工業(yè)控制領(lǐng)域得到了廣泛應(yīng)用。但PLC在人機(jī)交互性能方面較弱,而工業(yè)控制計算機(jī)具有良好的人機(jī)界面及控制決策能力,因此,將二者結(jié)合起來可有效實(shí)現(xiàn)整個生產(chǎn)過程的綜合控制。
本文所介紹的PLC通信技術(shù)應(yīng)用于由PLC與工業(yè)控制計算機(jī)組成的膠帶運(yùn)輸實(shí)時監(jiān)控系統(tǒng)。該系統(tǒng)采用上下位機(jī)主從式結(jié)構(gòu),PLC作為下位機(jī)完成工業(yè)現(xiàn)場數(shù)據(jù)的實(shí)時采集和分站控制功能;上位機(jī)采用工業(yè)控制計算機(jī)實(shí)現(xiàn)數(shù)據(jù)的顯示、報警等功能。該系統(tǒng)可實(shí)現(xiàn)膠帶運(yùn)輸過程中的模擬顯示、故障報警、實(shí)時控制等。
二、通信方式
該系統(tǒng)采用華光公司的SU-6系列PLC,通信方式采用串行通信,通信接口均為PLC與工業(yè)控制計算機(jī)上的RS232接口。但是由于RS232采用非平衡方式傳輸數(shù)據(jù),傳輸距離近,而膠帶輸送機(jī)趨向大功率、長距離,且單機(jī)監(jiān)測信息量多,控制要求復(fù)雜,直接采用RS232方式不能滿足傳輸距離要求。因此,采用RS485方式。因?yàn)镽S485采用平衡差動式進(jìn)行數(shù)據(jù)傳輸,適合于遠(yuǎn)距離傳輸,并具有較強(qiáng)抗干擾能力。式中:RS232與RS485之間的信號轉(zhuǎn)換采用通信轉(zhuǎn)換器,總體通信結(jié)構(gòu)如圖1所示。
[align=center]
圖1 總體通信結(jié)構(gòu)[/align]
三、通信規(guī)程
SU-6系列PLC串行通信采用半雙工異步傳送,支持CCM通信協(xié)議,并具有以下功能:(1)上位通信功能;(2)主局功能;(3)一對一功能;(4)無協(xié)議串行通信功能。以上功能可以實(shí)現(xiàn)PLC的寄存器和內(nèi)部繼電器的讀入和寫出、傳送狀態(tài)的跟蹤等。由于CCM協(xié)議采用主從通信方式,所以通信過程中由主局保持主動權(quán),向子局發(fā)出呼叫,并通過向子局發(fā)送命令幀來控制數(shù)據(jù)傳送的方向、格式和內(nèi)容;子局對得到的主局呼叫作出響應(yīng),并根據(jù)命令幀要求進(jìn)行數(shù)據(jù)傳輸。由于在膠帶運(yùn)輸控制系統(tǒng)中要進(jìn)行數(shù)據(jù)的讀取和寫入雙向操作,因此采用一對一方式,工業(yè)控制計算機(jī)作為主局,PLC作為子局。
[align=center]
圖2[/align]
數(shù)據(jù)傳輸過程以主局向子局寫入數(shù)據(jù)為例,如圖2所示,通信是主局向子局提出呼叫開始,子局作出應(yīng)答以建立連接,主局接到應(yīng)答后,向子局發(fā)送首標(biāo),子局將依據(jù)首標(biāo)各項(xiàng)要求與主局進(jìn)行數(shù)據(jù)傳輸,在子局作出響應(yīng)后,開始傳送數(shù)據(jù),數(shù)據(jù)以128字節(jié)(ASCⅡ方式)為單位進(jìn)行分組傳送,最后主局發(fā)送EOF信號結(jié)束本次通信。其中,首標(biāo)作為命令幀,規(guī)定了數(shù)據(jù)傳送方向、數(shù)據(jù)操作起始地址及數(shù)據(jù)傳送量等。
在進(jìn)行數(shù)據(jù)通信時,通信應(yīng)答時間決定了系統(tǒng)讀寫速度,而作為主局的計算機(jī)通信時間因上位計算機(jī)類型、PC掃描時間、PLC數(shù)據(jù)通信接口模塊應(yīng)答延遲時間設(shè)定值、波特率、數(shù)據(jù)傳送量的不同而不同。其中,PC掃描時間與應(yīng)答延遲時間對通信時間的影響:當(dāng)PC掃描時間比應(yīng)答延遲時間短時,前者對通信時間沒有影響;反之,當(dāng)PC掃描時間比應(yīng)答延遲時間長時,在計算總通信時間時,采用PC掃描時間,計算公式如下:
總通信時間=A+B+C+D
式中:A、B、C、D分別為呼叫發(fā)送/應(yīng)答時間、首標(biāo)發(fā)送/應(yīng)答時間、數(shù)據(jù)發(fā)送/應(yīng)答時間、通信結(jié)束應(yīng)答時間。以數(shù)據(jù)發(fā)送時間為例:
數(shù)據(jù)發(fā)送時間=數(shù)據(jù)傳送字符數(shù)×通信時間/字符+PC掃描時間
數(shù)據(jù)通信中,數(shù)據(jù)傳送量因采用的傳送方式不同而不同。傳送方式支持ASCⅡ碼和二進(jìn)制兩種。其中ASCⅡ碼是用8bit表示數(shù)字、字母等,因此采用它來進(jìn)行數(shù)據(jù)通信時,一字節(jié)二進(jìn)制數(shù)要由兩字節(jié)ASCⅡ來表示,實(shí)際傳輸量就是采用二進(jìn)制數(shù)據(jù)通信的兩倍。而在膠帶運(yùn)輸系統(tǒng)中要求較強(qiáng)的可靠性和實(shí)時性,為提高通信速率,更好地實(shí)現(xiàn)實(shí)時監(jiān)控,選用二進(jìn)制傳輸方式,波特率選用9600bps,并采用奇校驗(yàn),通信時間/字符為1ms/字符。
四、通信程序設(shè)計
在通信程序設(shè)計中,子局的通信參數(shù)可以通過PLC上的DIP開關(guān)直接進(jìn)行設(shè)定,而主局的通信參數(shù)設(shè)定則需要軟件實(shí)現(xiàn)。在該系統(tǒng)中,主局的通信軟件編制采用VB6.0。
MSComm控件提供串行通信功能,具有事件驅(qū)動、查詢兩種通信方式。事件驅(qū)動通信是利用控件的OnComm事件捕獲通信事件或通信錯誤,并執(zhí)行OnComm的事件處理過程。當(dāng)前發(fā)生的通信事件或通信錯誤由控件的CommEvent屬性來判斷。
在本系統(tǒng)中,工業(yè)控制計算機(jī)作為主局,向作為子局的PLC發(fā)出呼叫及命令幀,并采用中斷方式等待PLC的響應(yīng),即在MSComm控件的OnComm事件中根據(jù)CommEvent屬性值來編制相應(yīng)的響應(yīng)過程或錯誤處理程序。在通信開始前,首先通過控件的Settings設(shè)定通信參數(shù)為“9600,O,8,1”,依據(jù)CCM協(xié)議的每次實(shí)際傳送數(shù)據(jù)量,定義Rthreshold為應(yīng)收到的字節(jié)數(shù)。完成串口初始化定義后,打開通信口,主局發(fā)出呼叫,在得到子局響應(yīng)時,CommEvent屬性值變?yōu)閏omEvReceive,激活OnComm事件處理相應(yīng)事件,事件程序流程圖如圖3所示。首先將讀取的子局信息處理,判斷其與呼叫幀是否一致,若一致,發(fā)送首標(biāo)命令幀,否則重新呼叫。在得到子局的首標(biāo)回應(yīng)后,開始數(shù)據(jù)的讀取或?qū)懭氩僮鳎罁?jù)數(shù)據(jù)傳送方向及數(shù)據(jù)量的不同設(shè)定控件的Rthreshold屬性。最后通信以主局接收到EOF為結(jié)束。循環(huán)執(zhí)行上述過程以完成數(shù)據(jù)的連續(xù)讀寫。
對于通信中的錯誤,一般可以通過接收到的CommEvent屬性值來判斷處理。但對于線路故障或PLC出現(xiàn)掉電等情況時,CommEvent屬性值無法激活,就要利用看門狗的思想,設(shè)定定時程序,若通信超時,則結(jié)束前次通信,重新呼叫。
[align=center]
圖3[/align]
五、結(jié)束語
該技術(shù)已在兗礦集團(tuán)興隆莊煤礦井下5300膠帶運(yùn)輸機(jī)監(jiān)控系統(tǒng)中投入使用。經(jīng)現(xiàn)場運(yùn)行表明,該技術(shù)在應(yīng)用方便了現(xiàn)場控制監(jiān)視,有利于故障的及時排除,提高了生產(chǎn)的安全性及系統(tǒng)可靠性,便于進(jìn)行網(wǎng)絡(luò)擴(kuò)展,在車間級監(jiān)控系統(tǒng)中有較好的推廣前景。