MASTER ASE. SMaRT LIAISON DDE. Pierre BONNET 2011-2012. Master ASE SMaRT Supervision Industrielle P. Bonnet



Documents pareils
PROGRAMMATION EVENEMENTIELLE sur EXCEL

Programmation VBA/Excel. Programmation VBA. Pierre BONNET. Masters SMaRT & GSI - Supervision Industrielle P. Bonnet

Visual Basic for Applications

Évaluation des compétences. Identification du contenu des évaluations. Septembre 2014

Rapport de Mini-Projet en ArcGIS Engine

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

INSTALLATION DE L APPLICATION DU CONTEXTE ITASTE

Développement d applications Internet et réseaux avec LabVIEW. Alexandre STANURSKI National Instruments France

Microsoft OSQL OSQL ou l'outil de base pour gérer SQL Server

//////////////////////////////////////////////////////////////////// Administration bases de données

INTRODUCTION à Microsoft Dynamics CRM 2013 FR80501

Configurer la supervision pour une base MS SQL Server Viadéis Services

Table des matières Avant-propos... V Scripting Windows, pour quoi faire?... 1 Dans quel contexte?

Micro-ordinateurs, informations, idées, trucs et astuces utiliser le Bureau à distance

Formation VBA 3 Interagir

Logiciel Enterprise Guide Version 1.3 Windows

Tutoriel de formation SurveyMonkey

Bienvenue sur Lab-Windows Il n'y a de vents favorables que pour ceux qui ont un cap

Formateurs : Jackie DAÖN Franck DUBOIS Médiapôle de Guyancourt

Supervision et infrastructure - Accès aux applications JAVA. Document FAQ. Page: 1 / 9 Dernière mise à jour: 15/04/12 16:14

SQL Server 2012 Implémentation d'une solution de Business Intelligence (Sql Server, Analysis Services...)

Le modèle client-serveur

Installation FollowMe Q server

CALC2QIF Conversion de données OpenOffice au format QIF

Sendmail milter/greylisting

1 TD 2 : Construction d'une chier Acrobat et envoi par

Installation de GFI MailEssentials

Processus! programme. DIMA, Systèmes Centralisés (Ph. Mauran) " Processus = suite d'actions = suite d'états obtenus = trace

Les commandes relatives aux réseaux

LES ACCES ODBC AVEC LE SYSTEME SAS

Protocoles DHCP et DNS

Exchange Server 2010 Exploitation d'une plateforme de messagerie

Asset Management Software Client Module. Manuel d utilisation

Guide d'installation et de configuration de Pervasive.SQL 7 dans un environnement réseau Microsoft Windows NT

Travaux Pratiques de Commande par ordinateur 1 TRAVAUX PRATIQUES

Les messages d erreur d'applidis Client

Jexcel. V1.1.4 Manuel d'utilisation. modifié le 16 nov. 2004

Préparation à l examen EFA en Macro

Introduction aux outils BI de SQL Server Tutoriel sur SQL Server Integration Services (SSIS)

Catalogue des Formations Techniques

L3 informatique TP n o 2 : Les applications réseau

FTP / WebDeploy /WebDAV. Manuel

Devoir Data WareHouse

Couche application. La couche application est la plus élevée du modèle de référence.

Le langage C++ est un langage de programmation puissant, polyvalent, on serait presque tenté de dire universel, massivement utilisé dans l'industrie

CATALOGUE DES FORMATIONS 2014

MS SQL Express 2005 Sauvegarde des données

Cette option est aussi disponible sur les clients Windows 7 sous la forme d un cache réparti entre les différentes machines.

Le Client/Serveur avec Enterprise Miner version 4

NOUVEAUTES de Microsoft Dynamics CRM 2011 REF FR 80342A

Paramétrer un compte Exchange pour Microsoft Outlook 2013

ENDNOTE X2 SOMMAIRE. 1. La bibliothèque EndNote 1.1. Créer une nouvelle bibliothèque 1.2. Ouvrir une bibliothèque EndNote 1.3. Fermer une bibliothèque

18 TCP Les protocoles de domaines d applications

Le service FTP. M.BOUABID, Page 1 sur 5

Modélisation et Gestion des bases de données avec mysql workbench

Bluetooth pour Windows

HelpAndManual_unregistered_evaluation_copy GESTIONNAIRE D'ALARMES CENTRALISE OPTIM'ALARM. Manuel d'utilisation

Clients et agents Symantec NetBackup 7

Guide de formation avec cas pratiques. Programmation. Philippe Moreau Patrick Morié. Daniel-Jean David

Utilitaires méconnus de StrataFrame

Utilisation de JAVA coté Application serveur couplé avec Oracle Forms Hafed Benteftifa Novembre 2008

Déploiement, administration et configuration

