當(dāng)前位置:廈門宇電自動(dòng)化科技有限公司>>技術(shù)文章>>LabVIEW與多臺(tái)AI-501儀表的通迅設(shè)計(jì)
LabVIEW與多臺(tái)AI-501儀表的通迅設(shè)計(jì)
LabVIEW與多臺(tái)AI-501儀表的通迅設(shè)計(jì)
北京中國(guó)科學(xué)院物理研究所 劉海云
摘要:本項(xiàng)目使用RS232-RS485轉(zhuǎn)換器把PC與多臺(tái)AI-501儀表連接,,并通過LabVIEW編程對(duì)這些儀表的進(jìn)行溫度適時(shí)監(jiān)視,。使用這個(gè)方法,,同樣可以對(duì)其它AI系列儀表進(jìn)行LabVIEW的通迅編程,。
關(guān)鍵詞:RS232-RS485轉(zhuǎn)換器 LabVIEW 串口初始化函數(shù)(VISA Configure Serial Port) 串口寫函數(shù)(VISA Write) 串口讀函數(shù)(VISA Read) 字符處理
引言:
宇電AI系列儀表在國(guó)內(nèi)市場(chǎng)上是有口皆碑的,,而且服務(wù)質(zhì)量也是國(guó)內(nèi),。但是在宇電的上只有用VB編寫的通訊代碼,,而有部分網(wǎng)友希望得到LabVIEW編寫的通訊源代碼,。zui近我實(shí)驗(yàn)室購(gòu)入10個(gè)AI-501用于設(shè)備烘烤的溫度顯示,于是趁此機(jī)會(huì),,我用LabVIEW編寫了10個(gè)儀表的通訊代碼,,得到每個(gè)儀表的溫度(PV值)并顯示在計(jì)算機(jī)上。希望這個(gè)程序能給大家一點(diǎn)幫助,其中的錯(cuò)誤也歡迎大家批評(píng)指正,。
本論文分兩部分:*,、計(jì)算機(jī)和多臺(tái)AI-501的硬件連接;第二,、LabVIEW的程序設(shè)計(jì),。
一、計(jì)算機(jī)和10臺(tái)AI-501儀表的硬件連接
使用RS232-RS485轉(zhuǎn)換器可以很方便的連接計(jì)算機(jī)和10臺(tái)AI-501,。具體方案如圖1,。RS232-RS485轉(zhuǎn)換器的RS232端接到計(jì)算機(jī),所有儀表并聯(lián)在RS485的A,、B端,,并設(shè)置不同的地址。我設(shè)置的10臺(tái)AI-501地址分別是:1,,2,,3,4,,5,,6,7,,8,,9,10,。
AI系列儀表數(shù)據(jù)格式為1個(gè)起始位,,8位數(shù)據(jù),無校驗(yàn)位,,1個(gè)或2個(gè)停止位,,波特率4800~19200 bit/S??紤]到10臺(tái)儀表的數(shù)量,,為了通訊快速,本項(xiàng)目我使用19200bit/S,,經(jīng)過試驗(yàn),,效果很好。
二,、LabVIEW的程序設(shè)計(jì)
LabVIEW是美國(guó)NI公司開發(fā)的一款非常的圖形化編程語言,。與基于文本的編程語言不同,LabVIEW的程序編寫由圖形語言(G語言),、圖標(biāo)和連線代替文本形式,,它使用數(shù)據(jù)流編程方法描述程序的執(zhí)行,更加顯得直觀,操作更加方便簡(jiǎn)單,。
LabVIEW用戶界面主要包括前面板和圖形代碼窗口,。前面板類似實(shí)際儀表面板,可以放置包括諸如旋鈕,、按鈕和文本框等控制和顯示元件,。圖形代碼窗口包括以圖標(biāo)為代表的常數(shù)、函數(shù)和VI程序等,,并通過連線引導(dǎo)數(shù)據(jù)流,編寫和調(diào)試程序都很直觀方便,。
本程序的前面板如圖2,。
本程序的圖形代碼窗口如圖4.1和4.2。在圖形代碼窗口,,為了完成對(duì)串口的初始化,、寫和讀,分別用到串口初始化函數(shù)(VISA Configure Serial Port),、串口寫函數(shù)(VISA Write)和串口讀函數(shù)(VISA Read),。另外,由于得到的數(shù)據(jù)為16進(jìn)制,,還用到了一些字節(jié)處理函數(shù),,使之換算成10進(jìn)制顯示在程序前面板。
在以下代碼的介紹中,,以地址為1的AI-501為例,,其它儀表可以直接拷貝得到,把地址改變即可,。
結(jié)語:本項(xiàng)目對(duì)AI-501儀表進(jìn)行了簡(jiǎn)單的LabVIEW通訊編程,,還有很多擴(kuò)張的余地,比如數(shù)據(jù)存盤,,繪制溫度曲線,,實(shí)現(xiàn)遠(yuǎn)程監(jiān)控等等。 參考文獻(xiàn): 1,、 串口的初始化:按如圖4.1A設(shè)置串口初始化函數(shù)(VISA Configure Serial Port),。其中ASRL6::INSTR表示我計(jì)算機(jī)擴(kuò)張出來的COM6口;Enable Termination設(shè)置成False,,否則在讀到回車字節(jié)的時(shí)候會(huì)中斷讀串口數(shù)據(jù),。
2、 往串口寫入讀取型號(hào)特征的命令:調(diào)用串口寫函數(shù)(VISA Write函數(shù))共10臺(tái)AI501,,地址1-10,,要發(fā)送的讀命令如下表。需要注意,如圖4.1B,,寫入的字符串為Hex Display,。右鍵點(diǎn)擊與VISA Write函數(shù)連接的 String Constant,選擇Hex Display,,直接輸入8181521500005315,,即讀取地址為1的儀表型號(hào)特征。其它地址如下表類推,。
AI-501儀表地址 命令(16進(jìn)制)
1 8181521500005315
2 8282521500005415
3 8383521500005515
4 8484521500005615
5 8585521500005715
6 8686521500005815
7 8787521500005915
8 88885215000015
9 8989521500005B15
10 8A8A521500005C15
3,、讀取串口數(shù)據(jù):命令發(fā)送成功后,調(diào)用串口讀函數(shù)(VISA Read函數(shù))對(duì)串口讀取10字節(jié),,如圖4.2C,。因?yàn)闊o論是讀還是寫,儀表都返回以下10個(gè)字節(jié)數(shù)據(jù)(參見《AIBUS通訊協(xié)議說明(V7.0)》)
4,、16進(jìn)制數(shù)據(jù)轉(zhuǎn)換成10進(jìn)制數(shù)據(jù):如圖4.2D,,由于讀取串口得到的10字節(jié)數(shù)據(jù)前2字節(jié)表示PV值的信息,故調(diào)用String Subset函數(shù)取出第1,、第2字節(jié),。再調(diào)用String To Byte Array函數(shù)使第1、第2字節(jié)轉(zhuǎn)換成Byte Array的第0,、第1元素,。zui后調(diào)用Index Array函數(shù)把兩元素提取出來成為單獨(dú)的10進(jìn)制數(shù)。我設(shè)置的溫度為1位小數(shù),,所以正確的溫度是10進(jìn)制情況下
PV=(*字節(jié)+第二字節(jié)*256)/10
數(shù)據(jù)轉(zhuǎn)換之后,,輸出到前面板相應(yīng)的顯示件,即為圖1樣式,。以上是一個(gè)儀表的代碼,,其它儀表除讀命令不同外,代碼一致,,直接拷貝即可,。
1. 《AIBUS通訊協(xié)議說明(V7.0)》
2.《LabVIEW6.1編程技術(shù)實(shí)用教程》石博強(qiáng) 趙永德等編著