文章目錄
首先呢,請先設定惠普表為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 串口通訊。
- 先設定34401A 的 Interface 為 RS232, Baud Rate 為9600, Parity 為 NON: 8 BITS。
- 下面為測試電壓和電流的程式碼片段
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*rstSYSTem:REMoteMEAS:CURR?
關於可以發送SCPI指令,收不到訊號:
本以為是內部的通訊需要設定,試了試還是不行,最終換成了USB轉串口的線,接上裝置本身的線,這樣通訊就正常了