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

Тема: Получить состояние Modbus-модулей в программе

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    По умолчанию Получить состояние Modbus-модулей в программе

    Добрый день!
    Как получить состояние модуля прямо в программе:
    111.png
    Там, где 1 - получить "False"
    Там, где 2 - получить "True"

    Хочу на мнемосхеме выводить квадратик с надписью "Связь в норме" зелёным цветом или "Связь потеряна" красным

    Я пробовал уже кучу способов, все перечислять не буду. Скажу только, что они все работают непостоянно...
    Просто интересно, как это делают нормальные люди

    Спасибо!

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

    По умолчанию

    Цитата Сообщение от aaaSashaMGGU Посмотреть сообщение
    Добрый день!
    Как получить состояние модуля прямо в программе:
    111.png
    Там, где 1 - получить "False"
    Там, где 2 - получить "True"

    Хочу на мнемосхеме выводить квадратик с надписью "Связь в норме" зелёным цветом или "Связь потеряна" красным

    Я пробовал уже кучу способов, все перечислять не буду. Скажу только, что они все работают непостоянно...
    Просто интересно, как это делают нормальные люди

    Спасибо!
    Добрый день.
    См. п. 4.6:
    https://ftp.owen.ru/CoDeSys3/11_Docu...odbus_v3.2.pdf

  3. #3

    По умолчанию

    Цитата Сообщение от Евгений Кислов Посмотреть сообщение
    Добрый день.
    См. п. 4.6:
    https://ftp.owen.ru/CoDeSys3/11_Docu...odbus_v3.2.pdf
    Изучил вдоль и поперёк. Всё не то
    При реально отключенном модуле его состояние постоянно прыгает: Ошибка прыгает true-false, byModbusError прыгает UNDEFINED - RESPONSE_TIMEOUT
    В итоге, приходится начинать свистопляску с таймерами на то, на это
    Как на практике это сделать максимально удобно - понять не могу

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

    По умолчанию

    При реально отключенном модуле его состояние постоянно прыгает: Ошибка прыгает true-false, byModbusError прыгает UNDEFINED - RESPONSE_TIMEOUT
    ...что совершенно логично: контроллер же не знает, что "модуль реально отключен" и продолжает отправлять запросы, детектируя отсутствие ответа (RESPONSE_TIMEOUT). UNDEFINED - это состояние драйвера между запросами.

    Как на практике это сделать максимально удобно - понять не могу
    Для этого надо сформулировать ваши критерии наличия и отсутствия связи и критерий "максимального удобства".

  5. #5

    По умолчанию

    aaaSashaMGGU
    При реально отключенном модуле его состояние постоянно прыгает: Ошибка прыгает true-false, byModbusError прыгает UNDEFINED - RESPONSE_TIMEOUT
    ВОТ (Читать заголовок 6): https://cs-cs.net/technologii-testir...odbus___ai__io
    Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живёте. © Steve McConnell
    Мой рабочий блог со статьями про щиты и автоматику ОВЕН - Cs-Cs.Net | Почта: Info@Cs-Cs.Net | Канал в ТГ @CsCsNetLab

  6. #6

    По умолчанию

    Цитата Сообщение от Cs-Cs Посмотреть сообщение
    aaaSashaMGGU ВОТ (Читать заголовок 6): https://cs-cs.net/technologii-testir...odbus___ai__io
    Спасибо
    Уже некоторое время назад сам дошёл до двух таймеров TON - TOF и отдельного ФБ для всего этого
    Просто ещё не допинал до конца времена - решил спросить, вдруг есть более адекватный способ для определения отвала: например, забрать один какой-нибудь флаг и всё
    Но, видимо, не один я вспоткнулся обо всё это

  7. #7

    По умолчанию

    Timer_TON(IN := NOT(N001.xDone), PT := T#30S, Q => xAlarmConnect_N001);

  8. #8

    По умолчанию

    Цитата Сообщение от Sergey361 Посмотреть сообщение
    Timer_TON(IN := NOT(N001.xDone), PT := T#30S, Q => xAlarmConnect_N001);
    Всё это очевидно и так, я и сам это понимаю
    Проблемы начинаются тогда, когда модбасовская задача стоит отдельно. А задача, которая основная - пытается забирать состояния модулей
    В этом случае (я писал выше) Ошибка прыгает true-false, byModbusError прыгает UNDEFINED - RESPONSE_TIMEOUT для отключенного модуля, а для подключенного модуля Ошибка НЕ прыгает, но byModbusError прыгает UNDEFINED - RESPONSE_SUCCESS
    И, казалось бы, чёрт с ним, пусть скачут, таймер всё отфильтрует. Но нет. Всё это работает периодически нестабильно, показывая отвал модуля с таймером вплоть до 10 секунд. Да, знаю, что бред, но это так
    Но при этом зелёненький кружок в дереве проекта всегда горит зелёным и ни разу не моргает. Вот я хотел спросить, как забрать вот прям именно его, а не изобретать весосипед из таймеров, задач с разными временами циклов и приоритетов и пр.
    Вдруг кто-то уже знает ответ...

  9. #9

    По умолчанию

    Неа! Я не нашёл способа, и как раз сделал так, как написал в статье.
    По любому придётся делать так, как делал я. И в разных задачах - да.
    Последний раз редактировалось Cs-Cs; 27.11.2024 в 21:56. Причина: Поправил после ответа Автора
    Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живёте. © Steve McConnell
    Мой рабочий блог со статьями про щиты и автоматику ОВЕН - Cs-Cs.Net | Почта: Info@Cs-Cs.Net | Канал в ТГ @CsCsNetLab

  10. #10
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,574

    По умолчанию

    Цитата Сообщение от aaaSashaMGGU Посмотреть сообщение
    выводить квадратик с надписью "Связь в норме" зелёным цветом или "Связь потеряна" красным
    разве условие Modbus_TCP_Slave.ComState <> 16#2 не удовлетворяет требованию о потере связи?
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

    среди успешных людей я не встречала нытиков
    Барбара Коркоран

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

Похожие темы

  1. Ответов: 23
    Последнее сообщение: 15.08.2023, 14:24
  2. Ответов: 0
    Последнее сообщение: 30.10.2018, 10:06
  3. ТРМ 133м-04 modbus Текущее состояние
    от Sashka4000 в разделе Эксплуатация
    Ответов: 9
    Последнее сообщение: 29.01.2016, 09:10
  4. Ответов: 11
    Последнее сообщение: 04.03.2015, 12:23
  5. Ответов: 3
    Последнее сообщение: 22.04.2009, 15:10

Ваши права

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