СЕРВОСИЛА Мотион Цонтроллер Упутство за употребу

SERVOSILA Motion Controller Instruction Manual

СЕРВОСИЛА-лого

СЕРВОСИЛА Мотион Цонтроллер

СЕРВОСИЛА-Мотион-Цонтроллер-продуцт

О Сервосила Мотион Цонтроллеру

Сервосила Мотион Цонтроллер је уграђени софтвер за контролу кретања модерних вишеосних роботских система. Софтвер ради на Линук-у, Виндовс-у или као фирмвер на уграђеним МЦУ-овима.СЕРВОСИЛА-Контролер покрета-сл.1

Сервосила Мотион Цонтроллер користи Г-код за следеће сврхе:

  • као начин да се дефинише геометрија координисаних кретања у текстуалном формату,
  • као комуникациони протокол високог нивоа између Мотион Цонтроллер-а и корисничких апликација вишег нивоа,
  • као једноставан скриптни језик за програмирање вишеосних роботских система,
  • као циљни језик за генеративну АИ и ЛЛМ.

Архитектура софтвера

Сервосила Мотион Цонтроллер, приказан као сива кутија на дијаграму архитектуре испод, ради као позадински процес у Линук-у или Виндовс-у. Процес комуницира са серво погонима преко ЦАН или УСБ мреже. Процес Мотион Цонтроллер обезбеђује интерфејс дељене меморије ниске латенције за међупроцесну комуникацију са једним апликационим процесом, приказаним као бели оквир на дијаграму. Да би се апстраховала сложеност интерфејса дељене меморије, динамички повезана библиотека под називом Сервопилот ДЛЛ је обезбеђена са Мотион Цонтроллером. „Танки“ ДЛЛ открива много једноставнији АПИ (у поређењу са интерфејсом дељене меморије) за подношење команди Г кода Контролору покрета и за примање телеметрије и информација о статусу назад. ДЛЛ АПИ је описан у овом документу.СЕРВОСИЛА-Контролер покрета-сл.2

Интерно, процес контролер покрета има цевовод 0 и цевовод 1 за примање команди Г-кода из апликационог процеса. Цевоводи су циклични бафери фиксне величине. Постоје два цевовода тако да два независна тока команди Г-кода могу да се извршавају паралелно ако је потребно. Када поднесе нову команду Г-кода, процес апликације може изабрати да дода команду једном или другом цевоводу или да замени команде у цевоводу новим скупом команди. Команде Г кода извршава виртуелна машина, интерна компонента процеса контроле кретања. Пошто се команде Г кода шаљу од стране процеса апликације у текстуалном облику, постоји интерни компајлер који преводи текст у интерни бинарни код који разуме виртуелна машина. Могуће је поднети једнолинијску команду Г-кода као и текст комплетног програма Г-кода. Компајлер обрађује текстове ред по ред и гура команде у цевоводе за извршење од стране виртуелне машине. Виртуелна машина обрађује цевоводе по принципу „први ушао, први изашао“ (ФИФО). Контролер покрета има конфигурабилну фреквенцију контролне петље (нпр. 500 Хз) која управља перформансама целог система контроле кретања. Један процес апликације је дозвољен да се прикључи само једном процесу контроле кретања. Могуће је покренути више процеса контроле покрета тако што ћете им доделити јединствене схаред_мемори_ид-ове. Сервопилот ДЛЛ АПИ није безбедан нити или поново улази. Апликациони програми могу бити написани на било ком програмском језику који подржава учитавање динамички повезаних библиотека (ДЛЛ). Типични избори су Ц++, Питхон, Ц#, МАТЛАБ и ЛабView.

Сервопилот ДЛЛ АПИ

Повезивање на Мотион Цонтроллер

  • ектерн “Ц” боол цоннецт(инт схаред_мемори_ид);
  • ектерн “Ц” боол дисцоннецт();

Цоннецт() функција повезује Сервопилот ДЛЛ са дељеним меморијским сегментом који се користи за међупроцесну комуникацију између процеса апликације и процеса контролера кретања. Процес контролер покрета има јединствени схаред_мемори_ид, унапред конфигурисани цео број. Функција узима овај ИД као једини аргумент. Функција враћа тачно ако је сегмент дељене меморије са датим идентификатором успешно повезан. Функција дисцоннецт() одваја Сервопилот ДЛЛ од сегмента дељене меморије. Позивање ове рутине на крају процеса пријаве је опционо.

Подношење команди Г-кода процесу Мотион Цонтроллер-а

  • ектерн “Ц” боол гцоде(цонст цхар* програм_тект);
  • ектерн “Ц” боол гцоде_реплаце(цонст цхар* програм_тект);
  • ектерн “Ц” боол изврши (цонст цхар* програм_тект);
  • ектерн “Ц” боол екецуте_реплаце(цонст цхар* програм_тект);

