Blame view

instruments/T7Pro.py 3.85 KB
9af9f93f9   bmarechal   add 4-wire resist...
1
2
3
4
5
  from abstract_instrument import abstract_instrument
  from labjack import ljm
  import numpy
  
  #==============================================================================
77603816e   bmarechal   add TEMPERATURE_A...
6
7
  ALL_VAL_TYPE = ['RES', 'TEMP PT100 K', 'TEMP PT100 C', 'TEMP AIR K']
  ALL_CHANNELS = ['1', '2', '3', '4', 'TEMP AIR K']
9af9f93f9   bmarechal   add 4-wire resist...
8

9058343c5   bmarechal   some minor fixes
9
  ADDRESS = "192.168.0.25"
77603816e   bmarechal   add TEMPERATURE_A...
10
  CONF_CHANNELS = [["AIN0", "AIN10"], ["AIN2", "AIN11"], ["AIN4", "AIN12"], ["AIN6", "AIN13"], ["TEMPERATURE_AIR_K"]]
40aab6750   bmarechal   add pt100 sensor ...
11
  VISHAY_CHANNELS = [1000., 1000., 1079., 10000.]
9af9f93f9   bmarechal   add 4-wire resist...
12
13
14
15
  
  #==============================================================================
  
  class T7Pro(abstract_instrument):
9058343c5   bmarechal   some minor fixes
16
17
      def __init__(self, channels, vtypes, address):
          self.address = address
9af9f93f9   bmarechal   add 4-wire resist...
18
19
20
21
22
23
24
          self.channels = channels
          self.vtypes = vtypes
  
      def model(self):
          return 'T7Pro'
  
      def connect(self):
9058343c5   bmarechal   some minor fixes
25
26
          print('Connecting to device @%s...' %(self.address))
          self.handle = ljm.openS("T7", "ETHERNET", self.address)
9af9f93f9   bmarechal   add 4-wire resist...
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
          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:
40aab6750   bmarechal   add pt100 sensor ...
69
70
71
72
73
74
75
76
77
              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) + ';'
77603816e   bmarechal   add TEMPERATURE_A...
78
79
80
              elif self.vtypes[self.channels.index(ch)] == 'TEMP AIR K':
                  raw = self.read(CONF_CHANNELS[ALL_CHANNELS.index(ch)])
                  strMes = strMes + str(raw[0]) + ';'
40aab6750   bmarechal   add pt100 sensor ...
81

6a7849f48   bmarechal   resolve minor bugs
82
83
          strMes = strMes[0:-1] + '
  '
9af9f93f9   bmarechal   add 4-wire resist...
84
85
86
87
88
89
90
91
92
93
          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