le 11-17-2015 03:24 PM
Bonjour à tous,
Je souhaite faire appel à un script GnuPlot à partir de LabVIEW.
Ce script fonctionne dans un terminal à l'aide de la commande gnuplot <nom_du_script.gnuplot> nom_du _fichier_de_sortie.png
Je précise que pour lancer cette commande je suis dans le répertoire ou se situe l'exécutable gnuplot.
J'obtiens bien une courbe gnuplot dans un fichier png.
J'essaie d'intégrer cette commande dans LabVIEW à l'aide de la "commande systeme" sans succès.
Si je passe en entrée "ligne de commande" : C:\Program Files\gnuplot\bin\gnuplot C:\nom_du_script.gnuplot , j'obtiens sur la sortie standard une sortie qui semble correspondre au contenyu d'un fichier png. Si je copie cette sortie dans un fichier png le fichier n'est pas reconnu.
Toute tentative de passer la commande : C:\Program Files\gnuplot\bin\gnuplot C:\nom_du_script.gnuplot nom_du_fichier_de_sortie.png se solde par une erreur sur la sortie du fichier png. J'ai par contre toujours sur la sortie standard le texte correspondant au fichier png
idem avec d'autres syntaxes comme C:\Program Files\gnuplot\bin\gnuplot <C:\nom_du_script.gnuplot> nom_du_fichier_de_sortie.png sauf aucune sortie standard
En sortie d'erreur : "essai.png", line 0: cannot open script file 'essai.png'
Si je pouvais au moins récupérer la sortie standard et créer le fichier png ce serait bien mais je dois avoir dans ce cas soit une mise en forme ou encodage incorrect.
Merci pour toute aide.
Alain
Résolu ! Accéder à la solution.
le 11-18-2015 02:59 AM
Bonjour,
Essaye avec cette ligne de commande :
cmd /c "C:\Program Files\gnuplot\bin\gnuplot <C:\nom_du_script.gnuplot> nom_du_fichier_de_sortie.png"
Cdt,
Michael
le 11-18-2015 05:53 AM
Bonjour Michae,
J'ai essayé ta ligne de commande. Voici sa sortie d'erreur "standard error" de la commande système :
'C:\Program ' n'est pas reconnu en tant que commande interne ou externe, un programme ex,cutable ou un fichier de commandes.
par contre si je copie l'exécutable gnuplot.exe et que je saisiscmd /c "C:\gnuplot c:\nom_du_script.gnuplot C:\nom_du_fichier_de_sortie.png" gnuplot se lance mais j'ai obligatoirement des erreur gnuplot liées à l'absence de dlls.
Je continue d'approfondir le pourquoi le chemin Program Files ne passe pas, k'espace sans doute.
Alain
le 11-18-2015 06:25 AM
Le souci c'est le gestion des espaces qui sont difficiles à gérer avec cette fonction.
En pièce jointe un vi avec la méthode que j'ai utilisé pour contrer cela.
Cdt,
Michael
11-18-2015 12:33 PM - modifié 11-18-2015 12:34 PM
Salut Michael,
Avec ton exemple la commande système plante.
Le plus loin que je suis allé c'est en passant cette commande :
C:\Program Files\gnuplot\bin\gnuplot C:\essai.gnuplot essai2.png
La sortie standard génère bien un code qui semble correspondre à un fichier PNG par contre la sortie d'erreur donne : "essai2.png", line 0: Cannot open script file 'essai2.png'
Or le deuxième argument est une sortie.
Je mets en PJ deux images PNG une générée par la commande gnuplot dans un terminal (essai.png), une en enregistrant la sortie standard dans un fichier texte (essai2.png). La deuxième est illisible, il doit y avoir un encodage spcifique. Je vais y jeter un oeil.
Mais je préfèrerais faire fonctionner la ligne de commande complète dans LabVIEW plutôt que de devoir reconstruire un fichier PNG propre à partir de la sortie standard.
Si quelqu'un à une idée.
Alain
le 11-18-2015 01:56 PM
J'apporte une partie de la solution à mon problème.
J'ai rajouté dans la variable d'environnement PATH le chemin vers l'exécutable de gnuplot.
J'ai passé la commande suivante à la commande système LabVIEW : cmd /c gnuplot <C:\nom_du_script.gnuplot> C:\nom_du_fichier.png
Du coup j'ai une belle courbe. Mais cela oblige à modifier la variable d'environnement. Peut être une autre solution existe. Je chercherai.
Je peux donc avancer dans mon intégration de gnuplot dans LabVIEW.
Alain
le 11-19-2015 01:22 AM
Merci pour ton retour.
Si le point est clos, ou du moins contourner, passe le thread en résolu, en pointant vers ta solution.
Cdt,
Michael
le 11-19-2015 03:52 AM
Ma solution fonctionne. Elle ne me satisfait pas pleinement car je dois modifier la variable d'environnement.
Je vais mettre comme résolu et je continue à chercher pourquoi sur un terminal la commande gnuplot ne pose pas de problèmes et pourquoi sous LabVIEV elle ne passe pas.
Je vous tiendrai au courant si je trouve une meilleure solution.
Si des personnes sont intéressées je pourrai également partager mes travaux sur l'intégration de gnuplot dans LabVIEW.
Alain
le 11-19-2015 02:20 PM
salut, je viens de regarder l'utilité de "GnuPlot"
Gnuplot est un logiciel qui sert à produire des représentations graphiques en deux ou trois dimensions de fonctions numériques ou de données. Le programme fonctionne sur de nombreux ordinateurs et systèmes d'exploitation et peut envoyer les graphiques à l'écran ou dans des fichiers dans de nombreux formats.
Ma question va sembler "étrange", mais LabVIEW permet de faire des graphs en 2D ou 3D, et d'exporter l'image en png. Alors pourquoi passer par un autre logiciel? Merci A+
Luc Desruelle | Mon profil | Mon blog LabVIEW |
LabVIEW Architect (CLA) & TestStand Developper (CTD) | LabVIEW Champion
MESULOG | NERYS
le 11-20-2015 02:58 AM
Bonjour Luc,
Je vous l'accorde intégrer Gnuplot dans LabVIEW présente très peu d'intérêt vu que l'on peut comme vous le dite exporter un graphe au format image ou utiliser Diadem pour la présentation de données.
Alors pourquoi me lancer dans cette intégration me direz-vous ? Pour deux raisons.
La première tout simplement pour 'm'amuser' à créer une librairie et par cette occasion apprendre de nouvelles fonctionnalités.
La deuxième est que si vous regardez les démos de Gnuplot (http://gnuplot.info/demo/) vous verrez que les possibilités de présentation sont infiniment plus grandes que les quelques options de graphes de LabVIEW. Travaillant dans un laboratoire de recherche en tant que soutien aux essais, les doctorants ou chercheurs ont l'habitude d'utiliser des plotteurs (matlab, scilab, ...) pour sortir des graphes très personnalisés et de haute qualité typo pour intégration dans Latex puis publication. Je voulais donc leur offrir la possibilité d'avoir directement en sortie d'acquisition un graphe personnalisable et directement intégrable dans leur publi.
Mais je suis d'accord avec vous cette librairie ne présente que très peu d'intérêt pour la quasi totalité des utilisateurs.
Alain