Řízení polohy - DC servomotor Maxon - NI LabVIEW

Řízení polohy - DC servomotor Maxon - NI LabVIEW

Pro řešení úloh automatizace existuje v současné době celá řada prostředků. Doposud jsme se při řešení příkladů zabývali použitím PLC automatu a program zapisovali v programovacím jazyku reléových schémat.

Nyní si ukážeme, jak je možné řídit elektrický pohon realizovaný stejnosměrným servomotorkem prostřednictvím grafického programování v prostředí LabVIEW. Kromě samotného programu toto prostředí umožňuje i tvorbu uživatelského rozhraní.

DC servomotor a řídící jednotka

Řízení otáček a polohy natočení u DC motorů lze zajistit inkrementálním odměřováním IRC. Pro naši ukázkovou aplikaci řízení pohonu v uzavřené smyčce použijeme špičkový DC motor A-max22 (typ 110160) švýcarské firmy Maxon motor, který má již IRC implementován. Motor je k řídící jednotce připojen 10pinovým konektorem, sloužícím pro přenos signálů z odměřování, napájení enkodéru a napájení motoru.

Obr. 1: Konstrukce DC motorů s integrovaným magnetickým odměřováním – firma Maxon motor

Pro tento typ motoru byla vybrána řídící jednotka EPOS 24/1. Tu je možné s nadřazeným systémem (počítačem) propojit pomocí sériové linky RS232 (svorkovnice J2).

Obr. 2: Řídící jednotka EPOS 24/1

Pro základní nastavení je k řídící jednotce dodáváno uživatelské softwarové rozhraní. Zde najdeme také velice užitečnou funkci pro nalezení konstant PID regulátoru.

Obr. 3: Ukázka prostředí pro nastavení PI regulátoru rychlosti

Zadání

Úkolem je sestavit program v prostředí LabVIEW, pomocí něhož budeme moci řídit natočení servomotorku do požadované polohy v rámci 360° nebo vykonat určitý počet otáček, což převedeno na lineární pohyb znamená urazit danou vzdálenost.

Dále vypracujeme čelní panel umožňující sledování a zadávání požadované polohy, definování rychlostního profilu, sledování aktuálního odběru proudu a nastavení PID regulátoru.

Použití knihoven

Pro celou řadu rozličných aplikací existují již vypracované knihovny. Pro jednotky EPOS, včetně ukázkového programu, jsou k volnému stažení na webových stránkách firmy National Instruments.

Knihovny se kopírují do adresáře „instr.lib“ ve složce s instalací LabVIEW.

Bloky pro tvorbu programu potom najdeme v nabídce „Instrument I/O → „Instrument Drivers“ → „maxon EPOS“.

Obr. 4: Knihovny instrukcí pro jednotky Maxon EPOS

Podprogramy „Init“ a „Close“

Importované knihovny obsahují již vypracované SubVI (podprogramy), pomocí nichž lze programový řetězec snadno sestavit.

Program začneme využitím SubVI „Init“ pro inicializaci připojené jednotky.

SubVI „InitializeDlg.vi“ potom obsahuje přístup k zařízení pomoví VI „Open Device“.

Program bude ukončen SubVI „Close“, který obsahuje další SubVI „Close“ který je tvořen VI „Close Device“.

Obr. 5: Struktura programu

Mezi SubVI „Init“ a „Close“ vytvoříme smyčku „While Loop“, do které umístíme programovou strukturu „Stacked Sequence“, ve které vytvoříme čtyři programové sekvence:

  • frame 0 – zadávání požadované polohy a čtení aktuální polohy, rychlosti a proudu

  • frame 1 – nastavení PID regulátorů

  • frame 2 – povolení pohybu

  • frame 3 – nastavení jednotky

Obr. 6: Rámec „0“ - poloha, rychlost a proud

Pro zadání požadovaných hodnot rychlostního profilu použijeme VI „Set Position“. Jedná se o cluster o třech prvcích (rychlost, akcelerace, deakcelerace).

Pro zadání požadované polohy potom použijeme VI „Move To“. Abychom mohli zadávat hodnotu ve stupních, vydělíme tuto hodnotu konstantou k = (360°)/2048 = 0,17578125.

Pro zadání hodnoty číslem nebo pomocí slideru je použita struktura „Case Structure“, přičemž změna zadávacího prvku je realizována fukncí „Property Node“ → „Visible“.

VI „GET ----“ slouží pro získání potřebných hodnot, které zobrazíme v grafu.

Programy vždy umístíme do „Case Structure“ a na výběrový terminál přivedeme signál chybové cesty.

Obr. 7: Rámec pro výběr nastavení úhlu natočení

V případě chyby jsou vstupní data připojena přímo k lokálním proměnným „Axis“ a „Error“.

Obr. 8: Prvky čelního panelu

Rámec „1“ - PID regulátory

Konstanty regulátorů (polohového, rychlostního a proudového) nastavíme pomocí VI „Set ---“ → jedná se o cluster o třech (pro polohu) nebo dvou prvcích (pro rychlost a proud).

Obr. 9: Rámec „1“ - PID regulátory

Rámec „2“ – povolení pohybu

V dalším rámci vytvoříme povolení pohybu, kdy tedy můžeme změnit polohu.

Stav povolení ošetříme čekáním po dobu 1ms pomocí struktury „Event Structure“.

Obr. 10: Rámec „2“ – povolení pohybu

Rámec „3“ – nastavení jednotky

Obr. 11: Rámec „3“ – nastavení jednotky

Čelní panel

Pro tvorbu čelních panelů existuje v prostředí LabVIEW nespočet prvků a různých nastavení.

Nejširší okno s červeným grafem reprezentuje polohu, modrý graf rychlost a zelený graf proud odebíraný servomotorem.

Malé okno umístěné vpravo nahoře slouží k nastavení pozice, resp. natočení hřídele, a to buď posuvníkem nebo zadáním v přesné číselné hodnotě ve °.

Obr. 12: Čelní panel

Zdroje

Obrázky

Videa

  • Archiv autora
Otestuj se

Co rozumíme pod pojmem inkrementální rotační odměřování (IRC)?

O jakém motoru hovoříme ve spojitosti se servomotory? Co musí takový motor umožňovat?

Praktická ukázka

Následující videoukázka prezentuje úlohu řízení robotické ruky sestavené ze stavebnice LEGO Mindstorms EV3.

Pro správné natočení jednotlivých kloubů je nutné použití servomotorků s odměřováním, které poskytne řídícímu systému informaci o aktuální poloze a rychlosti pohybu.

Obr. 13: Robotická ruka sestavená ze stavebnice LEGO Mindstorms EV3

This div will be replaced by the JW Player.

Řízení robotické ruky sestavené ze stavebnice LEGO Mindstorms EV3