PDA

Просмотр полной версии : Отклик ПЛК-110-60М



Sangre
13.11.2015, 15:25
Доброе время суток.

После 4 лет эксплуатации вдруг неожиданно был замечен интересный аспект работы контроллера. Точнее не только сейчас, но только сейчас этот вопрос стал более остро.
Вся суть в том, что отклик выходных элементов иногда происходит с задержкой около 1 секунды. Что в задачах позиционирования является довольно важным. У нас есть условный "лифт", положение которого по высоте определяет многооборотный потенциометр, прикреплённый к валу и выдающий на модуль 8АС сигнал 0-10В. В контроллер забиты координаты положений, при которых надо останавливаться. Для упрощения модуль 8АС выдаёт на контроллер сигнал 0-200 - диапазон датчика. И вот какую картину я наблюдаю: при координатах 65 и 85, границы положений смещены дополнительно на 2,5 пункта для ускорения срабатывания, то есть, 67,5 и 82,5. Условный "лифт" при этом может остановиться (скорость подачи не очень велика, преодолевает это расстояние за 6-7 секунд) в диапазоне 54-66 и 82-95, что по факту является 10 сантиметров разбега. Протокол обмена между приборами - ОВЕН RTU, протокол обмена с панелью оператора - ModBus RTU, время цикла по параметру Statistic - до 230 х 100мкс (23 млс, как я понимаю).

Вопрос простой: что я делаю не так, что такая ситуация возникает? Если понадобится специалисту для ответа взглянуть на программу, вышлю на почту.

Заранее спасибо за помощь.

Вольд
13.11.2015, 15:29
А панель у тебя Slave или Master ?

Sangre
13.11.2015, 15:42
Панель является для контроллера Master, а модули ввода/вывода Slave. То бишь, у меня есть список переменных обмена контроллера с панелью оператора, озаглавленная ModBus(Slave) в "Конфигурации ПЛК" и перечень для модулей ввода/вывода, с названием Owen (Master). Или я что-то путаю?

Sangre
13.11.2015, 15:51
Забыл добавить. Интерфейс на панель оператора RS-232 с протоколом ModBus-RTU, а на модули ввода/вывода RS-485 с протоколом Owen-RTU, при чём на модуль 8АС идёт канал 1, а на остальные модули канал 2.

Вольд
13.11.2015, 17:16
попробуй увеличить время цикла ПЛК.

Валенок
13.11.2015, 18:08
время цикла по параметру Statistic - до 230 х 100мкс
................

Yegor
13.11.2015, 18:35
Statistic - до 230 х 100мксТупо перегруз. Оптимизировать.

Sangre
16.11.2015, 09:50
Ребята! Читайте внимательно. Какой перегруз? Расчётное время цикла программы 23 миллисекунды в то время, как время цикла контроллера 1 секунда. По математическим расчётам, у меня за минимальное выставленное время цикла может пройти 40 циклов программы. То бишь этого мало? Я пишу о том, что меня время обсчёта 1 секунда не устраивает, так как при срабатывании порогового значения в середине программы, я получу отключение исполнительного механизма через 1,5-2 секунды. Это не есть правильно. Если я поставлю минимальное время цикла 2 секунды, то получу ещё больше. Контроллер совсем не подходит под работу для таких задач? Или есть секреты, которые не видны на первый взгляд?
Хочу услышать ответ от специалиста. Понятный для человека, который что-то упустил, а не из разряда "пффффф", как были выше.

Заранее спасибо!

petera
16.11.2015, 10:02
Ребята! Читайте внимательно. Какой перегруз? Расчётное время цикла программы 23 миллисекунды в то время, как время цикла контроллера 1 секунда. По математическим расчётам, у меня за минимальное выставленное время цикла может пройти 40 циклов программы. То бишь этого мало? Я пишу о том, что меня время обсчёта 1 секунда не устраивает, так как при срабатывании порогового значения в середине программы, я получу отключение исполнительного механизма через 1,5-2 секунды. Это не есть правильно. Если я поставлю минимальное время цикла 2 секунды, то получу ещё больше. Контроллер совсем не подходит под работу для таких задач? Или есть секреты, которые не видны на первый взгляд?
Хочу услышать ответ от специалиста. Понятный для человека, который что-то упустил, а не из разряда "пффффф", как были выше.

Заранее спасибо!
Если Вы задали мин.время цикла 1 секунда, то и программа Ваша выполняется 1 раз в секунду, 23 мс однократное выполнение программы остальное время контроллер "курит". И не о каких 40 циклов выполнения программы/ за секунду речи быть не может.

ЗЫ.
Вся суть в том, что отклик выходных элементов иногда происходит с задержкой около 1 секунды.
То, что хотели, то и получили.

Sangre
16.11.2015, 10:12
Значит, контроллер не подходит для подобных задач. Именно такой ответ я и жду - официального признания от производителя. Я прекрасно понимаю, что контроллер использует минимальное время цикла, а остальное время дежурит у сортира и умею считать, но контроллер конкретно ПЛК110 не может выставить минимальное время цикла меньше 1 секунды. Я не зря всё это описал. Я не выставляю претензий, но хочу услышать ответ производителя ибо у меня есть сомнения, возможно не контроллер не подходит, а я что-то делаю не так.

