Sie sind auf Seite 1von 32

Introduction à OPC

Les spécifications OPC définissent des groupes « d’interface ». Ces


interfaces traitent des différents domaines du « Process Control ».
OPC signifie Object Linking and Embedding - for Process Control .

- OPC Common et OPC Security (spécification commune à tous les serveurs)


- OPC Data Access (les données temps réel).
- OPC Alarm & Event (Les alarmes et événements).
- OPC Historical Data Access (Les historiques)
- OPC Batch (les traitements par lot)

OPC est une spécification récente mais qui a rapidement évolué car elle
est bâtie sur la spécification COM/DCOM.

Michel Condemine - 4CE Industry - Présentation rapide


Pourquoi OPC ?

• Pour standardiser les échanges de flux entre équipements


communicants.
• Parce que la communication en environnement hétérogène pose de
gros problèmes de maintenance et de pérennité.
• Parce que cette "non communication" a été le principal frein dans
l'échange d'informations. Interaction ERP/SCADA
• Pour éviter la prolifération des protocoles
• Pour donner l’indépendance aux utilisateurs.
• Pour pérenniser les installations
• Pour permettre aux exploitants de ce concentrer sur leur métier.
• …

Michel Condemine - 4CE Industry - Présentation rapide


Avant OPC
LOGICIEL EXTERNE - ERP - BUREAUTIQUE - SGDB - SQC

DDE ou module spécifique

Archive, Rapport et traitements


Courbes de tendances et Alarmes Synoptiques Savoir faire métier
par lots

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]

Michel Condemine - 4CE Industry - Présentation rapide


L’état des spécifications

• La spécification Commune à tous les serveurs – Common spec.


•· La spécification "OPC Data Access (DA) 1.0 - 1.0a - 2.0 "
•· La spécification "OPC Alarm & Event (AE) 1.0 1.0a "
•· La spécification "OPC Standart Access to historical data (HDA) 1.0. 1.1 "
•· La spécification "OPC Batch 1.0"

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

COM/DCOM - AUTOMATION COM/DCOM - AUTOMATION

Courbes de tendances et Archive, Rapport et


Synoptiques Savoir faire métier
Alarmes traitements par lots

OP C OP C OP C OP C

Réseau d'entreprise LAN / WAN (Liaison Client/Serveur OPC)

Serveur OPC 01 Serveur OPC 02 Serveur OPC 03 Serveur OPC 04

Carte longue
Rack
Numériseur Hub

Notez bien que COM/DCOM est une spécification indépendante du matériel et du


système d'exploitation.
Michel Condemine - 4CE Industry - Présentation rapide
Quelques Avantages
• Avec OPC vous pouvez remplacer un équipement par un autre sans remplacer votre
application cliente.
Exemple
L’automate A1 du constructeur C1 est installé sur un four de coulé. l’exploitant du four de coulé
utilise une application ERP relier sur l’automate via un client OPC. Si l’automate A1 est remplacé
par l’automate A2 du constructeur C2. Le lien ERP ne demandera au pire qu’un simple
paramétrage.

• De la même manière vous pouvez remplacer ou ajouter des applications clientes


sans toucher aux serveurs et sans altérer les autres clients.
• Avec OPC vous pouvez réaliser des supervisions plus performante et pour un coût
réduit.
• Avec OPC vous simplifiez vos opérations de maintenance.
• Avec OPC vos applications sont toujours prêtes à évoluer avec les nouveaux
besoins de vos clients.
• Avec OPC oubliez les problèmes d’OS. OPC est déjà disponible sur Windows, Linux,
VXWorks, et il existe de nombreuses passerelles Winsock.

• …

Michel Condemine - 4CE Industry - Présentation rapide


Concept de base d’OPC
La spécification OPC définit que tous les serveurs peuvent contenir deux
groupes d’interfaces, les interfaces customs et les interfaces automations.
Comme indiqué dans la figure ci-après.
OPC
OPC
Interface OPC Local
VB
VB Automation
Automation Local or
or Remote
Remote
Application
Application
Automation Wrapper OPC Server
Wrapper OPC Server
(Shared
(Shared by
by many
many
clients)
clients)
C++
C++ Server
Application
Server Data
Data Cache
Cache
Application Interface OPC Custom

Physical
Physical
Ici, les applications C++ et VB sont des clients OPC. Device
Device
Device
Device Data
Data

Un client OPC communique avec un serveur OPC au travers d’interfaces customs ou


