introduction to opchome.hit.no/~hansha/documents/control/opc/opc overview.pdf · introduction to...

49
Introduction to OPC Hans-Petter Halvorsen, M.Sc.

Upload: tranhanh

Post on 12-Mar-2018

270 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Introduction to OPChome.hit.no/~hansha/documents/control/opc/OPC Overview.pdf · Introduction to OPC ... • OPC - “Open Process Control”/“ Open Platform Communications

IntroductiontoOPC

Hans-PetterHalvorsen,M.Sc.

Page 2: Introduction to OPChome.hit.no/~hansha/documents/control/opc/OPC Overview.pdf · Introduction to OPC ... • OPC - “Open Process Control”/“ Open Platform Communications

WhatisOPC?• OPC- “OpenProcessControl”/“OpenPlatformCommunications”• Astandardthatdefinesthecommunicationofdatabetweendevicesfromdifferentmanufactures

• RequiresanOPCserverthatcommunicateswiththeOPCclients• OPCallows“plug-and-play”,givesbenefitsasreducesinstallationtimeandtheopportunitytochooseproductsfromdifferentmanufactures

• Differentstandards:“Real-time”data(OPCDA),Historicaldata(OPCHDA),Alarm&Eventdata(OPCAE),etc.

Theory

Page 3: Introduction to OPChome.hit.no/~hansha/documents/control/opc/OPC Overview.pdf · Introduction to OPC ... • OPC - “Open Process Control”/“ Open Platform Communications

OPC-Server

Network

OPC-Client OPC-ClientOPC-Client

Process

ProcessData

DataAcquisitionPLC,PAC,DCS,SCADA

TypicalOPCScenario

Driver

SensorsActuators

Theory

Page 4: Introduction to OPChome.hit.no/~hansha/documents/control/opc/OPC Overview.pdf · Introduction to OPC ... • OPC - “Open Process Control”/“ Open Platform Communications

Theory

Page 5: Introduction to OPChome.hit.no/~hansha/documents/control/opc/OPC Overview.pdf · Introduction to OPC ... • OPC - “Open Process Control”/“ Open Platform Communications

OPCSpecifications• OPCDA(DataAccess)ThemostcommonOPCspecification isOPCDA,whichisusedtoreadandwrite“real-time”data.WhenvendorsrefertoOPCgenerically, theytypicallymeanOPCDA.• OPCHDA(HistoricalDataAccess)• OPCA&E(Alarms&Events)• ...(manyothers)TheseOPCspecificationarebasedontheOLE,COM,andDCOMtechnologiesdevelopedbyMicrosoftfortheMicrosoftWindowsoperatingsystemfamily.Thismakesitcomplicated tomakeitworkinamodernNetwork!TypicallyyouneedaTunneller SoftwareinordertosharetheOPCdatainanetwork(betweenOPCServersandClients)

• OPCUA(UnifiedArchitecture)OPCUAeliminating theneedtouseaMicrosoftWindowsbasedplatformofearlier OPCversions.OPCUAcombinesthefunctionalityoftheexistingOPCinterfaceswithnewtechnologies suchasXMLandWebServices (HTTP,SOAP)

Theory

Page 6: Introduction to OPChome.hit.no/~hansha/documents/control/opc/OPC Overview.pdf · Introduction to OPC ... • OPC - “Open Process Control”/“ Open Platform Communications

References• OPC:https://en.wikipedia.org/wiki/Open_Platform_Communications

• OPCUA:https://en.wikipedia.org/wiki/OPC_Unified_Architecture• OPCFoundation:https://opcfoundation.org/• WhatisOPC?https://opcfoundation.org/about/what-is-opc/• WhatisOPC?- OPCDataHub:http://www.opcdatahub.com/WhatIsOPC.html

• OPCToolboxMATLAB:http://se.mathworks.com/products/opc/• Matrikon:http://www.matrikonopc.com• OPCUA:https://youtu.be/pFfyjpexa2o

Page 7: Introduction to OPChome.hit.no/~hansha/documents/control/opc/OPC Overview.pdf · Introduction to OPC ... • OPC - “Open Process Control”/“ Open Platform Communications

MatrikonOPCSimulationServer

Hans-PetterHalvorsen,M.Sc.

OPCDA

