OPC
Från Rilpedia
OPC (OLE for process control) är en standard specificerad av OPC foundation för kommunikation mellan olika datorer (inkl. inbäddade system).
Tekniken använder idag DCOM för kommunkationen, vilket binder det till Windows. För närvarande arbetar OPC foundation med att föra över tekniken till Web Services och de kallar detta OPC UA (OPC Unified Architecture). Detta arbete är endast i sitt inledningsskede, och ännu har bara stöd för dataöverföring släppts (OPC XML-DA).
I standarden finns flera olika specifikationer som löser olika problem, vilka nämns nedan.
Innehåll |
OPC-DA - Data Access
OPC-DA är en specifikation som har hand om att skicka data i form av till exempel mätdata eller text från en OPC-server till en OPC-klient. Information på servern kan grupperas av klienter och i grupperna finns dataobjekt. När en klient efterfrågar ett objekt första gången hämtas aktuell data från datakällan (en annan dator eller ett inbäddat system). Då datakällan ofta är långsam används en cache. Till data kopplas också kvalitet på datakällan och en tidsstämpel.
Klienten kan alltid fråga efter data direkt, men den kan även prenumerera på den. Vid prenumeration överför OPC-servern automatisk data med jämna mellanrum eller när den ändrats, utan att prenumeranten behöver hämta den själv. Dessutom kan data som skickas via nätverket antingen skrivas till eller läsas av OPC-servern.
OPC-AE - Alarm & Event
I motsats till OPC-DA, som överför data, kan OPC-AE överföra händelser och larm. Detta innebär att OPC-servern kan göra klienten uppmärksam på om något händer som den måste presentera för användare eller som den måste hantera.
För att en klient ska kunna få meddelande om händelse måste den prenumerera på dessa. Klienten kan då ange filter på till exempel typ av händelse, händelsekategori, allvarlighet, processområde eller händelsekälla.
OPC-DX - Data eXchange
OPC-DX överför data mellan servrar (jämför med OPC-DA där data skickas mellan klient och server). Den bygger upp ett träd med alla OPC-DX-servrar som finns på nätet med alla deras datagrupper och tillhörande data. Servrar kan därför hämta data från en annan server.
OPC-HDA - Historical Data
OPC-HDA överför som namnet antyder historiska data till klienter som begär det. Detta kan ske genom att en klient anger ett visst tidsspann och vad för typ av data som den är intresserad av. Dessutom kan vissa implementationer av OPC-HDA göra aggregationer, dvs. bearbeta data som ligger i givet tidsspann. Bl.a. finns möjligheter att summera alla värden eller räkna ut medelvärdet. Hämtning av data är inte beroende av någon övrig OPC-specifikation utan kan implementeras helt fristående.
Complex data
OPC-DA kan i sitt grundutförande endast hantera ett dataobjekt åt gången. Ska flera olika associerade dataobjekt hämtas finns risken att ett visst objekts innehåll ändras under tiden ett annan relaterat objekt hämtas. Därför har specifikationen för Complex Data utvecklats, då denna möjliggör hämtning av hela datastrukturer på en och samma gång. Med denna teknik går det att bygga upp flerdimensionella strukturer med data som kan skickas i ett gemensamt paket.
Batch
Batch möjliggör ett utbyte av information mellan olika delar i en hel organisation. Det går att lägga in en anläggnings alla delar i en hierarkisk struktur för att sedan få ut information i realtid om till exempel var en maskin står och vilken tillgänglighet den har haft.
Common
Denna specifikation är egentligen ingen egen specifikation. Den innehåller de delar som är gemensamma för samtliga specifikationer.
Security
Säkerheten i OPC är i äldre specifikationer direkt kopplade till DCOM. På senare tid, mycket på grund av införandet av XML, har säkerhetsaspekten lagts över till överföringen via nätverket genom att till exempel utnyttja tekniker som VPN (Virtual Private Network) eller HTTPS (krypterad HTTP).
Commands
För OPC-DA går det endast köra read och write och inget annat. Om behov finns för att utöka funktionaliteten på servern erbjuder Commands möjlighet att ha funktioner på servern som klienter kan köra. Dessa går antingen köra synkrona (som vanliga metodanrop) eller asynkrona (svaret returneras när funktionen är färdig).