Agilent 34401A 串口命令

本文详细描述了如何使用Agilent34401A数字万用表通过RS232接口进行远程控制,包括设置串口参数、Python编程发送SCPI指令以及注意的测量命令发送顺序,特别是需先发送SYSTEMREMOT指令才能读取数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Agilent数字万用表

 

Agilent数字万用表


一、前言

  这款Agilent 数字万用表 34401A, 将用于实验室自动测量。 它具有RS232接口, 下面对它的远程接口功能进行测试。  最终实现能够完成自动测量的功能。

GM1710571728_1920_1080.MP4|_-4

二、数字接口

  根据 Agilent 34401A 的用户手册,  可以了解他的编程方法。  通过前面板设置相关参数,  前面板按钮配合 SHIFT 按键都有两个功能, 可以分别设置万用表的不同功能。  其中, 在输入输出菜单中, 可以设置串口通讯波特率以及奇偶校验等参数。   下面对此进行查看和操作。

GM1710573043_1920_1080.MP4|_-7
  通过SHIFT, MENU左键进入参数设置界面。 然后通过左右箭头选择菜单组。 选择 E 菜单, 设置串口参数。  使用往上箭头按键, 进入子菜单, 可以设置 波特率以及奇偶校验。 波特率为 9600, 以及没有奇偶校验。  在设备后面,  具有UART接口, 接入计算机的RS232接口。

GM1710573524_1920_1080.MP4|_-4
  使用直通串口延长线引出数字万用表的串口。  通过测量接口的电压, 可以看到它的第二端口的电压为 负 9V 左右, 这说明它可以直接接入计算机的串口。  将它接入计算机 USB 转串口的接头中。

GM1710574029_1920_1080.MP4|_-3

三、软件编程

  数字万用表在 远程见面命令参考 中 给出了测量和配置命令。 下面对此进行测试。

GM1710574899_1920_1080.MP4|_-2
  设备接入了计算机的 COM6,  在Python 程序中, 打开COM6, 发送 SCPI 指令, 便可以接收设备的测量命令了。  测量结果与万用表现实的结果是一致的。
GM1710585001_1920_1080.MP4|_-3

▲ 图1.3.1  Agilent远程测量

▲ 图1.3.1 Agilent远程测量

  这里需要强调两点。   第一, 就是每次 READ命令发送之后, 所获得的是上一次测量结果。  第二, 这就不得不吐槽一下,  也就是在使用 READ 命令之前 需要发送 SYSTEM REMOT 命令,  否则, Agilent 数字万用表不接受 READ 命令。 这一点开始并没有注意, 所以, 鼓捣了很长时间, 询问了别人之后, 方才解开了无法读取数据的谜团。

GM1710585599_1920_1080.MP4|_-5

#!/usr/local/bin/python
# -*- coding: gbk -*-
#============================================================
# TEST1.PY                     -- by Dr. ZhuoQing 2024-03-16
#
# Note:
#============================================================

from headm import *
import serial
from _ast import Or
from serial.serialutil import SerialException


#------------------------------------------------------------
sport = serial.Serial()
sport.baudrate = 9600
sport.timeout = 0.05
try:
    sport.port = 'COM6'
except:
    printf('Set sport port COM6 error. ')

try:
    sport.open()
except serial.serialutil.SerialException:
    printf('Open sport port COM6 error.')
else:
    printf('Open sport port COM6 Ok.')
#------------------------------------------------------------

sport.write(b"SYSTEM:REMOTE\n")

while True:
    sport.write(b'READ?\n')
    time.sleep(.1)
    result = sport.read(100)
    printf(result)

    time.sleep(1)




#------------------------------------------------------------
#        END OF FILE : TEST1.PY
#============================================================

 

  结 ※


  文记录了使用 Agilent 数字万用表进行远程控制的过程,  特别是在读取数据的时候,  需要预先发送 SYSTEM REMOTE 指令, 这一点我是吃了亏的。

GM1710586044_1920_1080.MP4|_-3


● 相关图表链接:



































评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

卓晴

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值