• No results found

Implementace komunikaˇcn´ıho protokolu Faulhaber RS-232

N/A
N/A
Protected

Academic year: 2022

Share "Implementace komunikaˇcn´ıho protokolu Faulhaber RS-232"

Copied!
40
0
0

Loading.... (view fulltext now)

Full text

(1)

Implementace komunikaˇ cn´ıho protokolu Faulhaber RS-232

Bakal´ aˇ rsk´ a pr´ ace

Studijn´ı program: B2646 – Informaˇcn´ı technologie Studijn´ı obor: 1802R007 – Informaˇcn´ı technologie Autor pr´ace: Miroslav Hl´avka

Vedouc´ı pr´ace: Ing. Leoˇs Beran, Ph.D.

(2)

Implementation of communication protocol Faulhaber RS-232

Bachelor thesis

Study programme: B2646 – Information technology Study branch: 1802R007 – Information technology

Author: Miroslav Hl´avka

Supervisor: Ing. Leoˇs Beran, Ph.D.

(3)

TECHNICKÁ UNIVERZITA V LIBERCI

Fakulta

mechatroniky,

informatiky

a mezioborových

studií

Akademický rok: 2OL4/2OI5

Z^D ANI BAKALARSKE PRACE

(PRoJtrKTU, UMĚLECKEHO

lÍt

A, UMĚLECKEHo vÝNoNU)

Jméno a

příjmení: Miroslav Hlávka

Osobní

číslo:

M12000131

Studijní

program:

82646 Informační technologie Studijní

obor:

Informační technologie

\ázev

tématu:

Implementace komunikačního

protokolu

Faulhaber RS232 Zadávající katedra: ťJstav mechatroniky a technické

informatiky

Zásady pro vypracování:

1. Seznamte se s komunikačním protokolem společnosti Faulhaber.

2, Navrhněte funkční bloky pro ovládání jednotek Faulhaber v jazyku ST.

3.

K

funkčním blokům vytvořte nápovědu dle zvyklostí.

-l. Návrh a realizaci ověřte na dostupném hardwaru

MCBL

3006 S RS.

(4)

Rozsah grafických prací:

Rozsah pracovní zprávy :

Forma zpt acov ání bakalářské práce:

Seznam odborné literatury:

Vedoucí bakalářské práce:

Konzultant bakalářské práce:

Datum zadání bakalářské práce:

Termín odevzdání bakalářské práce:

dle

potřeby

dokumentace 30-40 stran

tištěná/elektronická

Ing. Leoš

Beran, Ph.D.

Ústa., nrechatroniky a technické infornratik1, Ing.

}Iartin Diblík, Ph.D.

Ústa., mechatroniky a technické infornratiky

10.

října

2Ot4 15. května 2015

[1]

AUTOMATION, B&R. Controls

-

training text. Austria:

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

[2]

FAULHABER. Communication

and F\rnction

\Ianual

fonline]. ZOLZ [cit.

2Ot2-I0-05]. Dostupné zz

http z / / www. faulhab e r. c o m / up loadp k / E N _ 7 0 0 0 _0 5 0 2 9 . p

df

[3]

JOHN, Kharl-Heinzl 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-t2oL5-2

/c, //'

'

/^

'l,Y,

'fv,,lt.t {lr-l

/.'

(5)

w rm§x §t§§wwx §

Byl jsem seznámen s tím, že na mou bakalářskou práci se plně vztahuje zákon č. 12l12000 Sb., o právu autorském, zejména § 60 školní dílo.

Beru na vědomí, že Technická univerzita

v

Liberci (TUL) neza- sahuje do mých autorských práv užitím mé bakalářské práce pro

vnitřní potřebu TUL.

Užiji-li bakalářskou práci nebo poskytnu-li licenci k jejímu využití, jsem

si

vědom povinnosti informovat

o

této skutečnosti TUL;

v

tomto případě má

TUL

právo ode mne požadovat úhradu nákladů, které vynaložila na vytvoření díla, až ďo jejich skutečné výše.

BakaláŤskou práci jsem vypracoval samostatně s použitím uvedené literatury a na základě konzultací s vedoucím mé bakalářské práce a konzultantem.

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

Datum: ,ry,5. Lt-1,

Podpis: W -l

(6)

Podˇ ekov´ an´ı

Chtˇel bych podˇekovat sv´emu vedouc´ımu bakal´aˇrsk´e pr´ace Ing. Leoˇsovi Beranovi, Ph.D. za odborn´e veden´ı, za pomoc a rady pˇri zpracov´an´ı t´eto pr´ace.

(7)

Abstrakt

Pr´ace obsahuje sezn´amen´ı se s komunikaˇcn´ım protokolem spoleˇcnosti Faulhaber, kter´y je vyuˇz´ıv´an pro ˇr´ızen´ı pohonn´ych syst´em˚u. Navrˇzen´ı softwarov´ych funkˇcn´ıch blok˚u pro zaˇr´ızen´ı PLC, urˇcen´ych pro ovl´ad´an´ı jednotek Faulhaber, pomoc´ı zmiˇnovan´eho protokolu, v jazyce Strukturovan´y text. D´ale k tˇemto funkˇcn´ım blok˚um je vytvoˇrena n´apovˇeda, kter´a bude slouˇzit uˇzivatel˚um k snazˇs´ı pr´aci s tˇemito funkˇcn´ımi bloky.

Hlavn´ı pˇr´ınos pr´ace spoˇc´ıv´a ve vytvoˇren´ı knihovny pro PLC zaˇr´ızen´ı, kter´a umoˇzn´ı ovl´adat jednotky Faulhaber za pomoci ko- munikaˇcn´ıho rozhran´ı RS-232.

Kl´ıˇcov´a slova:

protokol Faulhaber, PLC, softw´arov´e funkˇcn´ı bloky, ovl´ad´an´ı po- honu Faulhaber, n´apovˇeda

Abstract

This work includes familiarization with Faulhaber’s communication protocol, which is used for drive systems. Design function blocks for PLC devices, used for controlling Faulhaber’s units in programming language Structured text. Create for these function blocks Help.

Help will serve for easier understanding of using library and each individual function blocks in it.

The main contribution consist of create a library for PLC devices which allow control Faulhaber’s units with communication interface RS-232.

Kl´ıˇcov´a slova:

protocol Faulhaber, PLC, software function blocks, controlling Faulhaber’s drive systems, help

(8)

Obsah

Seznam zkratek . . . 11

Uvod´ 12 1 Pouˇzit´e technologie 13 1.1 Automation Studio . . . 13

1.2 Strukturovan´y text . . . 13

1.3 Knihovna DVFrame . . . 13

1.3.1 Xopen . . . 14

1.3.2 Gbuf . . . 14

1.3.3 Write . . . 14

1.3.4 Read . . . 15

1.3.5 Rbuf . . . 15

1.3.6 Close . . . 15

1.4 ARsim . . . 16

1.5 HelpNDoc . . . 16

2 Pˇriprava pracoviˇstˇe 17 2.1 Zapojen´ı motoru MCS3268 . . . 17

2.2 Komunikace protokolu Faulhaber . . . 17

2.3 Zaloˇzen´ı a nastaven´ı projektu . . . 18

2.4 Testov´an´ı komunikace s pohonnou jednotkou . . . 18

3 Tvorba knihovny 20 3.1 Zaloˇzen´ı knihovny . . . 20

3.2 Datov´a struktura . . . 20

3.3 Vytv´aˇren´ı funkˇcn´ıch blok˚u . . . 22

3.4 Funkˇcn´ı bloky . . . 23

3.5 Export knihovny . . . 24

4 Princip fungov´an´ı FB v knihovnˇe FHLib 25 4.0.1 WAIT . . . 25

4.0.2 INIT . . . 25

4.0.3 OPEN COMMUNICATION . . . 25

(9)

4.0.7 READ RESPONSE . . . 26

4.0.8 RELEASE READ BUFFER . . . 26

4.0.9 CLOSE COMMUNICATION . . . 27

4.0.10 ERROR . . . 27

4.0.11 RESET . . . 27

5 Jednotliv´e funkˇcn´ı bloky 29 5.1 Funkˇcn´ı blok FH Power . . . 29

5.1.1 Parametry . . . 29

5.1.2 Rozd´ıly . . . 29

5.2 Funkˇcn´ı blok FH Velocity . . . 29

5.2.1 Parametry . . . 30

5.2.2 Rozd´ıly . . . 30

5.3 Funkˇcn´ı blok FH PositionAbsolute . . . 30

5.3.1 Parametry . . . 30

5.3.2 Rozd´ıly . . . 30

5.4 Funkˇcn´ı blok FH PositionRelative . . . 31

5.4.1 Parametry . . . 31

5.4.2 Rozd´ıly . . . 32

5.5 Funkˇcn´ı blok FH SetCyclicPosition . . . 32

5.5.1 Parametry . . . 32

5.5.2 Rozd´ıly . . . 32

6 Uˇzivatelsk´y n´avod knihovny FHLib 33 6.1 Import knihovny . . . 33

6.2 Datov´a struktura . . . 33

6.3 Promˇenn´e . . . 33

6.4 Vol´an´ı funkˇcn´ıho bloku v programu . . . 34

7 Tvorba n´apovˇedy 35 7.1 Popis programu HelpNDoc4 . . . 35

