Blame view

instruments/T7Pro.py 3.61 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
  ALL_CHANNELS = ['1', '2', '3', '4']
9058343c5   bmarechal   some minor fixes
8
  ADDRESS = "192.168.0.25"
9af9f93f9   bmarechal   add 4-wire resist...
9
  CONF_CHANNELS = [["AIN0", "AIN10"], ["AIN2", "AIN11"], ["AIN4", "AIN12"], ["AIN6", "AIN13"]]
40aab6750   bmarechal   add pt100 sensor ...
10
  VISHAY_CHANNELS = [1000., 1000., 1079., 10000.]
9af9f93f9   bmarechal   add 4-wire resist...
11
12
13
14
  
  #==============================================================================
  
  class T7Pro(abstract_instrument):
9058343c5   bmarechal   some minor fixes
15
16
      def __init__(self, channels, vtypes, address):
          self.address = address
9af9f93f9   bmarechal   add 4-wire resist...
17
18
19
20
21
22
23
          self.channels = channels
          self.vtypes = vtypes
  
      def model(self):
          return 'T7Pro'
  
      def connect(self):
9058343c5   bmarechal   some minor fixes
24
25
          print('Connecting to device @%s...' %(self.address))
          self.handle = ljm.openS("T7", "ETHERNET", self.address)
9af9f93f9   bmarechal   add 4-wire resist...
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
          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 ...
68
69
70
71
72
73
74
75
76
              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
77
78
          strMes = strMes[0:-1] + '
  '
9af9f93f9   bmarechal   add 4-wire resist...
79
80
81
82
83
84
85
86
87
88
          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