labview串口被動接收數(shù)據(jù)
一、電機轉(zhuǎn)數(shù)
在機械廠成功獲取電機轉(zhuǎn)數(shù),在串口接線時,把VCC、RXD、TXD、GND四根線都接上,其中VCC-8,GND-9,RXD-10,TXD-11。其中TTL-232電平轉(zhuǎn)換模塊的電源輸入可以從VCC輸入,即在電腦-電機控制器-開發(fā)板三者連接中,可以由電腦的VCC端來供電。
二、labview串口被動接收數(shù)據(jù)
這里labview被動接收傳感器發(fā)送來的數(shù)據(jù),即在開發(fā)板獲取傳感器的數(shù)據(jù)來進(jìn)行計算控制時,labview用來數(shù)據(jù)的采集。
?這里可以參考下面這篇文章,接下去具體分析自己編的labview程序。http://www.docin.com/p-148766261.html#0-tsina-1-61364-397232819ff9a47a7b7e80a40613cfe1
?labview串口配置和指令發(fā)送這是labview串口配置和指令發(fā)送,指令發(fā)送用于主動發(fā)送再接收時,此處不需要用到該模塊,直接將if結(jié)構(gòu)置假即可,或者直接刪除。這其中用到的CRC子vi主要是在輸入指令不同時自己計算出校驗位,如果程序始終只用到一個電機運行速度讀取命令,可以直接手工計算并發(fā)送校驗位。
由于被動接收數(shù)據(jù),所以接收到的數(shù)據(jù)不一定是剛剛好從標(biāo)識位開始,所以要進(jìn)行識別。這里用到while循環(huán)的移位寄存器,每次連續(xù)讀取15位,因為一串完整的命令為8位,所以連續(xù)15位中肯定存在一組完整的數(shù)據(jù),但這樣讀取數(shù)據(jù)的弊端在于每讀取一串?dāng)?shù)據(jù)必定損失掉一串?dāng)?shù)據(jù),考慮到labview讀取的速度跟不上傳感器發(fā)送數(shù)據(jù)的速度,所以這其中會損失掉很多數(shù)據(jù),但讀取的數(shù)據(jù)還是可以整體上反應(yīng)出傾角傳感器傾角的變化情況。
?串口數(shù)據(jù)讀入并尋找?guī)^?未找到幀頭讀取15位數(shù)據(jù)后進(jìn)行幀頭尋找,第一位為68,第二位為07,注意都是16進(jìn)制表示的。如果找到幀頭,就輸出幀頭索引值,如果找不到幀頭就將索引值置為14,即最后一位,使得后面索引到的數(shù)據(jù)都為0,即傾角為0。
?數(shù)組索引和數(shù)值轉(zhuǎn)化根據(jù)通信協(xié)議,將索引值開始的3位數(shù)據(jù)讀出并轉(zhuǎn)為所需要的角度值,注意正負(fù)的轉(zhuǎn)換。
三、接線問題
在傾角傳感器-開發(fā)板-電腦labview連接中,開發(fā)板和傳感器之間嚴(yán)格進(jìn)行著發(fā)送一串?dāng)?shù)據(jù)接收一串?dāng)?shù)據(jù)的傳輸,而電腦labview只是來接收傳感器數(shù)據(jù),所以電腦labview只用RXD端連接傳感器的TXD端,TXD置空,因為發(fā)現(xiàn)TXD如果接入三者連線中,會導(dǎo)致單片機和傳感器間發(fā)送接收異常,這個問題在電機控制器-開發(fā)板-電腦labview中應(yīng)該注意避免。