7.2 Tvorba samotn´e n´apovˇedy . . . 35

7.2.1 Z´akladn´ı informace . . . 35

7.2.2 Funkˇcn´ı bloky . . . 35

7.2.3 Chybov´e stavy . . . 36

A Obsah pˇriloˇzen´eho CD 39

(10)

Seznam obr´ azk˚ u

1.1 Prostˇred´ı Automation Studio . . . 14

1.2 While cuklus v ST . . . 15

1.3 Program ARsim . . . 16

1.4 Program HelpNDoc4 . . . 16

2.1 Sch´ema zapojen´ı motoru MCS3268 . . . 17

2.2 Motion Control System 3268 od firmy Faulhaber . . . 18

3.1 Datov´a struktura knihovny . . . 22

3.2 Datov´a struktura funkˇcn´ıch blok˚u . . . 23

4.1 V´yvojov´y diagram funkˇcn´ıho bloku knihovny FHLib . . . 28

7.1 Uk´azka n´apovˇedy . . . 36

(11)

Seznam tabulek

5.1 Parametry FH Power . . . 29

5.2 Parametry FH Velocity . . . 30

5.3 Parametry FH PositionAbsolute . . . 31

5.4 Parametry FH PositionRelative . . . 31

5.5 Parametry FH SetCyclicPosition . . . 32

(12)

Seznam zkratek

B&R Bernecker a Rainer, firma vyr´abˇej´ıc´ı PLC PLC Programovateln´y logick´y automat

FB Funkˇcn´ı blok

ST Programovac´ı jazyk Strukturovan´y text RS-232 S´eriov´e komunikaˇcn´ı rozhran´ı

ANSI C Standardizovan´y programovac´ı jazyk C

WYSIWYG What you see is what you get, co vid´ıˇs, to dostaneˇs

PDF Portable Document Format, pˇrenositeln´y form´at dokumentu CHM Microsoft Compiled HTML Help

HTML HyperText Markup Language, znaˇckovac´ı jazyk pro tvorbu hyper- textov´ych dokument˚u

(13)

Uvod ´

D˚uvodem pro v´ybˇer tohoto t´ematu byla moˇznost prohloubit si sv´e znalosti ve v´yvoj- ov´em prostˇred´ı Automation Studio a vyzkouˇset si pr´aci s pohonnou jednotkou firmy Faulhaber.

Hlavn´ım c´ılem t´eto bakal´aˇrsk´e pr´ace bylo nejprve se sezn´amit s komunikaˇcn´ım protokolem, kter´y vyuˇz´ıv´a spoleˇcnost Faulhaber pro ˇr´ızen´ı sv´ych pohonn´ych syst´em˚u.

Navrhnout knihovnu funkˇcn´ıch blok˚u v jazyce Strukturovan´y text, kter´a umoˇzn´ı ovl´adat pohonn´e jednotky firmy Faulhaber po s´eriov´em komunikaˇcn´ım rozhran´ı RS–232. K t´eto knihovnˇe a jej´ım funkˇcn´ım blok˚um pot´e vytvoˇrit n´apovˇedu dle zvyklost´ı pro usnadnˇen´ı a zpˇrehlednˇen´ı pr´ace s vytvoˇrenou knihovnou. D´ale n´avrh a realizaci ovˇeˇrit na dostupn´em hardwaru MCBL 3006 S RS. Pro vytvoˇren´ı samotn´e knihovny a jej´ıch funkˇcn´ıch blok˚u jsem pouˇzil v´yvojov´e prostˇred´ı Automation Stu- dio od firmy B&R. V knihovnˇe jsem vytvoˇril pˇet z´akladn´ıch funkˇcn´ıch blok˚u pro ovl´ad´an´ı jednotek Faulhaber. K t´eto knihovnˇe jsem vytvoˇril n´apovˇedu za pomoc´ı programu HelpNDoc 4. K dosaˇzen´ı tohoto c´ıle jsem se musel sezn´amit s programo- vateln´ymi logick´ymi automaty, v´yvojov´ym prostˇred´ım Automation Studio, tvorbou knihoven a funkˇcn´ıch blok˚u, komunikaˇcn´ım protokolem a pohonn´ymi jednotkami firmy Faulhaber, obecnou tvorbou n´apovˇed a s programem HelpNDoc pro jejich tvorbu.

(14)

1 Pouˇ zit´ e technologie

Prvn´ı kapitola sezn´am´ı ˇcten´aˇre s pouˇzit´ymi technologiemi. Je zde sezn´amen´ı s v´yvoj- ov´ym prostˇred´ım Automation Studio, programovac´ım jazykem Strukturovan´y text, knihovnou DVFrame, programem ARsim a HelpNDoc.

1.1 Automation Studio

Automation Studio je v´yvojov´e prostˇred´ı urˇcen´e pro zaˇr´ızen´ı od firmy B&R. Je velmi robustn´ı a m´a mnoho funkc´ı. Podporuje psan´ı program˚u v nejr˚uznˇejˇs´ıch programo- vac´ıch jazyc´ıch napˇr´ıklad ANSI C, Sekvenˇcn´ı funkˇcn´ı diagram, Ladder Diagram, Strukturovan´y text a mnoho dalˇs´ıch. Automation Studio obsahuje 3 z´akladn´ı po- hledy. Prvn´ım je konfigurace, umoˇzˇnuje pˇrid´avat a nastavovat jednotliv´e konfigurace pro dan´e PLC. Druh´y, fyzick´y pohled, slouˇz´ı pro pˇrid´av´an´ı virtu´aln´ıho hardwaru jako je kl´avesnice a display. Logick´y pohled umoˇzˇnuje spravovat jednotliv´e soubory, knihovny a vizualizaci. Automation Studio obsahuje n´astroj Build pro sestaven´ı projektu, Transfer pro odesl´an´ı sestaven´eho projektu do PLC, funkci Monitor pro sledov´an´ı stavu promˇenn´ych za bˇehu PLC, n´astroj Debugger pro ladˇen´ı programu a mnoho dalˇs´ıch.

1.2 Strukturovan´ y text

Tato pr´ace byla vytv´aˇrena v programovac´ım jazyce Strukturovan´y text. Je to vyˇsˇs´ı programovac´ı jazyk vych´azej´ıc´ı z jazyku Pascal. Syntaxe jazyka ST je d´ana povo- len´ymi v´yrazy a pˇr´ıkazy. V´yraz se skl´ad´a z oper´ator˚u a operand˚u. Pˇr´ıkazy jsou pro pˇriˇrazen´ı, vol´an´ı funkc´ı, v´ybˇer a iteraci.

1.3 Knihovna DVFrame

Knihovna DVFrame je soubor funkˇcn´ıch blok˚u slouˇz´ıc´ı k v´ymˇenˇe dat s extern´ımi zaˇr´ızen´ımi jako jsou tisk´arny, monitory a podobnˇe. V´ymˇena dat se prov´an´ı pˇrij´ım´an´ım a odes´ıl´an´ım takzvan´ych r´amc˚u. Z t´eto knihovny jsou pouˇzity funkce xopen, gbuf, write, read, rbuf a close.

(15)

1.3.1 Xopen

Funkˇcn´ı blok Xopen slouˇz´ı pro inicializaci a otevˇren´ı komunikace s extern´ım zaˇr´ızen´ım.

Funkˇcn´ı blok m´a ˇctyˇri vstupn´ı parametry. Parametr enable, kter´y je datov´eho typu BOOL a slouˇz´ı pro zapnut´ı samotn´eho funkˇcn´ıho bloku. Parametr device je urˇcen´y pro v´ybˇer rozhran´ı. Parametr mode nastavuje typ, pˇrenosovou rychlost, paritu, datov´e bity a stop bity zvolen´eho rozhran´ı. Posledn´ım vstupn´ım parametrem je ukazatel na konfiguraˇcn´ı strukturu, kter´a definuje parametry odes´ılan´eho r´amce.

Tento funkˇcn´ı blok vrac´ı parametr ident, kter´ym se jednoznaˇcnˇe identifikuje dan´e komunikaˇcn´ı rozhran´ı. Parametr ident je vstupn´ı parametr ve vˇsech n´asleduj´ıc´ıch funkˇcn´ıch bloc´ıch knihovny DVFrame.

1.3.2 Gbuf

Funkˇcn´ı blok Gbuf je urˇcen pro inicializaci vyrovn´avac´ı pamˇeti, do kter´e se pot´e nahraj´ı data k odesl´an´ı. M´a dva parametry, enable a ident. Parametr enable je datov´eho typu BOOL a slouˇz´ı pro samotn´e vykon´an´ı funkˇcn´ıho bloku. Parametr ident pro identifikov´an´ı komunikaˇcn´ıho rozhran´ı.

1.3.3 Write

Funkˇcn´ı blok Write umoˇzˇnuje odeslat data z vyrovn´avac´ı pamˇeti. Funkˇcn´ı blok m´a tˇri parametry. Parametr enable pro vykon´an´ı samotn´eho funkˇcn´ıho bloku. Parametr ident pro identifikaci komunikaˇcn´ıho zaˇr´ızeni a posledn´ım vstupn´ı parametrem je buffer, kter´y urˇcuje adresu vyrovn´avac´ı pamˇeti, ve kter´e jsou uloˇzen´a data k odesl´an´ı.

