Blame view

instruments/T7Pro.py 3.6 KB
9af9f93f9   bmarechal   add 4-wire resist...
1
2
3
4
5
  from abstract_instrument import abstract_instrument
  from labjack import ljm
  import numpy
  
  #==============================================================================
40aab6750   bmarechal   add pt100 sensor ...
6
  ALL_VAL_TYPE = ['RES', 'TEMP PT100 K', 'TEMP PT100 C']
9af9f93f9   bmarechal   add 4-wire resist...
7
8
9
10
  ALL_CHANNELS = ['1', '2', '3', '4']
  
  ADRESS = "192.168.0.25"
  CONF_CHANNELS = [["AIN0", "AIN10"], ["AIN2", "AIN11"], ["AIN4", "AIN12"], ["AIN6", "AIN13"]]
40aab6750   bmarechal   add pt100 sensor ...
11
  VISHAY_CHANNELS = [1000., 1000., 1079., 10000.]
9af9f93f9   bmarechal   add 4-wire resist...
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
  
  #==============================================================================
  
  class T7Pro(abstract_instrument):
      def __init__(self, channels, vtypes, adress):
          self.adress = adress
          self.channels = channels
          self.vtypes = vtypes
  
      def model(self):
          return 'T7Pro'
  
      def connect(self):
          print('Connecting to device @%s...' %(self.adress))
          self.handle = ljm.openS("T7", "ETHERNET", self.adress)
          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) + ';'
6a7849f48   bmarechal   resolve minor bugs
78
79
          strMes = strMes[0:-1] + '
  '
9af9f93f9   bmarechal   add 4-wire resist...
80
81
82
83
84
85
86
87
88
89
          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