Page 8: Introduction to OPChome.hit.no/~hansha/documents/control/opc/OPC Overview.pdf · Introduction to OPC ... • OPC - “Open Process Control”/“ Open Platform Communications

Matrikon OPCExplorer– ConnecttoServer

1

2

Page 9: Introduction to OPChome.hit.no/~hansha/documents/control/opc/OPC Overview.pdf · Introduction to OPC ... • OPC - “Open Process Control”/“ Open Platform Communications

Matrikon OPCExplorer- AddTags

1

2

3

4

5

Double-click

Finished

UsetheBucketBrigade Items– becausetheycanbeusedforbothreadingandwriting

Page 10: Introduction to OPChome.hit.no/~hansha/documents/control/opc/OPC Overview.pdf · Introduction to OPC ... • OPC - “Open Process Control”/“ Open Platform Communications

MatrikonOPCExplorer(OPCClient)

TheMatrikonOPCExplorerisuseful fortesting.YoucanuseitforwritingandreadingOPCTags

Page 11: Introduction to OPChome.hit.no/~hansha/documents/control/opc/OPC Overview.pdf · Introduction to OPC ... • OPC - “Open Process Control”/“ Open Platform Communications

AliasesInthe“MatrikonOPCServerforSimulation”youcancreateAliases.AliasesishandywhenyouwanttodescribeyourOPCitemsusingmorerealisticnames.

Page 12: Introduction to OPChome.hit.no/~hansha/documents/control/opc/OPC Overview.pdf · Introduction to OPC ... • OPC - “Open Process Control”/“ Open Platform Communications

OPCinLabVIEW

Hans-PetterHalvorsen,M.Sc.OPCDA

Page 13: Introduction to OPChome.hit.no/~hansha/documents/control/opc/OPC Overview.pdf · Introduction to OPC ... • OPC - “Open Process Control”/“ Open Platform Communications

OPCWriteinLabVIEW

Hans-PetterHalvorsen,M.Sc.

OPCDA

Page 14: Introduction to OPChome.hit.no/~hansha/documents/control/opc/OPC Overview.pdf · Introduction to OPC ... • OPC - “Open Process Control”/“ Open Platform Communications

OPCinLabVIEW

TheDataSocketpaletteinLabVIEW:

WriteDatatoOPC

ReadDatafromOPC

OpenConnectiontoOPCServer

CloseConnectiontoOPCServer

BrowseOPCServersandOPCItems

YoucanuseLabVIEWasanOPCclientbyconnecting toanOPCserverthrough aDataSocket connection.

Page 15: Introduction to OPChome.hit.no/~hansha/documents/control/opc/OPC Overview.pdf · Introduction to OPC ... • OPC - “Open Process Control”/“ Open Platform Communications

Write toOPCServerusingLabVIEW

OrspecifyURLdirectly:

1 2 3 4

15

WhileLoop

WhileLoop

UsetheBucketBrigade Items– becausetheycanbeusedforbothreadingandwriting

Page 16: Introduction to OPChome.hit.no/~hansha/documents/control/opc/OPC Overview.pdf · Introduction to OPC ... • OPC - “Open Process Control”/“ Open Platform Communications

UseOPCExplorertoCheckCommunicationRuntheLabVIEWprogramandusetheMatrikonOPCExplorertocheckifthedataiscorrectlywrittentotheOPCserverfromLabVIEW

16

Page 17: Introduction to OPChome.hit.no/~hansha/documents/control/opc/OPC Overview.pdf · Introduction to OPC ... • OPC - “Open Process Control”/“ Open Platform Communications

OPCReadinLabVIEW

Hans-PetterHalvorsen,M.Sc.OPCDA

Page 18: Introduction to OPChome.hit.no/~hansha/documents/control/opc/OPC Overview.pdf · Introduction to OPC ... • OPC - “Open Process Control”/“ Open Platform Communications

Read fromOPCServerusingLabVIEW

1 2 3 4

WhileLoop

WhileLoopOrspecifyURLdirectly:

Page 19: Introduction to OPChome.hit.no/~hansha/documents/control/opc/OPC Overview.pdf · Introduction to OPC ... • OPC - “Open Process Control”/“ Open Platform Communications

OPCUA(UnifiedArchitecture)

Hans-PetterHalvorsen,M.Sc.

TheNextGenerationOPC

