LabVIEW Pro 專業論壇-技術討論區-從RS232送來的10筆字串,如何定位顯示於人機介面上呢?
 
     
 
 
 
LabVIEW 討論區基礎教學每月專題分享技術問題精選online Test
技術討論區 程式分享區 教育訓練與認證區 閒話家常區 工作機會討論區 回報區 ✦LabVIEW NXG 特區✦ 高手專訪系列
 熱門關鍵字 
    量測概念充電站    3小時內學會 LabVIEW    CLD 考前衝刺    TOP 資源排行榜    取得 NI 協助
 您的位置:首頁 > 技術討論區 > 從RS232送來的10筆字串,如何定位顯示於人機介面上呢?
  技術討論區   板主:meiae
 之2(18篇)
[1] 2
從RS232送來的10筆字串,如何定位顯示於人機介面上呢? 
 
A121834892
暱稱:Hjchen
經驗值:57
等級:技工
發文:3
回文:14
版本:LabVIEW 2012
闖關狀態:
前往地圖:
 
字級設定

欲無止盡的接收從RS232送來的字串,每10筆為1個循環,也就是第10筆的字串應要覆蓋在第0筆上;第11筆的字串應要覆蓋在第1筆上,第12筆的字串應要覆蓋在第2筆上....;而每筆字串共8個字(char)。RS232部份已會寫,但上述程式於人機介面上寫不出來,請各位先進幫忙解決,感恩囉!

  文章人氣: 2720 讚:0 文章日期:2018/05/01 16:08
jordanwu21

暱稱:Jordan
經驗值:1112
等級:堂主
發文:8
回文:161
版本:LabVIEW 2010
闖關狀態:
飄渺嶺
前往地圖:
1樓
字級設定

可先在最外層Initial一個1X10的字串陣列

之後RS232每收到一個完整字串即依序填入該字串陣列

至於後面第10筆的要覆蓋第0筆的做法

可利用迴圈的索引值(i)來決定要將這次收到的字串填入陣列的哪個位置

將 i 除以10後將其餘數當作填入的陣列位置即可

希望可以幫助到你

    讚:1 文章日期:2018/05/04 13:42
A121834892

暱稱:Hjchen
經驗值:57
等級:技工
發文:3
回文:14
版本:LabVIEW 2012
闖關狀態:
前往地圖:
2樓
字級設定

有道理,我試試!! 感謝先進的指導。

    讚:0 文章日期:2018/05/04 14:53
A121834892

暱稱:Hjchen
經驗值:57
等級:技工
發文:3
回文:14
版本:LabVIEW 2012
闖關狀態:
前往地圖:
3樓
字級設定

Dear Sir,

依先進言,我在1”處,用initialized array產生個array;在2”處,用1000來代表很大的數字,而在for loop中產生除4的餘數,做為取代(4處)列的index,而舊陣列的新值由random 值所取代,但何以會在3”處會有錯呢? 請先進們指正為何?

 
[+]放大圖片
 

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
附件檔案:    
Mod_Err.docx
Mod_Error.zip
    讚:0 文章日期:2018/05/07 09:50
cooltedbea

暱稱:阿堂
經驗值:1895
等級:舵主
發文:2
回文:169
版本:LabVIEW 2011
闖關狀態:
英雄殿
前往地圖:
4樓
字級設定

因為For Loop出來是陣列

需要在節點上按右鍵Disable Indexing

[+]放大圖片
 

如果要無止盡更換資料

可使用While Loop

[+]放大圖片
 

    讚:0 文章日期:2018/05/07 15:15
A121834892

暱稱:Hjchen
經驗值:57
等級:技工
發文:3
回文:14
版本:LabVIEW 2012
闖關狀態:
前往地圖:
5樓
字級設定

1. 感謝先進已解決我大不份問題;然於先進的回應中,若在節點上按右鍵Disable Indexing,雖可連接線,但Array的Index輸入端卻不會被執行到,即Array無法被剃帶掉,Array內容永遠是0。請問如何解決呢?

