摘 要:本文以大型金相試樣切割機(jī)的PC-PLC控制系統(tǒng)為應(yīng)用背景,在PC與PLC串行通信協(xié)議的基礎(chǔ)上,具體解釋了OMRON CPM2AH系列PLC與計(jì)算機(jī)間通信的命令幀和響應(yīng)幀格式,利用VB6.0中的MSComm控件實(shí)現(xiàn)了PC與PLC的串行通信,并給出了相應(yīng)的數(shù)據(jù)通訊程序。
關(guān)鍵詞:PC-PLC;控制系統(tǒng);串行通信;MSComm控件
Abstract:This paper regards PC-PLC control system of the large metallographic specimen cutter as the background . On the basis of PC and PLC serial communication protocol, it explains the order frame and the response frame of communication between PLC and computer specifically. Making use of VB MSComm control, it realizes the serial communication of PC and PLC. In the end, the data communication procedure is provided.
Key words:PC-PLC;control system;serial communication;MSComm control
0 引言
可編程控制器(PLC)具有使用方便、可靠性高、抗干擾能力強(qiáng)等優(yōu)點(diǎn),因而在工業(yè)控制領(lǐng)域中得到了廣泛應(yīng)用。但是大多數(shù)中小型PLC的顯示功能較差,人機(jī)交互操作不便。在實(shí)際的控制系統(tǒng)中,通常將PLC與個(gè)人計(jì)算機(jī)(PC)結(jié)合起來(lái),使PLC和PC優(yōu)勢(shì)互補(bǔ),極大地提高了控制系統(tǒng)的性?xún)r(jià)比。實(shí)現(xiàn)PC-PLC控制系統(tǒng)的關(guān)鍵是實(shí)現(xiàn)兩者之間可靠的數(shù)據(jù)通信。
本文以課題組開(kāi)發(fā)設(shè)計(jì)的基于PC-PLC的大型金相試樣切割機(jī)控制系統(tǒng)為背景,在windows環(huán)境下,利用Visual Basic 6.0中的MSComm控件設(shè)計(jì)了計(jì)算機(jī)與OMRON CPM2AH型PLC的串行通信程序,從而實(shí)現(xiàn)了PC與PLC的可靠通信,能夠?qū)Υ笮徒鹣嘣嚇忧懈顧C(jī)進(jìn)行實(shí)時(shí)設(shè)備監(jiān)控與信息管理。
1 大型金相試樣切割機(jī)控制方案
針對(duì)國(guó)內(nèi)金相試樣切割設(shè)備切割范圍比較小(切割直徑≤100mm),且自動(dòng)化程度較低,不能夠?qū)Υ蟪叽缌慵M(jìn)行直接取樣等缺點(diǎn),課題組設(shè)計(jì)了基于PC-PLC的大型金相試樣切割機(jī)自動(dòng)控制系統(tǒng)。
該系統(tǒng)對(duì)三相異步電動(dòng)機(jī)進(jìn)行變頻調(diào)速,使切割片的轉(zhuǎn)速?gòu)?~3400r/min無(wú)級(jí)可調(diào),可以根據(jù)試樣的材質(zhì)設(shè)定切割片的轉(zhuǎn)速。一臺(tái)步進(jìn)電機(jī)通過(guò)蝸輪蝸桿傳動(dòng)使擺臂擺動(dòng),以實(shí)現(xiàn)切割片的Z向進(jìn)給(即垂直進(jìn)給)。另兩臺(tái)步進(jìn)電機(jī)分別通過(guò)絲杠和螺母副驅(qū)使工作臺(tái)可以X向(即左右方向)、Y向(即前后方向)運(yùn)動(dòng)。系統(tǒng)具備恒速切割、進(jìn)三退一切割、逐層切割和連續(xù)切割等四種切割模式。
在該系統(tǒng)中,PLC作為下位機(jī),利用傳感器采集監(jiān)控電機(jī)、變頻器等相關(guān)對(duì)象的信息,經(jīng)過(guò)對(duì)輸入信息的處理,綜合采集器所獲得的信息,反饋控制監(jiān)控對(duì)象,將信息送入上位PC機(jī);另一方面,PLC接受PC的控制指令,通過(guò)對(duì)輸入和操作指令的分析、判斷、進(jìn)行綜合處理,輸出控制信號(hào),實(shí)現(xiàn)對(duì)切割機(jī)的控制。上位機(jī)對(duì)PLC進(jìn)行監(jiān)控、發(fā)送控制信息,同時(shí)計(jì)算機(jī)還能夠接受PLC采集的信息,對(duì)監(jiān)控對(duì)象進(jìn)行故障報(bào)警與參數(shù)顯示。該系統(tǒng)具有切割方式選擇控制,系統(tǒng)的啟動(dòng)、停止、暫停控制,切割狀態(tài)的顯示,切割速度的顯示,事故報(bào)警顯示等功能 。
2 PC-PLC串行通信的硬件構(gòu)成
PC與PLC的通信采用RS-232C接口的異步串行方式。CPM2AH與PC機(jī)的連接,首先通過(guò)CPM2AH的外圍端口與RS-232C適配器連接,使用的RS-232C適配器型號(hào)為CPM1-CIF01,其模式設(shè)定開(kāi)關(guān)設(shè)定為“OFF”。然后,通過(guò)XW2Z-500S電纜與計(jì)算機(jī)的串口連接。電纜接線如圖1所示 。
[align=center]