Obr´azek 1.1: Prostˇred´ı Automation Studio

(16)

Obr´azek 1.2: While cuklus v ST

1.3.4 Read

Funkˇcn´ı blok Read ˇcte odpovˇedi odeslan´e z extern´ıho zaˇr´ızen´ı a ukl´ad´a je do vy- rovn´avac´ı pamˇeti. Funkˇcn´ı blok m´a dva vstupn´ı parametry. Parametr enable pro proveden´ı samotn´eho funkˇcn´ıho bloku a parametr ident pro jednoznaˇcn´e identifi- kov´an´ı komunikaˇcn´ıho rozran´ı.

1.3.5 Rbuf

Po pˇreˇcten´ı odpovˇedi je potˇreba vymazat vyrovn´avac´ı pamˇet’. K tomu slouˇz´ı funkˇcn´ı blok Rbuf. Funkˇcn´ı blok m´a ˇctyˇri vstupn´ı parametry. Parametr enable pro vykon´an´ı samotn´e funkce. Parametr ident pro identifikov´an´ı komunikaˇcn´ıho rozhran´ı. Para- metr buffer, kter´y ukazuje na vyrovn´avac´ı pamˇet’ urˇcenou k smaz´an´ı a parametr bufflng, kter´y urˇcuje velikost vyrovn´avac´ı pamˇeti.

1.3.6 Close

Funkˇcn´ı blok Close slouˇz´ı pro ukonˇcen´ı komunikace s extern´ım zaˇr´ızen´ım. Funkˇcn´ı blok m´a dva vstupn´ı parametry. Parametr enable, datov´eho typu BOOL, pro vy- kon´an´ı funkˇcn´ıho bloku a parametr ident pro identifikaci komunikaˇcn´ıho rozhran´ı.

(17)

1.4 ARsim

ARsim je program, kter´y je souˇc´ast´ı Automation Studia. Slouˇz´ı pro virtualizaci pro- gramovateln´eho logick´eho automatu na poˇc´ıtaˇci . D´ıky tomuto programu nen´ı nutn´e m´ıt pˇri v´yvoji projektu u sebe fyzicky PLC zaˇr´ızen´ı. Program n´am umoˇzˇnuje toto virtu´aln´ı PLC v urˇcit´e m´ıˇre ovl´adat. M˚uˇzeme napˇr´ıklad restartovat PLC, vypnout PLC, pˇreˇc´ıst si hl´aˇsky, kter´e PLC vypisuje na display, spustit PLC v diagnostick´em reˇzimu a podobnˇe.

Obr´azek 1.3: Program ARsim

1.5 HelpNDoc

HelpNDoc je program na vytv´aˇren´ı HTML n´apovˇed. Je zaloˇzen´y na WYSIWYG a tud´ıˇz se podob´a textov´ym editor˚um, jako jsou napˇr´ıklad Microsoft Word nebo OpenOffice Writer. V´yslednou n´apovˇedu lze pot´e uloˇzit ve form´atech HTML, PDF, CHM a mnoha dalˇs´ıch.

Obr´azek 1.4: Program HelpNDoc4

(18)

2 Pˇ riprava pracoviˇ stˇ e

Tato kapitola obsahuje popis a sch´ema zapojen´ı pohonu MCS3268, popis komu- nikaˇcn´ıho protokolu Faulhaber, postup vytv´aˇren´ı a nastaven´ı projektu a testov´an´ı komunikace s pohonem za pomoci programu Motion Manager.

2.1 Zapojen´ı motoru MCS3268

Z motoru MCS3268 je veden jeden s´eriov´y kabel. Dva vodiˇce tohoto kabelu jsou pˇrivedeny do nap´ajec´ıho zdroje Power Supply PS1042 od firmy B&R. Modr´y, kter´y slouˇz´ı jako uzemnˇen´ı a r˚uˇzov´y, kter´y je urˇcen pro nap´ajec´ı napˇet´ı. Dalˇs´ı dva vodiˇce jsou pˇripojen´e ke konektoru RS-232. Prvn´ı vodiˇc je zelen´e barvy a slouˇz´ı pro pˇrenos dat. Druh´y vodiˇc je ˇzlut´e barvy a je urˇcen pro pˇr´ıjem dat. Na RS-232 konektor je pˇripojen´a USB redukce, kter´a je pot´e pˇripojen´a do poˇc´ıtaˇce, ve kter´em virtu´aln´ı PLC komunikuje s motorem.

Obr´azek 2.1: Sch´ema zapojen´ı motoru MCS3268

2.2 Komunikace protokolu Faulhaber

Komunikaˇcn´ı protokol firmy Faulhaber umoˇzˇnuje komunikovat pˇres s´eriov´e rozhran´ı

(19)

Obr´azek 2.2: Motion Control System 3268 od firmy Faulhaber

Pˇr´ıkazov´y r´amec je tvoˇren dvˇema povinn´ymi a dvˇema nepovinn´ymi ˇc´astmi. Prvn´ı ˇc´ast pˇr´ıkazov´eho r´amce je urˇcen´a pro nepovinn´y Node Number, kter´y umoˇzˇnuje ˇr´ıdit v´ıce zaˇr´ızen´ı na jednom rozhran´ı. Za n´ım n´asleduje povinn´a ˇc´ast Command, kter´a je tvoˇrena ASCII ˇretˇezcem a je urˇcena pro samotn´y pˇr´ıkaz. Jako dalˇs´ı je nepovinn´a ˇc´ast s n´azvem Argument, kter´a je potˇreba jen u nˇekter´ych pˇr´ıkaz˚u, napˇr´ıklad nastaven´ı ot´aˇcek a podobnˇe. Posledn´ı ˇc´ast r´amce tvoˇr´ı netisknuteln´y ASCII znak Carry Return s decim´aln´ım k´odem 13. R´amec s odpovˇed´ı je tvoˇren tˇremi ˇc´astmi. Prvn´ı ˇc´ast tvoˇr´ı odpovˇed’ ve formˇe ASCII ˇretˇezce. Za n´ı n´asleduje netisknuteln´y ASCII znak Carry Return a Line Feed.

2.3 Zaloˇ zen´ı a nastaven´ı projektu

Pˇred samotn´ym vytv´aˇren´ım knihovny bylo potˇreba nejprve zaloˇzit a spr´avnˇe na- stavit projekt ve v´yvojov´em prostˇred´ı Automation Studia. Vytv´aˇren´ı projekt˚u v Automation Studiu je velmi intuitivn´ı. Pro vytvoˇren´ı projektu klikneme v horn´ım panelu na File - New Project. Otevˇrel se pr˚uvodce pro vytv´aˇren´ı projektu. Vypln´ıme n´azev projektu, jeho cestu, zaˇskrtneme moˇznost pouˇz´ıv´an´ı virtu´aln´ıho PLC pomoc´ı Runtime ARSim a dokonˇc´ıme vytv´aˇren´ı projektu tlaˇc´ıtkem Finish.

Po vytvoˇren´ı projektu bylo potˇreba nastavit s´eriov´y komunikaˇcn´ı port, na kter´em budeme komunikovat s pohonnou jednotkou spoleˇcnosti Faulhaber. Pˇrepnut´ım do fyzick´eho pohledu, prav´ym kliknut´ım na komunikaˇcn´ı port IF1 a zvolen´ım moˇznosti Configuration se dostaneme do nastaven´ı s´eriov´eho portu, kter´y budeme vyuˇz´ıvat pˇri komunikaci. Typ zaˇr´ızen´ı jsme zvolili RS232, Bauld rate na hodnotu 9600, parametr Parity jsme nastavili na hodnotu None a vˇse ostatn´ı jsme ponechali v p˚uvodn´ım nastaven´ı.

2.4 Testov´ an´ı komunikace s pohonnou jednotkou

Nejjednoduˇsˇs´ı zp˚usob ovˇeˇren´ı spr´avnosti zapojen´ı a vyzkouˇsen´ı jednoduch´e komu- nikace s pohonnou jednotkou MCS3268 bylo pouˇz´ıt´ı softwaru Motion Manager od firmy Faulhaber, kter´y umoˇzˇnuje nav´azat spojen´ı s pˇripojenou pohonnou jednotkou a pos´ılat pˇr´ıkazov´e r´amce. T´ım, ˇze program identifikoval samotnou pohonnou jed-

(20)

Dalˇs´ım krokem bylo vyzkouˇset si jednotliv´e pˇr´ıkazy jako zapnut´ı, nastaven´ı ot´aˇcek, nastaven´ı pozice a podobnˇe. Po osvojen´ı tˇechto pˇr´ıkaz˚u a jejich odpovˇed´ı jsme mohli pˇrej´ıt k vytvoˇren´ı vlastn´ı komunikace ve v´yvojov´em prostˇred´ı Automation studia

(21)

3 Tvorba knihovny

V t´eto kapitole se pojedn´av´a o vytv´aˇren´ı knihovny, jej´ı datov´e struktuˇre o jednot- liv´ych funkˇcn´ıch bloc´ıch a jejich vytv´aˇren´ı. D´ale o zp˚usobu exportov´an´ı knihoven ve v´yvojov´em prostˇred´ı Automation Studio.

3.1 Zaloˇ zen´ı knihovny

