• No results found

SOFTWARE PRO OVLÁDÁNÍ CNC STROJE

N/A
N/A
Protected

Academic year: 2022

Share "SOFTWARE PRO OVLÁDÁNÍ CNC STROJE"

Copied!
75
0
0

Loading.... (view fulltext now)

Full text

(1)

SOFTWARE PRO OVLÁDÁNÍ CNC STROJE

Diplomová práce

Studijní program: N2612 – Elektrotechnika a informatika Studijní obor: 3906T001 – Mechatronika

Autor práce: Bc. Martin Vojíř Vedoucí práce: Ing. Leoš Beran, Ph.D.

(2)

CONTROL SOFTWARE OF CNC MACHINE

Diploma thesis

Study programme: N2612 – Electrical Engineering and Informatics Study branch: 3906T001 – Mechatronics

Author: Bc. Martin Vojíř

Supervisor: Ing. Leoš Beran, Ph.D.

(3)

TECHNICKÁ UNIVERZITA V LIBERCI

Fakulta

mechatroniky,

informatiky

a mezioborových

studií

Akademický rok: 2O14/2Ot5

ZADANI DIPLOMOVE

u,

PRACE

(PROJEKTU, UMĚLECKEHO oÍt A, UMĚLECKÉHo vÝNoNU)

Jméno a

příjmení: Bc. Martin Vojíř

Osobní

číslo:

M12000265

Studijní

program:

N2612

Elektrotechnika

a

informatika

Studijní

obor: Mechatronika

]§ázev

tématu:

Software

pro ovládání CNC

stroje

Zadávající katedra:

Ústav

mechatroniky a technické

informatiky

Zásady pro vypracování:

