Страница 1 из 3 123 ПоследняяПоследняя
Показано с 1 по 10 из 24

Тема: Как определить состояние соединения с ПК по Modbus TCP

  1. #1

    По умолчанию Как определить состояние соединения с ПК по Modbus TCP

    Здравствуйте! ПЛК110[М02] общается с компьютером используя Modbus TCP. ПЛК является мастером. Как в программе ПЛК определить, что компьютер в данный момент подключен к ПЛК (установлено TCP соединение)? Среда Codesys V2.3.
    Последний раз редактировалось teo111; 08.08.2023 в 22:48.

  2. #2

    По умолчанию

    Цитата Сообщение от teo111 Посмотреть сообщение
    Здравствуйте! ПЛК110[М02] общается с компьютером используя Modbus TCP. ПЛК является мастером. Как в программе ПЛК определить, что компьютер в данный момент подключен к ПЛК (установлено TCP соединение)? Среда Codesys V2.3.
    Не понятно, вы ПЛК к какой программе хотите подключить на компе?
    К программе Codesys V2.3 или к какому то ОПС серверу в режиме слейв?

  3. #3

    По умолчанию

    1. ПК устанавливает бит в TRUE -> ПЛК сбрасывает в FALSE -> ПК устанавливает бит в TRUE и т.д. и анализируем в ПЛК
    2. Читаем время в ПК и сравниваем с прошлым прочитанным.
    3. Вместо времени в п.2 используем простой инкрементный счетчик.
    4. Если обмен через сокеты, там есть кол-во принятых байт и еще что-то полезное.
    Смотря что на ПК используется в качестве слейва. Много костылей можно придумать для диагностики соединения.

  4. #4

    По умолчанию

    Цитата Сообщение от Николай Суриков Посмотреть сообщение
    1. ПК устанавливает бит в TRUE -> ПЛК сбрасывает в FALSE -> ПК устанавливает бит в TRUE и т.д. и анализируем в ПЛК
    2. Читаем время в ПК и сравниваем с прошлым прочитанным.
    3. Вместо времени в п.2 используем простой инкрементный счетчик.
    4. Если обмен через сокеты, там есть кол-во принятых байт и еще что-то полезное.
    Смотря что на ПК используется в качестве слейва. Много костылей можно придумать для диагностики соединения.
    Тоже делал так контроль пока не столкнулся с MS4D, из которой отправка переменных происходит только при их изменении (OPC UA).
    Наверное можно было изменить настройки этого тега в OPC, но сделал по-другому - в ПК (скаде) контрольный тег всё время инвертируется, а в ПЛК отслеживается наличие его изменений - при "застывании" тега на ПЛК фиксируется потеря связи

  5. #5

    По умолчанию

    Коллега, а что за скада у вас?
    Я реализовал такую процедуру проверки в TraceMode 6.
    Проект контроллера во вложении.
    TCP_WATCHDOG.pro

  6. #6

    По умолчанию

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

  7. #7

    По умолчанию

    Цитата Сообщение от teo111 Посмотреть сообщение
    На стороне ПК работает специализированное самописное ПО. Использовать костыли с периодической записью со стороны ПК единичек и сбросом их со стороны ПЛК технически проблем никаких нет. Но по возможности не хочется нагружать протокол взаимодействия подобными штуками, если существуют какие-нибудь готовые средства контроля соединения.
    Ерунду не пишите, передача лишнего бита, раз в секунду со сбросом при получении и даже регистра , никак не нагрузят обмен.
    Можно использовать любой свободный бит, любого регистра, который уже есть в обмене.
    Последний раз редактировалось kondor3000; 09.08.2023 в 23:22.

  8. #8

    По умолчанию

    Цитата Сообщение от teo111 Посмотреть сообщение
    На стороне ПК работает специализированное самописное ПО. Использовать костыли с периодической записью со стороны ПК единичек и сбросом их со стороны ПЛК технически проблем никаких нет. Но по возможности не хочется нагружать протокол взаимодействия подобными штуками, если существуют какие-нибудь готовые средства контроля соединения.
    Вообще все советы выше касаются ситуации, когда ПЛК - это слейв (сервер)

    Цитата Сообщение от teo111 Посмотреть сообщение
    Здравствуйте! ПЛК110[М02] общается с компьютером используя Modbus TCP. ПЛК является мастером. Как в программе ПЛК определить, что компьютер в данный момент подключен к ПЛК (установлено TCP соединение)? Среда Codesys V2.3.
    Если ПЛК - мастер, то проблем с контролем связи штатными средствами не должно быть вообще

  9. #9

    По умолчанию

    Цитата Сообщение от 1exan Посмотреть сообщение
    Если ПЛК - мастер, то проблем с контролем связи штатными средствами не должно быть вообще
    Это обнадёживает, но куда дальше копать уже не знаю.

  10. #10

    По умолчанию

    Цитата Сообщение от kondor3000 Посмотреть сообщение
    Ерунду не пишите, передача лишнего бита, раз в секунду со сбросом при получении и даже регистра , никак не нагрузят обмен.
    Можно использовать любой свободный бит, любого регистра, который уже есть в обмене.
    Неточно выразился, я не имел ввиду нагрузку на оборудование. Мы делаем оборудование для заказчика, заказчик сам пишет ПО управления. Протокол уже оговорён. Не хотелось бы в этот протокол добавлять что-то, если это "что-то" можно избежать благодаря наличию штатных средств.

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

Похожие темы

  1. Modbus контроль ошибок соединения
    от aven в разделе Сетевые технологии
    Ответов: 17
    Последнее сообщение: 22.05.2021, 12:07
  2. ТРМ 133м-04 modbus Текущее состояние
    от Sashka4000 в разделе Эксплуатация
    Ответов: 9
    Последнее сообщение: 29.01.2016, 09:10
  3. Как считать состояние выхода МУ110-16Р modbus
    от acronis в разделе Эксплуатация
    Ответов: 11
    Последнее сообщение: 04.03.2015, 12:23
  4. ТРМ-202 нет соединения по modbus
    от Push_ON в разделе Сетевые технологии
    Ответов: 6
    Последнее сообщение: 20.02.2012, 13:44
  5. Потеря соединения по Modbus TCP/IP ПЛК304
    от Грушецкий Павел в разделе ПЛК3хх
    Ответов: 3
    Последнее сообщение: 03.02.2012, 20:19

Ваши права

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