четверг, 11 июля 2013 г.

О сколько нам открытий чудных... готовит Velleman K8096

Стоило только обзавестись осциллографом...

В общем, имеет место полношаговый режим работы вместо полушагового (программисты решили упростить себе жизнь, хотя схема этого контроллера позволяет использовать и полушаговый режим) и, вдобавок, имеет место большая нестабильность частоты импульсов, тактирующих драйвер (микросхему, формирующую управляющие напряжения для обмоток шагового двигателя), чему виной «кривая» прошивка PIC-процессора. Теперь понятно, что именно воспринималось на слух как некий резонансный призвук при работе шагового двигателя. 



Попросил техподдержку Velleman прокомментировать этот видеоролик (на форуме поддержки), но они (в лучших своих традициях) это проигнорировали. Так что пришлось комментировать самому.

На минимальной скорости (частоте) эта нестабильность прекрасно видна визуально в пределах развертки
Осциллограмма достаточно сильно удивляет: здесь задана постоянная частота вращения, которая периодически гуляет на +/-2% (цифровые данные указаны для видео). Теоретически можно предположить, что это происходит в моменты обмена данными межу контроллером и программой (через API DLL). А это свидетельствует либо об одной из проблем, либо об их сочетании: нехватка процессорной мощности у PIC-процессора; плохое качество кода прошивки контроллера; плохой протокол управления; плохая реализация протокола управления. Что отнюдь не делает чести компании Velleman, скорее наоборот.

Выводы из всего увиденного получились следующие:

1) Инструментально подтвержден ранее сделанный эмпирический вывод о том, что K8096 «"затачивали" под шаговые двигатели с постоянными магнитами (как с редуктором, так и без; шаг ротора там 7,5° против 1,8°/0,9° у биполярных NEMA-совместимых)». Собственно, даже не затачивали, а просто не проверяли, судя по всему, ни с чем другим, кроме номенклатуры из трех моделей ШД, продаваемых компанией Velleman. Помимо не слишком хорошего для двигателей с шагом ротора 1,8°/0,9° полношагового режима работы микросхемы драйвера (из-за влияния собственного механического резонанса такого двигателя на точность его работы), имеет место нестабильность частоты импульсов управления, достигающая (в данном видеоролике) 4%. А если учесть, что 1% нестабильности при 200 шагах на оборот равен 2 шагам, то мы получаем ошибку, достигающую 8 шагов (+/-4 шага)! И если в установившемся режиме вращения это никак не сказывается на работе, то вот с точностью возврата в точку старта и с единичными шагами будут возникать как раз те самые нерегулярные проблемы точности управления (странные подергивания и пропуски), о которых я упоминал раньше и от которых так старательно открещивалась техническая поддержка Velleman (кстати, они так и не прокомментировали ни осциллограмму, ни видео). Таким образом, использовать K8096 можно только с редукторными шаговыми двигателями на постоянных магнитах, причем желателен угловой шаг ротора не менее 5°.

2) Несмотря на относительно неплохую схемотехнику контроллера K8096, стараниями программистов, писавших код для PIC-процессора контроллера, получилась недешевая игрушка с весьма ограниченной применимостью, почти всухую проигрывающая промышленным контроллерам, даже несмотря на разницу в цене (поскольку контроллер K8096 дополнительно требует самостоятельной сборки). Контроллер на базе Arduino/Freeduino вполне может оказаться и более качественным, и более экономичным решением (учитывая личное время, требующееся для отладки).

3) Техподдержка Velleman, как в итоге оказалось, имеет привычку нагло врать (а временами может и откровенно хамить).

4) В 4-канальном контроллере K8097 тоже используется полношаговый режим. Что там со стабильностью я доподлинно не знаю, но могу с большой долей вероятности предположить, что там все точно так же плохо (код писался, скорее всего, в одно и то же время, поскольку API один и тот же).

ps. Ну да, без осциллографа – никуда. Это давно известно.

Комментариев нет:

Отправить комментарий

Ваш комментарий откроется после проверки и подтверждения.
Благодарю за понимание необходимости проверки!