摘 要:應用圖形化編程語言LabVIEW,根據松下FP1可編程控制器通信協議,開發出FP1PLC與Labview通信驅動程序,并以Labview為平臺構建PLC虛擬控制對象:十字路口交通燈、運料小車等,實現PLC對虛擬對象的控制。
關鍵詞:LabVIEW;PLC控制;虛擬對象;串口通訊
實現PLC對虛擬對象的控制,一方面可擺脫實物模型的限制,另一方面也可大大節約實物模型的制作成本,文獻[1]利用Turbo C開發了幾套PLC控制對象的仿真模型,但需要編制一定的程序才能實現。LabVIEW是美國國家儀器公司開發的虛擬儀器開發平臺軟件,功能強大靈活,廣泛應用于自動測量系統、工業過程自動化、實驗室仿真等各個領域[2-4]。文獻[5]雖利用Labview開發出了一套PLC控制對象:虛擬小車,但PLC與上位PC機間數據交換還需單片機8052作為信號轉換器。本文利用Labview構建十字路口交通燈、運料小車等虛擬控制對象,根據松下FP1 PLC通信協議,開發出了Labview與FP1PLC進行串口通信的驅動程序,有效地實現了PLC對虛擬對象的控制,從而可以擺脫硬件模型限制。
1 FP1 PLC與Labview的串口通信
FP系列PLC通信是遵照松下電工專用通訊協議MEWTOCOL[6]來實現的。計算機通過MEWTOCOL—COM協議中的命令,可對PLC進行讀、寫和監控等。
1、多接點讀命令(RCP)
讀發送幀格式如下:
2、多接點寫命令(WCP)
寫發送幀格式如下:

要實現PLC對虛擬對象的控制,問題的關鍵是要根據FP1 PLC通信協議,利用Labview開發出PLC與Labview的通信驅動程序。現結合虛擬交通燈模型,分別以多接點讀命令及多接點寫命令為例加以說明。
1.1 多接點讀命令
[align=center]

圖1 初始化串口框圖程序[/align]
讀取PLC輸出繼電器Y1、Y2、Y3狀態值可分為以下三個步驟:
第一 初始化串口:串口初始化是通過Serial Port Init模塊來實現,設置端口號為0,波特率為9600bps,數據位為8位,停止位為1位,奇偶校驗為奇校驗,框圖程序如圖1所示。
第二 向PLC發送多接點讀命令的命令參數:向PLC發送多接點讀命令命令參數是通過Serial Port Write模塊來完成的,其框圖程序如圖2所示。框圖程序左側部分的功能為產生輸入命令的BCC校驗碼,MEWTOCOL-COM協議采用異或校驗碼,BCC校驗碼產生規則為發送方把所有待發送的ASCII碼字符,從頭到尾按位作異或運算,把結果作為BCC校驗碼發出。Number To Hexadecimal String子VI將輸入數字轉換成規定字節數的字符串。
第三 讀取PLC反饋信息:其框圖程序如圖3所示,讀取PLC反饋信息采用Serial Port Read模塊。在讀取數據之前,需應用Bytes at Serial Port模塊查詢當前串口接收緩沖區中的數據字節數,并將該數值存放于byte count中。如果Serial Port Read要讀取的字節數大于緩沖區中的數據字節數,Serial Port Read操作將一直等待,直至Timeout或者緩沖區中的數據字節數達到要求的字節數。圖3中的Subset String函數的功能是從Serial Port Read模塊輸出的字符串中提取控制十字路口交通燈所需輸出繼電器狀態值的字符,Scan From Sting函數的作用是將Subset String函數所提取的字符串轉換成規定類型的數據。為了能夠控制十字路口交通燈的亮滅,將其轉換成可控制開關變量的Boolean型數據。
1.2 多接點寫命令
對于急車強通信號的控制,可采用外部硬開關控制,也可在用LabVIEW構建的虛擬模型中設置兩個開關來進行控制。此控制方式需要將PLC程序中的急車強通信號(X1,X2)改為中間繼電器。當LabVIEW前面板的急車強通開關閉合時,就將強通開關的狀態寫入PLC中間繼電器R3,R4,使程序進入強通運行狀態,其運行結果在LabVIEW前面板顯示。向中間繼電器寫入數據的部分框圖程序如圖4所示。串口初始化部分與多接點讀命令相同。
[align=center]

