Перейти к содержимому
Черновик: материал сгенерирован и ещё не вычитан.

Служебные алгоритмы EasyLogic

Три алгоритма EasyLogic не привязаны к конкретному устройству и полезны при пусконаладке и разработке интеграций. Общий порядок загрузки алгоритмов описан в статье «Подключение устройств через алгоритмы EasyLogic».

Алгоритм rsreada обменивается данными с устройством на RS-232 или RS-485 и выводит всё принятое в диагностику. Нужен для анализа протоколов и проверки связи.

  1. Подключите исследуемое устройство к порту RS-232 или RS-485 прибора, объедините «земли» устройства и прибора, питание на устройство подайте отдельно. Если требуется — активируйте в самом устройстве передачу данных по выбранному порту.

  2. В настройках включите модуль нужного порта.

  3. В настройках последовательных портов для этого порта выберите тип периферии Нет (или Отключен).

  4. Включите канал Алгоритмы и скрипты в Каналах диагностики.

  5. Загрузите алгоритм в Терминале:

    SCRIPT galileosky/rsreada
  6. Перезагрузите прибор.

После запуска идёт непрерывный опрос последовательного порта с заданными параметрами связи; принятые данные выводятся в диагностику блоками по 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.

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

  2. Загрузите алгоритм в Терминале:

    SCRIPT galileosky/setouts
  3. Подключите управляемое оборудование к выходам прибора.

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. Единица в бите — выход разомкнут, ноль — замкнут на «землю».

Примеры (выполняются последовательно, каждый следующий отталкивается от состояния после предыдущего):

ЗадачаvaluemaskКомандаОтвет
Замкнуть все 4 выхода на «землю»0000b = 01111b = 15SETOUTS 0,15OUT(3..0) = 0000
Разомкнуть выходы 0, 1 и 31011b = 111011b = 11SETOUTS 11,11OUT(3..0) = 1011
Замкнуть выходы 0 и 10000b = 00011b = 3SETOUTS 0,3OUT(3..0) = 1000
Разомкнуть выходы 2 и 31100b = 121100b = 12SETOUTS 12,12OUT(3..0) = 1100

Алгоритм blackbox отслеживает аварийную ситуацию и записывает в память прибора данные акселерометра за заданное время до и после неё. Аварийной считается ситуация, при которой превышены максимальный угол наклона и ускорение удара.

Минимальные версии прошивки: 10 — 2.12, 7x — 38.31 (кроме линейки C). Нужна карта microSD или установленный блок памяти eMMC.

  1. В настройках сигнализации в разделе Обнаружение удара и наклона задайте максимальный угол наклона, время его превышения и минимальное ускорение удара. В поле Режим работы выберите Включено обнаружение удара и нужную ось.

  2. Загрузите алгоритм в Терминале:

    SCRIPT galileosky/blackbox
  3. Перезагрузите прибор.

При обнаружении аварийной ситуации алгоритм сохраняет файл с датой и временем записи и ускорениями по осям X, Y, Z. Количество записей и время фиксации до и после события задаются командой BLACKBOXCFG; по умолчанию — 10 с до и 10 с после с интервалом 10 мс.

Файлы сохраняются в формате .csv в каталоге blackbox/ГГГГММДД, имя файла — ччммсс.csv по времени обнаружения аварийной ситуации.

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Не удалось сохранить файл — проверьте исправность карты памяти и наличие на ней свободного места

См. также: Подключение устройств через алгоритмы EasyLogic