C#寫的34401A串口232數據讀取程序


 

首先呢,請先設置惠普表為Talk only模式,也就是31,還不明白的自己查手冊去

另外,各個表設置不一樣,比如我這里2塊表就不一樣,一塊是7位數據位,even校驗;另一塊是8位數據位,none校驗。具體的可以看看表里的i/o那里的設置。

數據線的做法,9pin的線,2,3交叉,4,6交叉,7,8交叉,其他直連

我使用的是.net formworks2里面的serialport這個組件,唯一要注意的是sp1.DtrEnable = Enabled;這個一定要打開,不然接不到數據。

另附上我寫的一個小程序源碼,學習c#的第一個程序,寫的不是很好,不過能用了

http://anerg.ys168.com

 

 

 

剛剛通過調試的C#代碼用於Agilent 34401A 串口通訊。

 

  1. 先設置34401A 的 Interface 為 RS232, Baud Rate 為9600, Parity 為 NON: 8 BITS。
  2. 下面為測試電壓和電流的代碼片段
SerialPort serialPort = new SerialPort("COM3");
serialPort.DtrEnable = true;
serialPort.Open();
serialPort.WriteLine("SYST:REM");
serialPort.WriteLine("*CLS");

serialPort.WriteLine("TRIG:SOUR IMM");

serialPort.WriteLine("MEAS:VOLT:DC? AUTO, MIN");
var v = double.Parse(serialPort.ReadLine());

serialPort.WriteLine("MEAS:CURR:DC? AUTO, MIN");
var i = double.Parse(serialPort.ReadLine());

 

 

MEAS:VOLT?  取電源輸出的電壓

MEAS:CURR?  讀取電源的輸出電流

MEAS:POW?   讀取電源的輸出功率

MEAS:DVM?   讀取電壓表的輸入電壓

MEAS:RES?   讀取毫歐表的電阻值


*STB?      用來讀取狀態位寄存來的值,該命令執行后,寄存器被清零

CALibration:CURRent 返回給電源當前標定點的實際輸出電流值


STATus:QUEStionable:CONDition?    用來讀取查詢條件寄存器的值

STATus:QUEStionable:ENABle    用來讀取查詢時間寄存器中的值

STATus:OPERation:ENABle  用來讀取操作時間寄存器的值

ONPut:STATe?   用來控制電源輸出的開啟和關閉


IDN?  必須是命令字符串中的最后一個查詢命令 IDN?:SYST:VERS?


CONFigure  ENTER





*rst

SYSTem:REMote

MEAS:CURR?

 

 

 關於可以發送SCPI指令,收不到信號:

           本以為是內部的通信需要設置,試了試還是不行,最終換成了USB轉串口的線,接上設備本身的線,這樣通信就正常了


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM