mb_registers.py 4.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. from enum import Enum
  2. reg_table = {'out_cur': 0x0200, 'out_mode': 0x0202, 'out_mode_save': 0x0203, 'pwm_duty': 0x0210,
  3. 'pwm_duty_save': 0x0220, 'pwm_per': 0x0230, 'pwm_per_save': 0x0240,
  4. 'rtc_sinhro': 0x0804, 'log_info': 0x0900, 'log_ent': 0x0901,
  5. 'arch_cap': 0x0902, 'arch_ent': 0x0903, 'archive_per': 0x0904}
  6. DIO_REGS = {'load_bits': 0x0130, 'cred_bits': 0x0131, 'out_cur': 0x0200}
  7. AI_REGS = {}
  8. LOG_REGS = {'log_info': 0x0900, 'log_ent': 0x0901, 'arch_cap': 0x0902, 'arch_ent': 0x0903, 'arch_per': 0x0904}
  9. class DioReg(Enum):
  10. IN_STATE = 0x0100 # Состояние входов (вкл./выкл.)
  11. IN_BITS = 0x0101 # Текущее состояние входов
  12. IN_CNT = 0x0102 # Счетчики импульсов
  13. IN_MODE = 0x0120 # Режим работы входов (битовое поле)
  14. IN_NORM = 0x0122 # Нормальное состояние входов
  15. IN_DEBOUNCE = 0x0124 # Время антидребезга (ms)
  16. LOAD_ERR = 0x0130 # Состояние датчиков обрыва нагрузки (битовое поле)
  17. OUT_ERR = 0x0131 # Неисправность реле (битовое поле)
  18. OUT_STATE = 0x0200 # Состояние выходов (вкл./выкл.)
  19. OUT_STATE_SAVE = 0x0201 # Состояние выходов в безопасном режиме (вкл./выкл.)
  20. OUT_BITS = 0x0202 # Текущее состояние выходов
  21. OUT_BITS_SAVE = 0x0203 # Состояние выходов в безопасном режиме
  22. OUT_MODE = 0x0204 # Режим работы выходов (битовое поле)
  23. OUT_MODE_SAVE = 0x0205 # Режим работы выходов в безопасном режиме (битовое поле)
  24. class AiReg(Enum):
  25. IN_STATE = 0x0300 # Состояние входов (вкл./выкл.)
  26. IN_MODE = 0x0301 # Режим работы входов (битовое поле)
  27. IN_FAILURE = 0x0302 # Аварии аналоговых входов (битовое поле)
  28. EXT_SENS_POWER = 0x0303 # Питание внешних датчиков
  29. IN_GAINE_FACTOR = 0x0310 # Коэффициент усиления канала
  30. IN_K_FACTOR = 0x0320 # Коэффициент пересчета K
  31. IN_B_FACTOR = 0x0340 # Коэффициент пересчета B
  32. IN_RAW = 0x0360 # Канал AN_INP_1 (сырые данные)
  33. IN_FILTER = 0x0380 # Фильтрованные данные с учетом K и B
  34. class AoReg(Enum):
  35. OUT_STATE = 0x0400 # статус выходов
  36. OUT_STATE_SAVE = 0x0401 # статус выходов (безопасный режим)
  37. OUT_MODE = 0x0402 # режим работы выходов (напряжение/ток)
  38. OUT_MODE_SAVE = 0x0403 # режим работы выходов (безопасный режим)
  39. OUT_POWER = 0x0404 # питание выходных каналов
  40. OUT_VALUE = 0x0410 # Значение на выходе
  41. OUT_VALUE_SAVE = 0x0420 # Значение на выходе (безопасный режим)
  42. class SysReg(Enum):
  43. '''Производственные настройки'''
  44. MODEL = 0x0080 # Модель (числовой код)
  45. HW_REV = 0x0081 # Ревизия платы
  46. PRODATE = 0x0082 # Дата производтсва
  47. SN = 0x0084 # Серийный номер
  48. FW_VER = 0x0086 # Версия ПО
  49. TEST_STATUS = 0x008A # Статус тестирования
  50. PASSWORD = 0x0090 # Пароль
  51. SAVE_SYS = 0x0091 # Команда записи системных настроек
  52. '''Системные параметры'''
  53. COMMAND = 0x0800 # Команды управления
  54. UPTIME = 0x0801 # Uptime
  55. RTC = 0x0803 # RTC
  56. BAT_VOLTAGE = 0x0807 # Напряжение на батарее RTC
  57. ERR = 0x0809 # Состояние модуля
  58. INFO = 0x080B # Текстовая строка (пользовательская информация)
  59. SAVE_MODE = 0x081B # Безопасный режим работы (0-выкл, 1-вкл)
  60. SAVE_DELAY = 0x081C # Время до перехода в безопасный режим