圖1 RS-232C電纜接線圖[/align]
3 VB中的MSComm通訊控件
綜合比較各種可視化編程語(yǔ)言之后,將簡(jiǎn)單易學(xué)且高效的VB6.0作為上位機(jī)的編程語(yǔ)言,它提供有專(zhuān)門(mén)用于串行通信的MSComm控件。該控件具有十分完善的串行數(shù)據(jù)發(fā)送和接收功能,只需設(shè)置和監(jiān)視MSComm控件的屬性和事件,就可以輕易地實(shí)現(xiàn)異步串行通信。它的屬性眾多,對(duì)其中常用的幾個(gè)主要屬性說(shuō)明如下:
CommPort:設(shè)置并返回通信連接端口代號(hào);
Settings:設(shè)置初始化參數(shù),以字符串的形式設(shè)置或返回波特率、奇偶校驗(yàn)、數(shù)據(jù)位、停止位等4個(gè)參數(shù);
PortOpen:設(shè)置并返回通信連接端口的狀態(tài),也可以打開(kāi)和關(guān)閉端口;
InputMode:設(shè)置并返回Input屬性取回的數(shù)據(jù)類(lèi)型,即確定以二進(jìn)制方式接收數(shù)據(jù)還是以文本方式接收數(shù)據(jù);
CommEvent:在通信錯(cuò)誤或事件發(fā)生時(shí)都會(huì)產(chǎn)生OnComm事件,CommEvent屬性存有該錯(cuò)誤或事件的數(shù)值碼 。
MSComm控件提供了兩種處理通信的方式:一種是事件驅(qū)動(dòng),它是處理串行端口交互作用的一種非常有效的方法;另一種是查詢(xún)方式,在程序的每個(gè)關(guān)鍵功能之后,可以通過(guò)讀取CommEvent屬性的值查詢(xún)通信事件和錯(cuò)誤,并做出相應(yīng)的處理。
4 串行通信協(xié)議
PLC通過(guò)對(duì)數(shù)據(jù)存貯器DM區(qū)某此單元的設(shè)置實(shí)現(xiàn)串行通信接口的初始化,選擇上位機(jī)鏈接通信方式。選擇通信協(xié)議為:9600波特,7個(gè)數(shù)據(jù)位,2個(gè)停止位,偶校驗(yàn)。選PC的串行口COM2作為與PLC的通信端口。
PC與PLC之間通信方式采用主從應(yīng)答方式,PC始終具有傳送優(yōu)先權(quán),根據(jù)需要向PLC發(fā)出讀寫(xiě)命令;PLC處于被動(dòng)狀態(tài)響應(yīng)上位PC機(jī)的命令。PC和PLC先初始化,設(shè)置其通信格式(主要包括波特率、奇偶校驗(yàn)、數(shù)據(jù)位、停止位),通信格式必須一致 。
從上位計(jì)算機(jī)發(fā)送命令時(shí),程序中編寫(xiě)的命令數(shù)據(jù)的格式如圖2所示。
[align=center]

圖2 命令幀格式[/align]
其中:@為幀開(kāi)始標(biāo)志符;IP2、IP1為PLC的節(jié)點(diǎn)標(biāo)識(shí)碼,兩位十進(jìn)制數(shù),用來(lái)指定與上位機(jī)通信的PLC,對(duì)應(yīng)上位機(jī),PLC可在DM中設(shè)置自己的通信節(jié)點(diǎn)碼;ID2、ID1為兩字節(jié)命令碼;CT為正文內(nèi)容,用以設(shè)置具體的命令參數(shù);F2、F1為兩字節(jié)的幀校驗(yàn)碼FCS,它是從開(kāi)始符“@”到正文結(jié)束的所有字符的ASCII碼按位異或的結(jié)果;“*”和“/”兩字符表示命令結(jié)束。
命令幀成功傳送后,PLC立即向PC傳送一個(gè)響應(yīng)幀,格式如圖3所示。
[align=center]

