33ème colloque Pédagogique Développement d’IHM Sous VS.NET en se basant sur la technologie OPC et les outils Applicom R. Malti 33ème colloque Pédagogique Montpellier, 7-9 Juin 2006
Objectif Contexte : ouverture de la licence SARI en Septembre 2004. Acquisition de logiciel de programmation de haut niveau … Logiciel disponible : Visual Studio .NET. Objectifs Se baser sur les standards OPC, Développer facilement des IHM sous Windows. Connaissances Etudiants de la Licence Professionnelle Enseignement sur la POO, programmation événementielle Tout est fait sur le même support (VS .NET). - Aucune notion sur la technologie COM-DCOM
Présentation du matériel
(Distributed) Component Object Model Serveur OPC ActiveX Object Linking and Embedding (OLE) OLE for Process Control (OPC) (Distributed) Component Object Model (COM / DCOM) Transport (TCP-IP, UDP, Queued) Comm. inter-nœud uniquement Ethernet Les standards OPC sont basés sur la technologie COM/DCOM de Microsoft et ne fonctionnent de fait que sur les plateformes Windows). Avantage intégration directe vers toutes applications sous Windows.
Configuration de l’outil Applicom
Outil de configuration de l’Active X Création d'une configuration de base : Ajout d'un nouveau serveur Recherche à partir de la base de registre de l'ordinateur local ou d'ordinateur distant
Interface type
Exemple de programme – 1. Initialisation Exemple de programme – 2. Ecriture Exemple de programme – 3. Lecture Exemple de programme – 1. Initialisation Private Sub Init (ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Init.Click Dim retour As Long 1. retour = Client.ActiveConfig 2. Refserver = Client.GetServerRef("server0") 3. Refgrpsortie = Client.GetGroupRef(Refserver, "sortie") 4. Refm1av = Client.GetItemRef(Refgrpsortie, "TOPIC1-A.M1-AV") 4. Refm1ar = Client.GetItemRef(Refgrpsortie, "TOPIC1-A.M1-AR") End Sub Private Sub Ecriture (ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Ecriture.Click Dim value As Integer Dim status As Object Dim retour As Integer retour = Client.Write (1, Refm1av, 0, status) End Sub Private Sub Lecture (ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Lecture.Click Dim value, Quality As Object Dim Timestamp, status As Object Dim retour, source As Integer retour = Client.Read(Source, 1, Refcaph, value, Quality, Timestamp, status) If retour = 0 Then caph.Text = value(1) End If End Sub
Conclusions – Discussion Trouver un moyen facile pour manipuler des directives OPC sans que ça devienne de la programmation dure !!! Il existe une interopérabilité entre les objets COM et les objets .NET Comment programmer le port série sur la version .NET ?!? Rien n’est prévu sur le Framwork 1.1. Nécessité d’installer individuellement les différents ActiveX et nécessité d’installer les licences de ces ActiveX (exemple MSCOMM32.OCX). Difficultés techniques résolues, notamment lors de l’utilisation des types de données « variants » (propres aux objets COM). Ouverture Exploiter les possibilités du .NET pour offrir des services aux nœuds du niveau Entreprise de la pyramide CIM.