OPC est une spécification récente mais qui a rapidement évolué car elle
est bâtie sur la spécification COM/DCOM.
Carte longue
Rack
Numériseur Hub
DDE fut une tentative pour unifier la communication inter-logiciel. Mais Les principes du
Dynamic Data Exchange ne tenaient pas comptes des spécificités des environnements
industriels et DDE est la propriété de Microsoft. Si on ajoute à cela des problèmes de
performance, on comprend mieux la nécessité d’une standardisation. OPC est ce standard.
Michel Condemine - 4CE Industry - Présentation rapide
La Fondation OPC
La fondation OPC est chargée de maintenir et de promouvoir OPC. La
fondation regroupe aujourd’hui plus de 220 membres dont les plus grands
noms de l’informatique industrielle.
Différents groupes de travail sont actifs en son sein et travaillent aux futures
améliorations et évolutions des spécifications.
OPC Foundation
16101 N. 82nd Street, Suite 3B
Scottsdale, AZ 85260-1830
Phone: 480-483-6644
Fax: 480-483-7202
www.opcfoundation.org [USA]
www.opceurope.org [Allemagne]
Toute les spécifications définissent des d'interfaces. Ces interfaces sont de deux
types, les interfaces "Customs" et les interfaces "Automation". Chaque interface
regroupe des méthodes et des événements utilisés dans le dialogue entre clients et
serveurs OPC. Les spécifications définissent aussi les interactions entre les différents
serveurs et les différents clients.
L'ensemble des informations relatives aux concepts COM et Automation peuvent être
retrouvées dans les documentations Microsoft [MSDN LIBRARY].
Michel Condemine - 4CE Industry - Présentation rapide
Depuis OPC
LOGICIEL EXTERNE - ERP - BUREAUTIQUE - SGDB - SQC
OP C OP C OP C OP C
Carte longue
Rack
Numériseur Hub
• …
Physical
Physical
Ici, les applications C++ et VB sont des clients OPC. Device
Device
Device
Device Data
Data
*_PS indique ProxyStrub DLL chaque spécification OPC utilise un fichier xxxx_PS.DLL particulier.
En général , les clients qui sont créés avec un langage de script utiliseront l’interface
"automation". Les clients qui sont créés en C++ utiliseront plutôt les interfaces "custom"
pour un maximum de performance. Les clients peuvent aussi être écrit en utilisant un
ActiveX Wrapper qui simplifie au maximum la connexion OPC. OPCX 2000
les interfaces obligatoires
· Un client communique avec un serveur en appelant au moins les fonctions des
interfaces obligatoires. Les développeurs de serveurs OPC doivent implémenter toutes les
fonctionnalités des interfaces obligatoires dans leur serveur.
les interfaces optionnelles
Les développeurs de serveur OPC peuvent, s’ils le souhaitent, implémenter les interfaces
optionnelles. Quand une interface optionnelle est implémentée, toute les fonctions qu’elle
contient doivent être implémentées, même si la fonction retourne simplement E_NOTIMPL.
Un client qui souhaite utiliser les fonctionnalités d’une interface optionnelle doit demander
au serveur ces interfaces optionnelles. Le client doit être développé de sorte à ne pas
utiliser les interfaces optionnelles qui n’existent pas.
Michel Condemine - 4CE Industry - Présentation rapide
Structure d’un Serveur OPC
Clients OPC
Le travail d'un serveur OPC c'est :
1 - Collecter et/ou traiter des données
2 - Assurer la correspondance des données OPC
Syn chron
AS llback
3 - Répondre aux requêtes des clients
Ca
yn
ch r
one 4 - Assurer la notification des messages
5 - S'enregistrer dans la base de registre.
e
DATA SOURCE
Protocole propriétaire
Ce principe est général pour tous les serveurs OPC. Chaque spécification
définition une structure particulière pour les données et pour les notifications.
Les serveurs OPC sont créés généralement en C++. Bien qu’il soit, a priori, possible
de créer un serveur dans n’importe quel langage.
Aujourd’hui de nombreuses sociétés proposent des serveurs OPC prêts à l’emploi
pour la plupart des protocoles du marché. On dénombre aujourd’hui plus de 500
serveurs OPC.
Le nom
La valeur
La qualité
Le timestamp
Groupe Groupe
Item
Item
Item
Groupe Groupe
Item Item
Item
Item Item
FLAT
HIERARCHICAL
Dans le serveur, les groupes et les items sont représentés par des objets.
Ces objets ne sont pas des objets COM. mais permettent au serveur de
structurer sa base de données et de l'exposer aux CLIENTS.
Chaque serveur OPC peut exposer sa base à plat ou de façon hiérarchique.
Clients Automations,
VB, Delphi, VC++, MS-Office, Frontpage, Navigateur WEB,......
n Eve
atio n t Au
tom tom
n t Au atio
OPCX 2000 est un Ev e n
Limite de processus
Serveur Serveur
OPC N°1 OPC N°n
OPC OPC
Sous/Condition Sous/Condition
OPC Condition
OPC OPC
Sous/Condition Sous/Condition
DATA SOURCE
Les conditions
Une condition est un « état nommé » dans le serveur, ou dans un de ces objets susceptibles
d’intéresser un client. Par exemple ANA01 peut être associé à une « alarme de niveau » ou une
« alarme de sécurité » .
Les sous-conditions
OPC A&E offre aussi la possibilité de définir des sous conditions. Chaque condition peut contenir
plusieurs sous conditions. Par exemple la condition « alarme de niveau » peut contenir les sous-
conditions « Alarme haute », « Alarme basse », « Alarme très basse »,…
Les agrégats.
Les agrégats permettent de spécifier des traitement attendus sur les données. La
signification de chaque agrégat est liée à chaque serveur. Les agrégats non supportés
par un serveur doivent « OPC_E_INVALIDARG » dans le code d’erreur associé.
Des agrégats supplémentaires aux agrégats définis par la fondation OPC peuvent être
ajoutés dans les serveur lors de l’implémentation.Les agrégats spécifiques des
serveurs sont définis à partir de 0x80000000. La fondation OPC se réservant les
attributs de 0 à 0x7fffffff. [OPC HDA p135]
Michel Condemine - 4CE Industry - Présentation rapide
Les interfaces OPC HDA
Côté serveur
(deux objets)
IUnknown
Côté client
IOPCHDA_Common [IOPCHDA_AsyncRead]
IUnknown
IOPCHDA_Browser
[] indique les interfaces optionnelles
IOPCHDA_
Browser
Object
server client
Operator
Trend Display
Operator
Station 2 Event
Logger, etc.
OPC Historian
OPC Historian Server
Server
Proprietary
Historian Server
Proprietary OPC Data
Data Server Access Server
Must contain
Unit
May contain
Equipment May
Module contain
May contain
Control May
Module contain
Physical I/F
Vendor
Batch Physical
Application I/O
Vendor I/F
Physical I/F
OPC OPC I/F
Batch
OPC I/F Server
OPC Data
Application Server
OPC I/F
OPC I/F
IOPCCommon IOPCBatchServer
IOPCServer [IOPCBatchServer2]
[IOPCServerPublicGroups] IEnumOPCBatchSummary
OPC
IOPCBrowseServerAddressSpace Batch Server IOPCEnumerationSets
[IPersistFile] Object
IConnectionPointContainer
IOPCItemProperties
Côté client
les interfaces sont les mêmes que pour les serveurs OPC DA.
Il n’y a pas d’interface spécifique pour les clients Batch.
Windows CE 3.0
CE 3.0 supporte COM/DCOM en natif. Les serveurs OPC peuvent donc être développés
sur plateforme CE et utilisant les mêmes outils que sous Windows.
Linux – RT Linux
Linux – RTLinux supporte COM/DCOM en utilisant des outils de tiers parti, DeviceCOM
d’Intrinsyc. Intrynsic fournit aussi une toolkit pour la réalisation de serveur OPC DA.
VXWorks.
WindRiver conscient de l’intérêt d’OPC Windriver fournit des outils pour le support
COM/DCOM sur VXWorks. Ils fournissent aussi un kit de développement pour la
réalisation de serveur OPC DA 2.x.
Autres OS
Sur n’importe quels autres OS la présence de la couche COM/DCOM permet
d’envisager des architectures OPC. Si la couche COM est absente il est toujours
possible de l’implémenter !!
Michel Condemine - 4CE Industry - Présentation rapide
En résumé.
OPC c’est,…
• un standard pour l’industrie.
• Le meilleur de chacun des produits existants.
• L ’accès aux données depuis n’importe quel point du réseaux Lan/Wan.
• L’indépendance totale vis à vis des fabricants de matériels
• L’indépendance totale vis à vis des éditeurs de logiciels.
• L’ouverture maximale, l’intégration des ERP.
• L’avenir de la conduite des procédés.