一,、引言
LabVIEW(Laboratory Virtual Instrument Engineering Workbench)是美國國家儀器公司(National Instruments)推出一種基于圖形語言(G 語言)的開發(fā)環(huán)境,,編程非常方便,,人機交互界面直觀友好,,用戶可以創(chuàng)建獨立的可執(zhí)行文件,能夠脫離開發(fā)環(huán)境而單獨運行,,是目前最流行的虛擬儀器編程平臺,,廣泛應用于測試測量,、過程控制、實驗室研究與自動化等方面,。
可編程控制器(Programmable Logic Controller,,簡稱PLC)是將計算機技術、通信技術和自動控制技術結合在一起的自動控制設備,,具有可靠性高,、體積小、功耗低,、抗干擾能力強等諸多優(yōu)點,,保證其在溫度和濕度都較高、空間較小,、工作環(huán)境惡劣的環(huán)境下穩(wěn)定,、可靠、長時間連續(xù)地工作,。
將 LabVIEW 與PLC 結合起來應用于工程實踐,,不僅可以大大降低成本,、縮短開發(fā)周期,,而且可以使得控制操作方便、界面美觀,。
二,、應用背景
在某遙控模型裝置的研制過程中,因被遙控裝置的體積小,、重量輕,、內(nèi)部結構復雜,以及其惡劣的工作環(huán)境決定了不適合在裝置內(nèi)部安裝普通計算機,,所以選用體積小重量輕,、工作可靠的松下公司FPE 型PLC 來作為被遙控裝置被控端的主控單元。該型號的PLC 有16點輸入和16 點輸出,,程序容量可達32KB,。PLC 在遙控裝置中的作用主要是采集模型裝置的狀態(tài)、接收遙控端的控制信號以及驅動電機等,。遙控端選用普通計算機,,作用主要是負責讀取PLC 中模型裝置的相關動態(tài)數(shù)據(jù)并進行相關運算、根據(jù)具體工作模式給PLC 端自動發(fā)送控制信號或者通過采集人工輸入信號并將其發(fā)送給被遙控裝置的PLC,。
鑒于 LabVIEW 軟件可方便實現(xiàn)數(shù)據(jù)采集和信號處理,,具有強大的外部接口能力,而且采用LabVIEW 編寫控制程序主界面的既簡單美觀,,又能節(jié)約開發(fā)時間,,大大提高了程序設計效率等優(yōu)點,遙控端的控制程序采用LabVIEW 編寫。
一,、引言
LabVIEW(Laboratory Virtual Instrument Engineering Workbench)是美國國家儀器公司(National Instruments)推出一種基于圖形語言(G 語言)的開發(fā)環(huán)境,,編程非常方便,人機交互界面直觀友好,,用戶可以創(chuàng)建獨立的可執(zhí)行文件,,能夠脫離開發(fā)環(huán)境而單獨運行,是目前最流行的虛擬儀器編程平臺,,廣泛應用于測試測量,、過程控制、實驗室研究與自動化等方面,。
可編程控制器(Programmable Logic Controller,,簡稱PLC)是將計算機技術、通信技術和自動控制技術結合在一起的自動控制設備,,具有可靠性高,、體積小、功耗低,、抗干擾能力強等諸多優(yōu)點,,保證其在溫度和濕度都較高、空間較小,、工作環(huán)境惡劣的環(huán)境下穩(wěn)定,、可靠、長時間連續(xù)地工作,。
將 LabVIEW 與PLC 結合起來應用于工程實踐,,不僅可以大大降低成本、縮短開發(fā)周期,,而且可以使得控制操作方便,、界面美觀。
二,、應用背景
在某遙控模型裝置的研制過程中,,因被遙控裝置的體積小、重量輕,、內(nèi)部結構復雜,,以及其惡劣的工作環(huán)境決定了不適合在裝置內(nèi)部安裝普通計算機,所以選用體積小重量輕,、工作可靠的松下公司FPE 型PLC 來作為被遙控裝置被控端的主控單元,。該型號的PLC 有16點輸入和16 點輸出,程序容量可達32KB,。PLC 在遙控裝置中的作用主要是采集模型裝置的狀態(tài),、接收遙控端的控制信號以及驅動電機等,。遙控端選用普通計算機,作用主要是負責讀取PLC 中模型裝置的相關動態(tài)數(shù)據(jù)并進行相關運算,、根據(jù)具體工作模式給PLC 端自動發(fā)送控制信號或者通過采集人工輸入信號并將其發(fā)送給被遙控裝置的PLC,。
鑒于 LabVIEW 軟件可方便實現(xiàn)數(shù)據(jù)采集和信號處理,具有強大的外部接口能力,,而且采用LabVIEW 編寫控制程序主界面的既簡單美觀,,又能節(jié)約開發(fā)時間,大大提高了程序設計效率等優(yōu)點,,遙控端的控制程序采用LabVIEW 編寫,。
三、LavVIEW 與PLC 的無線通信
由于模型裝置的遙控端和被控端相隔的距離較遠,,為方便控制被控裝置的運動,,所以考慮采用無線通信的方式讓遙控端與被控端進行通信聯(lián)系。LabVIEW 與PLC 之間的通信通常是采用串口方式,,為此只需在這兩者之間架設無線電臺,,并以無線電臺為橋梁實現(xiàn)LabVIEW與PLC 之間通過串口進行無線通信。
3.1 無線電臺及其與終端的連接
我們采用深圳市友訊達科技發(fā)展有限公司生產(chǎn)的 FC211LP 微功率無線數(shù)傳模塊作為無線電臺,。該電臺工作頻率在ISM 頻段(載波頻率433MHz),,基于FSK 的調制方式,采用高效信道編碼技術,,提高了數(shù)據(jù)抗突發(fā)干擾和隨機干擾的能力,。其傳輸性能優(yōu)良,,接口多樣,,且設置使用方便,共提供三種內(nèi)部接口方式:TTL/RS232/RS485,,并提供透明的數(shù)據(jù)接口,,接口波特率為1200/2400/4800/9600Bit/s,空中波特率為1200/2400/4800/9600Bit/s,,用戶均可根據(jù)實際需要進行設置,。另外,該電臺還具有可靠性高,、體積小,、重量輕等特點。
該電臺采用單片射頻集成電路及單片 MCU,,外圍電路少,,電臺與被控端和遙控端的連接如圖1 所示。
將電臺和用戶終端連接好后,,只需打開其附帶的編程軟件Fc211sp,,進行相關設置即可使用,。在這個編程軟件中,可以讀取電臺當前設置,,也可以改變信道,、空中頻率以及端口等的相關設置。由于PLC 與LabVIEW 之間數(shù)據(jù)傳送是雙向的,,所以兩個電臺的設置應當完全一致,。
3.2 LabVIEW 與PLC 的串口通信
利用串口實現(xiàn) LabVIEW 與PLC 之間通信的常用方法一般有兩種,第一種方法是利用VISA 進行串口通信,。VISA 是應用于儀器編程的標準I/O 應用程序接口,,它本身并不具有儀器編程能力,VISA 是調用底層驅動器的高層API,。第二種方法是利用標準串口通信函數(shù)進行串口通信,。LabVIEW 中提供了幾個標準的串口通信函數(shù),包括串口初始化函數(shù),、數(shù)據(jù)寫入串口函數(shù),、從串口讀出數(shù)據(jù)函數(shù)以及關閉端口函數(shù)等。這兩種方法雖然都可是實現(xiàn)LabVIEW 與PLC 的串口通信,,但是前提是程序設計人員必須充分熟悉串口通信的工作原理及LabVIEW 的程序編寫,,并且還需要設置相關的參數(shù)以及出錯處理等,保證串口通信正常進行,,程序編制過程相對比較復雜,。
實際上,LabVIEW 本身就帶有“Instrument I/O Assistant”,,這個I/O 助手可幫助程序設計人員輕松完成串口通信相關參數(shù)的設置,,并實現(xiàn)與相關設備的串口通信。下面就以LabVIEW 與PLC 的串口通信為例說明如何利用I/O 助手實現(xiàn)串口通信,。
I/O 助手可以選擇不同的設備端口,,設定延遲時間以及定義接收和發(fā)送時結尾字符。由于LabVIEW 與PLC 的串口通信是應答式的,,并且設計中以LabVIEW 為主動,,PLC 為被動,所以在“Select Instrument”中要先選擇加入“Write”,,并將其輸入的字符串命名為input,,用以存放給串口的寫入命令,來對PLC 進行讀或寫,,然后選擇加入“Read and Parse”,,并將其輸出的字符串命名為output,用以存放串口中的返回數(shù)據(jù),。設置好的設置界面如圖2 所示,。
松下公司的 PLC 串口通信格式是采用MEWTOCOL 協(xié)議,,所以還要根據(jù)其協(xié)議格式來組織輸入的命令字符串以及分解串口返回的字符串。以向PLC 中寫數(shù)據(jù)為例,,如果要向PLC的DT600 到DT603 四個數(shù)據(jù)單元中分別寫入數(shù)據(jù)100,、200、300,、400,,則輸入字符串,即控制命令字符串應為“%01#WD00600006036400C8002C019001CR”,,其中CR 為校驗碼,,控制命令字符串中的4 個數(shù)據(jù)項應當都為16 進制數(shù)據(jù)。命令字符串的組成可以通過LabVIEW提供的相關函數(shù)來完成,,如圖3 所示,。
其中 XOR 子VI 作用是求取“%01#WD00600006036400C8002C019001CR”這個字符串的校驗碼,其程序可采用LabVIEW 中的相關函數(shù)來編寫,。命令字符串組成完后,,將其賦值給input 字符串變量,然后建立input 字符串變量的一個局部變量,,將其連接到“Instrument I/O Assistant”中input 項,。另外,還要創(chuàng)建一個接收從串口返回的字符串的變量output,,以及為串口通信報錯的error 變量,,并將其都連接至“Instrument I/O Assistant”中的相關項,連接完成后如圖4 所示,。
對于向 PLC 寫入數(shù)據(jù),,如果串口通信正常,則返回字符串output 中將應是“%01$WD13”,,否則將會報錯,,并提示錯誤代碼,錯誤原因可根據(jù)錯誤代碼查閱MEWTOCOL 協(xié)議手冊,。如果是從PLC 中讀出數(shù)據(jù),與向PLC 寫入數(shù)據(jù)相比,,則不僅輸入的命令字符串不同,,而且返回字符串output 的內(nèi)容也不同,返回字符串output 中將包含所讀取的數(shù)據(jù)信息以及其他校驗信息等,,需要從這個字符串中將數(shù)據(jù)信息提取出來,。例如,如果命令是讀取PLC中DT650到DT653 的數(shù)據(jù),,則寫入的命令字符串是“%01RDD0065000653CR”,,其中CR 是校驗碼,。
假設PLC 中這幾個寄存器中的數(shù)據(jù)分別為150、250,、350,、450,則返回的字符串是“%01$RD9600FA005E01C201CR”,,其中CR 是校驗碼,。得到返回字符串后,還需要進一步將其分解,,以便得到相應的數(shù)據(jù),,分解子VI 程序如圖5 所示。
因采用的是應答式串口通信,,當數(shù)據(jù)量很大時,,通信滯后可能是要面臨的一個問題。另外,,因無線通信為保證通信準確率,,在距離較遠的情況下,需要適當調低無線通信的空中頻率,,這也可能會造成串口無線通信的滯后,。當通信的數(shù)據(jù)量較大,可采用數(shù)據(jù)分組的方法,,將所有要交互的數(shù)據(jù)分成若干組,,讓那些實時性要求很高的數(shù)據(jù)在每一組數(shù)據(jù)中都出現(xiàn),而其他數(shù)據(jù)分布再不同的組中,,但每一組的數(shù)據(jù)總量要適中,,程序在每一次循環(huán)內(nèi)只分別對一組數(shù)據(jù)進行讀操作和寫操作,這樣會在很大程度上減少大量數(shù)據(jù)通信滯后帶來的一些問題,。
四,、結束語
本文介紹了利用無線電臺實現(xiàn)LabVIEW 與PLC 之間通過串口的無線通信的方法。這種方法已經(jīng)在某無線遙控模型裝置上通過測試并得到應用,。實踐證明,,這種無線通信方法不僅通信可靠,錯誤率極低,,而且簡單易行,,能完全滿足一些工程實際需求。
本文創(chuàng)新點:采用LabVIEW 中的“Instrument I/O Assistant”模塊與PLC 進行串口通信,,并實現(xiàn)LabVIEW 與PLC 的無線通信,,不僅通信可靠,且簡單易行,。
參考文獻:
?。?] 李春萍,,李頡思.基于LabVIEW 的實時數(shù)據(jù)測量系統(tǒng)的設計[J].微計算機信息,2007,,3-2:270-272
?。?] 戴鵬飛,王勝開等.測試工程與 LabVIEW 應用.北京:電子工業(yè)出版社,,2006
?。?] 石博強,趙德永.LabVIEW6.1 編程技術使用教程.北京:中國鐵道出版社,,2002