|
|
@@ -153,6 +153,34 @@ class IO_AnalogInput(IO_Module):
|
|
|
return struct.unpack('>ffffffffffff', self.modbus.read_holding_registers_raw(AiReg.PR_HIST.value, 24))
|
|
|
|
|
|
|
|
|
+ def get_cal_k_v10(self):
|
|
|
+ """Калибровочные коэффициенты K (диапазон 0 - 10 В)"""
|
|
|
+ return struct.unpack('>ffffffffffff', self.modbus.read_holding_registers_raw(AiReg.CL_V10_K.value, 24))
|
|
|
+
|
|
|
+
|
|
|
+ def get_cal_b_v10(self):
|
|
|
+ """Калибровочные коэффициенты B (диапазон 0 - 10 В)"""
|
|
|
+ return struct.unpack('>ffffffffffff', self.modbus.read_holding_registers_raw(AiReg.CL_V10_B.value, 24))
|
|
|
+
|
|
|
+
|
|
|
+ def get_cal_k_v1(self):
|
|
|
+ """Калибровочные коэффициенты K (диапазон 0 - 1 В)"""
|
|
|
+ return struct.unpack('>ffffffffffff', self.modbus.read_holding_registers_raw(AiReg.CL_V1_K.value, 24))
|
|
|
+
|
|
|
+
|
|
|
+ def get_cal_b_v1(self):
|
|
|
+ """Калибровочные коэффициенты B (диапазон 0 - 1 В)"""
|
|
|
+ return struct.unpack('>ffffffffffff', self.modbus.read_holding_registers_raw(AiReg.CL_V1_B.value, 24))
|
|
|
+
|
|
|
+
|
|
|
+ def get_cal_k_cur(self):
|
|
|
+ """Калибровочные коэффициенты K (измерение тока)"""
|
|
|
+ return struct.unpack('>ffffffffffff', self.modbus.read_holding_registers_raw(AiReg.CL_CUR_K.value, 24))
|
|
|
+
|
|
|
+
|
|
|
+ def get_cal_b_cur(self):
|
|
|
+ """Калибровочные коэффициенты B (измерение тока)"""
|
|
|
+ return struct.unpack('>ffffffffffff', self.modbus.read_holding_registers_raw(AiReg.CL_CUR_B.value, 24))
|
|
|
|
|
|
|
|
|
# Установка параметров
|
|
|
@@ -207,18 +235,73 @@ class IO_AnalogInput(IO_Module):
|
|
|
'Значения состояний входов вкл./выкл. (битовое поле)'
|
|
|
self.modbus.write_holding_register(AiReg.PR_STATE.value , value)
|
|
|
|
|
|
+
|
|
|
def set_preset_min(self, channel, value):
|
|
|
'Минимальное значение уставки на отдельный канал'
|
|
|
self.modbus.write_float(AiReg.PR_MIN.value + 2*(channel - 1), value)
|
|
|
|
|
|
+
|
|
|
def set_preset_max(self, channel, value):
|
|
|
'Максимальное значение уставки на отдельный канал'
|
|
|
self.modbus.write_float(AiReg.PR_MAX.value + 2*(channel - 1), value)
|
|
|
|
|
|
+
|
|
|
def set_preset_hyst(self, channel, value):
|
|
|
'Значение гистерезиса уставки на отдельный канал'
|
|
|
self.modbus.write_float(AiReg.PR_HIST.value + 2*(channel - 1), value)
|
|
|
|
|
|
+
|
|
|
+ def set_cal_k_v10(self, val:list[float]):
|
|
|
+ """Калибровочные коэффициенты K (диапазон 0 - 10 В)"""
|
|
|
+ self.modbus.write_holding_registers_raw(AiReg.CL_V10_K.value,
|
|
|
+ struct.pack('>ffffffffffff',
|
|
|
+ val[0], val[1], val[2], val[3],
|
|
|
+ val[4], val[5], val[6], val[7],
|
|
|
+ val[8], val[9], val[10], val[11]))
|
|
|
+
|
|
|
+ def set_cal_b_v10(self, val:list[float]):
|
|
|
+ """Калибровочные коэффициенты B (диапазон 0 - 10 В)"""
|
|
|
+ self.modbus.write_holding_registers_raw(AiReg.CL_V10_B.value,
|
|
|
+ struct.pack('>ffffffffffff',
|
|
|
+ val[0], val[1], val[2], val[3],
|
|
|
+ val[4], val[5], val[6], val[7],
|
|
|
+ val[8], val[9], val[10], val[11]))
|
|
|
+
|
|
|
+
|
|
|
+ def set_cal_k_v1(self, val:list[float]):
|
|
|
+ """Калибровочные коэффициенты K (диапазон 0 - 1 В)"""
|
|
|
+ self.modbus.write_holding_registers_raw(AiReg.CL_V1_K.value,
|
|
|
+ struct.pack('>ffffffffffff',
|
|
|
+ val[0], val[1], val[2], val[3],
|
|
|
+ val[4], val[5], val[6], val[7],
|
|
|
+ val[8], val[9], val[10], val[11]))
|
|
|
+
|
|
|
+ def set_cal_b_v1(self, val:list[float]):
|
|
|
+ """Калибровочные коэффициенты B (диапазон 0 - 1 В)"""
|
|
|
+ self.modbus.write_holding_registers_raw(AiReg.CL_V1_B.value,
|
|
|
+ struct.pack('>ffffffffffff',
|
|
|
+ val[0], val[1], val[2], val[3],
|
|
|
+ val[4], val[5], val[6], val[7],
|
|
|
+ val[8], val[9], val[10], val[11]))
|
|
|
+
|
|
|
+
|
|
|
+ def set_cal_k_cur(self, val:list[float]):
|
|
|
+ """Калибровочные коэффициенты K (режим измерения тока)"""
|
|
|
+ self.modbus.write_holding_registers_raw(AiReg.CL_CUR_K.value,
|
|
|
+ struct.pack('>ffffffffffff',
|
|
|
+ val[0], val[1], val[2], val[3],
|
|
|
+ val[4], val[5], val[6], val[7],
|
|
|
+ val[8], val[9], val[10], val[11]))
|
|
|
+
|
|
|
+ def set_cal_b_cur(self, val:list[float]):
|
|
|
+ """Калибровочные коэффициенты B (режим зимерения тока)"""
|
|
|
+ self.modbus.write_holding_registers_raw(AiReg.CL_CUR_B.value,
|
|
|
+ struct.pack('>ffffffffffff',
|
|
|
+ val[0], val[1], val[2], val[3],
|
|
|
+ val[4], val[5], val[6], val[7],
|
|
|
+ val[8], val[9], val[10], val[11]))
|
|
|
+
|
|
|
+
|
|
|
'''Настройки входов'''
|
|
|
def print_inputs(self):
|
|
|
print(Fore.GREEN + '____________________________________________')
|
|
|
@@ -254,6 +337,35 @@ class IO_AnalogInput(IO_Module):
|
|
|
print('Input preset hyst: ', Fore.GREEN + f'1: {data[0]}, 2: {data[1]}, 3: {data[2]}, 4: {data[3]}, 5: {data[4]}, 6: {data[5]}')
|
|
|
print('Input preset hyst: ', Fore.GREEN + f'7: {data[6]}, 8: {data[7]}, 9: {data[8]}, 10: {data[9]}, 11: {data[10]}, 12: {data[11]}')
|
|
|
|
|
|
+ # Калибровочный коэф-т K (диапазон 0 - 10 В)
|
|
|
+ data = self.get_cal_k_v10()
|
|
|
+ print('Factors "K" in 0-10V mode: ', Fore.GREEN + f'1: {data[0]}, 2: {data[1]}, 3: {data[2]}, 4: {data[3]}, 5: {data[4]}, 6: {data[5]}')
|
|
|
+ print('Factors "K" in 0-10V mode: ', Fore.GREEN + f'7: {data[6]}, 8: {data[7]}, 9: {data[8]}, 10: {data[9]}, 11: {data[10]}, 12: {data[11]}')
|
|
|
+
|
|
|
+ # Калибровочный коэф-т B (диапазон 0 - 10 В)
|
|
|
+ data = self.get_cal_b_v10()
|
|
|
+ print('Factors "B" in 0-10V mode: ', Fore.GREEN + f'1: {data[0]}, 2: {data[1]}, 3: {data[2]}, 4: {data[3]}, 5: {data[4]}, 6: {data[5]}')
|
|
|
+ print('Factors "B" in 0-10V mode: ', Fore.GREEN + f'7: {data[6]}, 8: {data[7]}, 9: {data[8]}, 10: {data[9]}, 11: {data[10]}, 12: {data[11]}')
|
|
|
+
|
|
|
+ # Калибровочный коэф-т K (диапазон 0 - 1 В)
|
|
|
+ data = self.get_cal_k_v1()
|
|
|
+ print('Factors "K" in 0-1V mode: ', Fore.GREEN + f'1: {data[0]}, 2: {data[1]}, 3: {data[2]}, 4: {data[3]}, 5: {data[4]}, 6: {data[5]}')
|
|
|
+ print('Factors "K" in 0-1V mode: ', Fore.GREEN + f'7: {data[6]}, 8: {data[7]}, 9: {data[8]}, 10: {data[9]}, 11: {data[10]}, 12: {data[11]}')
|
|
|
+
|
|
|
+ # Калибровочный коэф-т B (диапазон 0 - 1 В)
|
|
|
+ data = self.get_cal_b_v1()
|
|
|
+ print('Factors "B" in 0-1V mode: ', Fore.GREEN + f'1: {data[0]}, 2: {data[1]}, 3: {data[2]}, 4: {data[3]}, 5: {data[4]}, 6: {data[5]}')
|
|
|
+ print('Factors "B" in 0-1V mode: ', Fore.GREEN + f'7: {data[6]}, 8: {data[7]}, 9: {data[8]}, 10: {data[9]}, 11: {data[10]}, 12: {data[11]}')
|
|
|
+
|
|
|
+ # Калибровочный коэф-т K (режим измерения тока)
|
|
|
+ data = self.get_cal_k_cur()
|
|
|
+ print('Factors "K" in current mode: ', Fore.GREEN + f'1: {data[0]}, 2: {data[1]}, 3: {data[2]}, 4: {data[3]}, 5: {data[4]}, 6: {data[5]}')
|
|
|
+ print('Factors "K" in current mode: ', Fore.GREEN + f'7: {data[6]}, 8: {data[7]}, 9: {data[8]}, 10: {data[9]}, 11: {data[10]}, 12: {data[11]}')
|
|
|
+
|
|
|
+ # Калибровочный коэф-т B (режим измерения тока)
|
|
|
+ data = self.get_cal_b_cur()
|
|
|
+ print('Factors "B" in current mode: ', Fore.GREEN + f'1: {data[0]}, 2: {data[1]}, 3: {data[2]}, 4: {data[3]}, 5: {data[4]}, 6: {data[5]}')
|
|
|
+ print('Factors "B" in current mode: ', Fore.GREEN + f'7: {data[6]}, 8: {data[7]}, 9: {data[8]}, 10: {data[9]}, 11: {data[10]}, 12: {data[11]}')
|
|
|
|
|
|
# Коэффициенты усиления
|
|
|
# for i in range(1, 13):
|
|
|
@@ -317,11 +429,22 @@ def main():
|
|
|
ai = IO_AnalogInput(modbus_tester)
|
|
|
|
|
|
'''Режим работы аналоговых входов'''
|
|
|
- ai.set_inputs_state(0b1111_1111_1111)
|
|
|
+ # ai.set_inputs_state(0b1111_1111_1111)
|
|
|
# ai.set_voltage_range(0b1111_1111_1111)
|
|
|
- ai.set_voltage_range(0b0000_0000_0000)
|
|
|
+ # ai.set_voltage_range(0b0000_0000_0000)
|
|
|
ai.print_inputs()
|
|
|
|
|
|
+
|
|
|
+ # ai.set_cal_k_v10([1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 1.9, 1.10, 1.11, 1.12])
|
|
|
+ # ai.set_cal_b_v10([2.1, 2.2, 2.3, 2.4, 2.5, 2.6, 2.7, 2.8, 2.9, 2.10, 2.11, 2.12])
|
|
|
+
|
|
|
+ # ai.set_cal_k_v1([3.1, 3.2, 3.3, 3.4, 3.5, 3.6, 3.7, 3.8, 3.9, 3.10, 3.11, 3.12])
|
|
|
+ # ai.set_cal_b_v1([4.1, 4.2, 4.3, 4.4, 4.5, 4.6, 4.7, 4.8, 4.9, 4.10, 4.11, 4.12])
|
|
|
+
|
|
|
+ # ai.set_cal_k_cur([5.1, 5.2, 5.3, 5.4, 5.5, 5.6, 5.7, 5.8, 5.9, 5.10, 5.11, 5.12])
|
|
|
+ # ai.set_cal_b_cur([6.1, 6.2, 6.3, 6.4, 6.5, 6.6, 6.7, 6.8, 6.9, 6.10, 6.11, 6.12])
|
|
|
+
|
|
|
+
|
|
|
# ai.show_graph(ai.get_fil_inputs, 'AIN_FIL_1')
|
|
|
|
|
|
'''Уставки'''
|
|
|
@@ -343,7 +466,7 @@ def main():
|
|
|
|
|
|
'''Системное'''
|
|
|
# print(ai.sys.get_uptime())
|
|
|
- ai.sys.save_settings()
|
|
|
+ # ai.sys.save_settings()
|
|
|
|
|
|
'''Установка коэффициентов усиления. Канал, коэффициент'''
|
|
|
'''
|