• No results found

Komunikace s PLC firmy Siemens z vývojového prostředí Delphi

N/A
N/A
Protected

Academic year: 2022

Share "Komunikace s PLC firmy Siemens z vývojového prostředí Delphi"

Copied!
54
0
0

Loading.... (view fulltext now)

Full text

(1)

Fakulta mechatroniky, informatiky a mezioborových studií

Komunikace s PLC firmy Siemens z vývojového prostředí Delphi

BAKALÁŘSKÁ PRÁCE

Liberec 2014

Martin Musil

(2)

Bakalářská práce

Studijní program: B2612 – Elektrotechnika a informatika Studijní obor: 1802R022 – Informatika a logistika

Autor práce: Martin Musil

Vedoucí práce: Ing. Tomáš Martinec, Ph.D.

Liberec 2014

(3)
(4)
(5)

Prohlášení

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

Beru na vědomí, že Technická univerzita v Liberci (TUL) nezasahuje do mých autor- ský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 po- vinnosti 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ž do 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 bakalářské práce a konzultantem.

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

Datum:

Podpis:

(6)

Poděkování

Rád bych poděkoval především vedoucímu bakalářské práce Ing. Tomáši Mar- tincovi Ph.D. za vedení práce a podnětné rady, které mi poskytl v průběhu psaní této práce.

(7)

Abstrakt

Bakalářská práce je zaměřena na téma komunikace mezi průmyslovým řídicím systémem firmy Siemens a aplikací vytvořenou pomocí vývojového prostředí Delphi.

V úvodu jsou představeny základní komunikační protokoly použity na nejvyšším stupni automatizace, jejich implementace v hardwaru a technologické možnosti. Následuje analýza dostupných dynamických knihoven pro platformu Windows, kde jsou defino- vány základní funkce, popis hardwaru včetně možností inženýrského prostředí Simatic Manager STEP 7. Těchto poznatků je následně využito v praktické realizaci vytvořené aplikace Logické obvody, kde jsou komunikační knihovny zakomponovány.

Klíčová slova:

PLC, MPI, Profinet, Prodave, NoDave

Abstract

This Bachelor thesis is focused on the possibilities of communication among PLC controllers Siemens and user's application in Delphi. At the beginnig of the thesis, there are introduced primary communication protocols in industry automation networks, the offer of basic hardware and its possibilities. In the following part, the thesis is fo- cused on analysis of the dynamic-link libraries in OS Windows. We can find there definition of essential functions, hardware description and options of the application designed in the programming environment Step 7 from the Siemens company. Finally, the knowledge source is used in the software application Logical circiuts.

Keywords:

PLC, MPI, Profinet, Prodave, NoDave

(8)

6 Obsah

1 Úvod ... 8

2 Možnosti komunikace ... 9

2.1 Úvod do problematiky ... 9

2.2 Profinet ... 11

2.3 Profibus/MPI ... 14

2.4 OPC ... 17

3 Siemens Prodave ... 21

3.1 Popis produktu ... 21

3.2 Knihovna Prodave ... 22

3.3 Podporovaný komunikační hardware ... 24

3.4 Práce s knihovnou Prodave ... 24

3.5 Datové možnosti knihovny ... 26

3.6 Ukázková aplikace ... 26

4 Projekt LibNoDave ... 28

4.1 Popis knihovny ... 28

4.2 Komponenty NoDave v jazyce Delphi ... 29

4.3 Podporovaný komunikační hardware ... 29

4.4 Knihovna NoDave ... 30

4.5 Práce s knihovnou NoDave ... 31

5 Aplikace Logické obvody ... 35

5.1 Popis funkce ... 35

5.2 Jednotka MahBit8 ... 36

5.3 SIMATIC Manager STEP 7 ... 37

5.4 Programové rozhraní Logické obvody ... 40

5.5 Funkce aplikace ... 42

6 Realizace OPC ... 45

6.1 S7 OPC Server ... 45

6.2 OPC DA Client ... 45

7 Výsledek analýzy ... 46

8 Závěr ... 49

Literatura ... 50

Příloha A – BP 2014 - Logické obvody ... 52

(9)

7 Seznam použitých obrázků a tabulek

Obr. 1: PLC Siemens CPU 317 - 2 PN/DP ... 9

Obr. 2: Struktura komunikace v průmyslové aplikaci ... 10

Obr. 3: Spektrum komunikace Profinet ... 11

Obr. 4: Profinet - struktura protokolu ... 12

Obr. 5: Časové sloty komunikace Profinet ... 13

Obr. 6: Profinet v průmyslové aplikaci ... 14

Obr. 7: Aplikace sítě Profibus ... 15

Obr. 8: Architektura protokolu Profibus ... 15

Obr. 9: Struktura OPC serveru ... 18

Obr. 10: Aplikační schéma funkce knihovny Prodave ... 21

Obr. 11: Struktura PDU ... 26

Obr. 12: Ovládací aplikace s knihovnou Prodave ... 27

Obr. 13: On-line okno aplikace Monitor/Modify Variables ... 27

Obr. 14: Blokové schéma komunikace mezi PC a PLC ... 29

Obr. 15: Funkční schéma aplikace Logické obvody ... 35

Obr. 16: Konfigurace protokolu TCP/IP v ovládacích panelech ... 37

Obr. 17: Konfigurace systému PN-IO ... 39

Obr. 18: Funkce volání v DB2 v organizačním bloku ... 39

Obr. 19: Nastavení datového bloku ... 40

Obr. 20: Funkční schéma aplikace Logické obvody- hlavní aplikace ... 40

Obr. 21: On-line okno hlavní aplikace ... 42

Obr. 22: On-line okno ovládací aplikace ... 43

Obr. 23: On-line okno aplikace Monitor/Modify Variables ... 43

Obr. 24: On-line okno aplikace Module Information procesoru ... 43

Obr. 25: OPC server v chodu ... 45

Obr. 26: On-line okno aplikace OPC DA Client ... 46

Tabulky Tab. 1: Referenční model ISO/OSI ... 10

Tab. 2: Prodave - podporované adaptéry ... 24

Tab. 3: LibNoDave - podporované adaptéry ... 30

Tab. 4: LibNoDave - podporované oblasti paměti ... 33

Tab. 5: Použitý hardware v ukázkové aplikaci ... 38

Tab. 6: Obsazení pozic v datovém bloku vstupů ... 41

Tab. 7: Obsazení pozic v datovém bloku výstupů ... 41

Tab. 8: Výhody/nevýhody navržených řešení ... 48

(10)

8

1 Úvod

Výrobci průmyslové automatizační techniky čelí tlaku na centralizaci výrobních prostředků do celků z důvodů obsluhy, monitoringu a správy systémů nejen v místě pracoviště, ale i z libovolného počítače připojeného do sítě Internet nebo pomocí pře- nosného zařízení. S tím souvisí požadavky na dostupnost v oblasti konektivity, datové rychlosti a stability. Pomyslným vrcholem je snaha o integraci zdánlivě nekompatibil- ních systémů v jeden výrobní celek. Vše má společného jmenovatele, optimalizaci výrobních nákladů.

Cílem bakalářské práce je vytvořit přehled dostupných komunikačních prostřed- ků v programovacím prostředí Delphi použitelných pro výměnu dat s průmyslovým řídicím systémem firmy Siemens. Seznámit se s možnostmi dostupných knihoven, pro- vést detailní analýzu pro implementaci požadovaných funkcí a nabyté poznatky použít do ukázkové aplikace.

Pro vývoj vlastní aplikace v prostředí Delphi s podporou programovacího jazyka Object Pascal je na trhu velice omezený počet zdrojů. Zpravidla bývá ve formátu dyna- micky linkované knihovny. Knihovna je dostupná jako samostatná jednotka, a veškerá podpora je v podobě informací s popisem implementovaných funkcí v manuálu.

V prvním případě se jedná o nástroj Prodave, což je komerční produkt firmy Siemens, druhou variantou je volně dostupná sada knihoven LibNoDave. Další možností je vyu- žití nepříliš rozšířené knihovny stran třetích výrobců hardwaru nebo softwaru, zde je ale velice omezená dostupnost z důvodů licenční politiky. Jako příklad lze uvést knihovnu AGLinkS7.dll od firmy Deltalogic. Poslední možnost, kterou zmiňuji je využití volně dostupných zdrojových kódů pro vlastní OPC systém na straně klienta, kde je na straně serveru implementována buď vlastní jednoúčelová knihovna, nebo je využit hardwarový komunikační kanál firmy Siemens.

V následujících kapitolách se pracuje s knihovnami prodave6.dll a libnodave.dll, jejich implementace do ukázkové aplikace a v kapitole 6 je demonstrována funkce OPC klienta v jazyce Delphi nabízeného na trhu ve formátu nástrojové sady pro vývojáře včetně zdrojového kódu.

