import pyvisa
import time
import os
import math
import random
import csv
#import xlwt
import pyvisa as visa
import serial
import serial.tools.list_ports
from datetime import datetime
#-- coding: UTF-8 --
ports_list = list(serial.tools.list_ports.comports())
if len(ports_list) <= 0:
print(“无串口设备。”)
else:
print(“可用的串口设备如下:”)
for comport in ports_list:
print(list(comport)[0], list(comport)[1])
#打开 COM17,将波特率配置为115200.
ser = serial.Serial(port=“COM17”, baudrate=921600)
rm = visa.ResourceManager()
ControllInstrumentAddress = “USB0::0x1AB1::0x0C94::DM3O251800793::INSTR” #“USB0::0x1AB1::0x0C94::DM3D224400105::0::INSTR”
dm = rm.open_resource(ControllInstrumentAddress)
dm.timeout = 5000
arrDcValList=[0.0,0.0,0.0,0.0,0.0]
DcMax=0.0
DcMin=0.0
writeDcVal=0.0
countInRun =0
arrSetDcValList=[-4000,-2000,0,2000,4000]
def Meas1():
with open("D:/test/factory_10_07_1800.txt","w+") as test:
countDC=0
dcSetval=0
#time.sleep(1.5)
countInRun=1
while(1):
for countDC in range(0,5,1):
dcSetval = arrSetDcValList[countDC]
write_len = ser.write(b':SDC %d\r\n'% dcSetval)
currentDateAndTime = 0
currentTime = 0
total=0.0
print("串口发出{}个字节。".format(write_len))
#print("你")
currentDateAndTime= datetime.now()
currentTime = currentDateAndTime.strftime("%H:%M:%S")
test.write(str(currentTime))
test.write(str(","))
test.write(str(dcSetval))
test.write(str(","))
time.sleep(10)
for readcount in range(0,5,1):
arrDcValList[readcount-1] =(float)( dm.query(":MEAS:VOLT:DC?"))#DM3068 read voltage in scpi cmd
#writeDcVal =(float)( dm.query(":MEAS:VOLT:DC?"))
DcMax = max(arrDcValList)
DcMin = min(arrDcValList)
for ele in range(0, len(arrDcValList)):
total = total + arrDcValList[ele]
total = (total-DcMax-DcMin)/3.0
test.write(str(total))
test.write(str(","))
test.write("\n")
test.flush()
if name == “main”:
Meas1()
ser.close()