C#写的34401A串口232数据读取程序
生活随笔
收集整理的這篇文章主要介紹了
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 串口通訊。
先設置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 *rst SYSTem:REMote MEAS:CURR?
關于可以發送SCPI指令,收不到信號:
本以為是內部的通信需要設置,試了試還是不行,最終換成了USB轉串口的線,接上設備本身的線,這樣通信就正常了
總結
以上是生活随笔為你收集整理的C#写的34401A串口232数据读取程序的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: AutoCAD如何设置A0A1图纸
- 下一篇: EFI系统引导的一些零碎知识点