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