Po vyzkouˇsen´ı jednoduch´e komunikace, vytvoˇren´ı samotn´eho projektu a nastaven´ı potˇrebn´e konfigurace pro komunikaci bylo potˇreba vytvoˇrit samotnou knihovnu, kter´a bude obsahovat funkˇcn´ı bloky pro ovl´ad´an´ı pohonn´ych jednotek Faulhaber. V n´ami vytvoˇren´em projektu ve v´yvojov´em prostˇred´ı Automation studia se pˇrepneme do logick´eho pohledu. V tomto pohledu pot´e prav´ym kliknut´ım vyvol´ame menu, ve kter´em zvol´ıme moˇznost Add object. Zobraz´ı se vyskakovac´ı okno, kde z kategorie vybereme moˇznost Library a pot´e zvol´ıme New Library. Pot´e je nutn´e nastavit n´azev knihovny a jazyk knihovny. Knihovnu jsme pojmenovali FHLib a jazyk knihovny IEC Library. Dokonˇc´ıme pr˚uvodce kliknut´ım na tlaˇc´ıtko Next a pˇriˇrazen´ım nov´eho objektu k aktivn´ımu CPU.

3.2 Datov´ a struktura

Pˇri vytv´aˇren´ı nov´e knihovny, kterou jsem nazval FHLib, jsme zaˇskrtli moˇznost vy- tvoˇrit soubor pro deklaraci datov´ych struktur. V Logick´em pohledu jsme si rozbalili vytvoˇrenou knihovnu FHLib, kter´a v sobˇe obsahuje tˇri soubory, FHLib.fun, FH- Lib.var a FHLib.typ. Datov´a struktura se vytv´aˇr´ı v souboru s pˇr´ıponou .typ.

Otevˇren´ım tohoto souboru se v hlavn´ım oknˇe programu zobraz´ı tabulka se ˇctyˇrmi sloupci:n´azev, typ, reference a popis. Hodnoty ve sloupci n´azev reprezentuj´ı n´azvy datov´ych typ˚u pouˇz´ıvan´ych v promˇenn´ych, kter´e jsou pot´e pouˇz´ıv´any v cel´em k´odu knihovny. Sloupec typ urˇcuje datov´y typ promˇenn´e jako je napˇr´ıklad boolean, integer anebo sloˇzit´e datov´e typy jako jsou funkˇcn´ı bloky nebo vlastn´ı struktury. Sloupec popis slouˇz´ı pro vloˇzen´ı vlastn´ıho koment´aˇre k dan´emu datov´emu typu. Tento ko- ment´aˇr nebude nikde v k´odu vidˇet a slouˇz´ı pouze pro zpˇrehlednˇen´ı definice datov´ych typ˚u. Veˇsker´e datov´e typy, kter´e v programu budeme pozdˇeji potˇrebovat, jsme se snaˇzili logicky rozdˇelit a zapouzdˇrit do vlastn´ıch datov´ych struktur. Rozhodli jsme

(22)

se datov´e typy rozdˇelit do ˇctyˇr z´akladn´ıch struktur, FHLib typ, Settings, Steps a Helpers.

Vytv´aˇren´ı datov´ych struktur jsme prov´adˇeli kliknut´ım na pr´azdn´y ˇr´adek prav´ym tlaˇc´ıtkem myˇsi a zvolen´ım Add Structure Type. Jako prvn´ı jsme si vytvoˇrili hlavn´ı strukturu s n´azvem FHLib typ, kter´a bude obsahovat veˇsker´e potˇrebn´e funkˇcn´ı bloky pro komunikaci pˇres rozhran´ı RS-232 z knihovny DVFrame. V t´eto struktuˇre jsme pot´e vytvoˇrili ˇcleny FRM xopen 0 s datov´ym typem FRM xopen pro inicia- lizaci komunikace, FRM gbuf 0 s datov´ym typem FRM gbuf pro vytvoˇren´ı vy- rovn´avac´ı pamˇeti, FRM write 0 s datov´ym typem FRM write pro odes´ıl´an´ı r´amc˚u, FRM robuf 0 s datov´ym typem FRM robuf pro uvolˇnov´an´ı vyrovn´avac´ı pamˇeti po odesl´an´ı r´amce, FRM read 0 s datov´ym typem FRM read pro ˇcten´ı odpovˇedi, FRM rbuf 0 s datov´ym typem FRM rbuf pro uvolnˇen´ı vyrovn´avac´ı pamˇeti po pˇreˇcten´ı pˇrijmut´ıch dat, xopenConfig s datov´ym typem XOPENCONFIG pro nastaven´ı rozˇsiˇru- j´ıc´ıch parametr˚u pro komunikaci, posledn´ım ˇclenem struktury FHLib typ je step s datov´ym typem Steps, kter´y urˇcuje v jak´em stavu je automat zrovna nach´az´ı.

N´aslednˇe jsme vytvoˇrili v´yˇctov´y typ s n´azvem Steps, kter´y obsahuje jeden´act ˇclen˚u. Je urˇcen pro rozdˇelen´ı programu kaˇzd´eho funkˇcn´ıho bloku do jednotliv´ych stav˚u stavov´eho automatu. Prvn´ım a z´akladn´ım stavem je WAIT, kter´y m´a za

´

ukol ˇcekat na povel k vykon´an´ı funkˇcn´ıho bloku od uˇzivatele. N´asleduj´ıc´ım sta- vem je INIT, kter´y m´a za ´ukol shrom´aˇzdit veˇsker´e vstupn´ı parametry od uˇzivatele a pˇripravit je pro zah´ajen´ı komunikace. Dalˇs´ım stavem je OPEN COMMUNICATION, kter´y otevˇre komunikaci. N´asleduje stav CREATE BUFFER pro vytvoˇren´ı vyrovn´a- vac´ı pamˇeti urˇcen´e pro odes´ıl´an´ı dat. Za t´ımto stavem n´asleduje stav

PREPARE FOR SENDING DATA, kter´y m´a za ´ukol naform´atovat data k odesl´an´ı a uloˇzit je do vyrovn´avac´ı pamˇeti. N´asleduj´ıc´ım stavem je stav SEND DATA, ve kter´em se odeˇsle r´amec. Dalˇs´ım stavem je READ RESPONCE, kter´y se star´a o ˇcten´ı odpovˇedi. N´asleduje stav RELEASE READ BUFFER, kter´y uvolˇnuje vyrovn´avac´ı pamˇet’ urˇcenou pro ˇcten´ı odpovˇedi. Dalˇs´ım stavem je CLOSE COMMUNICATION, kter´y m´a za ´ukol uzavˇr´ıt komunikaci. Pˇredposledn´ım stavem je stav ERROR, kter´y m´a za ´ukol informovat uˇzivatele o vzniku chyby a pozastavit svoj´ı ˇcinnost. Posledn´ım stavem ve v´yˇctov´em typu Steps je RESET, kter´y m´a za ´ukol vynulovat nastaven´ı v pˇr´ıpadˇe, ˇze se funkˇcn´ı blok dostane do stavu ERROR.

Dalˇs´ı datovou strukturu jsme nazvali Setting a slouˇz´ı pro nastaven´ı komunikace.

Veˇsker´e ˇcleny t´eto struktury jsou datov´eho typu STRING. Prvn´ım ˇclenem je de- vice name, kter´y slouˇz´ı pro zvolen´ı n´azvu s´eriov´eho portu. Dalˇs´ım ˇclenem je type, kter´y slouˇz´ı pro zvolen´ı typu rozhran´ı, v naˇsem pˇr´ıpadˇe RS232. N´asleduje para- metr baud rate, pro nastaven´ı ˇs´ıˇrky p´asma. Za n´ım se nach´az´ı ˇclen parity, data bits, stop bits a mode builder, kter´y m´a za ´ukol sestavit tyto parametry do jednoho ˇretˇezce.

(23)

Posledn´ı datovou strukturou je struktura Helpers, kter´a obsahuje pomocn´e promˇe- nn´e pouˇz´ıvan´e v jednotliv´ych funkˇcn´ıch bloc´ıch. Prvn´ımi ˇcleny jsou ToStringHelper a CommandHelper s datov´ymi typy STRING, kter´e jsou pouˇz´ıv´any pˇri sestavov´an´ı pˇr´ıkaz˚u k odesl´an´ı. N´asleduje ˇclen ErrorHelper, kter´y m´a datov´y typ UINT, kter´y se pouˇz´ıv´a nastane-li ve funkˇcn´ım bloku chyba. D´ale n´asleduj´ıˇcleny inPower, inVelocity a inPosition, kter´e slouˇz´ı pro uloˇzen´ı hodnot, ve kter´ych se motor nach´az´ı. N´asleduje PositionHelper, kter´y je datov´eho typu INT a poˇc´ıt´a kolik paket˚u zb´yv´a jeˇstˇe odeslat pˇred dokonˇcen´ım komunikace. Posledn´ım ˇclenem datov´e struktury Helpers je ˇclen RisingEdge, kter´a hl´ıd´a, zda se nezmˇenila n´abˇeˇzn´a hrana na parametru Enable u jednotliv´ych funkˇcn´ıch blok˚u.

Obr´azek 3.1: Datov´a struktura knihovny

3.3 Vytv´ aˇ ren´ı funkˇ cn´ıch blok˚ u

