Где PMP20 хранит конфигурацию модулей расширения?
Конфигурация лежит в системных flash-регистрах, а не в пользовательской программе. Поэтому она сохраняется при разряженной батарее и переносится вместе с контроллером, но обновляется только после перезапуска по питанию.
Как распределена память:
- Состояние конфигурации — регистры с SFD340 по SFD347, по одному на пару посадочных мест: первый описывает модули №1 и №2, последний — №15 и №16. Для плат BD отведён SFD348, для модуля ED — SFD349.
- Сама конфигурация — с SFD350 по SFD509, по десять регистров на каждый из шестнадцати модулей. Для плат BD выделены регистры с SFD510 по SFD529, для модуля ED — с SFD530 по SFD539.
Что здесь описывается: тип модуля, режимы каналов, диапазоны аналоговых входов и выходов, типы термопар и термосопротивлений. Настройки заводятся в среде программирования на этапе описания состава системы, а контроллер раскладывает их в эти регистры.
Практических следствий два. Первое: после смены модуля на другой тип обязательно нужен цикл по питанию, иначе контроллер продолжит работать со старым описанием и выдаст ошибку несовпадения идентификатора. Второе: состав системы можно читать программно и сравнивать с эталоном — это простой способ поймать чужую перестановку модулей в шкафу.
Текущее состояние модулей отражается уже в обычных системных регистрах, а не во flash: номер модуля хранится в SD500, его состояние — в блоке начиная с SD501, а подробная информация по каждому модулю расширения занимает по 16 регистров, начиная с SD520.
Линейка модулей — в разделе модулей расширения.
Прикреплённая документация
Георгий Жуков
Ведущий инженер