Pro ověření funkčnosti aplikace je nezbytnou součástí nutnost přístupu k hardwaru a softwaru firmy Siemens, kde se jedná o licencované produkty.

(11)

9 2 Možnosti komunikace

Ze strany firmy Siemens je v současnosti nabídka komunikačních rozhraní ve směru výrobní automatizace a její nadstavba formou externí aplikace omezena na výběr mezi sběrnicí Profibus/MPI a průmyslový Ethernet, který je znám pod jménem Profinet.

Na obrázku 1 je zobrazen modelový procesor řady 300 s řadou dostupných rozhraní[1].

V použitých knihovnách je zakomponována podpora rozhraní Profinet a Profibus/MPI.

Rozhraní CPU Siemens S7 317 - 2 PN/DP 1. Napájecí zdroj

2. CPU (Central Processing Unit) 3. Signalizace stavu PROFINET port P1 4. Signalizace stavu PROFINET port P2 5. MAC adresa

6. Rozhraní X2 - Profinet port P1, P2 7. Rozhraní X1 - Profibus/MPI 8. Napájení CPU

Obr. 1: PLC Siemens CPU 317 - 2 PN/DP

2.1 Úvod do problematiky

Komunikace v průmyslu je obvykle realizována pomocí sériové sběrnice, kde samotný přenos dat je sdílen pomocí jednoho, nebo dvojice vodičů. Rychlost přenosu je plně dostačující, např. pro komunikaci v síti Profinet RT (Real Time) jsou požadavky na reakci na výstupu v běžné automatizaci 5–10 milisekund [5]. Řízení sběrnice a data jsou přenášena v sériové posloupnosti pomocí jednoho signálu. Signál jako datová informace je realizován pomocí změny el. napětí, el. proudu nebo světelného paprsku.

Strukturu komunikačních systémů používaných v průmyslu lze rozdělit na 3 úrovně (obr. 2)[2]. Nejnižší (Senzor/Aktor bus) hladina obsahuje vstupní a výstupní komponenty a nejrozšířenější používané rozhraní ASI (Actuator-Sensor-Interface). Zde používané sběrnice slouží zejména pro přenos analogových a digitálních signálů s důrazem na spolehlivost, konektivitu a nízké náklady.

O stupeň výše (Devicebus) řadíme vrstvu sběrnicových zařízení. Spojení mezi moduly PLC v rámci výrobního procesu zastávají dostatečně výkonné real-time systé- my, vhodné pro přímé řízení. Příkladem je Industrial Ethernet nebo Profibus. Na nejvyšší úroveň komunikace (Fieldbus) v nebo mezi technologickými buňkami je nutno použít výkonné komunikační sběrnice, umožňující rychlý přenos velkých objemů dat např. výměna dat mezi PLC nebo PLC-HMI(Human-machine Interface). Nejběžnějším příkladem je opět Industrial Ethernet.

(12)

10

Obr. 2: Struktura komunikace v průmyslové aplikaci

Průmyslová komunikace je postavena na vrstvovém referenčním modelu ISO/OSI ustanoveném v mezinárodní normě ISO 7498. Tato norma v obecné rovině předpisuje způsob komunikace mezi stanicemi od úrovně fyzického připojení až po pře- nos vlastních dat. Byla vydána pod označením The Basic Model (ISO/IEC 7498- 1:1994). Protokol je ve zmíněné normě rozdělen do sedmi vrstev, každá vrstva má defi- novánu funkci a spolupracují mezi sebou. Výsledky jedné vrstvy jsou zdrojem dat pro zpracování v sousední vrstvě[3].

Tab. 1: Referenční model ISO/OSI

Vrstva Funkce vrstvy

Layer 7 Aplikační - tvoří rozhraní k vlastnímu programu (FTP, SMTP).

Layer 6 Prezentační - převádí formát dat do jednotné podoby přístupné pro celou síť.

Layer 5 Relační - navazuje relace mezi koncovými stanicemi (práva, hesla).

Layer 4 Transportní - zajišťuje vlastní, spolehlivé odeslání všech dat ze zdroje do cíle (TCP, UDP).

Layer 3 Síťová - adresování a směrování dat v síti od zdroje k cíli (IP).

Layer 2 Linková - zajišťuje přenos dat, frames mezi dvěma sousedními uzly (MAC adresa).

Layer 1 Fyzická - definuje fyzické signály používané pro reprezentaci log 1 a log 0 (RS 485).

(13)

11 V praxi se komunikační protokoly využívané v průmyslu omezují na pevně defi- novanou fyzickou a linkovou vrstvu. Zbývající vrstvy nejsou specifikovány a jsou zcela závislé na konkrétním technickém řešení.

2.2 Profinet

Jedná se o otevřený komunikační standard aplikovatelný do všech úrovní prů- myslové automatizace, který je součástí norem IEC 61158 a IEC 61784[4]. Byl definován mezinárodní organizací Profibus International (PI), koncepčně vycházející ze standardu Profibus, ale po stránce komunikace vychází ze standardu Ethernet (IEEE802.3)[5]. Nabízí integraci existujících průmyslových sítí, jako například Profibus nebo Interbus bez nutnosti modifikace stávajícího zapojení. Profinet je dostupný v provedení CBA (Component Based Automation) a IO. Profinet CBA je určen pro automatizaci založenou na komponentech s definovaným rozhraním. Profinet IO defi- nován pro integraci distribuovaných periférií.

 Protokol

Profinet řeší pokrytí širokého spektra požadavků průmyslové automatizace tím, že používá na linkové vrstvě tři stupně komunikace, standardní komunikaci (TCP/IP), komunikaci v reálném čase RT a komunikaci izochronního reálného času IRT (Isochro- nous Real-Time).

Obr. 3: Spektrum komunikace Profinet

Komunikace Profinet je považována za striktně deterministickou, tzn. dají se priorizovat důležitá data. Na obrázku 3[5] je znázorněn rozsah aplikací v průmyslu a pokrytí Profinetem. Koexistence realtimové i klasické TCP komunikace je klíčovým rysem komunikace Profinet[5]. TCP/IP nebo UDP/ IP protokoly však nezajistí dostateč- nou komunikaci v režimu RT z důvodů velkých nároků na zpracování, proto se musí použít na vrstvě 7 jednotný aplikační protokol dostupný na všech stranách spojení, jak naznačuje obrázek 4[6]. Nespornou výhodou je možnost využití bezdrátového spojení

(14)

12 pomocí WI-FI (IEEE 802.11) pro připojení periférií nebo samotných PLC do obtížně přístupných oblastí.

 TCP/IP komunikace

Profinet využívá standardní TCP/IP komunikaci, proto je vhodný pro výměnu dat, která nejsou ohrožena časem. Požadujeme-li komunikaci různorodých aplikací mezi distribuované průmyslové periferie, TCP/UDP kanál (4. úroveň modelu ISO/OSI) není možno použít. Pro komunikaci na tomto kanále jsou požadovány protokoly vyšších úrovní (např. SMTP, FTP). V globálním systému je nutností použít stejný protokol pro všechna zařízení.

Obr. 4: Profinet - struktura protokolu

 RT komunikace

V běžných aplikacích pro řízení průmyslové automatizace se požaduje obnovo- vací čas dat v rozsahu 5–10 milisekund. V komunikaci RT má Profinet vyhrazený časový kanál založen na standardu IEEE 802.1q, kde jsou rámce opatřeny prioritou.

Aktivní prvky sítě tuto prioritu zachytávají a potlačují rámce s nižší prioritou[7].

V tomto typu komunikace není procesor distribuovaného zařízení zatížen samot- nou komunikací, ale zpracovává aplikační software v potřebném čase. Přenosový čas přes linku Fast Ethernet (100BASE-TX) je zanedbatelný v porovnání s časem zpraco- vání externích periferií. Tento čas není navyšován časem komunikace a každé zlepšení času by bylo možno dosáhnout optimalizací komunikační fronty modelu provider- consumer.

 IRT komunikace

V aplikacích náročných na zpracování velkého množství dat v čase (polohování dopravníkového systému, řízení pohybu robota) je požadavek obnovení dat až 250 μs [8], kde RT komunikace zdaleka nepostačuje. Aby byla dodržena garance těchto para-

(15)

13 metrů, Profinet definoval komunikaci s časovými sloty, které jsou rezervovány na druhé úrovni modelu ISO/OSI (obr. 4).

V IRT komunikaci je nutno mít veškerá přiřazená zařízení (devices) synchroni- zována tak, aby byl všude nastaven totožný čas startu cyklu. Jedno zařízení označeno jako controller tuto synchronizaci řídí. Toto je aplikováno pomocí implementace obvo- du typu ASIC, který zajišťuje synchronizaci a rezervaci časového slotu pro časově kritická data[2]. Jelikož je isochronní mód implementován na hardwarové úrovni, umožňuje zcela zastavit veškerý ostatní provoz na síti a spustit přenos IRT rámců. Nut- nou podmínkou je, že topologie sítě musí být známá a neměnná již v průběhu návrhu nebo konfigurace technologie.