Po vytvoˇren´ı samotn´e knihovny mus´ıme vytvoˇrit jednotliv´e funkˇcn´ı bloky. Ty vy- tvoˇr´ıme v logick´em pohledu prav´ym kliknut´ım na knihovnu a zvolen´ım moˇznosti Add Object. Otevˇre se dialogov´e okno, kde z kategorie Function Block zvol´ıme je-

(24)

funkˇcn´ıho bloku, zvol´ıme programovac´ı jazyk Strukturovan´y text a tlaˇc´ıtkem Next pokraˇcujeme d´ale v pr˚uvodci. V n´asleduj´ıc´ım dialogu zm´aˇckneme tlaˇc´ıtko Add a t´ım pˇrid´ame nov´y parametr do funkˇcn´ıho bloku. Kaˇzd´y parametr m´a sv˚uj datov´y typ a rozsah. Rozsah urˇcuje, zda je parametr vstupn´ı, v´ystupn´ı nebo intern´ı. Rozhodli jsme se pro knihovny vytvoˇrit pˇet z´akladn´ıch funkc´ı pro ovl´ad´an´ı pohonn´ych jedno- tek. Funkci Power, Velocity, PositionAbsolute, PositionRelative a SetCyclicPosition.

3.4 Funkˇ cn´ı bloky

S kaˇzd´ym vytvoˇren´ım funkˇcn´ıho bloku se n´am do souboru FHLib.fun pˇridal sa- motn´y funkˇcn´ı blok s jeho parametry a vytvoˇril se n´am dalˇs´ı soubor s jeho n´azvem a pˇr´ıponou jazyka Strukturovan´y text. Kaˇzd´y takov´yto soubor zaˇc´ın´a pˇr´ıkazem FUNCTION BLOCK, kter´y deklaruje, ˇze se jedn´a o funkˇcn´ı blok. Pro vˇetven´ı pro- gramu jsem pouˇzil pˇr´ıkaz CASE, kter´y vˇetv´ı program podle zadan´e podm´ınky, kter´y je uveden hned za kl´ıˇcov´ym slovem CASE. Tuto podm´ınku pot´e porovn´av´ame s jed- notliv´ymi stavy, pokud je shoda, tak se vykon´a ˇc´ast k´odu v tomto stavu. Jako podm´ınku pro vˇetven´ı ve vˇsech funkˇcn´ıch bloc´ıch jsme zvolili promˇenou step, kter´a je zapouzdˇren´a v datov´e struktuˇre FHLib. Do tohoto pˇrep´ınaˇce jsme um´ıstili veˇsker´e stavy v´yˇctov´eho typu Steps, tedy WAIT, INIT, OPEN COMMUNICATION, PRE- PARE FOR SENDING DATA, SEND DATA, CREATE BUFFER, READ RESPON- SE, RELEASE READ BUFFER, CLOSE COMMUNICATION, ERROR a RESET.

Pokud se tedy promˇenn´a step bude rovnat jednomu z tˇechto stav˚u, vykon´a se pˇr´ısluˇsn´y k´od pro tento stav.

(25)

3.5 Export knihovny

Po zkompletov´an´ı knihovny pot´e bude potˇreba samotnou knihovnu vyexportovat do bin´arn´ı podoby tak, jak je zvykem u bˇeˇzn´ych knihoven. Nejprve vˇsak mus´ıme pˇridat z´avislosti na pouˇzit´e knihovny. Pˇrid´an´ı z´avislost´ı se prov´ad´ı prav´ym kliknut´ım na knihovnu v Logick´em pohledu, zvol´ıme nab´ıdku Properties. Otevˇre se dialogov´e okno a v z´aloˇzce Dependencies mus´ıme pˇridat knihovny, kter´e jsme pouˇzili pˇri tvorbˇe knihovny FHLib. Tˇemi jsou knihovny dvframe, aastring a standard. V´yslednou kni- hovnu lze exportovat oznaˇcen´ım knihovny v Logick´em pohledu a vybr´an´ım moˇznosti Export Library v horn´ı z´aloˇzce File. N´aslednˇe se otevˇre dialogov´e okno, kde zvol´ıme cestu pro uloˇzen´ı knihovny.

(26)

4 Princip fungov´ an´ı FB v knihovnˇ e FHLib

V t´eto kapitole je podrobnˇe rozeps´ano obecn´e fungov´an´ı funkˇcn´ıho bloku v knihovnˇe FHLib. Jsou zde uveden´e jednotliv´e stavy, do kter´ych se funkˇcn´ı blok m˚uˇze dostat, jejich popis a do jak´ych n´asleduj´ıc´ıch stav˚u m˚uˇze pˇrej´ıt.

4.0.1 WAIT

V tomto stavu se ˇcek´a, dokud uˇzivatel ned´a pokyn k zapnut´ı funkˇcn´ıho bloku pomoc´ı vstupn´ıho parametru Enable. V takov´em pˇr´ıpadˇe se uloˇz´ı do promˇenn´e steps hodnota INIT a t´ım se pˇrejde do tohoto stavu.

4.0.2 INIT

Tento stav slouˇz´ı pro pˇr´ıpravu, pˇred otevˇren´ım samotn´e komunikace a inicializac´ı v´ystupn´ıch parametr˚u. V´ystupn´ı parametr Responce se nastav´ı na pr´azdnou hod- notu a v´ystupn´ı parametr Done se nastav´ı na False. T´ım zajist´ıme spr´avnou inicia- lizaci samotn´eho funkˇcn´ıho bloku. D´ale zkop´ırujeme data z vstupn´ı struktury Poin- terSettings do intern´ı promˇenn´e Settings. Za pomoci t´eto promˇenn´e pot´e sestav´ıme nastaven´ı pro komunikaci v podobˇe ˇretˇezce do promˇenn´e mode builder. V tomto nastaven´ı je obsaˇzen typ rozhran´ı, ˇs´ıˇrka p´asma, parita a stop bit. Pot´e proveden´ı tˇechto krok˚u se nastav´ı promˇenn´a step na hodnotu OPEN COMMUNICATION.

4.0.3 OPEN COMMUNICATION

Stav OPEN COMMUNICATION slouˇz´ı pro nav´az´an´ı spojen´ı s pˇripojenou pohon- nou jednotkou za pouˇzit´ı funkˇcn´ıch blok˚u xopen a xopenConfig z knihovny DVFrame.

Funkˇcn´ımu bloku xopen nastav´ıme parametr device z intern´ı promˇenn´e Settings.name a do parametru mode nahrajeme adresu ˇretˇezce z promˇenn´e mode builder, kterou jsme si pˇripravili v kroku INIT. D´ale pomoc´ı funkˇcn´ıho bloku xopenConfig nastav´ıme idle time na hodnotu 10, delimc na hodnotu 10, tx cnt na hodnotu 3, rx cnt na hod- notu 3, tx len na hodnotu 256, rx len tak´e na 256 a zavol´ame samotn´y funkˇcn´ı blok xopen. Funkˇcn´ı blok xopen vrac´ı ve v´ystupn´ım parametru status ˇc´ıslo, kter´e oznaˇcuje stav prov´adˇen´ı samotn´eho funkˇcn´ıho bloku. Pokud je hodnota status rovna nule, nastav´ı se stav CREATE BUFFER. Pokud je hodnota status 65535 funkˇcn´ı blok je zanepr´azdnˇen a mus´ıme ho zavolat znovu. Jakmile je hodnota status jin´a,

(27)

4.0.4 CREATE BUFFER

Tento stav m´a za ´ukol vytvoˇrit vyrovn´avac´ı pamˇet’, kde se budou ukl´adat data urˇcen´a pro odesl´an´ı do pohonn´e jednoty. Vyuˇz´ıv´a funkˇcn´ı blok gbuf z knihovny DVFrame.

Vstupn´ım parametrem tohoto funkˇcn´ıho bloku je ident, kter´y slouˇz´ı pro identifikaci zaˇr´ızen´ı. Ident z´ısk´ame z v´ystupn´ıho parametru funkˇcn´ıho bloku xopen. Funkˇcn´ı blok gbuf vrac´ı ve v´ystupn´ım parametru status ˇc´ıslo, kter´e oznaˇcuje stav prov´adˇen´ı samotn´eho funkˇcn´ıho bloku. Pokud je hodnota status rovna nule, nastav´ı se stav PREPARE FOR SENDING DATA. Pokud je hodnota status 65535 funkˇcn´ı blok je zanepr´azdnˇen a mus´ıme ho zavolat znovu. Jakmile je hodnota status jin´a, nastala chyba, nastav´ı se do struktury Internals chybov´e ˇc´ıslo a pˇrejde se do stavu ERROR.

4.0.5 PREPARE FOR SENDING DATA

N´asleduj´ıc´ı stav slouˇz´ı pro pˇripraven´ı dat a vytvoˇren´ı odes´ılac´ıch r´amc˚u. Kaˇzd´y funkˇcn´ı blok se zde liˇs´ı, a proto bude obsah tohoto stavu pops´an d´ale v podkapitol´ach jednotliv´ych funkˇcn´ıch blok˚u.

4.0.6 SEND DATA

