參考JD大分享的程式範例後,發生的問題(code -113 803)

myself.vi

這個程式是參考JD大提供的kethley24xx範例,然後再改成我想要的function

(因為是量電阻值的變化,所以我是寫成volt是cmpl,而current為source並限定在10mA預防電流過大, ohm mode 為MAN 。)

。目前所遇到的情況是,一開始執行時會出現code -113的錯誤(但程式仍有作動),之後又持續的執行就會出現803的錯誤,此時我再把2410的電源切掉再按local鍵把控制權交還給儀器再去執行。有時又會變成按了執行後,儀器卻不理我。是否我缺了一些程式與指令呢?

 

從你的程式碼來看我發現幾個問題

![](upload://1EiffTEPUY4fI5YK9MBTBvb3cTY.jpeg)

1. 你的資料流有問題,當迴圈執行時,你的 OUTP ON 會先執行
    (你的程式執行時,迴圈程序如上圖1->2->3->4 表示)

2.  你要量電阻值的變化,是要每次先 OUTP ON 再讀取嗎 ? 還是k2410 開啟後連續讀取呢?
     我建議幾種作法:
    a.  利用error in and error out 作資料流 , 設定 timeout  and READ?
         後面用Flat Sequence Structure裡面放個 delay Time
    b.  OUTP ON  -> READ? -> OUTP OFF
    c.  OUTP ON 放在迴圈開始前外面  ->  READ?  放在迴圈內 ->  OUTP OFF 放在迴圈結束外面

 

 

我是要k2410連續讀取電阻值的變化。另外指令順序和沒有連接error in,error out會影響儀器的動作而產生-113 和803的錯誤嗎?

[QUOTE=風颺]

我是要k2410連續讀取電阻值的變化。另外指令順序和沒有連接error in,error out會影響儀器的動作而產生-113 和803的錯誤嗎?

[/QUOTE]

指令順序當然會影響儀器的動作,但是資料流也會影響,

![](upload://jOuMa88Z17hvgn42zX7mjOnLr80.jpeg)

你把燈泡打開RUN一次就知道了.

你先規劃你的量測程序

1. 程式一開始先把設定值參數載入

2. 開啟電源 outp on

3.  讀取資料 (resd? -> 資料讀取後,記的清除 Buffer)

4. 關閉電源 outp off

![](upload://6Lsy4UzjgADkAVb3NSgAvk4Irp6.jpeg)![](upload://q0ibPDm6LZtxiO2pEbVLPMffrVH.jpeg)

2410_902_01B.pdf

2400S_900_01G.pdf

JD38955.5939699074

JD大我無意冒犯你,只是再請問你一個問題。是關於迴圈外左邊的指令順序。它的順序我是照k2140手冊上的簡易教學(TABLE 4-3 =>g版)的步驟來放的。是否可請你說明你的觀念及資料流的觀念,謝謝你的幫忙。

站長曾經說過

[QUOTE=Benjamin]

LabVIEW處理的一個大原則是「資料流的概念」:任何節點 (包括副程式或內建函數) 必須等到所有輸入進來後才會執行 。在程式中,資料的傳遞就像是資料流一樣。

![](upload://lehLpwlZflsVwhAHBYGfWu0tQr9.jpeg)

[/QUOTE]

Ohms Test.vi

關於迴圈外左邊算是 Initialize.
其指令順序比較無影響;主要是迴圈內程式執行時序的問題
當程式執行到迴圈內時;你的Error in & Error out 沒接的話.
LabVIEW 會從資料先到的 VIs 先執行

資料流簡單說就是程式執行的流程順序,然而跟你的程式排列順序是不一樣的意義.

以你的程式碼舉個例
當程式到迴圈內時,資料是同步到各個的 GPIB Write VIs 
程式的流程順序如果先執行 read? 再執行 output on 時,此時你量測值讀取的到嗎?
說不定還會出現error呢!
所以善用Error in & Error out 來當程式執行的流程順序就像串聯一樣.
一個步驟一個步驟的執行指令.出現 Error 也比較能夠知道是在哪個環節有問題.

 

JD38955.8422569444

謝JD大的指點,之前所遇到的問題全都排除了。

問題排除後,可否請您分享你的經驗.

敘述你解讀 code -113 & 803  錯誤的定義 及 您之前所遇到的問題是如何解決的.

讓大家更容易知道您曾經遇到過的是什麼樣問題,然後是怎樣解決的.

Thank.