IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Dotnet Discussion :

[OPC] Vue d'ensemble


Sujet :

Dotnet

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2007
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2007
    Messages : 87
    Par défaut [OPC] Vue d'ensemble
    Bonjour,

    Désolé si ce n’est pas la bonne section mais je ne vois pas où poster ceci.

    Donc voilà, je suis actuellement en stage dans une entreprise où on m’a demandé de développer en C# une supervision utilisant OPC. Le problème principal est que personne dans la boite n’a déjà utilisé OPC. J’ai donc fait le tour de beaucoup de forum depuis lundi ainsi que sur http://www.opcfoundation.org/ où j’ai trouvé quelques informations bien que la plupart soit dépourvu d’information essentiel (enfin sauf si on paye mais je suis pas sûr que l’entreprise qui m’a pris en stage est prête à débourser pour un stagiaire 1200€ pour de la documentation).

    Dans un premier temps, je dois réaliser un cahier des charges du projet mais en attendant de rencontrer les ingénieurs qui gèrent la partie que je devrais développer, je prends des renseignements sur OPC.

    Alors je viens à vous pour vous exposez ce que j’ai récupéré comme information sur les grands principes d’OPC pour que vous me disiez si j’ai bien compris son fonctionnement. Si j'ai compris ce post pourra toujours servir au personne dans le même besoin que moi

    1) OPC :
    OPC est un système qui permet de communiquer avec différents périphériques (automates, capteurs, actionneurs …).
    Il y a donc les périphériques qui sont reliés à un serveur OPC. Puis un client peut se connecter à un ou plusieurs serveurs OPC pour faire du traitement de données.

    Il y a trois types de serveurs : serveur de gestion de données, serveur de gestion des alertes et évènements et serveur pour l’historique des actions.

    Aucun périphérique n’est standardisé, donc chaque serveur OPC est dépendant du fournisseur. Il est possible d’en développer soit même mais ils ne seront réutilisable que pour le même type de matériel (il faut donc avoir une documentation technique du produit). Le serveur est donc une entité paramétrable qui connaît les registres et leurs correspondances et qui se charge de récupérer les données demandées. Le serveur peut être un ordinateur connecté au périphérique ou alors un module du périphérique.

    L’application cliente elle peut aussi provenir du fournisseur mais peut être développé indépendamment de l’architecture matérielle. Elle se connectera au serveur voulu, récupèrera les données voulu elles aussi et effectuera le traitement désiré (stockage dans une bdd, transformation en fichier Excel pour de futurs traitements …). Cette application peut bien sûr envoyer des ordres pour changer le fonctionnement des périphériques. Les données seront envoyées au serveur qui transformera des informations pour qu’elles soient utilisables par le périphérique.


    Merci d'avance pour vos réponses !

  2. #2
    Membre éclairé
    Inscrit en
    Avril 2006
    Messages
    346
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 346
    Par défaut
    Bonjour,

    effectivement tu n'es pas dans le bon forum.
    Tu n'es pas obligé de débourser 1200 € pour la documentation. Cette doc est téléchargeable gratuitement.
    En C#, pour développer un client OPC. Tu as deux solution.
    Automation ou Custom. En Automation, tu dois wrapper un composant COM pour pouvoir développer ton client OPC.
    En Custom, OPCFoundation met à disposition un wrapper .NET mais ensuite c'est à toi de développer tes classes pour ton client OPC. Je te conseille cette dernière solution plus efficace.
    Sinon, oui tu as à peu près compris le principe de l'OPC mais je pense qu'il te faut encore te documenter ou poser des questions plus précises sur l'OPC, je peux t'aider si tu le souhaites.
    Si mes souvenirs sont bons, il est possible de télécharger sur le net les sources d'un exemple d'un client OPC en C#. Tu l'as peut-être déjà trouvé. Cet exemple ne peut pas être utilisé en production mais ça te permet d'avoir une idée du comment ça marche.


    1) OPC :
    OPC est un système qui permet de communiquer avec différents périphériques (automates, capteurs, actionneurs …).
    OPC n'est pas un système.
    OPC est basé sur DCOM et permet l'interopérabilité de système de marques différentes.

    Le serveur OPC sait effectivement dialoguer avec ton équipement. Ensuite n'importe quel client OPC peut se connecter à un serveur OPC et lire/écrire des variables de l'équipement par l'intermédiaire du serveur OPC.

    Il y a trois types de serveurs : serveur de gestion de données, serveur de gestion des alertes et évènements et serveur pour l’historique des actions.
    On ne parle pas de type de serveur mais de spécification OPC.
    - DA pour DataAccess
    - AE pour Alarm & Events
    - HDA pour Historical Data Access

    Tiens moi au courant.
    Bye.

  3. #3
    Membre confirmé
    Inscrit en
    Février 2006
    Messages
    92
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 92
    Par défaut DCOM = COM && RPC || ActiveX && RPC ??????
    Bonjour, OPC est le standard de communication réseau.

    J'ai besoin délopper un OPC server et j'aimerai savoir comment ca marche.

    Je possède une documentation, le ''white paper' mais j'ai ne parviens pas à le transcrire niveau code. Sachant utilisé les objets COM et ActiveX , je pense que mon seul soucis et de faire marcher DCOM pour réaliser enfin l'OPC.

    Alors je demande parmi vous quel sont les démarches pour pouvoir transformer mon objet COM et serveur COM qui signifie finalement DCOM.

    Merci pour vos réponses!

  4. #4
    Membre éclairé
    Inscrit en
    Avril 2006
    Messages
    346
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 346
    Par défaut
    Bonjour,

    tu as besoin de développer un serveur OPC ?
    Pas un client ? Un serveur, c'est bien cela ?

    DCOM signifie Distributed COM, c'est à dire Composants COM distribués.
    Par contre, je te déconseille de développer ton serveur OPC en C# mais plutôt en natif.

    Bye

  5. #5
    Invité de passage
    Inscrit en
    Mai 2007
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 1
    Par défaut développer un serveur OPC
    Bonjour
    Je suis étudiant en stage et je dois développer un serveur OPC pour une carte d'acquisition USB. J'ai en ma possession un autre serveur qui est utilisé pour un autre type de carte. Il faut donc que je modifie les namespaces, mais je ne sais pas comment faire.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    void Opc::buildNameSpace()
    {
    	//Salida analogica
    	addNode(_T("Salidas analogicas"));
    	addAllTags(_T("OUT"),CHANNELS_AO,VT_I2,READ_WRITE,_T("Salidas analogicas"));
    	addAllTags(_T("OUT%"),CHANNELS_AO,VT_R4,READ_WRITE,_T("Salidas analogicas"));
    	//Entrada analogica
    	addNode(_T("Entradas analogicas"));
    	addAllTags(_T("IN"),CHANNELS_AI,VT_R8,READ,_T("Entradas analogicas"));
    	addAllTags(_T("IN%"),CHANNELS_AI,VT_R4,READ,_T("Entradas analogicas"));
    	addAllTags(_T("Rango"),CHANNELS_AI,VT_I2,READ_WRITE,_T("Entradas analogicas"));
    	//Canales digitales
    	addNode(_T("Canales digitales"));
    	// Bit a bit
    	addAllTags(_T("DI"),DIGITAL_CHANNELS,VT_BOOL,READ,_T("Canales digitales"));
    	addAllTags(_T("DO"),DIGITAL_CHANNELS,VT_BOOL,READ_WRITE,_T("Canales digitales"));
    	//Y todo el puerto como un numero
    	addTag(_T("Digito de entrada"),VT_UI2,READ,_T("Canales digitales"));
    	addTag(_T("Digito de salida"),VT_UI2,READ_WRITE,_T("Canales digitales"));
    	//Control
    	addNode(_T("Control"));
    	//Numero de tarjeta activa
    	addTag(_T("Tarjeta"),VT_I2,READ_WRITE,_T("Control"));
    }//buildNameSpace
    Voila a quoi ressemble la définition du namespace du serveur que je possede.
    Pour ma part ma carte d'acquisition possede 4 entrées et 4 sorties.
    merci

  6. #6
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2007
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2007
    Messages : 87
    Par défaut
    Ca y est j'ai commencé à développer avec le toolkit de softing.

    Pas mal ça marche bien !

    Recherche des différents serveur OPC sur le réseau de l'entreprise.
    Connexion à celui que l'on veut, choix d'une variable et affichage de sa valeur !!!

    s'Trop bien

Discussions similaires

  1. [OOo] Vue d'ensemble
    Par Mucho dans le forum Documents
    Réponses: 4
    Dernier message: 12/02/2009, 14h16
  2. Vue d'ensemble et webcast débutants
    Par CUCARACHA dans le forum SharePoint
    Réponses: 2
    Dernier message: 26/09/2008, 10h02
  3. [A relire] Vue d'ensemble de GTK+
    Par gege2061 dans le forum Contribuez
    Réponses: 2
    Dernier message: 25/08/2008, 11h17
  4. [MySQL] Vue d'ensemble de ma base de données ?
    Par vandeyy dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 08/03/2007, 14h31
  5. Vue d'ensemble d'une base de données
    Par orafrance dans le forum Oracle
    Réponses: 2
    Dernier message: 30/03/2006, 11h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo