PDA

Просмотр полной версии : Постоянные обрывы связи в CODESYS при связи с ПЛК 110-60



AndreyS
13.03.2015, 22:39
Добрый день,

постоянные обрывы связи в CODESYS при связи с ПЛК 110-60, если в него загружена программа с большой конфигурацией.

для начала создал пустой проект, надобавлял нужные переменные (Modbus Master, Modbus Slave) в конфигуратор ПЛК 110-60 (М). PLC_PGR пока пустая.
Загружаю по Ethernet проект в контроллер, но на этапе загрузки config.dat выдается "Ошибка связи #0". Повторное подключение проходит без загрузки проекта, но связь практически сразу прерывается с той же самой ошибкой "Ошибка связи #0".

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

petera
14.03.2015, 03:37
Добрый день,

постоянные обрывы связи в CODESYS при связи с ПЛК 110-60, если в него загружена программа с большой конфигурацией.

для начала создал пустой проект, надобавлял нужные переменные (Modbus Master, Modbus Slave) в конфигуратор ПЛК 110-60 (М). PLC_PGR пока пустая.
Загружаю по Ethernet проект в контроллер, но на этапе загрузки config.dat выдается "Ошибка связи #0". Повторное подключение проходит без загрузки проекта, но связь практически сразу прерывается с той же самой ошибкой "Ошибка связи #0".

Эта ошибка уходит и связь перестает обрываться, если поудалять некоторое число переменных из конфигуратора ПЛК. Можно ли как-то решить эту проблему без удаления переменных из конфигуратора ПЛК? Прикладываю проект.
Попробуйте увеличить таймауты в настройках рабочего стола Проект-Опции-Рабочий стол
17149

ЗЫ. Посмотрел сам проект. Я думаю, что Вы сможете существенно уменьшить число переменных в конфигурации если используете в одном Slave сразу несколько портов, да и программа упростится т.к. ненужно будет в ней копировать данные между двумя Slave http://www.owen.ru/forum/showthread.php?t=14199&p=146969&viewfull=1#post146969
Конечно из Вашего проекта нельзя определить назначение переменных для каждого Slave т.к. нет имен или комментариев, но могу предположить, что
вместо Вашего варианта
17150
можно сделать так. Удалить второй слейв, а в первый слейв просто добавить порт RS-485-1
17151
или даже так
17152

AndreyS
14.03.2015, 14:59
Спасибо за советы. Попробовал увеличить таймауты в настройках рабочего стола Проект-Опции-Рабочий стол, но это никак не помогло. Все равно происходит обрыв связи.

По поводу того, чтобы объединить слейвы, то панели подключенные к rs485 и rs232 отображают практически полностью разную информацию и их объединение не даст какого-либо выигрыша в объеме конфигурации.
Большая часть переменных экспортируется через Modbus TCP, поэтому объединение их помогло бы уменьшить конфигурацию. Но тут разделение сделано сознательно, чтобы не делать доступными по Ethernet функции управления установкой. Все управление возможно только локально с панели.

Или все-таки существует возможность экспортировать только часть данных? В голову приходит такой вариант:
- сделать один Modbus Slave c адресом 1 и интерфейсом RS485_1. В нем экспортировать функции управления.
- сделать еще один Modbus Slave c адресом 2 и интерфейсами RS485_1 (использованный ранее) и Modbus TCP. В этот слейв добавить все общие переменные для мониторинга.

Но у меня по поводу такого варианта большие сомнения. Проект собирается, загружается, никаких ошибок. Работу пока еще не проверял, если оно заработает не вызовет ли это потом каких-нибудь неожиданных проблем в работе? Кто-нибудь так уже делал?

petera
14.03.2015, 19:31
По поводу того, чтобы объединить слейвы, то панели подключенные к rs485 и rs232 отображают практически полностью разную информацию и их объединение не даст какого-либо выигрыша в объеме конфигурации.
Значит оставьте Modbus Slave "settings panel" c RS232 таким как есть.
Теперь о

Большая часть переменных экспортируется через Modbus TCP, поэтому объединение их помогло бы уменьшить конфигурацию. Но тут разделение сделано сознательно, чтобы не делать доступными по Ethernet функции управления установкой. Все управление возможно только локально с панели.
Вы внимательно посмотрите на вариант "2. Вставить Modbus Slave в другой Modbus Slave" http://www.owen.ru/forum/showthread.php?t=14199&p=146969&viewfull=1#post146969
Тогда вместо, пришедшего в Вашу голову