capzap
16.11.2015, 10:15
Значит, контроллер не подходит для подобных задач. Именно такой ответ я и жду - официального признания от производителя. Я прекрасно понимаю, что контроллер использует минимальное время цикла, а остальное время дежурит у сортира и умею считать, но контроллер конкретно ПЛК110 не может выставить минимальное время цикла меньше 1 секунды. Я не зря всё это описал. Я не выставляю претензий, но хочу услышать ответ производителя ибо у меня есть сомнения, возможно не контроллер не подходит, а я что-то делаю не так.

скрин покажите где Вы выставляете минимальное время, потому что диапазон начинается с 0 мс

petera
16.11.2015, 10:17
Значит, контроллер не подходит для подобных задач. Именно такой ответ я и жду - официального признания от производителя. Я прекрасно понимаю, что контроллер использует минимальное время цикла, а остальное время дежурит у сортира и умею считать, но контроллер конкретно ПЛК110 не может выставить минимальное время цикла меньше 1 секунды. Я не зря всё это описал. Я не выставляю претензий, но хочу услышать ответ производителя ибо у меня есть сомнения, возможно не контроллер не подходит, а я что-то делаю не так.
О чем это Вы? Мин. время цикла задается от 1 до 50 миллисекунд.
20838
http://www.owen.ru/forum/attachment.php?attachmentid=11962&d=1392751544

Вольд
16.11.2015, 10:21
контроллер конкретно ПЛК110 не может выставить минимальное время цикла меньше 1 секунды.

Ну насмешил. Твое место у сортира. :D Твои слова.

Sangre
16.11.2015, 10:21
Это минимальное время цикла, где-то встречал в описании, относится только к отдельно вызываемым блокам. Сейчас и так стоит 50. Я был не совсем прав, минимальное значение цикла фиксированное производителем - 1 мс. Тут я не прав.20839

Sangre
16.11.2015, 10:27
Но суть вопроса остаётся. Цикл у меня 23 мс, минимально выставлено 50 мс, максимально - 1 с. Почему такие задержки? Так как ваши ссылки на решение проблемы увеличением времени цикла уже не попадают.

Пост скриптум: давайте без срача, это не то место где его можно развести. Если кому-то утром в понедельник всё же хочется его устроить, то у меня указана почта, прошу туда.

capzap
16.11.2015, 10:33
Это минимальное время цикла, где-то встречал в описании, относится только к отдельно вызываемым блокам

нет такого ни в одном официальном описании, перечитайте еще раз документацию, чтоб у других не вызывало усмешку Ваши высказывания. Если код настолько не оптимизирован, что занимает целых 23мс, то придется выкладывать свой проект здесь, чтоб его можно было поправить кем то другим, потому что у Вас это точно не получится с такими то знаниями

Вольд
16.11.2015, 11:18
Пост скриптум: давайте без срача, это не то место где его можно развести. Если кому-то утром в понедельник всё же хочется его устроить, то у меня указана почта, прошу туда.

Срач, с утра пораньше, ты сам и устроил.

Yegor
16.11.2015, 11:29
То бишь этого мало?23 мс в стандартной конфигурации это признак торможения не только вашей программы, но и софтовой части сетевого стека. На похожей задаче (позиционирование штока гидроцилиндра) у меня цикл получается 1-2 мс. Конфигурация похожая: ПЛК160, датчик перемещения 4-20, цифровой тензоусилитель с проприетарным протоколом (по сложности как модбас, то есть очень простой), ПК оператора через Ethernet. Контроллер за 1 секунду успевает 200 раз считывать показания с тензоусилителя по RS-485, 50 раз отдавать результат на ПК по Modbus TCP и около 10 раз в секунду менять уставку скорости на карте управления гидроприводом (только потому что аналоговые выходы у ПЛК медленные). В случае чего врубает разгрузочный клапан так быстро, что оператор и глазом моргнуть не успевает. При этом в статистике я наблюдаю значение в пределах 20 единиц, т.е. 2 мс.

Не знаю, как часто народ тут идёт к спрашивающим за программой, но я ещё ни разу так не делал. Стесняетесь публиковать весь проект открыто? Считаете его слишком большим? Не беда — изолируйте проблемную часть в чистый проект и выкладывайте. Не можете изолировать с ходу и вообще не знаете, где проблема? Воспроизводите ключевые части по кусочкам и постоянно удостоверяйтесь, что всё работает. Или наоборот отключайте то да другое в существующем проекте, чтобы выяснить, откуда берётся задержка. Отключенное заменяйте загулшками-генераторами по необходимости. Как на stackoverflow говорят: "show your effort" — покажите, что уже попробовали сделать и продемонстрируйте усердие. Зачем специалистам с нуля в вашем проекте копаться, если он вам самому кажется достаточно серьёзным, чтобы его скрывать?

Дмитрий Артюховский
16.11.2015, 14:08
Время цикла выставляете - Вы ))) а контроллер может успеть, либо не успеть за это время, в зависимости от программы. Выставляемое стабильное время - от 1 мс. Так что просто внимательно почитайте руководство.

В задачах перемещения используется понятие "ДОТЯЖКА", когда основное расстояние проходится на большой скорости, а при приближении к финишу скорость понижают и останавливаются с минимальными выбегами.