PDA

Просмотр полной версии : Нестабильная работа ПЛК100



Инженер-Эл
12.03.2013, 10:22
Вопрос разработчикам.
В программе ПЛК выдает на выход импульс 1 мс (обычный модуль ТР), Обычно все стабильно и нестабильность импульса укладывается в 20%, но иногда импульс очень нестабилен
вот видео
http://files.mail.ru/857E6FB72B9B443CBB0A617B23BCE142
ширина импульса может меняться в несколько раз!

Из-за чего это может быть? Как от этого избавится?

drvlas
12.03.2013, 11:35
вот видео Пока грузится твое видео, позволю полюбопытствовать: какое в проекте Минимальное время цикла (МинВЦ)? В конфигураторе ПЛК на самом верху есть закладка "Параметры модуля".
Сейчас народ пришел к выводу (от которого ОВЕН и не отказывается, но старается делать вид, что такой проблемы нет): без специальной нужды никогда не следует выбирать ненулевое МинВЦ. Иначе говоря, хорошим тоном теперь можно считать следующее: создаешь проект, выбрал целевую платформу, зашел в настройку и поставил МинВЦ = 0.
Может поможет и с твоим импульсом :)

UPD: Ну да, вполне соотвеЙствует и видео. Если по каким-то причинам цикл ПЛК превышает твою 1 мс - то как можно гарантировать, что импульс сохранит свои параметры.
Посмотри в модуле Статистики свой реальный цикл. Можно создать "пиковый детектор", отлавливая наибольший из циклов. Будешь удивлен :)
Если не знаешь, как это сделать - спроси.

lara197a
12.03.2013, 13:12
При работе ПЛК, периодически время цикла может изменяться. В связи с этим время в 1мс может не выдерживаться. Вам можно использовать ПЛК 110 в режиме прерывания или увеличить время импульса, для более стабильной работы.
Для проверки введите время цикла из блока статистик в функцию, которая будет записывать максимальное значение.
Дайте контроллеру поработать некоторое время и посмотрите,что получите.
Время выполнения команды(к примеру включение выхода, по таймеру ТП) считайте как время циклах2. Столько же и на выключение.

Инженер-Эл
12.03.2013, 15:59
Так импульс может как удлинняться так и укорачиваться...
Всю программу стёр оставил блинк и ТР, все равно скачет. И всемя цикла 4 ставил, и на ТР 4 ставил, время цикла 1...
Чем он там занимается?
На верное не победить, такой ПЛК...

Инженер-Эл
12.03.2013, 16:05
>Иначе говоря, хорошим тоном теперь можно считать следующее: создаешь проект, выбрал целевую платформу, зашел в настройку и поставил МинВЦ = 0.

Это где? и почему 0?
Наверное там-же "Конфигурация ПЛК - параметры модуля" МинВЦ=1(или 2-5)?

Инженер-Эл
12.03.2013, 16:08
В общем поставил МинВЦ=1, ТР=4мс, скачет от 3 до 5. ну хоть не 7 и то хлеб...

drvlas
12.03.2013, 16:13
Это где? и почему 0?
Наверное там-же "Конфигурация ПЛК - параметры модуля" МинВЦ=1(или 2-5)?

8236

Подчеркиваю: никаких 1, 2 или 5 мс! Только ноль, вот наш девиз :)

lara197a
12.03.2013, 21:15
В общем поставил МинВЦ=1, ТР=4мс, скачет от 3 до 5. ну хоть не 7 и то хлеб...

Я же писал выше. Для расчета времени исполнения команды нужно время цикла умножить на 2.
У Вас 2 команды-включить выход и выключить.
Максимальное время будет; время цикла умножить на 4.
Для стабильной работы 1мс. Время цикла должно быть 0,250мс.

Евгений_Томск
12.03.2013, 21:17
Так импульс может как удлинняться так и укорачиваться...
Всю программу стёр оставил блинк и ТР, все равно скачет. И всемя цикла 4 ставил, и на ТР 4 ставил, время цикла 1...
Чем он там занимается?
На верное не победить, такой ПЛК...