Obr. 5: Časové sloty komunikace Profinet

Průběh cyklu komunikace je rozdělen na tři fáze. V první fázi se synchronizují všechna zúčastněná zařízení IRT komunikace. V druhé fázi jsou přeposlány izochronní data. Po odeslání dat je kanál otevřen pro komunikaci RT a TCP/IP(obr. 5)[5].

 Instalace v síti

V síti Profinet lze využít všeobecně známé topologie kruh, hvězda, sběrnice a strom. Každá varianta zapojení má své přednosti a nedostatky. Kruhová struktura garan- tuje vysokou bezporuchovost a rychlost, u sběrnicové struktury se promítne výhoda integrace prvků sítě typu switch do řady zařízení a minimalizace nákladů na kabeláž.

V praxi jsou topologie kombinované a rozhodnutí je orientováno směrem k požadav- kům na instalaci. Typická implementace Profinetu do průmyslové aplikace je vyobrazena na obrázku 6[6].

(16)

14

Obr. 6: Profinet v průmyslové aplikaci

 Hardware

Síť Profinet je v základu postavena na technologii aktivních prvků typu switch nebo router, tímto způsobem je vyřešen problém s přenosovým médiem sdíleným po celé síti a nutností implementace CSMA/CD. Procesory S7 řady 300/400 mají integro- ván dvou portový switch s webserverem, což má mimo jiné výhodu v uložení hardwarové konfigurace v přenosné paměťové kartě včetně aktuálního nastavení.

Na trhu je dostupná široká škála průmyslového hardwaru rozličných výrobců, Siemens má v nabídce produktovou řadu zařízení typu switch pojmenovaných Scalance, které jsou schopny poskytnout veškerou konektivitu (např. Wi-Fi, optické vlákno), na- bízejí vestavěnou diagnostiku datového provozu, webové rozhraní a zrcadlení portů (Port Mirroring).

2.3 Profibus/MPI

Průmyslová síť Profibus představuje momentálně nejrozšířenější komunikační standard v oblasti průmyslové automatizace. Vychází z modelu ISO/OSI a je ustanove- na v mezinárodních normách IEC 61158 a IEC 61784 [5]. Historicky spadá do poloviny 80. let, kdy se německé firmy Bosch, Klockner & Moller a Siemens dohodly na společ- ném projektu pro vývoj průmyslové sběrnice označené jako Profibus [2]. Architektura komunikačního systému respektuje jednak potřebu připojit na sběrnici malá zařízení a zároveň předkládá možnosti otevřeného rozhraní pro komunikaci mezi PLC, HMI atd.

(17)

15

Obr. 7: Aplikace sítě Profibus

V současnosti jsou definovány standardy Profibus DP (Decentralized Periphery), jako nejrozšířenější varianta, Profibus FMS (Fieldbus Message Specification) pro ko- munikaci v heterogenním prostředí a pro práci s velkým množstvím dat a Profibus PA (Process Automation) pro řízení pomalých procesů zvláště ve výbušném prostředí (obr. 7)[5].

 Protokol

V modelu ISO/OSI je Profibus definován fyzickou, linkovou a aplikační vrstvou (obr. 8)[8]. Fyzická vrstva předpisuje spojení mezi zařízeními a zároveň topologii sítě.

Profibus podporuje přenos pomocí kroucené dvojlinky po sběrnici RS-485 (DP/FMS), optickém vláknu (DP/FMS) a ve výbušném prostředí pomocí proudové smyčky IEC1158-2 (Profibus PA).

Obr. 8: Architektura protokolu Profibus

(18)

16 Linková vrstva FDL(Fieldbus Data Link) popisuje postup přístupu účastníka k přenosovému médiu např. master-slave a zabezpečuje vytvoření zprávy na úrovni bi- tového řetězce.

Aplikační vrstva, jako nejvyšší vrstva v referenčním modelu ISO/OSI, poskytuje služby nutné pro realizaci komunikace z hlediska uživatele[8].

 Profibus DP

Standard DP je určen pro cyklickou výměnu dat v časové odezvě do 1 ms, apli- kovaný v průmyslové technologii na úrovni master/slave. Zařízení master (PLC) dotazuje pasivní zařízení slave (decentralizovaný I/O blok). V případě více zařízení ty- pu master v jedné síti si mezi sebou předávají pověření pro komunikaci (Token Passing). Pro tuto úroveň řízení je klíčovým požadavkem záruka odezvy cyklu komuni- kace kratší než je cyklus zpracování řídicího programu PLC, aby nedocházelo ke zpoždění technologie vlivem komunikace. Pro účely konfigurace, diagnostiky a dalších speciálních požadavků jsou k dispozici služby mimo cyklus.

Komunikace Profibus-DP je rozdělena do tří skupin[4]: DP Master Class 1 (DPM1) DP Master Class 2 (DPM2) DP Slave

 Profibus FMS

Standard FMS je určen pro komunikaci v prostředí různých výrobců zařízení, s velkým souborem služeb pro práci s daty, programy a alarmy. Komunikují spolu řídicí systémy a systémy pro sběr dat nebo vizualizaci. Cílem této komunikační sítě není do- sažení minimální doby reakce, ale především kompatibilita mezi prvky sítě.

 Profibus PA

Profibus-PA je primárně navržen pro aplikace do nebezpečného výbušného pro- středí. Povoluje spojování senzorů a akčních členů na společnou sběrnici v prostorách nebezpečí výbuchu v zónách 0 nebo 1 s délkou větve do 30m. PA technologie zajišťuje přenos digitálních dat a napájení na jediném kabelu ve stejný moment. V současné době existuje specifikace Profibus-PA verze 3.0 [9].

 Instalace v síti

Profibus je definován na úrovni fyzické vrstvy komunikačního systému následu- jícími třemi variantami: sběrnice RS-485 - aplikace DP, FMS

proudová smyčka - aplikace PA optické vlákno - aplikace DP, FMS

Sběrnice RS-485 je nejčastěji využívanou variantou přenosové vrstvy sítě Profi- bus. Pracuje na rozdílu napětí podle standardu RS-485 a bývá značena H2. Jedná se o sběrnicovou strukturu sítě. Na jeden segment sběrnice RS-485 je možné připojit až 32

(19)

17 účastníků sítě. Pro připojení účastníků na sběrnici je doporučeno použít devítipinový konektor D-sub. Segment sběrnice musí být na obou svých koncích ukončen sběrnico- vým terminátorem o odporu R=220 Ω integrovaným v konektoru nebo přímo v jednotlivých zařízeních. Profibus nabízí v této variantě volitelnou přenosovou rychlost v hodnotách: 9,6 - 19,2 - 38,4 - 93,75 - 187,5 - 500 - 1500 - 3000 - 6000 - 9000 - 12000kb/s.

Pro Profibus-PA se používá proudová smyčka podle standardu IEC 1158-2 spl- ňující požadavky pro aplikace v chemickém průmyslu, je označena H1. Tato varianta zaručuje jiskrovou bezpečnost a podporuje napájení zařízení po sběrnicovém kabelu.

Optické vlákno je vhodné pro aplikace v prostředí s vysokou úrovní elektromag- netického rušení, velké vzdálenosti nebo přenosové rychlosti.

 MPI

Sběrnice MPI (Multi-Point Interface) je vystavěna na základě standardu TIA/EIA-485 (RS-485) a vychází ze sítě Profibus. Je vhodná pro servisní a datové služ- by mezi externí aplikací a automatizací, není vhodná pro sběr dat z decentrálních periférií. Na obrázku 8 je znázorněn model ISO/OSI a definice vrstev protokolu MPI.

Standardně je součástí programovacích zařízení Siemens PG, CPU S7 řad 300/400 a vybraných HMI prvků jako kombinovaný MPI/Profibus port. Toto rozhraní je vhodné pro krátké vzdálenosti a nelze použít v oblastech vzniku rušení elektrickým nebo mag- netickým polem z důvodu absence stínění. Přenosová rychlost je nastavena pevně na 187,5 kBaud, podle zařízení lze snížit na 19.2kb/sec nebo zvýšit na 12Mb/sec. Délka vedení segmentu může dosahovat až 50 m. Pomocí opakovačů lze zvýšit až na 1000 m.

Konce sítě musí být osazeny ukončovacími odpory. Každý účastník má pro identifikaci svoji MPI adresu, doporučení od firmy Siemens je v případě PG = 0, OP = 1 a CPU = 2.

Adresu lze nastavit libovolně. Uvnitř jedné sítě může být propojeno až 126 účastníků, v jednom segmentu pak až 32 účastníků s jedinečnou adresou [5].

2.4 OPC

