PDA

Просмотр полной версии : ПЛК210. Как управлять сервоприводом?



vapik
05.02.2022, 06:15
Добрый день.
Подскажите, как управлять сервоприводом (STEP/DIR) в контроллере ПЛК210 через быстрые выходы?
В ПЛК110M02 было прерывание по скоростному таймеру (в микросекундах), в этом контроллере частотой импульсов управлять нельзя, а минимальный таймер в размерности милисекунд.

medvedits
05.02.2022, 19:04
единственное что смог найти по сайту это
https://owen.ru/forum/showthread.php?t=22169&highlight=%F3%EF%F0%E0%E2%EB%E5%ED%E8%E5+%F1%E5%F0 %E2%EE
У Овен готовых решений нет, это был официальный ответ на почту и в скайпе. Даже примера, в котором можно гарантированно запустить управление серводвигателем они дать не смогли
насколько быстрый отклик нужен? может по rs485 стоит попробовать?

vapik
06.02.2022, 07:17
единственное что смог найти по сайту это
https://owen.ru/forum/showthread.php?t=22169&highlight=%F3%EF%F0%E0%E2%EB%E5%ED%E8%E5+%F1%E5%F0 %E2%EE
У Овен готовых решений нет, это был официальный ответ на почту и в скайпе. Даже примера, в котором можно гарантированно запустить управление серводвигателем они дать не смогли
насколько быстрый отклик нужен? может по rs485 стоит попробовать?

Вы мне ссылку скинули от ПЛК110, там все понятно, и доступ к PRU есть.
У нас же ПЛК210 с заявленной функцией быстрых выходов, но отсутствие возможности смены частоты сводит на нет само их функциональное предназначение.
Привод с сигналами STEP/DIR (CW/CCW).

IVM
06.02.2022, 12:48
Вы мне ссылку скинули от ПЛК110, там все понятно, и доступ к PRU есть.
У нас же ПЛК210 с заявленной функцией быстрых выходов, но отсутствие возможности смены частоты сводит на нет само их функциональное предназначение.
Привод с сигналами STEP/DIR (CW/CCW).

C ПЛК210 управлять этим драйвером не получится.

жекон
06.02.2022, 15:47
C ПЛК210 управлять этим драйвером не получится.
Тогда напрашивается вопрос, а на кой ляд тогда там быстрые выхода?

IVM
06.02.2022, 15:51
Тогда напрашивается вопрос, а на кой ляд тогда там быстрые выхода?
На перспективу. До реализации заложенных возможностей у разработчиков руки не дошли. ;)

Никита Заиграев
30.04.2022, 06:27
Задавался таким же вопросом, хочу на ПЛК200-03 сделать управление станком с интерполяцией по 2+1 осям. Единственный выход вижу в применении конвертера, который по сигналу с быстрых выходов будет генерировать импульсы STEP нужной частоты. От быстрых выходов есть 2 варианта снять информацию: через длину импульса ШИМ либо через число импульсов. Хорошо было бы тупо по RS-485, но боюсь за стабильность, желательная частота работы интерполятора 1 кГц, можно 100 Гц. Т.е. именно с этой частотой задание на частоту импульсов сервопривода нужно выдавать с железной стабильностью. Направление DIR задавать другим быстрым выходом в режиме битовой маски. Сам конвертер можно собрать на платке с атмегой или вообще ардуино, но нужны еще преобразователи уровней =24в/5в. Плюс ко всему, импульсы которые вырабатывает конверте, желательно подсчитывать через счетные входа ПЛК, чтобы точно понимать что и как у нас двигается, и по обратной связи управлять частотой. Вообще, нюансов много, но в целом задачка выполнимая.

