Bonjour,
Je me présente, je suis stagiaire dans une entreprise où nous cherchons à faire de la spectroscopie.
Je dois à l'aide de LabVIEW contrôler OPUS (by brunker) qui est logiciel d'acquisition de spectre spécifique à la spectroscopie de masse.
Je dispose de LabVIEW 2014 (32bit et 64bit) et d'OPUS version 7.0.129.
Pour cela un collègue m'a lancé sur la piste de gestion d'OPUS via la méthode DDE(dynamic data exchange).
J'ai pu avancer sur le sujet et je peux donc maintenant contrôler au minimum OPUS via DDE ( fermeture d'OPUS, chargement de spectre, chargement des paramètres). Il me reste donc une seul tache à faire qui me pose problème : le lancement d'acquisition.
J'ai tout d'abord pensez utiliser ActiveX ( et cela a été confirmé par un autre post de ma part sur ce forum.) mais j'ai découvert qu'à cause d'un fichier corrompu je ne peux pas utiliser ActiveX sur LabVIEW ( le fichier DDClnt36.ocx si quelqu'un à des infos).
Je suis donc retourner sur DDE et je me suis rendu compte qu'au final c'est pas si mal.
Mon problème est le suivant :
Je peux grâce à LabVIEW contrôler en partie OPUS. Une seule commande me résiste (tel les irréductibles gaulois) , c'est le lancement d'une acquisition.
Je sais que la plupart d'entre vous ne connaissent pas mon logiciel OPUS mais c'est un logiciel comme un autre. En ce moment j'essaye donc de lancer une Macro via DDE puisque lancer la macro ci-jointe me permet de lancer une acquisition.
Vous trouverez un screenshot de mon code en pièce jointe car je ne peux le mettre ici ( problème de chargement ?).
Je vous joint le code de la macro (si cela peut vous être utile) :
REM This Macro shows how to measure a spectrum
VARIABLES SECTION
REM When using the macro editor this FILE variable is automatically added after inserting the MeasureSample function
FILE <$ResultFile 1> = AB;
PROGRAM SECTION
REM The measured spectrum is returned in the FILE Variable
REM Note that ONLY the experiment path and name are required for measurement commands!
<$ResultFile 1> = MeasureSample (0, {EXP='Default.xpm', XPP='C:\OPUS_NT\XPM'});
PARAMETER SECTION
(Rem : ligne de commentaire)
Et je vous joint aussi une partie du PDF Programing fourni par OPUS ( je ne peux le mettre en pièce jointe) concernant les différentes fonctions que j'utilise (ceci n'est pas un code) :
La MacroID correspond à une suite de chiffre présent dans mon data (sortie de ma fonction request ).1ère commande :
12.3.21 START_MACRO
Syntax:
“START_MACRO <Macro file name>[<Number of input parameters>]”
Description:
Starts an OPUS macro. Input parameters can be forwarded to the macro. If
parameters are exchanged, the total number of parameters must be defined as
the second parameter. If this number is omitted, then it will be set to 0; in this
case, no parameters are read. If the number of input parameters is larger than 0,
the input parameters <input parameter 1>, <input parameter 2>, ...., <input
parameter N> have to be sent by the client program.
2ème commande ( similaire ) :
12.3.26 RUN_MACRO
Syntax:
Equivalent to START_MACRO
Description:
The RUN_MACRO command starts a macro. Contrary to START_MACRO,
the control is returned immediately after the macro was started. The
RUN_MACRO command does not wait for the macro to terminate and also
doesn’t return any results.
COMMANDE DE RÉPONSE :
12.3.27 MACRO_RESULTS
Syntax:
“MACRO_RESULTS <MacroID>”
Description:
The MACRO_RESULTS command retrieves the result parameters of a macro
session that was started with the ID <MacroID>, using the RUN_MACRO command.
Le problème est là : Dès que je lance un macro il me dit qu'il y a une erreur dans le macro "Error in Macro" ( alors que je sais que non puisque celui-ci marche bien sur mon logiciel OPUS).
Mon diagramme est-il bon pour lancer un macro ? Ne trouvant aucune doc sur les différents VIs de DDE , le VI resquest est-il le bon VI à utiliser ? Si non , quel VI faut-il utiliser ?
Quelle est vraiment la différence entre le VI Request et Execute ?
Je viens vers vous puisque j'ai épuisé mes choix en consultant la plupart des sites concernant LabVIEW et le DDE.
Je vous remercie encore de votre temps.
Yotipp
Partager