OLE for Process Control (OPC) je standard průmyslové komunikace, který vznikl ve spolupráci mnoha světových dodavatelů automatizačních prostředků a společ- nosti Microsoft.

Jedná se o softwarový nástroj běžící na počítači typu PC, který je schopen ko- munikovat s požadovaným PLC (obr. 9) [12]. Směrem k PLC umí číst a zapisovat proměnné. Směrem k softwarové aplikaci je systém otevřený a nabízí definované pro- měnné v čitelném formátu pro jakýkoliv software podporující komunikaci nejen s OPC ale i aplikací třeba v Delphi. Přímo pro komunikaci využívá buď vlastní knihovny a hardwarových nástrojů nebo standardních rozhraní firmy Siemens.

(20)

18

Obr. 9: Struktura OPC serveru

 Specifikace

Komunikační protokol OPC je definován organizací OPC Foundation v následujících specifikacích [12].

OPC Data Acces – nejčastěji používaná specifikaci umožňující přístup k datům v reálném čase.

OPC Alarms and Events – definuje poskytování informací OPC klientům o vý- skytech specifikovaných událostí a alarmů.

OPC Batch – specifikace je určena pro technologie s dávkovou výrobou.

OPC Historical Data Access – definuje problematiku přístupu klientských apli- kací k procesním datům z datových a databázových zařízení.

OPC Common Definitions and Interfaces – definuje případy použití více speci- fikací.

OPC Security – předpisuje zabezpečení přístupu obsluhy při ovládání technolo- gie z OPC klientů prostřednictvím OPC serverů s využitím zabezpečení systému Windows.

OPC Data Exchange – slouží pro tzv. horizontální komunikaci mezi řídicími jednotkami s různými komunikačními protokoly.

OPC Complex Data – definuje možnosti popisu struktury komplexních dat a způsoby jak tyto data zpřístupnit.

OPC Universal Access – sjednocení standardů OPC-Data Access, OPC-Alarms and Events, OPC-Historical Data Access

OPC specifikace jsou volně přístupné v technické dokumentaci, kde jsou defino- vána pravidla chování a konfigurace standardu rozhraní. V současnosti sdružuje OPC Foundation nejvýznamnější světové firmy zabývající se aplikacemi z oblasti řízení a sledování technologických procesů.

(21)

19 Systém pracuje na principu klient - server. Hovoříme-li o OPC, máme na mysli dva typy programů - OPC Server a OPC Klient. Oba programy jsou softwarové aplika- ce.

 OPC Klient

Program přijímá data z OPC Serveru ve formátu OPC a tato data zpracovává do formátu čitelného pro uživatele. Podle standardu OPC se přenášejí tři složky – hodnota, čas a kvalita. Kvalita dat může být dobrá, špatná nebo neznámá. Tyto programy slouží pro vizualizaci, monitoring a řízení procesů průmyslové automatizace.

 OPC Server

Program komunikující s připojeným technologickým zařízením pomocí komuni- kačního protokolu implementovaného v PLC (Profibus/MPI, Ethernet, RS 232).

Získaná data převádí do formátu OPC a poskytuje je nadřazeným klientům[11].

Stačí-li číst pouze několik málo hodnot bez nutnosti na další zpracování, postačí jednoduchý OPC Klient, vestavěný Web Klient nebo MS Excel.

 Způsoby výměny dat

V nejčastěji využívané průmyslové specifikaci OPC DA jsou definovány násle- dující způsoby výměny dat[13].

 Synchronní čtení

Synchronní čtení I/O nutí OPC Klienta čekat na hodnotu, kterou OPC Server musí přečíst z PLC a následně poslat do OPC Klienta. OPC Klient tuto hodnotu očekává, a dokud ji od OPC Serveru nedostane, neprovádí žádné další operace, což může způsobit jeho zastavení. Synchronní čtení je proto vhodné v projektech s malým množstvím dat. V praxi se doporučuje používat asyn- chronní čtení dat.

 Asynchronní čtení

OPC Klient pošle dotaz na čtení nebo zápis hodnoty v OPC Serveru a ne- čeká na provedení. Po splnění OPC Server obratem informuje OPC Klienta.

Asynchronní čtení proto umožňuje OPC Klientu běžet bez přerušení, zatímco OPC Server čte data ze zařízení pro OPC Klienta a toto čtení si navíc sám opti- malizuje.

 Asynchronní refresh

OPC Server načítá data ze zařízení a následně hodnoty zapisuje do vy- rovnávací paměti, což dělá s definovanou pravidelností, tak aby byly pro OPC Klienta stále aktuální. Jak často se mají hodnoty z OPC Serveru načítat (refresh

(22)

20 period, update rate) a zda se hodnoty mají číst z vyrovnávací paměti nebo přímo ze zařízení, nastavujeme v OPC Klientu.

 Asynchronní / synchronní zápis

Pro zápis je princip totožný jako v případě asynchronního nebo syn- chronního čtení.

(23)

21 3 Siemens Prodave

Z důvodu nárůstu požadavků na možnost výměny dat mezi osobním počítačem a průmyslovým řídícím systém, firma Siemens rozšířila své portfolio o nástroj Prodave.

Jedná se o komerční produkt obsahující knihovnu prodave6.dll pro přístup k datům automatizačních systémů firmy Siemens v prostředí Windows.

3.1 Popis produktu

Vznik projektu Prodave se datuje na konec 90 let minulého století, kdy vznikla verze 1.0 pro systém MS-DOS a následně první operační systémy Windows, postupem času přichází modifikované verze a v současnosti je na trhu nejvyšší verze 6.2 podporu- jící Windows 7. Knihovna umožňuje veškerou obsluhu dat mezi PC a PLC systémy Siemens řady S7, procesory 200, 300,400 a integrovanými průmyslovými počítači M7 a C7 pomocí rozhraní Profibus/MPI nebo Ethernet (obr. 10)[14].

Knihovna je integrována v softwaru PRODAVE MPI/IE a podléhá silné licenční politice. Licence je přiložena spolu s instalačním CD na přenosném disku. Je tvořena speciálním souborem, který se pomocí nainstalovaného nástroje Automatic Licence Manager přenese na PC ve složce „AX NF ZZ“ systémového disku, nelze jej přenášet jinak než pomocí tohoto nástroje. Proto je nezbytné, před jakýmkoliv servisním zása- hem na disku, například defragmentací, soubor uložit zpět na přenosný disk, jinak o licenci přijdeme a nelze ji nijak obnovit. Výhodou je možnost licenci pohodlně přenášet mezi různými počítači.

Obr. 10: Aplikační schéma funkce knihovny Prodave

První verze knihovny byla vytvořena v C++ v roce 1999 pro systémy Windows NT, Windows 95, Windows 3.11 a MS-DOS ve formě .dll nebo .lib knihoven, pro pro- středí Visual Basic, Delphi nebo Access. Podporovala pouze rozhraní MPI.

(24)

22 Poslední dostupná verze knihovny 6.2 je z roku 2012. Podporuje operační sys- témy MS Windows XP Professional, MS Windows Vista 32 a MS Windows 7 (32 i 64 bit. verze). Podporovaná rozhraní jsou MPI a Ethernet[14].

Výměna dat zahrnuje veškeré přístupné oblasti paměti a proměnných, které jsou použité a dostupné v rámci vlastních programů řídicího systému, pomocné bity, datové bloky, vstupní a výstupní pole, časovače a čítače. Dále lze pomocí Prodave získat pří- stup k funkcím, které umožňuje programovací software STEP 7, např. možnost čtení diagnostické informace z chybové paměti procesoru a provozních stavů PLC.

3.2 Knihovna Prodave

Prodave verze 6.0 a výše pracují s knihovnou prodave6.dll, předešlé varianty používají knihovnu w95_s7.dll. Siemens do každé evoluce implementuje funkce nové, původní jsou zpětně kompatibilní. Verze funkcí majíce koncovku ex6 mimo jiné podpo- rují rozhraní Ethernet. Z funkčního hlediska lze knihovnu rozdělit na čtyři základní části. V popisu jsou zahrnuty nejdůležitější funkce.

 Základní komunikační funkce

Základní funkce jsou určeny pro sestavení komunikace za použití protokolů MPI/Profibus, TCP/IP Protocol, jsou společné pro všechny procesory.

- inicializace protokolu - LoadConnection_ex6 - de-inicializace protokolu - UnloadConnection_ex6, - asociace nového připojení - SetActiveConnection_ex6,

- nastavení hesla - SetPassword_ex6

 Výměna dat s procesory řady S7 300/400

V aktuální verzi 6.2 jsou implementovány nové pokročilé funkce.

- čtení výstupního bytu z PLC - a_field_read - zápis výstupního bytu - a_field_write - čtení vstupního bytu z PLC - e_field_read

