Служебные алгоритмы EasyLogic
Три алгоритма EasyLogic не привязаны к конкретному устройству и полезны при пусконаладке и разработке интеграций. Общий порядок загрузки алгоритмов описан в статье «Подключение устройств через алгоритмы EasyLogic».
Приём данных по последовательным портам
Заголовок раздела «Приём данных по последовательным портам»Алгоритм rsreada обменивается данными с устройством на RS-232 или RS-485 и выводит всё
принятое в диагностику. Нужен для анализа протоколов и проверки связи.
Подключение и настройка
Заголовок раздела «Подключение и настройка»-
Подключите исследуемое устройство к порту RS-232 или RS-485 прибора, объедините «земли» устройства и прибора, питание на устройство подайте отдельно. Если требуется — активируйте в самом устройстве передачу данных по выбранному порту.
-
В настройках включите модуль нужного порта.
-
В настройках последовательных портов для этого порта выберите тип периферии Нет (или Отключен).
-
Включите канал Алгоритмы и скрипты в Каналах диагностики.
-
Загрузите алгоритм в Терминале:
SCRIPT galileosky/rsreada -
Перезагрузите прибор.
Как работает приём данных
Заголовок раздела «Как работает приём данных»После запуска идёт непрерывный опрос последовательного порта с заданными параметрами связи; принятые данные выводятся в диагностику блоками по 48 байт. При изменении параметров связи порт переинициализируется и опрос продолжается. Если задан запрос, то перед чтением он отправляется в устройство, затем принимаются ответы; при заданном периоде повторения запрос отправляется снова и так далее.
Параметры связи
Заголовок раздела «Параметры связи»RSREADSET без параметров показывает текущие параметры:
port=%d,baudRate=%d,stopBits=%d,parity=%d,timeout=%dУстановка:
RSREADSET pn,br,sb,pr,tm| Параметр | Значение |
|---|---|
pn | Номер порта: 0 — RS-232[0] (по умолчанию), 1 — RS-232[1], 2 — RS-485 |
br | Скорость передачи, бит/с; по умолчанию 9600 |
sb | Количество стоповых бит: 1 (по умолчанию) или 2 |
pr | Контроль чётности: 0 — не используется (по умолчанию), 1 — контроль нечётности, 2 — контроль чётности |
tm | Время ожидания ответа, мс; по умолчанию 1000 |
Параметры позиционные: чтобы изменить не все, передайте параметры до нужного включительно. Пример — порт RS-485, скорость 115 200 бит/с, таймаут 500 мс:
RSREADSET 2,115200,1,0,500Запросы к устройству
Заголовок раздела «Запросы к устройству»RSREADREQ rt,wa,ln,r0,r1,…,r9| Параметр | Значение |
|---|---|
rt | Период повтора запроса, мс; 0 — однократный запрос |
wa | Время ожидания формирования ответа после отправки запроса, мс; 0 — не ждать |
ln | Длина запроса, 1…40 байт |
r0…r9 | Содержимое запроса: каждое десятичное число задаёт 4 байта в порядке big-endian |
Ответ — rcv req, go to diag: дальше следите за обменом в
записи лога.
Примеры:
RSREADREQ 0,100,7,2882400000,16909056Однократный запрос длиной 7 байт AB CD EF 00 01 02 03, после отправки 100 мс ожидания
и приём ответов: 2882400000 = 0xABCDEF00, 16909056 = 0x01020300.
RSREADREQ 2000,0,10,16975111,33818120,168624128Каждые 2000 мс отправляется запрос длиной 10 байт
01 03 05 07 02 04 06 08 0A 0D, дополнительного ожидания перед приёмом ответа нет.
RSREADREQ 0Остановить периодические запросы и вернуться в режим только чтения.
Диагностика приёма данных
Заголовок раздела «Диагностика приёма данных»| Сообщение | Значение |
|---|---|
p%d Init! | Порт инициализирован |
p%d Init? | Ошибка инициализации порта: неверные параметры связи или не хватает ресурсов — перезагрузите прибор, проверьте параметры и освободите оперативную память. На прошивках 7x ниже 32.9 / 37.3 / 38.2 это же сообщение означает лишь предупреждение об устаревшей прошивке |
p%d req %d b%s | Длина запроса и результат отправки: : — успешно, ? — ошибка (проверьте параметры связи и свободные ресурсы прибора); далее — содержимое запроса |
p%d rcv %d b: | Размер полученного ответа; далее — его содержимое |
p%d tmt | Ответ не получен за отведённое время |
Управление несколькими выходами
Заголовок раздела «Управление несколькими выходами»Алгоритм setouts управляет несколькими выходами прибора одновременно — аналогом «слова
управления». Полезно при управлении сложными агрегатами: драйверами двигателей,
оборудованием энергетики и АСУ ТП.
Минимальные версии прошивки: 10 — 3.0, 7x — 38.31.
Настройка управления выходами
Заголовок раздела «Настройка управления выходами»-
В настройках включите модуль Выходы, примените настройки и перезагрузите прибор.
-
Загрузите алгоритм в Терминале:
SCRIPT galileosky/setouts -
Подключите управляемое оборудование к выходам прибора.
Команда SETOUTS
Заголовок раздела «Команда SETOUTS»SETOUTS value,mask| Параметр | Значение |
|---|---|
value | Устанавливаемое значение выходов в десятичном виде; каждый бит соответствует номеру выхода |
mask | Маска в десятичном виде: какие биты из value применить |
Ответ — OUT(3..0) = %b, двоичное число с актуальным состоянием выходов (то же, что
в ответе на команду OUT).
Биты располагаются от старшего к младшему: 7 6 5 4 3 2 1 0. Например, 11 = 1011b:
бит 0 = 1, бит 1 = 1, бит 2 = 0, бит 3 = 1. Единица в бите — выход разомкнут,
ноль — замкнут на «землю».
Примеры (выполняются последовательно, каждый следующий отталкивается от состояния после предыдущего):
| Задача | value | mask | Команда | Ответ |
|---|---|---|---|---|
| Замкнуть все 4 выхода на «землю» | 0000b = 0 | 1111b = 15 | SETOUTS 0,15 | OUT(3..0) = 0000 |
| Разомкнуть выходы 0, 1 и 3 | 1011b = 11 | 1011b = 11 | SETOUTS 11,11 | OUT(3..0) = 1011 |
| Замкнуть выходы 0 и 1 | 0000b = 0 | 0011b = 3 | SETOUTS 0,3 | OUT(3..0) = 1000 |
| Разомкнуть выходы 2 и 3 | 1100b = 12 | 1100b = 12 | SETOUTS 12,12 | OUT(3..0) = 1100 |
Чёрный ящик
Заголовок раздела «Чёрный ящик»Алгоритм blackbox отслеживает аварийную ситуацию и записывает в память прибора данные
акселерометра за заданное время до и после неё. Аварийной считается ситуация, при которой
превышены максимальный угол наклона и ускорение удара.
Минимальные версии прошивки: 10 — 2.12, 7x — 38.31 (кроме линейки C). Нужна карта microSD или установленный блок памяти eMMC.
Настройка чёрного ящика
Заголовок раздела «Настройка чёрного ящика»-
В настройках сигнализации в разделе Обнаружение удара и наклона задайте максимальный угол наклона, время его превышения и минимальное ускорение удара. В поле Режим работы выберите Включено обнаружение удара и нужную ось.
-
Загрузите алгоритм в Терминале:
SCRIPT galileosky/blackbox -
Перезагрузите прибор.
Как работает чёрный ящик
Заголовок раздела «Как работает чёрный ящик»При обнаружении аварийной ситуации алгоритм сохраняет файл с датой и временем записи
и ускорениями по осям X, Y, Z. Количество записей и время фиксации до и после события
задаются командой BLACKBOXCFG; по умолчанию — 10 с до и 10 с после с интервалом 10 мс.
Файлы сохраняются в формате .csv в каталоге blackbox/ГГГГММДД, имя файла — ччммсс.csv
по времени обнаружения аварийной ситуации.
Команда BLACKBOXCFG
Заголовок раздела «Команда BLACKBOXCFG»BLACKBOXCFG без параметров показывает текущие настройки; ответ —
Duration: %d; Interval: %d.
BLACKBOXCFG duration,interval| Параметр | Значение |
|---|---|
duration | Продолжительность фиксации данных до аварийной ситуации и после, мс; по умолчанию 10000 (10 с) |
interval | Интервал фиксации данных, мс; кратен 10, по умолчанию 10 |
Количество записей (duration / interval) не должно превышать 1000. Если превышает,
алгоритм ограничит его 1000 записями до и после события, соответственно сократив
продолжительность фиксации.
Настройки сохраняются на карту памяти в файл blackbox/settings.cfg и применяются
после перезагрузки автоматически.
Пример:
BLACKBOXCFG 3000,10Ответ — Duration: 3000; Interval: 10.
Диагностика чёрного ящика
Заголовок раздела «Диагностика чёрного ящика»| Сообщение | Значение |
|---|---|
BLACKBOX. accident detected | Обнаружена аварийная ситуация: прибор дописывает данные после события и сохраняет файл |
BLACKBOX. accident data saved. path: %s | Данные сохранены, указан путь к файлу |
BLACKBOX. can't save file %s | Не удалось сохранить файл — проверьте исправность карты памяти и наличие на ней свободного места |