analog_in.py 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. from io_module import IO_Module
  2. from modbus import Modbus
  3. from log_reader import AnalogInputLogReader
  4. import colorama
  5. from colorama import Fore
  6. from time import sleep
  7. from serial import Serial
  8. from mb_registers import AI_REGS
  9. class IO_AnalogInput(IO_Module):
  10. def __init__(self, modbus: Modbus):
  11. self.modbus = modbus
  12. super().__init__(self.modbus)
  13. self.log = AnalogInputLogReader(self.modbus)
  14. '''Чтение параметров'''
  15. # Рожим работы входов
  16. def get_inputs_mode(self):
  17. data = self.modbus.read_holding_registers(AI_REGS['ain_mode'], 1)
  18. return format(data[0], '012b')
  19. '''Установка параметров'''
  20. def set_inputs_mode(self, val):
  21. self.modbus.write_holding_register(AI_REGS['ain_mode'], val)
  22. def main():
  23. colorama.init(autoreset=True)
  24. serial_port = Serial('COM56', 115200, timeout=0.05, parity='N', xonxoff=False)
  25. modbus_tester = Modbus(serial_port, 1)
  26. # dev_tester = IO_Digital(modbus_tester)
  27. ai = IO_AnalogInput(modbus_tester)
  28. '''Режим работы аналоговых входов'''
  29. print(ai.get_inputs_mode())
  30. ai.set_inputs_mode(0b00011000)
  31. print(ai.get_inputs_mode())
  32. if __name__ == '__main__':
  33. main()