- čtení bytu z DB - d_field_read, db_read_ex6 - zápis bytu do DB - d_field_write, db_write_ex6 - čtení pomocného bytu z PLC - m_field_read

- zápis pomocného bytu do PLC - m_field_write

- test pomocného bitu - mb_bittest

- nastavení pomocného bitu - mb_setbit, mb_resetbit - čtení proměnné časovače z PLC - t_field_read

- čtení proměnné čítače z PLC - z_field_read - přepis proměnné čítače v PLC - z_field_write

(25)

23

- čtení kombinace dat - mix_read

- zápis kombinace dat - mix_write

Nové funkce:

- čtení diagnostických dat - as_info_ex6 - čtení módu procesoru (RUN, STOP) - as_zustand_ex6

- čtení pole DB - db_buch_ex6

- čtení pole dat - field_read_ex6

- zápis pole dat - field_write_ex6

- výpis podsítí MPI/Profibus - get_pb_lifelist - výpis podsítí Ethernet - get_ie_lifelist

 Výměna dat s procesory řady S7 200

Paleta příkazů pouze pro procesory S7 200. Ve verzi 6.2 nové funkce nepřibyli.

- čtení výstupního bytu z PLC - as200_a_field_read - zápis výstupního bytu - as200_a_field_write - čtení vstupního bytu z PLC - as200_e_field_read - čtení bytu z proměnné paměti - as200_vs_field_read - zápis bytu do proměnné paměti - as200_vs_field_write - čtení pomocného bytu z PLC - as200_m_field_read - zápis pomocného bytu do PLC - as200_m_field_write - čtení spec. pomocného bytu z PLC - as200_sm_field_read - zápis spec. pomocného bytu do PLC - as200_sm_field_write

- test pomocného bitu - as200_mb_bittest

- nastavení pomocného bitu - as200_mb_setbit, resetbit - čtení proměnné časovače z PLC - as200_t_field_read - čtení proměnné čítače z PLC - as200_z_field_read - přepis proměnné čítače v PLC - as200_z_field_write

- čtení kombinace dat - as200_mix_read

- zápis kombinace dat - as200_mix_write

 Speciální funkce

Funkce týkající se správy a konverze dat. Ve verzi 6.2 jsou implementovány nové funkce pro formátování a převod dat.

- přiřazení čísla chyby k textu - error_message

- konverze dat pro S7 - gp_to_float, float_to_gp - konverze dat pro S5 - kg_to_float, float_to_kg - konverze byte/bit - boolean_byte,byte_boolean

(26)

24 3.3 Podporovaný komunikační hardware

Tab. 2: Prodave - podporované adaptéry

Výrobce Označení Rozhraní

Siemens 6ES7 972-0CA22-0XAC MPI Siemens 6ES7 972-0CA23-0XAC MPI Siemens 6ES7 972-0CA11-0XAC MPI Siemens CP 5511, 5611 Profibus/MPI Siemens CP 243, 343, 443 Ethernet

Knihovna podporuje přenos dat pomocí TCP/IP protokolu za použití rozhraní Ethernet se standardní síťovou kartou nebo Profibus/MPI. Podporovány jsou procesory Siemens řady 243, 343 a 443, dále komunikační knihovna umožňuje práci s daty pomo- cí integrovaných Profibus/MPI adaptérů CP5511, CP5611. Pro systémy Windows 95/98/NT podporuje MPI-ISA nebo MPI-ISA karty Simatic PG, PC RI45,25,FI25.

3.4 Práce s knihovnou Prodave

Po provedení standardní instalace se do adresáře c:\Program Files (x86)\Siemens\ přiřadí nová složka Prodave_S7, která v podstatě obsahuje pouze knihovnu prodave6.dll, manuál a příklad implementace na vzorové aplikaci. Knihovnu je nutno přiložit do souboru vytvořené aplikace, jelikož prostředí Delphi nepotřebuje .lib soubory pro import funkcí z .dll. K nalinkování je užíváno klíčové slovo external v deklaraci funkce, jak je použito v ukázkové aplikaci[14].

 Konfigurace komunikace

V prvním kroku musíme provést nalinkování funkce z hlavní jednotky pomocí volání.

function LoadConnection_ex6(ConNr: Integer; AccessPoint: PChar;

ConTableLen: Integer; pConTable: PCON_TABLE_TYPE): Integer; std- call; external 'Prodave6.dll';

Konfigurace komunikačního rozhraní pro sestavení komunikace se provádí po- mocí základní funkce LoadConnection_ex6. Funkce inicializuje adaptér a jeho ovladač, adresu procesoru PLC, a na závěr nastavený adaptér aktivuje.

(27)

25

pom := LoadConnection_ex6(ConNr, AccessPoint, ConTableLen, ad- dr(pConTable))

ConNr - počet nastavených připojení AccessPoint - ovladač rozhraní,

S7ONLINE = MPI 0 = default

ConTableLen - délka struktury připojení v bytech

Addr - IP adresa

 Čtení dat z paměti

Pro čtení dat je nastaveno volání funkce field_read_ex6, která je určena pro práci s proměnnou pole. Tato funkce vyžaduje nastavení paměťové oblasti, včetně jeho šíře.

vystupy2 := field_read_ex6(FieldType, cislo_db, zac_byte2_vstup, 1, SizeOf(Buffer), @Buffer, @DatLen);

FieldType - paměťová oblast, zadáno pomocí ASCII znaků DB (d/D) - jednotka byte

vstupní proměnná (e/E) - jednotka byte výstupní proměnná (a/A) - jednotka byte pomocná proměnná (m/M) - jednotka byte časovač (t/T) - jednotka word

čítač (z/Z) - jednotka word

cislo_db - číslo DB

zac_byte2_vstup - číslo prvního bytu pro čtení

1 - počet čtených bytů

SizeOf(Buffer) - velikost mezipaměti

@Buffer - mezipaměť dat

@DatLen - zapisovaná data

 Zápis dat do paměti

Pro zápis dat je nastaveno volání funkce field_write_ex6, která je vhodná taktéž pro práci s proměnnou pole. Tato funkce vyžaduje nastavení paměťové oblasti, včetně jeho šíře.

vys := field_write_ex6(FieldType, cislo_db, zac_byte1_vystup, 1, SizeOf(Buffer), @vystupy_zapis[0]);

FieldType - paměťová oblast, zadáno pomocí ASCII znaků DB (d/D) - jednotka byte

vstupní proměnná (e/E) - jednotka byte

(28)

26 výstupní proměnná (a/A) - jednotka byte

pomocná proměnná (m/M) - jednotka byte časovač (t/T) - jednotka word

čítač (z/Z) - jednotka word

cislo_db - číslo DB

zac_byte1_vystup - číslo prvního bytu pro zápis

1 - počet zapisovaných bytů

SizeOf(Buffer) - velikost bufferu

@vystupy_zapis[0] - zapisovaná data

Jak v případě čtení tak i zápisu je nutnou podmínkou přesná znalost paměťových oblastí v projektu PLC, kde se proměnná nachází a jakého je typu.

3.5 Datové možnosti knihovny

Základní jednotka pro přenos dat se nazývá telegram, neboli Protocol Data Unit (PDU) a je definována ve specifikaci S7-Protocol. Jedná se výchozí protokol implemen- tovaný v systémech S7 firmy Siemens a slouží jako komunikační základ pro knihovny prodave6.dll nebo libnodave.dll. Jak plyne z předešlých kapitol, S7-Protocol pracuje na principu definovaných funkcí a příkazů, kde nový telegram obsahuje příkaz nebo odpo- věď na předešlý příkaz.

Struktura PDU odpovídá obrázku 11[20], kde pole Header o velikosti 10 nebo 12 bytů obsahuje informace o sekvenci, počtu a typu funkcí a délce obsažených dat v telegramu. V oblasti Parameters o velikosti 6 bytů jsou definovány požadované funk- ce a jejich proměnné a pole Data je vyhrazeno pro samotná data.

Maximální velikost definovaného telegramu je 240 bytů, musíme však odpočítat 18 bytů pro obsluhu telegramu, výsledkem je využitelná velikost 222 bytů[15].

Obr. 11: Struktura PDU

3.6 Ukázková aplikace

Pro práci s knihovnou jsem použil stejné jádro ovládací části aplikace Logické obvody, která je detailně popsána, včetně veškerých nastavení, v kapitole 6 a zde im-

(29)

27 plementoval knihovnu prodave6.dll. Aplikace využívá stejného rozhraní a funkcí. Zá- kladem je procedura pro navázání komunikace, procedura čtení a zápisu. Pro bitovou správu slouží jednotka MahBit8.

Obr. 12: Ovládací aplikace s knihovnou Prodave

Okno ovládací aplikace na obrázku 12 zobrazuje proměnné datového bloku DB 2. Jednotlivé bity 0–7 odpovídají zobrazení zleva doprava, kde zelená barva signalizuje log. 1.