Функција гцоде() је гурнула команду Г-кода или више команди у цевоводе процеса контроле покрета. Све претходне команде Г-кода које су биле у цевоводима су сачуване. Цевовод је ФИФО циклични бафер. Нове команде се додају цевоводима који ће се извршити након што се изврше све претходне команде из цевовода. Функција не чека да се команде стварно изврше; само гура команде у цевоводе и враћа се. Функција гцоде_реплаце() прво брише све цевоводе, а затим гура нове команде у цевоводе за приоритетно извршење. Као резултат тога, контролер покрета прекида све покрете у току и одмах наставља са новим покретима дефинисаним новопримљеним командама Г-кода. Таква замена се може извршити са брзином фреквенције контролне петље, нпр. за управљање засновано на обртном моменту. Функција не чека да се нове команде стварно изврше. Функција екецуте() је иста као гцоде() осим што се позив функције враћа само када се изврше нове команде Г-кода. Имајте на уму да се све претходне команде које су већ биле у цевоводима прво извршавају. Адванtagе од екецуте() преко гцоде() је у једноставности тока контроле апликације. Недостатакtagе да позив екецуте() може зауставити процес апликације на дужи период, онолико времена колико је потребно да се изврше све команде Г-кода из свих цевовода. Функција екецуте_реплаце() је иста као функција гцоде_реплаце() осим што се позив функције враћа тек након што се изврше новопослате команде.

Брише цевовод претходних команди Г-кода Чека док се нове команде стварно не изврше, чиме се зауставља Процес пријаве
гцоде() бр бр
гцоде_реплаце() Да бр
изврши() бр Да
екецуте_реплаце() Да Да

Све функције враћају тачно ако су нове команде Г-кода успешно послате у цевоводе процеса контроле покрета за извршење.

Синхронизација процеса

  • ектерн “Ц” инт синцхронизе();

Функција синцхронизе() омогућава процесу апликације да сачека док процес контроле кретања не заврши извршавање свих претходно послатих команди Г-кода. Позив функције се зауставља док се сви цевоводи не испразне. Овај позив може зауставити процес апликације на дужи период, онолико времена колико је потребно да се изврше све команде Г кода из свих цевовода.

Управљање стањем процеса

  • ектерн “Ц” боол паусе();
  • ектерн “Ц” боол ресуме();
  • ектерн “Ц” боол ресет();
  • ектерн “Ц” инт гет_моде();

Ове функције управљају стањем процеса Мотион Цонтроллер. Функција паусе() привремено суспендује извршавање команди Г-кода од стране процеса контроле кретања. Ова функција се користи за паузирање рада роботског система. Операција се поново покреће помоћу позива ресуме().

Резултат а гет_моде() позив Одговарајући начин рада контролера покрета
0 ОФФ
1 ПАУСЕД
2 ГРЕШКА
3 РУННИНГ

Акес Телеметри

  • ектерн “Ц” дупли гет_акис_цурсор(инт акис_нумбер);
  • ектерн “Ц” дупли гет_акис_поситион(инт акис_нумбер);
  • ектерн “Ц” инт гет_акис_ворк_зоне_цоунт(инт акис_нумбер);
  • ектерн “Ц” инт гет_акис_фаулт_битс(инт акис_нумбер);
  • ектерн “Ц” боол ис_акис_онлине(инт акис_нумбер);

Функција гет_акис_цурсор() враћа ротирајућу или угаону референтну позицију коју контролер кретања преноси као наређену позицију оси у одређеном тренутку. Насупрот томе, гет_акис_поситион() враћа стварну телеметријску позицију осе, где се оса физички налази у датом тренутку. Пошто осе имају физичку инерцију, позиција виртуелне осе „курсора” програма Г-кода је обично испред стварне позиције физичке осе. Резултати и гет_акис_цурсор() и гет_акис_поситион() се враћају у милиметрима или степенима у зависности од типа осе (линеарне или ротационе). Функција гет_акис_ворк_зоне_цоунт() враћа позицију осе телеметрије у бројевима кодера. Функција гет_акис_фаулт_битс() враћа податке битова грешке примљене са осе путем телеметрије. Погледајте Референце уређаја вашег серво драјва за информације о томе како да протумачите враћену вредност. Нула (0) значи „Нема грешке“. Не-нула (!=0) значи неку врсту грешке у оси. Ис_акис_онлине() функција говори да ли серво контролер осовине емитује телеметрију на ЦАН или УСБ мрежу.

Exampле Апликација у Питхон-у

СЕРВОСИЛА-Контролер покрета-сл.3

Документи / Ресурси

PDF thumbnailКонтролер покрета
Instruction Manual · Motion Controller, Controller

Референце

Поставите питање

Use this section to ask about setup, compatibility, troubleshooting, or anything missing from this manual.

Поставите питање

Ask a question about setup, compatibility, troubleshooting, or anything missing from this manual.