Объекты: Внутренние регистры

8 апреля 2021 г.
Многообразие регистров для битовой лампы

Сегодня мы отойдем от изучения различных объектов и разберем внутренние регистры панелей и серверов Weintek. Их немного, и ничего сложного в них нет, но различия между ними знать обязательно.

Базовые энергозависимые регистры

Самые стандартные регистры, значение которых не сохраняются при перезагрузке панели, называются локальными.

Локальный битовый регистр — LB (Local Bit). Этот регистр может принимать значение 0 или 1. Диапазон адресов: 0 ~ 8999. Адреса 9000 ~ 12895 зарезервированы под системные регистры. Формат адреса: DDDDD (D означает разряд десятичного числа).

Локальный регистр слова — LW (Local Word). Этот регистр занимает 16 бит в памяти. Диапазон адресов: 0 ~ 8999. Адреса 9000 ~ 12700 зарезервированы под системные регистры. Обратите внимание, что некоторые типы данных занимают 32 или 64 бита. Если числовой объект имеет формат Float (32 бита) и ему назначен адрес LW0, то на самом деле он будет отображать составное значение LW0 и LW1 (по 16 бит каждый). Будьте осторожны и не допускайте наложения регистров.

Битовый объект также может обратиться к конкретному биту регистра LW. Такой регистр называется LW_bit и имеет формат DDDDDdd, где DDDDD это адрес LW, а dd — это номер бита (от 00 до 15). Это позволяет использовать LW не просто как регистр для числа, но и как хранилище набора битовых значений.

Данные регистры используются для обмена данными, вычислений, временных переменных, вывода текущих значений и т.д.

Энергонезависимые регистры

Некоторые вещи в жизни нужно отпускать, а некоторые хочется сохранить навсегда. Для таких случаев нам подойдут энергонезависимые регистры.

RW (Retentive Word) — энергонезависимый регистр слова. Диапазон адресов: 0 ~ 524287. Формат адреса: DDDDDD . Так же существует стек регистров RW_A — это те же регистры RW, но расположенные в другой области памяти (т.е. RW0 не равен RW_A0). Диапазон адресов: 0 ~ 65535. Формат адреса: DDDDD.

У энергонезависимой памяти нет отдельных битовых регистров, но есть доступ к битам RW через RW_bit и RW_A_bit. В самом деле, хранить маленькие биты отдельно в долгосрочной перспективе не кажется разумным. Формат адреса: DDDDDh. Заметьте, что на сей раз номер бита имеет формат от 0 до f, то есть представлен в шестнадцатеричной системе.

В этих регистрах значения хранятся долго, и никакие перезагрузки панелей им не страшны. Значения регистров сохраняются в энергонезависимую память раз в минуту. Если вы хотите принудительно осуществить сохранение — установите системный бит LB-9029 в «1».

Клиентские регистры

Данные регистры являются уникальными для серии cMT. Значения этих регистров уникальны для каждого клиента, подключающегося к панели или серверу cMT. Клиентом могут быть, например, cMT-iV6 или cMT Viewer на Android.

PLB — клиентский битовый регистр. Диапазон адресов: 0 ~ 12399. Формат адреса: DDDDD.

PLW — клиентский регистр слова. Диапазон адресов: 0 ~ 12300. Формат адреса: DDDDD.

Так же, как и раньше, можно обратиться к отдельным битам слов. В этом нам поможет PLW_bit. Диапазон адресов: 0 ~ 1230015. Формат адреса: DDDDDdd.

Индексируемые регистры

Данные регистры представляют собой связку энергонезависимых регистров и индексного регистра LW9000. Есть битовый регистр (RBI, диапазон адресов: 0 ~ 65535, формат адреса: DDDDD) и регистр слова (RWI, диапазон адресов: 0 ~ 65535f, формат адреса: DDDDDh). Поясним на примере — если объект привязан к регистру RWI0, а LW9000 = 0, то объект будет показывать значение регистра RW0. Если же мы поменяем значение регистра LW9000 на 3, то объект начнет ссылаться на RW3. RBI, в свою очередь, будет ссылаться на RW_bit.

Регистры слова в расширенной памяти

Эти регистры хранятся во внешней памяти — на USB-диске или SD-карте. Они обозначаются как EM0 ~ EM15. Каждый блог регистров имеет диапазон адресов 0 ~ 1073741823 и формат DDDDDDDDDD. Как показано на скриншоте ниже, каждый файл настраивается отдельно в системных настройках. Это позволяет, например, переносить информацию с одной панели на другую, или может быть использовано в целях безопасности.

Настройка файлов, содержащих регистры расширенной памяти

Вот и все! Как видите, даже в таком простом аспекте Weintek способен удивить некоторыми тонкостями. Теперь вы знаете, зачем нужны все эти типы внутренних регистров и можете их использовать!