Записывает в экран только одно значение

Есть экран ОВЕН СМИ2-М, в нем есть настройка для вывода текста, при попытке настроить в Wiren, записывает только одну букву из всей строки.

Мой шаблон:
OBEN.json (766 Байт)

Документация к СМИ2-М
re_smi2-m_1-ru-65022-1.31pdf.pdf (3.1 МБ)

Адреса регистров СМИ2-М

Здравствуйте!
Вы хотите контроллером прочитать/записать содержимое строки в панели?
Опция

"format" : "string",

работает довольно своеобразно: в один 16-битный регистр записывается одна буква, в следующий - другая и так далее. Читается аналогично. Возможно, в этом дело.

Да, я бы хотел считать всю строку, не совсем тогда понимаю как ее туда записать, если string не подходит

Либо хранить в панели ее так, чтобы в каждом регистре было по одному символу, либо считывать просто как 16-ричные holding-регистры и уже средствами движка правил преобразовывать в символы на контроллере.

1 лайк

Не совсем понял как считать и записать.

Предполагаю, что для записи двух символов строки нужно создать переменную, содержащую в себе 2 символа строки (1 символ - 1 байт): например 0x6566 (символы AB в ascii). Затем полученное значение записать как Holding регистр по адресу 0x1070.

Тут посмотрите, по аналогии: Управление Алисой - #19 от пользователя BrainRoot
Берем код символа и двигаем его в старший байт слова.

В итоге решил простым вызовом команды с уже зашифрованным набором символов

var command = "modbus_client -mrtu -pnone /dev/ttyRS485-2 -a1 -t0x10 -r0x1070 -b19200 "
    command += wordCodesHex.join(" ");

    runShellCommand(command)

Не лучшее решение, если порт используется (занят) wb-mqtt-serial.

Эта тема была автоматически закрыта через 7 дней после последнего ответа. В ней больше нельзя отвечать.