Diagnostický nástroj Monitor/Modify Variables, který je součástí prostředí STEP 7 zobrazuje proměnné datového bloku DB 2 v on-line režimu. Jednotlivé bity 0–7 odpo- vídají zobrazení zprava do leva.

Obr. 13: On-line okno aplikace Monitor/Modify Variables

Aplikace pracuje na principu cyklické inicializace funkcí pro čtení a zápis po- mocí komponenty Timer, kde je nastavena výchozí hodnota 250 ms pro jeden cyklus.

Test stability aplikace jsem prováděl postupnou úpravou času cyklu až na hodnotu 50 ms. Jelikož je pracováno pouze se 4 byty, nedocházelo v průběhu testu k žádnému vý- padku a systém pracoval bez problémů.

(30)

28 4 Projekt LibNoDave

Za účelem bezplatného přístupu k datům v automatizačních systémech firmy Siemens vznikl vývojový nástroj LibNoDave. V prostředí Delphi a pro následnou apli- kovatelnost v provozní praxi je určena jednotka NoDave.

4.1 Popis knihovny

Projekt LibNoDave je volně dostupná sada knihoven umožňující veškerou ob- sluhu dat v procesorech mezi PC a PLC systémy Siemens S5 a S7, procesory řady 200, 300 a 400, která vznikla na základě reverzního inženýrství.

Knihovny podléhají licenční politice na základě podmínek GNU Library General Public License (GNU Všeobecná veřejná licence) a jsou dostupná zcela zdarma z webové stránky autora. Podmínky GNU GPL představují projekt svobodného softwa- ru. GPL je nejpopulárnějším a dobře známým příkladem silně copyleftové licence, která vyžaduje, aby byla odvozená díla dostupná pod toutéž licencí. V rámci této filosofie je řečeno, že poskytuje uživatelům počítačového programu práva svobodného softwaru a používá copyleft k zajištění, aby byly tyto svobody ochráněny, i když je dílo změněno nebo k něčemu přidáno.[17]

Autorem knihoven je Thomas Hergenhahn z Německa. Původním záměrem bylo poskytnout bezplatnou komunikační knihovnu vůči konkurenčním produktům podléha- jícím copyrightové licenční politice a z toho plynoucích pořizovacích nákladů případně následných výdajů spojených při obnovování licence. Jako příklad lze zmínit knihovnu prodave6.dll.

První verze knihovny LibNoDave 0.1 byla vytvořena v Linuxu pro platformu Unix a vyšla koncem roku 2002. Poslední dostupná verze knihovny LibNoDave 0.8.5 je z konce roku 2006. Postupem času byly vývojové verze doplňovány a modifikovány.

Mimo vlastní knihovny libnodave.dll jsou v jednom paketu obsaženy funkční ukázky programů a podpůrné testovací skripty aktuálně ve všech podporovaných programova- cích jazycích. Knihovny jsou dostupné pro systémy Linux a Windows 32 bitové verze, v programovacích jazycích C, C ++, C #, VB, Perl, Delphi a Java [15].

Výměna dat zahrnuje všechny přístupné oblasti paměti a proměnných, které jsou použité a dostupné v rámci vlastních programů řídicího systému, pomocné bity, datové bloky, vstupní a výstupní pole, časovače a čítače. Dále lze pomocí LibNoDave získat přístup k funkcím, které umožňuje programovací software STEP 7, např. možnost čtení diagnostické informace z chybové paměti procesoru nebo ovládání provozních stavů PLC.

Velikost zaslaného telegramu a jeho struktura je z podstaty funkce naprosto to- tožná jako i knihovny prodave.dll popsané v kapitole 3.5.

(31)

29 4.2 Komponenty NoDave v jazyce Delphi

Knihovna NoDave pro Delphi API, která je součástí sady LibNoDave, obsahuje následující zdrojové soubory nutné pro sestavení komunikace s PLC.

 nodave.pas - programová jednotka, kde jsou zastoupeny proměnné, funkce a její konvence (název funkce, jméno souboru, kde se funkce na- chází a informace o aplikaci funkce).

 nodavecomponent.pas - komponenta NoDave.

 libnodave.dll - knihovna pro komunikaci.

Obr. 14: Blokové schéma komunikace mezi PC a PLC

Pomocí jednotky NoDaveComponent.pas je implementována třída TNoDave, která zapouzdřuje přístup k libnodave.dll. S TNoDave a libnodave.dll je velmi snadné číst a zapisovat data z a do S7 PLC. TNoDave používá pro komunikaci s PLC asyn- chronní komunikaci. Komponentu NoDave je nutno instalovat do prostření Delphi [15].

4.3 Podporovaný komunikační hardware

Knihovna taktéž podporuje přenos dat pomocí TCP/IP protokolu za použití roz- hraní Ethernet se standardní síťovou kartou nebo Profibus/MPI.

Podporovány jsou procesory Siemens řady 243, 343 a 443, dále komunikační knihovny a drivery umožňující práci s daty přes Profibus/MPI a USB-MPI adaptéry.

Dostupný hardware pro knihovny LibNoDave je uveden v tabulce 3 [15]. Ve všech pří- padech se jedná o komerční adaptéry.

(32)

30

Tab. 3: LibNoDave - podporované adaptéry

Výrobce Označení Rozhraní Protokol

Siemens 6ES7 972-0CA22-0XAC MPI daveProtoMPI, MPI2 Siemens 6ES7 972-0CA23-0XAC MPI daveProtoMPI, MPI2 Siemens 6ES7 972-0CA11-0XAC MPI daveProtoMPI, MPI2 Siemens CP 243, 343, 443 Ethernet daveProtoISOTCP, 243

IBH IBH - NetLink MPI, Ethernet daveProtoIBH

MHJ MHJ - NetLink MPI, Ethernet daveProtoIBH

4.4 Knihovna NoDave

Filosofie pro práci s daty se neliší od knihovny Prodave. Po přesném nadefino- vání komunikačního kanálu (protokol, adaptér, paměťová oblast), tak existuje jednoznačná oblast paměti, z tohoto důvodu stačí pro výměnu dat totožná sada funkcí.

V popisu jsou zahrnuty výchozí funkce, jež lze z pracovního hlediska rozdělit na čtyři základní části.

 Základní funkce pro komunikaci

Základní funkce jsou určeny pro sestavení komunikace za použití protokolů MPI/Profibus, TCP/IP Protocol, jsou společné pro všechny procesory.

- otevření kanálu - openSocket

- asociace rozhraní - daveNewInterface - inicializace adapteru - daveInitAdapter - inicializace protokolu - daveNewConnection - inicializace připojeni - daveConnectPLC - de-inicializace připojeni - daveDisconnectPLC - de-inicializace adaptéru - daveDisconnectAdapter - chybové hlášení - daveStrerror

 Výměna programových dat

Paleta příkazů pro výměnu dat s procesorem.

- čtení bytů - daveReadBytes

- zápis bytů - daveWriteBytes

- čtení bitů - daveReadBits

(33)

31

- zápis bitů - daveWriteBits

 Výměna diagnostických dat

Paleta příkazů pro čtení diagnostických dat a seznamu použitých bloků - čtení diagnostické paměti PLC - daveReadSZL

- seznam typů použitých bloků - daveListBlocksOfType - seznam použitých bloků - daveListBlocks

 Speciální funkce

Funkce týkající se konverze dat při výměně s bufferem, se znaménkem (Signed) nebo bez znaménka (Unsigned).

- data typu BYTE - daveGetS8, daveGetU8

- data typu INT - daveGetS16, daveGetU16

- data typu DINT - daveGetS32, daveGetU32 - data typu REAL - daveGetFloat

- data typu BYTE - davePut8

- data typu INT - davePut16

- data typu DINT - davePut32, - data typu REAL - davePutFloat

4.5 Práce s knihovnou NoDave

Jednotka NoDave.pas je dostupná pro komerční vývojové prostředí Delphi 7 nebo volně dostupné prostředí Solaris. Jednotku do aplikace standardním způsobem přiřadíme v projektu. V případě použití komponenty NoDave je nutnou podmínkou pro funkci přítomnost knihovny libnodave.dll v kořenové složce OS, použijeme-li jednotku NoDave.pas, musíme knihovnu přiložit do souboru námi vytvořené aplikace. Pro ukáz- ku práce s knihovnou jsem zvolil části zdrojového kódu použité v aplikaci Logické obvody.

 Konfigurace komunikace

Konfigurace komunikačního rozhraní pro sestavení komunikace se provádí v samostatné proceduře ve třech následných krocích[16].

V prvním kroku je nastaven komunikační kanál a poté sestaveno rozhraní. Pro ethernetové připojení je nutno otevřít socket. Parametrem volání funkce je číslo portu, které je pro protokol TCP/IP rovno 102 a IP adresa. Ta je nastavena v hardwarové kon- figuraci procesoru řídicího systému.

