摘 要:本文以大型金相試樣切割機的PC-PLC控制系統為應用背景,在PC與PLC串行通信協議的基礎上,具體解釋了OMRON CPM2AH系列PLC與計算機間通信的命令幀和響應幀格式,利用VB6.0中的MSComm控件實現了PC與PLC的串行通信,并給出了相應的數據通訊程序。
關鍵詞:PC-PLC;控制系統;串行通信;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)具有使用方便、可靠性高、抗干擾能力強等優點,因而在工業控制領域中得到了廣泛應用。但是大多數中小型PLC的顯示功能較差,人機交互操作不便。在實際的控制系統中,通常將PLC與個人計算機(PC)結合起來,使PLC和PC優勢互補,極大地提高了控制系統的性價比。實現PC-PLC控制系統的關鍵是實現兩者之間可靠的數據通信。
本文以課題組開發設計的基于PC-PLC的大型金相試樣切割機控制系統為背景,在windows環境下,利用Visual Basic 6.0中的MSComm控件設計了計算機與OMRON CPM2AH型PLC的串行通信程序,從而實現了PC與PLC的可靠通信,能夠對大型金相試樣切割機進行實時設備監控與信息管理。
1 大型金相試樣切割機控制方案
針對國內金相試樣切割設備切割范圍比較小(切割直徑≤100mm),且自動化程度較低,不能夠對大尺寸零件進行直接取樣等缺點,課題組設計了基于PC-PLC的大型金相試樣切割機自動控制系統。
該系統對三相異步電動機進行變頻調速,使切割片的轉速從0~3400r/min無級可調,可以根據試樣的材質設定切割片的轉速。一臺步進電機通過蝸輪蝸桿傳動使擺臂擺動,以實現切割片的Z向進給(即垂直進給)。另兩臺步進電機分別通過絲杠和螺母副驅使工作臺可以X向(即左右方向)、Y向(即前后方向)運動。系統具備恒速切割、進三退一切割、逐層切割和連續切割等四種切割模式。
在該系統中,PLC作為下位機,利用傳感器采集監控電機、變頻器等相關對象的信息,經過對輸入信息的處理,綜合采集器所獲得的信息,反饋控制監控對象,將信息送入上位PC機;另一方面,PLC接受PC的控制指令,通過對輸入和操作指令的分析、判斷、進行綜合處理,輸出控制信號,實現對切割機的控制。上位機對PLC進行監控、發送控制信息,同時計算機還能夠接受PLC采集的信息,對監控對象進行故障報警與參數顯示。該系統具有切割方式選擇控制,系統的啟動、停止、暫停控制,切割狀態的顯示,切割速度的顯示,事故報警顯示等功能 。
2 PC-PLC串行通信的硬件構成
PC與PLC的通信采用RS-232C接口的異步串行方式。CPM2AH與PC機的連接,首先通過CPM2AH的外圍端口與RS-232C適配器連接,使用的RS-232C適配器型號為CPM1-CIF01,其模式設定開關設定為“OFF”。然后,通過XW2Z-500S電纜與計算機的串口連接。電纜接線如圖1所示 。
[align=center]

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

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

圖3 響應幀格式[/align]
其中:@為幀開始標志符;TP2、TP1為與主機通信的PLC節點標識碼;ID2、ID1為兩字節命令碼;E2、E1為命令結束狀態碼,00表示正常結束,01表示RUN模態下無法完成;CT為正文內容,僅在收到讀數據命令時產生;P2、P1為兩字節的幀校驗碼FCS,它是從開始符“@”到正文結束的所有字符的ASCII碼按位異或的結果;“*”和“/”兩字符表示命令結束 。
5 PC-PLC串行通信程序設計
在PC與PLC通信過程中,采用PC優先權,向PLC發送命令啟動通信,PLC自動返回響應的通信方式。讀數據時,PC通過串行口向PLC發出讀數據命令,PLC響應并將數據準備好,這時PC再次讀串行口就可讀到需要的數據。寫數據時,PC通過串行口向PLC發出寫命令及數據,PLC接收。數據傳送流程如圖4所示。
[align=center]

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