PDA

Просмотр полной версии : Отваливается Модбас



@ND
09.08.2015, 06:12
Панелью СПК110 опрашиваю 4 модуля.
После прогрузки контроллера все работает нормально в течении 10-15 минут, затем ModbusGenericSlave переходит в состояние "Не запущен"

При этом обмен по интерфесу идёт корректный, а теги все замораживаются.
Что делать? Где копнуть?

capzap
09.08.2015, 07:49
а где предварительная работа? Как себя ведет с тремя модулями, с двумя, с одним?
Где полная информация, какая прошивка, какая версия среды, в конце концов какая ОС?

@ND
09.08.2015, 08:10
Прошивка СПК: 3.939
Версия КДС: 3.5 SP5
OS: XP SP3

С модулями сейчас поиграюсь.

capzap
09.08.2015, 08:35
если избавитесь от %XX в ПОУ будет намного легче. Смените, как на картинке пример, всё что берется из слейвов в Вашем PLC_PRG я думаю проблема исчезнет

@ND
09.08.2015, 09:06
Когда опрашиваю 3 модуля А1, А2, А3 проблем нет.
Как только добавляю А4, работает опрос максимум 15 минут

@ND
09.08.2015, 09:09
если избавитесь от %XX в ПОУ будет намного легче. Смените, как на картинке пример, всё что берется из слейвов в Вашем PLC_PRG я думаю проблема исчезнет

Что значит легче?
Я хочу понять природу этого явления.
Документация не запрещает мне пользоваться %ХХ, мне так удобнее.

capzap
09.08.2015, 09:11
четвертый модуль это где больше всего регистров опрашивается, увеличте период опроса, возможно со временем набегают задержки и запросы накладываются друг на друга

capzap
09.08.2015, 09:13
Что значит легче?
Я хочу понять природу этого явления.
Документация не запрещает мне пользоваться %ХХ, мне так удобнее.

есть в КДС такая особенность, что если слейвом ни кто не пользуется он рвет сним соедиение, возможно обращение напрямую к области вводов/выводов не считается использованием, у нас принято именовать каналы

@ND
09.08.2015, 09:13
Я пробовал увеличивать на всех 4х модулях опрос со 100мс до 200 мс, всё равно отваливается.

capzap
09.08.2015, 09:15
... мне так удобнее.

а в чем удобство, я Вам предложил избавиться от лишнего кода в ПОУ, а Вы сопротивляетесь?

@ND
09.08.2015, 09:15
есть в КДС такая особенность, что если слейвом ни кто не пользуется он рвет сним соедиение, возможно обращение напрямую к области вводов/выводов не считается использованием, у нас принято именовать каналы

Когда я опрашивал 3 модуля ничего не отваливается.

@ND
09.08.2015, 09:18
а в чем удобство, я Вам предложил избавиться от лишнего кода в ПОУ, а Вы сопротивляетесь?

Текст ПОУ у меня генерит скрипт. А по вашему варианту нужно много движений мышкой/клавой делать.

capzap
09.08.2015, 09:19
я и написал возможно
по мне так лучше перейти на библиотечный вариант опроса модулей, тогда уж точно проблем не должно возникнуть если всё правильно организовать

capzap
09.08.2015, 09:21
Текст ПОУ у меня генерит скрипт. А по вашему варианту нужно много движений мышкой/клавой делать.
без коментариев

@ND
09.08.2015, 09:52
есть в КДС такая особенность, что если слейвом ни кто не пользуется он рвет сним соедиение, возможно обращение напрямую к области вводов/выводов не считается использованием, у нас принято именовать каналы

Если принято именовать каналы, зачем тогда вообще реализована возможность обращаться к памяти ввода/вывода напрямую?
На сколько я понимаю, именовать каналы, это не обязательное условие?

@ND
09.08.2015, 10:48
С 3мя модулями всё же тоже отвалился опрос, через 30 мин.
Видимо действительно, обращение напрямую к области вводов/выводов не считается использованием, и прекращается переброс данных с телеграмм на область памяти ввода/вывода.

