Информация
Услуги
  • Внедрение
  • Настройка
  • Поддержка
  • Ремонт
Контакты
Новинка
Распродажа
Новости
Доставка
Оплата
Загрузки
  • Прошивки
    • WinBox
    • RouterOS
    • Мобильные приложения MikroTik
    • Архив
  • RouterOS
  • Мобильные приложения MikroTik
  • Архив
Форум
Настройка
    info@mikrotik.moscow
    +7 495 320-55-52
    Заказать звонок
    Mikrotik.moscow
    Каталог
    • Акции
      Акции
    • Маршрутизаторы
      Маршрутизаторы
    • Коммутаторы
      Коммутаторы
    • Радиомосты и уличные точки доступа
      Радиомосты и уличные точки доступа
    • Wi-Fi для дома и офиса
      Wi-Fi для дома и офиса
    • LTE/5G
      LTE/5G
    • Powerline адаптеры
      Powerline адаптеры
    • IoT устройства
      IoT устройства
    • Оборудование 60 ГГц
      Оборудование 60 ГГц
    • Материнские платы RouterBOARD
      Материнские платы RouterBOARD
    • Корпуса
      Корпуса
    • Интерфейсы
      Интерфейсы
    • SFP/QSFP трансиверы
      SFP/QSFP трансиверы
    • Аксессуары
      Аксессуары
    • Антенны
      Антенны
    • Архив
      Архив
    Войти
    0 Сравнение
    0 Избранное
    0 Корзина
    Скачать WinBox Скачать Прошивки Форум > RouterOS Форум > SwOS Форум > Железо
    Mikrotik.moscow
    Каталог
    Войти
    0 Сравнение
    0 Избранное
    0 Корзина
    Mikrotik.moscow
    Телефоны
    +7 495 320-55-52
    Заказать звонок
    0
    0
    0
    Mikrotik.moscow
    • +7 495 320-55-52
      • Назад
      • Телефоны
      • +7 495 320-55-52
      • Заказать звонок
    • info@mikrotik.moscow
    • г. Москва, ул. Бакунинская, 84
    • Пн-Пт: 09-00 до 18-00
      Сб-Вс: выходной


    • Кабинет
    • 0 Сравнение
    • 0 Избранное
    • 0 Корзина
    Главная
    Форум
    Форум
    RouterOS
    KNOT, Modbus, Mean well... как?

    KNOT, Modbus, Mean well... как?

    Форумы: RouterOS, Аппаратное обеспечение, SwOS, Обратная связь, Объявления, Сторонние инструменты
    Поиск  Пользователи  Правила  Войти
    Страницы: 1
    RSS
    KNOT, Modbus, Mean well... как?, RouterOS
     
    syadnom
    Guest
    #1
    0
    10.05.2023 17:48:00
    Так как не нашлось лучшего места, оставляю это здесь. У меня просто кошмар с настройкой связи KNOT с блоком питания Mean Well DRS-240, который через разъём RJ45/8x8 выдаёт Modbus. На Mean Well пины 6 (+) и 7 (-) идут на A+ и B- KNOT. KNOT заявляет поддержку запросов типа 3 «holding», я пробовал считать регистр 0x0040 (согласно спецификации Mean Well) — это тип 3 и, например, «состояние аварии», но никакого ответа не получил. Также пытался опрашивать этот регистр через клиента Modbus по TCP через KNOT — тоже тишина. Использую ID устройства 0x03 или 0x83 (в руководстве Mean Well рекомендуют 0x83 для ID). Так как оборудование очень свежее, найти какие-либо советы по отладке KNOT/Modbus не получается, чтобы понять, есть ли у KNOT какие-то особенности, из-за которых он не общается с Mean Well, или я просто что-то делаю не так. То есть, modbus read-holding… save-id=0x03 register-id=0x0040 Кто-нибудь уже работал с такой связкой или с другими промышленными блоками питания и KNOT? Может, есть советы, как заставить это заработать? Спасибо!
     
     
     
    xsherlock
    Guest
    #2
    0
    09.12.2023 17:54:00
    Наткнулся на этот пост, пока изучал коммуникацию DRS. Моя первая мысль — в руководстве по DRS указана стандартная скорость порта 115200. Может, в этом и дело.
     
     
     
    ecdc
    Guest
    #3
    0
    09.12.2023 19:01:00
    Я пробовал 115200, и всё равно не работает.
     
     
     
    sirbryan
    Guest
    #4
    0
    20.12.2023 23:35:00
    Я потратил пару часов на это, а потом, спонтанно, переподключил провода + и – от KNOT к DRS-480-48. [Редактирование: похоже, KNOT перепутан полярностью.] По умолчанию адрес DRS — 0x83 (131). Чтобы изменить его, нужно соединить контакты A0 и/или A1 с GND. Пример из инструкции по запросу производителя (0x00800006, что означает регистр 128, взять 6 байт) работает через TCP, но /iot/modbus/transceive не срабатывает (на версии 7.14b3). Я проверял это с помощью приложения ModMaster на macOS (самое дешевое, что нашёл, и не требовало компиляции или программирования). Оно отлично подключается к KNOT и отправляет/принимает данные как и ожидалось.
     
     
     
    syadnom
    Guest
    #5
    0
    21.12.2023 00:03:00
    Нет, DRS работает правильно. А вот KNOT ведёт себя странно. Проверял на другом оборудовании. KNOT может читать только holding registers в режиме transceive, но через TCP — всё возможно. И да, адрес modbus задаётся перемычками на устройстве. Кстати, mbpoll собирается и на macOS.
     
     
     
    mondychan
    Guest
    #6
    0
    06.09.2023 14:15:00
    Ты смог разобраться? Я почти уверен, что с полярностью всё в порядке, но никак не могу получить от Meanwell никаких данных (время опроса вышло). Думаю, что стандартный адрес устройства должен быть 0x80, а 0x83 в инструкции — это пример для случая, когда ты ставишь перемычки на ID устройства номер 3, согласно мануалу MW (во вложении). Эта команда iot/modbus/read-holding-registers slave-id=0x80 reg-addr=0x0080 num-regs=0x0006 должна отправить запрос к устройству со slave ID 0 (стандартный Meanwell), по адресу 0x0080, на 6 регистров, и вернуть данные производителя устройства, но все без толку. Что я здесь делаю не так? Для справки: mean well, modbus, DRS-480-48, RB924i-2nD-BT5&BG77 KNOT, v7.11.2
     
     
     
    marekm
    Guest
    #7
    0
    07.09.2023 19:19:00
    У тебя есть другие устройства Modbus slave для тестирования? Сначала попробуй использовать недорогой USB/RS485 конвертер, чтобы напрямую связаться с устройством. Попробуй поменять полярность A/B, на всякий случай (я видел, как эти контакты в некоторых даташитах на RS485 трансиверы были перепутаны, что вызывало путаницу). Есть бесплатная (между прочим, бесплатная, но закрытая) программа «CAS Modbus Scanner» для быстрого сканирования ID устройств Modbus, чтобы найти, какое из них отвечает. Я использую KNOT (сейчас работает на ROS 7.10.2 — 7.11 пока не пробовал, «если не сломано, не чини») как шлюз Modbus TCP/RTU для связи с несколькими устройствами Modbus (PV инвертором, счетчиком электроэнергии и некоторыми собственными I/O модулями), и в целом всё работает. TCP-клиент — моя собственная программа на C с использованием libmodbus, запущенная в Debian на виртуальной машине под xcp-ng (заменяю старую выделенную физическую машину с последовательным портом, чтобы экономить электроэнергию, ведь новый Xeon E-2236 с 128 ГБ ОЗУ и 1 ТБ SSD расходует примерно столько же — около 50 Вт — сколько и старый добрый Pentium Pro 200 МГц с 128 МБ ОЗУ и 40 ГБ HDD).
     
     
     
    syadnom
    Guest
    #8
    0
    07.09.2023 19:25:00
    Использую mbpoll на Linux, вот мои тестовые скрипты с переменными. На самом деле я использую telegraf для опроса, но тестирую вот так:

    VINPRE= mbpoll $knot-ip -a 0x83 -P none -b 115200 -t 3 -0 -1 -m tcp -r 80 | grep "\[80\]" | cut -f2
    VOUTPRE= mbpoll $knot-ip -a 0x83 -P none -b 115200 -t 3 -0 -1 -m tcp -r 96 | grep "\[96\]" | cut -f2
    VBATPRE= mbpoll $knot-ip -a 0x83 -P none -b 115200 -t 3 -0 -1 -m tcp -r 211 | grep "\[211\]" | cut -f2
    CHCURPRE= mbpoll $knot-ip -a 0x83 -P none -b 115200 -t 4 -0 -1 -m tcp -r 176 | grep "\[176\]" | cut -f2
    CHVOLPRE= mbpoll $knot-ip -a 0x83 -P none -b 115200 -t 4 -0 -1 -m tcp -r 177 | grep "\[177\]" | cut -f2
    FLVOLPRE= mbpoll $knot-ip -a 0x83 -P none -b 115200 -t 4 -0 -1 -m tcp -r 178 | grep "\[178\]" | cut -f2

    Что может вас сбивать с толку — это сдвиг битов, из-за которого все ваши регистры смещены на один, если не выставить нулевую базу (опция -0 в командах).  

    Это именно опрос блока Mean Well DRS-480-48, но должно помочь вам начать.
     
     
     
    marekm
    Guest
    #9
    0
    07.09.2023 21:41:00
    Настройки последовательного порта (скорость передачи / четность / стоп-биты) в mbpoll влияют только на RTU (физический последовательный порт), для TCP проверьте настройки порта в KNOT. К тому же, по крайней мере, старая спецификация протокола RTU из 90-х требует 2 стоп-бита, если не используется проверка четности — отсутствие четности и 1 стоп-бит могут не работать с некоторыми устройствами.

    [admin@MikroTik] > /port/print detail
    Flags: I - неактивен  
    0   name="modbus" used-by="modbus" device="" channels=1 baud-rate=9600  
       data-bits=8 parity=none stop-bits=2 flow-control=none  

    1   name="modem" used-by="" device="" channels=5 baud-rate=115200 data-bits=8  
       parity=none stop-bits=1 flow-control=none

    По умолчанию в KNOT стоит 9600,8,N,1, и именно так я обнаружил баг в прошивке своих устройств спустя 20 лет — в UART AT90S8535 не было настройки «2 стоп-бита», поэтому я включил 9-битный режим (CHR9=1) для передачи, чтобы послать дополнительный бит «один» (TXB8=1) перед стоп-битом. Но при переключении направления обратно на приём (RX) забыл отключить этот режим (CHR9=0), чтобы быть совместимым с одним или несколькими стоп-битами. Все остальные устройства работали нормально (отправляли 2 стоп-бита, ждали 1 и не обращали внимания, если стоп-битов больше одного), кроме моих, которые и отправляли, и ожидали 2 стоп-бита.
     
     
     
    ecdc
    Guest
    #10
    0
    08.12.2023 14:36:00
    Привет, @marekm, ты разобрался, как опрашивать Meanwell? Я никак не могу получить ответ от блока DRS при использовании устройства KNOT и Modbus.
     
     
     
    Страницы: 1
    Читают тему
    +7 495 320-55-52
    info@mikrotik.moscow
    Электрозаводская, Бауманская
    Москва, ул. Бакунинская, 84с21
    Конфиденциальность Оферта
    © 2026 «Mikrotik.Moscow»
    Главная Каталог 0 Корзина 0 Избранные Кабинет 0 Сравнение Акции Контакты Услуги Бренды Отзывы Компания Лицензии Документы Реквизиты Поиск Блог Обзоры