圖3 響應(yīng)幀格式[/align]
其中:@為幀開(kāi)始標(biāo)志符;TP2、TP1為與主機(jī)通信的PLC節(jié)點(diǎn)標(biāo)識(shí)碼;ID2、ID1為兩字節(jié)命令碼;E2、E1為命令結(jié)束狀態(tài)碼,00表示正常結(jié)束,01表示RUN模態(tài)下無(wú)法完成;CT為正文內(nèi)容,僅在收到讀數(shù)據(jù)命令時(shí)產(chǎn)生;P2、P1為兩字節(jié)的幀校驗(yàn)碼FCS,它是從開(kāi)始符“@”到正文結(jié)束的所有字符的ASCII碼按位異或的結(jié)果;“*”和“/”兩字符表示命令結(jié)束 。
5 PC-PLC串行通信程序設(shè)計(jì)
在PC與PLC通信過(guò)程中,采用PC優(yōu)先權(quán),向PLC發(fā)送命令啟動(dòng)通信,PLC自動(dòng)返回響應(yīng)的通信方式。讀數(shù)據(jù)時(shí),PC通過(guò)串行口向PLC發(fā)出讀數(shù)據(jù)命令,PLC響應(yīng)并將數(shù)據(jù)準(zhǔn)備好,這時(shí)PC再次讀串行口就可讀到需要的數(shù)據(jù)。寫(xiě)數(shù)據(jù)時(shí),PC通過(guò)串行口向PLC發(fā)出寫(xiě)命令及數(shù)據(jù),PLC接收。數(shù)據(jù)傳送流程如圖4所示。
[align=center]

圖4 數(shù)據(jù)通信流程圖[/align]
以下給出部分通信程序 :
(1)串行口初始化
Private Sub Form_load ()
MSComm1.CommPort=2 ‘選擇COM2口通信
MSComm1.Settings=“9600,E,7,2” ‘設(shè)置通信格式,9600波特,偶校驗(yàn),7位數(shù)據(jù),2個(gè)停止位
MSComm1.InputLen=0 ‘讀取緩存區(qū)中的全部數(shù)據(jù)
MSComm1.InputMode=ComInputModeBinaiy ‘設(shè)置通訊格式為一進(jìn)制
MSComm1.PortOpen=True ‘打開(kāi)端口
End Sub
?。?)發(fā)送數(shù)據(jù)程序
Private Sub Send_Click ()
Dim outarr As Byte
MSComm1.Output= Outarr ‘發(fā)送數(shù)據(jù)
End Sub
?。?)接收數(shù)據(jù)程序
Private Sub MSComm1_OnComm ()
Dim buffer As Variant ‘由緩沖區(qū)讀取的數(shù)據(jù)用Variant變量接受
Dim inarr As Byte
Select Case MSComm1. CommEvent ‘由ComEvReceive事件引發(fā)后,將數(shù)據(jù)存入相應(yīng)的數(shù)組,并且調(diào)用工作狀態(tài)顯示子程序
Case ComEvReceive
inarr=MSComm1.Input
End Select
End Sub
6 結(jié)束語(yǔ)
利用VB6.0的MSComm控件設(shè)計(jì)了PC和PLC的串行通信,從而實(shí)現(xiàn)了大型金相試樣切割機(jī)遠(yuǎn)距離實(shí)時(shí)監(jiān)控與數(shù)據(jù)管理。實(shí)際運(yùn)行證明切割機(jī)的PC-PLC控制系統(tǒng)穩(wěn)定可靠、操控簡(jiǎn)單,且具有靈活、實(shí)時(shí)性強(qiáng)、性能價(jià)格比高等優(yōu)點(diǎn),不僅使切割工件直徑達(dá)到150mm,而且提高了制樣效率,具有廣闊的應(yīng)用前景。
本文作者創(chuàng)新點(diǎn):
將PC-PLC串行通信技術(shù)應(yīng)用于大型金相試樣切割機(jī)中,使PLC強(qiáng)大的控制功能和PC高效的信息管理功能有機(jī)結(jié)合,實(shí)現(xiàn)了切割機(jī)遠(yuǎn)距離實(shí)時(shí)監(jiān)控與數(shù)據(jù)管理。運(yùn)用可視化的高級(jí)編程語(yǔ)言VB6.0中MSComm控件,設(shè)計(jì)了串行通信程序,程序簡(jiǎn)潔且功能強(qiáng)大。實(shí)驗(yàn)證明,該系統(tǒng)能對(duì)直徑150mm的大型零件直接取樣,在國(guó)內(nèi)同行業(yè)中占據(jù)領(lǐng)先的地位。
參考文獻(xiàn):
[1] 李杰.基于PLC控制的大型金相試樣切割機(jī)的研究[D].保定:河北農(nóng)業(yè)大學(xué),2004,6
[2] 楊永剛,楊繼東.PLC與上位計(jì)算機(jī)串行通信的設(shè)計(jì)及研究[J].機(jī)械與電子,2004,8:68-70
[3] 肖應(yīng)旺,徐保國(guó).PLC與上位機(jī)串行通信程序的實(shí)現(xiàn)[J].儀器儀表與分析監(jiān)測(cè),2003,4:8-10
[4] OMRON—CPM2AH系列編程手冊(cè)[Z].上海歐姆龍自動(dòng)化系統(tǒng)有眼公司.1999
[5] 李琰,郭宗仁,王志凱,李鵬.PLC和計(jì)算機(jī)間串行通訊方式及程序設(shè)計(jì)[J].控制工程,2002,9(3):84-86
[6] 田紅芳,李穎宏.PLC與上位計(jì)算機(jī)的串行通信[J].微計(jì)算機(jī)信息,2001,17(3):36-37