Retrospect 7.7 Addendum au Guide d'utilisation

Développer avec les technologies ESRI. ESRI Developer Network (EDN) Gaëtan LAVENU ESRI France Jérémie MAJEROWICZ ESRI France

Spécifications du logiciel. Mise à jour : 24 février 2011 Nombre total de pages : 7

Technicien Supérieur de Support en Informatique

Logiciel Vertec Notes de la Release 5.8

Network Shutdown Module V3 Extension du Manuel Utilisateur pour architecture Virtualisée VMWare ESX Server 3, 3.5

PROGRAMME «INFORMATICIEN MICRO»

Fonctions avancées de document dans Word 2003 Options de collaboration dans Word 2003

Qu'est-ce que c'est Windows NT?

Master d'informatique 1ère année. Réseaux et protocoles. Architecture : les bases

SOLUTION.Services. ALTECH le 19/10/2012. Tel : Mobile : gtouzan@altech.fr. Page 1 de 16

AJAX. (Administrateur) (Dernière édition) Programme de formation. France, Belgique, Suisse, Roumanie - Canada

Formation Excel, Niveau initiation, module 1 DUREE DE LA FORMATION OBJECTIFS DE LA FORMATION

TechSoftware Présentations

L annuaire et le Service DNS

Thème 4 Langages de commandes Scripting pour MS Windows. Automatiser les tâches d administration - Scripting pour Windows

Excel. Identification. Informations sur vos besoins et objectifs. Notions fondamentales. Fiche de validation des besoins en formation Bureautique

Gestion des licences et activation des logiciels : déploiement d'un logiciel à l'aide de Symantec Ghost

Guide de déploiement

Installation SQL Server 2005 Express sur le serveur

Mises à jour CELCAT depuis la version 6.4

Paginer les données côté serveur, mettre en cache côté client

2. Cliquez Contact Directory of Public Administration. 5. Tapez le mot de passe - Hello (pour OFPA). Changez le mot de passe en cas de

Guide pour l Installation des Disques Durs SATA et Configuration RAID

Initiation à VBA pour Excel. Philippe Bernard Ingénierie Economique et Financière Université Paris-Dauphine

Installation de GFI FAXmaker

Edutab. gestion centralisée de tablettes Android

Chapitre VII : Principes des réseaux. Structure des réseaux Types de réseaux La communication Les protocoles de communication

Utilisation de l'outil «Open Office TEXTE»

OUTIL DE TRAVAIL COLLABORATIF

Développement d un logiciel de messagerie instantanée avec Dotnet (version simplifiée)

SPECIFICATIONS TECHNIQUES : Gestion des Médicaments et des commandes de médicaments

Préconisations Portail clients SIGMA

Exchange Server 2013 Préparation à la certification MCSE Messaging - Examen

Mise en route d'une infrastructure Microsoft VDI

Notes de cours : bases de données distribuées et repliquées

Transcription:

MASTER ASE SMaRT LIAISON DDE Pierre BONNET 2011-2012 1

PRINCIPE DE LA LIAISON DDE ENTRE TACHES Processus d échange natif sous Windows - existe depuis les premières versions de Windows - en concurrence avec d'autres technologies comme les named pipes, mailslots, NetBIOS, Windows Sockets, Remote Procedure, Calls RPC. intégré à de nombreux logiciels usuels (Word, Excel, Matlab, OpenOffice...) mode d'échange parmi les plus utilisés dans le monde industriel. évolutions FastDDE, AdvanceDDE... Les fonctions DDE ne plus supportées par Microsoft, en particulier dans VB.. Des bibliothèques libres sont disponibles sur le Web exemple : http://files.codes-sources.com ou http://ndde.codeplex.com/ 2

PRINCIPE DE LA LIAISON DDE ENTRE TACHES Chaque application possède une interface de gestion de la liaison DDE Un lien DDE ne peut être lancé sur une application serveur que si cette dernière a été conçue pour répondre à ce type d'événement (interface serveur). Pour faciliter l écriture des interfaces, Microsoft propose la bibliothèque C de développement Dynamic Data Exchange Management Library (DDEML). Le langage Delphi offre par exemple une très grande facilité pour créer l interface d une application serveur. 3

FONCTIONNEMENT DE LA LIAISON DDE ENTRE TACHES Fonctionnement général du service: Demande d'ouverture du canal de communication faite par le client. DDEInitiate - Le client reçoit un «handle» identifiant sa connexion au serveur. - Si l'application serveur n'est pas lancée, le système peut la lancer automatiquement (option). - En cas d'échec d'accès à l'application serveur, le client est informé. - Le serveur peut rejeter la demande de connexion Fermeture du canal en fin d échange DDETerminate 4

