OPC Unified Architecture
Author
Albert FloresOPC Unified Architecture (OPC UA) je standard komunikačních protokolů a rozhraní pro průmyslovou automatizaci. Tento standard byl vyvinut organizací OPC Foundation a je určen pro výměnu dat mezi různými zařízeními a systémy v průmyslových aplikacích. OPC UA se vyznačuje robustností, bezpečností a schopností provádět komunikaci přes různé sítě a protokoly. OPC UA poskytuje obecnou a rozšiřitelnou platformu pro komunikaci mezi zařízeními, umožňuje přenos různých typů dat a nabízí možnost vytvoření hierarchického modelu, který usnadňuje organizaci a správu datových struktur. Díky své modularitě a nezávislosti na platformě se OPC UA stal populárním standardem v průmyslové automatizaci a integruje se s různými systémy a zařízeními, jako jsou PLC (programovatelné logické automaty), HMI (rozhraní člověk-stroj) a SCADA (supervizní kontrola a sběr dat). OPC UA podporuje bezpečnostní mechanismy, jako je šifrování dat, autentizace uživatelů a zabezpečená komunikace, což je klíčové pro ochranu dat a systémů v průmyslových prostředích. Díky své otevřenosti a podpoře různých protokolů je OPC UA schopen efektivně komunikovat s různými typy zařízení a sítí, a umožňuje tak snadnou integraci a interoperabilitu v automatizačních systémech. OPC Unified Architecture je v současné době jedním z nejpoužívanějších standardů v průmyslové automatizaci a má širokou podporu od výrobců zařízení, softwarových nástrojů a systémů. Jeho využití umožňuje snížit náklady na integraci a údržbu systémů, zlepšit jejich spolehlivost a zabezpečení a usnadnit vývoj a nasazení nových aplikací v průmyslovém prostředí.
OPC Unified Architecture (OPC UA) je komunikační protokol vyvinut nadací OPC Foundation.
Jeho charakteristiky jsou:
* je založen na klient-server modelu * zaměření na sběr dat a řízení v rámci průmyslových sítí * otevřenost - je uvolněn pod licencí GPL 2. 0 * platformová přenositelnost - není vázán na konkrétní operační systém či programovací jazyk * orientovaný na služby * nabízí bezpečnostní funkce jako je např. +more autentizace, autorizace, integrita a důvěryhodnost.
Historie
Přestože byl protokol vyvinut stejnou organizací jako svůj předchůdce, ta se OPC UA od něj velmi liší. Název OPC stojí za Open Platform Communications, tedy se jedná o otevřený komunikační protokol a stojí za ním nadace OPC Foundation. +more Cílem protokolu OPC UA nadace zamýšlela poskytnout cestu vpřed z běžného komunikačního OPC modelu (přesněji závislost na systémech Microsoft Windows a jejich modelu COM/DCOM) blíže k jednoduchosti potřebné pro průmyslovou automatizaci.
První verze protokolu OPC UA byla uvolněna po více než 3 letech prací na specifikacích a prototypech v roce 2006.
Aktuální verze specifikace nese číslo revize 1. 04 z 22. +more listopadu 2017 a nová verze protokolu byla rozšířena o model publish/subscribe (stejně jako má protokol MQTT) vedle běžného klient/server modelu.
Protokoly
OPC UA podporuje dva protokoly, které se liší svojí cestou URL. Binární protokol opc.tcp://Server a protokol pro webovou službu
. Jinak pracuje OPC UA zcela transparentně ke svému API rozhraní.
Binární protokol nabízí lepší výkon a zabírá méně procesorového času (nevyžaduje parsování XML, SOAP či HTTP), nabízí nejlepší interoperabilitu a používá pouze jeden zvolený port, což zajišťuje lepší tunelování pomocí tzv. směrování portů (port-forwarding) na firewallu.
Webová služba založená na SOAP protokolu je příjemnější pro programování vzhledem k pojmenovaným entitám v přenášených datech a bezpečnost je stejná jako pro běžné HTTP a HTTPS porty.
Bezpečnost UA
Bezpečnost protokolu OPC UA je zajištěna pomocí autentizace, autorizace, šifrování a zajištění datové integrity pomocí podpisů. Pro webové služby se používá tzv. +more WS-SecureConversation a je kompatibilní se SOAP implementacemi protokolu. Pro binární variantu je použit algoritmus jako pro WS-SecureConversation a poté převeden do své binární podoby jako UA Secure Conversation.
Dále existuje i smíšená verze, kde jsou data i kód v binární podobě, ale transportní vrstvou je protokol SOAP. Jedná se o efektivní řešení pro umožnění lepšího prostupu přes firewally v problematických nasazeních. +more Autentizace je vždy zajišťována poccí X. 509 certifikátů a spoléhá na vývojáře aplikace, který určuje jaké úložiště certifikátů k aplikaci náleží. Tímto úložištěm může být například PKI infrastruktura řešení Active Directory v rámci systémů Microsoft Windows Server.
Vestavěné datové typy
Standard OPC UA definuje 25 vestavěných datových typů:
Boolean | bool | 0/1 (true or false) | 0 (číselná hodnota) |
---|---|---|---|
SByte | int8_t | -128 až 127 | |
Byte | uint8_t | 0 až 255 | |
Int16 | int16_t | -32768 až 32767 | |
UInt16 | 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 | |
Float | float | 32bitové desetinné číslo dle normy IEEE | |
Double | double | 64bitové desetinné číslo dle normy IEEE | |
StatusCode | uint32_t | ||
String | uint8_t* / std::string | 3 (řetězec) | |
DateTime | int64_t | počet 100 nanosekundových intervalů od 1. 1. +more1601 UTC | |
GUID | závislé na implementaci | 16-bytové číslo použité jako unikátní identifikátor | 4 (GUID) |
ByteString | (stejné jako řetězec) | 5 (byte string) | |
XmlElement | (stejné jako řetězec) | ||
NodeId | index jmenného prostoru (namespace) nebo typ NodeId | ||
ExpandedNodeId | (podobné jako NodeId) | ||
QualifiedName | index jmenného prostoru (namespace) nebo řetězec | ||
LocalizedText | řetězec a identifikátor jazyka | ||
NumericRange | řetězec (např. "0:4,1:5" pro pole [0. 4][1. 5]) | ||
Variant | (variabilní objekt, pouze pro vestavěné typy) | ||
ExtensionObject | skalární veličiny libovolného typu | ||
DataValue | složenina hodnoty, časového razítka a stavového kódu | ||
DiagnosticInfo | detail o chybě či diagnostická informace |
API rozhraní OPC UA
API rozhraní protokolu OPC UA jsou dostupná pro několik programovacích jazyků, například:
Implementace pro jazyk C/C++
Projekt [url=https://open62541. org/]open62541[/url] poskytuje otevřenou implementaci OPC UA serveru a klientů uvolněnou pod licencí MPL 2. +more0 * Projekt [url=https://github. com/FreeOpcUa]FreeOpcUa[/url] poskytuje otevřenou implementaci OPC UA serveru a klientů uvolněnou pod licencí LGPL. * UAF.
Implementace pro jazyk JavaScript
Projekt [url=https://github.com/node-opcua]node-opcua[/url] je kompletní implementací OPC UA protokolu pro server i klienta kompletně napsaného v jazyce JavaScript pro Node.js.
Implementace pro jazyk Python
Projekt [url=https://github. com/FreeOpcUa]FreeOpcUa[/url] poskytuje jak asynchronní implementaci pomocí opcua-asyncio (pro Python 3. +more7 a vyšší) a také python-opcua. Obě implementace poskytují vysokou úroveň abstrakce pro implementaci jako OPC UA serveru, tak i OPC UA klienta.
IEC 62541
IEC 62541 je označení standardu pro OPC Unified Architecture.
IEC/TR 62541-1 | 2016 | OPC Unified Architecture - Part 1: Overview and Concepts |
---|---|---|
IEC/TR 62541-2 | 2016 | OPC Unified Architecture - Part 2: Security Model |
IEC 62541-3 | 2020 | OPC Unified Architecture - Part 3: Address Space Model |
IEC 62541-4 | 2020 | OPC Unified Architecture - Part 4: Services |
IEC 62541-5 | 2020 | OPC Unified Architecture - Part 5: Information Model |
IEC 62541-6 | 2020 | OPC Unified Architecture - Part 6: Mappings |
IEC 62541-7 | 2020 | OPC Unified Architecture - Part 7: Profiles |
IEC 62541-8 | 2020 | OPC Unified Architecture - Part 8: Data Access |
IEC 62541-9 | 2020 | OPC Unified Architecture - Part 9: Alarms and Conditions |
IEC 62541-10 | 2020 | OPC Unified Architecture - Part 10: Programs |
IEC 62541-11 | 2020 | OPC Unified Architecture - Part 11: Historical Access |
IEC 62541-12 | 2020 | OPC unified architecture - Part 12: Discovery and global services |
IEC 62541-13 | 2020 | OPC Unified Architecture - Part 13: Aggregates |
IEC 62541-14 | 2020 | OPC unified architecture - Part 14: PubSub |
IEC 62541-100 | 2015 | OPC Unified Architecture - Part 100: Device Interface |