Внутренние регистры WebHMI — различия между версиями
(→Dxxx - Data registers) |
|||
(не показаны 24 промежуточные версии 3 участников) | |||
Строка 1: | Строка 1: | ||
+ | <languages/> | ||
+ | |||
+ | <translate> | ||
+ | <!--T:1--> | ||
В версии WebHMI 1.5 доступны такие внутренние регистры. | В версии WebHMI 1.5 доступны такие внутренние регистры. | ||
− | == Cx - Communication registers == | + | == Cx - Communication registers == <!--T:2--> |
<p>Наличие ошибок связи на разных соединениях.</p> | <p>Наличие ошибок связи на разных соединениях.</p> | ||
<table border="1" cellspacing="0"> | <table border="1" cellspacing="0"> | ||
Строка 11: | Строка 15: | ||
</table> | </table> | ||
− | == Dxxx - Data registers == | + | == CDxxx - Connection Disabled registers == <!--T:3--> |
+ | <p>Состояние соединения — включено/отключено. Этот регистр позволяет видеть отключен ли обмен по конкретному соединению. Если обмен отключен — система вернет 1. Если обмен не отключен — вернет 0. Запись в данные регистры позволяет программно включать/выключать обмен по нужному соединению. Для отключения обмена нужно записать 1 в соответствующий регистр.</p> | ||
+ | <table border="1" cellspacing="0"> | ||
+ | <tr><td>Регистр</td><td>Описание</td><td>Тип данных</td><td>Read/Write</td></tr> | ||
+ | <tr><td>CD1</td><td>Обмен включен в соединении с ID = 1.</td><td>Bit</td><td>Read/Write</td></tr> | ||
+ | <tr><td>CD2</td><td>Обмен включен в соединении с ID = 2.</td><td>Bit</td><td>Read/Write</td></tr> | ||
+ | <tr><td>CD3</td><td>Обмен включен в соединении с ID = 3.</td><td>Bit</td><td>Read/Write</td></tr> | ||
+ | <tr><td>...</td><td>...</td><td></td><td>...</td></tr> | ||
+ | </table> | ||
+ | |||
+ | == Dxxx - Data registers == <!--T:4--> | ||
<table border="1" cellspacing="0"> | <table border="1" cellspacing="0"> | ||
<tr><td>Регистр</td><td>Описание</td><td>Единицы измерения</td><td>Тип данных</td><td>Read/Write</td></tr> | <tr><td>Регистр</td><td>Описание</td><td>Единицы измерения</td><td>Тип данных</td><td>Read/Write</td></tr> | ||
− | <tr><td>D0</td><td>Обычный регистр для | + | <tr><td>D0</td><td>Обычный регистр для нужд пользователей.</td><td></td><td>Bit, Byte, Word, Double Word</td><td>Read/Write</td></tr> |
<tr><td colspan="7" align="center">...</td></tr> | <tr><td colspan="7" align="center">...</td></tr> | ||
− | <tr><td>D1999</td><td>Обычный регистр для | + | <tr><td>D1999</td><td>Обычный регистр для нужд пользователей.</td><td></td><td>Bit, Byte, Word, Double Word</td><td>Read/Write</td></tr> |
</table> | </table> | ||
Данные в этих регистрах после перезагрузки НЕ сохраняются. | Данные в этих регистрах после перезагрузки НЕ сохраняются. | ||
+ | <!--T:5--> | ||
Пользователю доступны 2000 байт в оперативной памяти. Адрес регистра - это адрес начала фрагмента в блоке памяти. | Пользователю доступны 2000 байт в оперативной памяти. Адрес регистра - это адрес начала фрагмента в блоке памяти. | ||
+ | <!--T:6--> | ||
В зависимости от выбранного типа данных на один регистр приходится разное количество байт. Так, можно обращаться к регистру с адресом D12 как к байту. В этом случае будет обращение к одному байту в памяти. Если обратится к регистру с адресом D12 как к слову (Word) то физически будет обращение к двум байтам с адресами D12 и D13 из которых будет составлено слово. Таким образом можно обращаться к отдельным байтам в нужном слове или двойном слове. Система не проверяет адреса регистров на пересечения или наложения. Этот контроль должен быть выполнен пользователем. | В зависимости от выбранного типа данных на один регистр приходится разное количество байт. Так, можно обращаться к регистру с адресом D12 как к байту. В этом случае будет обращение к одному байту в памяти. Если обратится к регистру с адресом D12 как к слову (Word) то физически будет обращение к двум байтам с адресами D12 и D13 из которых будет составлено слово. Таким образом можно обращаться к отдельным байтам в нужном слове или двойном слове. Система не проверяет адреса регистров на пересечения или наложения. Этот контроль должен быть выполнен пользователем. | ||
− | == DSxxx - Data static registers == | + | == DSxxx - Data static registers == <!--T:7--> |
<table border="1" cellspacing="0"> | <table border="1" cellspacing="0"> | ||
<tr><td>Регистр</td><td>Описание</td><td>Единицы измерения</td><td>Тип данных</td><td>Read/Write</td></tr> | <tr><td>Регистр</td><td>Описание</td><td>Единицы измерения</td><td>Тип данных</td><td>Read/Write</td></tr> | ||
− | <tr><td>DS0</td><td>Энергонезависимый регистр для | + | <tr><td>DS0</td><td>Энергонезависимый регистр для нужд пользователей.</td><td></td><td>Byte, Word, Double Word</td><td>Read/Write</td></tr> |
<tr><td colspan="7" align="center">...</td></tr> | <tr><td colspan="7" align="center">...</td></tr> | ||
− | <tr><td>DS1999</td><td>Энергонезависимый регистр для | + | <tr><td>DS1999</td><td>Энергонезависимый регистр для нужд пользователей.</td><td></td><td>Byte, Word, Double Word</td><td>Read/Write</td></tr> |
</table> | </table> | ||
Данные в этих регистрах после перезагрузки СОХРАНЯЮТСЯ. Пользователю доступны 2000 байт в энергонезависимой памяти. Адрес регистра - это адрес начала фрагмента в блоке памяти. | Данные в этих регистрах после перезагрузки СОХРАНЯЮТСЯ. Пользователю доступны 2000 байт в энергонезависимой памяти. Адрес регистра - это адрес начала фрагмента в блоке памяти. | ||
+ | <!--T:8--> | ||
В зависимости от выбранного типа данных на один регистр приходится разное количество байт. Так, можно обращаться к регистру с адресом DS12 как к байту. В этом случае будет обращение к одному байту в памяти. Если обратится к регистру с адресом DS12 как к слову (Word) то физически будет обращение к двум байтам с адресами DS12 и DS13 из которых и будет составлено слово. Таким образом можно обращаться к отдельным байтам в нужном слове или двойном слове. Система не проверяет адреса регистров на пересечения или наложения. Этот контроль должен быть выполнен пользователем. | В зависимости от выбранного типа данных на один регистр приходится разное количество байт. Так, можно обращаться к регистру с адресом DS12 как к байту. В этом случае будет обращение к одному байту в памяти. Если обратится к регистру с адресом DS12 как к слову (Word) то физически будет обращение к двум байтам с адресами DS12 и DS13 из которых и будет составлено слово. Таким образом можно обращаться к отдельным байтам в нужном слове или двойном слове. Система не проверяет адреса регистров на пересечения или наложения. Этот контроль должен быть выполнен пользователем. | ||
+ | <!--T:9--> | ||
Энергонезависимая память реализована в аппаратной платформа ревизии V5.34 и выше. | Энергонезависимая память реализована в аппаратной платформа ревизии V5.34 и выше. | ||
− | == | + | == Tx - Time registers == <!--T:10--> |
<table border="1" cellspacing="0"> | <table border="1" cellspacing="0"> | ||
<tr><td>Регистр</td><td>Описание</td><td>Единицы измерения</td><td>Тип данных</td><td>Read/Write</td></tr> | <tr><td>Регистр</td><td>Описание</td><td>Единицы измерения</td><td>Тип данных</td><td>Read/Write</td></tr> | ||
<tr><td>T0</td><td>Текущее время</td><td>Секунды</td><td>[[https://ru.wikipedia.org/wiki/UNIX-время UnixTime]]</td><td>Read/-</td></tr> | <tr><td>T0</td><td>Текущее время</td><td>Секунды</td><td>[[https://ru.wikipedia.org/wiki/UNIX-время UnixTime]]</td><td>Read/-</td></tr> | ||
+ | <tr><td>T1</td><td>Время, затраченное на обмен данными со всеми регистрами в предыдущем цикле.</td><td>Милисекунды</td><td>Double Word, Unsigned Int</td><td>Read/-</td></tr> | ||
+ | <tr><td>T2</td><td>Время, затраченное на обмен данными, обработку всех событий, сценариев, записью в базу данных, записью новых значений в устройства в предыдущем цикле. Фактически, это полный цикл без учета паузы между циклами.</td><td>Милисекунды</td><td>Double Word, Unsigned Int</td><td>Read/-</td></tr> | ||
+ | <tr><td>T3</td><td>Полное фактическое время предыдущего цикла с учетом паузы между циклами.</td><td>Милисекунды</td><td>Double Word, Unsigned Int</td><td>Read/-</td></tr> | ||
</table> | </table> | ||
− | == Hx - Hardware-related registers == | + | == Hx - Hardware-related registers == <!--T:11--> |
Регистры для чтения состояния оборудования на борту WebHMI | Регистры для чтения состояния оборудования на борту WebHMI | ||
<table border="1" cellspacing="0"> | <table border="1" cellspacing="0"> | ||
Строка 62: | Строка 83: | ||
</table> | </table> | ||
− | == Ixxx - Intervals == | + | == B0 - Sound alert register == <!--T:12--> |
+ | <p>С помощью этого регистра можно издавать звуки встроенной в WebHMI пищалкой. В регистр нужно записать значение от 1 до 8. WebHMI издаст соответствующее количество звуковых сигналов. После того как сигналы прозвучат WebHMI перестанет издавать звук. Для повтороного звукового сигнала следует еще раз записать нужное число в этот регистр. </p> | ||
+ | <p>Запись в этот регистр можно организовать с помощью сценариев. Так, например, можно издавать писк при обрыве связи или при наступлении аварийой ситуации. </p> | ||
+ | <p>При чтении из этого регистра всегда будет возвращаться 0.</p> | ||
+ | |||
+ | == DOx - Digital Output registers == <!--T:13--> | ||
+ | <p>Регистры внешних сухих контактов. При запиписи в регистр соответствующий сухой контакт будет замкнут.</p> | ||
+ | <p>С помощью сухих контактов можно организовать управление внешнимим устройствами или же передать сигналы но внешние системы. Например, можно подключить охранную или пожарную системы и передавать им сигналы тревоги.</p> | ||
+ | <table border="1" cellspacing="0"> | ||
+ | <tr><td>Регистр</td><td>Описание</td><td>Единицы измерения</td><td>Тип данных</td><td>Read/Write</td></tr> | ||
+ | <tr><td>DO0</td><td>Сухой контакт номер 1</td><td></td><td>Bit</td><td>Read/Write</td></tr> | ||
+ | <tr><td>DO1</td><td>Сухой контакт номер 2</td><td></td><td>Bit</td><td>Read/Write</td></tr> | ||
+ | </table> | ||
+ | |||
+ | == Ixxx - Intervals == <!--T:14--> | ||
<p>Регистры интервалов. Обычно применяются в условиях событий. Например, если нужно получить событие, которое срабатывает каждые 10 секунд, то можно сравнивать значение регистра I10 c нулем (I10 == 0). | <p>Регистры интервалов. Обычно применяются в условиях событий. Например, если нужно получить событие, которое срабатывает каждые 10 секунд, то можно сравнивать значение регистра I10 c нулем (I10 == 0). | ||
Если нужен интервал 2 минуты то нужно использовать регистр I120.</p> | Если нужен интервал 2 минуты то нужно использовать регистр I120.</p> | ||
Строка 73: | Строка 108: | ||
</table> | </table> | ||
− | == Rxxx - Random values == | + | == Rxxx - Random values == <!--T:15--> |
<p>Генератор случайных чисел. Rxxx = rand() % xxx.</p> | <p>Генератор случайных чисел. Rxxx = rand() % xxx.</p> | ||
<p>Значение регистра с номером xxx это остаток от деления случайного числа на xxx (адрес регистра).</p> | <p>Значение регистра с номером xxx это остаток от деления случайного числа на xxx (адрес регистра).</p> | ||
Строка 85: | Строка 120: | ||
</table> | </table> | ||
− | == Lx - Linux-related registers == | + | == Lx - Linux-related registers == <!--T:16--> |
<p>Некоторые наиболее важные метрики операцинной системы.</p> | <p>Некоторые наиболее важные метрики операцинной системы.</p> | ||
<table border="1" cellspacing="0"> | <table border="1" cellspacing="0"> | ||
Строка 96: | Строка 131: | ||
</table> | </table> | ||
− | == Exxx.xxx - Event registers == | + | == Exxx.xxx - Event registers == <!--T:17--> |
<p>Регистры из условий. Если условие Х, у которого id = Y, сейчас выполняется, то можно читать некоторые его значения из регистров вида EY.xxx. Только чтение.</p> | <p>Регистры из условий. Если условие Х, у которого id = Y, сейчас выполняется, то можно читать некоторые его значения из регистров вида EY.xxx. Только чтение.</p> | ||
<p>Читать можно те значения, которые добавлены в таблицу отчета. Для удобства, каждое такое значение подписано прямо в редакторе условий.</p> | <p>Читать можно те значения, которые добавлены в таблицу отчета. Для удобства, каждое такое значение подписано прямо в редакторе условий.</p> | ||
Строка 102: | Строка 137: | ||
<p>На этом экране видны регистры E1.0, E1.1, E1.2. Когда условие выполняется то в них будут содержаться соответствующие значения из отчета с id = 1. В данном примере в регистре E1.0 будет время начала выполнения условия в формате [[https://ru.wikipedia.org/wiki/UNIX-время UnixTime]], в E1.1 время его завершения либо 0 если оно еще не завершилось, в E1.2 - значение из регистра "Рецепт" на момент начала события.</p> | <p>На этом экране видны регистры E1.0, E1.1, E1.2. Когда условие выполняется то в них будут содержаться соответствующие значения из отчета с id = 1. В данном примере в регистре E1.0 будет время начала выполнения условия в формате [[https://ru.wikipedia.org/wiki/UNIX-время UnixTime]], в E1.1 время его завершения либо 0 если оно еще не завершилось, в E1.2 - значение из регистра "Рецепт" на момент начала события.</p> | ||
− | == ESxxx - Event State == | + | == ESxxx - Event State == <!--T:18--> |
<p>Регистры состояния условий.</p> | <p>Регистры состояния условий.</p> | ||
<p>Например, единица в регистре ES2 означает что событие с id=2 сейчас выполняется. Если в регистре ES2 ноль то это это значит что условие не выполняется.</p> | <p>Например, единица в регистре ES2 означает что событие с id=2 сейчас выполняется. Если в регистре ES2 ноль то это это значит что условие не выполняется.</p> | ||
Строка 113: | Строка 148: | ||
</table> | </table> | ||
− | == ELxxx - Event Length == | + | == ELxxx - Event Length == <!--T:19--> |
<p>Регистры длительности событий.</p> | <p>Регистры длительности событий.</p> | ||
<p>Например, в регистре EL2 будет содержаться длительность в секундах выполнения события с id=2 при условии что это событие сейчас выполняется. Если в регистре EL2 ноль то это это значит что условие не выполняется или его длительность меньше 1 секунды.</p> | <p>Например, в регистре EL2 будет содержаться длительность в секундах выполнения события с id=2 при условии что это событие сейчас выполняется. Если в регистре EL2 ноль то это это значит что условие не выполняется или его длительность меньше 1 секунды.</p> | ||
Строка 123: | Строка 158: | ||
<tr><td colspan="7" align="center">...</td></tr> | <tr><td colspan="7" align="center">...</td></tr> | ||
</table> | </table> | ||
+ | |||
+ | == Sxxx - String == <!--T:20--> | ||
+ | Начиная с версии 1.11.0.3478 в WebHMI добавился новый тип данных - строки. Строки доступны как внутренние регистры Sxxx. Всего доступно 200 таких регистров S1...S200. | ||
+ | <table border="1" cellspacing="0"> | ||
+ | <tr><td>Регистр</td><td>Описание</td><td>Тип данных</td><td>Read/Write</td></tr> | ||
+ | <tr><td>S1</td><td>Переменная типа строка 1</td><td>String</td><td>Read/Write</td></tr> | ||
+ | <tr><td>S2</td><td>Переменная типа строка 2</td><td>String</td><td>Read/Write</td></tr> | ||
+ | <tr><td>S3</td><td>Переменная типа строка 3</td><td>String</td><td>Read/Write</td></tr> | ||
+ | <tr><td colspan="7" align="center">...</td></tr> | ||
+ | <tr><td>S200</td><td>Переменная типа строка 200</td><td>String</td><td>Read/Write</td></tr> | ||
+ | </table> | ||
+ | |||
+ | == TRxxx - Title of recipe == <!--T:21--> | ||
+ | Начиная с версии 2.7 в WebHMI добавился новый тип внутренних регистров TRxx. | ||
+ | В них содержатся названия рецептов с указанным ID. | ||
+ | <table border="1" cellspacing="0"> | ||
+ | <tr><td>Регистр</td><td>Описание</td><td>Тип данных</td><td>Read/Write</td></tr> | ||
+ | <tr><td>TR1</td><td>Название рецепа с ID=1</td><td>String</td><td>Read/Write</td></tr> | ||
+ | <tr><td>TR2</td><td>Название рецепа с ID=2</td><td>String</td><td>Read/Write</td></tr> | ||
+ | <tr><td>TR3</td><td>Название рецепа с ID=3</td><td>String</td><td>Read/Write</td></tr> | ||
+ | <tr><td colspan="7" align="center">...</td></tr> | ||
+ | </table> | ||
+ | |||
+ | |||
+ | == WCxxx - Weather Condition registers == <!--T:22--> | ||
+ | <p>Текущая метеоинформация. Группа регистров, предоставляющих погодную информацию на текущий момент в месте установки WebHMI. Данные обновляются примерно каждые два часа. Для работы сервиса требуется интернет-подключение, учетная запись в Level2 и подписка на метеопрогноз. Регистры доступны начиная с версии 2.5.2400.</p> | ||
+ | <table border="1" cellspacing="0"> | ||
+ | <tr><td>Регистр</td><td>Описание</td><td>Тип данных</td><td>Read/Write</td></tr> | ||
+ | <tr><td>WC0</td><td>Время, для которого получены данные.</td><td>Double Word, Unixtime</td><td>Read/-</td></tr> | ||
+ | <tr><td>WC1</td><td>Температура воздуха, градусы Цельсия.</td><td>Double Word, Float</td><td>Read/-</td></tr> | ||
+ | <tr><td>WC2</td><td>Давление, hPa.</td><td>Word, Int</td><td>Read/-</td></tr> | ||
+ | <tr><td>WC3</td><td>Относительная влажность, %.</td><td>Word, Int</td><td>Read/-</td></tr> | ||
+ | <tr><td>WC4</td><td>Скорость ветра, м/с.</td><td>Double Word, Float</td><td>Read/-</td></tr> | ||
+ | <tr><td>WC5</td><td>Направление, откуда дует ветер, метрологические градусы.</td><td>Double Word, Float</td><td>Read/-</td></tr> | ||
+ | <tr><td>WC6</td><td>Облачность, %.</td><td>Word, Int</td><td>Read/-</td></tr> | ||
+ | <tr><td>WC7</td><td>Количество осадков (дождь), мм.</td><td>Double Word, Float</td><td>Read/-</td></tr> | ||
+ | <tr><td>WC8</td><td>Количество осадков (снег), мм.</td><td>Double Word, Float</td><td>Read/-</td></tr> | ||
+ | <tr><td>WC9</td><td>Текстовое описание текущей погоды</td><td>String</td><td>Read/-</td></tr> | ||
+ | </table> | ||
+ | <p>Текстовое описание текущей погоды может быть: Clear, Clouds, Rain, Snow, Thunderstorm, Mist.</p> | ||
+ | |||
+ | == WFxxx - Weather Forecast registers == <!--T:23--> | ||
+ | <p>Прогноз погоды на ближайшие сутки с интервалом 3 часа. Доступен прогноз на семь 3-х часовых интервалов вперед. Данные обновляются примерно каждые два часа. Для работы сервиса требуется интернет-подключение, учетная запись в Level2 и подписка на метеопрогноз. Регистры доступны начиная с версии 2.5.2400.</p> | ||
+ | <p>Регистры аналогичны регистрам WCxxx. Адреса регистров строятся таким образом: [номер интервала] * 10 + [адрес регистра WCxxx].</p> | ||
+ | |||
+ | <!--T:24--> | ||
+ | <p>Пример: <br> | ||
+ | WF1 = Температура воздуха в следующем 3-х часовом интервале.<br> | ||
+ | WF21 = Температура воздуха примерно через 6 часов.<br> | ||
+ | WF31 = Температура воздуха примерно через 9 часов.<br> | ||
+ | И т.д. | ||
+ | </p> | ||
+ | |||
+ | <!--T:25--> | ||
+ | <p>Для более точного понимания на какое время строится прогноз, можно использовать метки времени в регистрах WFx0.</p> | ||
+ | |||
+ | <!--T:26--> | ||
+ | <table border="1" cellspacing="0"> | ||
+ | <tr><td>Регистр</td><td>Описание</td><td>Тип данных</td><td>Read/Write</td></tr> | ||
+ | <tr><td>WF0</td><td>Интервал 1. Время, для которого получены данные.</td><td>Double Word, Unixtime</td><td>Read/-</td></tr> | ||
+ | <tr><td>WF1</td><td>Интервал 1. Температура воздуха, градусы Цельсия.</td><td>Double Word, Float</td><td>Read/-</td></tr> | ||
+ | <tr><td>WF2</td><td>Интервал 1. Давление, hPa.</td><td>Word, Int</td><td>Read/-</td></tr> | ||
+ | <tr><td>WF3</td><td>Интервал 1. Относительная влажность, %.</td><td>Word, Int</td><td>Read/-</td></tr> | ||
+ | <tr><td>WF4</td><td>Интервал 1. Скорость ветра, м/с.</td><td>Double Word, Float</td><td>Read/-</td></tr> | ||
+ | <tr><td>WF5</td><td>Интервал 1. Направление, откуда дует ветер, метрологические градусы.</td><td>Double Word, Float</td><td>Read/-</td></tr> | ||
+ | <tr><td>WF6</td><td>Интервал 1. Облачность, %.</td><td>Word, Int</td><td>Read/-</td></tr> | ||
+ | <tr><td>WF7</td><td>Интервал 1. Количество осадков (дождь), мм.</td><td>Double Word, Float</td><td>Read/-</td></tr> | ||
+ | <tr><td>WF8</td><td>Интервал 1. Количество осадков (снег), мм.</td><td>Double Word, Float</td><td>Read/-</td></tr> | ||
+ | <tr><td>WF9</td><td>Интервал 1. Текстовое описание текущей погоды</td><td>String</td><td>Read/-</td></tr> | ||
+ | <tr><td>WF10</td><td>Интервал 2. Время, для которого получены данные.</td><td>Double Word, Unixtime</td><td>Read/-</td></tr> | ||
+ | <tr><td>WF11</td><td>Интервал 2. Температура воздуха, градусы Цельсия.</td><td>Double Word, Float</td><td>Read/-</td></tr> | ||
+ | <tr><td>WF12</td><td>Интервал 2. Давление, hPa.</td><td>Word, Int</td><td>Read/-</td></tr> | ||
+ | <tr><td>WF13</td><td>Интервал 2. Относительная влажность, %.</td><td>Word, Int</td><td>Read/-</td></tr> | ||
+ | <tr><td>WF14</td><td>Интервал 2. Скорость ветра, м/с.</td><td>Double Word, Float</td><td>Read/-</td></tr> | ||
+ | <tr><td>WF15</td><td>Интервал 2. Направление, откуда дует ветер, метрологические градусы.</td><td>Double Word, Float</td><td>Read/-</td></tr> | ||
+ | <tr><td>WF16</td><td>Интервал 2. Облачность, %.</td><td>Word, Int</td><td>Read/-</td></tr> | ||
+ | <tr><td>WF17</td><td>Интервал 2. Количество осадков (дождь), мм.</td><td>Double Word, Float</td><td>Read/-</td></tr> | ||
+ | <tr><td>WF18</td><td>Интервал 2. Количество осадков (снег), мм.</td><td>Double Word, Float</td><td>Read/-</td></tr> | ||
+ | <tr><td>WF19</td><td>Интервал 2. Текстовое описание текущей погоды</td><td>String</td><td>Read/-</td></tr> | ||
+ | <tr><td>...</td><td>...</td><td>...</td><td>...</td></tr> | ||
+ | <tr><td>WF60</td><td>Интервал 7. Время, для которого получены данные.</td><td>Double Word, Unixtime</td><td>Read/-</td></tr> | ||
+ | <tr><td>WF61</td><td>Интервал 7. Температура воздуха, градусы Цельсия.</td><td>Double Word, Float</td><td>Read/-</td></tr> | ||
+ | <tr><td>WF62</td><td>Интервал 7. Давление, hPa.</td><td>Word, Int</td><td>Read/-</td></tr> | ||
+ | <tr><td>WF63</td><td>Интервал 7. Относительная влажность, %.</td><td>Word, Int</td><td>Read/-</td></tr> | ||
+ | <tr><td>WF64</td><td>Интервал 7. Скорость ветра, м/с.</td><td>Double Word, Float</td><td>Read/-</td></tr> | ||
+ | <tr><td>WF65</td><td>Интервал 7. Направление, откуда дует ветер, метрологические градусы.</td><td>Double Word, Float</td><td>Read/-</td></tr> | ||
+ | <tr><td>WF66</td><td>Интервал 7. Облачность, %.</td><td>Word, Int</td><td>Read/-</td></tr> | ||
+ | <tr><td>WF67</td><td>Интервал 7. Количество осадков (дождь), мм.</td><td>Double Word, Float</td><td>Read/-</td></tr> | ||
+ | <tr><td>WF68</td><td>Интервал 7. Количество осадков (снег), мм.</td><td>Double Word, Float</td><td>Read/-</td></tr> | ||
+ | <tr><td>WF69</td><td>Интервал 7. Текстовое описание текущей погоды</td><td>String</td><td>Read/-</td></tr> | ||
+ | </table> | ||
+ | <p>Текстовое описание текущей погоды может быть: Clear, Clouds, Rain, Snow, Thunderstorm, Mist.</p> | ||
+ | |||
+ | == WSxxx - Sunset/Sunrize registers == <!--T:27--> | ||
+ | <p>Время восхода и заката солнца в текущих сутках. Для работы сервиса требуется интернет-подключение, учетная запись в Level2 и подписка на метеопрогноз. Регистры доступны начиная с версии 2.5.2400.</p> | ||
+ | <table border="1" cellspacing="0"> | ||
+ | <tr><td>Регистр</td><td>Описание</td><td>Тип данных</td><td>Read/Write</td></tr> | ||
+ | <tr><td>WS0</td><td>Время рассветра.</td><td>Double Word, Unixtime</td><td>Read/-</td></tr> | ||
+ | <tr><td>WS1</td><td>Время заката.</td><td>Double Word, Unixtime</td><td>Read/-</td></tr> | ||
+ | </table> | ||
+ | <p>Текстовое описание текущей погоды может быть: Clear, Clouds, Rain, Snow, Thunderstorm, Mist.</p> | ||
+ | </translate> |
Текущая версия на 10:05, 13 июля 2017
В версии WebHMI 1.5 доступны такие внутренние регистры.
Содержание
- 1 Cx - Communication registers
- 2 CDxxx - Connection Disabled registers
- 3 Dxxx - Data registers
- 4 DSxxx - Data static registers
- 5 Tx - Time registers
- 6 Hx - Hardware-related registers
- 7 B0 - Sound alert register
- 8 DOx - Digital Output registers
- 9 Ixxx - Intervals
- 10 Rxxx - Random values
- 11 Lx - Linux-related registers
- 12 Exxx.xxx - Event registers
- 13 ESxxx - Event State
- 14 ELxxx - Event Length
- 15 Sxxx - String
- 16 TRxxx - Title of recipe
- 17 WCxxx - Weather Condition registers
- 18 WFxxx - Weather Forecast registers
- 19 WSxxx - Sunset/Sunrize registers
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 | Текущее время | Секунды | [UnixTime] | Read/- |
T1 | Время, затраченное на обмен данными со всеми регистрами в предыдущем цикле. | Милисекунды | Double Word, Unsigned Int | Read/- |
T2 | Время, затраченное на обмен данными, обработку всех событий, сценариев, записью в базу данных, записью новых значений в устройства в предыдущем цикле. Фактически, это полный цикл без учета паузы между циклами. | Милисекунды | Double Word, Unsigned Int | Read/- |
T3 | Полное фактическое время предыдущего цикла с учетом паузы между циклами. | Милисекунды | Double Word, Unsigned Int | Read/- |
Регистры для чтения состояния оборудования на борту 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/Write | |
DO1 | Сухой контакт номер 2 | Bit | Read/Write |
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/- | |||
... |
Некоторые наиболее важные метрики операцинной системы.
Регистр | Описание | Единицы измерения | Тип данных | 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 minutes [load average] | Double Word, Float 32 | Read/- | |
L4 | 15 minutes [load average] | Double Word, Float 32 | Read/- |
Exxx.xxx - Event registers
Регистры из условий. Если условие Х, у которого id = Y, сейчас выполняется, то можно читать некоторые его значения из регистров вида EY.xxx. Только чтение.
Читать можно те значения, которые добавлены в таблицу отчета. Для удобства, каждое такое значение подписано прямо в редакторе условий.
На этом экране видны регистры 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 |
TRxxx - Title of recipe
Начиная с версии 2.7 в WebHMI добавился новый тип внутренних регистров TRxx. В них содержатся названия рецептов с указанным ID.
Регистр | Описание | Тип данных | Read/Write | |||
TR1 | Название рецепа с ID=1 | String | Read/Write | |||
TR2 | Название рецепа с ID=2 | String | Read/Write | |||
TR3 | Название рецепа с ID=3 | String | Read/Write | |||
... |
WCxxx - Weather Condition registers
Текущая метеоинформация. Группа регистров, предоставляющих погодную информацию на текущий момент в месте установки WebHMI. Данные обновляются примерно каждые два часа. Для работы сервиса требуется интернет-подключение, учетная запись в Level2 и подписка на метеопрогноз. Регистры доступны начиная с версии 2.5.2400.
Регистр | Описание | Тип данных | Read/Write |
WC0 | Время, для которого получены данные. | Double Word, Unixtime | Read/- |
WC1 | Температура воздуха, градусы Цельсия. | Double Word, Float | Read/- |
WC2 | Давление, hPa. | Word, Int | Read/- |
WC3 | Относительная влажность, %. | Word, Int | Read/- |
WC4 | Скорость ветра, м/с. | Double Word, Float | Read/- |
WC5 | Направление, откуда дует ветер, метрологические градусы. | Double Word, Float | Read/- |
WC6 | Облачность, %. | Word, Int | Read/- |
WC7 | Количество осадков (дождь), мм. | Double Word, Float | Read/- |
WC8 | Количество осадков (снег), мм. | Double Word, Float | Read/- |
WC9 | Текстовое описание текущей погоды | String | Read/- |
Текстовое описание текущей погоды может быть: 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, Unixtime | Read/- |
WF1 | Интервал 1. Температура воздуха, градусы Цельсия. | Double Word, Float | Read/- |
WF2 | Интервал 1. Давление, hPa. | Word, Int | Read/- |
WF3 | Интервал 1. Относительная влажность, %. | Word, Int | Read/- |
WF4 | Интервал 1. Скорость ветра, м/с. | Double Word, Float | Read/- |
WF5 | Интервал 1. Направление, откуда дует ветер, метрологические градусы. | Double Word, Float | Read/- |
WF6 | Интервал 1. Облачность, %. | Word, Int | Read/- |
WF7 | Интервал 1. Количество осадков (дождь), мм. | Double Word, Float | Read/- |
WF8 | Интервал 1. Количество осадков (снег), мм. | Double Word, Float | Read/- |
WF9 | Интервал 1. Текстовое описание текущей погоды | String | Read/- |
WF10 | Интервал 2. Время, для которого получены данные. | Double Word, Unixtime | Read/- |
WF11 | Интервал 2. Температура воздуха, градусы Цельсия. | Double Word, Float | Read/- |
WF12 | Интервал 2. Давление, hPa. | Word, Int | Read/- |
WF13 | Интервал 2. Относительная влажность, %. | Word, Int | Read/- |
WF14 | Интервал 2. Скорость ветра, м/с. | Double Word, Float | Read/- |
WF15 | Интервал 2. Направление, откуда дует ветер, метрологические градусы. | Double Word, Float | Read/- |
WF16 | Интервал 2. Облачность, %. | Word, Int | Read/- |
WF17 | Интервал 2. Количество осадков (дождь), мм. | Double Word, Float | Read/- |
WF18 | Интервал 2. Количество осадков (снег), мм. | Double Word, Float | Read/- |
WF19 | Интервал 2. Текстовое описание текущей погоды | String | Read/- |
... | ... | ... | ... |
WF60 | Интервал 7. Время, для которого получены данные. | Double Word, Unixtime | Read/- |
WF61 | Интервал 7. Температура воздуха, градусы Цельсия. | Double Word, Float | Read/- |
WF62 | Интервал 7. Давление, hPa. | Word, Int | Read/- |
WF63 | Интервал 7. Относительная влажность, %. | Word, Int | Read/- |
WF64 | Интервал 7. Скорость ветра, м/с. | Double Word, Float | Read/- |
WF65 | Интервал 7. Направление, откуда дует ветер, метрологические градусы. | Double Word, Float | Read/- |
WF66 | Интервал 7. Облачность, %. | Word, Int | Read/- |
WF67 | Интервал 7. Количество осадков (дождь), мм. | Double Word, Float | Read/- |
WF68 | Интервал 7. Количество осадков (снег), мм. | Double Word, Float | Read/- |
WF69 | Интервал 7. Текстовое описание текущей погоды | String | Read/- |
Текстовое описание текущей погоды может быть: Clear, Clouds, Rain, Snow, Thunderstorm, Mist.
WSxxx - Sunset/Sunrize registers
Время восхода и заката солнца в текущих сутках. Для работы сервиса требуется интернет-подключение, учетная запись в Level2 и подписка на метеопрогноз. Регистры доступны начиная с версии 2.5.2400.
Регистр | Описание | Тип данных | Read/Write |
WS0 | Время рассветра. | Double Word, Unixtime | Read/- |
WS1 | Время заката. | Double Word, Unixtime | Read/- |
Текстовое описание текущей погоды может быть: Clear, Clouds, Rain, Snow, Thunderstorm, Mist.