Stav SEND DATA vyuˇz´ıv´a funkˇcn´ıho bloku Write z knihovny DVFrame. Nastav´ı se vstupn´ı parametr ident, pˇred´a se odkaz na vyrovn´avac´ı pamˇet’ s uloˇzen´ymi daty a nastav´ı se d´elka dat. Pot´e se zavol´a samotn´y funkˇcn´ı blok write. Funkˇcn´ı blok write vrac´ı ve v´ystupn´ım parametru status ˇc´ıslo, kter´e oznaˇcuje stav prov´adˇen´ı samotn´eho funkˇcn´ıho bloku. Pokud je hodnota status rovna nule, nastav´ı se stav READ RESPONSE. Pokud je hodnota status 65535 funkˇcn´ı blok je zanepr´azdnˇen a mus´ıme ho zavolat znovu. Jakmile je hodnota status jin´a, nastala chyba, nastav´ı se do struktury Internals chybov´e ˇc´ıslo a pˇrejde se do stavu ERROR.

4.0.7 READ RESPONSE

Stav READ RESPONSE m´a za ´ukol pˇreˇc´ıst odpovˇed’ z pohonn´e jednotky. Vyuˇz´ıv´a k tomu funkˇcn´ı blok read z knihovny DVFrame. Nastav´ıme vstupn´ı parametr ident a zavol´ame samotn´y funkˇcn´ı blok read. Po ´uspˇeˇsn´em pˇreˇcten´ı dat nakop´ırujeme pˇreˇcten´a data do promˇenn´e Response pˇr´ıkazem memcpy. Pokud odpovˇed’ z pohonn´e jednotky byla v poˇr´adku, pˇrejde se do stavu RELEASE READ BUFFER.

4.0.8 RELEASE READ BUFFER

Tento stav slouˇz´ı pro uvolnˇen´ı vyrovn´avac´ı pamˇeti urˇcen´e ke ˇcten´ı. Je pouˇzit funkˇcn´ı blok rbuf z knihovny DVFrame. Funkˇcn´ımu bloku nastav´ıme ident, odkaz na vy- rovn´avac´ı pamˇet’ a jej´ı d´elku. Pokud se uvolnˇen´ı vyrovn´avac´ı pamˇeti provede v poˇr´adku a jsou odeslan´e veˇsker´e r´amce, pˇrejde se do stavu CLOSE COMMUNI- CATION. Pokud se neodeslali veˇsker´e potˇrebn´e r´amce, pˇrejde se do stavu CRE- ATE BUFFER. V pˇr´ıpadˇe chyby se pˇrejde do stavu ERROR.

(28)

4.0.9 CLOSE COMMUNICATION

Stav CLOSE COMMUNCATION m´a za ´ukol uzavˇr´ıt spojen´ı s pohonnou jednot- kou za pouˇzit´ı funkˇcn´ıho bloku close z knihovny DVFrame. Jako vstupn´ı parametr postaˇc´ı pˇredat ident. Zavol´ame funkˇcn´ı blok. Pokud uzavˇren´ı spojen´ı probˇehlo v poˇr´adku, nastav´ıme v´ystupn´ı parametr Done funkˇcn´ıho bloku na hodnotu TRUE a pˇrejdeme do stavu WAIT. V opaˇcn´em pˇr´ıpadˇe pˇrejdeme do stavu ERROR.

4.0.10 ERROR

V tomto stavu funkˇcn´ıho bloku FH PositionAbsolute se nastav´ı v´ystupn´ı para- metr Error na hodnotu TRUE a ErrorID na hodnotu pˇr´ısluˇsn´e chyby. Funkˇcn´ı blok pˇretrv´a v tomto stavu do t´e doby, neˇz uˇzivatel nenastav´ı sestupnou hranu na vstupn´ım parametru Enable. Pokud tak uˇcin´ı, pˇrejde se do stavu RESET.

4.0.11 RESET

Stav RESET m´a za ´ukol nastavit veˇsker´e promˇenn´e na v´ychoz´ı hodnoty a zotavit funkˇcn´ı blok z chybov´eho stavu. Nastav´ı se hodnoty struktury Settings do v´ychoz´ıch hodnot. V´ystupn´ı parametr Response se nastav´ı na pr´azdn´y ˇretˇezec. V´ystupn´ımu pa- rametru ErrorID se nastav´ı hodnota 0, Error a Done se nastav´ı na hodnotu FALSE.

Pot´e se pˇrejde do stavu WAIT.

(29)
(30)

5 Jednotliv´ e funkˇ cn´ı bloky

Tato kapitola obsahuje popis ˇcinnosti jednotliv´ych funkˇcn´ıch blok˚u, jejich parametry a rozd´ıly mezi nimi. Parametry jsou uvedeny pomoc´ı tabulky.

5.1 Funkˇ cn´ı blok FH Power

Funkˇcn´ı blok FH Power je prvn´ı a nejz´akladnˇejˇs´ı funkˇcn´ı blok z cel´e knihovny FH- Lib. Zpˇr´ıstupˇnuje ovl´ad´an´ı pohonn´e jednotky. Funkˇcn´ı blok FH Power je prvn´ım blokem, kter´y mus´ı uˇzivatel zavolat. Dokud je funkˇcn´ı blok aktivn´ı lze ˇr´ıdit pohon- nou jednotku ostatn´ımi funkˇcn´ımi bloky z knihovny FHLib.

5.1.1 Parametry

Parametry funkˇcn´ıho blok FH Power jsou zobrazeny v tabulce 5.1.

Tabulka 5.1: Parametry FH Power I/O Parametry Datov´y typ Popis

IN Enable BOOL Zapne funkˇcn´ı blok s n´abˇeˇznou hranou IN PointerSettings UDINT Ukazatel na datovou strukturu s nasta-

ven´ım komunikace

OUT Done BOOL Indikuje stav dokonˇcen´ı FB OUT Response STRING Odpovˇed’ po dokonˇcen´ı FB

OUT Error BOOL Indikuje chybu FB

OUT ErrorID UINT C´ıslo chybyˇ

5.1.2 Rozd´ıly

V tomto funkˇcn´ım bloku se pracuje s promˇennou CommandHelper. Do vyrovn´avac´ı pamˇeti nahrajeme pˇr´ıkaz uloˇzen´y v promˇenn´e CommandHelper pomoc´ı pˇr´ıkazu str- cpy, kter´y se pot´e dosad´ı do tˇela r´amce pro odesl´an´ı.

5.2 Funkˇ cn´ı blok FH Velocity

(31)

zadat jak kladnou, tak i z´apornou a t´ım si vybrat smˇer ot´aˇcen´ı pohonn´e jednotky.

5.2.1 Parametry

Parametry funkˇcn´ıho blok FH Velocity jsou zobrazeny v tabulce 5.2.

Tabulka 5.2: Parametry FH Velocity I/O Parametry Datov´y typ Popis

IN Enable BOOL Zapne funkˇcn´ı blok s n´abˇeˇznou hranou IN PointerSettings UDINT Ukazatel na datovou strukturu s nasta-

ven´ım komunikace

IN Value INT Ud´av´a rychlost ot´aˇcek (kladn´e i z´aporn´e ˇc´ıslo)

OUT Done BOOL Indikuje stav dokonˇcen´ı FB OUT Response STRING Odpovˇed’ po dokonˇcen´ı FB

OUT Error BOOL Indikuje chybu FB

OUT ErrorID UINT C´ıslo chybyˇ

5.2.2 Rozd´ıly

V tomto funkˇcn´ım bloku se pracuje s promˇennou CommandHelper a Value. Do vyrovn´avac´ı pamˇeti nahrajeme pˇr´ıkaz uloˇzen´y v promˇenn´e CommandHelper a hod- notu ot´aˇcek uloˇzenou v promˇenn´e Value pomoc´ı pˇr´ıkazu strcpy. Tyto hodnoty pot´e vytvoˇr´ı tˇelo r´amce pro odesl´an´ı.

5.3 Funkˇ cn´ı blok FH PositionAbsolute

Funkˇcn´ı blok FH PositionAbsolute umoˇzˇnuje uˇzivateli nastavit polohu rotoru abso- lutnˇe, tedy od poˇc´atku. Hodnota pozice m˚uˇze b´yt jak kladn´a, tak i z´aporn´a.

5.3.1 Parametry

Parametry funkˇcn´ıho blok FH PositionAbsolute jsou zobrazeny v tabulce 5.3.

5.3.2 Rozd´ıly

V tomto funkˇcn´ım bloku je potˇreba odeslat pˇet r´amc˚u s jednotliv´ymi pˇr´ıkazy. K poˇc´ıt´an´ı jiˇz odeslan´ych r´amc˚u n´am slouˇz´ı vnitˇrn´ı promˇenn´a PositionHelper. Podle jej´ı hodnoty se urˇcuje, jak´y pˇr´ıkaz se do pohonn´e jednotky poˇsle. Jako prvn´ı se odes´ıl´a r´amec s pˇr´ıkazem pro nastaven´ı zrychlen´ı. Pot´e se pos´ıl´a r´amec s hodnotou zpomalen´ı. Jako dalˇs´ı se pos´ıl´a r´amec s maxim´aln´ı rychlost´ı posunu. Pˇredposledn´ım r´amcem je hodnota samotn´eho posunu. Posledn´ı r´amec obsahuje pˇr´ıkaz pro vykon´an´ı

(32)

Tabulka 5.3: Parametry FH PositionAbsolute I/O Parametry Datov´y typ Popis

