Příklad řízení krokových motorů 2

V těchto příkladech je ukázáno možné řešení, jak připojit krokový motor k automatu. Motor je připojen přes inteligentní budič na jeden (jen pulsy) nebo dva (pulsy a směr) výstupy automatu. Spuštění a zastavení motoru se provádí dvěma tlačítky, připojenými na vstupy X0 a X1.

 

Příklady jsou v základu nastaveny na nízké výstupní frekvence. Jejich činnost lze pozorovat i okem na kontrolkách výstupů automatu bez připojeného motoru. Při použití skutečného motoru je vhodné tyto hodnoty nastavit na maximum použitého motoru případně budiče. Pozor na omezení dané použitým typem automatu.

 Příklad je psán pro automat FBs 10MAT. Funguje na jakémkoli automatu Fatek řady FBs. Podle typu automatu (rychlosti použitého výstupu) je omezena maximální použitelná frekvence výstupních pulsů.

V tomto příkladu je ke generování pulsů pro motor použita HW jednotka PSO pro NC polohování, kterou obsahuje logické pole automatu. Obsluhuje ji instrukce HSPSO a podpůrná  MPARA používající vlastní jednoduchý programovací jazyk. Motor je připojen jen na jeden výstup automatu (Y0). Směru otáčení zde není realizován. Motor se spustí při vzestupné hraně vstupu X0 a zastaví při vzestupné hraně X1. Výstupní frekvenci lze ovládat pomocí registru R0 v rozmezí 1 – 10 000 Hz (pro řadu automatů FBs xxMAT). Zastavení i rozběh je s rampou.

           

Jednotku NC polohování PSO0 je nutné v menu Project / IO Configuration / Output  Setup inicializovat a přiřadit jí fyzické výstupy automatu pro pulsy a směr. V tomto příkladu není  použit smysl otáčení, proto je pro výstup jednotky PSO0 použit jen Y0 s významem  pulsů.

 

Program začíná inicializací registru DR0, který má opět  význam rychlosti motoru resp. frekvence v [Hz]. Po startu je do něj zapsána hodnota 10 (Hz). Pozor, v tomto případě se jedná o 32 bitovou hodnotu double word DR0, instrukce MOV má příznak D.

V další síti je nastaven speciální bit M1991 na log. 1, což způsobí zastavování motoru po rampě i v případě přerušení kroku pohybu (viz. dále).

V sítích N7 a N8 je vstupy X0 a X1 ovládán bit M100, který dále povoluje generování pulsů pro motor. Při vzestupné hraně X0 nebo po startu se bit M100 nuluje, při vzestupné hraně vstupu X1 se nastaví.

V síti N11 je definována adresa začátku (R2000) tabulky parametrů pro jednotku PSO0 NC polohování. Tato instrukce říká, že od adresy R2000 je tabulka, ve které jsou parametry upřesňující chování jednotky PSO0.

Síť N13 pak obsahuje vlastní instrukci HSPSO, která řídí činnost PSO0. Je-li M100 v log.1, začne se vykonávat NC program uložený v tabulce začínající od adresy R5000. Instrukce používá jako pracovní oblast registrů od adresy R1000. Aktivitu (pohyb) indikuje výstupní bit ACT, poruchu  výstup ERR a ukončení NC programu pak výstupní bit DN.

Pro správnou činnost programu je od adresy R2000 nadefinována tabulka „step_param“ obsahující nastavení parametrů jednotky PSO0. Tabulku lze otevřít v menu Project / Servo Parameter Table. Pro tento příklad je zajímavých několik parametrů.

  • Max. Speed – maximální rychlost resp. frevence. Zde je nastavena na 40 Hz pro pokusy s automatem bez motoru. Při použití skutečného motoru je vhodné tuto hodnotu nastavit na maximum použitého motoru případně budiče. Pozor na omezení dané použitým typem automatu.
  • Acc/Dec Time – sklon rozběhové a doběhové rampy. Je vztažen k parametru Max. Speed. V tomto případě je tedy sklon takový, že na max. frekvence 40 Hz se dosáhne po 5 sekundách
  • Dec Time – sklon doběhové rampy. V případě, že je zde hodnota 0, je rozběhová a doběhová rampa shodná odpovídající předchozímu parametru. Je-li zde nenulová hodnota, jedná se o platnou hodnotu doběhové rampy. Čas se opět vztahuje k parametru Max. Speed

V tabulce „step_program“ na adrese R5000 je definován vlastní program pro instrukci HSPSO v síti N13. Tabulku lze otevřít v menu Project / Servo Program Table.  Program obsahuje jeden jediný krok a to jízdu rychlostí DR0 (SPD = R0), v relativních souřadnicích kladným směrem (DRV ADR,+) nekonečně dlouhou dráhu (0), jednotky pulsy (Ps). Po vykonání tohoto kroku (který nikdy v tomto případě nikdy neskončí) následuje konec (MEND).

Jazyk a instrukce subsystému NC polohování tvoří poměrně mocný a také složitý nástroj. Bližší informace lze získat v druhém dílu manuálu v kapitole 13. Cílem tohoto příkladu jej jen předvést jeho možné použití.

Po startu programu se nastaví registr rychlosti DR0 na 10 Hz. Tlačítky připojenými na X0 a X1 nebo přímým zápisem do M100 lze spouštět a zastavovat motor. Rychlost lze měnit zápisem požadované hodnoty do DR0. K tomuto účelu je připravena následující Status Page. Rychlost lze měnit i za běhu motoru. Při zápisu neplatné hodnoty rychlosti do DR0 za běhu se generuje frekvence poslední platná. Při zápisu neplatné hodnoty v klidu a následném spuštění motoru, dojde k nastavení příznaku ERR funkce HSPSO v síti N13.

 

Přílohy:  Příklad_2