基于串口實(shí)現(xiàn)LabVIEW與PLC的無線通信
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ū)動器的高層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)行,程序編制過程相對比較復(fù)雜。
實(shí)際上,LabVIEW 本身就帶有“Instrument I/O Assistant”,這個(gè)I/O 助手可幫助程序設(shè)計(jì)人員輕松完成串口通信相關(guān)參數(shù)的設(shè)置,并實(shí)現(xiàn)與相關(guān)設(shè)備的串口通信。下面就以LabVIEW 與PLC 的串口通信為例說明如何利用I/O 助手實(shí)現(xiàn)串口通信。
I/O 助手可以選擇不同的設(shè)備端口,設(shè)定延遲時(shí)間以及定義接收和發(fā)送時(shí)結(jié)尾字符。由于LabVIEW 與PLC 的串口通信是應(yīng)答式的,并且設(shè)計(jì)中以LabVIEW 為主動,PLC 為被動,所以在“Select Instrument”中要先選擇加入“Write”,并將其輸入的字符串命名為input,用以存放給串口的寫入命令,來對PLC 進(jìn)行讀或?qū)?,然后選擇加入“Read and Parse”,并將其輸出的字符串命名為output,用以存放串口中的返回?cái)?shù)據(jù)。設(shè)置好的設(shè)置界面如圖2 所示。
松下公司的 PLC 串口通信格式是采用MEWTOCOL 協(xié)議,所以還要根據(jù)其協(xié)議格式來組織輸入的命令字符串以及分解串口返回的字符串。以向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ù)。命令字符串的組成可以通過LabVIEW提供的相關(guān)函數(shù)來完成,如圖3 所示。
評論