基于串口實(shí)現(xiàn)LabVIEW與PLC的無(wú)線通信
其中 XOR 子VI 作用是求取“%01#WD00600006036400C8002C019001CR”這個(gè)字符串的校驗(yàn)碼,其程序可采用LabVIEW 中的相關(guān)函數(shù)來(lái)編寫(xiě)。命令字符串組成完后,將其賦值給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 寫(xiě)入數(shù)據(jù),如果串口通信正常,則返回字符串output 中將應(yīng)是“%01$WD13”,否則將會(huì)報(bào)錯(cuò),并提示錯(cuò)誤代碼,錯(cuò)誤原因可根據(jù)錯(cuò)誤代碼查閱MEWTOCOL 協(xié)議手冊(cè)。如果是從PLC 中讀出數(shù)據(jù),與向PLC 寫(xiě)入數(shù)據(jù)相比,則不僅輸入的命令字符串不同,而且返回字符串output 的內(nèi)容也不同,返回字符串output 中將包含所讀取的數(shù)據(jù)信息以及其他校驗(yàn)信息等,需要從這個(gè)字符串中將數(shù)據(jù)信息提取出來(lái)。例如,如果命令是讀取PLC中DT650到DT653 的數(shù)據(jù),則寫(xiě)入的命令字符串是“%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)行讀操作和寫(xiě)操作,這樣會(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)單易行。本文引用地址:http://www.ex-cimer.com/article/156809.htm
評(píng)論