WebHMI Internal Registers

Материал из WebHMI Wiki
Версия от 08:49, 13 июля 2017; Evgeniy.mozoliak (обсуждение | вклад) (Новая страница: «The user can access 2000 bytes of RAM. The register address is the address of the beginning of the fragment in the memory block.»)

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

The following internal registers are available in WebHMI (for version 1.5 and higher):

Cx - Communication registers

The presence of communication errors on different connections

RegisterDescriptionUnitsData typeRead/Write
C0The presence of communication errors in any of the connections. 0 means there is no communication error. A positive number indicates the connection number in which there is a communication error.Connection numberWord, Unsigned IntRead/-
C1The presence of a communication error in connection with ID = 1. 0 means there are no errors. A positive number means a register ID that can not be read.Register numberWord, Unsigned IntRead/-
C2The presence of a communication error in connection with ID = 2. 0 means there are no errors. A positive number means a register ID that can not be read.Register numberWord, Unsigned IntRead/-
............

CDxxx - Connection Disabled registers

Connection status - enabled / disabled. This register allows you to see whether the exchange is disabled for a specific connection. If the exchange is disabled, the system will return 1. If the exchange is not disabled, it will return 0. Recording to these registers allows you to enable / disable the exchange on the desired connection. To disable the exchange, you need to write 1 to the appropriate register.

RegisterDescriptionData typeRead/Write
CD1Exchange turned on connection with ID = 1.BitRead/Write
CD2Exchange turned on connection with ID = 2.BitRead/Write
CD3Exchange turned on connection with ID = 3.BitRead/Write
.........

Dxxx - Data registers

RegisterОписаниеUnitsData typeRead/Write
D0A common register for user needs.Bit, Byte, Word, Double WordRead/Write
...
D1999A common register for user needs.Bit, Byte, Word, Double WordRead/Write

The data in these registers are NOT stored after the reboot.

The user can access 2000 bytes of RAM. The register address is the address of the beginning of the fragment in the memory block.

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

DSxxx - Data static registers

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

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

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

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

Tx - Time registers

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

Hx - Hardware-related registers

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

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

B0 - Sound alert register

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

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

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

DOx - Digital Output registers

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

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

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

Ixxx - Intervals

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

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

Rxxx - Random values

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

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

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

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

Lx - Linux-related registers

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

РегистрОписаниеЕдиницы измеренияТип данныхRead/Write
L0Свободная памятьKiBWord, Unsigned IntRead/-
L1Свободная память плюс память занятая буферами ОСKiBWord, Unsigned IntRead/-
L21 minute [load average]Double Word, Float 32Read/-
L35 minutes [load average]Double Word, Float 32Read/-
L415 minutes [load average]Double Word, Float 32Read/-

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=1BitRead/-
ES2Состояние условия с id=2BitRead/-
ES3Состояние условия с id=3BitRead/-
...

ELxxx - Event Length

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

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

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

Sxxx - String

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

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

TRxxx - Title of recipe

Начиная с версии 2.7 в WebHMI добавился новый тип внутренних регистров TRxx. В них содержатся названия рецептов с указанным ID.

РегистрОписаниеТип данныхRead/Write
TR1Название рецепа с ID=1StringRead/Write
TR2Название рецепа с ID=2StringRead/Write
TR3Название рецепа с ID=3StringRead/Write
...


WCxxx - Weather Condition registers

Текущая метеоинформация. Группа регистров, предоставляющих погодную информацию на текущий момент в месте установки WebHMI. Данные обновляются примерно каждые два часа. Для работы сервиса требуется интернет-подключение, учетная запись в Level2 и подписка на метеопрогноз. Регистры доступны начиная с версии 2.5.2400.

РегистрОписаниеТип данныхRead/Write
WC0Время, для которого получены данные.Double Word, UnixtimeRead/-
WC1Температура воздуха, градусы Цельсия.Double Word, FloatRead/-
WC2Давление, hPa.Word, IntRead/-
WC3Относительная влажность, %.Word, IntRead/-
WC4Скорость ветра, м/с.Double Word, FloatRead/-
WC5Направление, откуда дует ветер, метрологические градусы.Double Word, FloatRead/-
WC6Облачность, %.Word, IntRead/-
WC7Количество осадков (дождь), мм.Double Word, FloatRead/-
WC8Количество осадков (снег), мм.Double Word, FloatRead/-
WC9Текстовое описание текущей погодыStringRead/-

