Jednotná architektura OPC - OPC Unified Architecture
![]() | Tento článek má několik problémů. Prosím pomozte vylepši to nebo diskutovat o těchto otázkách na internetu diskusní stránka. (Zjistěte, jak a kdy tyto zprávy ze šablony odebrat) (Zjistěte, jak a kdy odstranit tuto zprávu šablony)
|
Jednotná architektura OPC (OPC UA) je stroj na stroj komunikační protokol pro průmyslová automatizace vyvinutý společností Nadace OPC. Charakteristické vlastnosti jsou:
- Na základě komunikace klient-server
- Zaměření na komunikaci s průmyslovými zařízeními a systémy pro sběr a kontrolu dat
- Otevřeno - volně dostupné a implementovatelné pod licencí GPL 2.0 [1]
- Cross-platform - není vázáno na jeden operační systém nebo programovací jazyk
- Architektura orientovaná na služby (SOA)
- Vrozená složitost - v září 2020 obsahovala specifikace 3151 stran v 15 dokumentech
- Nabídky bezpečnostní funkce pro autentizaci, autorizaci, integritu a důvěrnost[2]
- Integrální informační model, což je základ infrastruktury nezbytné pro integraci informací, kde prodejci a organizace mohou modelovat svá komplexní data do oboru názvů OPC UA a využívat tak bohatou architekturu OPC UA orientovanou na služby. V současné době existuje více než 35 spolupráce s Nadací OPC. Mezi klíčová odvětví patří farmaceutické, ropa a plyn, automatizace budov, průmyslová robotika, bezpečnost, výroba a kontrola procesu.
Dějiny
Ačkoli byl vyvinut stejnou organizací, OPC UA se výrazně liší od svého předchůdce, Otevřená komunikace na platformě (OPC). Cílem nadace pro OPC UA bylo poskytnout cestu vpřed od originálu OPC komunikační model (zejména Microsoft Windows - pouze výměna procesu COM /DCOM ), který by lépe vyhovoval vznikajícím potřebám průmyslová automatizace.[3]
Po více než třech letech prací na specifikacích a dalším roce implementace prototypu byla v roce 2006 vydána první verze Unified Architecture.
Aktuální verze specifikace je 1.04 (22. listopadu 2017[4]). Nová verze OPC UA nyní kromě komunikační infrastruktury klient / server přidala publikování / odběr.
Inovace
Ačkoli původní vazba na COM /DCOM pomohl OPC dobře distribuovat, to mělo několik nevýhod:
- Časté problémy s konfigurací DCOM;
- Žádné konfigurovatelné časové limity;
- Microsoft Windows pouze;
- Nižší bezpečnost;
- Žádná kontrola nad DCOM (COM / DCOM je druh černé skříňky, vývojáři nemají přístup ke zdrojům, a proto se musí vypořádat s chybami nebo nedostatečnými implementacemi).
Tyto nevýhody spolu s řadou dalších úvah tlačily na rozhodnutí vyvinout nový a nezávislý zásobník pro OPC UA, který nahradí COM / DCOM. Hlavní charakteristiky tohoto komunikačního zásobníku byly:
- Implementace více platforem, včetně přenosných ANSI C., Jáva a .SÍŤ implementace;
- Škálovatelnost: od inteligentních senzorů a inteligentních akčních členů až po sálové počítače;
- Vícevláknové i jednovláknové / jednoúčelové operace - nezbytné pro portování zásobníku na vestavěná zařízení;
- Zabezpečení založené na nových standardech;
- Konfigurovatelné časové limity pro každou službu;
- Chunking velkých datagramů.
Tento komunikační balíček odráží začátek různých inovací. Architektura OPC UA je architektura orientovaná na služby (SOA) a je založena na různých logických úrovních.
OPC Base Services jsou abstraktní popisy metod, které jsou nezávislé na protokolu a poskytují základ pro funkčnost OPC UA. Transportní vrstva vkládá tyto metody do protokolu, což znamená, že serializuje / deserializuje data a přenáší je po síti. protokoly jsou pro tento účel specifikovány. Jeden je binární TCP protokol, optimalizovaný pro vysoký výkon a druhý je webová služba -orientované.
Informační model OPC je takzvaná síť Full Mesh založená na uzly. Tyto uzly mohou obsahovat jakýkoli druh meta informací a jsou podobné objektům objektově orientované programování (OOP). Uzel může mít atributy pro přístup pro čtení (DA, HDA), metody, které lze volat (Příkazy), a spouštěné události, které lze přenášet (AE, DataAccess, DataChange). Uzly uchovávají procesní data i všechny ostatní typy metadata. Obor názvů OPC obsahuje typový model.
Klientský software může ověřit, jaké profily server podporuje. To je nutné k získání informací, pokud server podporuje pouze funkce DA nebo navíc AE, HDA atd. Dále lze získat informace o tom, zda server podporuje daný profil. Nové a důležité vlastnosti OPC UA jsou:
- Nadbytek Podpěra, podpora
- Tlukot srdce pro připojení v obou směrech (k označení, zda je druhý konec „naživu“). To znamená, že server i klient rozpoznávají přerušení.
- Vyrovnávací paměť údajů a potvrzení přenesených údajů. Ztracené připojení již nevede ke ztrátě dat. Ztracené datagramy lze obnovit.
Na OPC UA DevCon v říjnu 2006 v Mnichově byly naživo představeny první prototypy. Na serveru Beckhoff byly zobrazeny různé servery UA programovatelný logický řadič a vložená testovací deska od EUR. Beckhoff PLC je založen na systému Windows XP Embedded a integrovaný řadič je založen na operační systém v reálném čase Eur. Společnost Embedded Labs Ltd předvedla OPC UA Server založený na jejich vlastním C ++ UA Stacku prováděném na jediném čipu PAŽE mikrokontrolér s 64kB RAM. V říjnu 2012 německé Fraunhoferovo aplikační centrum IOSB-INA a Institut pro průmyslové informační technologie (inIT) ukázaly, že server OPC UA je škálovatelný až na 15 kB RAM a 10 kB ROM, a proto je použitelný na úrovni čipů.[5]
Protokoly
OPC UA podporuje dva protokoly.[6] To je viditelné pro programátory aplikací pouze prostřednictvím změn adresy URL. Binární protokol je opc.tcp: // Server a http: // Server je pro webovou službu. Jinak OPC UA funguje zcela transparentně API.
Binární protokol nabízí nejlepší výkon / nejmenší režii, vyžaduje minimální zdroje (bez XML Parser, MÝDLO a HTTP required, což je důležité pro integrovaná zařízení), nabízí nejlepší interoperabilitu (binární je výslovně specifikováno a umožňuje méně stupňů volnosti během implementace) a používá jeden libovolně zvolitelný port TCP pro komunikaci usnadňující tunelování nebo snadné povolení prostřednictvím brány firewall.
Protokol webové služby (SOAP) je nejlépe podporován z dostupných nástrojů, např. Z prostředí Java nebo .NET, a je vhodný pro bránu firewall pomocí standardních portů HTTP (S).
Binární verze je podporována všemi implementacemi, zatímco SOAP podporuje pouze implementace .NET.
Specifikace
Specifikace OPC UA je vícedílná specifikace a skládá se z následujících částí:
- Koncepty
- Model zabezpečení
- Model adresního prostoru
- Služby
- Informační model
- Mapování
- Profily
- Přístup k datům
- Alarmy a podmínky
- Programy
- Historický přístup
- Objev a globální služby
- Agregáty
- PubSub
Na rozdíl od specifikací založených na COM nejsou specifikace UA čistými aplikačními specifikacemi. Popisují typicky vnitřní mechanismy UA, které jsou zpracovávány prostřednictvím komunikačního zásobníku a obvykle jsou zajímavé pouze pro ty, které portují zásobník na konkrétní cíl, nebo pro ty, které chtějí implementovat svůj vlastní zásobník UA.
Vývojáři aplikací OPC UA kódují proti OPC UA API, a proto používají hlavně dokumentaci API. Část 3, 4 a 5 však může být pro vývojáře aplikací zajímavá.[7]
Diskuse
Specifikace protokolu OPC UA se skládá ze 14 dokumentů, celkem tedy 1250 stránek. Kvůli této složitosti jsou stávající implementace obvykle neúplné. Kromě toho existence několika formátů serializace a také možnost selektivní implementace určitých služeb, jako je PubSub, nakonec vedou k velké heterogenitě spojovacích bodů OPC UA. Za těchto podmínek je konečně obtížné vyvíjet klientské aplikace, které jsou nezávislé na konkrétní implementaci každého serveru. V tomto smyslu OPC UA nedosahuje svého slibu zajistit dobrou interoperabilitu systémů. To lze obvykle vidět v továrních a infrastrukturních projektech integrujících různé technologie PLC, z nichž každý je dodáván s jinou a omezenou implementací protokolu OPC UA.
Specifikace se stále vyvíjí, poslední svazek dokumentu se specifikacemi 14 je datován 6. února 2018, zatímco první vydání standardního OPC UA pochází z roku 2006.
Výsledkem je, že navzdory značnému marketingovému úsilí na podporu jeho přijetí lze OPC UA v této fázi považovat spíše za pokus o standardizaci než za zavedený standard.
Komunikační zásobník UA
Architektura aplikace UA, nezávisle na tom, zda se jedná o serverovou nebo klientskou část, je strukturována do úrovní.
Některé části se vyrovnají bývalým COM Proxy / Stubs a jsou poskytovány OPC Foundation. Úroveň přenositelnosti je nová; zjednodušuje portování zásobníku UA ANSI C na jiné cílové platformy. Portová vrstva pro Windows a Windows Linux poskytuje také Nadace OPC.
Zabezpečení UA
UA Security se skládá z autentizace a autorizace, šifrování a integrity dat pomocí podpisů. Pro webové služby WS-SecureConversation zvykne, a proto je kompatibilní s .SÍŤ a další MÝDLO implementace. U binární varianty byly dodrženy algoritmy WS-SecureConversation a také převedeny na binární ekvivalent. Jmenuje se to jako UA Secure Conversation.
Existuje také smíšená verze, kde je kód binární, ale transportní vrstva je SOAP. Jedná se o kompromis mezi účinným binárním kódováním a přenosem přátelským k firewallu. Binární kódování vždy vyžaduje UA Secure Conversation. Ověřování se používá X.509 výhradně certifikáty. Spoléhá se na vývojáře aplikace, aby si vybral, ke kterému úložišti certifikátů se aplikace UA dostane. Například je možné použít infrastruktura veřejného klíče (PKI) z Aktivní adresář.
Integrované datové typy
Standard OPC UA definuje 25 předdefinovaných datových typů:
Vestavěný typ | C / C ++ ekvivalent | Detaily | Typ NodeId |
---|---|---|---|
Booleovský | bool | 0/1 (true nebo false) | 0 (číselné) |
SByte | int8_t | -128 až 127 | |
Byte | uint8_t | 0 až 255 | |
Int16 | int16_t | -32768 až 32767 | |
16. UInt | uint16_t | 0 až 65535 | |
Int32 | int32_t | -2147483648 až 2147483647 | |
UInt32 | uint32_t | 0 až 4294967295 | |
Int64 | int64_t | -9223372036854775808 až 9223372036854775807 | |
UInt64 | uint64_t | 0 až 18446744073709551615 | |
Plovák | plovák | Hodnota plovoucí desetinné čárky IEEE s jednou přesností (32 bitů) | |
Dvojnásobek | dvojnásobek | Hodnota plovoucí desetinné čárky IEEE s dvojitou přesností (64 bitů) | |
StatusCode | uint32_t | ||
Tětiva | uint8_t * / std :: string | 3 (řetězec) | |
Čas schůzky | int64_t | počet 100 nanosekundových intervalů od 1/1/1601 (UTC) | |
GUID | závisí na implementaci | 16bajtové číslo použité jako a unikátní identifikátor | 4 (GUID) |
ByteString | (stejné jako řetězec) | 5 (bajtový řetězec) | |
XmlElement | (stejné jako řetězec) | ||
NodeId | index oboru názvů a typ NodeId | ||
ExpandedNodeId | (podobně jako NodeId) | ||
Kvalifikovaný název | index a řetězec oboru názvů | ||
LocalizedText | řetězec a indikátor národního prostředí | ||
NumericRange | řetězec (např. „0: 4,1: 5“ pro pole [0..4] [1..5]) | ||
Varianta | (pouze vestavěné datové typy) | ||
ExtensionObject | skaláry jakéhokoli typu | ||
DataValue | složený z hodnoty, časových značek a stavového kódu | ||
DiagnosticInfo | podrobné chybové / diagnostické informace |
OPC UA API
UA API jsou k dispozici v několika programovacích jazycích. Komerční SDK jsou k dispozici pro C, C ++, Java a .NET. Zásobníky open-source jsou k dispozici alespoň pro C, C ++, Java, Javascript (uzel), Tcl a Python [1].
C ++ / C implementace
- The otevřeno62541 Projekt poskytuje implementaci Open Source pro OPC UA server a klienty a je licencován pod Veřejná licence Mozilla v2.0. Kromě Linuxu a Windows podporuje jako cíl kompilace také OS X, QNX a různé vestavěné systémy.
- The Projekt S2OPC poskytuje zabezpečenou implementaci Open Source a je licencován pod Apache 2.0 licence. Podporuje Linux, Windows, FreeRTOS, Zephyr, VxWorks a jeho cílem je být bezpečný, zabezpečený a rychlý. Jádro softwaru je formálně navrženo pomocí B-metoda.
- The Projekt ASNeG poskytuje C ++ otevřený zdroj (Apache License 2.0) OPC UA aplikační server a OPC UA webový server (stav beta, aktuálně pouze základní funkce).
- The FreeOpcUa projekt poskytuje otevřený zdroj (LGPL ) implementace serveru a klienta v C ++.
- The UAF projekt nabízí implementaci open source (LGPL) C ++ / Python.
Implementace .NET
Implementace .NET používá ANSI C pro nižší úrovně a zbytek implementuje nativně v .NET. To znamená, že ze zásobníku ANSI C bude integrováno pouze zpracování soketu a Message-Chunking. De-serializace probíhá přímo v .NET, a proto se převádí přímo do .NET struktur a objektů. To poskytuje lepší výkon než nejprve serializovat do struktury C a poté zkopírovat data do struktury .NET.
Implementace Java
Byly vyvíjeny různé komíny pro Javu.[když? ] Podobně jako .NET existují v zásadě tři varianty:
- Zapouzdřit celý zásobník ANSI C prostřednictvím JNI, což komplikuje přenositelnost. I když je možné zásobník přenést do různých operačních systémů, je nutné jej zkompilovat jednotlivě. Data se také musí zkopírovat na hranici JNI, ale těží z výkonu C během de-serializace.
- Kódujte přímo na síťové vrstvě (podobně jako aktuální implementace .Net) a de-serializujte v Javě. Tím se ušetří jedno provedení kopie dat, ale stále to závisí na zásobníku C.
- Napište nativní zásobník Java OPC UA. Bylo pozorováno, že je to nejpřenositelnější, ale odhaduje se, že jeho implementace vyžaduje největší technické úsilí. Projekt Eclipse Milo poskytuje čistě Java, open-source, implementaci specifikace klienta a serveru UA 1.03.[8]
Alternativně existuje jednoduchá varianta, která podporuje pouze protokol WebService. K tomu SOAP Toolkit, který podporuje WS-Security je potřeba.
Implementace JavaScriptu
uzel-opcua je kompletní implementace OPC UA pro klienta a server, která je kompletně psána v JavaScriptu pro Node.js.
Implementace Pythonu
- The FreeOpcUa projekt poskytuje dvě implementace v čistém programovacím jazyce Python - opcua-asyncio (vyžaduje Python> = 3,7) a python-opcua (kompatibilní s Pythonem 2, 3 a pypy; vyžaduje Cython pro knihovnu lxml, ale je v režimu údržby a opcua-asyncio je doporučeno). Oba poskytují abstrakce na vysoké úrovni klienta a serveru OPC UA, které lze použít tak, jak jsou, nebo je lze snadno rozšířit pro vlastní aplikace.
- The S2OPC C-implementace poskytuje obálku pythonu PyS2OPC.
Realizace rezu
Rez pro OPC UA poskytuje API a ukázky pro implementaci OPC UA klienta a serverů až na úroveň vloženého profilu. To zahrnuje podporu šifrování, předplatného a výchozí sadu uzlů.
Implementace TypeScript / JavaScript
Klient OPC UA typu TypeScript / JavaScript pro prohlížeč je OPC UA klient, který pracuje v prohlížeči. Je kompletně napsán strojopisem a zkompilován do JavaScriptu. Zdrojový kód je veřejně dostupný a má licenci MIT. Zahrnuje kódování binárních dat OPC UA a jako přenosový protokol používá WebSockets.
Implementace Tcl
Topcua je vazba Tcl na OPC UA klienta a server. Poskytuje několik operací pro správu a komunikaci pomocí implementace OPC UA. Je k dispozici na běžných platformách POSIX a Windows.
IEC 62541
IEC 62541[9] je standardem pro OPC Unified Architecture.
ID | datum vydání | titul |
---|---|---|
IEC / TR 62541-1 | 2016 | Jednotná architektura OPC - Část 1: Přehled a koncepty |
IEC / TR 62541-2 | 2016 | Jednotná architektura OPC - Část 2: Bezpečnostní model |
IEC 62541-3 | 2020 | Jednotná architektura OPC - Část 3: Model adresního prostoru |
IEC 62541-4 | 2020 | Jednotná architektura OPC - Část 4: Služby |
IEC 62541-5 | 2020 | Jednotná architektura OPC - Část 5: Informační model |
IEC 62541-6 | 2020 | Jednotná architektura OPC - Část 6: Mapování |
IEC 62541-7 | 2020 | Jednotná architektura OPC - Část 7: Profily |
IEC 62541-8 | 2020 | Jednotná architektura OPC - Část 8: Přístup k datům |
IEC 62541-9 | 2020 | Jednotná architektura OPC - Část 9: Alarmy a podmínky |
IEC 62541-10 | 2020 | Jednotná architektura OPC - Část 10: Programy |
IEC 62541-11 | 2020 | Jednotná architektura OPC - Část 11: Historický přístup |
IEC 62541-12 | 2020 | Jednotná architektura OPC - Část 12: Discovery a globální služby |
IEC 62541-13 | 2020 | Jednotná architektura OPC - Část 13: Agregáty |
IEC 62541-14 | 2020 | Jednotná architektura OPC - Část 14: PubSub |
IEC 62541-100 | 2015 | Jednotná architektura OPC - Část 100: Rozhraní zařízení |
Viz také
Reference
- ^ https://opcfoundation.org/license/gpl.html
- ^ Roepert, Linus; Dahlmanns, Markus; Fink, Ina Berenice; Pennekamp, Jan; Henze, Martin https://www.comsys.rwth-aachen.de/fileadmin/papers/2020/2020-roepert-opcua-security.pdf Hodnocení bezpečnosti nasazení OPC UA, 2020
- ^ Mahnke, Wolfgang; Leitner, Stefan-Helmut https://library.e.abb.com/public/75d70c47268d78bfc125762d00481f78/56-61%203M903_ENG72dpi.pdf Jednotná architektura OPC - budoucí standard pro komunikaci a modelování informací v automatizaci], 3/2009 Recenze ABB 3/2009, strana 56-61
- ^ https://opcfoundation.org/developer-tools/specifications-unified-architecture
- ^ Nejmenší server OPC UA na světě pochází z Německa
- ^ Leitner, Stefan-Helmut; Mahnke, Wolfgang OPC UA - Servisně orientovaná architektura pro průmyslové aplikace, 11/2006 Softwaretechnik-Trendy ISSN 0720-8928
- ^ Massaro, Simone Co je OPC UA a jak ovlivňuje váš svět?, 5/15/2008 planetengineering.com
- ^ „Funkce klienta a / nebo serveru OPC Unified Architecture (UA) v jakémkoli projektu založeném na JVM“. Citováno 22. srpna 2016.
- ^ „Webový obchod IEC pro IEC 62541“. Citováno 1. června 2018.
Literatura
- Wolfgang Mahnke, Stefan-Helmut Leitner, Matthias Damm: Jednotná architektura OPC. Springer Verlag 2009; ISBN 978-3-540-68898-3
- Lange, J., Iwanitz, F., Burke, T. OPC Od přístupu k datům po Unified Architecture 2010; ISBN 978-3-8007-3242-5
externí odkazy
- Nadace OPC
- Úvod do OPC UA založený na open source open62541 SDK
- Implementace OPC UA s licencí CECILL-C
- Cross-platform OPC UA development and free cross platform clients (Windows, Linux, Android, iOS)
- Multiplatformní OPC UA mySCADA běžící na Windows, Linux, MacOS, Android a iOS
- Zásobník nativního Java OPC UA zapalování
- Úvod do modelování adresního prostoru OPC UA
- Node-OPCUA -OPC UA pro nodejs - (licence MIT)
- OPC UA pro zařízení Android
- Elektronická kniha OPC Unified Architecture
- Open Source OPC UA SDK pro Javu
- Projekt FreeOpcUa implementuje open-source (LGPL) OPC UA stack a související nástroje.
- SDK pro OPC UA (Java) a bezplatný klient / server
- Připojení programátoru OPC
- Příběh dvou průmyslových standardů IoT: DDS a OPC UA
- Woopsa - protokol, který na web přináší funkce podobné OPC UA
- Komunikace v průmyslu 4.0 s Wolfram SystemModeler a OPC UA
- Brána OPC UA pro průmysl 4.0
- S2OPC open source bezpečný OPC UA
- Kompletní průvodce OPC UA