python visa模块_Python visa 读取powermeter

该博客介绍了一个Python脚本,它使用VISA资源管理器连接到电力测量设备WT310或WT210,并周期性地读取电压、电流和功率数据。数据随后被写入CSV文件,可用于进一步分析。脚本通过命令行参数设置测量模式和采样时间。
摘要由CSDN通过智能技术生成

import visa

import os,csv,sys,time

from getopt import getopt

def Useage():

print sys.argv[0].split(‘/‘)[-1],‘-m mode -t seconds‘

print "mode: [voltage|current|power|all]"

sys.exit()

class PowerMeter(object):

def __init__(self):

v = visa.ResourceManager()

self.PM=v.open_resource(‘ASRL7::INSTR‘)

self.PM.write("NUMERIC:FORMAT ASCII")

if self.PM.query("*IDN?").find("WT310") >= 1:

self.ID = "WT310"

self.MODE = "NUMERIC"

else:

self.ID = "WT210"

self.MODE = "MEASURE"

def GetVoltage(self):

self.voltage = self.PM.query("{}:NORMAL:VALUE? 1".format(self.MODE))

voltage=float(self.voltage)

return voltage

def GetCurrent(self):

self.current = self.PM.query("{}:NORMAL:VALUE? 2".format(self.MODE))

current=float(self.current)

return current

def GetPower(self):

self.power = self.PM.query("{}:NORMAL:VALUE? 3".format(self.MODE))

power=float(self.power)

return power

if __name__ == "__main__":

csv_file="Power_meter.csv"

header=[]

lines=[]

pwr=PowerMeter()

try:

opts,args=getopt(sys.argv[1:],‘hm:t:‘,[‘help‘,‘mode‘])

except:

Useage()

if len(opts) != 2 or len(args) != 0 :

Useage()

for o, v in opts:

if o in (‘-h‘,‘--help‘):

Useage()

sys.exit()

elif o in (‘-m‘,‘--mode‘):

Mode=v

elif o == ‘-t‘:

Sample_time=int(v)

if Mode == "voltage":

header.append("Voltage")

elif Mode == "current":

header.append("Current")

elif Mode == "power":

header.append("Power")

elif Mode == "all":

header=("Voltage,Current,Power".split(‘,‘))

else:

print "value of -m error"

Useage()

for i in xrange(0,Sample_time):

print "\rRemain Time: {0}".format(Sample_time-i),

tmp=[]

for j in header:

if hasattr(pwr,‘Get‘+j):

tmp.append(getattr(pwr,‘Get‘+j)())

lines.append(tmp)

time.sleep(1)

with open(csv_file,‘wb+‘) as f:

writer=csv.writer(f)

writer.writerow(header)

for line in lines:

writer.writerow(line)

f.close()

原文:https://www.cnblogs.com/xia-dong/p/12667958.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值