automations. Les serveurs OPC doivent implémenter les interfaces customs obligatoires.
Les interfaces automations, dans la plupart des cas, sont Wrapper par un composant
DLL. C’est à dire qu’une DLL assure la conversion des appels automations vers des
appels Custom. la Fondation OPC fournit à ces membres les sources de cette DLL qui
peut être utilisée pour le support des interfaces automations.

Michel Condemine - 4CE Industry - Présentation rapide


OPC Common - Règles et Interfaces
Il s’agit de la spécification commune à tous les serveurs OPC. Elle définit trois
grandes fonctionnalités :

- L’interface IOPCShutDown qui permet aux serveurs d’informer leurs clients


qu’ils s’arrêtent.
- Les règles d’enregistrement des serveurs dans le registre du système.
- L’interface IOPCServerList qui permet aux applications clientes de connaître
les serveur installés sur une machine.
Notez que l’implémentation de cette interface ne doit pas être présente dans
le code des serveurs mais est fournie par la fondation OPC sous la forme
d’un .EXE et d’une DLL, OPCEnum.exe et OPCComn_PS.dll.*
C’est ce que l’on appelle les composants Commun OPC.

*_PS indique ProxyStrub DLL chaque spécification OPC utilise un fichier xxxx_PS.DLL particulier.

Michel Condemine - 4CE Industry - Présentation rapide


Quelle interface doit utiliser l’application cliente ?

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

Couche OPC Serveur

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.

Michel Condemine - 4CE Industry - Présentation rapide


L’implémentation des serveurs
Les serveurs OPC peuvent être implémentés sous deux formes :
• Les serveurs OPC In-Process (DLL).
Ces serveurs partagent l’espace d’adressage de l’application hôte. Ils ne peuvent
donc être que des serveurs locaux. Ces serveurs sont les plus performants.
• Les serveurs OPC Out-Process (EXE)
Ces serveurs peuvent être locaux ou distants.

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.

Michel Condemine - 4CE Industry - Présentation rapide


OPC DA 1.0 – 2.0x
Les objets groupes
Un serveur OPC gère des groupes OPC. il est possible de créer un groupe, de supprimer un
groupe, d’obtenir le nom d’un groupe et d’énumérer les groupes. Les groupes contiennent des
items, qui correspondent aux données dans le serveur. Si le serveur est un superviseur les
items correspondent aux tags. Si le serveur est un Automate les items correspondent aux
registres (DB). L’appellation attribuée aux items est alors propre à chaque type de serveur
OPC. Les serveurs OPC peuvent lire leurs données depuis des bases de données, des cartes
ADD-IN ou depuis n’importe quelle source de données.

les objets Items


Les items sont identifiés sur leur "nom". Le serveur doit donc utiliser une technique pour
contrôler la correspondance des noms d’items et les données sources qu’il fournit. Ces noms
sont accessibles au travers de l’interface "Browse".
Les items se trouve dans les groupes OPC. ils sont caractérisés par des attributs et des
propriétés parmis lesquels :

Le nom
La valeur
La qualité
Le timestamp

Michel Condemine - 4CE Industry - Présentation rapide


Le modèle logique OPC DA

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.

Michel Condemine - 4CE Industry - Présentation rapide


Architecture d’une application OPCX 2000

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

serveur Automation et Serveur Automation Serveur Automation


un client OPC
Instance N°1 Instance N°n

Client OPC Custom Client OPC Custom

Limite de processus

Serveur Serveur
OPC N°1 OPC N°n

Michel Condemine - 4CE Industry - Présentation rapide


OPC A&E 1.x - Introduction
La spécification OPC A&E 1.0 décrit des interfaces et des objets qui sont
implémentés par des serveurs OPC A&E. Ces serveurs fournissent des
mécanismes qui permettent aux clients d’être informés de certaines conditions
d’alarmes. Ces serveurs fournissent aussi des interfaces permettant aux clients de
parcourir les alarmes qu’ils supportent et de connaître leur état courant.
Quand on parle d’OPC A&E, les termes A&E désignent les alarmes et événements.
Dans la littérature OPC, ces deux termes peuvent se substituer sans modification
dans le sens du texte. A&E représente ce que l’on désigne dans le monde de
l’industrie par gestion des alarmes et des événements.
Au sens OPC, une alarme est une condition anormale sur le procédé et elle
correspond à une « OPCCondition » spécifique.
Un serveur OPC A&E gère :
• La connexion des clients.
• Les souscriptions aux conditions et sous-conditions.
• La notification des alarmes.

Michel Condemine - 4CE Industry - Présentation rapide