IN Enable BOOL Zapne funkˇcn´ı blok s n´abˇeˇznou hranou IN PointerSettings UDINT Ukazatel na datovou strukturu s nasta-

ven´ım komunikace IN Acceleration UINT Hodnota zrychlen´ı IN Deceleration UINT Hodnota zpomalen´ı

IN MaximumSpeed UINT Maxim´aln´ı rychlost v ot´aˇck´ach za mi- nutu

IN Value INT Pozice (kladn´e i z´aporn´e ˇc´ıslo) OUT Done BOOL Indikuje stav dokonˇcen´ı FB OUT Busy BOOL Indikuje vykon´av´an´ı FB OUT Response STRING Odpovˇed’ po dokonˇcen´ı FB

OUT Error BOOL Indikuje chybu FB

OUT ErrorID UINT C´ıslo chybyˇ

5.4 Funkˇ cn´ı blok FH PositionRelative

Funkˇcn´ı blok FH PositionRelative umoˇzˇnuje uˇzivateli nastavit polohu rotoru rela- tivnˇe, tedy posun rotoru o danou hodnotu vzhledem k jeho aktu´aln´ı pozici. Hodnota pozice m˚uˇze b´yt jak kladn´a, tak i z´aporn´a.

5.4.1 Parametry

Parametry funkˇcn´ıho blok FH PositionRelative jsou zobrazeny v tabulce 5.4.

Tabulka 5.4: Parametry FH PositionRelative I/O Parametry Datov´y typ Popis

IN Enable BOOL Zapne funkˇcn´ı blok s n´abˇeˇznou hranou IN PointerSettings UDINT Ukazatel na datovou strukturu s nasta-

ven´ım komunikace IN Acceleration UINT Hodnota zrychlen´ı IN Deceleration UINT Hodnota zpomalen´ı

IN MaximumSpeed UINT Maxim´aln´ı rychlost v ot´aˇck´ach za mi- nutu

IN Value INT Pozice (kladn´e i z´aporn´e ˇc´ıslo) OUT Done BOOL Indikuje stav dokonˇcen´ı FB OUT Busy BOOL Indikuje vykon´av´an´ı FB OUT Response STRING Odpovˇed’ po dokonˇcen´ı FB

OUT Error BOOL Indikuje chybu FB

OUT ErrorID UINT C´ıslo chybyˇ

(33)

5.4.2 Rozd´ıly

Tento funkˇcn´ı blok je velmi podobn´y funkˇcn´ımu bloku FH PositionAbsolute. Je zde tak´e potˇreba odeslat pˇet r´amc˚u s jednotliv´ymi pˇr´ıkazy. K poˇc´ıt´an´ı jiˇz odeslan´ych r´amc˚u n´am slouˇz´ı vnitˇrn´ı promˇenn´a PositionHelper. Podle jej´ı hodnoty se urˇcuje, jak´y pˇr´ıkaz se do pohonn´e jednotky poˇsle. Jako prvn´ı se odes´ıl´a r´amec s pˇr´ıkazem pro nastaven´ı zrychlen´ı. Pot´e se pos´ıl´a r´amec s hodnotou zpomalen´ı. Jako dalˇs´ı se pos´ıl´a r´amec s maxim´aln´ı rychlost´ı posunu. Pˇredposledn´ım r´amcem je hodnota samotn´eho posunu. Posledn´ı r´amec obsahuje pˇr´ıkaz pro vykon´an´ı posunu.

5.5 Funkˇ cn´ı blok FH SetCyclicPosition

Funkˇcn´ı blok FH SetCyclicPosition umoˇzˇnuje uˇzivateli nastavit pozici rotoru. V pˇr´ıpadˇe, ˇze chce uˇzivatel pozici zmˇenit, nemus´ı cel´y funkˇcn´ı blok volat znovu, ale staˇc´ı pouze zmˇenit hodnotu pozice.

5.5.1 Parametry

Parametry funkˇcn´ıho blok FH SetCyclicPosition jsou zobrazeny v tabulce 5.5.

Tabulka 5.5: Parametry FH SetCyclicPosition I/O Parametry Datov´y typ Popis

IN Enable BOOL Zapne funkˇcn´ı blok s n´abˇeˇznou hranou IN PointerSettings UDINT Ukazatel na datovou strukturu s nasta-

ven´ım komunikace

IN Value INT Nastavuje pozici (kladn´e i z´aporn´e ˇc´ıslo)

OUT Done BOOL Indikuje stav dokonˇcen´ı FB OUT Response STRING Odpovˇed’ po dokonˇcen´ı FB

OUT Error BOOL Indikuje chybu FB

OUT ErrorID UINT C´ıslo chybyˇ

5.5.2 Rozd´ıly

U tohoto funkˇcn´ıho bloku je potˇreba odeslat dva r´amce. K poˇc´ıt´an´ı jiˇz odeslan´ych r´amc˚u n´am slouˇz´ı vnitˇrn´ı promˇenn´a PositionHelper. Podle jej´ı hodnoty se urˇcuje, jak´y pˇr´ıkaz se do pohonn´e jednotky poˇsle. Pokud je hodnota PositionHelperu rovna 0 do vyrovn´avac´ı pamˇeti se nahraje pˇr´ıkaz uloˇzen´y v promˇenn´e CommandHelper a poˇzadovan´a pozice rotoru uloˇzen´a v promˇenn´e Value. Pokud je hodnota promˇenn´e PositionHelper rovna 1 odeˇsle se r´amec pro vykon´an´ı pohybu.

(34)

6 Uˇ zivatelsk´ y n´ avod knihovny FHLib

Tato kapitola obsahuje podrobn´y popis, jak importovat knihovnu do vlastn´ıho pro- jektu. Jak´e je potˇreba vytvoˇrit datov´e struktury, promˇenn´e a jak zavolat jednotliv´e funkˇcn´ı bloky knihovny.

6.1 Import knihovny

Jakmile si uˇzivatel vytvoˇr´ı vlastn´ı projekt, je potˇreba, aby naimportoval knihovnu.

Pˇrepnut´ım se do Logick´eho pohledu a prav´ym kliknut´ım na jak´ekoli m´ısto se vyvol´a nab´ıdka, kde vybereme moˇznost Add Object. Z kategorie Library vybereme moˇznost Existing Library. V´ybˇerem se otevˇre dialog pro v´ybˇer knihovny. Zvol´ıme knihovnu FHLib a dokonˇc´ıme pr˚uvodce.

6.2 Datov´ a struktura

Pro pouˇzit´ı knihovny je potˇreba nejdˇr´ıve pˇripravit si jednoduchou datovou struk- turu, ve kter´e bude uloˇzeno nastaven´ı pro samotnou komunikaci. Toto nastaven´ı se pot´e bude pˇred´avat kaˇzd´emu funkˇcn´ımu bloku knihovny FHLib. Datov´a struktura se bude jmenovat Settings a bude m´ıt 7 parametr˚u s datov´ym typem STRING.

Tˇemito parametry jsou device name, type, baud rate, parity,data bits, stop bits a builder string.

6.3 Promˇ enn´ e

Je potˇreba vytvoˇrit promˇennou pro kaˇzd´y funkˇcn´ı blok z knihovny FHLib, kter´y chceme pouˇz´ıt. D´ale je potˇreba vytvoˇrit promˇennou pro datovou strukturu Settings.

Pokud tedy budeme cht´ıt pouˇz´ıt funkˇcn´ı blok FH Power, budeme muset vytvoˇrit promˇennou Settings 0 a nastavit j´ı datov´y typ Settings. D´ale mus´ıme vytvoˇrit promˇe- nnou FH Power 0 s datov´ym typem FH Power.

(35)

6.4 Vol´ an´ı funkˇ cn´ıho bloku v programu

Jakmile m´ame importovanou knihovnu, vytvoˇrenou datovou struktur pro nastaven´ı komunikace a vytvoˇren´e promˇenn´e, m˚uˇzeme se pˇresunout do samotn´eho programu.

V programu je potˇreba nastavit parametry datov´e struktury Settings. Parametr de- vice name nastav´ıme na hodnotu IF1. Parametr type nastav´ıme na hodnotu ‘RS232‘.

Baud rate nastav´ıme na hodnotu ‘9600‘. Parametr data bits nastav´ıme na 8. Para- metr Parity nastav´ıme na hodnotu N. Parametr stop bits nastav´ıme na hodnotu 1.

Po nastaven´ı t´eto struktury m˚uˇzeme jiˇz zavolat jednotliv´e funkˇcn´ı bloky. Napˇr´ıklad funkˇcn´ı blok FH Power zavol´ame pˇr´ıkazem FH Power 0(PointerSettings:= ADR(Sett- ings), Enable:= TRUE);

(36)

7 Tvorba n´ apovˇ edy

V t´eto kapitole je pops´ana tvorba n´apovˇed v programu HelpNDoc4. D´ale je zdˇe pops´ana tvorba uˇzivatelsk´e n´apovˇedy ke knihovnˇe FHLib, kter´a obsahuje z´akladn´ı informace, popis jednotliv´ych funkˇcn´ıch blok˚u a chybov´e stavy.

7.1 Popis programu HelpNDoc4