Page 20: Introduction to OPChome.hit.no/~hansha/documents/control/opc/OPC Overview.pdf · Introduction to OPC ... • OPC - “Open Process Control”/“ Open Platform Communications

NextGenerationOPC

OPCClassic OPCUA

OPCDAServer

OPCHDAServer

OPCA&EServer

COM/DCOM XML,HTTP,SOAP

Cross-platformWindowsonly Allspecificationscollectedinone(DA,HDA,A&E)

NextGenerationOPC

OPCClient(DCOM)

OPCDAOPCHDA

OPCA&E

OPCUAServer OPCUAClient

Protocols:“UABinary”or“UAXML”

Windows,Linux,Mac,Embedded,VxWorks

Theory

Simpler!!

Page 21: Introduction to OPChome.hit.no/~hansha/documents/control/opc/OPC Overview.pdf · Introduction to OPC ... • OPC - “Open Process Control”/“ Open Platform Communications

NextGenerationOPC

OPCClassicServer OPCClassicClient

OPCUAServer OPCUAClientNetwork/Internet

ToopenDCOMthrough firewallsdemandedalargehole inthefirewall!Impossible torouteoverInternet!

Nohole infirewall(UAXML)orjustasimpleneedlestick(UABinary)isnecessaryEasytorouteoverInternet!

Network

Theory

Page 22: Introduction to OPChome.hit.no/~hansha/documents/control/opc/OPC Overview.pdf · Introduction to OPC ... • OPC - “Open Process Control”/“ Open Platform Communications

ClassicOPCvs.OPCUA Theory

ClassicOPC(DCOM) OPCUA

OPCServer

OPCClient

OPCClient

OPCClient

Windows

Windows

Windows

WindowsOPCUAServer

OPCUAClient

OPCUAClient

ClassicOPCrequiresaMicrosoftWindowsoperatingsystemtoimplementCOM/DCOMserverfunctionality.ByutilizingSOAandWebServices,OPCUAisaplatform-independentsystemthateliminatesthepreviousdependencyonaWindowsoperatingsystem.ByutilizingSOAP/XMLoverHTTP,OPCUAcandeployonavarietyofembeddedsystemsregardlessofwhetherthesystemisageneralpurposeoperatingsystem, suchasWindows,oradeterministicreal-timeoperatingsystem. http://www.ni.com/white-paper/13843/en/

OPCUAClient

Theserver(orclients)canbeanembeddedsystem,LINUX,Windows, etc.

Page 23: Introduction to OPChome.hit.no/~hansha/documents/control/opc/OPC Overview.pdf · Introduction to OPC ... • OPC - “Open Process Control”/“ Open Platform Communications

OPCUA(UnifiedArchitecture)• OPCUAsolvesproblemswithstandard/classicOPC• WorksonlyonWindows• CumbersometouseOPCinanetworkduetoCOM/DCOM

• OPCUAeliminatingtheneedtouseaMicrosoftWindowsbasedplatformofearlierOPCversions.

• OPCUAcombinesthefunctionalityoftheexistingOPCinterfaceswithnewtechnologiessuchasXMLandWebServices(HTTP,SOAP)

• Cross-platform• NodedicatedOPCServerisnolongernecessarybecausetheservercanrunonanembeddedsystem

Theory

Page 24: Introduction to OPChome.hit.no/~hansha/documents/control/opc/OPC Overview.pdf · Introduction to OPC ... • OPC - “Open Process Control”/“ Open Platform Communications

OPCUA(UnifiedArchitecture)• OPCUAsupportstwoprotocols.– “UABinary”protocolopc.tcp://ServerThisusesasimplebinaryprotocol

– “UAXML”protocolhttp://ServerThisusedopenstandardslikeXML,SOAP(->WebService)

• ThisisvisibletoapplicationprogrammersonlyviachangestotheURL.

• OtherwiseOPCUAworkscompletelytransparenttotheAPI.

Theory

Page 25: Introduction to OPChome.hit.no/~hansha/documents/control/opc/OPC Overview.pdf · Introduction to OPC ... • OPC - “Open Process Control”/“ Open Platform Communications

OPCUA(UnifiedArchitecture)Theory

Page 26: Introduction to OPChome.hit.no/~hansha/documents/control/opc/OPC Overview.pdf · Introduction to OPC ... • OPC - “Open Process Control”/“ Open Platform Communications

OPCUASecurity Theory

