Commit 77603816e36da2f31d1a2508018ea51d91953743

Authored by bmarechal
1 parent 9058343c56
Exists in master

add TEMPERATURE_AIR_K

Showing 1 changed file with 6 additions and 3 deletions Inline Diff

instruments/T7Pro.py
from abstract_instrument import abstract_instrument 1 1 from abstract_instrument import abstract_instrument
from labjack import ljm 2 2 from labjack import ljm
import numpy 3 3 import numpy
4 4
#============================================================================== 5 5 #==============================================================================
6 6
ALL_VAL_TYPE = ['RES', 'TEMP PT100 K', 'TEMP PT100 C'] 7 7 ALL_VAL_TYPE = ['RES', 'TEMP PT100 K', 'TEMP PT100 C', 'TEMP AIR K']
ALL_CHANNELS = ['1', '2', '3', '4'] 8 8 ALL_CHANNELS = ['1', '2', '3', '4', 'TEMP AIR K']
9 9
ADDRESS = "192.168.0.25" 10 10 ADDRESS = "192.168.0.25"
CONF_CHANNELS = [["AIN0", "AIN10"], ["AIN2", "AIN11"], ["AIN4", "AIN12"], ["AIN6", "AIN13"]] 11 11 CONF_CHANNELS = [["AIN0", "AIN10"], ["AIN2", "AIN11"], ["AIN4", "AIN12"], ["AIN6", "AIN13"], ["TEMPERATURE_AIR_K"]]
VISHAY_CHANNELS = [1000., 1000., 1079., 10000.] 12 12 VISHAY_CHANNELS = [1000., 1000., 1079., 10000.]
13 13
#============================================================================== 14 14 #==============================================================================
15 15
class T7Pro(abstract_instrument): 16 16 class T7Pro(abstract_instrument):
def __init__(self, channels, vtypes, address): 17 17 def __init__(self, channels, vtypes, address):
self.address = address 18 18 self.address = address
self.channels = channels 19 19 self.channels = channels
self.vtypes = vtypes 20 20 self.vtypes = vtypes
21 21
def model(self): 22 22 def model(self):
return 'T7Pro' 23 23 return 'T7Pro'
24 24
def connect(self): 25 25 def connect(self):
print('Connecting to device @%s...' %(self.address)) 26 26 print('Connecting to device @%s...' %(self.address))
self.handle = ljm.openS("T7", "ETHERNET", self.address) 27 27 self.handle = ljm.openS("T7", "ETHERNET", self.address)
print(' --> Ok') 28 28 print(' --> Ok')
print(self.model()) 29 29 print(self.model())
self.configure() 30 30 self.configure()
31 31
def configure(self): 32 32 def configure(self):
names = ["AIN0_NEGATIVE_CH", "AIN0_RANGE", "AIN0_RESOLUTION_INDEX", 33 33 names = ["AIN0_NEGATIVE_CH", "AIN0_RANGE", "AIN0_RESOLUTION_INDEX",
"AIN1_NEGATIVE_CH", "AIN1_RANGE", "AIN1_RESOLUTION_INDEX", 34 34 "AIN1_NEGATIVE_CH", "AIN1_RANGE", "AIN1_RESOLUTION_INDEX",
"AIN2_NEGATIVE_CH", "AIN2_RANGE", "AIN2_RESOLUTION_INDEX", 35 35 "AIN2_NEGATIVE_CH", "AIN2_RANGE", "AIN2_RESOLUTION_INDEX",
"AIN3_NEGATIVE_CH", "AIN3_RANGE", "AIN3_RESOLUTION_INDEX", 36 36 "AIN3_NEGATIVE_CH", "AIN3_RANGE", "AIN3_RESOLUTION_INDEX",
"AIN4_NEGATIVE_CH", "AIN4_RANGE", "AIN4_RESOLUTION_INDEX", 37 37 "AIN4_NEGATIVE_CH", "AIN4_RANGE", "AIN4_RESOLUTION_INDEX",
"AIN5_NEGATIVE_CH", "AIN5_RANGE", "AIN5_RESOLUTION_INDEX", 38 38 "AIN5_NEGATIVE_CH", "AIN5_RANGE", "AIN5_RESOLUTION_INDEX",
"AIN6_NEGATIVE_CH", "AIN6_RANGE", "AIN6_RESOLUTION_INDEX", 39 39 "AIN6_NEGATIVE_CH", "AIN6_RANGE", "AIN6_RESOLUTION_INDEX",
"AIN7_NEGATIVE_CH", "AIN7_RANGE", "AIN7_RESOLUTION_INDEX", 40 40 "AIN7_NEGATIVE_CH", "AIN7_RANGE", "AIN7_RESOLUTION_INDEX",
#"AIN8_NEGATIVE_CH", "AIN8_RANGE", "AIN8_RESOLUTION_INDEX", 41 41 #"AIN8_NEGATIVE_CH", "AIN8_RANGE", "AIN8_RESOLUTION_INDEX",
#"AIN9_NEGATIVE_CH", "AIN9_RANGE", "AIN9_RESOLUTION_INDEX", 42 42 #"AIN9_NEGATIVE_CH", "AIN9_RANGE", "AIN9_RESOLUTION_INDEX",
"AIN10_NEGATIVE_CH", "AIN10_RANGE", "AIN10_RESOLUTION_INDEX", 43 43 "AIN10_NEGATIVE_CH", "AIN10_RANGE", "AIN10_RESOLUTION_INDEX",
"AIN11_NEGATIVE_CH", "AIN11_RANGE", "AIN11_RESOLUTION_INDEX", 44 44 "AIN11_NEGATIVE_CH", "AIN11_RANGE", "AIN11_RESOLUTION_INDEX",
"AIN12_NEGATIVE_CH", "AIN12_RANGE", "AIN12_RESOLUTION_INDEX", 45 45 "AIN12_NEGATIVE_CH", "AIN12_RANGE", "AIN12_RESOLUTION_INDEX",
"AIN13_NEGATIVE_CH", "AIN13_RANGE", "AIN13_RESOLUTION_INDEX" 46 46 "AIN13_NEGATIVE_CH", "AIN13_RANGE", "AIN13_RESOLUTION_INDEX"
] 47 47 ]
l_names = len(names) 48 48 l_names = len(names)
aValues = [1, 1, 12,#0 49 49 aValues = [1, 1, 12,#0
199, 1, 12,#1 50 50 199, 1, 12,#1
3, 1, 12,#2 51 51 3, 1, 12,#2
199, 1, 12,#3 52 52 199, 1, 12,#3
5, 1, 12,#4 53 53 5, 1, 12,#4
199, 1, 12,#5 54 54 199, 1, 12,#5
7, 1, 12,#6 55 55 7, 1, 12,#6
199, 1, 12,#7 56 56 199, 1, 12,#7
#199, 1, 12,#8 57 57 #199, 1, 12,#8
#199, 1, 12,#9 58 58 #199, 1, 12,#9
199, 1, 12,#10 59 59 199, 1, 12,#10
199, 1, 12,#11 60 60 199, 1, 12,#11
199, 1, 12,#12 61 61 199, 1, 12,#12
199, 1, 12#13 62 62 199, 1, 12#13
] 63 63 ]
64 64
ljm.eWriteNames(self.handle, l_names, names, aValues) 65 65 ljm.eWriteNames(self.handle, l_names, names, aValues)
66 66
def getValue(self): 67 67 def getValue(self):
strMes = '' 68 68 strMes = ''
for ch in self.channels: 69 69 for ch in self.channels:
if self.vtypes[self.channels.index(ch)] == 'RES': 70 70 if self.vtypes[self.channels.index(ch)] == 'RES':
raw = self.read(CONF_CHANNELS[ALL_CHANNELS.index(ch)]) 71 71 raw = self.read(CONF_CHANNELS[ALL_CHANNELS.index(ch)])
strMes = strMes + str(VISHAY_CHANNELS[ALL_CHANNELS.index(ch)]*raw[0]/raw[1]) + ';' 72 72 strMes = strMes + str(VISHAY_CHANNELS[ALL_CHANNELS.index(ch)]*raw[0]/raw[1]) + ';'
elif self.vtypes[self.channels.index(ch)] == 'TEMP PT100 K': 73 73 elif self.vtypes[self.channels.index(ch)] == 'TEMP PT100 K':
raw = self.read(CONF_CHANNELS[ALL_CHANNELS.index(ch)]) 74 74 raw = self.read(CONF_CHANNELS[ALL_CHANNELS.index(ch)])
strMes = strMes + str(((VISHAY_CHANNELS[ALL_CHANNELS.index(ch)]*raw[0]/raw[1])/100.-1)/0.003850+273.15) + ';' 75 75 strMes = strMes + str(((VISHAY_CHANNELS[ALL_CHANNELS.index(ch)]*raw[0]/raw[1])/100.-1)/0.003850+273.15) + ';'
elif self.vtypes[self.channels.index(ch)] == 'TEMP PT100 C': 76 76 elif self.vtypes[self.channels.index(ch)] == 'TEMP PT100 C':
raw = self.read(CONF_CHANNELS[ALL_CHANNELS.index(ch)]) 77 77 raw = self.read(CONF_CHANNELS[ALL_CHANNELS.index(ch)])
strMes = strMes + str(((VISHAY_CHANNELS[ALL_CHANNELS.index(ch)]*raw[0]/raw[1])/100.-1)/0.003850) + ';' 78 78 strMes = strMes + str(((VISHAY_CHANNELS[ALL_CHANNELS.index(ch)]*raw[0]/raw[1])/100.-1)/0.003850) + ';'
79 elif self.vtypes[self.channels.index(ch)] == 'TEMP AIR K':
80 raw = self.read(CONF_CHANNELS[ALL_CHANNELS.index(ch)])
81 strMes = strMes + str(raw[0]) + ';'
79 82