PDA

Просмотр полной версии : СП310 и ПЛК110 - связь по Modbus TCP



DmitriiAnyushin
29.07.2016, 11:56
Добрый день! Задача состоит связать между собой контроллер ПЛК110 и СП310 по протоколу Modbus TCP
Раньше я связывал между собой контроллер и панель по протоколу Modbus RTU через порт RS-232 у контроллера и через порт PLC у панели.
Решил попробовать переписать проект, чтобы связь осуществлялась по протоколу Modbus TCP (возникла необходимость освободить порт 232 у контроллера). И столкнулся с рядом вопросов:
1. При ораганизации связи по Modbus TCP в поле конфигурирования объектов с битовыми переменными отсутствует возможность обращения к биту в регистре (только 0х и 1х). В принципе вопрос решаемый, но это недоработка конфигуратора или я куда-то не туда смотрю?
2. При обрыве связи с контроллером не происходит последующего переподключения панели (в отличии от организации связи по Modbus RTU), только путем ее перезагрузки. При обращении к переменным макросом панель вообще зависает. Даже в коммуникационыых настройках поставил число попыток по максимому. Бывает один раз переподключится, а потом снова связь теряется. Есть ли еще какие-нибудь настройки для решения данной проблемы?
Спасибо!

petera
29.07.2016, 12:33
Добрый день! Задача состоит связать между собой контроллер ПЛК110 и СП310 по протоколу Modbus TCP
Раньше я связывал между собой контроллер и панель по протоколу Modbus RTU через порт RS-232 у контроллера и через порт PLC у панели.
Решил попробовать переписать проект, чтобы связь осуществлялась по протоколу Modbus TCP (возникла необходимость освободить порт 232 у контроллера). И столкнулся с рядом вопросов:
1. При ораганизации связи по Modbus TCP в поле конфигурирования объектов с битовыми переменными отсутствует возможность обращения к биту в регистре (только 0х и 1х). В принципе вопрос решаемый, но это недоработка конфигуратора или я куда-то не туда смотрю?
2. При обрыве связи с контроллером не происходит последующего переподключения панели (в отличии от организации связи по Modbus RTU), только путем ее перезагрузки. При обращении к переменным макросом панель вообще зависает. Даже в коммуникационыых настройках поставил число попыток по максимому. Бывает один раз переподключится, а потом снова связь теряется. Есть ли еще какие-нибудь настройки для решения данной проблемы?
Спасибо!

1. Так и есть.

2. Вы небось в макросах оставили в параметрах что-то типа "MODBUS_RTU_REG_4X", а нужно "MODBUS_TCP_REG_4X".
25626

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

ЗЫ.
1. У ПЛК ОВЕН в слейве биты 0х и регистры 4х находятся в одной и той же области памяти, поэтому всегда можно найти какой адрес 0х у любого разряда любого модуля 2byte.

2. Те же ограничения из п.1. Нельзя использовать в макросе "MODBUS_TCP_BIT_4X, 0, 1", только "MODBUS_TCP_BIT_0X, 1, 0"

DmitriiAnyushin
29.07.2016, 13:29
Спасибо! Ну да - по поводу замены "MODBUS_RTU_REG_4X" на "MODBUS_TCP_REG_4X" я недочитал, хотя и с RTU он каким то образом работал
Как биты в TCP сопоставить с битами в RTU я разобрался
А вот связь если я обрываю физически, то первый раз она еще восстанавливается, а второй раз уже нет. Сделал ради эксперимента элементарный проект - передаю через конфигуратор контроллера (ПЛК110-60) текущие секунды, а панелькой как мастером считываю.
Посмотрите пожалуйста проект https://yadi.sk/d/3LYD0W2xtjYnS . Спасибо!

DmitriiAnyushin
29.07.2016, 13:51
Хотя в данном проекте связь все же восстанавливается по прошествии пяти минут. Это время никак нельзя уменьшить, чтобы связь восстанавливалась быстро (как по Modbus RTU)?

petera
29.07.2016, 14:29
Спасибо! Ну да - по поводу замены "MODBUS_RTU_REG_4X" на "MODBUS_TCP_REG_4X" я недочитал, хотя и с RTU он каким то образом работал
Как биты в TCP сопоставить с битами в RTU я разобрался
А вот связь если я обрываю физически, то первый раз она еще восстанавливается, а второй раз уже нет. Сделал ради эксперимента элементарный проект - передаю через конфигуратор контроллера (ПЛК110-60) текущие секунды, а панелькой как мастером считываю.
Посмотрите пожалуйста проект https://yadi.sk/d/3LYD0W2xtjYnS . Спасибо!

