ˇ ´ vysoke ´ uc ˇen´ı technicke ´ v Praze Cesk e ´ Fakulta elektrotechnicka
´ RSK ˇ ´ PRACE ´ BAKALA A Sbˇ er a sledov´ an´ı provozn´ıch dat
Praha, 2011
Autor: Tom´ aˇ s Kleteˇ cka
Prohl´ aˇ sen´ı Prohlaˇsuji, ˇze jsem svou diplomovou (bakal´aˇrskou) pr´aci vypracoval samostatnˇe a pouˇzil jsem pouze podklady (literaturu, projekty, SW atd.) uveden´e v pˇriloˇzen´em seznamu.
V Praze dne podpis
i
Podˇ ekov´ an´ı Dˇekuji pˇredevˇs´ım vedouc´ımu bakal´aˇrk´e pr´ace ing. Pavlu Burgetovi, Ph.D. a koleg˚ um z firmy Schneider Electric CZ s.r.o. za odborn´e veden´ı pˇri realizaci t´eto bakal´aˇrsk´e pr´ace. Dˇekuji firmˇe Schneider Electric CZ s.r.o. za poskytnut´ı prostˇredk˚ u nezbytn´ ych k vypracov´an´ı t´eto pr´ace.
ii
Abstrakt Tato pr´ace se zab´ yv´a n´avrhem a implementac´ı syst´emu pro sbˇer a anal´ yzu provozn´ıch dat programovateln´ ych automat˚ u firmy Schneider Electric. Data jsou zpracov´av´ana a uchov´av´ana v PLC.V´ ysledkem je knihovna funkˇcn´ıch blok˚ u pro v´ yvojov´e prostˇred´ı CoDeSys V3, kter´a usnadn´ı programov´an´ı n´asledn´e konkr´etn´ı aplikace pro sbˇer a uchov´an´ı dat v programovateln´ ych automatech. Uˇzivatel m´a moˇznost stahovat data do prostˇred´ı Microsoft Excel pˇres OPC server. Sledovan´a data se zobrazuj´ı do pˇrehledn´ ych tabulek. Z excelovsk´eho rozhran´ı lze modifikovat data uloˇzen´a v registreh PLC a t´ım prov´adˇet nastaven´ı bez potˇreby programovac´ıho prostˇred´ı a zdrojov´eho k´odu programu bˇeˇz´ıc´ıho v automatu.
Abstract The attached bachelor thesis deals with design and implementation of system for monitoring of process data of programmable controllers from Schneider Electric. Data are processed and stored in PLC. The result of this thesis is function block library for CoDeSys V3, which facilitates incoming programming of concrete application of process data monitoring. User is able to download data to Microsoft Excel enviroment over OPC server. Downloaded data are shown in transparent tables. It is possible to edit data stored in PLC from Microsoft Excel interface. It makes it possible to perform PLC settings without needs of programming enviroment and knowledge in program running in a controller.
iii
Obsah Seznam obr´ azk˚ u
vii
Seznam tabulek
viii
´ 1 Uvod
1
2 C´ıle
2
2.1
Popis probl´emu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2
2.2
Poˇzadavky na ˇreˇsen´ı . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3
3 Softwarov´ e prostˇ redky
4
3.1
CoDeSys . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4
3.2
SoMachine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5
3.3
OPC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5
3.4
OFS - OPC Factory Server . . . . . . . . . . . . . . . . . . . . . . . . . .
6
3.5
VBA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7
4 Zp˚ usob uchov´ an´ı dat v PLC 4.1
8 8
4.2
Datov´e typy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Pamˇet’ov´a struktura PLC . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.3
Promˇenn´e typu retain a persistent . . . . . . . . . . . . . . . . . . . . . .
10
4.4
Struktura pro ukl´ad´an´ı ud´alost´ı . . . . . . . . . . . . . . . . . . . . . . .
11
4.5
Adresy urˇcen´e k n´asledn´emu stahov´an´ı dat . . . . . . . . . . . . . . . . .
11
5 Knihovna Monitoring 5.1
9
14
Popis funkˇcn´ıch blok˚ u . . . . . . . . . . . . . . . . . . . . . . . . . . . .
14
5.1.1
EventsManager . . . . . . . . . . . . . . . . . . . . . . . . . . . .
14
5.1.2
Statistics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16
iv
5.2
5.1.3
ImpulseCounter . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16
5.1.4
EnergyMonitor1 . . . . . . . . . . . . . . . . . . . . . . . . . . . .
18
5.1.5
EnergyMonitor2 . . . . . . . . . . . . . . . . . . . . . . . . . . . .
19
5.1.6
OperHoursCounter . . . . . . . . . . . . . . . . . . . . . . . . . .
20
5.1.7
SysTimeSetting . . . . . . . . . . . . . . . . . . . . . . . . . . . .
20
V´ ypoˇcty v´ ystupn´ıch hodnot funkˇcn´ıch blok˚ u . . . . . . . . . . . . . . . .
21
6 Uˇ zivatelsk´ e rozhran´ı
23
7 Komunikace
25
7.1
OPC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
25
7.2
Moˇznosti pˇripojen´ı . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
25
7.2.1
Modbus RTU . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
25
7.2.2
Modbus TCP . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
26
8 Testov´ an´ı
27
8.1
Testovac´ı zapojen´ı . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
27
8.2
Prov´adˇen´ı test˚ u . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
28
8.3
V´ ysledky test˚ u . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
29
9 Z´ avˇ er
30
Literatura
33
A V´ ysledky test˚ u - namˇ eˇ ren´ e hodnoty B V´ yvojov´ e diagramy funkˇ cn´ıch blok˚ u knihovny Monitoring
I II
C Uk´ azka testovac´ıho programu
IX
D Seznam pouˇ zit´ ych zkratek
XI
E Obsah pˇ riloˇ zen´ eho CD
XII
v
Seznam obr´ azk˚ u 3.1
Sch´ema OPC komunikace mezi klientem, serverem a PLC . . . . . . . . .
7
4.1
9 10
4.3
Pamˇet’ov´a struktura - PLC pro SoMachine . . . . . . . . . . . . . . . . . Pamˇet’ov´a struktura - OPC . . . . . . . . . . . . . . . . . . . . . . . . . Mapa pamˇet’ov´ ych m´ıst PLC urˇcen´ ych ke ˇcten´ı nebo z´apisu . . . . . . . .
6.1
Hlavn´ı menu uˇzivatelsk´eho rozhran´ı . . . . . . . . . . . . . . . . . . . . .
24
6.2
Uk´azka staˇzen´ ych ud´alost´ı - aplikace pro sledov´an´ı mostov´ ych jeˇra´b˚ u. . .
24
8.1
Sch´ema testovac´ıho zapojen´ı . . . . . . . . . . . . . . . . . . . . . . . . .
28
9.1
Mostov´ y jeˇra´b - uk´azka z konkr´etn´ı aplikace t´eto bak. pr´ace . . . . . . .
31
B.1 V´ yvojov´ y diagram funkˇcn´ıho bloku Statistics . . . . . . . . . . . . . . . .
II
B.2 V´ yvojov´ y diagram funkˇcn´ıho bloku EventsManager . . . . . . . . . . . .
III
B.3 V´ yvojov´ y diagram funkˇcn´ıch blok˚ u EnergyMonitor1 a EnergyMonitor2 .
IV
B.4 V´ yvojov´ y diagram mˇeˇren´ı energie ve funkˇcn´ım bloku EnergyMonitor2 . .
V
B.5 V´ yvojov´ y diagram funkˇcn´ıho bloku SysTimeSetting . . . . . . . . . . . .
VI
B.6 V´ yvojov´ y diagram funkˇcn´ıho bloku ImpulsCounter . . . . . . . . . . . .
VII
4.2
13
B.7 V´ yvojov´ y diagram funkˇcn´ıho bloku OperHoursCounter . . . . . . . . . . VIII
vi
Seznam tabulek 4.1
Datov´e typy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8
4.2
Adresy urˇcen´e ke stahov´an´ı dat . . . . . . . . . . . . . . . . . . . . . . .
12
5.1
Popis vstup˚ u a v´ ystup˚ u - funkˇcn´ı blok EventsManager . . . . . . . . . .
15
5.2
Popis vstup˚ u a v´ ystup˚ u - funkˇcn´ı blok Statistics . . . . . . . . . . . . . .
17
5.3
Popis vstup˚ u a v´ ystup˚ u - funkˇcn´ı blok ImpulseCounter . . . . . . . . . .
17
5.4
Popis vstup˚ u a v´ ystup˚ u - funkˇcn´ı blok EnergyMonitor1 . . . . . . . . . .
18
5.5
Popis vstup˚ u a v´ ystup˚ u - funkˇcn´ı blok EnergyMonitor1 . . . . . . . . . .
19
5.6
Popis vstup˚ u a v´ ystup˚ u - funkˇcn´ı blok OperHoursCounter . . . . . . . .
20
5.7
Popis vstup˚ u a v´ ystup˚ u - funkˇcn´ı blok SysTimeSetting . . . . . . . . . .
21
vii
Kapitola 1 ´ Uvod Ned´ılnou souˇca´st´ı ˇr´ıdic´ıch syst´em˚ u je monitorov´an´ı jejich stavu. Uˇzivatel ˇcasto poˇzaduje statistick´e informace jako je poˇcet motohodin, spotˇrebovan´a energie nebo poˇcet pracovn´ıch cykl˚ u. D´ale vyvst´av´a potˇreba archivace ud´alost´ı, zejm´ena chyb, vznikl´ ych pˇri provozu. Tato pr´ace si klade za c´ıl nal´ezt pokud moˇzno univerz´aln´ı ˇreˇsen´ı pro sbˇer provozn´ıch dat a pro jejich pˇred´an´ı uˇzivateli v pˇrehledn´e formˇe, pomoc´ı bˇeˇznˇe dostupn´ ych prostˇredk˚ u (napˇr. pomoc´ı aplikace Microsoft Excel). Jednotliv´a konkr´etn´ı ˇreˇsen´ı pro monitoring pr˚ umyslov´ ych zaˇr´ızen´ı jsou natolik specifick´a, ˇze nelze vytvoˇrit naprosto univerz´aln´ı ˇreˇsen´ı pro vˇsechny aplikace. Univerzalita zde popsan´eho ˇreˇsen´ı spoˇc´ıv´a v usnadnˇen´ı tvorby konkr´etn´ıch aplikac´ı definov´an´ım funkc´ı, kter´e se ˇcasto pouˇz´ıvaj´ı a aplikuj´ı. N´asledn´a konkr´etn´ı realizace jiˇz nemus´ı zaˇc´ıt od definice z´akladn´ıch ˇcasto pouˇz´ıvan´ ych funkc´ı, ale pouˇzit´ım zde popsan´e knihovny funkˇcn´ıch blok˚ u. Dalˇs´ı v´ yhodou vytvoˇren´ı jedn´e speci´aln´ı knihovny pro monitoring, je snadn´e vyhled´av´an´ı funkˇcn´ıch blok˚ u. Uˇzivatel nemus´ı hledat potˇrebn´e funkce ˇci funkˇcn´ı bloky ve velk´em mnoˇzstv´ı knihoven, vˇse najde pˇrehlednˇe na jednom m´ıstˇe - v knihovnˇe Monitoring.library. D´ıky efektivn´ımu vyuˇzit´ı monitoringu lze ˇsetˇrit n´aklady na provoz zaˇr´ızen´ı, minimalizovat dobu a n´aklady potˇrebn´e na udrˇzbu ˇci k pˇr´ıpadn´emu servisu. Snadn´e staˇzen´ı a anal´ yza sledovan´ ych dat usnadn´ı a urychl´ı diagnostiku vznikl´ ych poruch. Dojde tak ke zkr´acen´ı doby potˇrebn´e k uveden´ı stroje opˇet do provozu.
1
Kapitola 2 C´ıle 2.1
Popis probl´ emu
Pr´ace se skl´ad´a ze dvou hlavn´ıch ˇca´st´ı. Prvn´ı ˇca´st zahrnuje vytvoˇren´ı knihovny univerz´aln´ıch funkˇcn´ıch blok˚ u slouˇz´ıc´ıch pro sbˇer a uchov´an´ı dat v PLC. Tato ˇca´st bude vytvoˇrena v programovac´ım prostˇred´ı SoMachine. Jako produkt druh´e ˇca´sti vznikne aplikace urˇcen´a pro staˇzen´ı, zobrazen´ı a uloˇzen´ı dat z PLC do PC. Tato ˇca´st bude zpracov´ana v prostˇred´ı Microsoft Excel za pouˇzit´ı VBA for Excel. Data, kter´a jsou urˇcena k uchov´an´ı ˇci dalˇs´ımu zpracov´an´ı jsou dvou typ˚ u - statistick´a data a ud´alosti. Mezi statistick´a data patˇr´ı napˇr´ıklad poˇcet motohodin, poˇcet pracovn´ıch cykl˚ u, pr˚ umˇern´ y poˇcet pracovn´ıch cykl˚ u za hodinu apod. Data, v´ yˇse nazvan´a jako ud´alosti, popisuj´ı stav syst´emu v okamˇziku, kdy dojde k nˇejak´e definovan´e situaci. Tato situace nemus´ı b´ yt vˇzdy chyba, ale i jin´a ud´alost jako spuˇstˇen´ı syst´emu, dokonˇcen´ı pracovn´ıho cyklu, dosaˇzen´ı urˇcit´eho poˇctu cykl˚ u apod. Pouˇzit´ı statistik pˇrin´aˇs´ı tyto v´ yhody: • Alarmy - moˇznost upozornˇen´ı pˇri pˇribl´ıˇzen´ı ke kritick´emu stavu sledovan´e veliˇciny. Napˇr´ıklad po uplynut´ı urˇcit´eho poˇctu motohodin je uˇzivatel upozornˇen na potˇrebu pravideln´eho servisu. • Uˇzivatel z´ısk´av´a pˇrehled o vyt´ıˇzen´ı a vyuˇzit´ı syst´emu, kter´ y mu m˚ uˇze poslouˇzit k optimalizaci pracovn´ıho procesu. Sledov´an´ı ud´alost´ı pˇrin´aˇs´ı znaˇcn´e usnadnˇen´ı diagnostiky. Servisn´ı technik z´ısk´a pˇrehled stav˚ u syst´emu, kter´e usnadn´ı diagnostiku a znaˇcnˇe urychl´ı uveden´ı do provozu a zjednoduˇs´ı odstranˇen´ı pˇr´ıpadn´ ych probl´em˚ u. 2
KAPITOLA 2. C´ILE
2.2
3
Poˇ zadavky na ˇ reˇ sen´ı
Na ˇreˇsen´ı jsou kladeny tyto poˇzadavky: • Nalezen´ı vhodn´e struktury pro ukl´ad´an´ı dat registrech PLC. • Snadn´a modifikovatelnost monitorovac´ıho programu v PLC i uˇzivatelsk´eho rozhran´ı v MS Excel podle konkr´etn´ıho ˇreˇsen´ı. • Univerz´aln´ı pouˇzit´ı knihovny funkˇcn´ıch blok˚ u na vˇsech ˇr´ıdic´ıch syst´emech urˇcen´ ych pro platformu SoMachine - Modicon M238, Modicon M258, Modicon LMC058, Altivar - IMC. • Uloˇzen´a data jsou zachov´ana i po restartu ˇr´ıdic´ıho syst´emu. • Moˇznost z´apisu do registr˚ u v PLC z uˇzivatelsk´eho rozhran´ı za u ´ˇcelem parametrizace zaˇz´ızen´ı. • Data staˇzen´a z PLC jsou pˇrehlednˇe zobrazena v tabulk´ach. • Intuitivn´ı ovl´ad´an´ı uˇzivatelsk´eho rozhran´ı. • Vytvoˇren´ı dokumentace knihovny funkˇcn´ıch blok˚ u a manu´alu k jej´ımu pouˇzit´ı spolu s uˇzivatelsk´ ym rozhran´ım.
Kapitola 3 Softwarov´ e prostˇ redky 3.1
CoDeSys
CoDeSys (Controller Development System) je obecn´ y, na platformˇe nez´avisl´ y, v´ yvojov´ y n´astroj pro pr˚ umyslovou automatizaci, kter´ y vyvinula firma 3S - Smart Software Solutions GmbH. V z´akladu se skl´ad´a ze dvou ˇca´st´ı: programovac´ıho syst´emu CoDeSys a runtime syst´emu CoDeSys runtime. Pln´ı tyto hlavn´ı u ´lohy: • tvorba aplikac´ı pro pr˚ umyslovou automatizaci, • nahr´av´an´ı a zpracov´av´an´ı aplikac´ı, • ladˇen´ı aplikac´ı v libovoln´em jazyce dle IEC, • komunikace s programovac´ım syst´emem, • smˇeˇrov´an´ı zpr´av v s´ıti ˇr´ıdic´ıho syst´emu, • obsluha vstupnˇe/v´ ystupn´ıch syst´emu. CoDeSys umoˇzn ˇuje programov´an´ı ve vˇsech pˇeti jazyc´ıch dle normy IEC 61131 - 3, jimiˇz jsou: instrukˇcn´ı list (IL), diagram funkˇcn´ıch blok˚ u (FBD), strukturovan´ y text (ST), sekvenˇcn´ı funkˇcn´ı diagram (SFC) a ˇzebˇr´ıkov´ y diagram (ladder diagram), oznaˇcovan´ y tak´e jako releov´e sch´ema. V´ıce neˇz 250 OEM z´akazn´ık˚ u a tis´ıce koncov´ ych uˇzivatel˚ u ˇcin´ı z CoDeSysu nejrozˇs´ıˇrenˇejˇs´ı v´ yvojov´ y n´astroj splˇ nuj´ıc´ı normu IEC 61131 - 3. Stal se standardem v programov´an´ı ˇr´ıdic´ıch syst´emu a PLC. [12] 4
´ PROSTREDKY ˇ KAPITOLA 3. SOFTWAROVE
3.2
5
SoMachine
SoMachine je sofwarov´ y n´astroj od firmy Schneider Electric urˇcen´ y pro n´avrh, programov´an´ı, oˇzivov´an´ı a provozn´ı spr´avu stroj˚ u (PLC, HMI, pohony, frekvenˇcn´ı mˇeniˇce). V´ yvojov´e prostˇred´ı SoMachine je zaloˇzeno na v´ yˇse popsan´em CoDeSys V3.
V´ yvojov´e
prostˇred´ı SoMachine pˇrin´aˇs´ı oproti samotn´emu CoDeSysu mnoh´a rozˇs´ıˇren´ı zejm´ena z hlediska uˇzivatelsk´eho pohodl´ı. SoMachine pˇrin´aˇs´ı napˇr´ıklad tyto v´ yhody: • rozˇs´ıˇren´ı knihoven funkˇcn´ıch blok˚ u, • specializovan´e OEM aplikaˇcn´ı knihovny, • snadn´e integrov´an´ı extern´ıch zaˇr´ızen´ı, • soubor funkc´ı pro monitorov´an´ı a ladˇen´ı stroje, • moˇznost programovar PLC i HMI v jedin´e aplikaci. V souˇcasn´e dobˇe pˇrich´az´ı na trh nov´a verze SoMachine V3. Tato pr´ace, jej´ıˇz souˇca´st´ı je aplikaˇcn´ı knihovna pro sledov´an´ı a zpracov´av´an´ı provozn´ıch dat (Monitoring.library), je vypracov´ana v SoMachine V2 RL3. Knihovna byla vytvoˇrena ve starˇs´ı verzi softwaru z toho d˚ uvodu, ˇze v dobˇe zapoˇcet´ı pr´ace byl SoMachine V3 teprve ve v´ yvoji.
3.3
OPC
OPC (OLE for process control) je soubor specifikac´ı norem pro komunikaci s real-time ˇr´ıdic´ımi syst´emy r˚ uzn´ ych v´ yrobc˚ u. Prvn´ı norma vznikla za spolupr´ace pˇredn´ıch svˇetov´ ych dodavatel˚ u automatizace a spoleˇcnosti Microsoft. P˚ uvodnˇe byla zaloˇzena na technologi´ıch OLE COM (component object model) a DCOM (distributed component object model) od Microsoftu. Specifikace definovala soubor objekt˚ u, rozhran´ı a metod pro usnadnˇen´ı interoperability v aplikac´ıch pr˚ umyslov´e automatizace a procesn´ıho ˇr´ızen´ı. Nejobl´ıbenˇejˇs´ı analogi´ı pro vysvˇetlen´ı potˇreby origin´aln´ı specifikace pro pˇr´ıstup k dat˚ um jsou ovladaˇce tisk´aren v MS DOS a v MS Windows. Pod MS DOS museli v´ yvoj´aˇri napsat pro kaˇzdou aplikaci ovladaˇce pro vˇsechny tisk´arny. Museli napsat zvl´aˇst’ kaˇzd´ y ovladaˇc pro tisk´arnu, kterou chtˇeli podporovat. Obdobnˇe tomu bylo ve svˇetˇe pr˚ umyslov´e automatizace, kde firma vyr´abˇej´ıc´ı HMI musela ke kaˇzd´emu sv´emu produktu napsat jeˇstˇe pˇr´ısluˇsn´ y ovladaˇc ke kaˇzd´emu pr˚ umyslov´emu zaˇr´ızen´ı (zahrnuj´ıc´ı vˇsechny v´ yrobce PLC).
´ PROSTREDKY ˇ KAPITOLA 3. SOFTWAROVE
6
Windows vyˇreˇsil probl´em s tisk´arnami zaˇclenˇen´ım podpory tisk´aren do operaˇcn´ıho syst´emu. Nyn´ı jeden ovladaˇc k dan´e tisk´arnˇe obslouˇz´ı vˇsechny pˇr´ısluˇsn´e aplikace. Tyto ovladaˇce byly naps´any v´ yrobci tisk´aren, nikoli jiˇz v´ yvoj´aˇri aplikac´ı. Windows poskytl infrastrukturu, kter´a umoˇzn ˇuje ˇreˇsit probl´em s ovladaˇci pro pr˚ umyslov´a zaˇr´ızen´ı stejnˇe dobˇre jako v pˇr´ıpadˇe tisk´aren. Pˇrid´an´ım specifikace OPC do technologie OLE v Microsoft Windows byla umoˇznˇena standardizace. Nyn´ı v´ yrobci pr˚ umyslov´ ych zaˇr´ızen´ı mohou napsat OPC DA servery a software (jako HMI) se stane OPC klientem.[11]
3.4
OFS - OPC Factory Server
OFS je produkt firmy Schneider Electric, kter´ y vyuˇz´ıv´a v´ yˇse zm´ınˇen´ y standard OPC. OFS vytvoˇr´ı virtu´aln´ı datov´ y server, kter´ y nav´aˇze komunikaci s ˇr´ıdic´ımi syst´emy Schneider Electric a n´aslednˇe pˇred´ava poˇzadavan´a data OPC klient˚ um. OFS server poskytuje rozhran´ı mezi ˇr´ıdic´ım syst´emem a jednou nebo v´ıce klientsk´ ych aplikac´ı. Tyto aplikace slouˇz´ı napˇr. k zobrazen´ı a editaci datov´ ych hodnot v c´ılov´em zaˇr´ızen´ı, pˇr´ıp. k archivaci procesn´ıch dat. Sch´ema komunikace mezi PLC a klientskou aplikac´ı popisuje obr. 3.1. OFS je kompatibiln´ı s verzemi OPC 1.0 a OPC 2.0.[5] Roli OPC klienta m˚ uˇze zast´avat: • Origin´alnˇe dod´avan´ y software, kde OFS hraje roli ovladaˇce, kter´ y zaruˇcuje komunikaci se vˇsemi podporavan´ ymi zaˇr´ızen´ımi Schneider Electric. • Vlastn´ı vyvinut´ y software vyuˇz´ıvaj´ıc´ı bud’ rozhran´ı OLE Automation nebo OLE Custom. Pro vytvoˇren´ı vlastn´ı klientsk´e aplikace je nezbytn´a znalost jednoho z n´asleduj´ıc´ıch jazyk˚ u: • Microsoft Basic, verze 6.0 SP3 nebo vyˇsˇs´ı, • Microsoft Visual C++, verze 6.0 SP3 nebo vyˇsˇs´ı, • Microsoft VBA in Excel, verze 8.0 (Office 97) nebo vyˇsˇs´ı, • Microsoft Visual C#. V t´eto pr´aci bylo k vytvoˇren´ı klientsk´e aplikace vyuˇzito prostˇred´ı Microsoft Excel spolu s jazykem Microsoft VBA in Excel.
´ PROSTREDKY ˇ KAPITOLA 3. SOFTWAROVE
7
Obr´azek 3.1: Sch´ema OPC komunikace mezi klientem, serverem a PLC
Pozn´ amka: Obr´azek obr. 3.1 byl pˇrebr´an z [5].
3.5
VBA
Visual Basic (VB) a Visual Basic for Applications (VBA) maj´ı spoleˇcn´ y z´aklad. Lze ˇr´ıci, ˇze j´adro jazyka Visual Basic 6.0 je souˇca´st´ı instalace Microsoft Office od verze 9.0 (komerˇcn´ı n´azev Office 2000) a komunikace s n´ım prob´ıh´a pˇres moduly k´odu a uˇzivatelsk´e formul´aˇre, kter´e se od formul´aˇr˚ u Visual Basic liˇs´ı urˇcit´ ymi omezen´ımi, avˇsak pro vˇetˇsinu aplikac´ı postaˇc´ı. Pokud mluv´ıme o VBA, nemluv´ıme o Excel VBA, Word VBA nebo Access VBA. Syntaxe jazyka je pro vˇsechny aplikace stejn´a, liˇs´ı se pouze jej´ı objektov´ y model, se kter´ ym pracujeme. [1]
Kapitola 4 Zp˚ usob uchov´ an´ı dat v PLC 4.1
Datov´ e typy
Stejnˇe jako pˇri kaˇzd´em programov´an´ı i v SoMachine, potaˇzmo CoDeSys V3, jsou k dispozici r˚ uzn´e datov´e typy promˇenn´ ych, kter´e lze rozdˇelit do tˇr´ı z´akladn´ıch kategori´ı celoˇc´ıseln´e, re´aln´e (s plovouc´ı ˇra´dovou ˇca´rkou) a logick´e (booleovsk´e). Pro efektivn´ı vyuˇzit´ı strojov´eho ˇcasu a pamˇeti je zapotˇreb´ı vyuˇz´ıvat spr´avn´e datov´e typy. Popis nˇekter´ ych datov´ ych typ˚ u, kter´e jsou vyuˇz´ıv´any v knihovnˇe Monitoring, je uveden n´ıˇze, viz tabulka 4.1. Tabulka 4.1: Datov´e typy
Typ
Doln´ı limit
Horn´ı limit
Velikost
BYTE
0
255
8 bit
WORD
0
65535
16 bit
DWORD
0
4294967295
32 bit
INT
-32768
32767
16 bit
DINT
-2147483648
2147483647
32 bit
REAL
-1.175494351e-38
3.402823466e+38
32 bit
BOOL
0
1
1 bit
8
˚ ´ ´I DAT V PLC KAPITOLA 4. ZPUSOB UCHOVAN
4.2
9
Pamˇ et’ov´ a struktura PLC
K urˇcit´emu pamˇet’ov´emu m´ıstu lze pˇristupovat r˚ uzn´ ymi zp˚ usoby, kter´e se liˇs´ı velikost´ı adresovan´eho prostoru - 8 bit˚ u (byte), 16bit˚ u (word), 32 bit˚ u (double word), pˇr´ıpadnˇe 64 bit˚ u (long word). Kaˇzd´a adresa se v souladu s normou IEC1 skl´ad´a z prefixu %M, p´ısmene znaˇc´ıc´ı velikost pamˇet’ov´eho m´ısta(B,W,D,L) a poˇradov´eho ˇc´ısla. Napˇr´ıklad pades´at´ y word v pamˇeti se adresuje jako %MW49. Zp˚ usob adresov´an´ı vnitˇrn´ı pamˇeti PLC m˚ uˇze b´ yt r˚ uzn´ y. Dokonce i nˇekteˇr´ı v´ yrobci mohou u r˚ uzn´ ych zaˇr´ızen´ı pouˇz´ıvat odliˇsn´e zp˚ usoby adresace pamˇet’ov´eho m´ısta. Pro pˇr´ıpad automat˚ u rodiny SoMachine firmy Schneider Electric je zp˚ usob uloˇzen´ı dat zn´azornˇen na obr. 4.1. Jiˇz pˇri stahov´an´ı dat z PLC pomoc´ı OPC serveru nastane komplikace zp˚ usoben´a rozd´ılnou adresac´ı. OPC Factory server pouˇz´ıv´a jin´e adresov´an´ı neˇz PLC.
Obr´azek 4.1: Pamˇet’ov´a struktura - PLC pro SoMachine
1
International Electrotechnical Commission
˚ ´ ´I DAT V PLC KAPITOLA 4. ZPUSOB UCHOVAN
10
Obr´azek 4.2: Pamˇet’ov´a struktura - OPC
Organizace pamˇeti OFS je uvedena na obr´azku 4.2. Rozd´ıl oproti PLC je v adresov´an´ı 32bitov´ ych promˇenn´ ych (double word). Napˇr. adrese %MD50 v PLC odpov´ıd´a na stranˇe OFS adresa %MD100, tedy dvojn´asobnˇe vysok´e ˇc´ıslo. Pˇri psan´ı funkc´ı ve VBA, kter´e slouˇz´ı pro ˇcten´ı z PLC, bylo tedy zapotˇreb´ı vˇsechny 32bitov´e adresy, definovan´e v PLC, vyn´asobit dvˇema.
4.3
Promˇ enn´ e typu retain a persistent
Kaˇzd´e promˇenn´e lze pˇriˇradit atribut retain nebo retain persistent. Tyto promˇenn´e se pot´e uloˇz´ı na speci´aln´ı m´ısto pamˇeti, kter´e je z´alohovan´e bateri´ı pro pˇr´ıpad v´ ypadku nap´ajen´ı, a z´ıskaj´ı vlastnosti popsan´e n´ıˇze. Retain • Zachov´av´a hodnotu po norm´aln´ım vypnut´ı a zapnut´ı PLC. • Zachov´av´a hodnotu i po nekontrolovan´em vypnut´ı PLC. • Zachov´av´a hodnotu po proveden´ı pˇr´ıkazu Reset warm application. Retain persistent • Zachov´av´a hodnotu po nahr´an´ı programu. • Pokud dojde pˇri pˇrehr´an´ı programu k nekonzistenci promˇenn´e, je uˇzivatel vyzv´an k proveden´ı inicializace. • Zachov´av´a hodnotu po proveden´ı pˇr´ıkazu Reset warm application. • Zachov´av´a hodnotu po proveden´ı pˇr´ıkazu Reset cold application.
˚ ´ ´I DAT V PLC KAPITOLA 4. ZPUSOB UCHOVAN
11
Pokud je nˇekter´a lok´aln´ı promˇenn´a funkˇcn´ıho bloku deklarov´ana jako VAR RETAIN, cel´a instance funkˇcn´ıho bloku je uloˇzena v retain oblasti. Protoˇze sledovan´a data mus´ı b´ yt robustnˇe uloˇzena a pˇreˇckat restart syst´emu, jsou vˇsechny d˚ uleˇzit´e promˇenn´e funkˇcn´ıch blok˚ u knihovny Monitoring deklarov´any jako VAR RETAIN.
4.4
Struktura pro ukl´ ad´ an´ı ud´ alost´ı
Pro usnadnˇen´ı manipulace s parametry jednotliv´ ych ud´alost´ı, byla vytvoˇrena struktura strRecData, kter´a obsahuje parametry 1 aˇz 9 v ˇradˇe za sebou. Prvn´ıch ˇsest promˇenn´ ych ve struktuˇre je typu WORD a dalˇs´ı tˇri typu INT. Kaˇzd´a ud´alost tedy bude vˇzdy shrnuta do jedn´e struktury o dev´ıti prvc´ıch. Kaˇzd´emu z´aznamu vznikl´e ud´alosti odpov´ıd´a jedna ˇcasov´a znaˇcka, kter´a se ukl´ad´a do promˇenn´e typu DATE AND TIME (DT), kter´a vyjadˇruje ˇcas ve vteˇrin´ach od 1.1.1970. u. Typ DATE AND TIME m´a velikost 32 bit˚ Protoˇze poˇcet uchov´avan´ ych ud´alost´ı byl stanoven na dvacet, je v´ yhodn´e vytvoˇrit pole struktur strRecData a pole ˇcasov´ ych znaˇcek o dvaceti prvc´ıch, coˇz znaˇcnˇe ulehˇc´ı cyklick´ y pˇr´ıstup k dat˚ um.
4.5
Adresy urˇ cen´ e k n´ asledn´ emu stahov´ an´ı dat
V souladu s n´asledn´ ym stahov´an´ım dat z PLC je nutn´e data ukl´adat na pˇredem specifikovan´a m´ısta. V tomto ˇreˇsen´ı se poˇc´ıt´a se tˇremi bloky pro z´aznam ud´alost´ı, ˇsedes´ati statistick´ ymi promˇenn´ ymi a jednou promˇennou pro nastavov´an´ı syst´emov´eho ˇcasu PLC. V prostˇred´ı SoMachine se promˇenn´e typu pole struktur nebo pole promˇenn´ ych typu double word mus´ı adresovat jako %ML. Pˇri naˇc´ıt´an´ı prvk˚ u tˇechto pol´ı se ale pˇristupuje pomoc´ı %MD nebo %MW v souvislosti na tom, zda ˇcteme parametr ud´alosti, kter´ y m´a velikost 16 bit˚ u, nebo ˇcasovou znaˇcku, kter´a je typu DT (32 bit˚ u). Tabulka 4.2 zobrazuje pamˇet’ov´a m´ısta, na kter´a je nutn´e lokalizovat promˇenn´e urˇcen´e k n´asledn´emu stahov´an´ı. Ke kaˇzd´e promˇenn´e je uveden n´azev listu v excelovsk´e aplikaci, v nˇemˇz se staˇzen´a data zobraz´ı. Pro lepˇs´ı pˇredstavu o rozm´ıstˇen´ı promˇenn´ ych je na obr´azku 4.3 uvedena mapa pamˇeti PLC.
˚ ´ ´I DAT V PLC KAPITOLA 4. ZPUSOB UCHOVAN
12
Pˇri stahov´an´ı dat do prostˇred´ı MS Excel je k promˇenn´ ym pˇristupov´ano jednotlivˇe. Jsou vyb´ır´any jednotliv´e prvky pol´ı dle jejich adresy. Vˇsechny naˇc´ıtan´e hodnoty, kromˇe ˇcasov´ ych poloˇzek typu DT, jsou kvalifikov´any jako 16bitov´e ˇc´ıslo (word). Poloˇzky pol´ı, kter´a obsahuj´ı ˇcasov´e hodnoty, jsou naˇc´ıt´any jako 32bitov8 ˇc´ısla (double word). Tato ˇc´ısla uv´ad´ı poˇcet vteˇrin od 1. 1. 1970. Tabulka 4.2: Adresy urˇcen´e ke stahov´an´ı dat
M´ısto v pamˇ eti
Typ
List MS Excel
%ML250
ARRAY [1..20] of strRecData
Event1
%ML295
ARRAY [1..20] of DT
Event1
%ML305
ARRAY [1..20] of strRecData
Event2
%ML350
ARRAY [1..20] of DT
Event2
%ML360
ARRAY [1..20] of strRecData
Event3
%ML405
ARRAY [1..20] of DT
Event3
%MW1720 - %MW1739
WORD nebo INT
Statistics1
%MW1740 - %MW1759
WORD nebo INT
Statistics2
%MW1760 - %MW1779
WORD nebo INT
Statistics3
%MW992
DWORD
Slouˇz´ı k resetov´an´ı blok˚ u pˇr´ıkazem z PC.
%MD993
DWORD
Slouˇz´ı k resetov´an´ı blok˚ u pˇr´ıkazem z PC.
%MD994
DWORD
Slouˇz´ı k resetov´an´ı blok˚ u pˇr´ıkazem z PC.
%MD995
DWORD
Slouˇz´ı k nastaven´ı nov´eho ˇcasu PLC z PC.
%MD998
DWORD
Povoluje
zobrazen´ı
list˚ u
Events1 a Statistics1. %MD999
DWORD
Povoluje
zobrazen´ı
list˚ u
Events2 a Statistics2. %MD498
DWORD
Obsahuje novou hodnotu pro nastaveni ˇcasu PLC.
˚ ´ ´I DAT V PLC KAPITOLA 4. ZPUSOB UCHOVAN
Obr´azek 4.3: Mapa pamˇet’ov´ ych m´ıst PLC urˇcen´ ych ke ˇcten´ı nebo z´apisu
13
Kapitola 5 Knihovna Monitoring Jako jeden z hlavn´ıch v´ ysledk˚ u t´eto pr´ace vznikla knihovna funkˇcn´ıch blok˚ u pro CoDeSys V3 nazvan´a Monitoring. Tato knihovna obsahuje specifikaci sedmi funkˇcn´ıch blok˚ u a jedn´e datov´e struktury. Knihovna v sobˇe nese informaci o knihovn´ach pouˇzit´ ych pro jej´ı vlastn´ı tvorbu, po instalaci a pˇrid´an´ı knihovny do projektu v prostˇred´ı SoMachine se tedy pˇridaj´ı i dalˇs´ı z´avisl´e knihovny1 . Pˇri tvorbˇe knihovny byl kladen d˚ uraz na co nejvˇetˇs´ı obecnost a komplexnost. Z tˇechto d˚ uvod˚ u byly do knihovny zahrnuty i funkˇcn´ı bloky, jako je ˇc´ıtaˇc ˇci poˇc´ıt´an´ı maxima a minima. Tyto funkce nejsou nikterak sloˇzit´e, ale jednotn´e uloˇzen´ı v jedn´e knihovnˇe s ostatn´ımi bloky, stejnˇe jako jednotn´e oznaˇcen´ı vstup˚ u a v´ ystup˚ u, zvyˇsuje pohodl´ı uˇzivatele a usnadˇ nuje pr´aci pˇri tvorbˇe aplikace pro sbˇer a uchov´an´ı provozn´ıch dat.
5.1 5.1.1
Popis funkˇ cn´ıch blok˚ u EventsManager
Tento funkˇcn´ı blok zaznamen´av´a posledn´ıch dvacet detekovavn´ ych ud´alost´ı. Parametry syst´emu se ukl´adaj´ı do vstupnˇe-v´ ystupn´ı promˇenn´e arstrcEvents. Kaˇzd´e poloˇzce z pole arstrcEvents pˇr´ısluˇs´ı poloˇzka z pole ardtTimeStamp, kter´a ud´av´a ˇcas a datum vzniku ud´alosti.
1
V CoDeSys oznaˇcovan´e jako Referenced libraries.
14
KAPITOLA 5. KNIHOVNA MONITORING
15
Tabulka 5.1: Popis vstup˚ u a v´ ystup˚ u - funkˇcn´ı blok EventsManager
Typ
Poˇ c. hodn.
Popis
BOOL
FALSE
Pˇri n´abˇeˇzn´e hranˇe naˇcte parametry
VAR IN i xEventTrig
i wParam1 aˇz I wParam1 a uloˇz´ı do vstupnˇe v´ ystupn´ı promˇen´e. i xBlockEnable
BOOL
TRUE
i wParam1
WORD
Sledovan´ y parametr 1.
i wParam2
WORD
Sledovan´ y parametr 2.
i wParam3
WORD
Sledovan´ y parametr 3.
i wParam4
WORD
Sledovan´ y parametr 4.
i wParam5
WORD
Sledovan´ y parametr 5.
i wParam6
WORD
Sledovan´ y parametr 6.
i iParam7
INT
Sledovan´ y parametr 7.
i iParam8
INT
Sledovan´ y parametr 8.
i iParam9
INT
Sledovan´ y parametr 9.
i xReset
BOOL
FALSE
Uvede funkˇcn´ı blok do aktivity
Pˇri nastaven´ı TRUE vymaˇze uloˇzen´e ud´alosti.
i xAlarmReset
BOOL
FALSE
Pˇri nastaven´ı TRUE vynuluje v´ ystupn´ı promˇennou q xAlarm.
VAR OUT q lastEvent
strcRecData
Parametry naˇcten´e pˇri posledn´ı zachycen´e ud´alosti.
q timeStamp
DT
Datum a ˇcas vzniku posledn´ı zachycen´e ud´alosti.
q xAlarm
BOOL
FALSE
Promˇenn´a
se
nastav´ı po
detekci
ud´alosti vstupem i xEventTrig. VAR IN OUT ardtTimeStamp
ARRAY [1..20]
Pole ˇcasov´ ych znaˇcek posledn´ıch dvaof
DT Tabulka pokraˇcuje na dalˇs´ı stranˇe
ceti zachycen´ ych ud´alost´ı.
KAPITOLA 5. KNIHOVNA MONITORING
arstrcEvents
ARRAY [1..20]
16
Pole uloˇzen´ ych parametr˚ u posledn´ıch of
dvaceti ud´alost´ı.
strcRecData Pozn´ amky: • Silnˇe se doporuˇcuje deklarovat vstupnˇe v´ ystupn´ı promˇennou s parametrem retain. Retain promˇenn´a zachov´av´a svou hodnotu i po v´ ypadku nap´ajen´ı (viz 4.3). Ostatn´ı funkˇcn´ı bloky nepouˇz´ıvaj´ı vstupnˇe-v´ ystupn´ı promˇenn´e, ale jen v´ ystupn´ı, proto jsou jiˇz v´ ystupy samotn´ ych blok˚ u nastaveny jako retain. ˇ • Casov´ a znaˇcka pˇriˇrazovan´a ud´alostem je odeˇc´ıt´ana ze syst´emov´eho ˇcasu PLC, proto je pro spr´avnou funkci nezbytn´e spr´avn´e nastaven´ı tohoto ˇcasu. Lze vyuˇz´ıt funkˇcn´ı blok SySTimeSetting z knihovny Monitoring.
5.1.2
Statistics
Tento funkˇcn´ı blok slouˇz´ı k poˇc´ıt´an´ı statistick´ ych u ´daj˚ u (maximum, minimum, pr˚ umˇern´a hodnota) vstupn´ıho sign´alu. V´ ystupn´ı promˇenn´e jsou typu real z toho d˚ uvodu, ˇze pˇri v´ ypoˇctu se vyuˇz´ıv´a operace dˇelen´ı. Jelikoˇz promˇenn´e urˇcen´e pro uloˇzen´ı statistick´ ych u ´daj˚ u jsou celoˇc´ıseln´eho typu word (16 bit˚ u), doporuˇcuje se pro potˇrebu n´asledn´eho stahov´an´ı vyn´asobit v´ ystup pˇr´ısluˇsn´ ym n´asobkem deseti a pˇretypovat na word. Pokud nejsou hodnoty za desetinou ˇca´rkou podstatn´e, n´asoben´ı nen´ı nutn´e prov´adˇet.
5.1.3
ImpulseCounter
Tento funkˇcn´ı blok slouˇz´ı k ˇc´ıt´an´ı impuls˚ u vstupn´ıho sign´alu. Lze urˇcit aktivn´ı hranu pro ˇc´ıt´an´ı vstupem i xRiseOrFall.
KAPITOLA 5. KNIHOVNA MONITORING
17
Tabulka 5.2: Popis vstup˚ u a v´ ystup˚ u - funkˇcn´ı blok Statistics
Typ
Poˇ c. hodn.
Popis
VAR IN i rInputSignal
REAL
Vstupn´ı signal.
i xBlockEnable
BOOL
Uvede funkˇcn´ı blok do aktivity.
i xReset
BOOL
Nastav´ı v´ ystupy na poˇca´teˇcn´ı hodnoty.
VAR OUT q rMin
REAL
3E+38
Minimaln´ı hodnota vstupn´ıho sign´alu.
q rMax
REAL
1E-38
Maxim´aln´ı hodnota vstupn´ıho sign´alu.
q rAverage
REAL
0
Pr˚ umˇern´a hodnota vstupn´ıho sign´alu.
Tabulka 5.3: Popis vstup˚ u a v´ ystup˚ u - funkˇcn´ı blok ImpulseCounter
Typ
Poˇ c. hodn.
Popis
VAR IN i xInputSignal
BOOL
Vstupn´ı sign´al, jehoˇz impulsy jsou ˇc´ıt´any.
i xReset
BOOL
FALSE
Vynuluje ˇc´ıtaˇc.
i xBlockEnable
BOOL
Aktivuje funkci ˇc´ıtaˇce.
i xRiseOrFall
BOOL
Urˇcuje
aktivn´ı
i xInputSignal.
hranu
TRUE...nabˇeˇzn´a
hrana, FALSE...sestupn´a hrana VAR OUT q wImpulseCount WORD
vstupu
Aktu´aln´ı hodnota ˇc´ıtaˇce.
KAPITOLA 5. KNIHOVNA MONITORING
5.1.4
18
EnergyMonitor1
Tento funkˇcn´ı blok slouˇz´ı poˇc´ıt´an´ı spotˇrebovan´e energie na z´akladˇe aktu´aln´ıho v´ ykonu. Tabulka 5.4: Popis vstup˚ u a v´ ystup˚ u - funkˇcn´ı blok EnergyMonitor1
Typ
Poˇ c. hodn.
Popis
VAR IN i wActPower
WORD
Aktu´aln´ı v´ ykon v jednotk´ach urˇcen´ ych vstupem i iEnergyUnit
i iEnergyUnit
INT
Urˇcen´ı jednotek v´ ykonu. 0...W, 1...kW, 2...MW
i xBlockEnable
BOOL
Uveden´ı funkˇcn´ıho bloku do aktivity.
i xReset
BOOL
Vynulov´an´ı naˇcten´ ych hodnot.
i xAlarmReset
BOOL
false
Vynulov´an´ı v´ ystupn´ıho alarmu.
i wMaxPower
WORD
0
Maximaln´ı dovolen´a hodnota v´ ykonu. Pˇri pˇrekroˇcen´ı vznikne alarm.
i wEnergyLimit
WORD
0
Hranice spotˇreby, pˇri kter´e se vystav´ı alarm.
VAR OUT q wUsedEnergy
WORD
Spotˇrebovan´a energie za dobu aktivity funkˇcn´ıho bloku. Hodnota je v jednotk´ach dle v´ ystupu q bEnergyUnit
q wElapsTimeH
WORD
Uplynul´ y ˇcas mˇeˇren´ı enregie v hodin´ach.
q bEnergyUnit
BYTE
Jednotky namˇeˇren´e enregie. 0...Wh, 1...kWh, 2...MWh
q xAlarm
BOOL
FALSE
V´ ystupn´ı alarm spuˇstˇen´ y pˇrekroˇcen´ım max. v´ ykonu nebo dosaˇzen´ı hranice spotˇreby.
q bAlarmID
BYTE
0...dosaˇzeno
hranice
1...pˇrekon´ana
maxim´aln´ı
spotˇreby, hodnota
v´ ykonu, 2...oba pˇredchoz´ı alarmy jsou aktivn´ı.
KAPITOLA 5. KNIHOVNA MONITORING
5.1.5
19
EnergyMonitor2
Tento funkˇcn´ı blok slouˇz´ı k poˇc´ıt´an´ı spotˇrebovan´e energie na z´akladˇe puls˚ u z pulsn´ıho elektromˇeru. Hrana na vstupu i xInputSignal zv´ yˇs´ı v´ ystupn´ı hodnotu v´ ykonu o velikost pˇrevodn´ıho koeficientu i rEnergyCoef. Tabulka 5.5: Popis vstup˚ u a v´ ystup˚ u - funkˇcn´ı blok EnergyMonitor1
Typ
Poˇ c. hodn.
Popis
VAR IN i xInputSignal
BOOL
Vstupn´ı sign´al z impulzn´ıho elektromˇeru. Reaguje na hranu urˇcenou vstupem i xRiseOrFall.
i rEnergyCoef
REAL
Ud´av´a poˇcet Wh na jeden impuls.
i xReset
BOOL
i xBlokEnable
BOOL
Aktivuje meˇren´ı energie.
i xRiseOrFall
BOOL
Urˇcuje
FALSE
Vynuluje namˇeˇren´e hodnoty. aktivn´ı
i xInputSignal.
hranu
vstupu
TRUE...nabˇeˇzn´a
hrana, FALSE...sestupn´a hrana i xAlarmReset
BOOL
FALSE
Vynuluje v´ ystupn´ı alarm.
i wEnergyLimit
WORD
0
Hranice spotˇreby pro vystaven´ı alarmu.
VAR OUT q wUsedEnergy
WORD
Spotˇrebovan´a energie za dobu aktivity funkˇcn´ıho bloku. Hodnota je v jednotk´ach dle v´ ystupu q bEnergyUnit
q wElapsTimeH
WORD
Uplynul´ y ˇcas mˇeˇren´ı enregie v hodin´ach.
q bEnergyUnit
BYTE
Jednotky namˇeˇren´e enregie. 0...Wh, 1...kWh, 2...MWh
q xAlarm
BOOL
FALSE
Je nastaveno po pˇrekroˇcen´ı nastaven´e hranice spotˇreby.
KAPITOLA 5. KNIHOVNA MONITORING
5.1.6
20
OperHoursCounter
Tento funkˇcn´ı blok slouˇz´ı k ˇc´ıt´an´ı operaˇcn´ıch hodin (motohodin). Po uplynut´ı definovan´eho poˇctu operaˇcn´ıch hodin je aktivov´ano upozornˇen´ı na potˇrebu pravideln´eho servisu. Tabulka 5.6: Popis vstup˚ u a v´ ystup˚ u - funkˇcn´ı blok OperHoursCounter
Typ
Poˇ c. hodn.
Popis
VAR IN i xBlokEnable
ˇ ıt´an´ı pracovn´ıch hodin je aktivn´ı poC´
BOOL
kud vstup roven TRUE. i xResetAll
BOOL
FALSE
Resetuje cel´ y blok ˇc´ıt´an´ı oper. hodin.
i xRestartSerCnt
BOOL
FALSE
Restartuje poˇc´ıt´an´ı hodin do pˇr´ıˇst´ıho servisu.
i wHoursToServis
WORD
4000
Poˇcet hodin do pˇr´ıˇst´ıho servisu.
VAR OUT RETAIN q dwOperHrsTotal
DWORD 0
Celkov´ y poˇcet operaˇcn´ıch hodin.
q wOperHrs
WORD
Poˇcet operaˇcn´ıch hodin od posledn´ıho
0
servisu. q wHrsToServis
WORD
4000
Poˇcet hodin zb´ yvaj´ıc´ıch do pˇr´ıˇst´ıho servisu.
q xServisAlarm
BOOL
FALSE
TRUE pokud q wHrsToServis dos´ahne nulov´e hodnoty.
5.1.7
SysTimeSetting
Tento funkˇcn´ı blok sloˇz´ı k nastaven´ı syst´emov´eho ˇcasu PLC. Pro nastaven´ı je pouˇzita ˇcasov´a hodnota zadan´a uˇzivatelem pˇres uˇzivatelsk´e rozhran´ı v seˇsitu Microsoft Excel. Proto mus´ı b´ yt na vstup i dwNewPlcDT pˇrivedena promˇenn´a uloˇzen´a na adrese %MD498 (viz tabulka 4.2).
KAPITOLA 5. KNIHOVNA MONITORING
21
Tabulka 5.7: Popis vstup˚ u a v´ ystup˚ u - funkˇcn´ı blok SysTimeSetting
Typ
Poˇ c. hodn.
Popis
VAR IN i dwNewPlcDT
DWORD
Nov´ y ˇcas PLC v sekund´ach od 1.1.1970
i xSet
BOOL
N´abeˇzn´a hrana provede nastaven´ı data a ˇcasu.
VAR OUT q dtSysTime
DT
Posledn´ı ˇcas nasteven´ y pomoc´ı tohoto funkˇcn´ıho bloku.
q bError
BOOL
TRUE pokud vznikla chyba pri zmˇenˇe syst´emov´eho ˇcasu.
5.2
V´ ypoˇ cty v´ ystupn´ıch hodnot funkˇ cn´ıch blok˚ u
V´ ypoˇcet pr˚ umˇern´e hodnoty ve funkˇcn´ım bloku Statistics je prov´adˇen dle rovnice: t=n 1 X i rInputSignal(t), q rAverage = n t=1
(5.1)
kde n je poˇcet cykl˚ u PLC od spuˇstˇen´ı poˇc´ıt´an´ı. Hodnota vstupu i rInputSignal je v kaˇzd´em cyklu pˇriˇc´ıt´ana a v´ ysledn´a suma je dˇelena poˇctem cykl˚ u. V´ ypoˇcet pr˚ umˇern´e hodnoty ve funkˇcn´ım bloku EnergyMonitor1 je prov´adˇen dle: 36 · 105 q wU sedEnergy = T
Z
t+T
P (t)dt [W h; ms, W ],
(5.2)
t
kde P je aktu´aln´ı v´ ykon na vstupu i wActPower a T je ˇcas mˇeˇren´ı. Namˇeˇren´a energie je n´asobena pˇr´ısluˇsnou mocninou deseti podle vstupu i iEnergyUnit. Ve skuteˇcnosti se nejd´a o spojitou integraci, ale o nespojit´e pˇriˇc´ıt´an´ı element´arn´ı spotˇreby za dobu jednoho cyklu PLC. V kaˇzd´em cyklu se ˇcte aktu´aln´ı hodnota syst´emov´eho ˇcasu, od kter´e se odeˇcte ˇcasov´a hodnota cyklu pˇredchoz´ıho. T´ımto zp˚ usobem se mˇeˇr´ı d´elka pˇredchoz´ıho cyklu. Funkˇcn´ı blok EnergyMonitor2 pracuje jako impulsn´ı elektromˇer. Pˇri detekci aktivn´ı hrany vstupu i xInputSignal se aktu´aln´ı hodnota namˇeˇren´e spotˇreby zv´ yˇs´ı o hodnotu ˇctenou ze vstupui rEnergyCoef.
KAPITOLA 5. KNIHOVNA MONITORING
22
Funkˇcn´ı blok ImpulseCounter pracuje jako ˇc´ıtaˇc. Pˇri detekci aktivn´ı hrany na vstupu i xInputSignal je inkrementov´ana v´ ystupn´ı promˇenn´a. Mˇeˇren´ı poˇctu operaˇcn´ıch hodin ve funkˇcn´ım bloku OperHoursCounter se prov´ad´ı pomoc´ı ˇcasovaˇce se spoˇzdˇen´ ym sepnut´ım, kter´ y je nastaven na jednu minutu. Po uplynut´ı jedn´e minuty se ˇcasovaˇc restartuje a ˇc´ıtaˇc minut se inkrementuje. Kdyˇz ˇc´ıtaˇc minut nab´ yv´a hodnoty 60, inkrementuje se poˇcet hodin a vynuluje se ˇc´ıtaˇc minut. V´ yvojov´e diagramy vˇsech funkˇcn´ıch blok˚ u jsou uvedeny v pˇr´ıloze B.
Kapitola 6 Uˇ zivatelsk´ e rozhran´ı Uˇzivatelsk´e rozhran´ı je tvoˇreno seˇsitem aplikace MS Excel. Ten obsahuje jeden hlavn´ı list pro ovl´ad´an´ı a dalˇs´ıch sedm list˚ u slouˇz´ıc´ıch jako ˇsablony, do kter´ ych se n´aslednˇe stahuj´ı data. Uˇzivatel m´a moˇznost ˇsablony upravovat podle toho jak´a data se budou do tabulky naˇc´ıtat. T´ım je myˇslena zejm´ena modifikace hlaviˇcek sloupc˚ u a n´azv˚ u ˇra´dk˚ u tabulek nebo skryt´ı nepouˇz´ıvan´ ych sloupc˚ u. Vˇetˇsina funkˇcnosti uˇzivatelsk´eho prostˇred´ı byla vytvoˇrena pomoc´ı v´ yˇse zm´ınˇen´eho jazyka Visual Basic for Application. V hlavn´ım menu ( viz obr. 6.1) jsou k dispozici ˇctyˇri tlaˇc´ıtka pro ovl´ad´an´ı aplikace. Po stisknut´ı tlaˇc´ıtka St´ahnout data se pˇrenesou data uloˇzen´a v PLC do PC a zobraz´ı se do nov´eho seˇsitu, kter´ y je naform´atov´an podle uˇzivatelem modifikovan´ ych ˇsablon. Po stisknut´ı tlaˇc´ıtka Uloˇzit staˇzen´a data je uˇzivateli nab´ıdnuto uloˇzen´ı novˇe vznikl´eho seˇsitu, n´azev nov´eho souboru je implicitnˇe nastaven podle data uloˇzen´ı. Po stisku tlaˇc´ıtka Nastavit ˇcas PLC se provede nastaven´ı syst´emov´eho ˇcasu PLC podle hodnoty vyplnˇen´e v sousedn´ım poli. Posledn´ı tlaˇc´ıtko Vynulovat v PLC slouˇz´ı k nulov´an´ı blok˚ u v pamˇeti PLC. Po stisku je vynulov´ana ta ˇca´st pamˇeti, kter´a je vybr´ana v sousedn´ım rozvinovac´ım seznamu. Aby nedoˇslo k ne´ umysln´e ztr´atˇe dat, je uˇzivatel nucen vymaz´an´ı dat explicitnˇe potvrdit. Ostatn´ı listy oznaˇcen´e jako Events a Statistics, slouˇz´ı jako ˇsablony, do kter´ ych se budou data zobrazovat. Pˇr´ıklad konkr´etn´ı modifikace listu Events ukazuje obr. 6.2, jedn´a se o prvn´ı re´aln´e vyuˇzit´ı tohoto uˇzivatelsk´eho rozhran´ı coby OPC klienta v praxi. Aplikace slouˇz´ı ke sledov´an´ı a sbˇeru provozn´ıch dat z mostov´ ych jeˇra´b˚ u.
23
ˇ ´ ROZHRAN´I KAPITOLA 6. UZIVATELSK E
Obr´azek 6.1: Hlavn´ı menu uˇzivatelsk´eho rozhran´ı
Obr´azek 6.2: Uk´azka staˇzen´ ych ud´alost´ı - aplikace pro sledov´an´ı mostov´ ych jeˇr´ ab˚ u.
24
Kapitola 7 Komunikace 7.1
OPC
Jak jiˇz bylo zm´ınˇeno v pˇredchoz´ıch kapitol´ach, komunikace mezi klientskou aplikac´ı na PC a ˇr´ıdic´ım syst´emem prob´ıh´a pˇres OPC server. Sch´ematick´e zapojen´ı komunikace je uvedeno na obr. 3.1 pˇr´ıp. obr. 8.1. K plnˇen´ı standardu OPC je pouˇzit software OFS od Schneider Elektric. Komunikace mezi serverem a c´ılov´ ym zaˇr´ızen´ım (PLC) sk´ yt´a v´ıce variant pˇripojen´ı, kter´e se odv´ıj´ı zejm´ena od komunikaˇcn´ıch moˇznost´ı dan´eho PLC. Je d˚ uleˇzit´e se zm´ınit o potˇrebˇe dynamick´ ych knihoven SAOFSGrpX.dll a SAOPCGrpX.dll, kter´e jsou nezbytn´e pro vytv´aˇren´ı promˇenn´ ych na stranˇe klientsk´e aplikace v MS Excel. Tyto knihovny jsou obsaˇzeny na pˇriloˇzen´em CD.
7.2
Moˇ znosti pˇ ripojen´ı
Byly otestov´any dvˇe moˇznosti pˇripojen´ı mezi PLC a OPC serverem a to po protokolu Modbus1 RTU a protokolu Modbus TCP.
7.2.1
Modbus RTU
Modbus je pˇrenosov´ y protokol vyvinut´ y firmou Gould Modicon (nyn´ı Schneider Electric) pro komunikaci mezi ˇr´ıdic´ımi syst´emy. Konstrukt´eˇri vyuˇzili jiˇz zaveden´e standardy komunikac´ı, a hlavnˇe nesv´azali“ Modbus s ˇza´dnou placenou licenc´ı. To bylo zaˇca´tkem ” 1
Tzv. Modicon - bus, komunikaˇcn´ı protokol, v´ıce informac´ı na http://www.modbus.org
25
KAPITOLA 7. KOMUNIKACE
26
glob´aln´ıho rozˇs´ıˇren´ı Modbusu [14]. Nyn´ı je povaˇzov´an za veˇrejn´ y protokol a stal se de facto standardem v komunikaci mezi zaˇr´ızen´ımi r˚ uzn´ ych v´ yrobc˚ u. Na rozd´ıl od jin´ ych protokol˚ u nedefinuje ˇza´dnou fyzickou vrstvu (OSI vsrtva 1) [3]. V t´eto variantˇe pˇripojen´ı prob´ıh´a komunikace po s´eriov´e lince RS485 (EIA - 485). V´ıce informac´ı o standardu RS485 lze naj´ıt v literatuˇre [4]. Do PC je linka pˇrivedena pomoc´ı pˇrevodn´ıku RS485-USB do USB portu. Je nezbytn´e proveden´ı spr´avn´eho nastaven´ı Modbus adresy PLC a parametr˚ u pˇrenosu (rychlost, parita, stop bity). Pro nastaven´ı konfigurace OFS je na pˇriloˇzen´em CD obsaˇzen konfiguraˇcn´ı soubor OFS Config modbus.xml.
7.2.2
Modbus TCP
Druh´a testovan´a moˇznost pˇripojen´ı je pˇres ethernetovou s´ıt’ pomoc´ı protokolu Modbus TCP. Pro v´ıce informac´ı o protokolu Modbus TCP viz [13]. I pro tento pˇr´ıpad je na CD pˇriloˇzen konfiguraˇcn´ı soubor pro nastaven´ı OPC Factory serveru OFS Config ethernet.xml.
Kapitola 8 Testov´ an´ı Pro otestov´an´ı funkce knihovny Monitoring a OPC klienta byl vytvoˇren testovac´ı projekt (ATV IMC monitoring template.projectarchive). Tento projekt slouˇz´ı z´aroveˇ n jako ˇsablona pro vyuˇzit´ı knihovny. Definuje glob´aln´ı promˇenn´e urˇcen´e k stahov´an´ı a obsahuje instance vˇsech funkˇcn´ıch blok˚ u knihovny Monitoring. Uk´azka tohoto projektu v jazyce CFC je zobrazena v pˇr´ıloze C.
8.1
Testovac´ı zapojen´ı
K testov´an´ı bylo vyuˇzito zapojen´ı s frekvenˇcn´ım mˇeniˇcem Altivar 71, programovatelnou ˇr´ıdic´ı kartou Altivar - IMC a trojf´azov´ ym asynchronn´ım motorem. Z registr˚ u frekvenˇcn´ıho mˇeniˇce lze ˇc´ıst aktu´aln´ı hodnoty proudu, napˇet´ı, ot´aˇcek, v´ ykonu nebo stavov´a slova. Tato moˇznost byla vyuˇzita k testov´an´ı funkˇcn´ıch blok˚ u pomoc´ı re´aln´ ych vstupn´ıch hodnot. Komunikace mezi frekvenˇcn´ım mˇeniˇcem a kontrol´erem prob´ıh´a po intern´ı sbˇernici. ˇ ı promˇenn´ Cten´ ych z frekvenˇcn´ıho mˇeniˇce prob´ıh´a na zaˇca´tku kaˇzd´eho cyklu volnˇe bˇeˇz´ıc´ı u ´lohy, kter´a je v testovac´ım projektu nazv´ana freewheel Task. Pro detekci vzniku je vhodn´e pouˇz´ıt roˇs´ıˇren´e stavov´e slovo LR1, jehoˇz druh´ y bit se nastav´ı pokud mˇeniˇc pˇrejde do stavu chyby. Pamˇet’ frekvenˇcn´ıho mˇeniˇce poskytuje des´ıtky parametr˚ u, kter´e lze zaznamen´avat pˇri vzniku u ´d´alost´ı, jejich u ´pln´ y seznam lze naj´ıt v [6]. Sch´ema testovac´ıho zapojen´ı zobrazuje obr. 8.1
27
´ ´I KAPITOLA 8. TESTOVAN
28 Microsoft Excel OPC Factory Server
Diskrétní vstupy
OLE Automation
Altivar 71 Interní sběrnice Asynchronní motor
Modbus, Ethernet ATV - IMC Napájení motoru
Obr´azek 8.1: Sch´ema testovac´ıho zapojen´ı
8.2
Prov´ adˇ en´ı test˚ u
Jeden z diskr´etn´ıch vstup˚ u mˇeniˇce byl nastaven jako sign´al extern´ı chyby, kter´ y byl vyuˇzit pro snadn´e pˇriveden´ı mˇeniˇce do chybov´eho stavu. V´ ystupn´ı parametry mˇeniˇce, naˇc´ıtan´e po intern´ı sbˇernici se zaznamenaj´ı do pole arstrcEvents, kter´e je vstupnˇe-v´ ystupn´ı promˇennou bloku EventsManager. Po vzniku poruchy se rovnˇeˇz nastav´ı v´ ystupn´ı alarm a nastav´ı ostatn´ı v´ ystupn´ı promˇenn´e. Pro testov´an´ı funkce bloku EnergyMonitor1 byla na vstup pro ˇcten´ı aktu´aln´ıho v´ ykonu pˇrivedena promˇenn´a, kter´a je naplnˇena hodnotou v´ ykonu, kterou poskytuje pˇr´ımo frekvenˇcn´ı mˇeniˇc. Funkce spouˇstˇen´ı a resetov´an´ı alarmu byla testov´ana zmˇenou vstupn´ıch promˇenn´ ych, kter´e ud´avaj´ı hranice v´ ykonu a energie pro spuˇstˇen´ı alarmu. Blok EnergyMonitor2, kter´ y zast´av´a funkci impulsn´ıho elektromˇeru, byl testov´an pouze zmˇenou vstupn´ıch promˇenn´ ych, kter´e nejsou nikterak ˇcteny z mˇeniˇce. Nˇekoliker´e pˇreklopen´ı vstupu i xInputSignal je postaˇcuj´ıc´ı pro kontrolu spr´avn´e funkˇcnosti bloku. Stejn´ ym zp˚ usobem byl otestov´an i blok ImpulseCounter. Vstup i rInputStatistics ˇcte aktu´aln´ı hodnotu rychlosti, kterou poskytuje frekvenˇcn´ı mˇeniˇc. Jelikoˇz jsou vˇsechny vstupn´ı i v´ ystupn´ı promˇenn´e typu real, je zapotˇreb´ı nejprve pˇretypovat hodnotu rychlosti z´ıskanou z frekvenˇcn´ıho mˇeniˇce z typu int na real. Promˇenn´e pˇripojen´e na vstupy bloku SysTimeSetting jsou pˇrepisov´any uˇzivatelsk´ ym
´ ´I KAPITOLA 8. TESTOVAN
29
pˇr´ıstupem ze seˇsitu aplikace Microsoft Excel. Po stisku tlaˇc´ıtka Nastavit ˇcas PLC vznikne impuls na vstupu i xSet, kter´ y provede nastaven´ı ˇcasu. Po spr´avn´em nastaven´ı ˇcasu ym ˇcasem a v´ ystup q bError mus´ı se mus´ı v´ ystup q dtSysTime shodovat s poˇzadovan´ nab´ yvat hodnoty false. Hodnoty vstupn´ıch promˇenn´ ych bloku OperHoursCounter byly pˇri testov´an´ı mˇenˇeny pouze pomoc´ı programovac´ıho prostˇred´ı.
8.3
V´ ysledky test˚ u
Blok EventsManager spr´avnˇe reaguje na vznik chyby d´ıky ˇcten´ı rozˇs´ıˇren´eho stavov´eho slova LR1. Vˇsechny pˇriveden´e promˇenn´e typu parametr ud´alosti se zaznamen´avaj´ı do ˇ ud´alosti uloˇzen´ vstupnˇe-v´ ystupn´ı promˇenn´e. Cas y ve vstupnˇe-v´ ystupn´ı promˇenn´e odpov´ıd´a okamˇziku jej´ıho vzniku. Po vzniku ud´alosti se nastav´ı v´ ystupn´ı alarm, kter´ y lze bez pot´ıˇz´ı resetovat vstupem i xReset. Blok EnergyMonitor1 spr´avnˇe integruje energii jako souˇcin aktu´aln´ıho v´ ykonu a aktu´aln´ı d´elky cyklu PLC. Nastavov´an´ı a reset alarmu funguje bez probl´em˚ u. V´ ystupn´ı hodnota energie bloku EnergyMonitor2 odpov´ıd´a celoˇc´ıseln´ ym n´asobk˚ um vstupn´ı promˇenn´e i rEnergyCoef. Spouˇstˇen´ı a resetov´an´ı alarmu funguje spr´avnˇe. Funkˇcn´ı blok ImpulseCounter spr´avnˇe ˇc´ıt´a impulsy vstupn´ı promˇenn´e i xInputSignal. Po naˇc´ıt´an´ı definovan´eho poˇctu impuls˚ u se nastav´ı alarm, kter´ y lze bez probl´em˚ u resetovat. Nastaven´ı vstupu i xRiseOrFall zmˇen´ı spouˇstˇec´ı hranu z vzestupn´e na sestupnou. Poˇcet motohodin naˇc´ıtan´ y za dobu testov´an´ı odpov´ıdal realn´emu ˇcasu mˇeˇren´eho pomoc´ı stopek. Alarm ohlaˇsuj´ıc´ı potˇrebu pravideln´eho servisu se spust´ı po uplynut´ı definovan´eho poˇctu hodin. Po stisku tlaˇc´ıtka St´ahnout data v uˇzivatelsk´em rozhran´ı aplikace Excel se vˇsechny promˇenn´e urˇcen´e ke staˇzen´ı zobraz´ı spr´avnˇe. Nulov´an´ı registr˚ u v PLC z uˇzivatelsk´eho rozhran´ı pracuje bez probl´em˚ u. Funkˇcn´ı blok SysTimeSetting nen´ı kompatibiln´ı s PLC Altivar - IMC. Na ostatn´ıch PLC rodiny SoMachine funguje bez probl´em˚ u. Vˇsechna data typu ud´alost´ı i statistik jsou v PLC uchov´any po resetu PLC d´ıky pouˇzit´ı promˇenn´ ych s parametrem retain. Vstupnˇe v´ ystupn´ı promˇenn´e bloku EventsManager je definov´ana uˇzivatelem, pro spr´avnou funkci je potˇreba, aby uˇzivatel definoval tuto promˇennou zp˚ usobem uveden´ ym v testovac´ım projektu. Hodnoty namˇeˇren´e pˇri prov´adˇen´ı test˚ u jsou uvedeny v pˇr´ıloze A.
Kapitola 9 Z´ avˇ er C´ılem pr´ace bylo vytvoˇren´ı knihovny pro prostˇred´ı CoDeSys V3, kter´a bude obsahovat funkˇcn´ı bloky pro uchov´an´ı ud´alost´ı a souhrnn´ ych hodnot provozn´ıch veliˇcin. D´ale bylo zapotˇreb´ı vytvoˇrit aplikaci pro uchov´an´ı dat na PC, k tomu bylo vyuˇzito aplikace MS Excel. Tato pr´ace obsahuje d˚ uslednou dokumentaci funkˇcn´ıch blok˚ u vˇcetnˇe popisu vstup˚ u a v´ ystup˚ u a v´ yvojov´ ych diagram˚ u. Poˇzadavky na ˇreˇsen´ı uveden´e v 2.2 byly splnˇeny. Byla nalezena a definov´ana vhodn´a struktura pro ukl´ad´an´ı dat ve vnitˇrn´ı pamˇeti PLC. Pˇri vypracov´an´ı byl br´an v u ´vahu poˇzadavek na snadnou modifikovatelnost. Hlavn´ı test byl proveden na ˇr´ıdic´ım syst´emu Altivar - IMC, platformˇe, u kter´e se oˇcek´av´a nejˇcastˇejˇs´ı vyuˇzit´ı - jeˇra´bov´e aplikace, vleky a dalˇs´ı. Byla vˇsak ovˇeˇrena funkˇcnost i na ostatn´ıch PLC rodiny SoMachine - Modicon M238, Modicon M258 a Modicon LMC058. Uloˇzen´a data jsou uchov´ana v PLC i po v´ ypadku nap´ajen´ı. Uˇzivatel m´a moˇznost zasahovat do dat uloˇzen´ ych v PLC z uˇzivatelsk´eho prostˇred´ı na PC. Poˇzadavek pro sledov´an´ı pˇribl´ıˇzen´ı procesn´ıch u ´daj˚ u ke kritick´ ym hodnot´am byl naplnˇen. Funkˇcn´ı bloky, u kter´ ych to bylo ˇz´adouc´ı, obsahuj´ı v´ ystupn´ı promˇennou, kter´a oznamuje dosaˇzen´ı kritick´e hodnoty. Znaˇcn´a ˇca´st ˇcasu byla vˇenov´ana tvorbˇe aplikace k naˇcten´ı a uchov´an´ı dat na PC. V t´eto f´azi bylo s v´ yhodou pouˇzito knihy [1], kter´a pomˇernˇe do hloubky prob´ır´a z´aklady programov´an´ı ve VBA. Pˇri samotn´em programov´an´ı knihovny mi byla velice n´apomocn´a propracov´an´a n´apovˇeda v prostˇred´ı SoMachine. Vyuˇzit´ı dokumentace a manu´al˚ u k pouˇzit´ ym produkt˚ um Schneider Electric ([6], [7], [8], [9], [10]) bylo tak´e uˇziteˇcn´e. Modifikovan´e ˇreˇsen´ı uˇzivatelsk´e aplikace pro MS Excel jiˇz bylo re´alnˇe vyuˇzito pro monitoring jeˇra´bov´ ych aplikac´ı, coˇz svˇedˇc´ı o moˇznosti re´aln´eho vyuˇzit´ı t´eto pr´ace. Na obr. 9.1 je zobrazen mostov´ y jeˇra´b, na kter´em byly vyuˇzity v´ ysledky t´eto bakal´aˇrsk´e pr´ace. Aplikace pro stahov´an´ı dat do PC znaˇcnˇe zkr´atila f´azi uveden´ı stroje do provozu d´ıky snadn´emu 30
´ ER ˇ KAPITOLA 9. ZAV
31
Obr´azek 9.1: Mostov´ y jeˇr´ab - uk´azka z konkr´etn´ı aplikace t´eto bak. pr´ace
pˇr´ıstupu k provozn´ım dat˚ um jeˇra´bov´eho syst´emu. Technik se jiˇz nemusel pˇripojovat do PLC pˇres programovac´ı prostˇred´ı, aby mohl kontrolovat stav syst´emu. Vˇsechny j´ım zvolen´e parametry mohl pohodlnˇe ˇc´ıst z pˇrehledn´ ych tabulek v seˇsitˇe Microsoft Excel. V dohledn´e dobˇe bude tato pr´ace vyuˇzita na dalˇs´ı jeˇra´bov´e aplikaci. Na obr. 6.2 je uk´az´ana moˇzn´a modifikace grafick´eho prostˇred´ı pro konkr´etn´ı aplikaci. Jako moˇznost pro budouc´ı rozˇs´ıˇren´ı t´eto pr´ace se nab´ız´ı pouˇzit´ı OPC serveru, kter´ y je implementov´an pˇr´ımo v prostˇred´ı CoDeSys. Pro platformu SoMachine se tato moˇznost objevila teprve s aktu´aln´ı verz´ı SoMachine V3 (kvˇeten 2011). Toto rozˇs´ıˇren´ı by mohlo pomoci ke zkr´acen´ı doby potˇrebn´e ke staˇzen´ı dat z PLC do PC, kter´a je nyn´ı ˇra´dovˇe v jednotk´ach vteˇrin. D´ale by pˇribyla moˇznost komunikace pˇres programovac´ı rozhran´ı Mini - USB.
Literatura [1] Kr´al, M.: Excel VBA V´yukov´y kurz. Computer Press, Brno 2010 ˇ [2] Smejkal, L. Martin´askov´a, M.: PLC a automatizace, 1. d´ıl. BEN - technick´a literatura, Praha 1999 [3] Mackay, S. Wright, E. Reynders, D. Park, J.: Practical Industrial Data Networks: Design, Installation and Troubleshooting. Elsevier, Oxford 2004 [4] Black, U.: Physical Layer Interfaces and Protocols. IEEE Computer Society Press, Los Alamitos 1996 [5] OPC Factory Server V3.33 User Manual. Schneider Electric,3/2009 [6] Altivar71 Communication parameters, User manual. Schneider Electric,11/2009 [7] Modicon M238 Logic Controller, Programming Guide. Schneider Electric,1/2011 [8] Modicon LMC058 Motion Contoller, Sytem Functions and Variables LMC058 PLCSystem Library Guide. Schneider Electric,10/2010 [9] Modicon M258 Logic Controller, Programming Guide. Schneider Electric,10/2010 [10] Altivar ATV - IMC Drive Controller, Hardware Guide. Schneider Electric,01/2010 [11] OPC
Foundation[online].
2011
[cit.
2011-05-08].
Dostupn´e
z
WWW:
http://www.opcfoundation.org/ [12] 3S - Smart Software Solutions[online]. 2011 [cit. 2011-05-08]. Dostupn´e z WWW: http://www.3s-software.com [13] Modbus Organization[online]. 2011 [cit. 2011-05-08]. Dostupn´e z WWW: http://modbus.org 32
LITERATURA
33
[14] Fischmann, P.: Modbus slav´ı 30 let: pr˚ umyslov´y protokol dobyl svˇet. Schneider Magaz´ın, Jaro 2010, s. 12
Pˇ r´ıloha A V´ ysledky test˚ u - namˇ eˇ ren´ e hodnoty EnergyMonitor1 Na vstupu i wActualPower byla hodnota 7000 W po dobu 5 minut. Teoretick´a hodnota namˇeˇren´e energie: 0,583 kWh, namˇeˇren´a hodnota pomoc´ı funkˇcn´ıho bloku: 0,583 kWh. OperHoursCounter Ve stejnou dobu bylo spuˇstˇeno mˇeˇren´ı funkˇcn´ıho bloku a ˇc´ıt´an´ı stopek. Po 40 minut´ach nebyl zaznamen´an ˇcasov´ y rozd´ıl v ˇra´du vteˇrin. Statistics Pro ovˇeˇren´ı spr´avn´eho v´ ypoˇctu pr˚ umˇern´e hodnoty byla na vstup i rInputSignal pˇrivedena na 3 minuty hodnota -100 a na 3 minuty hodnota +100. Po tˇechto 6 minut´ach byla hodnota v´ ystupu q rAverage rovna 0. EnergyMonitor2 Na vstup i rEnergyCoef byla pˇrivedena hodnota 1000. Po detekci 10 sestupn´ ych hran ystupu rovna 10 000. na vstupu i xInputSignal byla hodnota v´
I
Pˇ r´ıloha B V´ yvojov´ e diagramy funkˇ cn´ıch blok˚ u knihovny Monitoring
Start
Reset výstupních proměnných
ANO i_xReset NE
NE i_xBlockEnable ANO
Výpočet průměrné hodnoty, minima a maxima
Konec
Obr´azek B.1: V´ yvojov´ y diagram funkˇcn´ıho bloku Statistics
II
ˇ ´ILOHA B. VYVOJOV ´ ´ DIAGRAMY FUNKCN ˇ ´ICH BLOKU ˚ PR E KNIHOVNY MONITORING Start
NE
i_xBlockEnable
ANO
NE
Náběžná hrana i_xEventTrig
ANO Posun již načtených eventů o jednu pozici dolů v poli arstrcEvents a ardtTimeStamp
Uložení aktuálního eventu na 1. pozici polí arstrcEvents a ardtTimeStamp
Zobrazení parametrů a časové značky poslední události na výstup
NE
i_xReset
ANO
Vynulování polí arstrcEvents a ardtTimeStamp
Konec
Obr´azek B.2: V´ yvojov´ y diagram funkˇcn´ıho bloku EventsManager
III
ˇ ´ILOHA B. VYVOJOV ´ ´ DIAGRAMY FUNKCN ˇ ´ICH BLOKU ˚ PR E KNIHOVNY MONITORING
Start
i_xBlockEnable
NE
Reset výstupních proměnných
ANO
Reset vnitřních proměnných
ANO
i_xReset
NE
Měření délky scan cyklu
Měření celkového času měření
Měření spotřebované energie
Nastavení výstupních proměnných
Konec
Obr´azek B.3: V´ yvojov´ y diagram funkˇcn´ıch blok˚ u EnergyMonitor1 a EnergyMonitor2
IV
ˇ ´ILOHA B. VYVOJOV ´ ´ DIAGRAMY FUNKCN ˇ ´ICH BLOKU ˚ PR E KNIHOVNY MONITORING
V
Start
ANO
ANO
Náběžná hrana i_xInputSignal
i_xRiseOrFall
NE
NE
NE
Sestupná hrana i_xInputSignal
rEnergyUnitCnt:= rEnergyUnitCnt + i_rEnergyCoef
ANO
rEnergyUnitCnt:= rEnergyUnitCnt + i_rEnergyCoef
rEnergyUnitCnt >1
ANO
wUsedEnergyWh:= wUsedEnergyWh+1 rEnergyUnitCnt:= rEnergyUnitCnt-1
NE
wUsedEnergyWh >1000
ANO
wUsedEnergykWh:= wUsedEnergykWh+1 wUsedEnergyWh:= wUsedEnergyWh-1000
NE
wUsedEnergykWh >1000
ANO
wUsedEnergyMWh:= wUsedEnergyMWh+1 wUsedEnergykWh:= wUsedEnergykWh-1000
NE
Konec
Obr´azek B.4: V´ yvojov´ y diagram mˇeˇren´ı energie ve funkˇcn´ım bloku EnergyMonitor2
ˇ ´ILOHA B. VYVOJOV ´ ´ DIAGRAMY FUNKCN ˇ ´ICH BLOKU ˚ PR E KNIHOVNY MONITORING
Start
NE
Nábežná hrana i_xSet
ANO uiError:=SysTimeRtcSet(ulTimestamp:=i_dwNewPlcDT); q_dtSysTime:=DWORD_TO_DT(SysTimeGetTimestamp());
NE
uiError=0
q_bError:=TRUE;
ANO
q_bError:=FALSE;
Konec
Obr´azek B.5: V´ yvojov´ y diagram funkˇcn´ıho bloku SysTimeSetting
VI
ˇ ´ILOHA B. VYVOJOV ´ ´ DIAGRAMY FUNKCN ˇ ´ICH BLOKU ˚ PR E KNIHOVNY MONITORING
Start
i_xReset
ANO
q_wImpulsCount:=0
NE
NE
i_xBlockEnable
ANO
ANO
i_xRiseOrFall
Náběžná hrana i_xInputSignal
NE
Sestupná hrana i_xInputSignal
q_wImpulsCount:= q_wImpulsCount+1
Konec
Obr´azek B.6: V´ yvojov´ y diagram funkˇcn´ıho bloku ImpulsCounter
VII
ˇ ´ILOHA B. VYVOJOV ´ ´ DIAGRAMY FUNKCN ˇ ´ICH BLOKU ˚ PR E KNIHOVNY MONITORING
Start
Reset výstupních proměnných
ANO i_xReset NE
NE i_xBlockEnable ANO
Výpočet průměrné hodnoty, minima a maxima
Konec
Obr´azek B.7: V´ yvojov´ y diagram funkˇcn´ıho bloku OperHoursCounter
VIII
Pˇ r´ıloha C Uk´ azka testovac´ıho programu
IX
ˇ ´ILOHA C. UKAZKA ´ PR TESTOVAC´IHO PROGRAMU
X
Pˇ r´ıloha D Seznam pouˇ zit´ ych zkratek CFC - Continuous Function Chart FBD - Function Block Diagram HMI - Human Machine Interface IEC - International Electrotechnical Commision IMC - Integrated Motion Controller LMC - Lexium Motion Controller MS - Microsoft OEM - Original Equipment Manufacturer OFS - OPC Factory Server OLE - Object Linking and Embedding OPC - OLE for Process Control OPC DA - OPC Data Access PLC - Programmable Logic Controller RTU - Remote Terminal Unit USB - Universal Serial Bus VBA - Visual Basic for Excel
XI
Pˇ r´ıloha E Obsah pˇ riloˇ zen´ eho CD K t´eto pr´aci je pˇriloˇzeno CD s t´ımto obsahem: • root – Monitoring.library – VycteniGeneral.xls – ATV IMC monitoring template.projectarchive – SAOFSGrpX.dll – SAOPCGrpX.dll – OFS config modbus.xml – OFS config ethernet.xml
XII