• OPCUArequireshandshakingbetweenclientsandserversusingX.509Webstandardcertificatesforauthenticationbeforetheyareabletotalkwithoneanother.

• Tocommunicatebetweentheserverandclient,theusercanchoosefromthreekindsofmessagingmodes:None,Sign,SignandEncrypt.

• OPCUAcancommunicatethroughanystandardHTTPorUATCPport.Throughthisstandardization,OPCUAcanconnectsecurelyoveraVPNandthroughfirewallstoallowseamless,remoteclient-to-serverconnectivity. http://www.ni.com/white-paper/13843/en/

Oneofthemostimportantbenefitsofeliminating therelianceonCOM/DCOMtechnology istheexpandedsecurityfeatures.

Page 27: Introduction to OPChome.hit.no/~hansha/documents/control/opc/OPC Overview.pdf · Introduction to OPC ... • OPC - “Open Process Control”/“ Open Platform Communications

ClassicOPCandOPCUACompatibility Theory

http://www.ni.com/white-paper/13843/en/

ClassicOPCCOM-basedClientsrequireaUAProxytocommunicatewithUAServers:

ClassicOPCCOM-basedServersrequireUAWrapperstointeractwithUAClients:

Becauseoftheshiftindatacommunicationtechnology, theOPCUAprotocolisnot inherentlybackwardscompatiblewithClassicOPCdataaccess(DA)models!!

Page 28: Introduction to OPChome.hit.no/~hansha/documents/control/opc/OPC Overview.pdf · Introduction to OPC ... • OPC - “Open Process Control”/“ Open Platform Communications

OPCUAinLabVIEW

Note!Youneed toinstallthe“LabVIEWDSCModule”orthe“LabVIEWReal-Time

Module”

http://zone.ni.com/reference/en-XX/help/371618J-01/TOC9.htm

DSC– DataloggingandSupervisoryControl

Page 29: Introduction to OPChome.hit.no/~hansha/documents/control/opc/OPC Overview.pdf · Introduction to OPC ... • OPC - “Open Process Control”/“ Open Platform Communications

OPCUAServerExampleinLabVIEW

29

Page 30: Introduction to OPChome.hit.no/~hansha/documents/control/opc/OPC Overview.pdf · Introduction to OPC ... • OPC - “Open Process Control”/“ Open Platform Communications

OPCUAClient(WriteValues)

ExampleinLabVIEW

30

Page 31: Introduction to OPChome.hit.no/~hansha/documents/control/opc/OPC Overview.pdf · Introduction to OPC ... • OPC - “Open Process Control”/“ Open Platform Communications

OPCUAClient(ReadValues)

ExampleinLabVIEW

31

Page 32: Introduction to OPChome.hit.no/~hansha/documents/control/opc/OPC Overview.pdf · Introduction to OPC ... • OPC - “Open Process Control”/“ Open Platform Communications

32

Thisisamorecomplexexamplewhereyoureaddataontheclientonlywhenthevalueontheserverischanged

Inthisexamplewejustsubscribeforoneitem,thebenefitswiththesubscription modelwillincreaseifwesubscribe formanyitems

OPCUAClientwithSubscription

Page 33: Introduction to OPChome.hit.no/~hansha/documents/control/opc/OPC Overview.pdf · Introduction to OPC ... • OPC - “Open Process Control”/“ Open Platform Communications

OPCinVisualStudio

Hans-PetterHalvorsen,M.Sc.OPCDA

Page 34: Introduction to OPChome.hit.no/~hansha/documents/control/opc/OPC Overview.pdf · Introduction to OPC ... • OPC - “Open Process Control”/“ Open Platform Communications

MeasurementStudio• MeasurementStudioisanadd-ontoVisualStudio.• MeasurementStudioisusedfordevelopmentofmeasurement,controlandmonitoringapplicationsusing.NETandVisualStudio.

• MeasurementStudiohasalibrary(DataSocketlibrary)thatmakesitpossibletocommunicatewithOPCserversthatwewilluseisthislabwork

• DownloadSoftwarehere:http://www.ni.com/academic/download

34

Software

Page 35: Introduction to OPChome.hit.no/~hansha/documents/control/opc/OPC Overview.pdf · Introduction to OPC ... • OPC - “Open Process Control”/“ Open Platform Communications