Les Alarmes et les événements
Les événements n’ont pas de représentation directe dans le modèle OPC.
OPC Distingue trois types d’événements :
• Les Condition-Related, il s’agit des fronts montant/descendant sur des événements
associés à une condition.
• Les Tracking-Related, il s’agit d’événements qui ne sont pas associés avec des
alarmes mais qui impliquent l’interaction entre un client et un objet « Target » dans
le serveur OPC A&E.
• Les Simple, il s’agit des tous les autres événements. Les événements Simple sont
utilisés pour coder les erreurs matérielles.
Une alarme OPC peut n’être associée à aucune condition et simplement représenter un
état interne, qui est significatif dans le contexte du serveur. Par exemple des
alarmes de niveau seront toujours associées à une condition mais une erreur
interne ou un changement de configuration ne seront pas associés à une condition.

Michel Condemine - 4CE Industry - Présentation rapide


Le modèle logique OPC A&E

INTERFACES OPC A&E

OPC Condition OPC Condition

OPC OPC
Sous/Condition Sous/Condition
OPC Condition

OPC OPC
Sous/Condition Sous/Condition

DATA SOURCE

La source de données peut être un serveur OPC A&E, un serveur OPC DA


ou un équipement.

Michel Condemine - 4CE Industry - Présentation rapide


Sources, Conditions, Zones.
Les sources
Une source est associée à une condition. Un source peut être un Tag, un équipement ou n’importe
quel sous-système.

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 zones (AREA)


Ce que l’on souhaite faire avec les zones, c’est pouvoir répartir les événements et conditions du
procédé en une ou plusieurs zones. Une zone est le regroupement d’équipements de terrain en
accord avec les spécificités du procédé. La définition des zones est en dehors du sujet de cette
spécification. (La gestion des Zones est optionnelles)
Si les zones sont disponibles, le client devra créer une objet OPCEventAreaBrowser pour explorer les
zones du serveur. Le client pourra alors filtrer les « SOUSCRIPTIONS » en utilisant les zones.
Michel Condemine - 4CE Industry - Présentation rapide
Les interfaces OPC A&E

Les interfaces côté client


IOPCEventSink [reception des Alarmes]
IOPCShutdown.

Les interfaces côté serveur


L’objet OPC Event Server L’objet OPC Event Area Browser
IOPCCommon IOPCEventAreaBrowser [Optionnelle]
IOPCEventServer
IConnectionPointContainer [Notification]

L’objet OPC Event Subscription


IOPCEventSubscriptionMgt
IConnectionPointContainer [Notification]
Michel Condemine - 4CE Industry - Présentation rapide
OPC HDA 1.x – Introduction
A Quoi ça sert ?
La spécification OPC HDA définit la manière dont les archives sont traitées avec
OPC. Elle définit, bien sûr, des interfaces permettant à des clients OPC HDA,
d’accéder aux données archivées par des serveurs OPC HDA.
Un serveur OPC HDA peut collecter les données sur un serveur DA ou
directement dans un format propriétaire. Un serveur DA peut aussi être un
serveur HDA Un client HDA peut être un module de courbe de tendance, un
module statistique ou n’importe quel module utilisant des archives.
Les particularités de la spécification
OPC HDA et les autres spécifications.
La spécification OPC HDA est complémentaire mais indépendante des
spécifications OPC DA et OPC A&E. Les points communs sont regroupés dans
la spécification commune. Elle fait référence aux serveurs A&E quand ceux-ci
supportent les interfaces spécifiques à OPC HDA

Michel Condemine - 4CE Industry - Présentation rapide


Les Items et Les agrégats OPC HDA
Les Items
La structure de Items OPC HDA comprend l’identificateur de l’item, sa valeur, son
timestamp, sa qualité, l’agrégat auquel il appartient et ses attributs.
Les Attributs.
Les attributs décrivent des paramètres propres à l’item tel que le nom, le type de
donnée, l’unité de conversion, la source de la donnée, ….
Des attributs spécifiques peuvent être définis pour chaque serveur. Pour la liste
détaillée des attributs reportez vous à la spécification [OPC HDA p132-134]

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_SyncRead [IOPCHDA_AsyncUpdate]


IOPCHDA_
[IOPCHDA_SyncUpdate] Server [IOPCHDA_AsyncAnnotations]
[IOPCHDA_SyncAnnotations] Object
IOPCHDA_Shutdown IConnectionPointContainer

[IOPCHDA_ReadCallback] [IOPCHDA_Playback] IOPCHDA_Server