Интересно, а можно отключить как то это автоматическое отключение?

@ND
10.08.2015, 07:53
Хотя нет, увеличил время цикла опроса аналоговых модулей до 1 сек. И вот, связь держится уже 4 часа.
Природа явления перехода ModbusGenericSerialSlave в статус "Не запущен" так и осталась не понятна.

В журнале СПК ничего не фиксируется.
Как узнать причину смены статуса?
Может есть ещё какие-нибудь логи?

Эдуард_Н
10.08.2015, 10:30
Хотя нет, увеличил время цикла опроса аналоговых модулей до 1 сек. И вот, связь держится уже 2 часа.

Где время цикла опроса в КДС регулируется?

@ND
10.08.2015, 11:01
Вот здесь:

Nts
10.08.2015, 13:05
Как показывает опыт-модуль 8А не очень хорошо работает в протоколе Modbus RTU на высоких скоростях обмена(меньше времени вычисления канала самого модуля-по дефолту-500мс).
Бывает модбас мастер выдает ошибку- слейв не ответил (можно конечно увеличивать время таймаута,но это не выход-другие модули начнут отваливаться)
Как выход-увеличить время опроса самих каналов 8А.И делать ручной пересброс связи(автоматический перезапуск мне не понравился,не всегда качественно пересбрасывает)
На данный момент,я отказался от СПК как контроллера (именно из-за такой работы 8А модуля) и использую связку ПЛК-СПК.8А модуль хорошо работает в протоколе Modbus ASCII(во всяком случае нет ошибок даже при периоде опроса 50мс).Да и СПК легче будет визуализацию прорисовывать-разгружается процессор от основного кода программы(актуально для средних и больших программ).И если есть физические кнопки-можно их напрямую завести на входа ПЛК-время реакции на нажатие будет адекватной(меньше 100мс)
П.с. еще можно увеличить время между фреймами 20-30мс .

Валенок
10.08.2015, 14:07
Как показывает опыт-модуль 8А не очень хорошо работает в протоколе Modbus RT .
Как показывает Ваш опыт.
Проблемы обмена в 99% - это проблема мастера.
8А на RTU 38400 8N1 можно опрашивать сразу все(48регистов) за 32-35мс вообще без ошибок. Только такая скорость нафик не нужна

@ND
10.08.2015, 14:09
Как показывает опыт-модуль 8А не очень хорошо работает в протоколе Modbus RTU на высоких скоростях обмена(меньше времени вычисления канала самого модуля-по дефолту-500мс).
Бывает модбас мастер выдает ошибку- слейв не ответил (можно конечно увеличивать время таймаута,но это не выход-другие модули начнут отваливаться)
Как выход-увеличить время опроса самих каналов 8А.И делать ручной пересброс связи(автоматический перезапуск мне не понравился,не всегда качественно пересбрасывает)
На данный момент,я отказался от СПК как контроллера (именно из-за такой работы 8А модуля) и использую связку ПЛК-СПК.8А модуль хорошо работает в протоколе Modbus ASCII(во всяком случае нет ошибок даже при периоде опроса 50мс).Да и СПК легче будет визуализацию прорисовывать-разгружается процессор от основного кода программы(актуально для средних и больших программ).И если есть физические кнопки-можно их напрямую завести на входа ПЛК-время реакции на нажатие будет адекватной(меньше 100мс)
П.с. еще можно увеличить время между фреймами 20-30мс .

В моей ситуации когда ModbusGenericSerialSlave уходит в статус "не запущен", реально то опрос в порту продолжается, я вижу как СПК шлёт телеграммы и как 8А отвечает и не только он, а все модули, причём корректно.
Это как мне кажется проблема в библиотеке Modbus slave.

Nts
10.08.2015, 16:21
Естественно мой,не Ваш же.
опрашивать и на 9600 можно,только вот иногда есть причины,когда нужна большая скорость.
с 8А вообще скорость больше скорости измерения не нужна.