圖2 向PLC發送多接點讀命令命令參數框圖程序

圖3 讀取PLC反饋信息框圖程序

圖4 向PLC中間繼電器寫入數據[/align]
2 十字路口交通燈虛擬對象的控制實現
[align=center]

圖5 東西方向有急車時的前面板狀態[/align]
為了使基于LabVIEW構建的模型能夠正確模擬十字路口交通燈的正常運行,應將所有的讀取和寫入操作編輯成可為頂層VI調用的子VI程序。PLC控制急車強通十字路口交通燈的子VI有:讀取用于控制東西方向紅燈、黃燈的輸出繼電器狀態值的子VI 2A1;讀取控制東西方向綠燈和南北方向紅燈的輸出繼電器狀態值的子VI2A2;讀取控制南北方向黃燈和綠燈的輸出繼電器狀態值的子VI2B1;用于寫入反映急車強通信號的子VIR34。最后將這些子VI組合到一起,并與前面板的交通燈相連就可以實現一個完整的十字路口交通燈模擬控制系統。
圖5是在東西方向有急車強通時的前面板狀態圖。此時,東西方向的急車強通開關閉合,同時東西方向來車的車頂警示燈變亮。呼叫后東西方向的交通燈變綠,急車強行通過;南北方向的紅燈變亮,以方便急車通過。急車強通信號一旦為OFF,燈的狀態即轉為來車方向的綠燈閃3次,隨后向下順序運行。
3 小車自動選向、定位系統的控制實現
小車模型前面板的設計包含一個運行邊框、運料小車和幾個用來檢測小車位置的光電開關,是利用簇結構編輯的。對于小車運行的動態效果處理,采用定義屬性節點的方法,對位置屬性節點進行加減常數或者加減0運算來實現小車的運行、停止。
圖6為小車模型的部分框圖程序。子VI SE的功能是用來讀取PLC發出的控制信號,即用來判斷小車左行、右行還是停止,當PLC發出正轉(“2”)、反轉(“1”)或停止(“0”)信號時,通過Case 結構將程序轉到對應的位置上,實現位置屬性節點加、減常數或0。子VI R的功能用來檢測小車位置,即通過光電開關來判斷小車位置,并將位置信號傳送給PLC中間繼電器,再通過PLC程序控制,以此實現小車的定位。
[align=center]

圖6 小車模型框圖程序[/align]
4 結束語
本文以Labview為平臺構建了十字路口交通燈、運料小車虛擬控制對象,基于LabVIEW串口通訊函數,開發出LabVIEW與PLC通信驅動程序,最后實現了PLC對十字路口交通燈、運料小車虛擬對象的控制,控制效果良好,且具有很好的直觀性,已應用于PLC實驗教學。以此為基礎,可開發出適應面更為廣泛的虛擬工業控制對象,實現以PLC為核心的工業控制系統的虛擬設計、調試,為機電一體化產品的虛擬樣機開發提供技術基礎。
本文作者創新點:根據松下FP1可編程控制器通信協議,基于LabVIEW開發出FP1PLC與Labview通信驅動程序,并成功實現PLC對基于LabVIEW虛擬對象的控制。
參考文獻
[1] 趙玉昆. PLC控制對象的計算機仿真. 計算機測量與控制.2001, 9(6): 30-31, 34
[2]劉君華等. 虛擬儀器圖形化編程語言Labview教程. 西安: 西安電子科技大學出版社. 2001
[3]汪敏生. LabVIEW基礎教程. 北京: 電子工業出版社, 2002: 4-49
[4]Robert H.Bishop. 喬瑞萍,林欣等譯. LabVIEW 6i 實用教程. 北京: 電子工業出版社. 2003
[5] 單士源, 張良祖, 劉美蘭. 一種對虛擬對象進行控制的系統設計. 微計算機信息, 2003, 19(11): 21-22
[6] 汪曉光, 孫曉瑛, 等. 可編程控制器原理及應用, 第2版. 北京: 機械工業出版社. 2001