VisualStudio+MeasurementStudioSelect“NewProject”inVisualStudio:

MakesuretoselecttheDataSocketLibrary

Selectthe“NIWindowsApplication”Template

12

3

4

5

76

8

MeasurementStudio isan“Add-in”forVisualStudiocreatedbyNationalInstruments.

Note!Youdontneedtousethe“MeasurementStudioTemplates”– YoucanuseanordinaryWinFormAppalso!!

Page 36: Introduction to OPChome.hit.no/~hansha/documents/control/opc/OPC Overview.pdf · Introduction to OPC ... • OPC - “Open Process Control”/“ Open Platform Communications

ReadfromOPCServerusingVisualStudio

stringopcUrl;doubleopcValue;

opcUrl ="opc://localhost/Matrikon.OPC.Simulation/Bucket Brigade.Real4";

DataSocketdataSocket =newDataSocket();

if(dataSocket.IsConnected)dataSocket.Disconnect();

dataSocket.Connect(opcUrl, AccessMode.Read);dataSocket.Update();opcValue =Convert.ToDouble(dataSocket.Data.Value);

MakesureyouhaveMeasurementStudio Installed!!

Note!ThisCodeSnippetreadsonlyonevalueonce,youcanusee.g.aTimer inordertoreadvaluesatspecificintervals.

Page 37: Introduction to OPChome.hit.no/~hansha/documents/control/opc/OPC Overview.pdf · Introduction to OPC ... • OPC - “Open Process Control”/“ Open Platform Communications

Timer

publicForm1(){InitializeComponent();

timer1.Start();}

privatevoidtimer1_Tick(object sender, EventArgs e){…//ReadfromOPC…//Scaling…//PlotData

}

TimerEvent:

Initialization:

Properties:

StructureyourCodeproperly!!DefineClassesandMethodswhichyoucanusehere

InVisualStudio youmaywanttouseaTimerinsteadofaWhileLoopinordertoreadvaluesatspecificintervals.

YoumayspecifytheTimerIntervalinthePropertiesWindow

Selectthe“Timer”componentintheToolbox

Double-clickontheTimerobjectinordertocreatetheEvent

2

3

4

1

Page 38: Introduction to OPChome.hit.no/~hansha/documents/control/opc/OPC Overview.pdf · Introduction to OPC ... • OPC - “Open Process Control”/“ Open Platform Communications

TrendingData

…{

waveformGraph.PlotYAppend(analogDataIn);

}

Youmayusethe“WaveformGraph”ControlincludedwithMeasurementStudio

Youonlyneedonelineofcode,e.g.intheTimerEvent:

NameofyourWaveformGraphcontrol NameoftheMethodtouseNameofthevariablewithTemperaturedata

Page 39: Introduction to OPChome.hit.no/~hansha/documents/control/opc/OPC Overview.pdf · Introduction to OPC ... • OPC - “Open Process Control”/“ Open Platform Communications

OPCinMATLAB

Hans-PetterHalvorsen,M.Sc.

MATLABOPCToolbox

Page 40: Introduction to OPChome.hit.no/~hansha/documents/control/opc/OPC Overview.pdf · Introduction to OPC ... • OPC - “Open Process Control”/“ Open Platform Communications

OPCToolbox• UntilMATLABR2015aonlyOPCDAwassupported

• FromMATLABR2015balsoOPCUAissupportred

40

Page 41: Introduction to OPChome.hit.no/~hansha/documents/control/opc/OPC Overview.pdf · Introduction to OPC ... • OPC - “Open Process Control”/“ Open Platform Communications

OPCinMATLAB

Hans-PetterHalvorsen,M.Sc.

MATLABOPCToolbox

OPCDA

Page 42: Introduction to OPChome.hit.no/~hansha/documents/control/opc/OPC Overview.pdf · Introduction to OPC ... • OPC - “Open Process Control”/“ Open Platform Communications

MATLABOPCToolbox

http://se.mathworks.com/products/opc

FormoreinformationabouttheMATLABOPCToolbox:

AcquireDatafromanOPCDataAccessServer(withExamples):http://se.mathworks.com/help/opc/examples/acquire-data-from-an-opc-data-access-server.html?prodcode=OT&language=en

Page 43: Introduction to OPChome.hit.no/~hansha/documents/control/opc/OPC Overview.pdf · Introduction to OPC ... • OPC - “Open Process Control”/“ Open Platform Communications

