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

Тема: Диагностика ошибок в ответе Modbus-slave.

  1. #1

    По умолчанию Диагностика ошибок в ответе Modbus-slave.

    Коллеги, добрый день.
    Modbus протокол предусматривает возможность диагностики ответов слейв устройства:

    цитата из Википедии
    При ошибках второго типа подчинённое устройство отсылает сообщение об ошибке (если запрос адресован этому устройству; на широковещательные запросы ответ не отправляется). Признаком того, что ответ содержит сообщение об ошибке, является установленный старший бит номера функции. За номером функции, вместо обычных данных, следует код ошибки и, при необходимости, дополнительные данные об ошибке.

    Есть какая-то возможность отслеживать такие ошибки в CoDeSys v2.3\ПЛК110-60 [М02]???

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

  2. #2

    По умолчанию

    Добрый день, capzap.
    Да, ПЛК выступает в роли мастера сети, настройка сети через Ресурсы->Конфигурация ПЛК, добавлен модуль Modbus (master).
    В документации про LastError говорится следующее:
    Безымянный.jpg
    На сколько я понимаю эта переменная говорит нам о том что связь состоялась или нет в целом (что кабель цел/что помех нет/что у ПЛК хватило сил провести опрос и т.д.).
    Меня же интересует тот случай, когда состоялся обмен мастер - слейв и слейв устройство в своем ответе на запрос указывает не запрошенные данные, а ошибку которая у него произошла. Эта процедура описана в стандарте. Датчик который я завожу в проект поддерживает эту процедуру, но обработать я ее нормально пока не могу.

  3. #3

    По умолчанию

    Цитата Сообщение от johnny0000 Посмотреть сообщение
    Меня же интересует тот случай, когда состоялся обмен мастер - слейв и слейв устройство в своем ответе на запрос указывает не запрошенные данные, а ошибку которая у него произошла. Эта процедура описана в стандарте. Датчик который я завожу в проект поддерживает эту процедуру, но обработать я ее нормально пока не могу.
    Неа! Обработка таких ошибок штатно в этой среде НЕ поддерживается.
    Если нужна настолько глубокая диагностика - то придётся писать обмен самому, используя библиотеку OWEN Modbus.
    Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живёте. © Steve McConnell
    Мой рабочий блог со статьями про щиты и автоматику ОВЕН - Cs-Cs.Net | Почта: Info@Cs-Cs.Net

  4. #4

    По умолчанию

    Спасибо за ответ, Cs-Cs.
    Обмен с датчиками происходит по Modbus TCP, соответственно для нужной мне (детальной) диагностики, придется работать с так называемыми "сокетами". Я правильно понимаю?
    И еще вопрос в догонку, к знающим специалистам, возможно опрашивать по Modbus TCP в асинхронном режиме? Есть такие функции для ПЛК110-хх??

  5. #5

  6. #6

    По умолчанию

    Цитата Сообщение от EFrol Посмотреть сообщение
    Можно работать через сокеты - https://ftp.owen.ru/CoDeSys23/10_Soc...ckets_v1.0.pdf
    Я юзаю - https://ftp.owen.ru/CoDeSys23/05_Lib...anuals/UNM.pdf
    Это все есть здесь - https://owen.ru/product/codesys_v2/documentation
    Спасибо, EFrol, за предоставленную информацию.
    А что с асинхронным режимом обмена, не пробовали, можно такое реализовать на ПЛК110-хх?

  7. #7

    По умолчанию

    В библиотека SysLibSockets.lib работает в блокирующем и неблокирующем режиме - это соответствует синхронному и асинхронному?
    UNM - работает с буферами портов (RS232/RS485/Ethernet) - это значит, что она по определению асинхронна ?
    Вот пример использования UNM для трансляции ModbusTCP в ModbusRTU и обратно - ModbusTCP <-> ModbusRTU
    Последний раз редактировалось EFrol; 27.02.2023 в 11:05.

  8. #8

    По умолчанию

    Блокирующий - он же синхронный режим, цикл ПЛК блокируется пока не состоится вся заданная цепочка обмена.
    Неблокирующий - он же асинхронный, ПЛК только запускает обмен, все остальное на себя берет операционка, а ПЛК в каждом новом цикле просто проверяет результат обмена.
    Я это так понимаю.
    В любом случае спасибо, ознакомлюсь пока с документацией, и нужно пробовать.

  9. #9

    По умолчанию

    Всем доброго утра!
    Началась работа с железом (ПЛК110-60[M-02]), настраиваем\заводим сокеты через syslibsocket.com. Вопросы:
    1) почему номер сокета может быть больше 36, вчера отсылал\принимал данные через сокет с номером 652???
    2) как правильно задать неблокирующий режим через setopt, присваиваем "0" или "1"???
    3) ну и... EmbOS/IP SEGGER, есть ли смысл опираться на работу сокетов этой операционки???????

  10. #10

    По умолчанию

    1. это хендл сокета, от может быть любым
    2. В примерах всё есть
    3. У вас есть описание работы сокетов CoDeSyS, и примеры. ими и пользуйтесь.
    Тролль-наседка, добрый, нежный и ласковый

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

Похожие темы

  1. ModBus RTU - диагностика.
    от sialiv в разделе ПЛК1хх
    Ответов: 11
    Последнее сообщение: 12.04.2017, 09:08
  2. Диагностика ошибок на протоколе ОВЕН
    от Спорягин Кирилл в разделе ПЛК1хх
    Ответов: 4
    Последнее сообщение: 04.04.2017, 08:12
  3. ATI в ответе модема ПМ01
    от Сергей Мих в разделе Эксплуатация
    Ответов: 15
    Последнее сообщение: 23.01.2014, 12:43
  4. Диагностика ошибок программ на ПЛК
    от kuharchukigor в разделе ПЛК1хх
    Ответов: 40
    Последнее сообщение: 26.02.2013, 20:07
  5. Диагностика ошибок МДВВ
    от maks-tver в разделе ПЛК1хх
    Ответов: 2
    Последнее сообщение: 12.03.2011, 09:33

Ваши права

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