• 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转串口的线,接上设备本身的线,这样通信就正常了

  • 相关阅读:
    PTA数据结构与算法题目集(中文) 7-6
    PTA数据结构与算法题目集(中文) 7-5
    PTA数据结构与算法题目集(中文) 7-4
    PTA数据结构与算法题目集(中文) 7-3
    数据结构学习第二十三天
    数据结构学习第二十三天
    数据结构学习第二十二天
    数据结构学习第二十一天
    数据结构学习第二十天
    并发之ATOMIC原子操作--CAS乐观锁原理(二)
  • 原文地址:https://www.cnblogs.com/anbylau2130/p/3063202.html
Copyright © 2020-2023  润新知