home our vendors about us contacts knowledge base english


OPC-ről alapfokon - 2. rész

Füle Sándor, 2002.07.18.

Ha nem látta az előző részt, kattintson ide!

Mire használható?

Az OPC nem más, mint különböző windows-os alkalmazások ("programok") közötti "szabványos" kommunikáció. Lényeges kiemelni hogy alkalmazások közötti, nem pedig eszközök közötti. Jelen pillanatban a világon (egy kivételtől eltekintve) nincs olyan PLC, melyet közvetlenül OPC-n meg lehetne szólítani! Tekintsük hát, hogyan épül fel egy OPC-t alkalmazó összeállítás!

hardveres A jobboldali ábrán egy egyszerű és gyakori séma látható: Egy PC valamilyen módon (soros vonal, Ethernet) kapcsolódik egy PLC-hez. A szakemberek azt mondták, a PLC-vel OPC-n fognak kommunikálni, tehát azt gondolhatnánk, OPC kommunikáció zajlik a köztük levő kábelen. Ez nem így van!

Hogy miért nem, azt akkor láthatjuk, ha a szoftveres elrendezést nézzük, mely alább lesz látható. Figyeljük meg, hogy a PLC továbbra is ugyanazt a cégspecifikus kommunikációt (vagy Profibus DP-t, vagy Modbus Slave-et) beszéli mint OPC-t nem alkalmazó esetekben.

A különbség a PC-n belül van:

a különbség A baloldali ábrán jól látható a lényeg: Míg a "klasszikus" rendszerben a megjelenítőszoftver rendelkezett egy PLC interfész programmal (DLL), amin keresztül közvetlenül kommunikált a PLC-vel, az OPC használatakor a PC-n - a megjelenítőszoftvertől teljesen elkülönülten - fut egy OPC szerver alkalmazás, "aki" átveszi a PLC-vel, annak anyanyelvén való kommunikálás feladatát. Az OPC szerver egy definiált szoftveres felületen bármely olyan szoftvernek kiadja az adatokat, ill fogad utasításokat, amely szakszerűen tud kérdezni ill. parancsolni. Ezek az OPC kliensek.

Ez volt a lényeg,

Több kliens hiszen egy szerver több klienst is kiszolgálhat és egy kliens több szervert is kérdezhet. Ezáltal lehetővé vált, hogy mindenféle - szakszerűen megírt - windows-os alkalmazások a rendszer részévé váljanak. Lehetséges hogy egyik szoftvercégtől vesszük a megjelenítő (HMI) csomagot, a másiktól egy advanced control csomagot (neural, fuzzy, spc...), a harmadiktól az archiváló alkalmazást, a naplózó szoftvert pedig mi magunk írjuk... Az egyszem PLC "fölött" ülő OPC szerver kiszolgál mindenkit.

Ki adja az OPC szervert?

A PLC (és egyéb efféle) gyártók elemi érdeke hogy eszközeiket elérhessék az OPC kliensek. Ezért - ritkábban - saját szoftveres gárdával, vagy - gyakoribb - külső szoftveres cégekkel íratnak OPC szervert. Ezáltal még egy céggel számolni kell, amikor a kommunikációt tervezzük. Az az eset is gyakran előfordul, hogy ugyanahhoz a hardverhez több cég is kínál OPC szervert. Ezek szolgáltatásaikban nagyon különbözőek lehetnek. Szerencsére szoftvereknél gyakran működik a "try and buy" módszer, azaz módunk lehet a szoftvert kipróbálni és utána dönteni annak megvásárlásáról.

Miféle szerverek vannak?

Miként a nyelvtudásnak is vannak különböző fokozatai, úgy az OPC szerverek és kliensek is több kategóiába oszthatóak. Most röviden végigfutjuk, mik léteznek, a következő részben pedig megkezdjük a részletes tárgyalásukat.

