1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- from io_module import IO_Module
- from modbus import Modbus
- from log_reader import AnalogInputLogReader
- import colorama
- from colorama import Fore
- from time import sleep
- from serial import Serial
- from mb_registers import AO_REGS
- class IO_AnalogOutput(IO_Module):
- def __init__(self, modbus: Modbus):
- self.modbus = modbus
- super().__init__(self.modbus)
- '''Чтение параметров'''
- # Значения состояний выходов вкл./выкл. (битовое поле)
- def get_outputs_state(self):
- data = self.modbus.read_holding_registers(AO_REGS['aout_state'], 1)
- return format(data[0], '04b')
- # Режим аналоговых выходов (0 - напряжение или 1 - ток. (битовое поле))
- def get_outputs_mode(self):
- data = self.modbus.read_holding_registers(AO_REGS['aout_mode'], 1)
- return format(data[0], '04b')
- '''Установка параметров'''
- def set_outputs_state(self, val):
- self.modbus.write_holding_register(AO_REGS['aout_state'], val)
- def set_inputs_mode(self, val):
- self.modbus.write_holding_register(AO_REGS['aout_mode'], val)
- def main():
- colorama.init(autoreset=True)
- serial_port = Serial('COM24', 115200, timeout=0.05, parity='N', xonxoff=False)
- ao_modbus = Modbus(serial_port, 8)
- ao = IO_AnalogOutput(ao_modbus)
- '''Тесты отдельного модуля аналоговых выходов'''
- ao.sys.get_system_vars()
- '''Чтение параметров'''
- # print(ao.get_outputs_state())
- # print(ao.get_outputs_state())
- '''Установка параметров'''
- # ao.set_outputs_state(0b1111)
- '''Сохранение настроек'''
- # ao.sys.save_sattings()
- '''Обновление прошивки'''
- # ao_modbus.MB_DEBUG = True
- # ao.updater.update('fw.bin', 'MAO_4')
- if __name__ == '__main__':
- main()
|