Проблема интеграции устройства Modbus

Добрый день!
Возникла проблема при интеграции в wb5 устройства modbus.
Известен адрес устройства, адрес регистра, но вычитывание не происходит, перепробовал все типы данных, что еще можно посмотреть?

Здравствуйте. Плохой багрепорт.

Какое устройство, какой адрес, что значит вычитывание не происходит, что именно вы перепробовали? Ваши действия должны быть описаны так подробно, чтобы мы по описанию могли воспроизвести всё, что вы делали.
Для каждого шага должно быть написано, что вы ожидали увидеть и какое поведение увидели на самом деле.

Устройство Mikronika.
вот моя конфигурация:

{
  "path": "/dev/ttyAPP1",
  "baud_rate": 9600,
  "parity": "N",
  "data_bits": 8,
  "stop_bits": 2,
  "poll_interval": 1000,
  "enabled": true,
  "devices": [
    {
      "slave_id": "1",
      "enabled": true,
      "name": "pjc",
      "protocol": "modbus",
      "channels": [
        {
          "name": "parameter",
          "type": "value",
          "reg_type": "discrete",
          "address": "1",
          "format": "u16",
          "scale": 1
        }
      ],
      "id": "pjcmik"
    }
  ]
}

менял format, reg_type и type
по данному регистру передаю текущую секунду часа

Отлично, теперь покажите лог драйвера из /var/log/messages и ответьте на вопрос

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

Вы прочитали описание параметров format, reg_type и type? Довольно странно, что вы их “меняли” - они имеют вполне конкретный смысл, и нужно их выставить в соответствии с документацией на устройство, а не перебирать случайные комбинации.

P.S.

Для оформления блока кода, ставьте перед и после него на отдельной строке три символа косой кавычки (`, backtick)

Jan 18 23:54:50 wirenboard user.notice serial: TRegisterHandler::Poll(): warning: Serial protocol error: failed to read discrete @ 1 [slave_id is modbus:1(0x1)]
Jan 18 23:54:51 wirenboard user.notice serial: modbus: read 1 discrete(s) @ 1 of slave modbus:1
под вычитыванием я имел ввиду получение значений в устройство wb5

устройство не гуглится и описания нет, на устройстве можно сконфигурировать номер регистра ну и сам адрес modbus, скорость и тд. поэтому был предпринят подбор данных параметров

Понятно. Тогда отлаживать проще через консольные утилиты.
Остановите wb-mqtt-serial

service wb-mqtt-serial stop

дальше через консольную утилиту

modbus_client

хелп по ней выводится, если запустить без параметров, примеры можно поискать по форуму

root@wirenboard:/# modbus_client --debug -mrtu -t0x03 -r0 -b9600 -d8 -pnone
The device string is empty
Segmentation fault

вот такая ошибка, что порекомендуете?

root@wirenboard:/# modbus_client --debug -mrtu -t0x04 -a1 -b9600 -d8 -pnone dev/ttyAPP1
Opening dev/ttyAPP1 at 9600 bauds (N, 8, 1)
[01][04][00][64][00][01][70][15]
Waiting for a confirmation...
<01><84><02><C2><C1>
ERROR Illegal data address
ERROR occured!

Новый лог

Ну оно говорит, что адреса регистра такого нет.
Вы адрес регистра не передали (параметр -r), что именно вы прочитать пытаетесь?

Здравствуйте
делали заказ у вас устройств модбас.
писали на почту обратную связь - попросили на форуме выложить.

  1. датчик WB-MS. Не работает датчик света. На видео видно что от других устройств меняются значения, а по свету ноль. И там видимо датчик должен был быть закрыт стеклом/пластиком - он не закрыт.
  2. подскажите, как узнать адрес WB-MR11? наклейка с адресом была сбоку, и я попытался отправить команды на slaveID 0 в регистр 128 - правда выдавало ошибку. Ставлю в настройках и старый и новый адреса - ничего не видит.
    PS - видео не загружается.

Добрый день,

возможно с датчиком плохо обошлись при транспортировке - все устройства проверяются перед отправкой.

Сам сенсор на верхней крышке, попробуйте пожалуйста её снять и аккуратно поставить обратно, так чтобы пины сенсора попали в гнездо.
Должно помочь, если нет - то пишите, поменяем и будем искать причину.

Никак не узнать, если вы его сменили, только перебором.
Запишите новый адрес (предваительно отключите порт в wb-mqtt-serial, чтобы он не мешался) и его используйте.
Обратите внимание, что устройство по стандарту не должно отвечать на широковещательную команду установки адреса, поэтому проверить, что оно его получило можно только по миганию зелёного светодиода при получении команды.

разобрал - собрал, датчик света заработал. Спасибо.

Новый адрес записать этой командой?
service wb-mqtt-serial stop
modbus_client -mrtu /dev/ttyAPP1 --debug -a0x0 -t0x06 -r0x80 -s2 -pnone 111
service wb-mqtt-serial start

Все, адрес нашел - просто установил новый адрес через вышеописанные команды.
спасибо.