Внутренние регистры WebHMI

Материал из WebHMI
Перейти к: навигация, поиск

В версии WebHMI 1.5 доступны такие внутренние регистры.

Cx - Communication registers

Наличие ошибок связи на разных соединениях.

Регистр Описание Единицы измерения Тип данных Read/Write
C0 Наличие ошибок связи в любом из соединений. 0 означает что ошибок связи нет. Положительное число означает номер соединения в котором есть ошибка связи. Номер соединения Word, Unsigned Int Read/-
C1 Наличие ошибки связи в соединении с ID=1. 0 означает что ошибок нет. Положительное число означает ID регистра который не может быть прочитан. Номер регистра Word, Unsigned Int Read/-
C2 Наличие ошибки связи в соединении с ID=2. 0 означает что ошибок нет. Положительное число означает ID регистра который не может быть прочитан. Номер регистра Word, Unsigned Int Read/-
... ... ... ... ...

CDxxx - Connection Disabled registers

Состояние соединения — включено/отключено. Этот регистр позволяет видеть отключен ли обмен по конкретному соединению. Если обмен отключен — система вернет 1. Если обмен не отключен — вернет 0. Запись в данные регистры позволяет программно включать/выключать обмен по нужному соединению. Для отключения обмена нужно записать 1 в соответствующий регистр.

Регистр Описание Тип данных Read/Write
CD1 Обмен включен в соединении с ID = 1. Bit Read/Write
CD2 Обмен включен в соединении с ID = 2 Bit Read/Write
CD3 Обмен включен в соединении с ID = 3. Bit Read/Write
... ... ... ...

Dxxx - Data registers

Регистр Описание Единицы измерения Тип данных Read/Write
D0 Обычный регистр для нужд пользователей. Bit, Byte, Word, Double Word Read/Write
...
D1999 Обычный регистр для нужд пользователей. Bit, Byte, Word, Double Word Read/Write

Данные в этих регистрах после перезагрузки НЕ сохраняются.

Пользователю доступны 2000 байт в оперативной памяти. Адрес регистра - это адрес начала фрагмента в блоке памяти.

В зависимости от выбранного типа данных на один регистр приходится разное количество байт. Так, можно обращаться к регистру с адресом D12 как к байту. В этом случае будет обращение к одному байту в памяти. Если обратится к регистру с адресом D12 как к слову (Word) то физически будет обращение к двум байтам с адресами D12 и D13 из которых будет составлено слово. Таким образом можно обращаться к отдельным байтам в нужном слове или двойном слове. Система не проверяет адреса регистров на пересечения или наложения. Этот контроль должен быть выполнен пользователем.

DSxxx - Data static registers

Регистр Описание Единицы измерения Тип данных Read/Write
DS0 Энергонезависимый регистр для нужд пользователей. Byte, Word, Double Word Read/Write
...
DS1999 Энергонезависимый регистр для нужд пользователей. Byte, Word, Double Word Read/Write

Данные в этих регистрах после перезагрузки СОХРАНЯЮТСЯ. Пользователю доступны 2000 байт в энергонезависимой памяти. Адрес регистра - это адрес начала фрагмента в блоке памяти.

В зависимости от выбранного типа данных на один регистр приходится разное количество байт. Так, можно обращаться к регистру с адресом DS12 как к байту. В этом случае будет обращение к одному байту в памяти. Если обратится к регистру с адресом DS12 как к слову (Word) то физически будет обращение к двум байтам с адресами DS12 и DS13 из которых и будет составлено слово. Таким образом можно обращаться к отдельным байтам в нужном слове или двойном слове. Система не проверяет адреса регистров на пересечения или наложения. Этот контроль должен быть выполнен пользователем.

Энергонезависимая память реализована в аппаратной платформа ревизии V5.34 и выше.

Tx - Time registers

Регистр Описание Единицы измерения Тип данных Read/Write
T0 Текущее время Секунды UNIX-время Read/-
T1 Время, затраченное на обмен данными со всеми регистрами в предыдущем цикле. Миллисекунды Double Word, Unsigned Int Read/-
T2 Время, затраченное на обмен данными, обработку всех событий, сценариев, записью в базу данных, записью новых значений в устройства в предыдущем цикле. Фактически, это полный цикл без учета паузы между циклами. Миллисекунды Double Word, Unsigned Int Read/-
T3 Полное фактическое время предыдущего цикла с учетом паузы между циклами. Миллисекунды Double Word, Unsigned Int Read/-

Hx - Hardware-related registers

Регистры для чтения состояния оборудования на борту WebHMI

Регистр Описание Единицы измерения Тип данных Read/Write
H0 Флаг валидности значения температуры. 1 = значение достоверное, 0 = значение не достоверно Bit Read/-
H1 Флаг валидности регистров контролера питания, 1 = значения достоверное, 0 = значения не достоверны Bit Read/-
H2 Температура на кристалле RTC Градусы Цельсия Double word, float 32 Read/-
H3 Входное напряжение Вольты Double word, float 32 Read/-
H4 Напряжение на батарее Вольты Double word, float 32 Read/-
H5 “Power OK” - питание в норме Bit Read/-
H6 "Battery Low" - батарея разряжен. 1 означает, что на батарее напряжение достигло минимального но еще рабочего напряжения, WebHMI завершит работу штатным образом. Bit Read/-
H7 Battery Critical. Напряжение на батарее достигло минимального значения, и если в течении 10 сек не появится входное напряжение то контролер обесточит WebHMI. Bit Read/-
H8 System OK. 1 означает что система загрузилась и работает. Bit Read/-
H9 “External Power Supply”. Работаем на 24В. 1 означает что система работает от внешнего питания. Bit Read/-
H10 “Internal Power Supply”. Работаем от аккумулятора. 1 означает что система работает от аккумулятора. Bit Read/-
H11 "Reset enabled" - включен таймер на подачу сигнала RESET. 1 означает что система собирается перезагрузиться. Bit Read/-
H12 “Power OFF enabled”. 1 означает что система собирается выключиться. Bit Read/-