Посмотреть, то я посмотрел. А толку?
Нужно иметь одновременно и ПЛК и панель. Сейчас я на работе, здесь есть только ПЛК160. А дом а есть только панель.
Пока могу проверить только онлайн эмуляция и реальный ПЛК
Для начала добавим на экран некоторую диагностическую информацию
25627
Если нет связи, то через время Таймаут выполняется следующая попытка
Каждая попытка - увеличивает Ошибок данных на 1
Следующая попытка через время "Таймаут"
Каждые три попытки - увеличивают Безуспешных запросов на 1
Эмулятор панели и контроллер

https://www.youtube.com/watch?v=8zeJ1EsLs64
Понятно, что я периодически выдергивал кабель из ПЛК.

Уменьшим время "Таймаут"
25628


https://www.youtube.com/watch?v=B1qxgfeo4SM

DmitriiAnyushin
29.07.2016, 15:38
Спасибо за подробный ответ! Попробовал на эмуляторе - связь действительно восстанавливается во много раз быстрее чем на панели(не rtu конечно, но секунд за 5-10 восстанавливается) и таймаут оказывается, как показала практика и как прописано в руководстве (стр. 57), лучше оставить по умолчанию (1500 мс).
Все же пока остановлюсь на реализации связи между ПЛК и панелькой по RS232 (ModbusRTU)

elec
12.08.2016, 11:54
Здравствуйте.
Аналогичная ситуация. Панель по Modbus-TCP опрашивает пять контроллеров ПЛК-110 (панель - Master). При пропадании связи с любым из контроллеров новое подключение не удается. Кроме того, пропадает подключение к другим контроллерам, пропадает возможность даже переключить экран. На панели периодически появляется окошко с надписью "Подключение", панель не реагирует на прикосновения к экрану.
Для организации сети используется коммутатор MOXA EDS-208.
Точно такая же ситуация и без использования коммутатора. Если подключить панель напрямую к ПЛК по Ethernet, связь устанавливается, передача данных выполняется, но после отключения/подключения кабеля восстановления связи не происходит, панель на прикосновения не реагирует, периодически появляется окошко с надписью "Подключение".
Эксперимент проводился с разными контроллерами.
В программе контроллера параметры и регистры Modbus-Slave задавались при помощи стандартных средств в меню "Конфигурация ПЛК". Сторонних библиотек не использовалось.

petera
12.08.2016, 19:23
Здравствуйте.
Аналогичная ситуация. Панель по Modbus-TCP опрашивает пять контроллеров ПЛК-110 (панель - Master). При пропадании связи с любым из контроллеров новое подключение не удается. Кроме того, пропадает подключение к другим контроллерам, пропадает возможность даже переключить экран. На панели периодически появляется окошко с надписью "Подключение", панель не реагирует на прикосновения к экрану.
Для организации сети используется коммутатор MOXA EDS-208.
Точно такая же ситуация и без использования коммутатора. Если подключить панель напрямую к ПЛК по Ethernet, связь устанавливается, передача данных выполняется, но после отключения/подключения кабеля восстановления связи не происходит, панель на прикосновения не реагирует, периодически появляется окошко с надписью "Подключение".
Эксперимент проводился с разными контроллерами.
В программе контроллера параметры и регистры Modbus-Slave задавались при помощи стандартных средств в меню "Конфигурация ПЛК". Сторонних библиотек не использовалось.
По идее вместо окошка с надписью "Подключение" должно быть такое окошко http://www.owen.ru/forum/showthread.php?t=23153&p=194036&viewfull=1#post194036
Для исправления ситуации заменить шаблоны для новых проектов этими http://www.owen.ru/forum/showthread.php?t=22933&p=194877&viewfull=1#post194877
То, что панель не реагирует на нажатия экрана если связь с любым слейвом потеряна - это такая ее особенность, которая была и в панели СП270.
Для портов PLC и Download помогает удаление с экрана 65534 вызова системного окна о потери связи
25791
Для порта Ethernet возможно тоже поможет, не пробовал. Но в этом случае Вы не получите никакой информации о потере связи.
Или попробовать организовать опрос слейвов с помощь макроса на Си http://www.owen.ru/forum/showthread.php?t=23153

DmitriiAnyushin
15.08.2016, 16:06
По идее вместо окошка с надписью "Подключение" должно быть такое окошко http://www.owen.ru/forum/showthread.php?t=23153&p=194036&viewfull=1#post194036
Для исправления ситуации заменить шаблоны для новых проектов этими http://www.owen.ru/forum/showthread.php?t=22933&p=194877&viewfull=1#post194877
То, что панель не реагирует на нажатия экрана если связь с любым слейвом потеряна - это такая ее особенность, которая была и в панели СП270.
Для портов PLC и Download помогает удаление с экрана 65534 вызова системного окна о потери связи
25791
Для порта Ethernet возможно тоже поможет, не пробовал. Но в этом случае Вы не получите никакой информации о потере связи.
Или попробовать организовать опрос слейвов с помощь макроса на Си http://www.owen.ru/forum/showthread.php?t=23153
Попробовал и заменить шаблоны и организовал опросы с помощью макросов - два-три отваливания слэйва и связь уже не восстанавливается

