- Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
- Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
- Не писать свой вопрос в первую попавшуюся тему - вместо этого создать новую тему.
- За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения.
- Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
- Перед тем как что-то написать - читать здесь и здесь, а студентам - обязательно здесь.
- Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.
Диагностика связи с ModbusTCP client в М221
Модератор: Специалисты SE
-
- здесь недавно
- Сообщения: 67
- Зарегистрирован: 07 окт 2016, 16:22
- Имя: Кибасов А.В
- Страна: Россия
- город/регион: Ростов-на-Дону
- Благодарил (а): 3 раза
- Поблагодарили: 2 раза
Диагностика связи с ModbusTCP client в М221
Доброго времени суток. Имеется контроллер M221 c модулями расширения TM3, который используется в качестве удаленной периферии и прописана простая логика. М221 является Modbus TCP сервером (слейвом) для вышестоящего M251. Есть ли для M221 диагностические переменные, свидетельствующие о потере связи с Modbus TCP клиентом или отсутствии соединения на порту Ethernet? Или данный функционал придется реализовывать "руками"? Заранее благодарен.
-
- завсегдатай
- Сообщения: 576
- Зарегистрирован: 02 дек 2015, 06:57
- Имя: Огородников Сергей
- Страна: РФ
- Благодарил (а): 120 раз
- Поблагодарили: 103 раза
Диагностика связи с ModbusTCP client в М221
Добрый день!
В таких случаях информация о наличии линка на порту не всегда будет релевантной - например, подключение между М221 и свитчем есть - линк есть, а вот М251 отключён.
Поэтому для диагностики я обычно применяю тест такого рода:
- на М251 раз в секунду инкрементируется значение (например, %МW300)
- M251 записывает это изменённое значение в М221 (например, в %МW302)
- М221 контролирует изменение своей переменной %МW302 за определённый промежуток, например, за 3 сек. Если 3 сек прошли, а значение не изменилось - потеря связи с клиентом М251
Если есть возможность организовать чтение-запись со стороны М221 в М251 (М221 - клиент) по принципу:
- М221 увеличил раз в секунду %MW400 и записал в М251 в %MW402
- М251 скопировал %MW402 в %MW404
- M221 прочитал %MW404 из М251
- Если за заданный промежуток прочитанное значение %MW404 не увеличилось - связь потеряна
По такому принципу можно придумать ещё реализации (устанавливать/сбрасывать бит и т.д.)
Главное - убедиться, что в эти переменные не идёт обращение из других мест программы.
Ну и подобрать релевантные промежутки времени для контроля тайм-аутов связи
В таких случаях информация о наличии линка на порту не всегда будет релевантной - например, подключение между М221 и свитчем есть - линк есть, а вот М251 отключён.
Поэтому для диагностики я обычно применяю тест такого рода:
- на М251 раз в секунду инкрементируется значение (например, %МW300)
- M251 записывает это изменённое значение в М221 (например, в %МW302)
- М221 контролирует изменение своей переменной %МW302 за определённый промежуток, например, за 3 сек. Если 3 сек прошли, а значение не изменилось - потеря связи с клиентом М251
Если есть возможность организовать чтение-запись со стороны М221 в М251 (М221 - клиент) по принципу:
- М221 увеличил раз в секунду %MW400 и записал в М251 в %MW402
- М251 скопировал %MW402 в %MW404
- M221 прочитал %MW404 из М251
- Если за заданный промежуток прочитанное значение %MW404 не увеличилось - связь потеряна
По такому принципу можно придумать ещё реализации (устанавливать/сбрасывать бит и т.д.)
Главное - убедиться, что в эти переменные не идёт обращение из других мест программы.
Ну и подобрать релевантные промежутки времени для контроля тайм-аутов связи
СВ
-
- освоился
- Сообщения: 279
- Зарегистрирован: 14 дек 2015, 12:15
- Имя: Евгений
- Страна: Россия
- город/регион: Краснодар
- Благодарил (а): 5 раз
- Поблагодарили: 73 раза
Диагностика связи с ModbusTCP client в М221
Как вариант можно анализировать кол-во активных TCP соединений, счетчик кол-ва полученных/переданных пакетов..... системные регистры начиная с %SW168. Например пакеты не идут, т.е. счетчик не меняется, значит обрыв.
-
- здесь недавно
- Сообщения: 67
- Зарегистрирован: 07 окт 2016, 16:22
- Имя: Кибасов А.В
- Страна: Россия
- город/регион: Ростов-на-Дону
- Благодарил (а): 3 раза
- Поблагодарили: 2 раза
Диагностика связи с ModbusTCP client в М221
Ясно, спасибо, буду делать. Также вопрос в догонку. Есть ли возможность соединить симулятор Somachine и запущенный Runtime проект EcoStruxure Machine SCADA Expert? Чтобы проверить без контроллера.
-
- освоился
- Сообщения: 279
- Зарегистрирован: 14 дек 2015, 12:15
- Имя: Евгений
- Страна: Россия
- город/регион: Краснодар
- Благодарил (а): 5 раз
- Поблагодарили: 73 раза
Диагностика связи с ModbusTCP client в М221
Симулятор SoMahichine Basic(Machine Expert Basic) можно только по Modbus TCP.
Симулятор обычного SoMachine(Machine Expert) только через протокол COSYS(Codesys, он же SoMachine/Machine Expert). Или через OPC, но нет смысла т.к. OPC использует тот же протокол, проще напрямую (через COSYS).
Симулятор обычного SoMachine(Machine Expert) только через протокол COSYS(Codesys, он же SoMachine/Machine Expert). Или через OPC, но нет смысла т.к. OPC использует тот же протокол, проще напрямую (через COSYS).
-
- администратор
- Сообщения: 17554
- Зарегистрирован: 17 июн 2008, 16:01
- Имя: Евгений свет Брониславович
- Страна: Россия
- город/регион: Санкт-Петербург
- Благодарил (а): 818 раз
- Поблагодарили: 1647 раз
Диагностика связи с ModbusTCP client в М221
А зачем так сложно?ogorsv писал(а): ↑02 апр 2020, 23:27 Добрый день!
В таких случаях информация о наличии линка на порту не всегда будет релевантной - например, подключение между М221 и свитчем есть - линк есть, а вот М251 отключён.
Поэтому для диагностики я обычно применяю тест такого рода:
- на М251 раз в секунду инкрементируется значение (например, %МW300)
- M251 записывает это изменённое значение в М221 (например, в %МW302)
- М221 контролирует изменение своей переменной %МW302 за определённый промежуток, например, за 3 сек. Если 3 сек прошли, а значение не изменилось - потеря связи с клиентом М251
Если есть возможность организовать чтение-запись со стороны М221 в М251 (М221 - клиент) по принципу:
- М221 увеличил раз в секунду %MW400 и записал в М251 в %MW402
- М251 скопировал %MW402 в %MW404
- M221 прочитал %MW404 из М251
- Если за заданный промежуток прочитанное значение %MW404 не увеличилось - связь потеряна
По такому принципу можно придумать ещё реализации (устанавливать/сбрасывать бит и т.д.)
Главное - убедиться, что в эти переменные не идёт обращение из других мест программы.
Ну и подобрать релевантные промежутки времени для контроля тайм-аутов связи
Я просто читаю с одного ПЛК другой, читаю значение, заранее известное и не равное нулю. Если прочитано именно известное значение - связь есть, иначе (не прочитано совсем или прочитано не то значение) - связи нет.
По вопросам работы Форума можно обратиться по этим контактам.