<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 測試測量 > 設計應用 > LabVIEW串口的編程-使用LabVIEW系統VI

LabVIEW串口的編程-使用LabVIEW系統VI

作者: 時(shí)間:2017-01-09 來(lái)源:網(wǎng)絡(luò ) 收藏
第一部分使用LabVIEW系統VI


一、串口VI介紹
LabVIEW的串口通訊VI位于Instrument I/O Platte的Serial中,包括:

本文引用地址:http://dyxdggzs.com/article/201701/337151.htm
VI名稱(chēng)VI功能
VISA Configure Serial Port初始化VISA resource name指定的串口通訊參數
VISA Write將輸出緩沖區中的數據發(fā)送到VISA resource name指定的串口
VISA Read將VISA resource name指定的串口接收緩沖區中的數據讀取指定字節數的數據到計算機內存中
VISA Serial Break向VISA resource name指定的串口發(fā)送一個(gè)暫停信號
VISA Bytes at Serial Port查詢(xún)VISA resource name指定的串口接收緩沖區中的數據字節數
VISA Close結束與VISA resource name指定的串口資源之間的會(huì )話(huà)
VISA Set I/O Buffer Size設置VISA resource name指定的串口的輸入輸出緩沖區大小
VISA Flush I/O Buffer清空VISA resource name指定的串口的輸入輸出緩沖區

二、使用說(shuō)明
在LabVIEW環(huán)境中使用串口與在其它開(kāi)發(fā)環(huán)境中開(kāi)發(fā)過(guò)程類(lèi)似,基本的流程框圖如下。

圖1、串口操作數據流圖

首先需要調用VISA Configure Serial Port完成串口參數的設置,包括串口資源分配、波特率、數據位、停止位、校驗位和流控等等。

圖2、初始化串口

如果初始化沒(méi)有問(wèn)題,就可以使用這個(gè)串口進(jìn)行數據收發(fā)。發(fā)送數據使用VISA Write,接收數據使用VISA Read。在接收數據之前需要使用VISA Bytes at Serial Port查詢(xún)當前串口接收緩沖區中的數據字節數,如果VISA Read要讀取的字節數大于緩沖區中的數據字節數,VISA Read操作將一直等待,直至Timeout或者緩沖區中的數據字節數達到要求的字節數。當然也可以分批讀取接收緩沖區或者只從中讀取一定字節的數據。

圖3、從串口發(fā)送數據 圖4、從串口接收數據

在某些特殊情況下,需要設置串口接收/發(fā)送緩沖區的大小,此時(shí)可以使用VISA Set I/O Buffer Size;而使用VISA Flush I/O Buffer則可以清空接收與發(fā)送緩沖區。在串口使用結束后,使用VISA Close結束與VISA resource name指定的串口之間的會(huì )話(huà)。

圖5、設置緩沖區大小圖6、 清空緩沖區圖7、結束會(huì )話(huà)/線(xiàn)程

具體的例子可以參考:examplesinstrsmplserl.llb。

第二部分使用MSCOMM控件
在LabVIEW中使用MSCOMM控件,與在VC、VB中使用一樣。同樣可以使用中斷方式進(jìn)行接收。

圖8、使用控件的串口收發(fā)程序

圖9、程序數據流圖

首先通過(guò)LabVIEW的工具菜單“Tools >> Advanced >> Import ActiveX Controls”將Microsoft的串口控件-“Microsoft Communications Control,version 6.0”添加到LabVIEW環(huán)境中,存放在缺省路徑即可,這樣在User Controls Palette里面可以找到這個(gè)控件。

圖10、添加ActiveX控件菜單

圖11、選擇添加用戶(hù)控件

圖12、用戶(hù)控件
將串口控件放置在Front Panel上,在框圖程序中用控件屬性對其進(jìn)行編程,實(shí)現所需要的功能。
注意:一個(gè)串口資源要有一個(gè)MSCOMM控件與之相對應。[page]

第三部分 注意事項
一、串口通訊的波特率設置要精確,比如要求9600的波特率,則晶振應選擇11.0593MHz或其倍數。

二、由于通常情況下LabVIEW串口VI接收或發(fā)送的都是字符串(Normal),所以如果需要發(fā)送或接收十六進(jìn)制數值(Hex),請在發(fā)送或接收之前進(jìn)行必要的轉換。

2.1、數值型數據的處理方法:

  1. 如果這些數據是靜態(tài)的,也就說(shuō)在程序設計階段要傳輸的數據就已經(jīng)確定了,在這種情況下,首先設置VISA Write的write buffer的顯示屬性為Hex Display,然后直接輸入要發(fā)送的16進(jìn)制字符串就可以了。串口設備的控制命令通常是由一個(gè)或多個(gè)16進(jìn)制字符組成的,當我們需要對其進(jìn)行控制時(shí)經(jīng)常會(huì )采用這種方法發(fā)送控制命令。
  2. 數據是動(dòng)態(tài)的;即要傳輸的數值型數據是動(dòng)態(tài)產(chǎn)生和變化的,在發(fā)送之前首先要將其轉換成對應的16進(jìn)制字符串,才能賦給VISA Write發(fā)送。將這些數據構成一個(gè)數組,用Byte Array To String進(jìn)行轉換,轉換的結果就是對應數組數值的字符串,可以提交VISA Write發(fā)送?;蛘呤褂肨ype Cast也可以實(shí)現同樣的功能。


圖13、串口數據轉換界面

圖14、 串口數據轉換數據流圖

圖15、操作界面

圖16、單片機C程序

2.2、字符串型數據的處理方法:
我們在處理過(guò)程當中,傳輸的數據可能具有一定格式或協(xié)議,比如一個(gè)完整的數據幀包括起始段、數據段、校驗段等等,而每一段往往又有幾個(gè)部分組成,這幾個(gè)部分的類(lèi)型和長(cháng)度可能又不盡相同,可能是數值型的,可能是字符型的,也可能是布爾型的,單字節或者是多字節。此時(shí)我們往往都采用統一的字符形式來(lái)處理這些數據,因此有時(shí)候我們說(shuō),字符是LabVIEW里最方便的數據類(lèi)型。

經(jīng)過(guò)打包的字符數據要經(jīng)過(guò)串口發(fā)送需要進(jìn)行必要的轉換,否則傳輸將出錯。比如我們打包過(guò)后需要發(fā)送的的字符串為:34 12 56 78 94(空格為了區分),如果直接將其賦給VISA Write發(fā)送,串口上的數據將是:33 34 31 32 35 36 37 38 39 34。正確的轉換程序如下。

圖17、字符型數據處理

數據接收:
從計算機串口接收到的數據是16進(jìn)制的ASCII碼,要轉換成對應的數值型數據,可以使用String To Byte Array或者Type Cast。

三、LabVIEW串口VI不能使用中斷方式傳輸。



關(guān)鍵詞: LabVIEW串口編

評論


技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>