Текстовое описание текущей погоды может быть: Clear, Clouds, Rain, Snow, Thunderstorm, Mist.

WFxxx - Weather Forecast registers

Прогноз погоды на ближайшие сутки с интервалом 3 часа. Доступен прогноз на семь 3-х часовых интервалов вперед. Данные обновляются примерно каждые два часа. Для работы сервиса требуется интернет-подключение, учетная запись в Level2 и подписка на метеопрогноз. Регистры доступны начиная с версии 2.5.2400.

Регистры аналогичны регистрам WCxxx. Адреса регистров строятся таким образом: [номер интервала] * 10 + [адрес регистра WCxxx].

Пример:
WF1 = Температура воздуха в следующем 3-х часовом интервале.
WF21 = Температура воздуха примерно через 6 часов.
WF31 = Температура воздуха примерно через 9 часов.
И т.д.

Для более точного понимания на какое время строится прогноз, можно использовать метки времени в регистрах WFx0.

РегистрОписаниеТип данныхRead/Write
WF0Интервал 1. Время, для которого получены данные.Double Word, UnixtimeRead/-
WF1Интервал 1. Температура воздуха, градусы Цельсия.Double Word, FloatRead/-
WF2Интервал 1. Давление, hPa.Word, IntRead/-
WF3Интервал 1. Относительная влажность, %.Word, IntRead/-
WF4Интервал 1. Скорость ветра, м/с.Double Word, FloatRead/-
WF5Интервал 1. Направление, откуда дует ветер, метрологические градусы.Double Word, FloatRead/-
WF6Интервал 1. Облачность, %.Word, IntRead/-
WF7Интервал 1. Количество осадков (дождь), мм.Double Word, FloatRead/-
WF8Интервал 1. Количество осадков (снег), мм.Double Word, FloatRead/-
WF9Интервал 1. Текстовое описание текущей погодыStringRead/-
WF10Интервал 2. Время, для которого получены данные.Double Word, UnixtimeRead/-
WF11Интервал 2. Температура воздуха, градусы Цельсия.Double Word, FloatRead/-
WF12Интервал 2. Давление, hPa.Word, IntRead/-
WF13Интервал 2. Относительная влажность, %.Word, IntRead/-
WF14Интервал 2. Скорость ветра, м/с.Double Word, FloatRead/-
WF15Интервал 2. Направление, откуда дует ветер, метрологические градусы.Double Word, FloatRead/-
WF16Интервал 2. Облачность, %.Word, IntRead/-
WF17Интервал 2. Количество осадков (дождь), мм.Double Word, FloatRead/-
WF18Интервал 2. Количество осадков (снег), мм.Double Word, FloatRead/-
WF19Интервал 2. Текстовое описание текущей погодыStringRead/-
............
WF60Интервал 7. Время, для которого получены данные.Double Word, UnixtimeRead/-
WF61Интервал 7. Температура воздуха, градусы Цельсия.Double Word, FloatRead/-
WF62Интервал 7. Давление, hPa.Word, IntRead/-
WF63Интервал 7. Относительная влажность, %.Word, IntRead/-
WF64Интервал 7. Скорость ветра, м/с.Double Word, FloatRead/-
WF65Интервал 7. Направление, откуда дует ветер, метрологические градусы.Double Word, FloatRead/-
WF66Интервал 7. Облачность, %.Word, IntRead/-
WF67Интервал 7. Количество осадков (дождь), мм.Double Word, FloatRead/-
WF68Интервал 7. Количество осадков (снег), мм.Double Word, FloatRead/-
WF69Интервал 7. Текстовое описание текущей погодыStringRead/-

Текстовое описание текущей погоды может быть: Clear, Clouds, Rain, Snow, Thunderstorm, Mist.

WSxxx - Sunset/Sunrize registers

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

РегистрОписаниеТип данныхRead/Write
WS0Время рассветра.Double Word, UnixtimeRead/-
WS1Время заката.Double Word, UnixtimeRead/-

Текстовое описание текущей погоды может быть: Clear, Clouds, Rain, Snow, Thunderstorm, Mist.