Python实现 通过RS232 SCPI 命令控制Tektronix DMM4050
Python实现 通过RS232 SCPI 命令控制Tektronix DMM4050@TOC
import serial
import matplotlib.pyplot as plt
import time
def test_connect(ser): ##连接检查
ser.write("*IDN?\n".encode())
msg = ser.read(42)
print(msg.decode())
def meter_read(ser): ##读取测量数据
ser.write(“READ?\n”.encode())
buff = ser.read(17)
buff = float(buff.decode())
return buff
def left_insert(data,result): ##在数组最左端插入数据
data.pop()
data.insert(0, result)
def init_config():##初始配置
ser = serial.Serial('COM24',9600,bytesize=8,parity="N",stopbits=1) ##串口号:24 波特率:9600
ser.write("*RST\n".encode()) ##复位
ser.write("*CLS\n".encode())
ser.write("SYST:REM\n".encode()) ##使得万用表处于操控模式
ser.write("CONF:VOLT:DC 10,0.0002\n".encode()) ##配置测量,模式 DC直流 10V量程 0.0002分辨率
return ser
def plot_signal(data,time):##画图配置
plt.ion()
plt.clf()
plt.plot(data)
plt.pause(time)
def trig_meas(ser):##触发测量
ser.write(“TRIG:SOUR IMM\n”.encode())
ser.write(“SAMP:COUN 1000\n”.encode())
ser.write(“INIT\n”.encode())
ser.write(“FETC?\n”.encode())
def byte2float(buff):
buff = buff.decode()
buff = buff.replace(’,’, ‘’)
result = float(buff)
return result
def main1():##监测
npoint = 200
data = [0]*npoint
ser = init_config()
test_connect(ser)
print("Start Measure")
while True:for i in range(npoint):result = meter_read(ser)left_insert(data,result)time.sleep(0.01)plot_signal(data,0.1)
def main2():##触发
npoint = 1000
data = [0] * npointser = init_config()
test_connect(ser)
trig_meas(ser)
for i in range(npoint):buff = ser.read(16)result = byte2float(buff)data[i] = resultplot_signal(data,1000)
if name == “main”:
main1() #实时监测
#main2() #内部触发
Python实现 通过RS232 SCPI 命令控制Tektronix DMM4050相关推荐
- C语言 scpi命令解释器,基于Python的SCPI命令解释器的设计
基于Python的SCPI命令解释器的设计 目前可编程仪器标准命令(SCPI)依然被广泛使用,因此设计一个高效通用的SCPI命令解释器很重要.常用的SCPI命令解释器多以C语言开发,采用链式二叉树等存 ...
- python rs232_使用Python進行RS-232通信返回垃圾信息
我最近試圖通過RS-232連接控制OceanOptics HR4000光譜儀.我已經使用串行控制檯Termite測試了串行命令(這裏提供:http://www.oceanoptics.com/tech ...
- python常用命令汇总-Python爬虫框架Scrapy常用命令总结
本文实例讲述了Python爬虫框架Scrapy常用命令.分享给大家供大家参考,具体如下: 在Scrapy中,工具命令分为两种,一种为全局命令,一种为项目命令. 全局命令不需要依靠Scrapy项目就可以 ...
- python、中循环功能可通过什么命令实现_python定时执行指定函数的方法 Python如何定时循环执行命令?...
python中如何定时执行某一个函数 = =怎么连接..先调用注册函数 然后调用登录函数就行.顺序执行.至于如果你说注册失败不进行登录的话 直接在注册函数里面处理 注册失败 return def si ...
- 命令控制之Telegram
文章前言 使用涉交网络作为C2 Server有两个好处,一方面是因为社交网络的服务器稳定,另一个方面是因为在于其通信的数据可以隐藏在正常的流量中,不容易被发现,本节主要是"站在巨人的肩膀&q ...
- 拓达TSDA-C21B,通过单片机串口发命令控制电机转向
拓达TSDA-C21B,通过单片机串口发命令控制电机转向 前言 驱动器的参数配置 一.硬件准备 二.软件的设计 1.看官方的数据手册确定写软件的方案 (1).控制模式.与控制来源的选择的选择 (2). ...
- python:warnings —— 警告信息的控制
python:warnings -- 警告信息的控制 警告类别 通常以下情况会引发警告:提醒用户注意程序中的某些情况,而这些情况(通常)还不值得触发异常并终止程序.例如,当程序用到了某个过时的模块时, ...
- scpi指令转换c语言,SCPI 命令表
SCPI 命令表 4.3.1 IEEE488.2 共同命令 *CLS *ESE *ESE? *ESR? *IDN? *OPC *OPC? *PSC *PSC? *RST *SRE *SRE? *STB ...
- scpi指令转换c语言,[转载]SCPI 命令表
SCPI 命令表 4.3.1 IEEE488.2 共同命令 *CLS *ESE *ESE? *ESR? *IDN? *OPC *OPC? *PSC *PSC? *RST *SRE *SRE? *STB ...
最新文章
- shardingjdbc全局表_Sharding-JDBC 分库分表概述
- 循环更新数据库java_java – 无限循环数据库检查
- php.ini文件找不到
- 与html相关的知识点整理
- pynlpir.LicenseError: Your license appears to have expired. Try running pynlpir update.
- 【树莓派学习笔记】一、烧录系统、(无屏幕)配置Wifi和SSH服务
- 没错!现在搞 Python 越来越难了!!
- 正面管教php_佛山市第三中学正面管教家长工作坊PHP分享会
- 【基础】二分算法学习笔记
- acrobat支持日文粘贴复制
- matlab画空间点的运动轨迹,MATLAB画三维空间小球沿给定轨迹曲线运动~
- 在群晖Docker上搭建自己项目管理工具Focalboard
- Tampermonkey安装与简单编写自定义脚本,以及实用脚本分享
- BPDU保护与边缘端口、RLDP防环
- 永磁同步电机矢量控制中的双闭环是什么意思_【百问百答】ST 电机控制实战问答合辑 | 连载之二...
- 文件为只读模式,且无法更改权限
- Excel:制作下拉选项
- Catia软件 如何将3dxml零件转化为可编辑格式的实体
- 网络显示连接,但是无法打开网页的解决方法
- java护士排班 test 根据 1天24小时分成6班,一个护士一天上8个小时,一周上40小时,进行一周排班安排!拷贝,直接运行。