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ř. 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. 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. 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 http://Server. 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. 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. Autentizace je vždy zajišťována pomocí 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ů: +Vestavěné datové typy OPC UADatový typEkvivalent v C/C++RozsahTyp NodeIdBooleanbool0/1 (true or false)0 (číselná hodnota)SByteint8_t -128 až 127Byteuint8_t0 až 255Int16int16_t -32768 až 32767UInt16uint16_t0 až 65535Int32int32_t -2147483648 až 2147483647UInt32uint32_t0 až 4294967295Int64int64_t -9223372036854775808 až 9223372036854775807UInt64uint64_t0 až 18446744073709551615Floatfloat32bitové desetinné číslo dle normy IEEEDoubledouble64bitové desetinné číslo dle normy IEEEStatusCodeuint32_tStringuint8_t* / std::string3 (řetězec)DateTimeint64_tpočet 100 nanosekundových intervalů od 1. 1. 1601 UTCGUIDzávislé na implementaci16-bytové číslo použité jako unikátní identifikátor4 (GUID)ByteString(stejné jako řetězec)5 (byte string)XmlElement(stejné jako řetězec)NodeIdindex jmenného prostoru (namespace) nebo typ NodeIdExpandedNodeId(podobné jako NodeId)QualifiedNameindex jmenného prostoru (namespace) nebo řetězecLocalizedTextřetězec a identifikátor jazykaNumericRangeřetězec (např. "0:4,1:5" pro pole [0..4][1..5])Variant(variabilní objekt, pouze pro vestavěné typy)ExtensionObjectskalární veličiny libovolného typuDataValuesloženina hodnoty, časového razítka a stavového kóduDiagnosticInfodetail 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 open62541 poskytuje otevřenou implementaci OPC UA serveru a klientů uvolněnou pod licencí MPL 2.0 Projekt FreeOpcUa poskytuje otevřenou implementaci OPC UA serveru a klientů uvolněnou pod licencí LGPL. UAF
Implementace pro jazyk JavaScript Projekt node-opcua je kompletní implementací OPC UA protokolu pro server i klienta kompletně napsaného v jazyce JavaScript pro Node.js.
Implementace pro jazyk Python Projekt FreeOpcUa poskytuje jak asynchronní implementaci pomocí opcua-asyncio (pro Python 3.7 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 62541 OverviewIDRok vydáníNázevIEC/TR 62541-12016OPC Unified Architecture – Part 1: Overview and ConceptsIEC/TR 62541-22016OPC Unified Architecture – Part 2: Security ModelIEC 62541-32020OPC Unified Architecture – Part 3: Address Space ModelIEC 62541-42020OPC Unified Architecture – Part 4: ServicesIEC 62541-52020OPC Unified Architecture – Part 5: Information ModelIEC 62541-62020OPC Unified Architecture – Part 6: MappingsIEC 62541-72020OPC Unified Architecture – Part 7: ProfilesIEC 62541-82020OPC Unified Architecture – Part 8: Data AccessIEC 62541-92020OPC Unified Architecture – Part 9: Alarms and ConditionsIEC 62541-102020OPC Unified Architecture – Part 10: ProgramsIEC 62541-112020OPC Unified Architecture – Part 11: Historical AccessIEC 62541-122020OPC unified architecture – Part 12: Discovery and global servicesIEC 62541-132020OPC Unified Architecture – Part 13: AggregatesIEC 62541-142020OPC unified architecture – Part 14: PubSubIEC 62541-1002015OPC Unified Architecture – Part 100: Device Interface
Reference
Kategorie:Rozhraní pro programování aplikací Kategorie:Automatizace