(34)

32

fds.rfd := openSocket(102,COMname);

Pro knihovnu NoDave.pas je spojení vytvořeno na základě údajů o použité lo- kální adrese adaptéru, rychlosti sítě a protokolu použitého v dané síti. První dva parametry představují příchozí a odchozí komunikační kanály, třetí parametr odpovídá typu připojeného terminálu. Tyto parametry uživatel nenastavuje. Jsou navoleny formou zadaných protokolů přiřazených v tabulce 3.

nodave_vstup := daveNewInterface(fds, 'IF1',0,daveProtoISOTCP, daveSpeed187k);

V následujícím kroku je po splnění vstupních podmínek inicializován adaptér. Je nutno zadat pozici CPU podle hardwarové konfigurace v prostředí STEP 7 a jeho adre- su. Proměnná nodave slouží k vytvoření spojení s PLC, její hodnota je použita jako parametr volání funkce pro připojení PLC a návratová hodnota musí být rovna nule.

Obecně při práci s knihovnou LibNoDave jsou požadovány nulové nebo kladné návra- tové hodnoty. Záporné hodnoty znamenají problém v komunikační cestě ze strany adaptéru.

if (daveInitAdapter(nodave_vstup)=0) then begin

nodave :=daveNewConnection(nodave_vstup,2, StrToInt(rack), Str- ToInt(slot));

Proběhne-li připojení úspěšně, je návratová hodnota inicializační funkce rovněž rovna nule, PLC je připojeno k PC a připraveno na přenos dat. V posledním kroku je nastaveno povolení následných operací pomocí logické „1“

if (daveConnectPLC(nodave)=0) then pripojeno := true;

Pro odpojení se volá samostatná procedura, kde je postupně odpojeno PLC, poté je odpojen adaptér. V případě MPI adaptéru je odpojen sériový port a je uzavřeno pří- stupové místo aplikace, u ethernetového spojení je uzavřen socket a následně se povolení nastaví do logické „0“.

daveDisconnectPLC(nodave);

daveDisconnectAdapter(nodave_vstup);

pripojeno := false;

 Čtení dat z paměti

Čtení dat se provádí přiřazením jednotlivých načtených hodnot do proměnných nebo přímo voláním funkcí na základě typu načtených proměnných.

Volání funkce daveReadBytes nastaví vnitřní pozici bufferu na nulu a každé vo- lání funkce konvertující byty na číslo tuto pozici inkrementuje v závislosti na typu proměnné. Přímo autor doporučuje číst byty po blocích i za cenu přečtení několika ne-

(35)

33 potřebných bytů, než například přečíst 2 byty z určité adresy do bufferu a pak další 2 byty do následujícího bufferu.

Tab. 4: LibNoDave - podporované oblasti paměti

Název proměnné Popis

daveSysInfo systémové informace

daveSysFlags systémové proměnné

daveAnaIn analogové vstupy

daveAnaOut analogové výstupy

daveInputs digitální vstupy

daveOutputs digitální výstupy

daveFlags pomocné proměnné

daveDB datové bloky

daveCounter paměť čítačů

daveTimer paměť časovačů

Samostatná procedura čtení je periodicky spouštěná. Knihovna nabízí paměťové oblasti uvedené v tabulce 4. Velikost paměti je zadaná v násobku bytů o maximální ve- likosti 222, jak je uvedeno v kapitole 3.5. Pro nastavení je opět nutnou podmínkou přesná znalost paměťových oblastí v projektu PLC, kde se proměnná nachází a jakého je typu.

vys:= daveReadBytes(nodave, daveDB, 0, 1, 2, NIL);

nodave - ukazatel na strukturu reprezentující sestavené spo- jení

daveDB - konstanta specifikujících oblast paměti PLC

0 - adresa datového bloku

1 - počáteční adresa čtení

2 - počet čtených bytů

NIL - mezipaměť (buffer) uložených dat

(36)

34 Taktéž platí, že návratová hodnota funkce daveReadBytes musí být nula, kladné návratové hodnoty představují problém na straně PLC a záporné jsou chyby detekované knihovnou NoDave.

 Zápis dat do paměti

Zápis dat do PLC je aplikován obráceným postupem než čtení pomocí funkce daveWriteBytes. Nejdříve naplníme buffer požadovanými hodnotami převedenými po- mocí funkcí na jednotlivé byty. Opět platí, že je rychlejší nejdříve naplnit buffer a ten celý zapsat do PLC, než zapisovat každou hodnotu zvlášť.

Zápis je proveden obdobně jako čtení. Použijeme samostatnou periodicky spouš- těnou proceduru, kde nastavíme paměťovou oblast, její typ a velikost. Paměťové oblasti jsou totožné jako pro proceduru čtení.

vys := daveWriteBytes(nodave, daveDB, 0 , 1, 2,

@vystupy_zapis[0]);

nodave - ukazatel na strukturu reprezentující sestavené spo- jení

daveDB - konstanta specifikujících oblast paměti PLC

0 - adresa datového bloku

1 - počáteční adresa čtení

2 - počet čtených bytů

vystupy_zapis - mezipaměť (buffer) uložených dat pro zápis Načteme požadovanou hodnotu a převedeme ji na základě jejího typu na byto- vou reprezentaci a uložíme do bufferu. Následně předáme buffer spolu s číslem datového bloku, adresou a zapisovanou délkou bytů z bufferu jako parametry funkci daveWriteBytes.

 Rozšířené možnosti

Ke knihovně LibNoDave existuje manuál vypracovaný autorem, který je přilo- žen do projektu, a zde jsou všechny její možnosti zdokumentovány. Ze známých implementovaných funkcí lze zmínit tyto.

- možnost nastavení módu procesoru - přístup do paměti chyb procesoru - čtení a zápis vnitřního času

- zobrazit seznam dostupných partnerů pro daný protokol - správa paměti po jednotlivých bitech

- čtení názvů datového bloku

(37)

35 5 Aplikace Logické obvody

Detailní postup práce s knihovnou NoDave je demonstrován na jednoúčelové aplikaci Logické obvody, vytvořené v prostředí Delphi 7.

5.1 Popis funkce

Úloha je složena ze třech částí. Dvě části jsou spustitelné soubory, kde hlavní aplikace slouží jako prvek obsluhy a vizualizace programu a ovládací aplikace vykoná- vá požadovanou logiku hlavního programu. Třetí část se týká programové konfigurace na straně řídicího systému Siemens. V principu obě aplikace komunikují přes paměť řídicího systému, průběh procesu je znázorněn ve schématu na obrázku 15.

Obr. 15: Funkční schéma aplikace Logické obvody

Programy jsou založeny na stejném půdorysu zdrojového kódu. Základem je procedura pro navázání komunikace, procedury pro čtení a zápis a v ovládací aplikaci je implementována procedura funkce pro vykonání samotné logiky. Pro správu jednotli- vých bitů slouží jednotka MahBit8. Aplikace pracuje na principu cyklické inicializace čtení a zápisu pomocí komponenty Timer, kde je nastavena výchozí hodnota 250 ms pro jeden cyklus.

Jak vyplývá z názvu, hlavním grafickým tématem aplikace je zobrazení principu činnosti logických hradel, kombinačních obvodů a sekvenčních obvodů využívaných v digitální technice. Nezbytnou podmínkou je možnost přístupu k prostředí Siemens Manager STEP 7 z důvodu konfigurace řídicího systému. Jedná se o komerční software firmy Siemens pro správu hardwaru a softwarových projektů v oblasti průmyslové au- tomatizace. V kapitole 5.3 je popsán postup nutný pro nastavení konfigurace a vytvoření programu v procesoru.

(38)

36 5.2 Jednotka MahBit8

Důležitou částí aplikace je použitá jednotka MahBit8.pas. Jedná se třídu povolu- jící správu paměti o velikosti 1 byte po jednotlivých bitech ve formátu proměnných INT, HEX nebo BINARY. Autorem je Mike Heydon, který vytvořil jednotku v roce 2004. Dostupné jsou i vícebytové verze MahBit16.pas a MahBit32.pas, ve všech přípa- dech se jedná o jednotky pro Delphi.

Samotná práce s jednotkou spočívá v čtení (GET) nebo zápisu (SET) individuál- ních bitů, kde obsazená bytová paměť odpovídá bitové pozici 07, ve sledu zprava do leva. Jednotlivé bity tak bitová pole mohou být dále rotována, posouvána nebo mazána.

Nabízené možnosti jednotky:

Properties

- AsByte - GET, SET proměnné jako byte

- AsHex - GET, SET proměnné jako HEX řetězec znaků - AsBinary - GET, SET proměnné jako BINARY řetězec znaků příklad: vstup_byte1.AsByte := 5;

ShowMessage(vstup_byte1,AsBinary)  '00000101'

Funkce

- BitSet() - vrací log 1, je-li bit nastaven

