1. <tr id="bpee3"><rt id="bpee3"></rt></tr>
    2. <s id="bpee3"><dfn id="bpee3"><noscript id="bpee3"></noscript></dfn></s>
      <legend id="bpee3"><p id="bpee3"><xmp id="bpee3">

      <span id="bpee3"><input id="bpee3"></input></span>
    3. <big id="bpee3"><dl id="bpee3"></dl></big>
    4. <button id="bpee3"><mark id="bpee3"><noscript id="bpee3"></noscript></mark></button>

      <legend id="bpee3"></legend>

    5. 銷(xiāo)售電話(huà) 技術(shù)微信
      首頁(yè) > 應用案例 > 綜合控制 > LabVIEW與多臺AI-501儀表的通迅設計

      LabVIEW與多臺AI-501儀表的通迅設計

      發(fā)布日期:2011-06-01 來(lái)源:北京中國科學(xué)院物理研究所 劉海云

      摘要:本項目使用RS232-RS485轉換器把PC與多臺AI-501儀表連接,并通過(guò)LabVIEW編程對這些儀表的進(jìn)行溫度適時(shí)監視。使用這個(gè)方法,同樣可以對其它AI系列儀表進(jìn)行LabVIEW的通迅編程。

      關(guān)鍵詞:RS232-RS485轉換器 LabVIEW 串口初始化函數(VISA Configure Serial Port) 串口寫(xiě)函數(VISA Write) 串口讀函數(VISA Read) 字符處理

      引言:宇電AI系列儀表在國內市場(chǎng)上是有口皆碑的,而且服務(wù)質(zhì)量也是深受好評。但是在宇電的網(wǎng)站上只有用VB編寫(xiě)的通訊代碼,而有部分網(wǎng)友希望得到LabVIEW編寫(xiě)的通訊源代碼。我實(shí)驗室新購入10個(gè)AI-501用于設備烘烤的溫度顯示,于是趁此機會(huì ),我用LabVIEW編寫(xiě)了10個(gè)儀表的通訊代碼,得到每個(gè)儀表的溫度(PV值)并顯示在計算機上。希望這個(gè)程序能給大家一點(diǎn)幫助,其中的錯誤也歡迎大家批評指正。

            本論文分兩部分:一、計算機和多臺AI-501的硬件連接;二、LabVIEW的程序設計。

      一、計算機和10臺AI-501儀表的硬件連接

            使用RS232-RS485轉換器可以很方便的連接計算機和10臺AI-501。具體方案如圖1。RS232-RS485轉換器的RS232端接到計算機,所有儀表并聯(lián)在RS485的A、B端,并設置不同的地址。我設置的10臺AI-501地址分別是:1,2,3,4,5,6,7,8,9,10。

      AI系列儀表數據格式為1個(gè)起始位,8位數據,無(wú)校驗位,1個(gè)或2個(gè)停止位,波特率4800~19200 bit/S。考慮到10臺儀表的數量,為了通訊快速,本項目我使用19200bit/S,經(jīng)過(guò)試驗,效果很好。

      二、LabVIEW的程序設計

      LabVIEW是美國NI公司開(kāi)發(fā)的一款圖形化編程語(yǔ)言。與基于文本的編程語(yǔ)言不同,LabVIEW的程序編寫(xiě)由圖形語(yǔ)言(G語(yǔ)言)、圖標和連線(xiàn)代替文本形式,它使用數據流編程方法描述程序的執行,更加顯得直觀(guān),操作更加方便簡(jiǎn)單。

      LabVIEW用戶(hù)界面主要包括前面板和圖形代碼窗口。前面板類(lèi)似實(shí)際儀表面板,可以放置包括諸如旋鈕、按鈕和文本框等控制和顯示元件。圖形代碼窗口包括以圖標為代表的常數、函數和VI程序等,并通過(guò)連線(xiàn)引導數據流,編寫(xiě)和調試程序都很直觀(guān)方便。

      本程序的前面板如圖2。

      本程序的圖形代碼窗口如圖4.1和4.2。在圖形代碼窗口,為了完成對串口的初始化、寫(xiě)和讀,分別用到串口初始化函數(VISA Configure Serial Port)、串口寫(xiě)函數(VISA Write)和串口讀函數(VISA Read)。另外,由于得到的數據為16進(jìn)制,還用到了一些字節處理函數,使之換算成10進(jìn)制顯示在程序前面板。

            在以下代碼的介紹中,以地址為1的AI-501為例,其它儀表可以直接拷貝得到,把地址改變即可。

            1、 串口的初始化:按如圖4.1A設置串口初始化函數(VISA Configure Serial Port)。其中ASRL6::INSTR表示我計算機擴張出來(lái)的COM6口;Enable Termination設置成False,否則在讀到回車(chē)字節的時(shí)候會(huì )中斷讀串口數據。

      2、 往串口寫(xiě)入讀取型號特征的命令:調用串口寫(xiě)函數(VISA Write函數)共10臺AI501,地址1-10,要發(fā)送的讀命令如下表。需要注意,如圖4.1B,寫(xiě)入的字符串為Hex Display。右鍵點(diǎn)擊與VISA Write函數連接的 String Constant,選擇Hex Display,直接輸入8181521500005315,即讀取地址為1的儀表型號特征。其它地址如下表類(lèi)推。

      AI-501儀表地址     命令(16進(jìn)制)

      1                             8181521500005315

      2                             8282521500005415

      3                             8383521500005515

      4                             8484521500005615

      5                             8585521500005715

      6                             8686521500005815

      7                             8787521500005915

      8                             8888521500005A15

      9                             8989521500005B15

      10                             8A8A521500005C15

             3、讀取串口數據:命令發(fā)送成功后,調用串口讀函數(VISA Read函數)對串口讀取10字節,如圖4.2C。因為無(wú)論是讀還是寫(xiě),儀表都返回以下10個(gè)字節數據(參見(jiàn)《AIBUS通訊協(xié)議說(shuō)明(V7.0)》)

      4、16進(jìn)制數據轉換成10進(jìn)制數據:如圖4.2D,由于讀取串口得到的10字節數據前2字節表示PV值的信息,故調用String Subset函數取出第1、第2字節。再調用String To Byte Array函數使第1、第2字節轉換成Byte Array的第0、第1元素。結束時(shí)調用Index Array函數把兩元素提取出來(lái)成為單獨的10進(jìn)制數。我設置的溫度為1位小數,所以正確的溫度是10進(jìn)制情況下

      PV=(一字節+二字節*256)/10

      數據轉換之后,輸出到前面板相應的顯示件,即為圖1樣式。以上是一個(gè)儀表的代碼,其它儀表除讀命令不同外,代碼一致,直接拷貝即可。


      結語(yǔ):本項目對AI-501儀表進(jìn)行了簡(jiǎn)單的LabVIEW通訊編程,還有很多擴張的余地,比如數據存盤(pán),繪制溫度曲線(xiàn),實(shí)現遠程監控等等。 參考文獻:

      1. 《AIBUS通訊協(xié)議說(shuō)明(V7.0)》

      2.《LabVIEW6.1編程技術(shù)實(shí)用教程》石博強 趙永德等編著(zhù)





      日韩中文字幕在线视频,fc2ppv成年免费视频观看,日韩中文字幕在线免费观看,韩日专区 汉沽区| 九龙县| 桑植县| 涿鹿县| 绥中县| 阿勒泰市| 通河县| 西丰县| 大邑县| 芮城县| 平邑县| 韶山市| 贵港市| 拉孜县| 武功县| 榕江县| 祁连县| 深泽县| 锡林浩特市| 旌德县| 湖州市| 崇义县| 长岛县| 闻喜县| 当雄县| 潜山县| 同仁县| 盱眙县| 阿克陶县| 腾冲县| 青冈县| 乐都县| 邢台县| 鄂托克旗| 西昌市| 武清区| 山西省| 三门县| 保康县| 普格县| 西峡县| http://444 http://444 http://444 http://444 http://444 http://444