Приветствую, коллеги.
Ситуация: есть несколько контроллеров ET200SP, общающихся друг с другом через внешнюю сеть (через файрволы на границе каждой системы) по Modbus TCP. В один прекрасный день (то есть вчера), внешняя сеть некоторое время не работала (минут 10-15 навскидку). После чего контроллеры между собой общаться перестали. С сетью всё в порядке, другой траффик (сбор данных с узлов по OPC UA) функционирует. Посмотрел в онлайне на один из контроллеров, вижу следующее:
Вопрос, собственно: куда копать? Я понимаю, что перезапуск контроллера связь восстановит, но проблему это не решит (и вообще - это не наши методы). Хочется сделать так, чтобы после восстановления связи после таких вот обрывов связь сама оживала.
Отправлено спустя 5 минут 16 секунд:
На MB_CLIENT выход BUSY висит в "1" секунд 20-30, после чего пробегает DONE, и всё повторяется по кругу.
- Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
- Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
- Не надо писать свой вопрос в первую попавшуюся тему - всегда лучше создать новую тему.
- За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения. Непонятно? - Читать здесь.
- Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
- Перед тем как что-то написать - читать здесь, а затем здесь и здесь.
- Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.
Проблема с Modbus TCP
Модератор: Глоб.модераторы
-
- администратор
- Сообщения: 4909
- Зарегистрирован: 25 июл 2008, 07:12
- Имя: Диев Александр Васильевич
- Страна: Россия
- город/регион: г. Сегежа, Карелия
- Благодарил (а): 236 раз
- Поблагодарили: 425 раз
Проблема с Modbus TCP
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Повторное использование кода не отменяет повторного использования мозга при его повторном использовании.
-
- не первый раз у нас
- Сообщения: 386
- Зарегистрирован: 31 янв 2017, 11:08
- Имя: Николай
- Благодарил (а): 8 раз
- Поблагодарили: 122 раза
Проблема с Modbus TCP
1. Почему IP-адрес нулевой на сервере?
2. Что по переменной "Connected" на "MB_CLIENT"?
3. Последняя ошибка на "MB_CLIENT" (80С4), как раз говорит, что проблемы с подключением.
P.S. По хорошему надо проверять подключение на клиенте и после делать опрос сервера. Если нет коннекта, делать реконнект.
2. Что по переменной "Connected" на "MB_CLIENT"?
3. Последняя ошибка на "MB_CLIENT" (80С4), как раз говорит, что проблемы с подключением.
P.S. По хорошему надо проверять подключение на клиенте и после делать опрос сервера. Если нет коннекта, делать реконнект.
EPLAN Electric P8 Professional+ 2.7 HF1 11496 | TIA Portal Professional V17 Upd1 | Creo Parametric 4.0 M070
-
- администратор
- Сообщения: 4909
- Зарегистрирован: 25 июл 2008, 07:12
- Имя: Диев Александр Васильевич
- Страна: Россия
- город/регион: г. Сегежа, Карелия
- Благодарил (а): 236 раз
- Поблагодарили: 425 раз
Проблема с Modbus TCP
Я так понимаю, к нему просто в настоящий момент нет подключения. Там ведь Remote Adderess, а не Local. То есть - должен появиться адрес клиента, когда тот подключится. Или нет?
Что-то не вижу такой переменной. CONNECT в левом нижнем углу подключен к DB, содержимое которого на втором скрине.
Оно, конечно, да, но неизвестно, когда эта ошибка выпала. Проблемы с подключением, как я писал выше, были: сеть между узлами не работала 20-30 минут (ИТшники оборудование меняли).
И как это сделать? То есть - и подключение проверить, и реконнект?
Повторное использование кода не отменяет повторного использования мозга при его повторном использовании.
-
- не первый раз у нас
- Сообщения: 386
- Зарегистрирован: 31 янв 2017, 11:08
- Имя: Николай
- Благодарил (а): 8 раз
- Поблагодарили: 122 раза
Проблема с Modbus TCP
1. Там прописывается IP адрес удаленного партнера. Пример настройки можно посмотреть ТУТ.
2. Вам не блок подключения нужен, а блок самой функции "MB_CLIENT", там в Static снизу вторая переменная. Переменная Connected, а не Connect.
3. Это да, поэтому желательно делать более продуманную логику выявления ошибок.
4. Примеры можно посмотреть на сайте Siemens-a, например ТУТ.
P.S. А это у вас скрины с разных подключаемых контроллеров? А то порты разные, ID разные.
2. Вам не блок подключения нужен, а блок самой функции "MB_CLIENT", там в Static снизу вторая переменная. Переменная Connected, а не Connect.
3. Это да, поэтому желательно делать более продуманную логику выявления ошибок.
4. Примеры можно посмотреть на сайте Siemens-a, например ТУТ.
P.S. А это у вас скрины с разных подключаемых контроллеров? А то порты разные, ID разные.
EPLAN Electric P8 Professional+ 2.7 HF1 11496 | TIA Portal Professional V17 Upd1 | Creo Parametric 4.0 M070
-
- администратор
- Сообщения: 4909
- Зарегистрирован: 25 июл 2008, 07:12
- Имя: Диев Александр Васильевич
- Страна: Россия
- город/регион: г. Сегежа, Карелия
- Благодарил (а): 236 раз
- Поблагодарили: 425 раз
Проблема с Modbus TCP
Вроде как нашли способ решения - дёргаем DISCONNECT на MB_SERVER. Осталось найти правильный способ отлова потери связи - и можно автоматизировать её восстановление.
Повторное использование кода не отменяет повторного использования мозга при его повторном использовании.