《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 模擬設(shè)計(jì) > 解決方案 > 基于串口實(shí)現(xiàn)LabVIEW與PLC的無(wú)線通信

基于串口實(shí)現(xiàn)LabVIEW與PLC的無(wú)線通信

2010-12-24
關(guān)鍵詞: 接口IC LabView PLC 無(wú)線通信

  一、引言

  LabVIEW(Laboratory Virtual Instrument Engineering Workbench)是美國(guó)國(guó)家儀器公司(National Instruments)推出一種基于圖形語(yǔ)言(G 語(yǔ)言)的開發(fā)環(huán)境,編程非常方便,人機(jī)交互界面直觀友好,用戶可以創(chuàng)建獨(dú)立的可執(zhí)行文件,能夠脫離開發(fā)環(huán)境而單獨(dú)運(yùn)行,是目前最流行的虛擬儀器編程平臺(tái),廣泛應(yīng)用于測(cè)試測(cè)量、過(guò)程控制、實(shí)驗(yàn)室研究與自動(dòng)化等方面。

  可編程控制器(Programmable Logic Controller,簡(jiǎn)稱PLC)是將計(jì)算機(jī)技術(shù)、通信技術(shù)和自動(dòng)控制技術(shù)結(jié)合在一起的自動(dòng)控制設(shè)備,具有可靠性高、體積小、功耗低、抗干擾能力強(qiáng)等諸多優(yōu)點(diǎn),保證其在溫度和濕度都較高、空間較小、工作環(huán)境惡劣的環(huán)境下穩(wěn)定、可靠、長(zhǎng)時(shí)間連續(xù)地工作。

  將 LabVIEW 與PLC 結(jié)合起來(lái)應(yīng)用于工程實(shí)踐,不僅可以大大降低成本、縮短開發(fā)周期,而且可以使得控制操作方便、界面美觀。

  二、應(yīng)用背景

  在某遙控模型裝置的研制過(guò)程中,因被遙控裝置的體積小、重量輕、內(nèi)部結(jié)構(gòu)復(fù)雜,以及其惡劣的工作環(huán)境決定了不適合在裝置內(nèi)部安裝普通計(jì)算機(jī),所以選用體積小重量輕、工作可靠的松下公司FPE 型PLC 來(lái)作為被遙控裝置被控端的主控單元。該型號(hào)的PLC 有16點(diǎn)輸入和16 點(diǎn)輸出,程序容量可達(dá)32KB。PLC 在遙控裝置中的作用主要是采集模型裝置的狀態(tài)、接收遙控端的控制信號(hào)以及驅(qū)動(dòng)電機(jī)等。遙控端選用普通計(jì)算機(jī),作用主要是負(fù)責(zé)讀取PLC 中模型裝置的相關(guān)動(dòng)態(tài)數(shù)據(jù)并進(jìn)行相關(guān)運(yùn)算、根據(jù)具體工作模式給PLC 端自動(dòng)發(fā)送控制信號(hào)或者通過(guò)采集人工輸入信號(hào)并將其發(fā)送給被遙控裝置的PLC。

  鑒于 LabVIEW 軟件可方便實(shí)現(xiàn)數(shù)據(jù)采集和信號(hào)處理,具有強(qiáng)大的外部接口能力,而且采用LabVIEW 編寫控制程序主界面的既簡(jiǎn)單美觀,又能節(jié)約開發(fā)時(shí)間,大大提高了程序設(shè)計(jì)效率等優(yōu)點(diǎn),遙控端的控制程序采用LabVIEW 編寫。

  一、引言

  LabVIEW(Laboratory Virtual Instrument Engineering Workbench)是美國(guó)國(guó)家儀器公司(National Instruments)推出一種基于圖形語(yǔ)言(G 語(yǔ)言)的開發(fā)環(huán)境,編程非常方便,人機(jī)交互界面直觀友好,用戶可以創(chuàng)建獨(dú)立的可執(zhí)行文件,能夠脫離開發(fā)環(huán)境而單獨(dú)運(yùn)行,是目前最流行的虛擬儀器編程平臺(tái),廣泛應(yīng)用于測(cè)試測(cè)量、過(guò)程控制、實(shí)驗(yàn)室研究與自動(dòng)化等方面。

  可編程控制器(Programmable Logic Controller,簡(jiǎn)稱PLC)是將計(jì)算機(jī)技術(shù)、通信技術(shù)和自動(dòng)控制技術(shù)結(jié)合在一起的自動(dòng)控制設(shè)備,具有可靠性高、體積小、功耗低、抗干擾能力強(qiáng)等諸多優(yōu)點(diǎn),保證其在溫度和濕度都較高、空間較小、工作環(huán)境惡劣的環(huán)境下穩(wěn)定、可靠、長(zhǎng)時(shí)間連續(xù)地工作。

  將 LabVIEW 與PLC 結(jié)合起來(lái)應(yīng)用于工程實(shí)踐,不僅可以大大降低成本、縮短開發(fā)周期,而且可以使得控制操作方便、界面美觀。

  二、應(yīng)用背景

  在某遙控模型裝置的研制過(guò)程中,因被遙控裝置的體積小、重量輕、內(nèi)部結(jié)構(gòu)復(fù)雜,以及其惡劣的工作環(huán)境決定了不適合在裝置內(nèi)部安裝普通計(jì)算機(jī),所以選用體積小重量輕、工作可靠的松下公司FPE 型PLC 來(lái)作為被遙控裝置被控端的主控單元。該型號(hào)的PLC 有16點(diǎn)輸入和16 點(diǎn)輸出,程序容量可達(dá)32KB。PLC 在遙控裝置中的作用主要是采集模型裝置的狀態(tài)、接收遙控端的控制信號(hào)以及驅(qū)動(dòng)電機(jī)等。遙控端選用普通計(jì)算機(jī),作用主要是負(fù)責(zé)讀取PLC 中模型裝置的相關(guān)動(dòng)態(tài)數(shù)據(jù)并進(jìn)行相關(guān)運(yùn)算、根據(jù)具體工作模式給PLC 端自動(dòng)發(fā)送控制信號(hào)或者通過(guò)采集人工輸入信號(hào)并將其發(fā)送給被遙控裝置的PLC。

  鑒于 LabVIEW 軟件可方便實(shí)現(xiàn)數(shù)據(jù)采集和信號(hào)處理,具有強(qiáng)大的外部接口能力,而且采用LabVIEW 編寫控制程序主界面的既簡(jiǎn)單美觀,又能節(jié)約開發(fā)時(shí)間,大大提高了程序設(shè)計(jì)效率等優(yōu)點(diǎn),遙控端的控制程序采用LabVIEW 編寫。

  三、LavVIEW 與PLC 的無(wú)線通信

  由于模型裝置的遙控端和被控端相隔的距離較遠(yuǎn),為方便控制被控裝置的運(yùn)動(dòng),所以考慮采用無(wú)線通信的方式讓遙控端與被控端進(jìn)行通信聯(lián)系。LabVIEW 與PLC 之間的通信通常是采用串口方式,為此只需在這兩者之間架設(shè)無(wú)線電臺(tái),并以無(wú)線電臺(tái)為橋梁實(shí)現(xiàn)LabVIEW與PLC 之間通過(guò)串口進(jìn)行無(wú)線通信。

  3.1 無(wú)線電臺(tái)及其與終端的連接

  我們采用深圳市友訊達(dá)科技發(fā)展有限公司生產(chǎn)的 FC211LP 微功率無(wú)線數(shù)傳模塊作為無(wú)線電臺(tái)。該電臺(tái)工作頻率在ISM 頻段(載波頻率433MHz),基于FSK 的調(diào)制方式,采用高效信道編碼技術(shù),提高了數(shù)據(jù)抗突發(fā)干擾和隨機(jī)干擾的能力。其傳輸性能優(yōu)良,接口多樣,且設(shè)置使用方便,共提供三種內(nèi)部接口方式:TTL/RS232/RS485,并提供透明的數(shù)據(jù)接口,接口波特率為1200/2400/4800/9600Bit/s,空中波特率為1200/2400/4800/9600Bit/s,用戶均可根據(jù)實(shí)際需要進(jìn)行設(shè)置。另外,該電臺(tái)還具有可靠性高、體積小、重量輕等特點(diǎn)。

  該電臺(tái)采用單片射頻集成電路及單片 MCU,外圍電路少,電臺(tái)與被控端和遙控端的連接如圖1 所示。

  

  將電臺(tái)和用戶終端連接好后,只需打開其附帶的編程軟件Fc211sp,進(jìn)行相關(guān)設(shè)置即可使用。在這個(gè)編程軟件中,可以讀取電臺(tái)當(dāng)前設(shè)置,也可以改變信道、空中頻率以及端口等的相關(guān)設(shè)置。由于PLC 與LabVIEW 之間數(shù)據(jù)傳送是雙向的,所以兩個(gè)電臺(tái)的設(shè)置應(yīng)當(dāng)完全一致。

  3.2 LabVIEW 與PLC 的串口通信

  利用串口實(shí)現(xiàn) LabVIEW 與PLC 之間通信的常用方法一般有兩種,第一種方法是利用VISA 進(jìn)行串口通信。VISA 是應(yīng)用于儀器編程的標(biāo)準(zhǔn)I/O 應(yīng)用程序接口,它本身并不具有儀器編程能力,VISA 是調(diào)用底層驅(qū)動(dòng)器的高層API。第二種方法是利用標(biāo)準(zhǔn)串口通信函數(shù)進(jìn)行串口通信。LabVIEW 中提供了幾個(gè)標(biāo)準(zhǔn)的串口通信函數(shù),包括串口初始化函數(shù)、數(shù)據(jù)寫入串口函數(shù)、從串口讀出數(shù)據(jù)函數(shù)以及關(guān)閉端口函數(shù)等。這兩種方法雖然都可是實(shí)現(xiàn)LabVIEW 與PLC 的串口通信,但是前提是程序設(shè)計(jì)人員必須充分熟悉串口通信的工作原理及LabVIEW 的程序編寫,并且還需要設(shè)置相關(guān)的參數(shù)以及出錯(cuò)處理等,保證串口通信正常進(jìn)行,程序編制過(guò)程相對(duì)比較復(fù)雜。

  實(shí)際上,LabVIEW 本身就帶有“Instrument I/O Assistant”,這個(gè)I/O 助手可幫助程序設(shè)計(jì)人員輕松完成串口通信相關(guān)參數(shù)的設(shè)置,并實(shí)現(xiàn)與相關(guān)設(shè)備的串口通信。下面就以LabVIEW 與PLC 的串口通信為例說(shuō)明如何利用I/O 助手實(shí)現(xiàn)串口通信。

  I/O 助手可以選擇不同的設(shè)備端口,設(shè)定延遲時(shí)間以及定義接收和發(fā)送時(shí)結(jié)尾字符。由于LabVIEW 與PLC 的串口通信是應(yīng)答式的,并且設(shè)計(jì)中以LabVIEW 為主動(dòng),PLC 為被動(dòng),所以在“Select Instrument”中要先選擇加入“Write”,并將其輸入的字符串命名為input,用以存放給串口的寫入命令,來(lái)對(duì)PLC 進(jìn)行讀或?qū)?,然后選擇加入“Read and Parse”,并將其輸出的字符串命名為output,用以存放串口中的返回?cái)?shù)據(jù)。設(shè)置好的設(shè)置界面如圖2 所示。

  

  松下公司的 PLC 串口通信格式是采用MEWTOCOL 協(xié)議,所以還要根據(jù)其協(xié)議格式來(lái)組織輸入的命令字符串以及分解串口返回的字符串。以向PLC 中寫數(shù)據(jù)為例,如果要向PLC的DT600 到DT603 四個(gè)數(shù)據(jù)單元中分別寫入數(shù)據(jù)100、200、300、400,則輸入字符串,即控制命令字符串應(yīng)為“%01#WD00600006036400C8002C019001CR”,其中CR 為校驗(yàn)碼,控制命令字符串中的4 個(gè)數(shù)據(jù)項(xiàng)應(yīng)當(dāng)都為16 進(jìn)制數(shù)據(jù)。命令字符串的組成可以通過(guò)LabVIEW提供的相關(guān)函數(shù)來(lái)完成,如圖3 所示。

  

  其中 XOR 子VI 作用是求取“%01#WD00600006036400C8002C019001CR”這個(gè)字符串的校驗(yàn)碼,其程序可采用LabVIEW 中的相關(guān)函數(shù)來(lái)編寫。命令字符串組成完后,將其賦值給input 字符串變量,然后建立input 字符串變量的一個(gè)局部變量,將其連接到“Instrument I/O Assistant”中input 項(xiàng)。另外,還要?jiǎng)?chuàng)建一個(gè)接收從串口返回的字符串的變量output,以及為串口通信報(bào)錯(cuò)的error 變量,并將其都連接至“Instrument I/O Assistant”中的相關(guān)項(xiàng),連接完成后如圖4 所示。

  

  對(duì)于向 PLC 寫入數(shù)據(jù),如果串口通信正常,則返回字符串output 中將應(yīng)是“%01$WD13”,否則將會(huì)報(bào)錯(cuò),并提示錯(cuò)誤代碼,錯(cuò)誤原因可根據(jù)錯(cuò)誤代碼查閱MEWTOCOL 協(xié)議手冊(cè)。如果是從PLC 中讀出數(shù)據(jù),與向PLC 寫入數(shù)據(jù)相比,則不僅輸入的命令字符串不同,而且返回字符串output 的內(nèi)容也不同,返回字符串output 中將包含所讀取的數(shù)據(jù)信息以及其他校驗(yàn)信息等,需要從這個(gè)字符串中將數(shù)據(jù)信息提取出來(lái)。例如,如果命令是讀取PLC中DT650到DT653 的數(shù)據(jù),則寫入的命令字符串是“%01RDD0065000653CR”,其中CR 是校驗(yàn)碼。

  假設(shè)PLC 中這幾個(gè)寄存器中的數(shù)據(jù)分別為150、250、350、450,則返回的字符串是“%01$RD9600FA005E01C201CR”,其中CR 是校驗(yàn)碼。得到返回字符串后,還需要進(jìn)一步將其分解,以便得到相應(yīng)的數(shù)據(jù),分解子VI 程序如圖5 所示。

  

  因采用的是應(yīng)答式串口通信,當(dāng)數(shù)據(jù)量很大時(shí),通信滯后可能是要面臨的一個(gè)問(wèn)題。另外,因無(wú)線通信為保證通信準(zhǔn)確率,在距離較遠(yuǎn)的情況下,需要適當(dāng)調(diào)低無(wú)線通信的空中頻率,這也可能會(huì)造成串口無(wú)線通信的滯后。當(dāng)通信的數(shù)據(jù)量較大,可采用數(shù)據(jù)分組的方法,將所有要交互的數(shù)據(jù)分成若干組,讓那些實(shí)時(shí)性要求很高的數(shù)據(jù)在每一組數(shù)據(jù)中都出現(xiàn),而其他數(shù)據(jù)分布再不同的組中,但每一組的數(shù)據(jù)總量要適中,程序在每一次循環(huán)內(nèi)只分別對(duì)一組數(shù)據(jù)進(jìn)行讀操作和寫操作,這樣會(huì)在很大程度上減少大量數(shù)據(jù)通信滯后帶來(lái)的一些問(wèn)題。

  四、結(jié)束語(yǔ)

  本文介紹了利用無(wú)線電臺(tái)實(shí)現(xiàn)LabVIEW 與PLC 之間通過(guò)串口的無(wú)線通信的方法。這種方法已經(jīng)在某無(wú)線遙控模型裝置上通過(guò)測(cè)試并得到應(yīng)用。實(shí)踐證明,這種無(wú)線通信方法不僅通信可靠,錯(cuò)誤率極低,而且簡(jiǎn)單易行,能完全滿足一些工程實(shí)際需求。

  本文創(chuàng)新點(diǎn):采用LabVIEW 中的“Instrument I/O Assistant”模塊與PLC 進(jìn)行串口通信,并實(shí)現(xiàn)LabVIEW 與PLC 的無(wú)線通信,不僅通信可靠,且簡(jiǎn)單易行。

  參考文獻(xiàn):

  [1] 李春萍,李頡思.基于LabVIEW 的實(shí)時(shí)數(shù)據(jù)測(cè)量系統(tǒng)的設(shè)計(jì)[J].微計(jì)算機(jī)信息,2007,3-2:270-272

  [2] 戴鵬飛,王勝開等.測(cè)試工程與 LabVIEW 應(yīng)用.北京:電子工業(yè)出版社,2006

 ?。?] 石博強(qiáng),趙德永.LabVIEW6.1 編程技術(shù)使用教程.北京:中國(guó)鐵道出版社,2002

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無(wú)法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問(wèn)題,請(qǐng)及時(shí)通過(guò)電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。