Grafick´e rozhran´ı programu HelpNDoc4 se skl´ad´a ze tˇr´ı ˇc´ast´ı. Prvn´ı ˇc´ast´ı jsou jednot- liv´e karty, kter´e slouˇz´ı pro ovl´ad´an´ı funkc´ı, jako jsou generov´an´ı n´apovˇedy, pˇrid´an´ı t´ematu do n´apovˇedy, form´atov´an´ı textu, vkl´ad´an´ı obr´azk˚u a podobnˇe. Dalˇs´ı ˇc´ast´ı grafick´eho rozhran´ı je zobrazen´ı struktury n´apovˇedy. Posledn´ı, hlavn´ı ˇc´ast programu HelpNDoc4 obsahuje okno, ve kter´em p´ıˇseme samotnou n´apovˇedu.

7.2 Tvorba samotn´ e n´ apovˇ edy

N´apovˇedu jsme se rozhodli rozdˇelit na tˇri ˇc´asti. Prvn´ı ˇc´ast obsahuje z´akladn´ı infor- mace o samotn´e knihovnˇe a odkazy na jednotliv´e funkˇcn´ı bloky v n´ı obsaˇzen´e. D´ale pro kaˇzd´y funkˇcn´ı blok vytvoˇr´ıme samostatnou str´anku obsahuj´ıc´ı popis, diagram, parametry a uk´azku pouˇzit´ı. Posledn´ı ˇc´ast´ı n´apovˇedy jsou chybov´e stavy. Je zde seznam vˇsech chybov´ych stav˚u a pro kaˇzd´y chybov´y stav je zde uveden jeho popis, jak chybu opravit a v jak´ych funkˇcn´ıch bloc´ıch se chyba m˚uˇze vyskytovat.

7.2.1 Z´ akladn´ı informace

Nejprve jsme vytvoˇrili t´ema s n´azvem General infromation, kliknut´ım na tlaˇc´ıtko Add topic v kartˇe Home. Toto t´ema obsahuje obecn´e informace o samotn´e knihovnˇe a seznam vˇsech funkˇcn´ıch blok˚u. Poloˇzky v tomto seznamu jsou hypertextov´e odkazy na jednotliv´a t´emata samotn´ych funkˇcn´ıch blok˚u.

7.2.2 Funkˇ cn´ı bloky

D´ale jsme vytvoˇrili t´ema, kter´e obsahuje pˇet podt´emat. Pro kaˇzd´y funkˇcn´ı blok jedno. V tˇechto podt´ematech je vˇzdy uvedeno k ˇcemu funkˇcn´ı blok slouˇz´ı. D´ale je

(37)

Obr´azek 7.1: Uk´azka n´apovˇedy

kliknut´ım na Insert HTML code v kartˇe Insert. Posledn´ı ˇc´ast, kterou kaˇzd´a n´apovˇeda k funkˇcn´ımu bloku obsahuje je uk´azka zavol´an´ı tohoto bloku.

7.2.3 Chybov´ e stavy

Jako posledn´ı jsme vytvoˇrili t´ema s n´azvem Errors, kter´e obsahuje seznam vˇsech chybov´ych ˇc´ısel a hypertextov´e odkazy na nˇe. Kaˇzd´e chybov´e ˇc´ıslo obsahuje po- pis chyby, ˇreˇsen´ı, jak chybu odstranit a v jak´ych funkˇcn´ıch bloc´ıch se chyba m˚uˇze vyskytovat.

(38)

Z´ avˇ er

Sezn´amili jsme se s pohony Faulhaber a jejich komunikaˇcn´ım protokolem. Na z´akladˇe tˇechto znalost´ı, jsme vytvoˇrili knihovnu, obsahuj´ıc´ı funkˇcn´ı bloky pro ovl´ad´an´ı jedno- tek Faulhaber v jazyku ST. Za pomoc´ı tˇechto funkˇcn´ıch blok˚u lze jednotku zapnout, nastavit ji absolutnˇe, nebo relativnˇe pozici rotoru, nastavit ji rychlost a smˇer ot´aˇcen´ı a cyklicky nastavovat pozici rotoru. K t´eto knihovnˇe funkˇcn´ıch blok˚u jsme pot´e vy- tvoˇrili uˇzivatelskou n´apovˇedu. V t´eto n´apovˇedˇe se uˇzivatel struˇcnˇe a pˇrehlednˇe dozv´ı jak knihovnu pouˇz´ıvat.

Pr´ace obsahuje popis jednotliv´ych technologi´ı, kter´e byly pouˇzity. Obsahuje tak´e popis zapojen´ı pohonu Faulhaber a vyzkouˇsen´ı komunikace pˇres software Motion Manager od firmy Faulhaber. D´ale tak´e podrobn´y popis vytv´aˇren´ı knihovny a jejich funkˇcn´ıch blok˚u. V posledn´ı ˇradˇe pr´ace obsahuje n´avod jak knihovnu naimplemen- tovat a popis tvorby uˇzivatelsk´e n´apovˇedy.

Knihovnu je moˇzn´e d´ale rozv´ıjet. Jeden z hlavn´ıch smˇer˚u je rozˇs´ıˇrit ji o moˇznost ovl´ad´an´ı v´ıce pohon˚u z´aroveˇn. D´ale je zde prostor pro vytv´aˇren´ı dalˇs´ıch funkˇcn´ıch blok˚u pro jeho ovl´ad´an´ı a pˇred´av´an´ı informac´ı o stavu pohonu uˇzivateli.

(39)

Literatura

[1] AUTOMATION, B&R. Controls - training text. Austria : [s.n.], 2008. 205 s.

[2] FAULHABER. Communication and Function Ma- nual [online]. 2012 [cit. 2015-03-02]. Dostupn´e z:

http://www.faulhaber.com/uploadpk/EN 7000 05029.pdf [3] JOHN, Kharl-Heinz; TIEGELKAMP, Michael. IEC 61131-3

Programming Industrial Automation Systems : Concepts and Programming Languages, Requirements for Programming Sys- tems, Decision - Making Aids. 2nd Edition. NewYork : Springer, 2010. 390 s. ISBN 978-3-642-12015-2

[4] BERNECKER + RAINER INDUSTRIE-ELEKTRONIK GES.M. B. H. B&R Help: Libraries. 2013. vyd. 2013.

[5] BERNECKER + RAINER INDUSTRIE-ELEKTRONIK GES.M. B. H. B&R Help: DVFrame. 2013. vyd. 2013.

(40)

A Obsah pˇ riloˇ zen´ eho CD

V pˇriloˇzen´em CD je obsaˇzen text bakal´aˇrsk´e pr´ace, zdrojov´e k´ody knihovny, expor- tovan´a knihovna, uˇzivatelsk´a n´apovˇeda a pouˇzit´e obr´azky.

• Text bakal´aˇrsk´e pr´ace

– bakalarska prace 2015 Miroslav Hlavka.pdf – bakalarska prace 2015 Miroslav Hlavka.tex

– kopie zadani bakalarska prace 2015 Miroslav Hlavka.pdf

• Knihovna

– Zdrojov´e soubory – Exportovan´a knihovna

• Uˇzivatelsk´a n´apovˇeda – Help.chm

• img - pouˇzit´e obr´azky pro ilustraci textu bakal´aˇrsk´e pr´ace

References

Related documents

Potlaˇ cov´ an´ı odezvy existuj´ı dva druhy, Network Echo Cancellation (potlaˇ cov´ an´ı odezvy v s´ıt’ov´ ych sign´ alech) a Acoustic Echo Cancellation (potlaˇ cov´

Tato bakal´ aˇ rsk´ a pr´ ace prezentuje projekt vyuˇ zit´ı programovac´ıho jazyka Java 2 Micro Edition, kter´ y je souˇ c´ ast´ı vˇ etˇ siny dneˇ sn´ıch mobiln´ıch

Asociace se prov´ ad´ı pˇri navazov´ an´ı spojen´ı v aplikaˇ cn´ı vrstvˇ e a pˇri asociaci si klient a server stanov´ı urˇ cit´ e komunikaˇ cn´ı parametry, kter´ e

Zvolil jsem ˇreˇsen´ı GPS/GPRS/GSM Module V3.0 [12] od firmy DFROBOT, kter´ e obsahuje moˇ znost jednoduch´ eho pˇripojen´ı vˇsech moˇ zn´ ych periferi´ı

Nicm´ enˇ e v t´ eto pr´ aci byla vyuˇ zita pouze jej´ı element´ arn´ı funkˇ cnost, tedy zazn´ amen´ av´ an´ı pohybu prstu po vymezen´ em prostoru bez moˇ znosti

Kromˇ e fin´ aln´ı verze, kter´ a komplexnˇ e zpracov´ av´ a veˇsker´ e dan´ e poˇ zadavky, vzni- kala souˇ casnˇ e i verze, kter´ a fungovala bez pouˇ zit´ı detektoru

Posledn´ım sign´ alem je F, kter´ y pˇriv´ ad´ı na pin nastaven´ y pro detekci n´ abˇ eˇ zn´ ych hran a vyvol´ av´ an´ı pˇreruˇsen´ı obd´ eln´ıkov´ y pr˚ ubˇ eh z

Mezi data ukl´ adan´ a do datab´ aze patˇr´ı informace o pool serveru, ke kter´ emu je tˇ eˇ zebn´ı klient aktu´ alnˇ e pˇripojen, informace o dobˇ e tˇ eˇ zby aktu´