- BitsSet() - vrací log 1, je-li celé pole bitů nastaveno příklad: if vstup_byte1.BitSet(2) then…

Procedury

- SetBit() - nastaví bit na požadované pozici na 1 - SetBits() - nastaví pole bitů na požadované pozici na 1 - ClrBit() - nastaví bit na požadované pozici na 0 - ClrBits() - nastaví pole bitů na požadované pozici na 0 - ToggleBit() - rotuje bit na požadované pozici (0=1, 1=0) - ToggleBits() - rotuje pole bitů na požadované pozici (0=1, 1=0) - RotateLeft - posouvá hodnotu do leva

- RotateRight - posouvá hodnotu doprava příklad zápisu:

1. krok - deklarace proměnné třídy TBit8  var DB1_DBX2: TBit8 2. krok - vytvoření proměnné typu TBit8  DB1_DBX2 := TBit8.Create 3. krok - zdrojový kód

if pripojeno then DB1_DBX2.AsByteI := vystupy_zapis[0];

if CheckBox1.Checked then DB1_DBX2.SetBit(0) else DB1_DBX2.ClrBit(0);

if CheckBox1.Checked then DB1_DBX2.SetBit(0) else DB1_DBX2.ClrBit(0);

(39)

37 vystupy_zapis[0] := DB1_DBX2.AsByteI;

4. krok – uvolnění paměti pomocného bytu  DB1_DBX2.Free;

Jednotka je velice snadno aplikovatelná, výrazně zrychluje a ulehčuje práci s daty.

5.3 SIMATIC Manager STEP 7

Pro nastavení hardwaru a softwaru na straně řídicího systému je nutná znalost inženýrského prostředí Simatic Manager STEP 7.

 Nastavení komunikace na straně PC

V první fázi se musí zvolit typ komunikace, případně použitý adaptér na straně Field PG nebo PC. Základní volba a nastavení rozhraní se provádí v Ovládacích pane- lech OS, v programu Set PG/PC Interface na obrázku 16.

Obr. 16: Konfigurace protokolu TCP/IP v ovládacích panelech

Aplikace se nainstaluje spolu s programem SIMATIC Manager STEP 7.

V možnostech výběru je mimo standardní síťové karty zahrnut veškerý dostupný komu- nikační hardware. Program Logické obvody podporuje pouze komunikaci pomocí rozhraní Ethernet.

Nový procesor lze konfigurovat pouze pomocí rozhraní MPI (Multi-Point Inter- face) a příslušného adaptéru Siemens, z výroby nemá nastavenu IP adresu.

(40)

38

 Hardwarová konfigurace řídicího systému

Nejdůležitějším nástrojem pro vytvoření a úpravu hardwarové konfigurace na straně PLC je HW Config, jedna z důležitých součástí Siemens Manager STEP 7. Obsa- huje rozsáhlé knihovny prvků, jejich parametrizaci a proces sestavení komunikačních cest, s možností aktualizace od výrobců hardware odlišných od firmy Siemens.

Tab. 5: Použitý hardware v ukázkové aplikaci

Název zařízení Katalogové označení IP adresa MAC adresa Jméno v síti

Pozice

v racku Popis

Rail 6ES7390-11000-0AA0 N/A N/A N/A N/A -základní rám

PS 307 10 A 6ES7307-1KA00-0AA0 N/A N/A N/A 1 -zdroj

CPU 315 - 2 PN/DP 6ES7315-2EG10-0AB0 192.168.0.5 00-0E-8C-B2-C1-CF plc 2 -procesor

DI32xDC24V 6ES7321-1BL00-0AA0 N/A N/A N/A 5 - vstupní

modul

DO32xDC24V/0.5A 6ES7322-1BL00-0AA0 N/A N/A N/A 4 -výstupní

modul SCALENCE X 208 6GK5208-0BA10-2AA3 192.168.0.6 00-1B-1B-3B-53-01 switch N/A -externí

komunikace

Po spuštění HW Config se nám zobrazí základní okno hardwarové konfigurace.

Po založení základního racku se postupně vkládají jednotlivé pozice, nazývané sloty zvolenými prvky. Číslo racku a pozice procesoru ve slotu jsou následně důležitá pro sestavení komunikace pomocí knihovny LibNoDave. Pro aplikaci je použit hardware uvedený v tabulce 5.

 Nastavení komunikace na straně řídicího systému

Po složení stanice, včetně datových modulů v odpovídajících slotech je nutno nastavit IP adresu CPU a následně je možnost sestavit komunikaci pomocí rozhraní Ethernet.

Konfigurace sítě Profinet se provede v následujících krocích. Přes pravé tlačítko myši na PN-IO v hardwarové konfiguraci zadáme Insert PROFINET System IO. Tím se nám vloží do systému síť Profinet a je možno přidat požadované moduly sítě. Následuje pojmenování modulů na základě MAC adresy. Každá MAC adresa musí mít jedinečné jméno a IP adresu v rozsahu od adresy IO Controlleru. V dalším kroku pomocí Assign Device Name v záložce PLC/ Ethernet se přiřadí jméno každému modulu nalezenému v síti, které se musí shodovat s MAC adresou, což je nejdůležitější krok této fáze nastave- ní, správnost identifikace lze ověřit signalizací LED diody příslušného portu.

Na závěr provedeme v záložce Profinet IO Topology nastavení topologie a vlo- žíme do PLC. Každá výměna zařízení bude za dodržení určitých podmínek provedena

(41)

39 automaticky, včetně konfigurace. Případná změna sítě bude detekována a signalizována, celá topologie bude také zpřístupněna na webserveru.

Obr. 17: Konfigurace systému PN-IO

 Vytvoření projektu

Struktura průmyslových aplikací programovaných v prostředí STEP 7 je pro vět- ší přehlednost a kontrolovatelnost správné funkce rozdělena do více logických celků obsahující jednotlivé části programu. Lze tak vytvářet funkce FC (Function) bez static- ké paměti nebo funkční bloky FB (Function Block) se statickou pamětí, která se nazývá datový blok.

Funkce a funkční bloky jsou zastřešeny hlavním organizačním blokem OB1, kde musí být nastaveno volání. Organizační bloky probíhají cyklicky a vykonávají v sobě obsažený kód, liší se podle závislosti na časovém odstupu vykonávaných cyklů. Funkce a funkční bloky mohou být v organizačním bloku volány vícekrát na různých místech v závislosti na jejich potřebě.

Obr. 18: Funkce volání v DB2 v organizačním bloku

(42)

40 Pro potřebu aplikace Logické obvody vytvoříme datový blok DB2 cyklicky vy- volávaný v OB1. Využijeme funkci DB Call a pomocí jazyka LAD (Ladder Logic Programming Language) zavoláme datový blok. Tento jazyk je založen na obvodové reprezentaci, též známý pod názvem „žebříčkový diagram“.

Obr. 19: Nastavení datového bloku

V posledním kroku nadefinujeme 4 byty paměti datového bloku. Zde jsme do- končili konfiguraci na straně řídicího systému v prostředí STEP 7.

5.4 Programové rozhraní Logické obvody

 Logické obvody – hlavní aplikace

Aplikace je ve tvaru spustitelného souboru na platformě Windows. Struktura programu je tvořena osou nastavení komunikace, DB a připojení se k řídicímu systému.

Do systému je nutno definovat vstupní parametry a následně je umožněno spuštění spo- jení. Celý proces je znázorněn na obrázku 20.

Obr. 20: Funkční schéma aplikace Logické obvody- hlavní aplikace

References

Related documents

Podpora prodeje je jedním z prvků komunikačního mixu, který je ve firmě Ralton velmi krátkou dobu.. Ralton koncem roku 2017 vybudoval nový showroom v

První části diplomové práce popisuje základní nástroje marketingové komunikace a komunikace ve sportu, tato část tvoříteoretický základ pro analýzu komunikace

Už tehdy jsem spolupracoval s firmou Grupo Antolin Turnov a ve své bakalářské práci mohu v této spolupráci dále pokračovat, za což jsem velmi

This is followed by an introduction to the family business and important examination of the macro and micro environment of the company with the help of PESTE

Grafický model můžeme buď získat přímo z výroby, kdy získáme z podniku model vytvořený v CAD softwaru, který je importován do programu Witness, nebo vytvořit

Obsahový marketing se netýká pouze webových stránek ale všech nástrojů, kde ke komunikaci dochází pomocí publikování obsahu, v online prostředí se tedy může

Dále v roce 2016 došlo v České republice ke zvýšení prodejů automobilů značky ŠKODA o 11,3 %, výzkumný předpoklad, že bude zaznamenán pokles v prodejích vozů, byl tedy

Jestliže uživatel zvolil operaci vytvoření nového datového objektu, přechází program rovnou do stavu CREATE.. Pokud došlo k vybrání kterého koliv jiného