приборист
11.01.2017, 09:40
Попробовал и заменить шаблоны и организовал опросы с помощью макросов - два-три отваливания слэйва и связь уже не восстанавливается


Добрый день!
Есть ли решение с проблемой восстановления связи?
Запускаю проект, там 3 ПЛК + СП310. Связь по TCP.
Заливаешь в любой ПЛК новую версию программы и панель уходит в жуткие тормоза..

Евгений Кислов
11.01.2017, 10:12
В момент заливки нового проекта связь, естественно, рвется, что и приводит к тормозам; после этого она должна восстановиться.
Если восстановления связи не происходит, то, возможно, дело в новой версии программы и настроек слэйва в ней.

DmitriiAnyushin
11.01.2017, 11:24
Добрый день!
Есть ли решение с проблемой восстановления связи?
Запускаю проект, там 3 ПЛК + СП310. Связь по TCP.
Заливаешь в любой ПЛК новую версию программы и панель уходит в жуткие тормоза..
Нет, версия ПО на сайте пока старая, а варианты как решить проблему не нашел. Нв данный момент использую RS232 для связи контроллера и панели

DmitriiAnyushin
11.01.2017, 11:26
В момент заливки нового проекта связь, естественно, рвется, что и приводит к тормозам; после этого она должна восстановиться.
Если восстановления связи не происходит, то, возможно, дело в новой версии программы и настроек слэйва в ней.
Восстановление происходит, но очень медленно (По RTU происходит мгновенно)

petera
11.01.2017, 12:18
Восстановление происходит, но очень медленно (По RTU происходит мгновенно)

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

приборист
19.01.2017, 22:13
В момент заливки нового проекта связь, естественно, рвется, что и приводит к тормозам; после этого она должна восстановиться.
Если восстановления связи не происходит, то, возможно, дело в новой версии программы и настроек слэйва в ней.
Дело не в новой версии программы, при подключении через CDS к контроллеру, который выдает на СП информацию - получаем зависание.


Панель здесь ни причем, это скорей всего глюк прошивки ПЛК110, однозначно. Потому, что если вместо ПЛК взять какой-либо компьютерный виртуальный слейв, то связь по TCP восстанавливается тоже мгновенно.
Ох как это прискорбно...
А у меня 3 плк подключены к панели (1 - старый, 2 - М02)
И честно говоря на меня криво смотрят когда я дергаю разъем чтобы поменять настройки.

Есть ли смысл менять прошивки на новые (в ПЛК)?

nick2015
15.07.2017, 07:45
Такая же история ! Связка СП310Р ( Мастер ) и ПЛК110-60

nick2015
15.07.2017, 07:54
Восстановление происходит, но очень медленно (По RTU происходит мгновенно)

У меня вообще не происходит восстановления по ModbusTCP



Передергиваешь питание на панели и все нормально !

Евгений Кислов
15.07.2017, 08:44
Попробуйте выставить следующие коммуникационные настройки:

Время ожидания - 20 мс
Таймаут - 10000 мс
Попыток - 10

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

nick2015
15.07.2017, 10:22
При таких настройках при отключении кабеля Ethernet , ошибка не вылазит и панель как бы зависает, но при этом если воткнуть кабель обратно работоспособность восстанавливается.

Aleksandr_P
24.08.2017, 06:35
Добрый день!
подскажите пожалуйста как реализовать связь по TCP между ПЛК160(slave) и СП310(master), используя при этом энергонезависимую память панели оператора для сохранения важных значений(WORD) и можно ли реализовать вообще. заранее спасибо!

Евгений Кислов
24.08.2017, 06:59
Добрый день!
подскажите пожалуйста как реализовать связь по TCP между ПЛК160(slave) и СП310(master), используя при этом энергонезависимую память панели оператора для сохранения важных значений(WORD) и можно ли реализовать вообще. заранее спасибо!

Добрый день. Да, это возможно - реализуйте обмен через элемент Функциональная область и копируйте данные из ПЛК в PFW регистры панели.

petera
24.08.2017, 10:41
Добрый день!
подскажите пожалуйста как реализовать связь по TCP между ПЛК160(slave) и СП310(master), используя при этом энергонезависимую память панели оператора для сохранения важных значений(WORD) и можно ли реализовать вообще. заранее спасибо!
Четыре года назад уже был подробный ответ, с картинками и примерами.
32799

32800