Ří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