July 1, 2020

Параметры NC осей

Параметры приводных проектов специально разнесены по нескольким местам. Во первых, они разбиты по слоям или, иначе говоря, по месту применения: железо (сервоусилитель) + 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.