OPC Data Access
A legalapvetőbb kommunikációs igények kielégítésére képes szerverek és kliensek az OPC Data Access specifikációnak kell hogy megfeleljenek. Ebben szerepelnek azok az objektumok és eljárások, melyekkel a PLC regisztereit írhatjuk-olvashatjuk, időbélyeget kezelhetünk.

OPC Alarms and Events
A riasztások és események kicsivel többet jelentenek mint a mért- vagy kiadott értékek. Más dolgokat kell velük csinálni. Van több jellemzőjük (aktív-nem aktív, nyugtázott-nem nyugtázott). Ha a felső szinten (a HMI-ben) képezzük az alarmokat, akkor erre nincs szükség. Ebben az esetben azonban sok mindenről le kell mondanunk, ilyen például a pontos időbélyegzés. Ha a megjelenítőszoftver adja az időbélyeget, sokszor nem a mért adattal egy rekordban utazó keletkezési idő kerül naplózásra, hanem az alarm fogadásakori rendszeridő...

OPC Historical Data Access
Miként a neve is mutatja, ez az ajánlás a mért adatok, események archiválásával kapcsolatos területekre fókuszál. Mivel itt adatbázisok kezeléséről van szó, szolgáltatásai hasonlatosak egy adatbázis-kezelőéhez, de annál kevesebb és az automatizálásra specializált szolgáltatásra számíthatunk. (Új archiválandó adat felvétele, tárolt adat kérelme adott időhatárok között, stb...) A helyzet tehát hasonlatos az előző fejezethez: Ha van OPC Data Access kapcsolat, mindent meg lehet az alkalmazásokon belül csinálni. Ha van Historical Data Access is, kevesebb szóval, egyszerűbben csinálhatjuk meg ugyanazokat. (Okos alkalmazások félszóból is megértik egymást...)

OPC Batch Interface
A Batch (szakaszos folyamatok automatizálása) egy külön világ. Nagy szemléletbeli fegyelmet, sok nemzetközi ajánlás és nem utolsósorban :-) az FDA előírásainak betartását igényli. A Batch-ben számos speciális objektumot kell kezelni (recept, riport, stb) ami önmagában is bonyolult rendszer, de még a bizonylati fegyelem is számos feladatot ad. Aki a gyógyszeripart kerüli, annak erre nem lesz szüksége...

Interfészek

Automatizálási Interfész:
Minden szervernek kettő interfésze lehet. (Interfészen itt szoftveres felületet értünk.) Egyik interfész olyan, amelyet a Microsoft Visual Basic-jére optimalizáltak, és csupán a leglényegesebb dolgokat tudja. Azok viszont VB-ből egyszerűen használhatóak, aki már programozott VB-ben, az tíz perc alatt írhat egy progit, ami lekérdezi a PLC adott regisztereit egy OPC szervertől. Ennek a neve (a Microsoft-os szóhasználat miatt) Automatizálási interfész. Ez bennünket - automatizálási szakembereket - ne tévesszen meg, mi mást hívunk automatizálásnak mint Bill Gates. Emlékezzünk: Ő az Excel-t is "automatizálja", amikor utasításokat ad másik progiból neki. Hívhatnánk ezt az interfészt "easy"-nek vagy "light"-nak inkább.

Custom interface
Aki minden szolgáltatást ki akar használni, amit egy OPC szerver kínálni tud, az a Custom Interface-t használja. Ehhez C-ben kell programozni, és sokkal több dologra oda kell figyelni. Természetesen a Custom Interface gyorsabb is. Valamit valamiért... Ennek az interfésznek jobban állna a "professional", vagy a "deepwater" név.

Összefoglalva:

Mielőtt OPC szervert veszünk, járjuk utána, hogy a kiszemelt kliens alkalmazások melyik fajta szerver melyik interfészét használják. Lehet, hogy egyetlen szerver nem is lesz elég. Egy adott OPC fejlesztő cég kínálatából ezután ki kell választanunk azt a szervert mely ezzel az interfésszel rendelkezik, egyéb szolgáltatásai, kezelése, dokumentációja megfelelő!

Ja, és az ár sem mellékes...