C#写的34401A串口232数据读取程序
2013-05-06 17:31
363 查看
首先呢,请先设置惠普表为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#中,确保数据接收完整的 串口处理程序
- C#第2个程序,读取偶网站的数据!
- 我的第一个C#程序:从多个文本文件中读取数据到SqlServer并实现增删改查
- C#程序中:如何向xml文件中写入数据和读取数据
- C#2.0中,SerialPort如何读取串口数据并显示在TextBox上
- 用DataSet从oracle10g数据库中读取数据(C#)vs2008 winform程序
- 用DataReader从Oracle10g数据库中读取数据(c#) vs2008控制台程序
- C#程序从Excel表格中读取数据并进行处理
- C#SerialPort如何读取串口数据并显示在TextBox上
- C#源码读取excel数据到程序中-SQL SERVER-到dataset中
- C#串口读取GPS接收仪器的数据
- C# 通过RS-232 读取 34401A万用表电压
- C# 定义配置文件 使程序在配置文件中读取数据
- C#源码读取excel数据到程序中-SQL SERVER-到dataset中
- C# 程序读取Excel数据
- C#读取串口数据实现无线手柄操作ROV
- C#2.0中,SerialPort如何读取串口数据并显示在TextBox上
- C# 从串口读取数据
- linux环境下C语言实现非阻塞方式读取字符串数据的串口测试程序,即串口工具的编写
- C#根据指定url下载文件并读取.csv数据转为json格式