IOPCHDA_
[IOPCHDA_UpdateCallback]
Client
[IOPCHDA_AnnotationsCallback] Object

IUnknown

IOPCHDA_Browser
[] indique les interfaces optionnelles
IOPCHDA_
Browser
Object

Michel Condemine - 4CE Industry - Présentation rapide


Architecture OPC HDA

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

Michel Condemine - 4CE Industry - Présentation rapide


OPC Batch 1.0 & 2.0 - Introduction
Enterprise
Cette spécification est bâtie sur d’autres May contain

standards, qui sont OPC-DA et la


spécification IEC 61512-1. Dans la Site

spécification OPC Batch, le nom des items May contain


respecte une syntaxe définie dans la Area
spécification IEC 61512-1. La spécification
IEC apporte une terminologie qui est
May contain
intégrée dans OPC Batch.
Process
Cell

Must contain

Unit

May contain
Equipment May
Module contain

May contain
Control May
Module contain

Michel Condemine - 4CE Industry - Présentation rapide


Le modèle fonctionnel IEC 61512-1
La spécification OPC Batch définit
: Production and Production
Recipe
planning information
• Les données relatives au batch Management
Scheduling management
en cours d’exécution.
• Les informations relatives aux
Process
équipements indispensables pour Management
comprendre le contexte
d’exécution du Batch.
Unit
• L’enregistrement de l’exécution Supervision
du batch.
• Le contenu des modèles de batch
Process
Control

Il est prévu que les serveurs OPC


Batch interagissent avec les moteurs Personnel and Outsid the
IEC pour la gestion des recettes environmental scope of IEC
protection 61512-1

Michel Condemine - 4CE Industry - Présentation rapide


Le modèle fonctionnel OPC Batch
Les serveurs OPC Batch permettent d’accéder à des données
dites « DATA SOURCES ». Le type de ces ‘DATA SOURCE »
dépend de l’implémentation dans le serveur.

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

Michel Condemine - 4CE Industry - Présentation rapide


Les interfaces OPC Batch
Côté serveur IUnknown

IOPCCommon IOPCBatchServer
IOPCServer [IOPCBatchServer2]
[IOPCServerPublicGroups] IEnumOPCBatchSummary
OPC
IOPCBrowseServerAddressSpace Batch Server IOPCEnumerationSets
[IPersistFile] Object

IConnectionPointContainer
IOPCItemProperties

[] indique les interfaces optionnelles

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.

Michel Condemine - 4CE Industry - Présentation rapide


Les performances

Les performances dans un environnement OPC dépendent


d’énormément de paramètres. Les principaux éléments qui influent sur les
performances d’une architecture OPC sont :.
•La famille d’interface utilisé, Custom ou Automation,
•Le type du serveur, InProcess ou OuPocess,
•L’endroit ou s’execute le serveur, Local ou Remote,
•Le type d’interface, Synchrone ou Asynchrone.
•Les contraintes techniques lié au matériel.
Les temps mesurés donnent des temps allant de 0.025 ms à 1s / Transaction.

Michel Condemine - 4CE Industry - Présentation rapide


L’utilisation d’OPC aujourd’hui.
L’ensemble des spécifications éditées par la fondation OPC peuvent être
implémentées dès aujourd’hui. Il est techniquement possible de réaliser des clients et
des serveurs supportant les spécifications, OPC-DA, OPCA&E, OPC-HDA et OPC
Batch…. Dans un monde idéal tous les clients supporteraient toutes les interfaces.
Mais ce n’est pas le cas et il existe une multitude de cas de figure.

Utilisation chez les éditeurs de superviseur.


Les superviseurs pour la plupart ont déjà la réponse aux problèmes abordés par OPC.
ils n'implémentent bien souvent les spécifications OPC qu'à titre commercial et bien
rares sont les superviseurs "FULL OPC". L’intérêt commercial d’OPC pour ces
éditeurs n’est pas évident.
Utilisation chez les fabricants d’automatismes.
Les principaux fabricants d’automatismes fournissent des serveurs OPC DA pour
l’accès à leurs équipements. Ils travaillent d’arrache pied pour fournir des serveurs
pour les autres spécifications.

Michel Condemine - 4CE Industry - Présentation rapide


OPC et les autres OS.

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.

4CE INDUSTRY, 12 Parc Club du Millénaire 1025 rue Becquerel


34036 Montpellier France
Tel : +33 467 993 382 Fax : +33 467 993 062
Tech : +33 467 790 737

Michel Condemine - 4CE Industry - Présentation rapide