1. l{avrhněte vhodné grafické rozhrani pro manuální ovládání CNC stroje se třemi osami.

2. Navrhněte a realizujte software pro ovládání pohybů jednotlivých os.

3. Navrhněte a realizujte software pro potvrzenífodstranění provozních chyb.

4. Navrhněte a realizujte software pro parametrizaci stroje.

5. Jednotlivé části softwaru zdokumentujte a přidejte popis, který umožní další úpravv.

(4)

Rozsah grafických prací:

Rozsah pracovní zptávy:

Forma zpracování diplomové práce:

Seznam odborné literatury:

[1]

AUTOMATION, B&R. Controls

-

training text. Austria:

[..r.], 2008. 205 s.

[2]

AUTOMATION, B&R. Motion

-

training text. Austria:

[r.r.], 2008.

l50

s.

[3]

AUTOMATION, B&R. Visualisation

-

training text. Austria: [....],

2008.

135 s.

[4]

JOHN, Kharl-Heinzi TIEGELKAMP, Michael. IEC

61131-3

programming Industrial Automation

Systems : Concepts and

Programming

Languages, Requirements for

Programming

Systems, Decision -

Making Aids.

2nd

Edition. NewYork

: Springer, 2010. 390 s.

ISBN

978-3-642-12ot5-2.

Vedoucí diplomové práce:

Konzultant diplomové práce:

Datum zadání diplomové práce:

Termín odevzdání diplomové práce:

dle

potřeby

dokumentace 40-50 stran

tištěná/elektronická

Ing. Leoš

Beran, Ph.D.

I1stav mechatroniky a technické informatiky Ing.

Martin Diblík, Ph.D.

Ústav mechatroniky a technické informatiky

10.

října

2Ol4 15. května 2015

/1,1_

A/ Ú '7

'l','l$re"cX97

prol'. lng. Václav Kopecký. CSc, / děkan

/l' 1 -

,/{ll2.,,

doc. Ing. Milan Kolář, CSc.

vedoucí ústavu

(5)

Prohlášení

Byl jsem seznámen s tím, že na mou diplomovou práci se plně vzta- huje zákon č. 121/2000 Sb., o právu autorském, zejména § 60 – školní dílo.

Beru na vědomí, že Technická univerzita v Liberci (TUL) nezasahuje do mých autorských práv užitím mé diplomové práce pro vnitřní potřebu TUL.

Užiji-li diplomovou práci nebo poskytnu-li licenci k jejímu využití, jsem si vědom povinnosti informovat o této skutečnosti TUL; v tom- to případě má TUL právo ode mne požadovat úhradu nákladů, které vynaložila na vytvoření díla, až do jejich skutečné výše.

Diplomovou práci jsem vypracoval samostatně s použitím uvedené literatury a na základě konzultací s vedoucím mé diplomové práce a konzultantem.

Současně čestně prohlašuji, že tištěná verze práce se shoduje s elek- tronickou verzí, vloženou do IS STAG.

Datum:

Podpis:

(6)

Pod ě kování

Chtěl bych poděkovat vedoucímu práce Ing. Leoši Beranovi Ph.D. za podporu, trpělivost a rady, které rozšířili mé znalosti nejen v oblasti diplomové práce. Také bych chtěl poděkovat Ing. Františku Mejdrovi za sestavení stroje TUL_CNC, který velice usnadnil vývoj softwaru pro ovládání CNC stroje.

(7)

Abstrakt

Tato diplomová práce se zabývá návrhem, vývojem a implementací softwaru pro řízení polohovacího stroje až se šesti pohony. Práce seznamuje se strojem TUL_CNC a vývojovým prostředím Automation studio, ve kterém se software vyvíjel vyšším programovacím jazykem structured text. Dále popisuje návrh globální datové struktury softwaru a princip fungování a komunikace stavových automatů. Práce shrnuje propojení softwaru s pohony stroje a možnosti nastavení a testování pohonů. Hlavní částí práce je popis vývoje softwaru, jehož hlavními funkcemi jsou inicializace stroje, manuální řízení, cyklické řízení mezi dvěma polohami, řízení uživatelem vytvořených trajektorií a řešení chyb při obsluze. Práce se také zabývá vývojem grafického rozhraní pro ovládání softwaru na dotykové obrazovce.

Klíčová slova:

stavový automat, manuální řízení, PLC, structured text, HMI

Abstract

The diploma thesis deals with the design, development and implementation of the software application which is used to control positioning machines with up to six drives.

It introduces with the TUL_CNC machine and with Automation studio, the development program, in which the software was developed using higher programming language called Structured text. In the next part of the thesis the global data structure of the software application and also the principle of functioning and communication of state machines are described. The thesis summarizes the interconnection of the software application and machine engines and also setting options and testing of the drives. The main part of the thesis deals with the description of the development of the software application whose main functions are machine initializing, manual control, cyclic driving between two positions, managing user-generated trajectories and operational error handling. The thesis is also engaged in developing of graphic interface for user control of the software application on a touchscreen.

Key words:

State machine, manual control, PLC, Structured text, HMI

(8)

Obsah

Úvod... 12

1 Stroj TUL_CNC a vývojové prostředí AS... 13

1.1 Popis stroje TUL_CNC... 13

1.2 Popis PLC a ovládacího panelu ... 14

1.3 Vývojové prostředí Automation studio... 16

2 Struktura řídicího softwaru ... 18

2.1 Požadavky na systém ... 18

2.2 Globální datová struktura... 18

2.3 Řídicí struktura programů ... 19

2.3.1 Princip stavového automatu... 20

2.3.2 Základní řídicí struktura softwaru MACOS ... 21

2.3.3 Přehled stavových automatů řídicí struktury ... 22

3 Princip řízení pohonů... 24

3.1 Reálná a virtuální osa... 24

3.2 Parametry a nastavení pohonů ... 24

3.3 Program pro řízení pohonu MC_Basis ... 25

3.4 Parametrizace pohonů programem UC_ACP ... 27

4 Inicializace stroje ... 29

4.1 Koncept inicializace stroje... 29

4.1.4 Vytváření vazeb mezi reálnými a virtuálními osami ... 31

4.2 Inicializace po chybách při řízení ... 31

4.3 Volba počátku pro CNC řízení ... 31

4.4 Datová struktura MC_Start ... 32

4.5 Stavový automat MC_Start... 32

5 Manuální řízení ... 34

5.1 Jednotky a jejich převod ... 34

5.2 Datová struktura UC_Motion ... 35

5.3 Stavový automat UC_Motion ... 35

6 Automatické řízení... 37

6.1 Aplikace pro cyklování v ose UC_Cycling ... 37

6.2 Aplikace pro řízení polohovacího programu UC_Tracking ... 38

6.2.1 Vytváření trajektorie ... 38

(9)

6.2.2 Nastavení a implementace počátku trajektorie ... 39

6.2.3 Implementace polí ve vizualizaci... 39

6.2.4 Vytváření, editace, ukládání a načítání programů ... 40

6.2.5 Ovládání trajektorií ... 41

6.2.6 Datová struktura a stavový automat UC_Tracking... 41

7 Ošetření chybových stavů ... 43

7.1 Program pro ošetření chyb ErrorHandling... 43

7.2 Datová struktura ltError a stavový automat ErrorHandling... 44

7.3 Ošetření elektrických chyb modulu X20MM ... 45

8 Grafické rozhraní softwaru ... 47

8.1 Vývoj grafického prostředí softwaru MACOS ... 47

8.1.1 Strany a vrstvy ve vizualizaci ... 47

8.1.2 Vytváření group ... 47

8.2 Propojení vizualizace s programy... 48

8.3 Vzhled vizualizace softwaru MACOS... 49

8.4 Program VisuCtrl ... 49

Závěr ... 52

Literatura... 53

Přílohy... 54

A Diagramy stavových automatů... 55

B Grafické rozhraní softwaru MACOS ... 63

(10)

Seznam p ř íloh

A Diagramy stavových automatů 55

A.1 Stavový automat stavů pohonu podle PLCopen 55

A.2 Stavový automat UC_ACP 56

A.3 Stavový automat MC_Start 57

A.4 Stavový automat UC_Motion 58

A.5 Stavový automat UC_Cycling 59

A.6 Stavový automat UC_Tracking 60

A.7 Stavový automat ErrorHandling 61

A.8 Stavový automat VisuCtrl 62

B Grafické rozhraní softwaru MACOS 63

B.1 Úvodní Strana 63

B.2 Info strana 64

B.3 Strana manuálního řízení – UC_Motion 64

B.4 Strana cyklického řízení pohonů – UC_Cyckling 66

B.5 Strana řízení trajektorií – UC_Tracking 68

B.6 Strana nastavení zobrazení 71

B.7 Parametrizace pohonů stroje – UC_ACP 72

B.8 Strana s historií alarmů 73

B.9 Strana modulu X20MM 74

Seznam Obrázk ů

Obr. 1: Souřadný systém stroje TUL_CNC ... 14

Obr. 2: PowerPanel 5PP581... 15

Obr. 3: Strukturovaný datový typ v Automation studiu ... 16

Obr. 4: Přehled stavů a vazeb ... 21

Obr. 5: Princip stavových automatů... 21

Obr. 6: Popis základní řídicí struktury... 22

Obr. 7: Schéma vazeb stavových automatů ... 23

Obr. 8: Hlášení chyby při inicializaci ... 30

Obr. 9: Zjednodušený princip inicializace ... 30

Obr. 10: Vytváření trajektorie... 39

Obr. 11: Okno s alarmovou zprávou... 44

(11)

Seznam Tabulek

Tab. 1: Parametry stroje TUL_CNC ... 13

Tab. 2: Parametry os pohonů stroje TUL_CNC ... 14

Tab. 3: Parametry motorů Maxon... 14

Tab. 4: Parametry průmyslového počítače... 15

Tab. 5: Datová struktura gtPLC ... 19

Tab. 6: Datová struktura gtPRG... 19

Tab. 7: Datová struktura gtMC ... 19

Tab. 8: Přehled stavových automatů ... 22

Tab. 9: Zařazení stavových automatů do datové struktury ... 23

Tab. 10: Inicializační tabulka pohonů... 25

Tab. 11: Přehled stavů automatu MC_Basis... 26

Tab. 12: Přehled stavů pohonu... 26

Tab. 13: Nastavitelné parametry v softwaru MACOS... 27

Tab. 14: Stavy automatu UC_ACP... 28

Tab. 15: Tabulka datové struktury ltStart ... 32

Tab. 16: Stavy automatu MC_Start ... 33

Tab. 17: Datová struktura UC_Motion ... 35

Tab. 18: Přehled stavů automatu UC_Motion ... 36

Tab. 19: Parametry pro obsluhu cyklování ... 37

Tab. 20: Stavový automat UC_Cykling... 38

Tab. 21: Příkazy pro editaci trajektorií ... 40

Tab. 22: Příkazy pro ovládání trajektorie ... 41

Tab. 23: Datová struktura programu UC_Tracking ... 42

Tab. 24: Stavový automat UC_Tracking ... 42

Tab. 25: Globální struktura gtPRG_Error... 44

Tab. 26: Parametry datové struktury ltError ... 45

Tab. 27: Přehled stavů automatu ErrorHandling ... 45

Tab. 28: Výstupní parametry modulu X20MM ... 46

Tab. 29: Stavový automat X20MM ... 46

Tab. 30: Rozvržení stran ve vizualizaci... 49

Tab. 31: Datová struktura VisuCtrl... 50

Tab. 32: Stavy automatu VisuCtrl ... 51

(12)

Seznam pojm ů a zkratek

MACOS – název softwaru pro ovládání CNC stroje (machine control system) CNC - číslicové řízení počítačem (computer numeric control)

NC - číslicové řízení (numeric control)

PLCopen - standard knihoven a funkcí pro řízení pohonů PWM - pulsně šířková modulace (pulse width modulation)

PLC - programovatelný logický automat (programmable logic controller) HMI - rozhraní mezi strojem a člověkem (human-machine interface)

B&R – výrobce PLC a přílsušenství pro řízení strojů a aplikací (Bernecker & Rainer) AS – vývojové prostředí pro programování řídicích softwarů (Automation studio) SM – Stavový automat (State machine)

Lag error – chyba odchylky v poloze při řízení pohonu

(13)

Úvod

O modernizaci strojů a jejich řízení v průmyslu je stále větší zájem. To potvrzuje i neustálý vývoj PLC, řídicích jednotek, ovládacích panelů a prostředí pro jejich vývoj a programování. Možnost naprogramování specializovaného a unikátního softwaru vytváří příležitosti pro řízení rozdílných typů strojů, výrobních linek, aplikací a výrobních procesů.

Cílem této práce je navrhnout a naprogramovat univerzální řídicí software pro různé typy průmyslových polohovacích strojů a aplikací. Z praktických důvodů byl software pro ovládání CNC stroje pojmenován MACOS (MAchine COntrol System). Software byl programován ve vývojovém prostředí Automation studio firmy B&R v jazyce structured text.

Základem softwaru je rozsáhlá globální datová struktura, která je nezbytná pro vytváření komplexních řídicích systémů. Obsahem softwaru MACOS jsou programy pro ovládání pohonů, manuální řízení, inicializaci stroje, řešení chyb při obsluze a vývoj grafického rozhraní pro řízení softwaru na ovládacím panelu. Každý program je řízen vlastním stavovým automatem.

Hlavním úkolem práce byl návrh, vývoj a programování výše zmíněných programů softwaru MACOS a jejich následná implementace na stroj TUL_CNC. Na tomto stroji se software testoval a verifikoval.

(14)

1 Stroj TUL_CNC a vývojové prost ř edí AS

Při vývoji řídicího softwaru MACOS byla cílem jeho univerzální využitelnost na různých typech polohovacích zařízení. Software byl aplikován na stroji TUL_CNC, který pro Technickou univerzitu v Liberci v rámci diplomové práce sestrojil František Mejdr [1]. Stroj TUL_CNC měl významný podíl při vývoji a testování softwaru, přestože vývoj v některých případech podléhal požadavkům stroje.

Stroj TUL_CNC je řízen hardwarem a PLC od firmy B&R. Software MACOS je naprogramován ve vývojovém prostředí firmy B&R Automation studio, které zaručuje kompatibilitu s veškerým mateřským hardwarem a řídicími jednotkami. Následující podkapitoly stručně popisují všechny potřebné komponenty pro vývoj a implementaci softwaru MACOS.

1.1 Popis stroje TUL_CNC

Základní skelet stroje je sestaven z konstrukčních hliníkových profilů a je osazený průmyslově vyrobenými díly. Mechanická konstrukce je velice přesná a pro požadované účely stroje dostatečně dimenzovaná. K pohonu jsou použity kvalitní dynamické motory značky Maxon. Díky vysokému výkonu motorů a jejich výborným dynamickým vlastnostem dosahuje stroj velice dobrých výsledků. K řízení je použita technika B&R.

Stejnosměrné motory jsou řízeny modulem s výkonovými PWM kanály, které ovládá průmyslový počítač PowerPanel 5PP581. Do řídicího systému jsou připojeny navíc další moduly s analogovými i digitálními vstupy, které umožní v budoucnu provádět různá rozšíření, např. dovybavit stroj měřicí sondou, skenovacím zařízením, apod.

Parametry stroje, jednotlivých os a motorů jsou popsány v Tab. 1, Tab. 2 a Tab. 3.

Souřadný systém stroje je znázorněn na Obr. 1 [1].

Tab. 1: Parametry stroje TUL_CNC Stroj TUL_CNC

vnější rozměry stroje 90 x 93 x 137 cm (š × v × d) vnější rozměry rozvaděče 39 x 30 x 46,5 cm (š × v ×h)

hmotnost stroje 83 kg

hmotnost rozvaděče 20 kg

pracovní prostor 765 × 387 × 142 mm (X × Y × Z)

rozlišení 0,01 mm

maximální povolená rychlost 200 mm.s-1 maximální povolené zrychlení 2000 mm.s2

(15)

Tab. 2: Parametry os pohonů stroje TUL_CNC

Osa X Y Z

hmotnost lineární jednotky [kg] 16 7,8 3,4 celková hmotnost mechanismu [kg] 33,9 13,4 4,5 moment setrvačnosti kul. šroubu [kg.m2] 2,4 .10-5 4 . 10-5 0,8 .10-5 celk. moment setrvačnosti rot.částí [kg.m2] 8,8 . 10-5 14,4 . 10-5 7,2 . 10-5

stoupání kul.šroubu [mm.ot-1] 5 10 10

maximální rychlost [m.s-1] 0,185 0,5 0,5

síla posuvu [N] 420 210 210

povolená rychlost posuvu [ mm.s-1] 212 424 424 maximální zrychlení [ m.s-2] 12,4 15,6 25,2

rozlišení [mm] 0,005 0,01 0,01

Tab. 3: Parametry motorů Maxon Maxon RE50 370357

jmenovitý moment 380 mNm statický moment 4091 mNm rychlost naprázdno 2806 ot/min jmenovitá rychlost 2545 ot/min proud naprázdno 35 mA jmenovitý proud 1,63 A rozběhový proud 17 A jmenovité napětí 70 V

setrvačnost rotoru 58,4 .10-6 kg.m2 hmotnost motoru 1,1 kg

Obr. 1: Souřadný systém stroje TUL_CNC

1.2 Popis PLC a ovládacího panelu

Stroj TUL_CNC je řízen PowerPanelem 5PP581 z Obr. 2 [1]. Jedná se o průmyslový počítač vybavený procesorem Intel© AtomTM Z530 1600/533 MHz a operační pamětí

(16)

1024 MB. Pro komunikaci počítače s periferiemi slouží komunikační interface s rozhraním Powerlink. Dále je možná síťová komunikace, která probíhá přes Ethernet TCP/IP. K ovládání slouží barevný 10,4“ dotykový displej a množství funkčních tlačítek.

Do tohoto průmyslového počítače lze nahrát libovolný operační systém. Pro funkci PLC a vykonávání řídicích programů je zapotřebí operační systém Automation Runtime.

Tato varianta má negativní vliv na operační rychlost PLC, pro náročnější aplikace není vhodné operační systémy využívat.

Tab. 4: Parametry průmyslového počítače

Obr. 2: PowerPanel 5PP581 Power Panel 5PP581

procesor Z530 1600/533 MHz, 512 kB

obrazovka TFT 10,4“ FT IF

operační paměť DDR2 1024 MB

napájení DC 24V

paměťové medium CompactFlash 2 GB

porty USB, RS-232, Ethernet

(17)

1.3 Vývojové prost ř edí Automation studio

Automation studio je software, který slouží k vytváření programů pro řízení PLC společnosti Bernecker & Rainer (B&R). Software byl použit pro vývoj a verifikaci softwaru pro řízení CNC stroje.

Automation studio umožňuje vytváření programů a jejich přiřazovaní do cyklických taskových tříd procesoru PLC. Každý z programů lze programovat jiným programovacím jazykem od nižších jazyků, jako je např. instruction list či ladder diagram až po vyšší jazyky, mezi které patří např. ANSI C++ nebo structured text.

Software MACOS je programován právě jazykem structured text.

Velice užitečnou součástí při vývoji programů je možnost vytváření strukturovaných datových typů, které umožní spojovat společné parametry a proměnné a rozčleňovat je do strukturovaných skupin. Strukturovaný datový typ lze přiřadit jedné či více proměnným. Příklad použití víceúrovňového strukturovaného datového typu je znázorněn na Obr. 3. V případě obrázku je hlavní strukturovaný typ ltUCM deklarován v proměnné lUCM a zbylé typy (ltUCM_Sett, lteUCM_CMD atd.) jsou strukturované podtypy proměnných (Axis_1, Axis_2, Axis_3) deklarovaných v ltUCM. Strukturované typy jsou v softwaru MACOS použity pro deklaraci všech globálních a lokálních struktur.

Obr. 3: Strukturovaný datový typ v Automation studiu

(18)

Automation studio také umožňuje vytvářet a programovat grafické rozhraní, které slouží k lepší komunikaci mezi uživatelem a strojem. Jak se grafické prostředí vytváří a jak funguje je popsáno v kapitole 8. Další funkcí Automation studia je řízení, parametrizace, regulace a testování pohonů. O některých z těchto funkcí podrobněji pojednává kapitola 3.

(19)

2 Struktura ř ídicího softwaru

Základním stavebním kamenem softwarů a programů je jejich vlastní datová struktura.

Dobře navržená struktura může zjednodušit programování a má zásadní vliv na kvalitu programu. V této kapitole je popsán vývoj struktury řídícího softwaru CNC stroje od jejího vzniku až po její konečnou podobu a implementaci.

2.1 Požadavky na systém

Určení požadavků je počáteční fáze návrhu softwaru. Požadavky určují základní podobu a funkce softwaru. Na počátku určování požadavků nebylo možné odhadnout jejich realizaci v budoucnosti. Mnoho menších požadavků se měnilo během vývoje softwaru a zbytečnost jiných byla prokázána až v posledních fázích vývoje. Přesto se základní myšlenka požadavků na systém od počátku prakticky nezměnila. Požadavky na systém jsou shrnuty v následujících bodech:

• návrh globální struktury tak, aby byla logicky strukturovaná, dostatečně robustní tj. schopná obsáhnout parametry pohonů, hardwaru, PLC a softwaru MACOS. Schopná se měnit a přizpůsobit při změnách požadavků a schopná se dále rozvíjet tak, aby nenarušila vlastní kontinuitu,

• návrh řídicí struktury a základního principu fungování a řízení softwaru,

• zajistit propojení softwaru s řízením pohonů,

• řízení pohonů uživatelem,

• návrh HMI pro efektivnější obsluhu stroje,

• řešení chyb systémových a uživatelských chyb (detekce, potvrzení a odstranění),

• inicializace stroje při startu a po chybách.

2.2 Globální datová struktura

Globální datová struktura je softwarová realizace proměnných a parametrů PLC, stroje a pohonů. Také obsahuje strukturu společnou pro všechny části softwaru. V globální datové struktuře jsou definovány proměnné, které jsou potřebné pro chod více programů. Ostatní proměnné jsou obsaženy v lokálních strukturách jednotlivých částí.

(20)

V Automation studiu jsou pro deklaraci struktur využívány strukturované datové typy popsané v předchozí kapitole. Pro jednoduché rozpoznání mají názvy globálních typů a subtypů prefix gt (global type).

Globální datová struktura je rozdělena do tří hlavních částí, první část gtPLC popisuje stavy, příkazy a vstupy/výstupy PLC. Ve struktuře gtPRG jsou deklarovány všechny stavové automaty programů, alarmová struktura společná všem programům a hlavní programové příkazy. Struktura gtMC (motion control) obsahuje proměnné pro nastavování, řízení a monitorování pohonů. Podrobnější popis všech struktur je zobrazen v Tab. 5 až Tab. 7.

Tab. 5: Datová struktura gtPLC

gtPLC Struktura PLC

gtPLC_State stavy PLC (run, service, error)

gtPLC_CMD příkazy PLC (warm restart, cold restart) gtPLC_Info informace o stavu PLC

gtPLC_IO vstupy/výstupy PLC

Tab. 6: Datová struktura gtPRG

gtPRG Struktura programů

gtPRG_SMS stavové automaty

gtPRG_CMD hlavní programové příkazy gtPRG_Error alarmová struktura

Tab. 7: Datová struktura gtMC

gtMC Struktura pohonů

gtAxis definice počtu a přiřazení os

gtAxis_Control nadřazená substruktura pro řízení osy

gtAxis_Control_CMD příkazy pro pohyb osy (přímý, krokový, hrubý)

gtAxis_Control_Parametr vstupní parametry osy (rychlost, zrychlení, velikost kroku) gtAxis_Control_Status status osy a výstupní parametry (poloha, rychlost, chyba) gtAxis_Control_State stavy osy v souladu norem PLCopen

gtAxis_FBMotion funkční bloky PLCopen

2.3 Ř ídicí struktura program ů

Součástí každého programu je vlastní lokální datová struktura, ve které jsou deklarovány příkazy, parametry a proměnné pro chod programu. Lokální struktury jsou označeny prefixem lt (local type). Každý program řídí jeden či více stavových

(21)

automatů, jejichž stavy jsou definovány v globální struktuře. Každý stavový automat řídí a řeší vlastní úlohy. Řádné vykonání úloh je mnohdy závislé i na operacích a chodu jiných stavových automatů. Proto je nezbytné, aby stavové automaty mohli spolu komunikovat a předávat si parametry a informace. Ke komunikaci dochází na základě současných stavů v jednotlivých automatech. Vzájemná komunikace automatů dohromady tvoří nadřazený řídicí stavový automat, neboli řídicí strukturu softwaru MACOS. V následujících podkapitolách je popsán způsob grafického zápisu stavových automatů a návrh řídicí struktury.

2.3.1 Princip stavového automatu

Vzhledem k sekvenčnosti úlohy řídicího softwaru jsou pro jeho realizaci použity stavové automaty. Každá změna systému je reprezentována vlastním stavem. Po startu systému začíná každý stavový automat v předem definovaném stavu. Každý stav musí mít definované podmínky přechodu do jiného stavu. Podmínky přechodu mohou být definovány lokálně i globálně (z jiného automatu). Do dalších stavů se může dostat následujícími způsoby:

• příkaz od uživatele,

• splnění podmínky v programu,

• dokončení činnosti (řádné i chybové).

Pro návrh stavových automatů byly použity stavové diagramy, které mohou jednoduše zobrazit princip chování stavového automatu. Na obrázcích Obr. 4 a Obr. 5 je znázorněn způsob prezentace stavových diagramů. Cílem diagramů je znázornění vnitřních (plná čára) a vnějších (přerušovaná čára) vazeb mezi stavy a zobrazení podmínek přechodu do jiných stavů. V případě vnějších vazeb ještě označují, s kterým automatem komunikuje.

Navržené diagramy byly hlavní předlohou pro konečnou realizaci stavových automatů v softwaru MACOS.

Stavové diagramy nezobrazují operace v jednotlivých stavech, přestože jejich kódování a programování bylo nedílnou součástí vývoje softwaru. Komplexnost softwaru MACOS však nelze popsat v diplomové práci do takových detailů a ani to není jejím cílem. Popis softwaru MACOS je tedy zúžen na představení důležitých parametrů lokálních struktur pro řízení programů a zobrazení stavových diagramů se stručným

(22)

popisem jejich stavů. Podrobnější popis softwaru je v jeho samotných programech a kódech, kde byla snaha komentovat většinu částí softwaru na přiloženém CD v příloze C.

Obr. 4: Přehled stavů a vazeb

Obr. 5: Princip stavových automatů

2.3.2 Základní řídicí struktura softwaru MACOS

Základní řídicí struktura na Obr. 6 vznikla z určených požadavků na systém. Skládá se z několika hlavních bloků, z nichž každý blok obsahuje alespoň jeden stavový automat.

Bloky mají mezi sebou vazby a stavové automaty tyto vazby dodržují.

Řídicí struktura je rozdělena do tří úrovní, do kterých jsou bloky zařazené. Úrovně určují nadřazenost bloků, což znamená, že bloky v nadřazené vrstvě jsou důležitější a ovládají podřízené bloky. Výjimkou jsou bloky Errors a INIT, které zasahují do více úrovní a mají tak zásadní vliv na chod celého systému.

(23)

Obr. 6: Popis základní řídicí struktury

2.3.3 Přehled stavových automatůřídicí struktury

Stavové automaty jsou řídicím jádrem softwaru MACOS, proto se diplomová práce v následujících kapitolách zabývá především popisem jejich chodu a funkce. Stavové automaty jsou přiřazeny do jednotlivých úrovní a bloků navržené základní řídicí struktury. Přehled a přiřazení stavových automatů je popsán v tabulkách Tab. 8 a Tab. 9. Některé programy jsou obsaženy ve více blocích, protože plní funkce více úrovní. Mezi úrovněmi jim postačuje komunikace na lokální úrovni, a proto nemusí být tvořeny rozdělenými programy ve více úrovních.

Tab. 8: Přehled stavových automatů

Stavový automat Popis

MC_Basis přímé ovládání pohonů, pro každou osu jeden stavový automat MC_Start zapíná a referuje osy, uvádí stroj do funkčního stavu po chybě UC_Motion manuální ovládání osy, pro každou osu jeden stavový automat UC_ACP ovládání nadstandardních parametrů (limitní hodnoty, enkodér) X20MM kontrola elektrických chyb modulu X20MM4456

CNC řízení CNC (načítání a spouštění NC programů) Visu Control propojení ovládání skrze grafické prostředí (HMI) Error Handling kontrola a ošetření chyb systému

UC_Cycling cyklické řízení mezi dvěma krajními polohami UC_Tracking řízení uživatelem vytvořenými programy

(24)

Tab. 9: Zařazení stavových automatů do datové struktury

Blok Přiřazené stavové automaty Errors Error Handling, X20MM

Init MC_Start

HMI Visu Control

User control UC_Motion, UC_ACP, CNC, UC_Tracking, UC_Cycling Hardware driving MC_Basis, CNC

Komunikace stavových automatů tvoří tzv. řídicí stavový automat, který lze zobrazit ve formě stavového diagramu. Ten je zobrazen na Obr. 7: Schéma vazeb stavových automatů, kde jsou přehledně vidět vazby mezi stavovými automaty. Podrobnější popis vazeb je zobrazen v diagramech konkrétních stavových automatů.

Obr. 7: Schéma vazeb stavových automatů

(25)

3 Princip ř ízení pohon ů

Softwarový přístup k pohonům je nezbytný pro jejich řádné řízení. Vývojové prostředí Automation studio má své nástroje pro ovládání pohonů a především pro nastavování jejich inicializačních parametrů, které lze použít při počáteční inicializaci stroje. Pro řízení pohonů není tento nástroj dostačující a stroj je vhodnější řídit pomocí programů.

Tato kapitola popisuje nastavení parametrů pohonů v Automation studiu, jejich řízení softwarem MACOS a představuje model reálných a virtuálních os.

3.1 Reálná a virtuální osa

Pohyb a ovládání každého pohonu je řízen pomocí dvou os, reálné a virtuální. Reálná osa přesně reprezentuje reálné parametry pohonu, ke kterému je přiřazena. Určuje její rychlost, zrychlení, polohu, polohu koncových referenčních softwarových spínačů i referenčního spínače, nastavuje se regulace osy atd. Je tedy přímým softwarovým popisem hardwarových možností a parametrů osy.

Virtuální osa má omezení pouze na rychlost, zrychlení a polohu, koncové spínače má v nekonečnu, referenční se nastaví vždy na nulu či požadovanou hodnotu a regulace není potřeba, neboť její řízení je „ideální“. Při zapnutí stroje jsou obě dvě části osy samostatné a nezávislé. Po nalezení referenční polohy (dále jen referování) osy spolu vytvoří vazbu tak, že virtuální osa je typu master a reálná typu slave. Problematika referování a vytváření vazeb je více rozvedena v kapitole 4.

Parametry a příkazy pro manuální pohyb a řízení os se posílají do virtuální osy a reálná osa kopíruje její pohyb. Skutečná výstupní rychlost a poloha se odečítá z reálné osy.

Tohoto spojení os se dá využít pro podmínky a vazby mezi jednotlivými osami, nástroji a funkčními prvky stroje. V tomto softwaru se virtuální osy používají především k zavedení relativního souřadného systému pro vykonávání NC programů.

3.2 Parametry a nastavení pohon ů

Každý pohon má v Automation studiu vlastní inicializační (Acopos) tabulku se základními parametry a informacemi o ose. Acopos tabulka se do PLC přehraje vždy při restartu a po té už je za chodu PLC poměrně náročné tyto parametry v tabulce měnit.

Parametry jsou seřazeny v ucelených skupinách, jejich přehled je zobrazen v Tab. 10.

(26)

Tab. 10: Inicializační tabulka pohonů

Skupina parametrů Popis

dig_in digitální vstupy (např. HW koncové a referenční spínače) encoder_if nastavení enkodéru (unit/otáčky)

limit limitní parametry pro rychlost, zrychlení a SW koncové spínače controller nastavení polohového a rychlostního regulátoru a feed forward move nastavení typu referování, rychlostní parametry pro řízení osy message zprávy o chybách a upozorněních při řízení pohonu

Parametry se dají nastavovat přímo v tabulce nebo v NC_Testu. NC_Test je součást Automation studia, která umožňuje ovládat, testovat a manipulovat s osami přímo z Automation studia. Je možné v něm nastavovat a testovat různé limitní parametry, encoder, testovat různé typy referování a nastavit regulační parametry pro pohony.

Všechny takto nastavené parametry se dají uložit přímo do Acopos tabulky.

Další funkcí NC_Testu je sledování reálných parametrů osy. Sledované parametry se zobrazí v grafech. Užitečné je tak sledovat rozdíl mezi zadanou a reálnou rychlostí osy, výkon, proud v ose a nebo lag error. Také je možné přidat různé spouštěče, od kdy se mají parametry sledovat. Sledování je velmi užitečné k řešení problému regulace pohonů.

Pro většinu aplikací je tato sada parametrů Acopos tabulky pro řízení dostačující. Přesto je někdy potřeba využít nadstandardních parametrů. Tyto parametry lze vyhledat v helpu Automation studia podle jejich identifikačního čísla ParID. Po té je přidat do inicializační tabulky a nastavit podle potřeby. Každý parametr pohonu, ať už je v Acopos tabulce či není, má tedy vlastní ParID a je možné jej dohledat a ovládat i po jejich nahrání a inicializaci. Podrobněji se tím zabývá kapitola 3.4 Parametrizace pohonů programem UC_ACP .

3.3 Program pro ř ízení pohonu MC_Basis

Program s datovou strukturou, která řídí stavový automat MC_Basis, je volně dostupná součást Automation studia. Slouží ke komunikaci s funkčními bloky knihovny PLCopen, která dále komunikuje s řídicí jednotkou os (hardwarem). MC_Basis je tedy program, který dokáže přímo ovládat a sledovat stav pohonů.

MC_Basis sám o sobě nice nevykonává, dokud nedostane příkaz z nadřazených automatů (UC_Motion, MC_Automatic a MC_Start). Každou reálnou a virtuální osu řídí vlastní MC_Basis. V řídicím softwaru je MC_Basis pro virtuální osy pojmenován

(27)

jako Axis_a01 až a03, pro reálné osy Axis_g01 až g03. Stavy automatu, který řídí MC_Basis, jsou popsány v Tab. 11.

Tab. 11: Přehled stavů automatu MC_Basis

Stav Popis

STATE_READY počáteční stav, čeká na příkaz k napájení osy

STATE_POWER_ON napájení osy

STATE_MOVE_ABSOLUTE přímý pohyb

STATE_WAIT čeká na příkaz k pohybu

STATE_STOP zastaví jakýkoliv pohyb a resetuje funkční bloky STATE_MOVE_ADDITIVE krokový pohyb

STATE_HOME referování osy

STATE_ERROR_RESET resetování chyb a funkčních bloků STATE_ERROR_AXIS chyba na pohonu

STATE_ERROR chyba funkčního bloku

STATE_JOG_POSITIVE hrubý pohyb v kladném směru STATE_JOG_NEGATIVE hrubý pohyb v záporném směru

Kromě přímého přístupu k ovládání pohonů má MC_basis další velice důležitou funkci.

Zajišťuje definici stavů pohonu a povolených příkazů v daných stavech dle norem PLCOpen. To znamená, že by měl být funkční pro řízení pohonů na všech řídicích modulech a PLC, které tyto normy podporují. Pokud je spuštěn příkaz, který v daném stavu není povolen, pak se tento příkaz nevykoná. Při vývoji ostatních částí softwaru MACOS se musely tyto vazby a podmínky zohledňovat. Stavový diagram s povolenými příkazy je zobrazen v příloze A, popis stavů pohonu je v Tab. 12.

Tab. 12: Přehled stavů pohonu

Stav Popis

Disabled pohon je odpojen od proudu

Standstill pohon je v klidovém stavu, čeká na příkaz Homing pohon referuje se zadanými parametry reference Stopping ukončování pohybu pohonu

Errorstop zastavení pohybu, protože na pohonu vznikla chyba Discrete Motion přímý a krokový typ pohybu pohonu

Continuous Motion hrubý pohyb pohonu

Synchronized Motion pohon je spojen s jiným pohonem typu master

(28)

3.4 Parametrizace pohon ů programem UC_ACP

Parametry pohonů jsou při spuštění softwaru MACOS načteny z Acopos tabulky. Ta obsahuje základní sadu parametrů a může obsahovat další nadstandardní parametry.

Všechny tyto parametry lze identifikovat pomocí jejich hodnoty ParID a nastavovat za chodu softwaru. Tyto funkce umožňují funkční bloky Read_ParId (načtení parametru) a Write_ParID (zapsání parametru). Manipulaci s parametry zajišťuje v softwaru MACOS program UC_ACP.

Pro načítání a ukládání parametrů je nutno splnit několik podmínek. Hlavní podmínkou je vypnutý proud v pohonech, s jejichž parametry chceme manipulovat. Funkční blok zvládne v jednu chvíli načíst nebo uložit jeden parametr. Pro změnu více parametrů je nutné použít FOR cyklus. V softwaru MACOS lze měnit několik parametrů (viz Tab.

13) ze tří skupin Acopos tabulky.

Stavový automat programu UC_ACP (viz příloha B.7) je složen ze dvou FOR cyklů.

Jeden FOR cyklus slouží k načtení parametrů z Acopos tabulky do struktury parametrů lACP. Parametry lACP jsou propojené s grafickým prostředím, ve kterém jdou měnit.

Po příkazu Save se spustí druhý FOR cyklus, který nahraje změněné parametry do pohonů. Uživatel má možnost příkazu Default, který změní parametry na jejich tovární hodnotu. Pro jejich nahrání do pohonu je také nutné spustit příkaz Save. Popis stavů automatu UC_ACP je v Tab. 14.

Tab. 13: Nastavitelné parametry v softwaru MACOS

Skupina/ parametr Popis

Encoder parametry nastavení enkodéru - Units počet jednotek (částí) v jedné otáčce - Revolutions počet otáček

- Direction směr otáčení

Basis nastavení základních rychlostních parametrů pohonu - Velocity rychlost (units/revolution)

- Acceleration zrychlení (units/revolution2) - Deceleration zpomalení (units/revolution2) Limits nastavení limitních hodnot pohonu - Velocity limity rychlosti (units/revolution) - Acceleration limity zrychlení (units/revolution2) - Deceleartion limity zpomalení (units/revolution2) - T-Jolt omezení rázů

- Pos_SW kladný softwarový koncový spínač (units) - Neg_SW záporný softwarový koncový spínač (units)

(29)

Tab. 14: Stavy automatu UC_ACP

Stav Popis

ACP_INIT inicializační stav

ACP_WAIT klidový stav, čeká na příkaz (Save, Default) ACP_START načítání parametrů z Acopos tabulky do parametrů

struktury lACP

ACP_START_RESET resetování funkčního bloku pro načítání parametrů po každém načtení

ACP_SELECT výběr změněného parametru pro uložení do pohonu ACP_WRITE_RESET resetování funkčního bloku pro ukládání parametrů po

každém uložení

ACP_WRITE ukládání parametrů do pohonu

ACP_NO_ERROR signalizace pro stavový automat ErrorHandling ACP_ERROR nastala chyba v systému nebo ve funkčních blocích

(30)

4 Inicializace stroje

Řádná inicializace stroje je základním krokem k jeho dalšímu funkčnímu řízení. Bez přístupu proudu do pohonů a jejich referování (nalezení nulové polohy) není možné se strojem pracovat. Pokud nastane při řízení chyba obsluhy, je třeba stroj přivést zpět do funkčního stavu, aby mohl pokračovat v činnosti. Tato kapitola se zabývá výše zmíněnými úlohami a problémy, které vznikaly již od počátečního návrhu inicializace a řízení stoje. Programově je inicializace řešena v MC_Start.

4.1 Koncept inicializace stroje

Při návrhu programu pro inicializaci se vycházelo z konceptu, že stroj je funkční pro řízení, pokud jsou funkční všechny jeho pohony. Tento koncept vycházel z požadavku plnohodnotného CNC řízení, které vyžaduje kooperaci všech částí stroje, a pokud jedna část nefunguje, tak není možné stroj řídit jako CNC. Navržený koncept byl v některých ohledech kontraproduktivní a měl více nevýhod než výhod.

V původním konceptu nebylo možné ovládat zbylé osy, pokud byla jedna nefunkční. Již při samotném testování softwaru MACOS nešlo testovat osy, pokud jedna byla nefunkční. To značně komplikovalo a leckdy i zdržovalo testování a vývoj softwaru.

MACOS navíc umožňuje několik typů manuálního řízení, cyklování či vytváření vlastních programů. Pro tyto případy většinou nezáleží na tom, zda jeden pohon nefunguje, když je potřeba ovládat ostatní.

Na základě silných argumentů byl tento veliký nedostatek odstraněn v konečné fázi vývoje softwaru. Řešení vypadá tak, že pokud se některá z os do určitého času nezreferuje a nevytvoří vazbu s masterem (virtuální osou), pak se uživateli objeví na ovládacím panelu zpráva (viz Obr. 8). V ní mu software oznámí, která osa nefunguje a zda chce referování opakovat či pokračovat. Neaktivní osy a osy s chybou jsou na ovládacím panelu zašedlé a nelze je ovládat.

Úplná podoba principu inicializace stroje je podrobně popsána na stavovém diagramu v příloze A.3. Je to poměrně náročný proces postupného volání funkčních bloků v mnoha stavech. Pro přehlednost je na Obr. 9 znázorněn zjednodušený princip stavového diagramu, který vystihuje hlavní operace při inicializaci stroje.

(31)

Obr. 8: Hlášení chyby při inicializaci

Obr. 9: Zjednodušený princip inicializace

(32)

4.1.4 Vytváření vazeb mezi reálnými a virtuálními osami

Vytváření vazeb a řízení os spojených vazbou není triviální záležitost, je třeba dodržet mnoho podmínek, např. pohony spojené vazbou nemohou referovat, dokud nejsou odpojeny. Referování je při řízení stroje častá operace, a pokud by se osy řádně nespojily, pak stroj není řádně zinicializován a nemůže být použit pro CNC řízení.

Programové řešení v MC_Start je poměrně náročné. Pro představu, stavový automat pro MC_Start má 22 stavů. Bez vytváření a odpojování vazeb by počet stavů mohl klesnout až na polovinu. V počátku návrhu nebylo možné odhadnout, kde všude bude potřeba reálných a virtuálních os. Proto byla snaha mít je spojené neustále, a pokud nejsou spojené, tak stroj není připraven pro ovládání.

V konečné fázi vývoje softwaru se již vědělo, že virtuálních os bude zapotřebí jen pro CNC řízení a pro manuální řízení postačí pouze ovládání reálných os. Zde se nabízel koncept, ve kterém by osy vytvořily vazbu jen v případě CNC řízení. Tím by se stavový automat MC_Start zjednodušil, protože by nebylo třeba neustále spojovat a odpojovat reálné a virtuální osy.

Ke zjednodušení však nedošlo, protože vytvořený koncept již byl plně funkční a zaimplementován do složité struktury ostatních programů a stavových automatů.

Navíc by se i při vývoji zjednodušeného konceptu mohly vyskytnout problémy, které při návrhu nelze odhadnout.

4.2 Inicializace po chybách p ř i ř ízení

Software musí neustále hlídat, jestli jsou osy spojeny. Během řízení může dojít k několika situacím, kdy může dojít k jejich odpojení. Po některých chybách při obsluze může mít virtuální osa jinou polohu než reálná, což je vyjma CNC řízení nežádoucí.

V takových případech je třeba opět zinicializovat stroj a navrátit jeho parametry do funkčního stavu.

Po odstranění chyby při obsluze stroje není vždy vhodné inicializovat stroj jako při počátečním spuštění. Postačí identifikace os, které jsou odpojené a zreferovat virtuální osy se stejnou polohou jako má odpovídající reálná osa a spojit je.

4.3 Volba po č átku pro CNC ř ízení

NC programy jsou vytvářeny od určitého počátečního bodu, který se nemusí shodovat s počáteční polohou stroje (mechanickou nulou). Z tohoto důvodu je třeba umožnit, aby

(33)

si uživatel mohl určit počátek v pracovní oblasti stroje, od kterého se bude CNC program spouštět.

Virtuální osy jsou typu master a reálné kopírují jejich pohyb. Což znamená, že nemusí mít nutně stejnou polohu. Pokud virtuální osa popojede o 10 centimetrů, pak reálná také, ale každá z nich může nabývat jinou polohu dle svého souřadnicového systému.

Vykonávání CNC programu se řídí souřadnicemi virtuální osy. Před spuštěním CNC řízení je třeba si najet na počáteční polohu a označit ji. Tím se vynulují souřadnice virtuálních os, reálné osy však stále ukazují přesnou polohu vzhledem k počátku stroje.

Programově se tato úloha řešila odpojením reálných a virtuálních os, zareferování virtuálních os s nulovou polohou a zpětné vytvoření vazby mezi osami. Po zvolení počátku je stroj připraven spustit CNC program.

Tato část softwaru MACOS slouží jako přípravná část pro řízení CNC řízení, ale CNC není tématem této diplomové práce, na jeho vývoji se podílel František Mejdr ve své diplomové práci [1].

4.4 Datová struktura MC_Start

Ačkoliv program MC_Start patří v softwaru k náročnějším z hlediska programování a implementace, má jednoduchou datovou strukturu ltStart, která je popsána v Tab. 15.

V části CMD jsou dva hlavní příkazy, Power (zapnutí proudu) a Home (referování na koncové spínače), které slouží k počáteční inicializaci stroje. Dále tam jsou příkazy pro určení počátku v jednotlivých virtuálních osách. Nic jiného uživatel nemůže ovládat.

Signals upozorňují, které osy jsou funkční a které nejsou. V části Limits jsou všechny limitní hodnoty a parametry pohonů. Mezi tyto parametry patří např. vzdálenost softwarových koncových spínačů a maximální rychlost pohonů.

Tab. 15: Tabulka datové struktury ltStart

ltStart Popis

CMD příkazy pro zapnutí a referování os Signal signalizace stavu stroje a pohonů Limits limitní parametry os

4.5 Stavový automat MC_Start

MC_Start slouží především k řízení MC_Basis tak, že posílá cílené příkazy pro ovládání proudu, referování a synchronizaci a zpátky si od MC_Basis bere informace o jejich

(34)

ukončení. Inicializace stroje je důležitá a poměrně náročná činnost. Skládá se z mnoha operací, které musí být spuštěny ve správném pořadí a správný čas. Pro jejich řádné řízení je ve stavovém automatu MC_Start více stavů. V každém stavu se vykonává pouze jedna operace a po jejím dokončení se automat přesune do dalšího stavu.

Stavový automat MC_Start se skládá ze tří hlavních větví. Větev s počáteční inicializací stroje je označena zkratkou LS (limit switch, koncový spínač) v názvu stavu. Označení počátku pro CNC řízení obsahuje v názvu CNC a inicializace stroje po chybě systému či obsluhy je označena ERR. Stavy automatu jsou blíže popsány v Tab. 16 a stavový automat MC_Start je zobrazen v příloze A.3.

Tab. 16: Stavy automatu MC_Start

Stav Popis stavu

MCS_WAIT_CMD klidový stav, čekání na příkaz

MCS_POWER přivedení proudu k osám, zapnutí stroje MCS_HOME referování na současné poloze

MCS_CONNECT konečná fáze vytváření vazeb mezi osami MCS_LS_START počáteční fáze referování na koncové spínače MCS_LS_DIS rozpojení os pro referování na koncové spínače MCS_LS_EXE referování na koncové spínače

MCS_LS_ZERO referování s nulovou polohou (odstranění odchylek mezi reálnou a virtuální osou)

MCS_LS_CON vytváření vazeb po referování na koncové spínače MCS_LS_ERRHOMEACK

jedna čí více os nejsou zreferovány do určitého času, nebo nastala chyba při referování. Čeká se na potvrzení od uživatele, zda pokračovat v referování, nebo ho ukončit

MCS_LS_ERRHOME pokračování v referování na koncové spínače po chybě MCS_LS_ERRSTOP ukončení referování po chybě (žádná osa není zreferována) MCS_CNC_DIS rozpojení os pro referování virtuální osy pro CNC řízení MCS_CNC_EXE referování virtuálních os pro CNC řízení

MCS_CNC_CON spojení os po referování virtuální osy pro CNC řízení

MCS_ERROR nastala chyba v systému, do její odstranění setrvá v tomto stavu MCS_ERR_EXE vykonání referování po chybě systému, virtuálním osám jsou

přiřazeny hodnoty reálných os

MCS_ERR_CON vytvoření vazeb po referování po chybě systému

MCS_INIT inicializační stav, rozhoduje se, zda je třeba zinicializovat osy, nebo zda je systém v pořádku

MCS_POWER_OFF vypínání proudu od pohonů

MCS_TOTAL_STOP totalstop je neaktivní, v tomto stavu setrvá, dokud se nezapne MCS_NO_ERROR informační stav pro stavový automat Error handling

(35)

5 Manuální ř ízení

Manuální řízení je důležitou součástí většiny polohovacích strojů. Samo o sobě není moc vhodné pro pracovní úlohy stroje. Přesto ho lze využít pro několik typů operací:

• testování funkčnosti pohonů,

• nastavení pracovního bodu nebo ohraničení pracovní plochy pro různé typy automatického a CNC řízení,

• vytváření programů (postupné ukládání najetých poloh),

• najetí do polohy pro bezpečnou výměnu koncového nástroje nebo pro jinou manipulaci se strojem, například za účelem opravy některé z jeho částí,

• dolaďování polohy při výrobě.

Software MACOS umožňuje používat manuální řízení k výše uvedeným operacím.

Manuální ovládání je navrženo pro tři základní typy jednoduchých pohybů:

• přímý pohyb (direct) na zadanou polohu,

• krokový pohyb (additive) o zadanou velikost kroku,

• hrubý pohyb (continous), neboli pohyb osy dokud je příkaz aktivní.

5.1 Jednotky a jejich p ř evod

Inicializační (Acopos) tabulka pohonů nepoužívá metrický popis jednotek. Místo toho používá vlastní acopos jednotky, které jsou definovány jako jednotky/otáčku (units per revolution). Tovární nastavení je 1000 jednotek/otáčku tzn., že jedna otáčka motoru je rozdělena na tisíc úseků. Čím větší je tedy počet jednotek na otáčku, tím citlivější a přesnější může být řízení.

Teoreticky lze nastavit Acopos jednotky tak, aby realizovaly jednotky metrické soustavy. Tato varianta by však měla velké rozlišení a mohlo by při řízení docházet k odchylkám. Proto se zvolila varianta přepočítávání jednotek v softwaru. Uživatel nemusí řešit jejich přepočet a zadává parametry pro polohu v milimetrech (mm) a rychlost v milimetrech za minutu (mm/min). Tyto jednotky jsou dále v práci popisovány jako uživatelské jednotky.

(36)

5.2 Datová struktura UC_Motion

Každý pohon má vlastní datovou strukturu lUCM (viz Tab. 17), která kopíruje některé části struktury přiřazené osy z MC_Basis. UC_Motion slouží především k převodu uživatelských jednotek na Acopos jednotky. Stavy UC_Motion jsou také využívány pro komunikaci s ostatními stavovými automaty, především s MC_Start z kapitoly 4.4 nebo s VisuCtrl, který je popsán v kapitole 8.4. UC_Motion také sleduje výstupní hodnoty polohy a rychlosti z MC_Basis a převádí je do uživatelských jednotek

MACOS byl vytvářen pro různé typy polohovacích strojů a každý stroj může mít jinak situované osy s nulovými polohami. Byla snaha, aby se po příkazu pro pohyb vpravo řízená osa skutečně pohybovala vpravo. Stačí změnit jen polohu ovládacího panelu vůči stroji a už může dojít z pohledu uživatele k matoucímu ovládání.

Z tohoto důvodu byla do UC_Motion implementována funkce Invert, která změní směr krokového a hrubého pohybu. Přidání možnosti invertování směru pohybu os s sebou přineslo mnoho situací a problémů, nejen v UC_Motion, ale především v programu VIsuCtrl (viz kapitola 8), které bylo nutné vyřešit.

Tab. 17: Datová struktura UC_Motion

Název Popis

CMD příkazy pro přímý, krokový a hrubý pohyb

Parameters zadávací parametry pro manuální řízení – poloha (přímý pohyb), velikost kroku (krokový pohyb) a rychlost (pro všechny typy pohybu) Output reálný výstup rychlosti a polohy osy

5.3 Stavový automat UC_Motion

Stavový automat UC_Motion (viz příloha A.4) je poměrně jednoduchý automat. Ve stavu WAIT čeká na příkaz k pohybu, poté převede parametry na Acopos jednotky.

Zohlední, zda je osa invertovaná či ne a všechny tyto parametry pošle do MC_Basis, kde se vykoná pohyb. V odpovídajícím stavu MOTION čeká na dokončení pohybu a po té se přesune zpět do stavu WAIT a čeká na další příkaz. Stavy stavového automatu UC_Motion jsou popsány v Tab. 18.

(37)

Tab. 18: Přehled stavů automatu UC_Motion

Stav Popis

UCM_WAIT čeká na příkazy pro pohyb od uživatele

UCM_DIRECT_MOTION posílá příkaz pro přímý pohyb do MC_Basis, čeká na dokončení pohybu

UCM_NEGDISTANCE_MOTION posílá příkaz pro krokový pohyb v záporném směru do MC_Basis, čeká na dokončení pohybu

UCM_POSDISTANCE_MOTION posílá příkaz pro krokový pohyb v kladném směru do MC_Basis, čeká na dokončení pohybu

UCM_NEGCONTINOUS_MOTION posílá příkaz pro hrubý pohyb v záporném směru do MC_Basis, čeká na dokončení pohybu

UCM_POSCONTINOUS_MOTION posílá příkaz pro hrubý pohyb v kladném směru do MC_Basis, čeká na dokončení pohybu

UCM_VISU oznamuje chybu uživatele, čeká na potvrzení z VisuCtrl

UCM_INIT inicializační stav

UCM_ERROR chybový stav

UCM_START počáteční stav, čeká na inicializaci stroje

(38)

6 Automatické ř ízení

Automatické řízení je dnes základním předpokladem většiny výrobních strojů a linek. Mezi nimi je CNC řízení na vyšší úrovni. Přesto stále existují stroje, pro jejichž řízení není vhodné nebo možné použít CNC jádro. Důvody mohou být různé, někdy je nutný neustálý dohled, stroj se často odstavuje a je potřeba ručně dolaďovat.

Jedním z důvodů může být i fakt, že některé stroje zkrátka nepotřebují pro svou činnost CNC řízení a vystačí si s jednoduššími aplikacemi, nad kterými má uživatel větší kontrolu. Proto se v softwaru MACOS vytvořily dvě aplikace, které mohou tuto mezeru zaplnit. Jednou z nich (UC_Cycling) je jednoduché cyklování mezi dvěma koncovými body, které si uživatel předem zvolí. Druhá (UC_Tracking) je více sofistikovanější, umožňuje uživateli vytvářet vlastní programy, editovat je a samozřejmě i spouštět a řídit.

6.1 Aplikace pro cyklování v ose UC_Cycling

Aplikace pro cyklování je určena především pro jednoduché obráběcí stroje, soustruhy či pro povrchové úpravy. Uživatel na jedné ose zvolí dvě koncové polohy, mezi kterými se osa pohybuje. Kromě koncových poloh lze nastavit ještě několik dalších parametrů, ty jsou popsány v Tab. 19.

Program a stavový automat, který řídí cyklování je pojmenován UC_Cycling. Stavový automat UC_Cycling (viz příloha A.5) umožňuje cyklování více os najednou, uživatel dokonce může všem osám poslat příkazy pro start a stop najednou, což velice usnadňuje obsluhu.

Tab. 19: Parametry pro obsluhu cyklování

Parametr Popis

Pos1 koncová poloha 1

Pos2 koncová poloha 2

VelCycle zadaná rychlost pro cyklování VelCorect korekce zadané rychlosti o +/- 50%

PosAdd velikost kroku pro odstavení při pauze Cycles počet opakování cyklu

(39)

Každý pohon je v cyklickém režimu řízen vlastním stavovým automatem, ale vzhledem k jejich malé náročnosti jsou všechny implementovány v jednom programu. Stavy jsou podrobněji popsány v Tab. 20.

Tab. 20: Stavový automat UC_Cykling

Stav Popis

UCC_WAIT klidový stav, čeká na příkaz UCC_INIT inicializační stav

UCC_ERROR chybový stav

UCC_NO_ERROR informační stav pro stavový automat ErrorHandling UCC_START začátek cyklování, rychlé najetí do polohy 1 UCC_CYCLE_P1 pohyb do polohy 1

UCC_CYCLE_P2 pohyb do polohy 2

UCC_PAUSE pozastavení cyklování s možností odstavení o určitou polohu UCC_STOP zastavení cyklování po dojetí do nejbližší polohy

6.2 Aplikace pro ř ízení polohovacího programu UC_Tracking

Cyklické řízení je jednoduché a užitečné řešení, přesto je pro mnoho strojů nedostačující. Výrobní proces může být komplikovanější, často vyžaduje posloupnost přesnějších pohybů ve více osách s různými rychlostmi. Cílem programu UC_Tracking je možnost vytvářet vlastní jednoduché trajektorie, editovat je, ukládat do paměti, načítat a samozřejmě i řídit a cyklicky je opakovat. Stavový diagram UC_Tracking je zakreslen v příloze A.6.

6.2.1 Vytváření trajektorie

Hlavní myšlenkou aplikace UC_Tracking v postupném ukládání lineárních nebo rotačních pohybů jednotlivých os. To znamená, že v jednu chvíli se může pohybovat pouze jedna osa. Po každém takovém pohybu může uživatel uložit rychlost, polohu a osu, která se právě hýbala.

Uložené parametry už nejde přepsat či editovat, lze je jen smazat. Z toho důvodu musí vytvářená trajektorie přesně odpovídat výrobnímu procesu. Vytváření programu v praxi vypadá tak, že se zvolenou osou najede danou rychlostí na danou polohu a všechny hodnoty je po té možné uložit. Tímto způsobem se pokračuje, dokud není vytvořen kompletní výrobní proces. Parametry trajektorií se ukládají do vícerozměrných polí.

Příklad vytvářené trajektorie je na Obr. 10.

(40)

Obr. 10: Vytváření trajektorie

6.2.2 Nastavení a implementace počátku trajektorie

Důležitým faktorem je určení počátku pro spouštění programů. Program je řízen ve virtuálních souřadnicích os a začíná vždy od nulové polohy ve všech osách. Každý program se vytváří s vlastním počátkem, od kterého se může spouštět. Definice pevného počátku zajišťuje, že se jeden program bude vždy vykonávat stejně.

Kdyby UC_Tracking neměl tuto funkci, musel by si počátek pro každý program pamatovat uživatel anebo ho odhadovat. V obou případech by to byla komplikace pro obsluhu a při odhadování počátku by mohlo docházet k odchylkám, které jsou ve výrobním procesu nežádoucí. Přesto má uživatel možnost program spustit od jím zvolené polohy, nebo od polohy uloženého počátku.

Pro ukládání počátku bylo třeba využít hodnot poloh v reálných mechanických osách.

Příkaz pro hledání počátku zajišťuje, aby se stroj dostal do těchto reálných poloh před startem programu nezávisle na poloze virtuálních os. Po najetí na počátek se hodnoty relativních souřadnic vynulují a stroj je připraven pro vykonání programu.

6.2.3 Implementace polí ve vizualizaci

Vizualizace v Automation studiu má možnost zobrazovat pole pomocí komponenty listbox, která má veliká omezení. Nedokáže zobrazovat proměnné typu INT, REAL a BOOL. Stringový typ sice dokáže zobrazit, ale jen pokud jsou vložené speciálními funkcemi, jejichž programování je zdlouhavé a náročné. Proto se tento problém musel vyřešit z programového hlediska komplikovanějším, přesto funkčním řešením. Pro zobrazení se využilo velkého množství jednoprvkových komponent typu numeric a string. Komponenty jsou vizuálně upraveny tak, aby vypadaly jako jedna celistvá komponenta.

(41)

Snahou vizualizace je vytvořit prostředí, které bude pro uživatele co nejpřehlednější a nejjednodušší pro ovládání. Z programového hlediska mohou tyto ústupky přinášet nové problémy, které je třeba řešit. Uživateli se ve vizualizaci zobrazují hodnoty v převedených (mm, mm/min) jednotkách. Pro popis os jsou použita písmena (X,Y,Z..), tedy proměnné typu string. Pro vykonávání programu není v prostředí Automation studia vhodné využívat k podmínkám určení osy proměnné typu string. Neustálé přepočítávání jednotek také může způsobovat komplikace. Z těchto důvodů se vytváří dvě vícerozměrná pole. Jedno z nich slouží k zobrazování parametrů ve vizualizaci a druhé pro jednodušší a efektivnější vykonávání programu.

6.2.4 Vytváření, editace, ukládání a načítání programů

Vytváření složitější trajektorie může zabrat více času a může dojít k chybě. Navíc by bylo nepraktické vytvářet neustále stejné trajektorie každý den při zapnutí PLC.

Z těchto důvodů byla naprogramována možnost editace a ukládání trajektorií. V Tab. 21 je přehled všech příkazů, které slouží k usnadnění práce s vytvářením trajektorií.

Tab. 21: Příkazy pro editaci trajektorií

Příkaz Popis

Origin označení počátku pro trajektorii

Save uložení parametrů (osa, poloha rychlost) do pole Delete smazaní poslední uložené hodnoty na konci pole Clear smazání všech hodnot v poli

SavePrg uložení trajektorie do remanentní paměti LoadPrg načtení trajektorie z paměti

DelPrg smazání vybrané trajektorie

Před uložením trajektorie je nutné zadat její název. Názvy trajektorií se také musí ukládat do vlastního pole o stejné velikosti jako je velikost vícerozměrného pole pro ukládání trajektorií. Při načítání trajektorie pak vybraný index názvu odpovídá indexu trajektorie, což velice usnadňuje jejich vyhledávání a následné načítání nebo mazání.

Pole jmen je také třeba ukládat do remanentní paměti, aby se neztratila při výpadku proudu nebo restartu PLC.

(42)

6.2.5 Ovládání trajektorií

Z programového hlediska lze řešit řízení trajektorie pomocí FOR cyklu, který postupně posílá parametry z pole do příslušných MC_Basis, kde se vykoná pohyb na určenou polohu s přiřazenou rychlostí. Po jeho dokončení se index v poli zvedne o hodnotu jedna a posílá nové parametry. Tento proces se opakuje, dokud se na daném indexu v poli neobjeví nulové hodnoty. Z praktických důvodů má uživatel možnost ovlivňovat průběh vykonávané trajektorie příkazy popsanými v Tab. 22.

Další funkcí programu UC_Tracking při řízení trajektorie je možnost zadat počet opakování trajektorie. Po dokončení trajektorie se stroj ve všech osách přesune do nulové polohy virtuálních os. Pokud je zadáno více cyklů, začne se trajektorie vykonávat od začátku, dokud se nevykoná zadaný počet cyklů. V programu UC_Tracking bylo třeba v příslušném stavu použít dvou do sebe vnořených FOR cyklů.

Jeden pro odpočítávání indexu parametrů v poli a druhý pro odpočítávání počtu vykonaných cyklů.

Tab. 22: Příkazy pro ovládání trajektorie

Příkaz Popis

MoveOri najetí na počátek trajektorie

StartPrg start trajektorie ze zvoleného počátku StopPrg pozastavení trajektorie před dalším krokem

StepPrg vykonání jednoho kroku trajektorie z pozastaveného stavu ContPrg pokračování vykonávání trajektorie z pozastaveného stavu EndPrg okamžité ukončení vykonávání trajektorie

6.2.6 Datová struktura a stavový automat UC_Tracking

Některé části datové struktury již byly popsány v předchozích podkapitolách, přesto je pro řízení programu UC_Tracking potřeba mnohem více proměnných a parametrů. Datová struktura UC_Tracking v Tab. 23 se skládá ze dvou částí. Jedna slouží ke správnému řízení UC_Tracking a druhá obsahuje trajektorie ukládané do remanentní paměti.

Stavový automat, který řídí UC_Tracking, má 20 stavů. Ve většině z nich se však vykonávají uživatelem zadané příkazy a hned po jejich vykonání se Automat vrací to stavu TR_WAIT. Náročnější na logiku programování je část pro řízení trajektorie.

V ní musí automat projít přesnou sekvencí správně podmíněných stavů, ve kterých se

References

Related documents

Funkce hledající konturu IMAQ Extract Contour nalezne potřebné body, ze kterých se následně bude vypočítávat kontaktní úhel. Pole bodů, které jsou na výstupu funkce, jsou

Cílem této práce bylo navrhnout řešení pro plánování a řízení dopravy pro distribuční společnost, která se potýkala s velkými problémy v komunikaci.

Při malé hmotnosti mobilní robotické platformy se nevyplatí motorem rekuperovat energii zpět do trakční baterie, tudíž jednotka obsluhující motor nemusí obsahovat

Jedna z nejdůležitějších stránek celé aplikace, která zajišťuje možnost jak nadefinovat potřebné parametry měření, to je následně odesláno na server a tam

V projektovém týmu panuje organizační duch, který se řídí dle pravidel dané metodiky (Šochová, 2019, s. • Self-organized tým by měl být tvořen cca sedmi členy. Pokud by

Pokud bychom chtěli mít všechny moduly přesné jako analogové čtení přes zásobník, bylo by potřeba mít k dispozici lepší měřící kartu, takovou, která

V první části popisuje úvod do problematiky projektového řízení, zkoumá jednotlivé fáze a modely životních cyklů projektu, dále shrnuje postup při řízení

Prestacio jakoˇ zto grafick´ e rozhrann´ı aplikace obsahuje nˇ ekolik rozliˇ cn´ ych ˇ c´ ast´ı, kter´ e zahrnuj´ı vytˇ eˇ zov´ an´ı informac´ı z verzovac´ıch syst´ em˚