FONCTIONNEMENT DE LA LIAISON DDE ENTRE TACHES Fonctionnement général du service: Echange de données à la demande du client demande de lecture d une donnée sur le serveur: DDERequest demande d écriture d une donnée sur le serveur: DDEPoke demande d'éxécution d'un script (chaîne) sur le serveur: DDEExecute Type de données échangées: toute donnée en format «clipboard» (presse-papier) en ASCII TEXT DDE FORMAT en BINARY TABLE DDE FORMAT("Fast-Table") 5

FONCTIONNEMENT DE LA LIAISON DDE ENTRE TACHES Eléments de définition du lien Un lien vers une application serveur est défini par 3 champs: le champ Application désigne le nom DDE de l'application serveur. [Le nom du service DDE peut être différent du nom du programme] le champ Topic interprété par le serveur. ce champ désigne généralement une fonctionnalité de base du serveur, comme par exemple le fichier sur lequel le serveur doit travailler. le champ Item interprété par le serveur désigne généralement le nom de la variable à échanger. Ce champ est optionnel; certaines applications "serveur" n'y font pas référence 6

FONCTIONNEMENT DE LA LIAISON DDE ENTRE TACHES Structure de données d un serveur multi-applications Certains serveurs peuvent présenter plusieurs services DDE (le superviseur Panorama en est un exemple; chaque service est spécifié par un nom d'application différent (ou un nom de topic différent selon la conception du serveur). 7

FONCTIONNEMENT DE LA LIAISON DDE ENTRE TACHES Exemple de lien DDE sur Tableur Excel (formule) Excel est à la fois serveur et client DDE L'écriture d'une liaison DDE est directe dans le sens Serveur -->Excel (client) le lien DDERequest fait partie du vocabulaire des formules de calcul Excel (champ calculé) la syntaxe de la formule Excel est : = Application Topic! Item L'affectation d'une valeur à une cellule par un lien DDE est équivalent à un DDERequest automatique sous OpenOffice, la formule est : = DDE(Application ; Topic ; Item) 8

FONCTIONNEMENT DE LA LIAISON DDE ENTRE TACHES Exemple: Lien DDE sur tableur Excel (formule) Exemple: échange entre deux applications Excel ouvertes simultanément serveur «Compta.xls» client «Recap.xls» lecture de la cellule A1 du classeur «Compta» par l application «Recap» ; la valeur sera affichée dans la cellule B1 du classeur "Recap» formule de B1 : = Excel Compta.xls! L1C1 Remarques: la syntaxe de désignation des cellules du type Ligne/Colonne (vocabulaire transposé en Row/Column en anglais mais refusé sur un Excel français!). le lien DDE écrit sous forme de fonction dans une cellule est exécuté automatiquement lors de la réécriture de la valeur source sur le serveur. La suppression du recalcul automatique côté client entraîne l'arrêt de l'échange DDE. 9

PROGRAMMATION VBA DE LA LIAISON DDE Activation de la liaison DDE sous programmation VBA Les commandes de base d'échange DDE sous VBA sont: NumLien = DDEInitiate(DdeApplName, TopicName) DDEPoke NumLien, ItemName, Valeur Valeur = DdeRequest(NumLien, ItemName) DDETerminate(NumLien) Les paramètres DDEApplName, TopicName et ItemName sont de type chaîne de caractères. Les commandes sont "bloquantes" pour l'application cliente en cas de lenteur ou de non réponse du serveur. La liaison est dite synchrone : le client attend la réponse du serveur Un mécanisme de TimeOut existe pour sortir de ces fonctions en cas de blocage prolongé 10

PROGRAMMATION DE LA LIAISON DDE Il est possible de demander au serveur d'avertir le client de tout changement dans la donnée demandée (liaison asynchrone). DDEAdvise DDEUnadvise Le client est prévenu par un évènement - il reçoit automatiquement la donnée («hot link») - il demande la donnée («warm link») sur réception de l'évènement Fonctions non-implantées en VBA Existent dans de nombreux autres langages plus d'information sur les aspects synchrone/asynchrone : http://www.angelfire.com/biz/rhaminisys/ddeinfo.html 11

PROGRAMMATION DE LA LIAISON DDE Exemple de liaison asynchrone Matlab<-->Excel (DDEAdvise) % Initialize conversation with Excel. chan = ddeinit('excel', 'Classeur1'); % Set range of cells in Excel for poking. range = 'l1c1:l20c20'; % Create a surface of peaks plot. h = surf(peaks(20)); % Get the z data of the surface. z = get(h, 'zdata'); % Poke the z data to the Excel spread sheet. rc = ddepoke(chan, range, z); % Set up a hot link ADVISE loop with Excel % The callback (event) sets the zdata and cdata for the surface h to be the new data sent from Excel. rc = ddeadv(chan, range,'set(h,''zdata'',z);set(h,''cdata'',z);','z'); % Create a push button that will end the ADVISE terminate the DDE conversation, c = uicontrol('string','&close','position',[5 5 80 30],'Callback',... 'rc = ddeunadv(chan,range);ddeterm(chan);close;'); 12

PROGRAMMATION DE LA LIAISON DDE La fonction DDEExecute permet de transmettre des instructions à l application serveur (elle-même pouvant les retransmettre au périphérique éventuellement) La fonction "execute" suppose que le serveur peut interpréter des commandes sous forme de chaîne de caractère (par exemple: Matlab, Excel...) Exemples d application: - mise en service de l appareil, arrêt, programmation de l appareil - exécution d'une "macro" dans Excel DDEExecute("[RUN("MyMacro")]") 13

PROGRAMMATION DE LA LIAISON DDE Exemple de fonction DDEExecute Excel-->Matlab 'Exemple de lien DDE avec une variable Matlab du type vecteur Sub Lien_Matlab() Dim MyArray Dim MyChannel 'Demarrage Matlab Shell "C:\Matlab6\bin\win32\Matlab.exe" MyChannel = DDEInitiate("Matlab", "Engine") DDEExecute MyChannel, "h=peaks(10);colormap(pink);mesh(h);drawnow" MyArray = DDERequest(MyChannel, "h") Sheets("feuil1").Select Range("A1:J10").Value = MyArray 'Fermeture de Matlab DDEExecute MyChannel, "exit" 'Fermeture du lien DDE DDETerminate MyChannel End Sub 14

PROGRAMMATION DE LA LIAISON DDE Recherche des liens modifiés dans un classeur L'événement Worksheet_Change() ne répond pas à un changement de valeur d'un lien DDE. La méthode SetLinkOnData permet de lancer une procédure en cas d'activation d'un lien DDE ou OLE. 'Liste des liens DDE ou OLE du classeur et définition de la procédure à exécuter Sub LinkList() Dim ListeLiens As Variant ListeLiens = ActiveWorkbook.LinkSources(xlOLELinks) If Not IsEmpty(ListeLiens) Then For i = 1 To UBound(ListeLiens) ActiveWorkbook.SetLinkOnData ListeLiens(i), "LinkChange" & Mid$(Str$(i), 2, 1) 'Définit la procédure à appeler si le lien i change Next i Else MsgBox "Ce classeur ne contient pas de liaison DDE ou OLE" End If End Sub 'Procédures à exécuter sur changement de valeur DDE ou OLE Sub LinkChange1() MsgBox "Lien 1 modifié" End Sub Sub LinkChange2() MsgBox "Lien 2 modifié" End Sub 15

LIAISON DDE ENTRE DEUX TACHES RESEAU Lien NetDDE Le lien NetDDE permet d établir l échange DDE entre deux applications supportées par deux machines distantes reliées en réseau (ethernet) Le lien NetDDE est fait par le module NetDDE.exe fourni par divers constructeurs (Wonderware, Microsoft...) 16

LIAISON DDE ENTRE DEUX TACHES RESEAU Lien NetDDE Le module NetDDE est un service sous WindowsXP droits d administration réservés aux utilisateurs autorisés démarrage manuel ou automatique Le service NetDDE gère les droits d accès du client auprès du serveur sécurité des transactions Les informations d administration du lien DDE sont sauvegardées dans la base de registre (HKEY_LOCAL_MACHINE\Software\Microsoft\NetDDE\DDE Shares\ ) Le service NetDDE présente un interface de type DDE côté application pas de modification de l applicatif pour un travail en réseau 17

LIAISON DDE ENTRE DEUX TACHES RESEAU Lien NetDDE (WinXP): Propriétés 18

LIAISON DDE ENTRE DEUX TACHES RESEAU Lien NetDDE: Fonctionnement 19

LIAISON DDE Complément Lien DDE sous VB6 Il est possible de lier un contrôle VB6 (boîte Texte, curseur...) à un serveur DDE externe. Les fonctions sont différentes de la syntaxe VBA; de plus, la fonction hotlink/warm link est possible. Lecture synchrone Label1.LinkTopic = "Excel Classeur1.xls" DDE Service Name and Topic Label1.LinkItem = "Tension" DDE Item Name Label1.LinkMode = 2 0=no link 1=warm link 2=cold link Label1.LinkRequest... Label1.LinkMode = 0 Close the link Ecriture Request Data from Excel Label1.LinkTopic = "Excel Classeur1.xls" Label1.LinkItem = "Courant" DDE Item Name Label1.LinkMode = 2 Label1.Caption = "1.23" Set up data string Label1.LinkPoke... Send data Label1.LinkMode = 0 Close the link 20