Думаю всё Ок, он делает почти то,что сделал бы на его месте и другой контроллер при временах близких к времени цикла. Попробуйте вместо TP использовать текущее время в мкСек, заодно можно будет увидеть что и когда происходит.Или ШИМ для точности (правой кнопкой на дискретных выходах для добавления). Мин.время импульса аж в 10 раз меньше (100мкСек),правда период минимальный вроде 10сек (это как-то странно много).

drvlas
12.03.2013, 21:19
Для стабильной работы 1мс. Время цикла должно быть 0,250мс.Просвети: зачем? Зачем, при таком напряжном для ПЛК режиме, еще и искусственно создавать ему цикл размером 0,25 мс? Просто поясни, что мы этим добиваемся?

Инженер-Эл
14.03.2013, 07:41
8236
Подчеркиваю: никаких 1, 2 или 5 мс! Только ноль, вот наш девиз :)
Так и стояло 0 (наверное, по умолчанию 0? надо посмотреть...)
поставил 1 как-то стабильнее стало...

Основной глюк устройства был, наврное не из-за этого, но пока всё работает, не смотришь. А как глючит, посмотришь, ужаснёшься...
Если мне будет действительно важно 1мс или 2мс, то глючить будет....

drvlas
14.03.2013, 09:32
Основной глюк устройства был, наврное не из-за этого, но пока всё работает, не смотришьЯ смотрю, автор вопрос поставил, а ответ самому не интересен...
Еще раз: при программной генерации таких импульсов имеет значение время цикла. Посмотреть его можно с помощью модуля статистики. Тогда может стать более понятной вся картина. Улучшение от искусственного увеличения времени цикла - это нонсенс, что-то мы не до конца поняли. Но, если влом экспериментировать, то пусть так и будет.

Инженер-Эл
15.03.2013, 08:36
А ответа нету...
Причину столь резкого различия во времени импульса (на видео) я не услышал. После танцев с бубнами время импульса стало ровнее. Причина глюков моего проекта не в этом (надеюсь).
Упираться, искать, разбираться особо нет ни времени ни желания.
Положим закладку на память, что точность программно формируемого импульса +-1 цикл, т.е 2 цикла (если всё хорошо и ПЛК не начал опять глючить...)

Инженер-Эл
15.03.2013, 08:52
Я смотрю, автор вопрос поставил, а ответ самому не интересен...

Я имел ввиду, что когда всё работало, осциллографом на эти импульсы я не смотрел... Поэтому сравнить не смогу.

drvlas
15.03.2013, 10:37
Да нивапрос, если все устраивает. Просто есть в работе ПЛК интересный параметр МинВЦ, который плохо задокументирован и слабо понятен (не только мне, аматору, но и многим на форуме). Я думал, тут будет повод разобраться с ним. Но повода не нашлось. Ладноньки. Мне ЩАС тоже не до экспериментов. Оставляем as is.
Но мое (на сегодня) разумение этого вопроса состоит в следующем: в ПЛК организовано (системой исполнения или как там называют эту RTOS) циклическое выполнение задач. В простейшем случае - одной-единственной задачи PCL_PRG. Выполнив цикл (зависимый от самое программы пользователя), ОС выполняет также системные функции (тот же ввод-вывод) и может идти на повторный цикл. Вот здесь и включается МинВЦ: если его поставили в ноль, то ОС тут же бежит на новый цикл. И, как ни крути, все задачи отработки временнЫх объектов при этом будут самыми быстрыми. Да, генерация импульса 1 мс все равно может быть плохой - если реальное время цикла выбирается за пределы 1 мс, если в системе нет физически организованных тиков с меньшим временем. Но! Но я плохо представляю, чтобы ситуация могла улучшиться, если мы искусственно добавим в конце цикла ПЛК топтание на месте.
Собсно, я и надеялся это уточнить. Руками автора вопроса :)
А вообще, генерировать такой короткий импульс программно довольно стремно. Да еще в ПЛК с системой исполнения. Это не малютка МК, заточенный на задачу. Тут ребятки посурйознее :)

Инженер-Эл
15.03.2013, 21:50
У меня такое же представление, тем более, что это логично. Но вот судя по осциллограмме, ПЛК иногда чем-то занимается весьма долго более 4-х тактов... Нужно было это взять на цифровой осциллограф и померить точнее. Может быть будет оказия, посмотрю точнее, если удасться...