Vous êtes sur la page 1sur 36

Master Pro ASE SMaRT

Sytmes Mobiles Automatiss et Rseaux de Terrain

SUPERVISION
Serveurs OPC

Cours Supervision Serveur OPC - Pierre Bonnet

Pierre BONNET
Cours Supervision Serveur OPC - Pierre Bonnet

SERVEURS OPC

OPC signifie Object Linking and Embedding for Process Control .


La norme OPC est maintenue depuis 1997 par la fondation OPC qui assure sa promotion. La fondation re roupe au!ourd"#ui plus de 22$ mem%res dont les plus rands noms de l"informatique industrielle. &iff'rents roupes de travail sont a(tifs en son sein et travaillent au) futures am'liorations et 'volutions des sp'(ifi(ations.
Sites de rfrence : http: !!!.opcfo"ndation.org http: !!!.opcconnect.com
Cours Supervision Serveur OPC - Pierre Bonnet

SERVEURS OPC
+uelques mem%res de la fondation OPC ,a%ri(ants d-automates . Siemens/ S(#neider/ 0o(12ell / Omron/ 3itsu%is#i/ P#eni) Conta(t/ Pil4/ 5BB 6. ,a%ri(ants d-automates sp'(ialis's . La(roi) Sofrel / 789/ S(#neider :t'l' estion;/ <diteurs de superviseurs .5real/ 5r( 8nformatique/ Codra/ *C< 8ndustr=/ 8nvens=s/ 8(oni(s/ ... Serveurs>Outils OPC .?ep2are/ ?assl/ 3atri1on/ 8nte ration O%!e(ts/ @eniop/

Cours Supervision Serveur OPC - Pierre Bonnet

SERVEURS OPC Objectifs d" standard OP#


B Standardiser les '(#an es de flu) entre 'quipements #'t'ro Cnes (ommuni(ants. B Limiter la prolif'ration des proto(oles B ,a(iliter la maintenan(e des (ommuni(ations B P'renniser les installations B &onner le (#oi) des fournisseurs au) utilisateurs B Permettre au) e)ploitants de (e (on(entrer sur leur m'tier.

Cours Supervision Serveur OPC - Pierre Bonnet

SERVEURS OPC Str"ct"re globale sans OP#

Source: 4CE Industry

Cours Supervision Serveur OPC - Pierre Bonnet

SERVEURS OPC Sans OP#

Conflits dE"a((Cs

deu) lo i(iels ne peuvent pas a(('der simultan'ment F la mGme ressour(e mat'rielle

8n(ompati%ilit' entre diff'rents vendeurs

des ressour(es mat'rielles peuvent ne pas Gtre pas support'es par (ertains lo i(iels

<volutions mat'rielles diffi(iles

une 'volution des sp'(ifi(ations dE"un mat'riel peut %loquer le fon(tionnement dE"un lo i(iel qui devra Gtre r''(rit

&upli(ation des efforts de d'veloppement

(#aque lo i(iel doit sE"interfa(er ave( (#aque mat'riel

Cours Supervision Serveur OPC - Pierre Bonnet

SERVEURS OPC $%ec OP#

Source: 4CE Industry

Cours Supervision Serveur OPC - Pierre Bonnet

SERVEURS OPC &"e comprend la spcification OP# '


- une sp'(ifi(ation (ommune F tous les serveurs OPC Common et OPC Se(urit= - lE"a((Cs au) donn'es en temps r'el OPC &ata 5((ess . - la estion des alarmes et 'v'nements OPC 5larm I <vent. - la (onstru(tion dE"#istoriques OPC Jistori(al &ata 5((ess - les traitements par lot OPC Bat(#

OPC est une sp'(ifi(ation r'(ente :1997; qui 'volue rapidement

Cours Supervision Serveur OPC - Pierre Bonnet

SERVEURS OPC &"e comprend la spcification OP# '


<tat des sp'(ifi(ations OPC en 2$$D

dfinition rcente

OPC K5 s-appuie e)(lusivement sur L3LM (ette norme a pour o%!et de d'finir les mo=ens d-a((Cs au) informations F un niveau 'lev' : t=piquement 3<S/ <0P;EM elle pr'sente l-avanta e de ne pas Gtre li'e F une sp'(ifi(ation propri'taire :&CO3; et de pouvoir Gtre implant'e sur toute stru(ture :automate/ mi(ro(ontroleur...;

Cours Supervision Serveur OPC - Pierre Bonnet

1$

SERVEURS OPC S"r ("elle architect"re repose OP# )%ersion *classi("e*+ '
- la sp'(ifi(ation CO3>&CO3 de 3i(rosoft &istri%uted Component O%!et 3odel - CO3 impl'mente les (onne(tions entre les diff'rents (omposants lo i(iels d-une
appli(ation et forme un N%usN lo i(iel ind'pendant du lan a e de pro rammation. - CO3 n-est int' r' nativement que sur ma(#ine 7indo2s d-oO diffi(ult' d-int' ration dire(te d-un serveur ou d-un (lient sur une ma(#ine em%arqu'e :automate...;.

Con(rCtement/ OPC est limit' F l-ar(#ite(ture 7indo2s

Kn serveur OPC est don( 'n'ralement une ma(#ine 7indo2s e)terne reli'e F des automates/ des <>S d'port'es/ des (apteurs Nintelli entsN... Kne ma(#ine peut #'%er er plusieurs serveurs OPC.
Cours Supervision Serveur OPC - Pierre Bonnet

11

SERVEURS OPC La spcification #O,


- le modCle CO3 ou 5(tiveL est (onPu pour permettre F des appli(ations d-a(('der F des (omposants pr'-'(rits et enre istr's sur une ma(#ine 7indo2s. Le (omposants 5(tiveL est 'n'ralement un fi(#ier de t=pe e)e / dll ou o() . C-est une norme propri'taire :3i(rosoft; et non ouverte / sa dur'e de vie est impos'e par le propri'taire . 3i(rosoft sou#aite a(tuellement faire disparaQtre &CO3 au profit de .R<9 - 9ous les (omposants 5(tiveL suivent un modCle de pro rammation unique d'fini par 3i(rosoft. Les outils de d'veloppement usuels :famille Sisual Studio; permettent de 'rer le modCle de faPon transparente pour le pro rammeur. - Pour le (lient :appelant;/ tous les (omposants 5(tiveL sont a((essi%les par l-interm'diaire de pointeurs d-interfa(e. Si le (omposants est sur la mGme ma(#ine que l-appelant :(omposant in-pro(ess; / l-appel du (lient est dire(t pour le (omposant.

Cours Supervision Serveur OPC - Pierre Bonnet

12

SERVEURS OPC Le mod-le #O, distrib" o" .#O,


- Lorsque le (omposant 5(tiveL est #ors de la ma(#ine du (lient :out-of-pro(ess; / l-appel atteint d-a%ord un o%!et de t=pe pro)= fourni par le modCle CO3. Cet appel est rePu par un stu% sur la ma(#ine distante/ qui appelle lui-mGme le (omposant CO3 . Le pro(essus est totalement transparent pour l-utilisateur.

Sour(e. #ttp.>>pa esperso-oran e.fr>visual.%asi(>mand(om.#tm

5ttention . l-appel au (omposant distant n'(essite une estion des droits d-a((Cs sur le (lient et sur le
serveur :voir #ttp.>>222.op(a(tive).(om par e)emple;
Cours Supervision Serveur OPC - Pierre Bonnet

13

SERVEURS OPC Spcifications OP# #ommon

Trois fonctionnalits de base po"r to"t ser%e"r OP#:


<nre istrement des serveurs dans la %ase de re istre du s=stCme.

8nterfa(e 8OPC Server List qui permet au) appli(ations (lientes de (onnaQtre lE"e)isten(e des serveurs install's sur une ma(#ine :mais pas o%li atoirement a(tifs; 8nterfa(e 8OPC S#ut &o2n qui permet au) serveurs de si naler F leurs (lients quE"ils sE"arrGtent

Cours Supervision Serveur OPC - Pierre Bonnet

1*

SERVEURS OPC Spcifications OP# #ommon


&'tails sur lE"enre istrement. La fondation OPC a d'fini des identifi(ateurs de (at' orie C598& pour (#aque (at' orie de serveur :OPC &5 1.1/ OPC &5 2.$/ OPC 5I<...;. LE"uni(it' de lE"identifi(ateur alp#anum'rique est arantie.

Le (lient se (onne(te au (omposant OPCenum.e)e qui e)pose lE"interfa(e 8OPCServerList . Le (lient a (onnaissan(e de tous les serveurs OPC disponi%les sur la ma(#ine :a(tifs ou non;.

Le (lient dispose des informations n'(essaires F la (onne)ion au) serveurs. CLS8&/ Pro 8& .

&'tails sur la fermeture . le serveur envoie au) (lients une (#aQne de (ara(tCre indiquant la raison de lE"arrGt par la m't#ode S#ut&o2n0equest

Cours Supervision Serveur OPC - Pierre Bonnet

1A

SERVEURS OPC Ser%e"r OP# .ata $ccess


Kn serveur OPC &ata 5((ess a pour fon(tion de .
Colle(ter les donn'es issues des p'rip#'riques mat'riels :le(ture; ou leurs faire parvenir

les mises F !our de donn'es :'(riture; Ces op'rations sont p'riodiques :le(ture; ou ap'riodiques :le(ture/ '(riture;/ en mode s=n(#rone :attente de la r'ponse>a(quittement; ou as=n(#rone :r'ponse>a(quittement si nal'e par un 'vCnement;
5ssurer lE"int' rit' des donn'es :qualit' et fraQ(#eur; 0'pondre au) requGtes de (lients :fournir les donn'es/ '(rire vers le mat'riel...; 5vertir les (lients a%onn's des (#an ements dE"'tat des varia%les par un 'vCnement

8nformer le (lient des pro%lCmes de s'(urit' :d=sfon(tionnement lo i(iel ou mat'riel;

Cours Supervision Serveur OPC - Pierre Bonnet

1D

SERVEURS OPC Str"ct"re de donnes d/0"n ser%e"r OP# .ata $ccess

Objet OP# 1tem

O%!et interne au serveur/ (ontenant lE"information utile :valeur num'rique/ 'tat dE"une varia%le6;. Si le serveur p#=sique est un automate/ les items (orrespondent %its et re istres Pour le (lient/ l- 8tem OPC ne repr'sente pas la valeur de la donn'e sour(e mais la r'f'ren(e F (ette donn'e. Plusieurs 8tems peuvent e)ister pour la mGme donn'e sour(e :m't#odes d-a((Cs diff'rentes/ redondan(e...;

Objet OP# Branche

Les 8tem OPC sont re roup's par %ran(#e dans le serveur. Kne %ran(#e (orrespond F un sp'(ifi(it' fon(tionnelle :t=pe de %us/ automate/ es(lave...; Kne %ran(#e peut (omprendre des sous-%ran(#es
Cours Supervision Serveur OPC - Pierre Bonnet

17

SERVEURS OPC Str"ct"re de donnes d/0"n ser%e"r OP# .ata $ccess 2c3t ser%e"r4

Le (lient peut s-informer de la stru(ture du serveur par une requGte du t=pe NBro2seN
Cours Supervision Serveur OPC - Pierre Bonnet

1H

SERVEURS OPC
E5emple de Str"ct"re de donnes d/0"n ser%e"r OP# .ata $ccess 2c3t ser%e"r4

Cours Supervision Serveur OPC - Pierre Bonnet

19

SERVEURS OPC E5emple de str"ct"re de ser%e"r OP# .ata $ccess obten"e par *Bro!se*

Source: Kassl.de

Cours Supervision Serveur OPC - Pierre Bonnet

2$

SERVEURS OPC Str"ct"re de donnes %" d" c3t client

Objet OP# Ser%er

Pour (#aque (lient/ le serveur OPC 'ta%lit un o%!et de t=pe OPC Server et (r'e un (anal de (ommuni(ation s'par' ave( le (lient.

Objet OP# 6ro"p

Les transmissions se font sur la %ase du @roupe. LE"o%!et @roupe (ontient les informations sur lui-mGme et d'(rit lE"or anisation lo ique des items (Tt' (lient. Le nom de @roupe doit Gtre unique parmi les @roupes du (lient. Les @roupes peuvent Gtre renomm's ou (r''s d=namiquement F la demande du (lient. Leur (ontenu est modifia%le d=namiquement par le (lient. 8l e)iste des @roupes pu%li( et lo(al :private;

Cours Supervision Serveur OPC - Pierre Bonnet

21

SERVEURS OPC Str"ct"re de donnes d/0"n ser%e"r OP# .ata $ccess 2c3t client4

Cours Supervision Serveur OPC - Pierre Bonnet

22

SERVEURS OPC Str"ct"re de donnes d/0"n ser%e"r OP# .ata $ccess


Kn item possCde des propri't's parmi lesquelles. - son nom - son t=pe :Simple/ <ntier/ flottant/ Bool'en/ 'num'ration/ ta%leau...; - sa valeur - sa qualit' :%on/ mauvais/ in(ertain...; - son unit' de mesure/ '(#elle mini/ ma)i - son #orodata e :timestamp; U #eure K9CV - ses propri't's : (ommentaire/ droits le(ture>'(riture/ vitesse de rafraQ(#issement/ fuseau #oraire...; LE"interfa(e WEBro2seEX permet au (lient de (onnaQtre les noms et les propri't's des items disponi%les sur le serveur.

Cours Supervision Serveur OPC - Pierre Bonnet

23

SERVEURS OPC Str"ct"re de donnes d/0"n ser%e"r OP# .ata $ccess


O%!et 8tem OPC :e)emple anal=s' F l-aide du %ro2ser ?assl;

Source: kassl.de

Cours Supervision Serveur OPC - Pierre Bonnet

2*

SERVEURS OPC Principales fonctions d7 $cc-s a"5 donnes d/0"n ser%e"r OP# .$

Source: Faweb

Cours Supervision Serveur OPC - Pierre Bonnet

2A

SERVEURS OPC
Connexion d'un serveur OPC Data Access en VBA
La (onne)ion est fa(ilit'e par la possi%ilit' de re(#er(#er d=namiquement les noms des serveurs .

Set MyServer = New OPCServer Serveurs = MyServer.GetOPCServers


NServeursN (ontient la liste des identifiants des serveurs a((essi%les Connexion

Set MyServer = New OPCServer MyServer.Connect (ServeurId)


8l faut penser F li%'rer la m'moire en fin d-utilisation Y connexion

MyServer.Disconnect Set MyServer = Nothing

Cours Supervision Serveur OPC - Pierre Bonnet

2D

SERVEURS OPC
Connexion d'un serveur OPC Data Access en VBA
A!out d"un #rou$e de %ariables&items

Dim MyGroup

s OPCGroup

Set MyGroup = MyServer.OPCGroups. dd(!Groupe"!)


8l est possi%le d-attri%uer des propri't's sp'(ifiques sur un roupe 5ttention . 9outes (es fon(tions peuvent 'n'rer des erreurs/ par e)emple si la (onne)ion est refus'e :erreur sur le nom du serveur; / le nom%re ma)imum de roupes atteints... 8l est imp'ratif de pr'voir leur estion.

Su# mon$progr%mme On &rror Go'o Gestion$&rreur mes$comm%ndes$source$erreur (conne)ion ou d*conne)ion p%r e). ... &)it Su# Gestion$&rreur+ Msg,o) !&rreur-! &nd su#
Cours Supervision Serveur OPC - Pierre Bonnet

27

SERVEURS OPC
Connexion d'un serveur OPC Data Access en VBA
A!out d"item dans un #rou$e existant

.or i=" to "/// Item = !,it! 0 i (1e String Item ser% *tendu p%r 2% v%ri%#2e I 34 ,it" 5 ,it"/// MyGroup.OPCItems. ddItem (Item6 ... ) Ne)t i
C#aque appel 5dd8tem 'nCre un (#an ement de ta(#e.

A!out $ar $a'uets d"item dans un #rou$e

.or i=" to "/// Items(i)=!,it! 0 i Ne)t i MyGroup.OPCItems. ddItems ("///6 Items6 ... )
Les 8tems seront (onstruits dans un ta%leau et d'pos's dans un roupe ave( un appel unique de m't#ode au Serveur OPC .
Cours Supervision Serveur OPC - Pierre Bonnet

2H

SERVEURS OPC
Connexion d'un serveur OPC Data Access en VBA
(ecture item MyItem.7e%d OPCDevice v%2eur$item = MyItem.8%2ue 9u%2ite$item = MyItem.:u%2ity horod%t%ge$item = MyItem.'imeSt%mp La m't#ode de le(ture utilis'e i(i est la le(ture simple s=n(#rone :%lo(a e de l-appelant en attente de la r'ponse; Ecriture item MyItem.;rite (v%2eur$%$ecrire) Ces op'rations peuvent Gtre faites sur un roupe (omplet ave( des op'rations as=n(#rones :performan(es am'lior'es;

Cours Supervision Serveur OPC - Pierre Bonnet

29

SERVEURS OPC
Accs aux donnes dun serveur OPC Data Access : lecture
client MyGroup.SynchRead() serveur Call End Le(ture s=n(#rone . le (lient est %loqu' dans sa ta(#e !usqu-F la fin de traitement de l-'(riture par le serveur

client MyGroup.AsyncRead() Call

serveur Le(ture as=n(#rone . le (lient peut (ontinuer sa tZ(#e :sur pro(esseur multi(ore;. 8l est pr'venu de la fin de le(ture par le serveur par appel de la pro('dure 'vCnementielle.

End MyGroup_AsyncReadComplete()

Cours Supervision Serveur OPC - Pierre Bonnet

3$

SERVEURS OPC
Accs aux donnes dun serveur OPC Data Access : lecture par abonnement

client

server

Subscribe
MyGroup.IsSubscribed

Notify
MyGroup_DataChange()

5%onnement . le (lient sous(rit F un a%onnement pour un roupe d-items auprCs du serveur. Le serveur informe le (lient de tout (#an ement de valeur d-un item par notifi(ation de l-'v'nement. Le (lient (ontinue sa tZ(#e et se trouve intrrompu F (#aque notifi(ation. Cette solution permet d-optimiser la (#ar e du pro(esseur. 8l est possi%le de Nfor(erN la le(ture par MyGroup.7e<resh()

Notify
MyGroup_DataChange()

Cours Supervision Serveur OPC - Pierre Bonnet

31

SERVEURS OPC
Accs aux donnes dun serveur OPC Data Access : criture
client MyGroup.SynchWrite() serveur Call End <(riture s=n(#rone . le (lient est %loqu' dans sa ta(#e !usqu-F la fin de traitement de l-'(riture par le serveur :(e temps (omprend la le(ture ou l-'(riture p#=sique de la sortie sur le mat'riel (oupl' au serveur;

client MyGroup.AsyncWrite() Call

serveur <(riture as=n(#rone . le (lient peut (ontinuer sa tZ(#e :sur pro(esseur multi(ore;. 8l est pr'venu de la fin de l-'(riture par le serveur par appel de la pro('dure 'v'nementielle : estion des 'ventuelles erreurs d-'(riture/ (=(le suivant...;
32

End MyGroup_AsyncWriteComplete()

Cours Supervision Serveur OPC - Pierre Bonnet

SERVEURS OPC
#o"ches logicielles d/0"n ser%e"r OP# .ata $ccess a%ec ser%e"r distant

Cours Supervision Serveur OPC - Pierre Bonnet

33

SERVEURS OPC $rchitect"re logicielle t8pi("e OP# .ata $ccess

L-interfa(e OPC utilise des pointeurs. C-est pourquoi il est n'(essaire d-utiliser un )ra$$er pour les lan a es ne disposant pas de l-a((Cs au pointeur d-une varia%le :e)E. SB;

Cours Supervision Serveur OPC - Pierre Bonnet

3*

SERVEURS OPC 9elations possibles client ser%e"r OP#

Source: Faweb

Cours Supervision Serveur OPC - Pierre Bonnet

3A

SERVEURS OPC #omparaison ..E OP#

D8namic Data 5change ne tient pas (ompte des sp'(ifi(it's des environnements industriels DD est la propri't' de 3i(rosoft qui n-a pas sou#ait' maintenir (ette fon(tionnalit' depuis de nom%reuses ann'es :a%andon total sur la plate-forme .net puis sur 7in Seven ; au profit de CO3 . Certains 'diteurs :7onder2are; poursuivent la maintenan(e des liaisons 'ta%lies sous &&< :,ast&&<;.
Cours Supervision Serveur OPC - Pierre Bonnet

3D