SUPERVISION
Serveurs OPC
Pierre BONNET
Cours Supervision Serveur OPC - Pierre Bonnet
SERVEURS OPC
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/
Conflits dE"a((Cs
des ressour(es mat'rielles peuvent ne pas Gtre pas support'es par (ertains lo i(iels
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
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...;
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...;.
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
12
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
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
1*
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
1A
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
1D
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...;
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
19
SERVEURS OPC E5emple de str"ct"re de ser%e"r OP# .ata $ccess obten"e par *Bro!se*
Source: Kassl.de
2$
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.
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;
21
SERVEURS OPC Str"ct"re de donnes d/0"n ser%e"r OP# .ata $ccess 2c3t client4
22
23
Source: kassl.de
2*
SERVEURS OPC Principales fonctions d7 $cc-s a"5 donnes d/0"n ser%e"r OP# .$
Source: Faweb
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 .
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
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.
.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;
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
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()
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()
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;
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()
SERVEURS OPC
#o"ches logicielles d/0"n ser%e"r OP# .ata $ccess a%ec ser%e"r distant
33
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;
3*
Source: Faweb
3A
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