使用RS-232範例來試作作儀器控制時發生的問題

小弟今天要將一台儀器由GPIB改為使用RS232來控制
因為沒用過RS232來控制過儀器,所以選擇先利用LABVIEW上的EXAMPLE來試著讀值


選擇COM1後執行,VISA都沒有ERROR,但是在後面read visa那邊讀取的byte被給了 " 0 " ,所以甚麼都沒讀到。

於是自己擅自的給了個值去讀,卻發生了ERROR


請問這是為什麼呢???   m(_ _)m

對於使用RS232來儀器控制這邊完全不熟,希望前輩們多給予指導,感謝不盡~~~~

K666666641115.790462963

可以到以下網址搜尋儀器驅動看看

http://www.ni.com/downloads/idnet/

請問你使用的儀器型號是什麼? 如果有儀器的programmer guide,也請上傳上來喔。

1.你可能有另外的程式占用到RS232通道

2.在寫入之前再加個500ms的延遲

3.labview用左上的執行鈕執行似乎一開始有不明確的時間延遲(這個是我的經驗,也許是我的錯覺),所以你可以試試第二點。

><span =“bold”>ancle
沒有搜尋到XD

><span =“bold”>Benjamin
<span =“bold”>EXFO的光衰減器  FVA-3150
http://documents.exfo.com/Products/UserGuides/User%20Guide%20FVA-3150%20English%20(1058928).pdf?EXFOCampaigns=UserGuides

><span =“bold”>bahamut
我試試看!感謝~~


感謝以上幾位前輩的協助,我先檢查及試試看,有最新消息再上來更新!


有類似的型號

http://sine.ni.com/apps/utf8/niid_web_display.model_page?p_model_id=17764

[QUOTE=K6666666]
小弟今天要將一台儀器由GPIB改為使用RS232來控制
因為沒用過RS232來控制過儀器,所以選擇先利用LABVIEW上的EXAMPLE來試著讀值

選擇COM1後執行,VISA都沒有ERROR,但是在後面read visa那邊讀取的byte被給了 " 0 " ,所以甚麼都沒讀到。
[/QUOTE] 
因為你的RS232通道沒有等待讀取的資料,所以回傳了0給你

[QUOTE=K6666666]  於是自己擅自的給了個值去讀,卻發生了ERROR

[/QUOTE]
因為沒有資料而你又強制要讀取50 bytes回來,所以會ERROR

你可能要查一下write出去是不是儀器看不懂的命令所以不會有回應,或者是接線、通道本身有問題而沒有回應 
IAmRice41116.5099421296

直接使用ancle貼的連結,下載EXFO FVA 3100的labview program,這樣做測試比較快。

><span =“bold”>ancle
><span =“bold”>Benjamin
感謝兩位前輩,忘記可以查相近型號的了(跪)…;看了看我的Labview版本為8.2 ,NI上所提供的8.6版的開不起來(再跪)。

><span =“bold”>IAmRice
我來檢查看看通道的部分看看! 謝謝!

[QUOTE=K6666666] 小弟今天要將一台儀器由GPIB改為使用RS232來控制
因為沒用過RS232來控制過儀器,所以選擇先利用LABVIEW上的EXAMPLE來試著讀值
![](upload://z544bmZXS60aOvHc2wzxremn7qY.jpeg)
選擇COM1後執行,VISA都沒有ERROR,但是在後面read visa那邊讀取的byte被給了 " 0 " ,所以甚麼都沒讀到。

於是自己擅自的給了個值去讀,卻發生了ERROR
![](upload://c2VHYlUv0tDQh3TEHPcIxNfWaHt.jpeg)

請問這是為什麼呢????   m(_ _)m

對於使用RS232來儀器控制這邊完全不熟,希望前輩們多給予指導,感謝不盡~~~~
[/QUOTE]

後面read visa那邊讀取的byte會是0的話,應該是代表你的儀器沒有回傳資料回來

一是你下的命令沒有符合儀器回傳資料的設定

二是你的資料連寫都沒有寫進儀器裡,所以當然也就不會回傳東西了

以上是現在做產測程式的經驗@@a

查看了 USer’s guide 發現 P.45 ~ P.46 有 GPIB and RS-232 的切換設定, 我在想如果 GPIB control OK, 同樣的指令, 再轉為 RS-232 不行, 可能先檢查一下硬體的  remote control 是否有切至 RS-232 ?

VISA 針對於Serial Read 無法像在GPIB Read 一樣,你在Code 理給了一個Counter 50的數字,若Serial Read 時讀不到50 個字
就會產生Time Out 的問題,就會有你那個Error 發生!請把你的50 的數字改為使用VISA Property Node 理得Number of Bytes at
Serial Port,在讀取前確認Serial Port 裡有多少資料再丟給VISA Read 來做即可。