Как разобрать 485 ППКОП

Всем привет.
Имеется WB6
Имеется сигнализация, которая общается с адресными датчиками по rs-485 (не modbus)
Практического опыта работы с rs-485 не имел поэтому прошу навести на пусть истинный:
Как прочитать протокол (можно ли самим WB?) чтоб читать датчики сигнализации.
Я так понимаю нужен какой-то сниффер - ищем и протоколируем интересующие нас команды
Подключаеv шину к WB, читаем интересующие нас команды?

Добрый день. “сниффер” в самом простом случае - это serial_tool или minicom
Если по RS-485 идет что-то нестандартное (вред ли, но возможно) - то лучший выбор это логический анализатор типа
https://aliexpress.ru/item/1005001298960550.html

1 Like

Юзал под виндой Eltima Serial Port Monitor - ничего плохого про него сказать не могу.

2 Likes

цепляем ком к шине , перебираем параметры чтоб опередить скорость и слушаем?

В общем вернулся я к теме. ППКОП сбоит все чаще, а комплектующие сняты с производства. Хочется это все оживить.
Вся конструкция состоит из 3 элементов:

  1. Сам ППКОП S632-2GSM
  2. некий конвертер итерфейсов, который как я понимаю конвертирует RS-232 на ППКОП в RS485 для периферии
  3. модуль расширения “Ладога-А”: с одной стороны RS485,с другой адресный 2-проводный шлейф на котором собственно висят датчики… Питание подаетя по этим же проводам.
    Для изучения всего этого добра приобрёл на али некий usb analyser 24mhz8bit.
    Подключил к ПО PulseView.

Сначала попробовал запитать модуль расширения Ладога-А и почитать шлейф. Но там полная тишина. Судя по всему для запуска требуется какая-то команда.

Вторым шагом собрал всю схему и попробовал почитать rs485.

Тут уже получилось что-то записать, но я не смог разобраться в софте как определить в целом параметры шины. Методом подбора избавиться от ошибок кадров не получилось.

Дальше тупо знаний не хватает. может кто направит?

Прикладываю 15-секундную запись в которой примерно в середине должно быть зарегистрировано срабатывание от датчика движения с адресом 13. Возможно к этом адресу подставляется еще какой-то адрес, например адрес расширителя (1).
testppkopfirst.pvs (4.8 КБ)
testppkopfirst.sr (2.6 КБ)

Прикладываю 15-секундную запись

запись чего? каналы D4 и D6 - это что?

Так, а как звучит цель?
Сдается мне что не Modbus это.

Цель - научиться с wirenboard читать состояния датчиков.
Параметры rs485 подобрал, научился ловить сообщения.
Начал разбирать протокол . нашел запросы от сигнализации и ответы о состоянии датчика нашел адресацию как расширителя (который с одной стороны сидит на rs485 с другой к нему подключена шина датчиков) так и самих датчиков. может кто нить посмотреть может это что-то напоминает? есть много непонятных мне вещей:

  1. все сообщения начинаются с байтов AB BA
  2. в запросе присутствуют какие-то счетчики которые в каждом следующем сообщении увеличиваются на 1, при этом в ответах есть значения 1 из счетчиков повторяющееся дважды
  3. поля помеченные вопросом даже предположить не могу

и какие они?

image

115200 остальное по дефолту

в группе в телеге подсказали про crccalc.com исходя из которого получилось узнать что используется crc16 XMODEM

Обновил известные данные.
Добавил примером когда на этой же шине подключена кодовая панель с адресом 127 на которой ввели код

Интересно, то есть “счетчики” просто инерментируются похоже. Но да, уже можно писать скрипт wb-rules для тестового обмена.

может есть пример как взаимодействовать с портом из правил?

Вот тут пример реализации:

Ну и сама документация: GitHub - wirenboard/wb-mqtt-serial: Wiren Board MQTT serial protocol driver