Параметры приводных проектов специально разнесены по нескольким местам. Во
первых, они разбиты по слоям или, иначе говоря, по месту применения: железо
(сервоусилитель) + NC + софт (PLC). Во вторых, так безопаснее: железо имеет
свои железные настройки, а все остальное и мягкое — располагает своими собственными "крутилками" и "показометрами".
Изображение: Beckhoff Automation
Тем не менее из ПЛК-проекта можно программно изменить любые
настройки любого слоя. Это не всегда очевидно, но добраться все-таки можно.
Железо
Я буду упрощать. Традиционно сервоусилитель разбит на три контура: контур
тока, контур скорости и контур положения. Первый контур опирается на физические
характеристики мотора и сервоусилителя. Второй и третий — это контуры, построенные вокруг тех или иных регуляторов скорости, положения, момента и тому подобное. Регуляторы типа ПИД, его модификации и возможно что-то экспериментальное.
Что и как они регулируют и чем управляют, попробуйте догадаться по их
названиям. После их настройки сервоусилитель готов принимать команды и крутить мотор в нужном направлении.
Унификация и абстракция
Моторы и сервоусилители бывают разные. А бывают не только моторы, но и просто исполнительные механизмы к
которым прилеплена обратная связь. И такую штуку тоже желательно
причесать под одну гребенку. В общем нам нужно абстрагироваться от конкретики исполнительного механизма. Поэтому дальше идет слой NC-сервиса. Он абстрагирует исполнительную систему так, что программе технологического процесса не нужно ничего знать о конкретике физических процессов в исполнительной системе. У NC есть свой набор
настроек.
Кроме собственныъ настроек у NC-системы есть свой собственный контур управления,
который может... делайте выводы сами:
Технологический процесс
Процессом управляет программа. Управление она делает с помощью исполнительных
механизмов. Получается, что программа дергает за ручки и кнопки слоя
абстракции NC. У программы есть какие-то свои пожелания, которые она
передает в слой NC.
Приводную часть настраивает "приводник" - специалист своего дела, а программы
пишет "программист" - он тоже специалист, но уже своего дела. Хорошо когда это один человек: сам
настроил, сам запрограммировал. Тем не менее, после тонкой настройки железа, эти настройки лучше
оставить в покое и больше не трогать. Правда бывает, что нужно и что-то
подкрутить программно.
Крутим параметры
Предположим, изменился коэффициент масштабирования энкодера
инкрементов-на-миллиметр. В лексиконе приводника - это Nc feed constant. На самом деле это настройка не слоя железа, а настройка слоя NC.
Такое смешение сделано для удобства: приводник настраивает все низко-уровневые и средне-уровневые параметры движения и железа в одном месте. Программист же может
управляет параметрами движения типа скорость-ускорение и подрегулировать
динамику через NC. Опять-таки удобно.
На картинке как раз кусок железа Drive Manager'a, где смешались в кучу слои:
Привод можно донастраивать через SoE, CoE и пр. В параметры NC можно залезть
через функциональные блоки типа MC_WriteParameter, предоставляемой библиотекой Tc2_MC2. Эти настройки не навсегда — при следущей загрузке параметры откатятся до значений
заданных в конфигурации. Так сделано для безопасности.
Список всех доступных настроек содержится в перечисляемом типе MC_AxisParameter. Его интересно полистать пару минут, вчитываясь в комментарии типа: (* new since 1/2012 *) или ...- available in Tc3 *) — история как она есть.
Чтобы как-то повлиять на значение параметров в конфигурации, можно при каждом старте ПЛК-программы задавать новые коэффициенты. Так и приходилось делать в TwinCAT 2. Теперь уже не обязательно — в TwinCAT 3
появились функции типа
MC_WriteParameterPersistent. Через них достаточно задать параметр один раз и его значение легко переживет
перезапуск ПЛК. При активации новой конфигурации, эти значения будут заменены
на значения из новой конфигурации.
Небольшой пример как пользоваться, но там и так все понятно:
No comments
Post a Comment
Note: Only a member of this blog may post a comment.