Никита Заиграев
30.04.2022, 15:21
Весь день исследовал работу быстрых выходов и пришел к некоторым выводам. Генератор импульсов - совершенно бесполезная штука. Ума не приложу, где он может пригодиться, т.к. всё его преимущество - точная выдача заданного количества импульсов с заданной на этапе разработки частотой в разные моменты времени, нивелируется тем, что момент начала генерации не синхронизируется точно, нельзя запускать генерацию импульсов с каждым циклом, нельзя менять частоту этих импульсов. Лучше бы вместо количества импульсов ОВЕН сделал переменчивую частоту или период, с непрерывной генерацией этих импульсов, с возможностью их запрета/отключения. Ну да ладно. Вывод 2. Для задачи управления сервоприводами нам подойдёт ШИМ-генератор, который работает более-менее стабильно. Более того, приятно видеть его точность, 1 ед. = 5 мкс, и осциллограф это подтверждает. Если задать период импульсов в 10 мс, т.е. = периоду обсчета интерполятора, то задание длительности ШИМ-импульса осуществляется можно сказать напрямую в мкс, где 0 это 0, а 10000 это 10000 мкс = 10 мс = 100%. Для задачи управления сервоприводами нам понадобится конвертер ШИМ-STEP/DIR (CW/CCW), который придется придумать и сделать самим. Диапазон 0-10000 - это комфортный диапазон регулирования, который позволяет управлять приводом в обе стороны с высокой точностью. Скважность 50%, т.е. запись числа 5000 - это "0", т.е. отсутствие импульсов, привод стоит. Увеличение длительности импульса - это задание скорости в +, уменьшение длительности импульса - задание скорости в -. Можно предусмотреть зону нечувствительности +/-5...50 ед, т.е. микроконтроллер конвертера будет 100% стоять на месте (не выдавать импульсы STEP), если измеренная длительность импульса в пределах этой зоны. Т.о. получается диапазон +/-5000 ед. для задания скорости движения сервопривода в обе стороны, что весьма неплохо. Если нужно больше, придется задействовать второй выход DIR.

Никита Заиграев
30.04.2022, 15:22
Но есть пару моментов. 60530

Никита Заиграев
30.04.2022, 15:23
60531
60532

Никита Заиграев
30.04.2022, 15:36
В некоторые моменты записи нового значения ШИМ появляются "пички", что видно из осциллограмм. Красный канал - это просто циклическое изменение уровня с каждым циклом программы. Т.е. каждый фронт красного канала - это запуск программного цикла (или его окончание). Если уровень высокий, в длительность ШИМ записывается 6000, если уровень низкий - записывается 4000 ед(мкс). Цикл программы = 10 мс = 10000 мкс. Как видно, цикл программы не равен точно 10 мс, что связано с погрешностью тактового генератора процессора, тут хотелось бы большей точности или программной подстройки опорной частоты. В добавок на осциллографе часто проскакивает длительность цикла примерно в 150% от 10 мс, т.е. процессор занят какой-то другой задачей, и говорить что наша программа выполняется железно с частотой 100Гц не приходится. Всё это обуславливает необходимость обратной связи по положению, либо по реальному количеству импульсов, которые поступают на шаговый привод.

Никита Заиграев
30.04.2022, 15:45
Так вот про эти пички. Нельзя задавать слишком малое или слишком большое (близкое к 0 или 100%) задание на ШИМ (оно же задание на скорость, т.е. частоту генерации сигнала STEP), т.к. конвертер эти пички интерпретирует как задание на скорость. Значит, реально допустимый диапазон ШИМ можно сделать примерно +/-4000 ед. от 50%. Конвертер, измеряя длительность ШИМ, должен отбрасывать все задания, которые не укладываются в допустимый диапазон, а свой сторожевой таймер настроить на 2-3 периода ШИМ-сигнала. Хотелось бы узнать от специалистов ОВЕН, откуда берутся эти пички, и 2: как именно формируется ШИМ-сигнал в процессоре.. Есть подозрение что ШИМ-сигнал является симметричным, но это не точно. Можно ли избавиться от этих пичков, либо доработать прошивку ПЛК.

Никита Заиграев
30.04.2022, 16:05
Есть драйвера
http://www.giden.ru/primery-primeneniya-drajvera-shagovogo-dvigatelya-s-analogovym-vkhodom
с управлением от аналогового задания 0..5В, которое можно подавать от внешнего задающего устройства, либо от потенциометра. Было бы здорово иметь в ПЛК быстрый аналоговый выход, который сможет произвольно и быстро менять выходное напряжение каждый программный цикл (т.е.10 мс). Быстрый выход ШИМ можно превратить в аналоговый выход с помощью RC-цепочки, но это задержки, автоколебания и прочие нехорошие вещи, в добавок низкая точность регулирования.