(當然您最下圖,是一種Solution)

    讚:0 文章日期:2018/05/07 17:26
cooltedbea

暱稱:阿堂
經驗值:1895
等級:舵主
發文:2
回文:169
版本:LabVIEW 2011
闖關狀態:
英雄殿
前往地圖:
6樓
字級設定

因為Replace Array沒有在For迴圈裡

程式會等到For迴圈跑完才將資料放到對應的位置

10000(0~9999)跑到最後9999/4餘3

會把資料放在第四位

所以會看到只有第四位有在改變

如果是要依序改

可能要改成下圖

[+]放大圖片
 

    讚:0 文章日期:2018/05/08 10:48
A121834892

暱稱:Hjchen
經驗值:57
等級:技工
發文:3
回文:14
版本:LabVIEW 2012
闖關狀態:
前往地圖:
7樓
字級設定

阿堂 舵主的指點,完全解決的的疑惑。感謝您。

    讚:0 文章日期:2018/05/08 17:43
A121834892

暱稱:Hjchen
經驗值:57
等級:技工
發文:3
回文:14
版本:LabVIEW 2012
闖關狀態:
前往地圖:
8樓
字級設定

Dear先進們,

現將先進提供的程式套入RS232,但有些卡卡,再請釋疑;因RS232無止盡送來string, 每個string的長度為6個char;每10個string,為1組,即第10個string要覆蓋掉第0個string,第11個string要覆蓋掉第1個string…..;而string的格式為”1.2345”或”4.2345”,即一定有 ”.” (小數點),故:

  1. 下圖在找出小數點(也就是每收到一筆string),若為小數 (若看部到下圖,請看Word檔)

[+]放大圖片
 

2. RS232所讀入的string,要用Replace String Array 來取代;故在下圖中的2(要如何怎麼寫呢?),即每收到一筆string,就要加1 (若看部到下圖,請看Word檔)

[+]放大圖片

3.因上圖,即每收到一筆string,就做1次而已,故要如何於執行完Replace String Array 後,立即跳出While loop 呢?

4.因一直要保留舊string,故加入shift register。

5.麻煩先進們在次協助。

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
附件檔案:    
Vi_Bug.docx
Basic.zip
    讚:0 文章日期:2018/05/12 18:44
cooltedbea

暱稱:阿堂
經驗值:1895
等級:舵主
發文:2
回文:169
版本:LabVIEW 2011
闖關狀態:
英雄殿
前往地圖:
9樓
字級設定

如果下指令只要下一次就可以不斷得到數值

就只要把VISA Read跟字串截取放在同一While Loop裡

[+]放大圖片
 

這樣執行後就會不斷去讀取並判別是否有小數點再取代至陣列中

如果指令也要持續下

再把VISA Write也放進迴圈內

    讚:0 文章日期:2018/05/15 10:30
A121834892

暱稱:Hjchen
經驗值:57
等級:技工
發文:3
回文:14
版本:LabVIEW 2012
闖關狀態:
前往地圖:
10樓
字級設定

感謝阿堂版主回應,我先試試

    讚:0 文章日期:2018/05/15 13:12
 之2(18篇)
[1] 2
 
 
   會員中心 
帳號:
     
密碼:
     
  以後自動登入
 
註冊
   待回覆文章 
1. 使用ULN-2803 驅動高壓幫浦
2. 如何讓元件輸入任何數之後,control 元件中顯示空白?
 
   Top 5 熱門討論 
1. 如何將矩陣內的指定值取出並累計出現次數?
2. 矩陣中數值極限為何?
3. 使用ULN-2803 驅動高壓幫浦
4. 如何讓元件輸入任何數之後,control 元件中顯示空白?
 
 
 
LabVIEW討論區 站長信箱 關於我們 站內聲明
國家儀器股份有限公司贊助;Sponsored by NI.
© 2010 National Instruments, Taiwan. All rights reserved. design by begonia