- сделать один Modbus Slave c адресом 1 и интерфейсом RS485_1. В нем экспортировать функции управления.
- сделать еще один Modbus Slave c адресом 2 и интерфейсами RS485_1 (использованный ранее) и Modbus TCP. В этот слейв добавить все общие переменные для мониторинга.
Нужно в существующий Modbus Slave "user panel" с RS485-1 вставить целиком существующий третий Modbus Slave c TCP.
Из Modbus Slave "user panel" удалите те переменные, которые есть в Modbus Slave c TCP, т.к. переменные в Modbus Slave c TCP будут общими для мониторинга. Панели оператора "user panel" будут доступны все переменные из слейва с RS485-1 и все переменные из слейва с TCP, а вот мастеру, который подключен по TCP будут доступны только переменные из слейва c TCP, и к переменным, связанным с функциями управления он доступа не имеет.
Вставлять Slave c TCP можно в любое место Slave "user panel"
Например в начало
17155 17156
Тогда для панели "user panel" адреса регистров, которые общие для мониторинга (встроенного слейва), начинаются с нуля, а оставшиеся от старого варианта будут продолжением адресов регистров встроенного слейва.
Или можно Slave c TCP вставить в конец Slave "user panel"
17157 17158
Тогда для панели "user panel" адреса регистров, которые общие для мониторинга (встроенного слейва), будут продолжением адресов оставшихся от старого варианта.
В всех случаях адреса регистров, которые общие для мониторинга (встроенного слейва), для мастера TCP всегда начинаются с нуля.
На счет сомнений, вариант слейв в слейве работает без нареканий
ЗЫ. Вариант, рассматриваемый Вами

- сделать один Modbus Slave c адресом 1 и интерфейсом RS485_1. В нем экспортировать функции управления.
- сделать еще один Modbus Slave c адресом 2 и интерфейсами RS485_1 (использованный ранее) и Modbus TCP. В этот слейв добавить все общие переменные для мониторинга
Тоже будет работать, я часто делаю для связи с одной панелью в ПЛК несколько слейвов с разными адресами, но имеющие один и тот же интерфейс. Один использую для передачи в ПЛК хранимых в панели энергонезависимых параметров при включении питания (в замен ретайн переменных) это 130..150 регистров, а второй слейв для оперативных параметров и управления.

sergeykrylov
15.03.2015, 11:55
17168
видимо в этом проблема

lara197a
15.03.2015, 12:24
Как вариант, цикл ПЛК увеличьте.
Для связи с ПЛК лично я долгое время использовал изернет, но уже пару лет полностью перешел на USB.

AndreyS
25.03.2015, 15:03
Значит оставьте Modbus Slave "settings panel" c RS232 таким как есть.

ЗЫ. Вариант, рассматриваемый Вами

Тоже будет работать, я часто делаю для связи с одной панелью в ПЛК несколько слейвов с разными адресами, но имеющие один и тот же интерфейс. Один использую для передачи в ПЛК хранимых в панели энергонезависимых параметров при включении питания (в замен ретайн переменных) это 130..150 регистров, а второй слейв для оперативных параметров и управления.

спасибо еще раз за советы. К сожалению, вариант слейв в слейве не очень подходит. Заказчик любит на этапе ПНР понадобавлять входов-выходов или еще каких-нибудь переменных на экспорт в скаду. А это при варианте слейв в слейве приведет к сдвигу модбас адресов и придется панель переделывать или конфигурацию Modbus TCP. Поэтому выбрал вариант с двумя слейвами на одном интерфейсе.

Валенок
25.03.2015, 15:08
Заказчик любит..
У Вас ..-M. Наколотите резерва по паре кБ и всё.

petera
25.03.2015, 15:34
спасибо еще раз за советы. К сожалению, вариант слейв в слейве не очень подходит. Заказчик любит на этапе ПНР понадобавлять входов-выходов или еще каких-нибудь переменных на экспорт в скаду. А это при варианте слейв в слейве приведет к сдвигу модбас адресов и придется панель переделывать или конфигурацию Modbus TCP. Поэтому выбрал вариант с двумя слейвами на одном интерфейсе.
А кто Вас заставляет второй слейв вставлять в начало первого, вставляйте в самый конец. Я же соответствующие картинки в #4 посте привел для этого варианта, см."test_big_config_Слейв в слейве_2.pro (http://www.owen.ru/forum/attachment.php?attachmentid=17160&d=1426350892)" там же.

Olex007
09.04.2015, 11:21
Была подобная беда. И именно 110-60 и именно М. Хотя это просто совпадение :)

Лечение оказалось очень простым - развернули вилку компа в розетке. Как бабка пошептала.

Может это не Ваш случай, но может кому пригодится.