PDA

Просмотр полной версии : Ограничение на количество переменных в мастер сети



Papagun78
17.08.2015, 20:42
Здравствуйте.
Проблема такова: есть работающая АСУ ТП на ПЛК ОВЕН 110-32-М, в ней 5 частотников, 2 контроллера другого производителя, и 15 модулей ввода/вывода ОВЕН. Всё это подключено по RS485. Но 5 частотников и 2 контроллера подключены напрямую в мастер сеть ОВЕН, а остальные устройства обслуживаются при помощи OPC Lectus и модулей ЕКОН. Конструкция эта на поверку оказалась очень ненадёжной, или лектус отказывает или ЕКОНы. Я попытался объединить их всех в одну мастер сеть, как положено. Лектус брал из контроллера данные и писал в него в слейв сети. Все теги из слейв сетей были перенесены в одну мастер сеть с сохранением имён переменных, логика не менялась, только конфигурация сети. Слейв сети были удалены. Соответственно был протянут новый сетевой кабель шиной к каждому устройству. При попытке загрузить модифицированную программу в контроллер ОВЕН, последний ведёт себя неадекватно: иногда перегружается, иногда виснет, но в каждом случае CoDeSys выдаёт ошибку связи #0, соединение потеряно.
Опытным путём удалось выяснить, что виной всему количество тегов в мастер сети. При достижении их количества 112 происходят все вышеописанные вещи, но если тегов 111 или менее - то всё в порядке, контроллер ведёт себя нормально, загружается и стартует. Причём дело именно в количестве тегов, а не в количестве устройств в сети. Удалял в случайном порядке разные устройства с разным количеством тегов внутри, значение имеет только общее количество тегов. Скорость обмена данными в сети тоже не имеет значения. Начальные настройки 19200, менял на 115200 - результат тот же - 111 тегов.

Прошу помощи от опытных программистов ОВЕН или от службы поддержки!!! Действительно ли есть такое ограничение? Если нет - то что происходит с моим контроллером? Если да - то как можно его обойти или что посоветуете?

lara197a
17.08.2015, 21:03
я бы разнес пч и модули на разные интнрфейсы. к примеру пч к rs485
а модули через rs232через ас3
скорость модулей 115200
а у пч в лучшем случае 38400.
в каждом мастере меньше тегов.
увеличьте время цикла плк.
запись переменных сделайте по изменению, а чтение по времени.

Валенок
17.08.2015, 22:12
А я б все повесил на 485 ПЛК-мастера, а его TCP-слейв отдал бы наверх
И время цикла как обычно - 0 ))

murdemon
17.08.2015, 22:58
Обойти можно используя библиотеку и напрямую работая с последовательным портом по modbus...

Филоненко Владислав
18.08.2015, 13:07
1. Вы именовали переменные в modBus master?
1а. Суммарный заданный поток данных по интерфейсу 485 меньше его пропускной способности или как обычно?
2. Что ещё есть в конфигурации?
3. Используется ли куча?
4. Выложите лог гипертерминала (кабель без перемычки), возможно просто кончилась ОЗУ.

P.S. И таки да, конфигурация не предназначена для замены SCADA-систем. Для сложных случаев используйте библиотеки.

Papagun78
24.08.2015, 11:58
1. Вы именовали переменные в modBus master?
1а. Суммарный заданный поток данных по интерфейсу 485 меньше его пропускной способности или как обычно?
2. Что ещё есть в конфигурации?
3. Используется ли куча?
4. Выложите лог гипертерминала (кабель без перемычки), возможно просто кончилась ОЗУ.

P.S. И таки да, конфигурация не предназначена для замены SCADA-систем. Для сложных случаев используйте библиотеки.

1. Да именовал.
1а. 149 переменных, больше ничего не могу сказать.
2. 5 частотников и 2 коммуникационных процессора SIEMENS.
3. Что это?
4. Лог не снимал, сейчас уже далеко от контроллера.

P.S. для SCADA-системы используется слейв по Ethernet, всё что было положено в мастер сеть - всё это периферия.

Papagun78
24.08.2015, 12:08
Да! И ещё одно. Как я понял, самое оптимальное решение случившегося затруднения - это опрос модулей напрямую из программы при помощи библиотеки. По этому поводу есть несколько уточнений:
1. Нет ли в таком случае каких-либо ограничений?
2. Какую библиотеку для этого использовать? Какую функцию? Желательно рабочий пример, ну или описание поподробнее. (в сети нашёл только примеры считывания с различных устройств, а нужна и запись) CoDeSys 2.3