秦紅星,花 蕊
(1.唐山學(xué)院機(jī)電工程系,河北唐山 063000;2.唐山供電公司配電中心,河北唐山 063000)
可編程控制器(PLC)具有使用方便、可靠性高、抗干擾能力強(qiáng)等優(yōu)點,因而在工業(yè)控制領(lǐng)域中得到了廣泛應(yīng)用。但是大多數(shù)中小型PLC的顯示功能較差,人機(jī)交互操作不便。在實際的控制系統(tǒng)中,通常將PLC與個人計算機(jī)(PC)結(jié)合起來,使PLC和PC優(yōu)勢互補(bǔ),極大地提高了控制系統(tǒng)的性價比。實現(xiàn)PC-PLC控制系統(tǒng)的關(guān)鍵,是實現(xiàn)兩者之間可靠的數(shù)據(jù)通信。
本文以課題組開發(fā)設(shè)計的基于PC-PLC的大型金相試樣切割機(jī)控制系統(tǒng)為背景,在Windows環(huán)境下,利用Visual Basic 6.0中的MSComm控件設(shè)計了計算機(jī)與OMRON CPM2AH型PLC的串行通信程序,從而實現(xiàn)了PC與PLC的可靠通信,能夠?qū)Υ笮徒鹣嘣嚇忧懈顧C(jī)進(jìn)行實時設(shè)備監(jiān)控與信息管理。
針對國內(nèi)金相試樣切割設(shè)備切割范圍比較?。ㄇ懈钪睆健?00mm),且自動化程度較低,不能夠?qū)Υ蟪叽缌慵M(jìn)行直接取樣等缺點,設(shè)計了基于PC-PLC的大型金相試樣切割機(jī)自動控制系統(tǒng)。
該系統(tǒng)對三相異步電動機(jī)進(jìn)行變頻調(diào)速,使切割片的轉(zhuǎn)速從0~3 400 r/min無級可調(diào),可以根據(jù)試樣的材質(zhì)設(shè)定切割片的轉(zhuǎn)速。1臺步進(jìn)電機(jī)通過蝸輪蝸桿傳動使擺臂擺動,以實現(xiàn)切割片的Z向進(jìn)給(即垂直進(jìn)給)。另2臺步進(jìn)電機(jī)分別通過絲杠和螺母副驅(qū)使工作臺,可以X向(即左右方向)、Y向(即前后方向)運動。系統(tǒng)具備恒速切割、進(jìn)三退一切割、逐層切割和連續(xù)切割等4種切割模式。
在該系統(tǒng)中,PLC作為下位機(jī),利用傳感器采集監(jiān)控電機(jī)、變頻器等相關(guān)對象的信息,經(jīng)過對輸入信息的處理,綜合采集器所獲得的信息,反饋控制監(jiān)控對象,將信息送入上位PC機(jī);另一方面,PLC接受PC的控制指令,通過對輸入和操作指令的分析、判斷、進(jìn)行綜合處理,輸出控制信號,實現(xiàn)對切割機(jī)的控制。上位機(jī)對PLC進(jìn)行監(jiān)控、發(fā)送控制信息,同時計算機(jī)還能夠接受PLC采集的信息,對監(jiān)控對象進(jìn)行故障報警與參數(shù)顯示。該系統(tǒng)具有切割方式選擇控制,系統(tǒng)的啟動、停止、暫??刂疲懈顮顟B(tài)的顯示,切割速度的顯示,事故報警顯示等功能。
PC與PLC的通信采用RS-232C接口的異步串行方式。CPM2AH與PC機(jī)的連接,首先通過CPM2AH的外圍端口與RS-232C適配器連接,使用的 RS-232C適配器型號為CPM1-CIF01,其模式設(shè)定開關(guān)設(shè)定為“OFF”。然后,通過XW2Z-500S電纜與計算機(jī)的串口連接。電纜接線如圖1所示。
圖1 RS-232C電纜接線
綜合比較各種可視化編程語言之后,將簡單易學(xué)且高效的VB6.0作為上位機(jī)的編程語言,其提供有專門用于串行通信的MSComm控件。該控件具有十分完善的串行數(shù)據(jù)發(fā)送和接收功能,只需設(shè)置和監(jiān)視MSComm控件的屬性和事件,就可以輕易地實現(xiàn)異步串行通信。其屬性眾多,對其中常用的幾個主要屬性說明如下:
CommPort——設(shè)置并返回通信連接端口代號;
Settings——設(shè)置初始化參數(shù),以字符串的形式設(shè)置或返回波特率、奇偶校驗、數(shù)據(jù)位、停止位等4個參數(shù);
PortOpen——設(shè)置并返回通信連接端口的狀態(tài),也可以打開和關(guān)閉端口;
InputMode——設(shè)置并返回Input屬性取回的數(shù)據(jù)類型,即確定以二進(jìn)制方式接收數(shù)據(jù)還是以文本方式接收數(shù)據(jù);
CommEvent——在通信錯誤或事件發(fā)生時都會產(chǎn)生On Comm事件,CommEvent屬性存有該錯誤或事件的數(shù)值碼。
MSComm——控件提供了兩種處理通信的方式:一種是事件驅(qū)動,它是處理串行端口交互作用的一種非常有效的方法;另一種是查詢方式,在程序的每個關(guān)鍵功能之后,可以通過讀取CommEvent屬性的值查詢通信事件和錯誤,并做出相應(yīng)的處理。
PLC通過對數(shù)據(jù)存貯器DM區(qū)某此單元的設(shè)置,實現(xiàn)串行通信接口的初始化,選擇上位機(jī)鏈接通信方式。選擇通信協(xié)議為:9600波特,7個數(shù)據(jù)位,2個停止位,偶校驗。選PC的串行口COM2作為與PLC的通信端口。
PC與PLC之間通信方式,采用主從應(yīng)答方式,PC始終具有傳送優(yōu)先權(quán),根據(jù)需要向PLC發(fā)出讀寫命令;PLC處于被動狀態(tài),響應(yīng)上位PC機(jī)的命令。PC和PLC先初始化,設(shè)置其通信格式(主要包括波特率、奇偶校驗、數(shù)據(jù)位、停止位),通信格式必須一致。
從上位計算機(jī)發(fā)送命令時,程序中編寫的命令數(shù)據(jù)的格式如圖2所示。
圖2 命令幀格式
其中,
@為幀開始標(biāo)志符;
IP2、IP1為PLC的節(jié)點標(biāo)識碼,兩位十進(jìn)制數(shù),用來指定與上位機(jī)通信的PLC,對應(yīng)上位機(jī),PLC可在DM中設(shè)置自己的通信節(jié)點碼;
ID2、ID1為兩字節(jié)命令碼;
CT為正文內(nèi)容,用以設(shè)置具體的命令參數(shù);
F2、F1為兩字節(jié)的幀校驗碼FCS,它是從開始符“@”到正文結(jié)束的所有字符的ASCII碼按位異或的結(jié)果;
“*”和“/”兩字符表示命令結(jié)束。
命令幀成功傳送后,PLC立即向PC傳送一個響應(yīng)幀,格式如圖3所示。
圖3 響應(yīng)幀格式
其中,
@為幀開始標(biāo)志符;
TP2、TP1為與主機(jī)通信的PLC節(jié)點標(biāo)識碼;
ID2、ID1為兩字節(jié)命令碼;
E2、E1為命令結(jié)束狀態(tài)碼,00表示正常結(jié)束,01表示RUN模態(tài)下無法完成;
CT為正文內(nèi)容,僅在收到讀數(shù)據(jù)命令時產(chǎn)生;
P2、P1為兩字節(jié)的幀校驗碼FCS,它是從開始符“@”到正文結(jié)束的所有字符的ASCII碼按位異或的結(jié)果;
“*”和“/”兩字符表示命令結(jié)束。
在PC與PLC通信過程中,采用PC優(yōu)先權(quán),向PLC發(fā)送命令啟動通信,PLC自動返回響應(yīng)的通信方式。讀數(shù)據(jù)時,PC通過串行口向PLC發(fā)出讀數(shù)據(jù)命令,PLC響應(yīng)并將數(shù)據(jù)準(zhǔn)備好,這時PC再次讀串行口就可讀到需要的數(shù)據(jù)。寫數(shù)據(jù)時,PC通過串行口向PLC發(fā)出寫命令及數(shù)據(jù),PLC接收。數(shù)據(jù)傳送流程如圖4所示。
圖4 數(shù)據(jù)通信流程圖
以下給出部分通信程序:
(1)串行口初始化。
Private Sub Form_load()
MSComm1.CommPort=2‘選擇COM2口通信
MSComm1.Settings=“9600,E,7,2”‘設(shè)置通信格式,9600波特,偶校驗,7位數(shù)據(jù),2個停止位
MSComm1.InputLen=0‘讀取緩存區(qū)中的全部數(shù)據(jù)
MSComm1.InputMode=Com InputModeBinaiy‘設(shè)置通訊格式為一進(jìn)制
MSComm1.PortOpen=True‘打開端口
End Sub
(2)發(fā)送數(shù)據(jù)程序。
Private Sub Send_Click()
Dim outarr As Byte
MSComm1.Output=Outarr‘發(fā)送數(shù)據(jù)
End Sub
(3)接收數(shù)據(jù)程序。
Private Sub MSComm1_OnComm()
Dim buffer As Variant‘由緩沖區(qū)讀取的數(shù)據(jù)用Variant變量接受
Dim inarr As Byte
SelectCaseMSComm1.CommEvent‘由ComEvReceive事件引發(fā)后,將數(shù)據(jù)存入相應(yīng)的數(shù)組,并且調(diào)用工作狀態(tài)顯示子程序
Case ComEvReceive
inarr=MSComm1.Input
End Select
End Sub
利用VB6.0的MSComm控件設(shè)計了PC和PLC的串行通信,從而實現(xiàn)了大型金相試樣切割機(jī)遠(yuǎn)距離實時監(jiān)控與數(shù)據(jù)管理。實際運行證明,切割機(jī)的PC-PLC控制系統(tǒng)穩(wěn)定可靠、操控簡單,且具有靈活、實時性強(qiáng)、性能價格比高等優(yōu)點,不僅使切割工件直徑達(dá)到160mm,而且提高了制樣效率,具有廣闊的應(yīng)用前景。
[1]李 杰.基于PLC控制的大型金相試樣切割機(jī)的研究[D].保定:河北農(nóng)業(yè)大學(xué),2004.
[2]楊永剛,楊繼東.PLC與上位計算機(jī)串行通信的設(shè)計及研究[J].機(jī)械與電子,2004,(8):68-70.
[3]肖應(yīng)旺,徐保國.PLC與上位機(jī)串行通信程序的實現(xiàn)[J].儀器儀表與分析監(jiān)測,2003,(4):8-10.
[4]OMRON—CPM2AH系列編程手冊[Z].上海歐姆龍自動化系統(tǒng)有眼公司.1999.
[5]李 琰,郭宗仁,王志凱,李 鵬.PLC和計算機(jī)間串行通訊方式及程序設(shè)計[J].控制工程,2002,(9):84-86.
[6]田紅芳,李穎宏.PLC與上位計算機(jī)串行通信[J].微計算機(jī)信息,2001,(3):36-37.