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