POVEZAVA MERILNIH SIGNALOV IN MATLABA PREKO PROCESNEGA STREŽNIKA s. Peršin, B. Tovornik, N. Muškinja Univerza v Mariboru, Fakulteta za elektrotehniko, računalništvo in informatiko, Maribor, Slovenija Ključne besede: okolja industrijska, okolja raziskovalna, procesi proizvodni, avtomatizacija, signali merilni, strežniki procesni, PLC krmilniki logični pro-gramirljivi, povezave, MATtAB oprema programska simulacijska, SCADA krmiljenje nadzorno in zajemanje podatkov, merjenje, optimiranje komunikacije v času realnem, OLE vgraditev in povezava objektov, OPC OLE krmiljenja procesov Izvleček: Sodobni sistemi za avtomatizacijo proizvodniln procesov uporabljajo industrijsko testirane, na tržišču dostopne ter uveljavljene proizvode kot so senzorji, aktuatorji, krmilniki (PLC - Programmable Logic Controller) in SCADA (Supervisory Control and Data Acquisition) sistemi Le-ti zagotavljajo zanesljivo m varno delovanje proizvodnega procesa. Takšni sistemi so zelo omejeni glede na možnosti raziskav, optimizacije, testiranja in simulacije kar pa omogočajo sistemi, znani iz raziskovalnega okolja. Povezava takega industrijskega okolja s prožnim, a nestabilnim raziskovalnim okoljem je osnovni cilj predstavljenega dela. Za povezavo industrijskega sistema z Matlab/Simulink programom je bila uporabljena OPC tetinologija, ki je pogosto sestavni del sistemov industrijske avtomatizacije in je tam že dobro uveljavljena. OPC je okrajšava za OLE tor Process Control, kjer je OLE oznaka za Microsoftovo tehnologijo Object Linking and Embedding. Uporaba Matlab simulacijskega programa in njegovih orodij omogoča veliko prožnost pri raziskavah analizah m optimizaciji, kar v današnjih SCADA sistemih ni zagotovljeno. V testnem sistemu je strežnik zajemal podatke iz krmilnika, preveril kvaliteto in morebitno spremembo vrednosti podatkov ter jih posredoval odjemalcu, ki jih je po obdelavi poslal nazaj po isti poti. Za namene "worst case" testiranj se je uporabilo sinhrono branje, kjer se je vsak podatek vsakič spremenil, na istem računalniku pa so tekli en strežnik, dva odjemalca, SCADA ter Matlab program Bistvena prednost predstavljene rešitve je integracija računskih, simulacijskih ter grafičnih zmogljivosti Matlaba z robustnostjo industrijskega sistema' Rešitev je univerzalna, omogoča sprotno obdelavo podatkov in dostop do podatkov drugim programskim orodjem, ne da bi pri tem fizično posegali v industrijski sistem za avtomatizacijo. h- a Connection Between Measurement Signals and MATLAB Using Process Server Key words; industrial environments, research environments, fabrication processes, automation, measurement signals, process servers PLC Programmable Logic Controllers, connections, MATU\B simulation software , MATrix L^Boratory simulation software, SCADA, Supervisory Control'And Data Acquisition, measurements, optimization, real-time communications, OLE, Object Linking and Embedding, OPC, OLE for Process Control Object Linking and Embedding for Process Control ' Abstract: The automation of processes has reached the point where one cannot go without applying sensors, actuators, PLC (Programmable Logic Contro lere) and SCADA (Supervisory Control and Data Acquisition) systems that enable acquisition of large quantities of data. The process automation is particularly important in isolated rooms where physical presence of humans is undesirable, as for example in the production of electronic components or in the phjmaceutical industry. Such manufacturing systems operate with various degrees of success and are not modified very often Every alternation of any industnal process is followed by extensive documenting, testing and validating of the new system. Ouite often the production must be stopped which gives a rise to substantial costs for entire operation. On the other hand there are a number of research laboratories where various approache^are constantly a subject to change, development and testing in order to bring about improvements. The research work often implements mathematical and simulation software such as Matlab (Matrix Uboratory) which enables solving of complex mathematical operations, simulations optimisations etc However, their mam disadvantage is that they are substantially limited in their connectivity to other systems and applications. Manufacturing processes include many procedures where large amounts of data could be processed, examined and optimised: regulation loops, optimal production structuring calculation of Illumination in vanous points, etc. The equipment that is used in the industry, such as PLC and SCADA, is not suitable for performing such data processing. Instead, Matlab would be much better if only it were possible to feed it with real-time data from the manufacturing process By appiyinq this technology a wide spectrum of possibilities for testing and analysis emerges which can contribute to the improvement of the process The systerri Ln also k ' procedure. In this configuration the manufacturing process would be running independently whereas Matlab would be performing in parallel all the necessary mathematical operations, the results of which would be fed back into the process There TuTnof ren '^^^^^ Connections: the problem of Connectivity and the difficulty of presenting a universal solution enough that would not require altenng our existent manufactunng systems, especially when new research requires updating or changing our existing configurations One possib e solution wou d be to use the OPC standard and the associated technology OPC means OLE for Process Co^ Embedding) and represents an international industrial standard (Specifications v.t.Oa) that is based on the Microsoffs OLE/COM/DCOM technoloqy rt provides a unified communication interface based on Plug&Play between various devices of process control. The OPC interface thus belongs to one o he new technologies app ed to connecting and interfacing systems of process control which is based on the component technology The mal ple^ hes of the component technology can be summarised by the properties of OLE automation which enable that one application can Ltain ^o^from o her applications, the nking of both applications results in data being simultaneously updated in both, and non-nLe objects can be exec eZ changed inside the application where they are embedded. In the usual systems of process control each SCADA software ha to have its own p^e o with me I/O unit. In other words^each SCADA system needs drivers in order to be able to communicate with other devices and each device connected 0 the system must have its own driver. If a system is connected to another SCADA system then this system needs its own drivers again for allt^rdevSes nun-^be of SCADA packets. The result is a very high number and thus an inelegant solution. As a solution, the OPC creates a 'software bus' where applications only need to be aware on how to access data on the OPC. Testing system consisted of an OPC server which captured data from the controller it oheoked the data's quality, evaluated it for a change of state, and then fo^arded it to the OPC client who returned rt along the same route once it was processed. For the 'worst case' scenario synchronous reading was used where each piece of data was changed every time and the sarr^e computer ran a server two clients, as well as the SCADA and Matlab software. The measurements performed show that due to the fixed dead time the worst results are obtained when transferring a single piece of data only. The results show a rate of approximately 1000 pieces of data per second can be expected with large quantities of data. The process data is available to Matlab virtually at the same time as to the SCADA system which makes the application suitable for industrial environments. The proposed solution is especially suitable for manufactunng processes with slower rates of change since here it can also be used for process control. Main advantages of proposed solution are the integration of the numerical, computational and graphics powers of MATU\B® with the robustness of industrial system, universality, on-line data processing and accessibility to other software programs, without any physical connection or disturbance of the manufacture automation system. 1. Uvod Proizvodnja je dandanes avtomatizirana do te mere, da si je več ne znamo predstavljati brez obilice senzorjev, aktu-atorjev, krmilnikov (PLC - Programmable Logic Controller) ter SCADA (Supervisory Control and Data Acqusition) sistemov /12/, ki omogočajo veliko število informacij. Prav posebej visok nivo avtomatizacije je v procesih, ki potekajo v t. i. čistih prostorih, v katerih je fizična prisotnost ljudi nezaželjena, kot je to primer pri proizvodnji elektronskih komponent /21/ ali zdravil Ti sistemi v proizvodnih procesih bolj ali manj uspešno delujejo in se predvsem ne spreminjajo prepogosto /19/. Vsak poseg v proizvodni proces je namreč povezan vsaj z obširnim dokumentiranjem, testiranjem ter validiranjem, tudi s strani certifikaci-jskih organizacij, kot sta npr ISO (International Standard Organization) ter FDA (Food and Drug Administration), če ne tudi z zaustavitvijo proizvodnje, kar ima za posledico velike skupne stroške posega /20/. Na drugi strani pa je svet raziskovalnih laboratorijev, ki je podvržen nenehnim spremembam, razvoju ter testiranjem različnih pristopov v smeri izboljšav. V raziskovalno okolje so velikokrat vključeni tudi matematični in simulacijski programi kot je Matlab (Matrix Laboratory), ki omogoča reševanje zahtevnih matematičnih operacij, simulacije, optimizacije itd., vendar imajo omejene možnosti povezovanja /18/. V proizvodnem procesu je veliko postopkov s podatki, ki so zanimivi za obdelavo, raziskave ter morebitno optimi-ranje: od regulacijskih zank, optimalnega razvrščanja proizvodnje pa do npr izračunavanja osvetlitve v posameznih točkah. Zaradi velike matematične zahtevnosti omenjenega že instalirana oprema (krmilniki in SCADA) za tovrstne operacije ni primerna, primeren pa je Matlab /10/, v katerega je potrebno sprotno prenašati podatke iz proizvodnega procesa. Z uporabo takšne rešitve se kaže širok spekter možnosti testiranj ter analiz v smeri izboljšanja delovanja procesa, kar se lahko nadgradi tudi s sprotnim paralelnim optimizacijskim postopkom, kjer industrijski proces teče samostojno, hkrati pa se paralelno v Matlabu izvajajo potrebne matematične operacije, katerih rezultati se sporočajo nazaj v proces. Pri implementiranju On-line povezave je zraven problema povezljivosti prisotna tudi problematika univerzalnosti rešitve ter predvsem nesprem-injanja obstoječega industrijskega sistema tudi v primeru morebitnih dopolnitev ali sprememb na raziskovalnem nivoju. Možna rešitev je uporaba OPC standarda /22/ in tehnologije, ki je s tem povezana. OPC je okrajšava za OLE for Process Control, kjer je OLE oznaka za Microsoftovo tehnologijo Object Linking and Embedding.V članku je predstavljena rešitev, v kateri se znotraj okolja Matlab uporabi OPC odjemalec, ki izmenjuje podatke z že obstoječim OPC strežnikom na nivoju povezave PLC-SCADA, kar je prikazano na sliki 1. OPC se zmeraj bolj uporablja v sistemih industrijske avtomatizacije /12/ /14//1 //3//2/, prav razširjenost uporabe pa daje rešitvi potrebno univerzalnost. Industrijsko okolje Raziskovalno okolje Slika 1: Uporaba OPC za povezavo industrijskega in raziskovalnega okolja V naslednjih poglavjih bo predstavljeno nekaj pogosteje uporabljanih tehnik za On-line matematično analizo procesnih podatkov, povzete glavne lastnosti OPC in predstavljena zasnova in izvedba povezave Matlaba z industrijskim krmilnikom, skupaj z rezultati eksperimenta. V zaključku je podana analiza z povzetkom glavnih lastnosti takega pristopa, podane pa so tudi smernice za nadaljevanje dela. 2. Nekaj do sedaj uporabljanih rešitev za On-line matematično analizo procesnih podatkov Uporaba možnosti vključevanja lastnih programov v enem višjih programskih jezikov, kar ponuja večina SCADA programov, je na prvi pogled enostavna rešitev za dodatno matematično obdelavo. Težave se lahko pojavijo pri programiranju zahtevnih matematičnih operacij. Ena pogosteje uporabljanih rešitev za zajem realnih podatkov v Matlab je uporaba posebnih PC I/O modulov/4/, /9/, ki jih podpira Matlab (npr. Burr-Brown ali National Instruments). Prednost takšne povezave je zraven produktne usklajenosti predvsem hitrost operiranja z podatki, ki je lahko manjša od 1 ms/podatek. Vendar pa gre za tipično laboratorijsko opremo, ki se jo v proizvodnih procesih sreča le redko, kar pomeni zraven nakupa strojne opreme še težave pri implementiranju le-te v sam proizvodni proces. Takšno kartico je potrebno fizično povezati na obstoječo senzoriko in sicer vzporedno ali zaporedno s krmilniško opremo, kar pomeni že omenjene težave v povezavi s stroški zaustavitve proizvodnje, dokumentiranjem tervalid-iranjem. Poudariti je potrebno, da je težav z Izvedbo takšnega posega ni, ko so cilji ter rezultati posodobitve natančno definirani, do česar pa je zopet težko priti brez Online testiranj ter prezentiranja rezultatov na dotičnem procesu. Podobna je rešitev z uporabo merilnih instrumentov z možnostjo GPIB ali VISA komunikacije, ki jo podpira tudi Matlab. V Matlabu je omogočen dostop do serijskega vodila, kar ponuja možnost Izdelave lastnega API (Application Programming Interface), ki »prisluškuje« prometu po mreži krmilnikov in po potrebi tudi pošilja podatke. Prednost takšne ideje je, da ne poseže direktno v proces. Pomanjkljivost je časovno zahtevna Izdelava vmesnika za industrijsko vodilo ter neuniverzalnost rešitve /10/. Za obravnavano problematiko so se rešitve zmeraj bolj nagibale proti programskim rešitvam, ki ponujajo bolj izmenjavo podatkov kot pa dodatno zajemanje podatkov, saj se meritve tako ali tako kontinuirano opravljajo za potrebe krmilnikov in SCADA in zato ni potrebno podvajanje. Najenostavnejša izmenjava podatkov je mogoča preko ASCII datoteke, v katero vpisujeta oba, SCADA in Matlab. Rešitev je v omejenem obsegu univerzalna, vendar so potrebni posegi v SCADA program, pa tudi prenos ni hiter. S pomočjo OLE (Object Linking and Embedding) je mogoča povezava Matlaba z MS Excelom, kar omogoča standardni MatlabovToolbox Excel Unk. Excel podpira DDE (Dynamic Data Exchange), kl ga podpirajo tudi SCADA sistemi, kar ponuja možnost povezave, ki je med bolj univerzalnimi, vendar se DDE na področju procesnega vodenja nikoli ni povsem uveljavil zaradi neučinkovitosti in nezanesljivosti pri prenašanju velikih količin podatkov/5/. Dodatna težava omenjenega pristopa je potreben poseg v SCADA sistem, iz katerega je potrebno pošiljati DDE podatke (ob predpostavki, da SCADA ne bazira na DDE). Tak poseg pomeni spremembo funkcionalnosti in s tem potrebo po validacijskem postopku. Uporaba OPC (OLE for Process Control) za izmenjavo podatkov med Matlabom In industrijskim procesom predstavlja logično nadaljevanje predstavljenih tehnik In je opisana v nadaljevanju. 3. OPC 3.1. Uvod Za kratico OPC se skriva ime OLE for Process Control (OLE - Object Linking and Embedding) In predstavlja mednarodni industrijski standard (specifikacija vl.Oa), kl temelji na Microsoftovi OLE/COM/DCOM tehnologiji In zagotavlja skupen komunikacijski plug&play vmesnik med različnimi napravami na področju procesnega vodenja. OPC vmesnik je ena izmed novih tehnologij pri povezovanju in komunikaciji v sistemih procesnega vodenja, ki temelji na kom-ponentni tehnologiji. Osnovna načela komponentne tehnologije se lahko opišejo s principi OLE avtomatizacije, ki določajo možnost, da ena aplikacija vsebuje objekt iz druge aplikacije, da preko povezovanja prihaja do osveževanja podatkov med njima ter da je možno objekte spreminjati in poganjati znotraj aplikacije, kijih vsebuje. 3.2. Problem povezljivosti v sistemih procesnega vodenja v običajnih sistemih procesnega vodenja potrebuje vsaka SCADA programska oprema lasten kos programske kode za komunikacijo z jedrom I/O gonilnika oz. tistim delom programske kode, ki zna komunicirati z I/O enoto /14/. Če se poenostavi: vsak SCADA sistem potrebuje za komunikacijo z napravami gonilnike, ki jih je toliko, kot je naprav priključenih na sistem. Če se sistem povezuje z drugim SCADA sistemom, potrebuje ta sistem zopet svoje gonilnike za vse naprave s katerimi bo komuniciral in ki so priključene na ta sistem. Izračuna se lahko, koliko različnih gonilnikov je potrebno, tako da se pomnoži število I/O enot s številom SCADA paketov; rezultat pa je zelo visoka številka ter nepraktična rešitev. Tovrste povezave SCADA sistemov v celoto se zato izvedejo večinoma le znotraj istih proizvajalcev procesne in programske opreme (Siemens, GE, Omron...). OPC vmesnik se v kos programske kode za komunikacijo z jedrom I/O gonilnikov ne poglablja, saj se z njimi v večini primerov ukvarjajo protokoli na nižjem nivoju kot so Field-Bus, DeviceNet, Profibus, LonWorks/11/. Problem je, da vsak gonilnik uporablja svoj vmesnik za komunikacijo s periferno napravo oziroma aplikacijo, kar onemogoči več aplikacijam hkrati komunicirati z isto periferno napravo. OPC pa v nasprotju z opisanim ustvari t.i. programsko vodilo (»software bus«), kjer morajo aplikacije, oz. programerji aplikacij, vedeti samo kako dostopati do podatkov na OPC programskem vodilu, ki jih posredujejo periferne naprave. Aplikacije so tako preprostejše, manjše in enostavnejše za uporabo. Gonilniki perifernih naprav (OPC strežniki) morajo tako samo znati prenašati informacije Iz perifernih naprav na OPC vodilo v določenem formatu. Vendar univerzalnost prenosa podatkov ni edina prednost, ki jo ponuja OPC vmesnik. Prvotno namenjen reševanju problematike I/O gonilnikov, se je OPC vmesnik izkazal dovolj fleksibilen, da se poleg povezovanja perifernih naprav s SCADA sistemi uporablja tudi pri povezovanju z aplikacijami »višje navzgor« vse do sistemov poslovnega odločanja. 3.3. Tehnologija OPC vmesnika Povezovanje z OPC vmesnikom se vrši s pomočjo programskih vmesnikov, ki temeljijo na COM (Component Object Model) tehnologiji, različna vodila, kotstaFieIdbusin Profi-bus, pa se ukvarjajo s fizično in mrežno povezavo. COM je Microsoftova osnova za pisanje APl-jev (Aplication Programming Interface). Ob upoštevanju, da je zelo široko uporabljena, omogoča tudi zelo dobro navpično povezovanje, kjer je potrebno povezati OPC strežnik ter OPC odjemalec, ki je običajno že integriran v samem SCADA sistemu. To vključuje tudi DCOM tehnologija (Distribuirani COM), ki omogoča ustvarjanje aplikacij, ki temeljijo na mrežnem povezovanju. Še najbližje takšni strukturi prenosa podatkov se je približal DDE vmesnik, vendar se na področju procesnega vodenja nikoli ni povsem uveljavil zaradi neučinkovitosti in nezanesljivosti pri prenašanju velikih količin podatkov. Mnogi proizvajalci programske opreme so raje uporabljali lastne APl-je, kot pa DDE vmesnik za prenos procesnih podatkov iz periferne enote v programsko opremo ali iz ene v drugo programsko opremo. OPC je dovolj fleksibilen za delovanje v različnih plasteh sistemov, kot tudi dovolj dober za uporabo preko mreže. Učinkovitost OPC vmesnika je zagotovljena, saj lahko le-ta prenaša na stotine in tisoče podatkov z eno transakcijo, kar DDE ne omogoča. Vsaka transakcija lahko vključuje še mnogo različnih spremenljivk. Tako je vsaka transakcija OPC vmesnika sestavljena iz podatka, časovne znamke podatka ter informacije o kvaliteti podatka. Z DDE vmesnikom bi se zato potrebovale tri transakcije. OPC strežniki so lahko integrirani v samem procesu, lahko so lokalni (Local) ali pa so daljinski (Remote). Glede na učinkovitost prenosa podatkov je zelo pomembno kje se nahaja OPC strežnik, saj omogoča v prvem primeru (v procesu) milijon transakcij na sekundo, v drugem (Local) okoli tisoč in v tretjem (Remote) okoli sto. Ponujena je tudi možnost, da lahko proizvajalci oz. programerji ustvarijo in/ali nadgradijo enostaven in učinkovit gonilnik, ki podpira delovanje s perifernimi napravami ne glede na proizvajalca. S tem je omogočeno, da OPC strežnik univerzalno prenaša real-time podatke procesnih spremenljivk kot so temperatura, tlak, pretok, pozicija, hitrost, itd. Zajem podatkov je možno še poenostaviti, saj OPC aplikacija dovoljuje definiranje ene ali več »skupin« (Groups), v katerih se potem nadzirajo posamezne želene spremenljivke. OPC odjemalec, ki je odjemalec podatkov iz OPC vodila in posrednik podatkov v SCADA sistem lahko potem izvaja sinhrono ali asinhrono branje podatkov želenih spremenljivk v skupini. Poudarjene funkcije pri povezovanju in komunikaciji z OPC vmesnikom so zraven on-line dostopa do podatkov (Online Data Access) še upravljanje z alarmi in dogodki (Alarm and Event Handling), beleženje podatkov (Historical Data Access), zaščita dostopa (Security) in prenos podatkov pri šaržnih procesih (Batch). Zadnji dve specifikaciji sta še v fazi dogovorov, razvoja in standardizacije, v fazi zaključnih dogovorov pa so specifikacije za področje OPC XML ter nova specifikacija OPC Data Access 3.0 /23/. 4. Izveden eksperiment Z matematičnim orodjem Matlab smo v okolju Simulink zgradili testno okolje za eksperiment, katerega cilj je bil realizirati On-line prenos procesnih podatkov v Matlab iz klasičnega industrijskega krmilnika (slika 2). Zajem podatkov v Matlab je sicer mogoč s pomočjo posebnih I/O računalniških kartic, kar pa je rešitev, ki večinoma v realnih industrijskih sistemih ni mogoča. Razlogi tičijo v že instalirani opremi, (ne)robustnosti, internih standardih, itd. V tovarniškem okolju je uporaba industrijskega krmilnika in SCADA sistema največkrat edina možnost. Po drugi strani pa je programski paket Matlab s Simulinkom zelo močno matematično orodje, ki omogoča boljšo matematično obdelavo podatkov kot katerikoli SCADA sistem. Zato je smiselno, da se ga vključi v sisteme procesnega vodenja. ssjf.^ OPC odjemalec SCADA OPC odjemaloc Matlab Slika 2: Testno okolje za eksperiment Kot tipičen predstavnik industrijskih krmilnikov je bil porabljen krmilnik S7-414-2DP proizvajalca Siemens. Namen predstavljene rešitve je branje in vpisovanje on-line procesnih podatkov iz krmilnika v Matlab. Za programiranje krmilnika je bil uporabljen programski paket Simatic STEP7, povezava z računalnikom pa je potekala preko vmesnika MPI/RS 232 (Multi Point Interface), kjer je bila hitrost omejena na 19 200 bps. Še boljše rezultate pri prenosu podatkov bi se lahko doseglo z uporabo Profibus vodila, kjer je hitrost prenosa bistveno višja. Za programsko zajemanje podatkov je bil uporabljen program KEPServerEX OPC strežnik neodvisnega proizvajalca KepWare. Potrebno je bilo ustvariti kanal po katerem poteka komunikacija, izbrati napravo s katere se zajema podatke ter določiti skupino spremenljivk, ki se jih naj nadzoruje. S programom OPC Quick Client istega proizvajalca je možno preklopiti OPC strežnik v monitoring način in tako vnaprej preveriti, če OPC povezava oziroma komunikacija deluje. Za OPC odjemalec je bil uporabljen OPC Client for Matlab, ki omogoča komunikacijo med OPC in Matlab-om. Gre za nekaj dodatnih ukazov, ki so na razpolago v okolju Matlab in omogočajo povezavo na katerikoli OPC strežnik. Za konfiguracijo tega programa je potrebno vpisati določene ukaze v komandno okno programa Matlab, kot je prikazano na sliki 3 za primer komunikacije z enim vhodom in enim izhodom. i-O; while(i==0); hr=mxOPC('open' , 'KEPware.KEPServerEx.V4', 'iocalhost',10); mode=mxOPC ( ' readtnode ' , ' cache '} ; hr^mxOPC('Setdoublecache' , 'Channell.Devicel.Groupl.analog vhl',1,0); hr=mxOPC('setdoublecache', 'Channell.Devicel.Groupl.analog izhl',1,0); hr=mxOPC('Startdoublenotify' , 'Channell.Devicel.Groupl.analog_vhl'); hr=raxOPC ( ' Startdoublenot if y ' , 'Channell. Devicel. Groupl . analogni zhl ') ; hr=mxOPC('readcache'); hr=mxOPC('writecache ' ) ; i-i+1; end Slika 3: Primer programa v Matlabu za l