AcquireDatafromanOPCDataAccessServer(withExamples):http://se.mathworks.com/help/opc/examples/acquire-data-from-an-opc-data-access-server.html?prodcode=OT&language=en

RunthiscommandintheMATLABCommandwindow

Page 44: Introduction to OPChome.hit.no/~hansha/documents/control/opc/OPC Overview.pdf · Introduction to OPC ... • OPC - “Open Process Control”/“ Open Platform Communications

clearclc% Connect to OPC Serverda = opcda('localhost', 'Matrikon.OPC.Simulation.1');connect(da);

% Create Groupgrp = addgroup(da, 'DemoGroup');

%Add TagsitmIDs = {'Random.Real8'};itm = additem(grp, itmIDs);

% Retrieve Datadata = read(grp);opcdata = data.Value

%Clean Updisconnect(da)delete(da)

MATLABOPCDAReadExample1

ThissimpleExamplereadsonlyonevaluefromtheServer

Page 45: Introduction to OPChome.hit.no/~hansha/documents/control/opc/OPC Overview.pdf · Introduction to OPC ... • OPC - “Open Process Control”/“ Open Platform Communications

MATLABOPCDAReadExample2

% OPC Exampleclearclc

% Connect to OPC Serverda = opcda('localhost', 'Matrikon.OPC.Simulation.1');connect(da);

% Create Groupgrp = addgroup(da, 'DemoGroup');

%Add TagsitmIDs = {'Random.Real8'};itm = additem(grp, itmIDs);

% Retrieve DataN=10;for i=1:N

data = read(grp);opcdata(i) = data.Value;pause(2)

end

%Clean Updisconnect(da)delete(da)

plot(opcdata)

ThissimpleExamplereadsvaluesfromtheServer

Page 46: Introduction to OPChome.hit.no/~hansha/documents/control/opc/OPC Overview.pdf · Introduction to OPC ... • OPC - “Open Process Control”/“ Open Platform Communications

MATLABOPCDAReadExample3

clear, clc% Connect to OPC Serverda = opcda('localhost', 'Matrikon.OPC.Simulation.1');connect(da);% Create Groupgrp = addgroup(da, 'DemoGroup');%Add TagsitmIDs = {'Random.Real8'};itm = additem(grp, itmIDs)% Set PropertieslogDuration = 60;logRate = 0.2;numRecords = ceil(logDuration./logRate)grp.UpdateRate = logRate;grp.RecordsToAcquire = numRecords;% Acquire Datastart(grp), wait(grp)% Retrieve Data[logIDs, logVal, logQual, logTime, logEvtTime] = getdata(grp, 'double');% Plot Dataplot(logTime, logVal);axis tightdatetick('x', 'keeplimits')legend(logIDs)%Clean Updisconnect(da)delete(da)

ThissimpleExampleusessomeofthemoreadvancedfeaturesintheMATLABOPCToolbox.NoFor/WhileLoppneeded!

Page 47: Introduction to OPChome.hit.no/~hansha/documents/control/opc/OPC Overview.pdf · Introduction to OPC ... • OPC - “Open Process Control”/“ Open Platform Communications

OPCinaNetwork

Hans-PetterHalvorsen,M.Sc.

SendOPCdatabetweendifferentcomputersinanetworkusingOPCTunnellerSoftware

OPCDA

Page 48: Introduction to OPChome.hit.no/~hansha/documents/control/opc/OPC Overview.pdf · Introduction to OPC ... • OPC - “Open Process Control”/“ Open Platform Communications

OPCinNetwork• OPCusesCOM/DCOM->ComplicatedtomakeitworkinamodernNetwork!!

• Solution:UseanOPCTunnellerSoftware– OPCTunnellerfromMatrikonOPC(30daysfreetrial)– CogentDataHubTunnellingSoftware(Trialsoftwareworksonly1hour,thenneedstoberestarted)

Software

Page 49: Introduction to OPChome.hit.no/~hansha/documents/control/opc/OPC Overview.pdf · Introduction to OPC ... • OPC - “Open Process Control”/“ Open Platform Communications

Hans-PetterHalvorsen,M.Sc.

UniversityCollegeofSoutheastNorwaywww.usn.no

E-mail:[email protected]:http://home.hit.no/~hansha/