Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 14

Тема: Подслушивание RS-485

  1. #1

    Question Подслушивание RS-485

    Добрый день!
    Есть голова Тензо-М и дублирующая голова тоже Тензо-М
    Вторая голова RS-485-мастер и она запрашивает данные с первой головы

    Задача - подслушивать RS-485, как Master RS-485 опрашивает Slave RS-485
    Я такое уже делал через ПО на ПК через MOXA

    Если для этого есть уже готовая библиотека для протокола Тензо-М - вообще прекрасно
    Для Тензо-М есть готовая библиотека https://www.tenso-m.ru/news/851/, но там речь про команды от контроллера на голову, а не про подслушивание. Хотя, утащить оттуда функцию расчёта контрольной суммы, конечно, можно

    Спасибо!
    Последний раз редактировалось aaaSashaMGGU; 20.06.2024 в 08:05.

  2. #2
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    13,594

    По умолчанию

    Цитата Сообщение от aaaSashaMGGU Посмотреть сообщение
    Добрый день!
    Есть голова Тензо-М и дублирующая голова тоже Тензо-М
    Вторая голова RS-485-мастер и она запрашивает данные с первой головы

    Задача - подслушивать RS-485, как Master RS-485 опрашивает Slave RS-485
    Я такое уже делал через ПО на ПК через MOXA

    Если для этого есть уже готовая библиотека для протокола Тензо-М - вообще прекрасно
    Для Тензо-М есть готовая библиотека https://www.tenso-m.ru/news/851/, но там речь про команды от контроллера на панель, а не про подслушивание. Хотя, утащить оттуда функцию расчёта контрольной суммы, конечно, можно

    Спасибо!
    Добрый день.

    В общем и целом - вам необходимо реализовать в контролере slave нестандартного протокола (Тензо-М), который парсит любые полученные запросы, но не отвечает на них.

    Начните с этого:
    https://youtu.be/F_unaGOBC08?si=ZXtK5WOXQTF7nNTG
    https://www.tenso-m.ru/pdf/Protocol_Tenso-M.pdf

    Тут реализация мастера для Тензо-М, но отдельные фрагменты кода могут быть полезны:
    https://ftp.owen.ru/CoDeSys3/21_Exam...projectarchive

  3. #3

    По умолчанию

    Не-не, вопрос не в том. C протоколом Тензо-М я работать умею.
    Вопрос, как сделать парсинг всего потока данных от RS-485 на ОВЕНе? Я не знаю только это. Дальше-то уже всё понятно
    Последний раз редактировалось aaaSashaMGGU; 20.06.2024 в 08:54.

  4. #4
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    13,594

    По умолчанию

    Цитата Сообщение от aaaSashaMGGU Посмотреть сообщение
    Не-не, вопрос не в том. C протоколом Тензо-М я работать умею.
    Вопрос, как сделать парсинг всего потока данных от RS-485 на ОВЕНе? Я не знаю только это. Дальше-то уже всё понятно
    См. первую ссылку из поста выше.

  5. #5

    По умолчанию

    Цитата Сообщение от Евгений Кислов Посмотреть сообщение
    См. первую ссылку из поста выше.
    Да забудьте вы про этот Тензо-М

    Я спрашиваю, как мне опросить порт RS-485, не отправляя при этом в сам порт ничего
    Я так понимаю, для этого нужны блоки ФБ COM.Open и ФБ COM.Read из Библиотека CAA SerialCom

    Я просто не могу понять, блок называется COM, а опрашивать я должен RS-485. Это будет работать?
    hCom CAA.HANDLE Дескриптор (handle) порта, из которого происходит чтение - можно указать именно RS-485 порт?
    Будет ли при этом блок ФБ COM.Read читать поток байтов из порта RS-485?

    Вот какие-то такие у меня вопросы

  6. #6
    Пользователь
    Регистрация
    27.11.2011
    Адрес
    Краснодар
    Сообщений
    12,982

    По умолчанию

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

  7. #7

    По умолчанию

    Цитата Сообщение от melky Посмотреть сообщение
    aaaSashaMGGU ну так вам нужно реализовать аналог slave на порту, который слушает, только отвечать не будет, а только обрабатывать информацию.
    Да, 100% в точку
    Дайте уже посмотреть, наконец, пример такой программы
    Я же с самого начала и говорил, что я не понимаю, как сделать именно это

  8. #8
    Пользователь
    Регистрация
    27.11.2011
    Адрес
    Краснодар
    Сообщений
    12,982

    По умолчанию

    Ну вам Евгений написал с чего начать. Наверное читать там. На ПЛК я такое не реализовывал. Опять же, берете примеры любого мастера, там же сперва запрос, потом чтение ответа. Вам нужна вторая часть, а дальше ваша логика.

    1. открыть порт
    2. ожидание ответа (запросы удаляем за ненадобностью)
    3. логика.

  9. #9
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    13,594

    По умолчанию

    Цитата Сообщение от aaaSashaMGGU Посмотреть сообщение
    Да, 100% в точку
    Дайте уже посмотреть, наконец, пример такой программы
    Я же с самого начала и говорил, что я не понимаю, как сделать именно это

    Ладно, я скопирую первую ссылку из поста выше. Мне несложно.
    https://youtu.be/F_unaGOBC08?si=ZXtK5WOXQTF7nNTG

  10. #10

    По умолчанию

    Всем спасибо
    Сделал вот так:
    Безымянный.png

    Вот только пара моментов:
    1) Я хоть и поставил размер буфера запроса szRequest = 0, но 3 цикла программа всё равно ничего не делает. Я не могу заглянуть внутрь кода OCL.UNM_SerialRequest, но думаю, что ФБ всё равно "Отправляет" пакет нулевой длины, что занимает эти самые 3 цикла. И на 4й цикл только лишь начинается чтение (подслушивание) компорта

    2) Из-за того, что мы подслушиваем, а не пишем - конец работы блока я фиксирую не по xDone, а по xError, что выглядит, как минимум, странно. Т.к., траффик идёт постоянный - и конца у него нет и быть не может
    Последний раз редактировалось aaaSashaMGGU; 24.06.2024 в 12:53.

Страница 1 из 2 12 ПоследняяПоследняя

Метки этой темы

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •