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

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

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

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

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

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

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

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

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

  2. #2

  3. #3

    По умолчанию

    Цитата Сообщение от 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-хх?

  4. #4

    По умолчанию

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

  5. #5

    По умолчанию

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

  6. #6

    По умолчанию

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

  7. #7

    По умолчанию

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

  8. #8

    По умолчанию

    Цитата Сообщение от Филоненко Владислав Посмотреть сообщение
    1. это хендл сокета, от может быть любым
    2. В примерах всё есть
    3. У вас есть описание работы сокетов CoDeSyS, и примеры. ими и пользуйтесь.
    Просто в документе про сокеты была фраза, мол смотрите описание ОС... с этого все и началось, кстати про EmbOS все таки почитал.
    Безымянный.jpg

    - То есть в случае каких-то проблем просто закрываем сокет, открываем заново, если дескриптор не "-1" пользуемся им и не паримся что там за число... больше 36...больше 6000)???


    Кстати... вопрос про изучение EmbOS встал после того как я решил обкатать проект на WinNTv2.4, и как я понимаю там библиотека SysLibSocket работает по другому. Ну это так... отступление лирическое).

  9. #9

    По умолчанию

    да, не паримся на число
    Тролль-наседка, добрый, нежный и ласковый

  10. #10

    По умолчанию

    Цитата Сообщение от Филоненко Владислав Посмотреть сообщение
    да, не паримся на число
    Понимаю вашу иронию, Владислав, звучит конечно не серьезно. Могу предположить что хендел сокета, является указателем на область памяти. Но не об этом... недавно просто видел пост о том, что мол сокет с номером "0" всегда соответствует сокету связанному с ПК на котором крутиться CoDeSys, правда или нет не знаю.
    Но вопрос остался, как можно диагностировать канал связи ПЛК с ПК (с CoDeSysHMI.exe например), через программу ПЛК, что бы в случае разрыва например, как-то обрабатывать это событие (например притормозить какой-то механизм)???

Страница 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

Ваши права

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