NI產品與技術 討論區

取消
顯示結果 
搜尋替代 
您的意思是: 

C#如何送出Suppress End On Reads指令 避免timeout?

大家好

 

我用Visual C#2010透過NationalInsturments.VisaNS.dll提供的函式

以SCPI指令去控制儀器 wifi analyzer LitePoint IQxel

讀回儀器資料時發生timeout程式當掉

即使插入10多秒的delay, 仍然timeout當掉

 

請看附件1:

利用NI Measurement& Automation Explorer版本5.4裡面的test pannel去debug

發現suppress End On Reads取消勾選儀器資料回覆快速不會timeout

 

請看附件2:

回到Visual C#2010仔細觀察NationalInsturments.VisaNS.dll

SuppresEndEn這個東西, 但不知道怎麼使用

 

請問各位先進, 如何用C#送出suppress End On Reads / SuppresEndEn設定?

感激不盡

下載全部
0 積分
1 條訊息(共 9 條)
7,797 檢視

您好,

 

您的狀況蠻特別的,一般來說,suppress End On Reads 勾選的話,遇到 /n 即視為一個段落,因此勾選起來是比較不會遇到Timeout的問題,

請您確認與下圖相同是使用 /n 作為判讀,

 

suppress End On Reads.PNG

 

 

您是否有使用範例程式測試過呢?

 

VISA Example.PNG

 

 

 

0 積分
2 條訊息(共 9 條)
7,779 檢視

Hi Kevinye 謝謝你的回覆

 

Suppress End On Reads和Enable Termination character都勾起來, 且選擇\n

儀器回覆很快, 但也多了一個0x03FFF0005訊息, 不知道算不算正確
請見附件1.jpg

 

我試了

Example\DotNET4.0\SimpleReadWrite 和 SimpleAsynchronousReadWrite

都會跳出timeout視窗

 

0 積分
3 條訊息(共 9 條)
7,765 檢視

Hi icsy,

 

 

0x03FFF0005 是個Warning,只是用以提醒不會造成錯誤;

 

 

我使用C# SimpleReadWrite,與儀器溝通不會出現此問題耶,

 

您所下的是 *IDN? 指令嗎? 雖然達到Timeout,但有任何讀值Feedback嗎?是否有先使用Open Session找到裝置了?

 

 

0 積分
4 條訊息(共 9 條)
7,759 檢視

Hi Kevinye

 

我的NI MAX5.5有先抓到seesion

C#的SimpleReadWrire有先Open Session選到儀器

送出*IDN?或*IDN?\n

Read仍會timeout, 且沒有任何讀值回傳

或許我的儀器比較別吧....

0 積分
5 條訊息(共 9 條)
7,744 檢視

http://digital.ni.com/public.nsf/allkb/A80DBFCCAC36EBDE862562C80058856E

 

可能要送 \r \n 吧

 

也許需要看看儀器手冊是否有註明

0 積分
6 條訊息(共 9 條)
7,739 檢視

送\n\r也不行

0 積分
7 條訊息(共 9 條)
7,709 檢視

建議詢問儀器製造商

0 積分
8 條訊息(共 9 條)
7,703 檢視

自問自答:

Suppress End On Reads設為false的方法:

mbSession.SetAttributeBoolean(NationalInstruments.VisaNS.AttributeType.SuppresEndEn, false);

9 條訊息(共 9 條)
7,283 檢視