B0 - Sound alert register

С помощью этого регистра можно издавать звуки встроенной в WebHMI пищалкой. В регистр нужно записать значение от 1 до 8. WebHMI издаст соответствующее количество звуковых сигналов. После того как сигналы прозвучат WebHMI перестанет издавать звук. Для повторного звукового сигнала следует еще раз записать нужное число в этот регистр.

Запись в этот регистр можно организовать с помощью сценариев. Так, например, можно издавать писк при обрыве связи или при наступлении аварийой ситуации.

При чтении из этого регистра всегда будет возвращаться 0.

DOx - Digital Output registers

Регистры внешних сухих контактов. При записи в регистр соответствующий сухой контакт будет замкнут.

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

Регистр Описание Единицы измерения Тип данных Read/Write
DO0 Сухой контакт номер 1 Bit Read/-
DO1 Сухой контакт номер 2 Bit Read/-

Ixxx - Intervals

Регистры интервалов. Обычно применяются в условиях событий. Например, если нужно получить событие, которое срабатывает каждые 10 секунд, то можно сравнивать значение регистра I10 c нулем (I10 == 0). Если нужен интервал 2 минуты то нужно использовать регистр I120.

Регистр Описание Единицы измерения Тип данных Read/Write
I1 Остаток деления текущего времени на 1 Секунды Double Word, Unsigned Int Read/-
I2 Остаток деления текущего времени на 2 Секунды Double Word, Unsigned Int Read/-
I3 Остаток деления текущего времени на 3 Секунды Double Word, Unsigned Int Read/-
...

Rxxx - Random values

Генератор случайных чисел. Rxxx = rand() % xxx.

Значение регистра с номером xxx это остаток от деления случайного числа на xxx (адрес регистра).

Пример: R123 будет возвращать случайные числа в диапазоне от 0 до 122 включительно.

Регистр Описание Единицы измерения Тип данных Read/Write
R2 Случайное целое в интервале от 0 до 1 (включительно). Double Word, Unsigned Int Read/-
R3 Случайное целое в интервале от 0 до 2 (включительно). Double Word, Unsigned Int Read/-
R4 Случайное целое в интервале от 0 до 3 (включительно). Double Word, Unsigned Int Read/-
...

Lx - Linux-related registers

Некоторые наиболее важные метрики операционной системы.

Регистр Описание Единицы измерения Тип данных Read/Write
L0 Свободная память KiB Word, Unsigned Int Read/-
L1 Свободная память плюс память занятая буферами ОС KiB Word, Unsigned Int Read/-
L2 1 minute load average Double Word, Float 32 Read/-
L3 5 minute load average Double Word, Float 32 Read/-
L4 15 minute load average Double Word, Float 32 Read/-

Exxx.xxx - Event registers

Регистры из условий. Если условие Х, у которого id = Y, сейчас выполняется, то можно читать некоторые его значения из регистров вида EY.xxx. Только чтение.

Читать можно те значения, которые добавлены в таблицу отчета. Для удобства, каждое такое значение подписано прямо в редакторе условий.

Event registers.png

На этом экране видны регистры E1.0, E1.1, E1.2. Когда условие выполняется то в них будут содержаться соответствующие значения из отчета с id = 1. В данном примере в регистре E1.0 будет время начала выполнения условия в формате UnixTime, в E1.1 время его завершения либо 0 если оно еще не завершилось, в E1.2 - значение из регистра "Рецепт" на момент начала события.

ESxxx - Event State

Регистры состояния условий.

Например, единица в регистре ES2 означает что событие с id=2 сейчас выполняется. Если в регистре ES2 ноль то это это значит что условие не выполняется.

Регистр Описание Единицы измерения Тип данных Read/Write
ES1 Состояние условия с id=1 Bit Read/-
ES2 Состояние условия с id=2 Bit Read/-
ES3 Состояние условия с id=3 Bit Read/-
...

ELxxx - Event Length

Регистры длительности событий.

Например, в регистре EL2 будет содержаться длительность в секундах выполнения события с id=2 при условии что это событие сейчас выполняется. Если в регистре EL2 ноль то это это значит что условие не выполняется или его длительность меньше 1 секунды.

Регистр Описание Единицы измерения Тип данных Read/Write
EL1 Состояние условия с id=1 Секунды Double Word Read/-
EL2 Состояние условия с id=2 Секунды Double Word Read/-
EL3 Состояние условия с id=3 Секунды Double Word Read/-
...

Sxxx - String

Начиная с версии 1.11.0.3478 в WebHMI добавился новый тип данных - строки. Строки доступны как внутренние регистры Sxxx. Всего доступно 200 таких регистров S1...S200.

Регистр Описание Тип данных Read/Write
S1 Переменная типа строка 1 String Read/Write
S2 Переменная типа строка 2 String Read/Write
S3 Переменная типа строка 3 String Read/Write
...
S200 Переменная типа строка 200 String Read/Write