le 10-04-2016 06:12 AM
Tu pourrais fournir le VI ? Histoire de voir s'il n'y a pas quelques choses qui est mal géré.
En écrivant cela, je pense par exemple à un accès lecture/ecriture sur un fichier avec une mauvaise gestion du chemin, car selon la fonction utilisée, le comportement est différent en mode développeur et en mode exécutable.
le 10-04-2016 06:19 AM
OK, vous trouverez en piece jointe les fichier du projet.
le 10-04-2016 06:44 AM
Aie, vu la taille de ton VI principal, ça va être compliqué de t'aider à partir du code :s...
Je suis étonné que tu fournisses un code aussi brouillon, tu me semblais avoir les compétences suffisantes pour faire du code "propre".
Là, c'est très compliquer à analyser. A minima, il faudrait au moins que tous tes sous-vi est une icone explicite, plutot que l'icone par défaut avec 1,2,3,......
L'autre point qui me gène est l'absence de gestion d'erreur, et, pour la recherche d'un bug dans le cas de la génération d'un exécutable, cela va être compliqué de trouver une solution.
Je te conseillerais de faire par élimination en mettant des indicateurs dans différentes zones de ton programme pour vérifier que celui-ci ne reste pas bloquer dans un cas précis te donnant l'impression que c'est la liaison Modbus le pb.
le 10-04-2016 07:05 AM
Les variables modbus ne sont lu que dans la boucles "Surveillance des communications réseaux" pour ensuite affecté des variables locales à l'appli. Donc si le modbus ne fonctionne pas, cela n'empeche pas le graph d'état (boucle principale) de tourner correctement. J'ai déjà fais le test avec des indicateurs pour vérifiez que le graph d'état se déroule bien et c'est le cas, c'est donc la liaison modbus qui pose problème...
Qu'est ce que tu veux dire par code brouillon et propre ? c'est juste un graph d'état qui se déroule, réceptionne, traite et enregistre des données, plus quelques fonctionnalité à coté.
Et pour ce qui est de la gestion d'erreur, j'ai réfléchis aux erreur qui pourrais intervenir et j'ai fais ce qu'il fallais pour qu'elle n'arrive pas, ce qui fais que la seule erreur que je n'arrive pas à traiter est le sujet de cette conversation...
le 10-04-2016 07:40 AM
Quand je parle de code propre, c'est en référence aux règles de bases de labview, que l'on ne cesse de rappeler sur ce forum.
- Bien documenter son code
- Ne pas avoir un VI ne tenant pas sur un écran
- Ne pas suivre le principe de gestion de flux de données
- Avoir plusieurs boucles while sur un programme sans aucune gestion de la séquence de démarrage.
Pour plus d'informations, tu peux regarder ce lien (http://www.ni.com/newsletter/51735/fr/), et le labview CORE 1 qui t'apportera pas mal d'informations (http://sine.ni.com/tacs/app/overview/p/ap/of/lang/fr/pg/1/sn/n24:12725/id/1582/).
Sinon pour lui faire un peu de pub, meme si ca fait longtemps qu'on l' a pas vu sur le forum, le livre de luc (https://decibel.ni.com/content/blogs/Luc_Desruelle/2015/09/24/les-10-commandements-du-d%C3%A9veloppe...)
Si j'ai un peu de temps dnas l'après midi, je regarde la fonction Modbus.
Bon courage,
Michael
le 10-05-2016 04:46 AM
Bonjour bonjour,
Désolé d'insister, mais je voulais savoir si vous aviez pu jeterun oeil à mon modbus ?
De mon coté, j'ai pu voir que les variables modbus ne me retournais pas d'erreur mais la mise en garde suivante :
Code : -1950679034
Source : Shared Variable in Tech-Scan.vi<APPEND>
This error or warning occured while reading the following Shared Varibale:
\\Poste de travail\Modbus\Diamètre cathode
\\localhost\Modbus\Diamètre cathode
L'état étant indiquer par une led verte, mon programme tourne bien mais je ne récupère que des zéro dans mes variables...
Cordialement,
Nathan
le 10-07-2016 04:25 AM
Bonjour Nathan, je viens de lire le post, et je ne suis pas convaincu que le problème soit le protocole Modbus. Je pense à la gestion de l'erreur.
> non, je n'ai pas regardé ton code. (je pourrai le regarder par la suite, mais j'aimerai que tu réalises quelques tests avant). J'ai déjà lu de nombreux post modbus avec des problèmes de version de Windows, mais à la fin cela n'a jamais été le problème. Alors je me permets de te demander de vérifier certains points, SVP
Pour rappel, tu es en modbus TCP (réseau, API TCP) et pas en modbus série (API VISA)
> tu utilises le tookit Modbus de NI? lequel? (en objet OOP ou l'ancien)
> version de l'OS Windows ? (Win7) 32bits ou 64?
> test ping validé
> le serveur modbus est l'automate (pas de firewall sur port 502) et le client le soft LabVIEW sous Windows, mais tu peux désactiver le firewall de Windows pour test
> Je te propose de faire vi exemple "simpliste" : Open TCP + Read Input register + close avec affichage du code cluster d’erreur
par exemple
Tester l'EXE sur qui fonctionne avec labVIEW développement : valider que cela fonctionne sans erreur
Tester l'EXE sur le PC sur lequel l'application ne fonctionne et sur plusieurs PC pour comparer
Luc Desruelle | Mon profil | Mon blog LabVIEW | Auteur livre LabVIEW : Programmation et applications - G Web
Certified LabVIEW Architect (CLA) & Certified TestStand Developper (CTD) | LabVIEW Champion
MESULOG - LinkedIn site | NERYS - NERYS Group
| directeur CEO MESULOG
| CODIR - NERYS group
le 10-07-2016 04:45 AM
Bonjour à tous,
j'ai réussi à résoudre mon problème, pour se faire j'ai transféré ma librairie Modbus sur le compactRIO en incluant le module IO Modbus dans la cible.
J'ai également du désactivé le dépoiement des bibliothèque partagé au démarrage de l'appli PC, qui créait un conflit.
Une fois tous ça fais, aucun problème n'est à signaler !
Je vous remercie pour votre aide et vous souhaite à tous une bonne continuation.
Cordialement,
Nathan
le 10-07-2016 07:04 AM
Salut 🙂
Tu as raison, j'étais sur un "autre truc", et depuis 2 mois je n'avais plus le temps de venir sur le forum.
Je repasse... et je tombe sur ce post...
très sympa pour le livre "LabVIEW" merci beacoup de faire de la pub 🙂
A+
Luc
Michael.C a écrit :Sinon pour lui faire un peu de pub, meme si ca fait longtemps qu'on l' a pas vu sur le forum, le livre de luc (https://decibel.ni.com/content/blogs/Luc_Desruelle/2015/09/24/les-10-commandements-du-d%C3%A9veloppe...)
Luc Desruelle | Mon profil | Mon blog LabVIEW | Auteur livre LabVIEW : Programmation et applications - G Web
Certified LabVIEW Architect (CLA) & Certified TestStand Developper (CTD) | LabVIEW Champion
MESULOG - LinkedIn site | NERYS - NERYS Group
| directeur CEO MESULOG
| CODIR - NERYS group
le 10-07-2016 07:10 AM
Salut Nathan,
"Une fois tous ça fais, aucun problème n'est à signaler !" : SUPER!
Mais... au début de ton post tu parles d'une machine de développement puis d'une distribution sur une machine seven.
Maintenanty c'est un "un cRIO"? je suis perdu, du RT et plus OS Win7?
par contre, tu n'utilises pas un toolkit LabVIEW modbus NI mais le module IO modbus (distribution sous RT de la libraire de variable). Cela explique ton erreur sur les variables partagées.
je suis content que cela fonctionne.
A+
Je vous remercie pour votre aide et vous souhaite à tous une bonne continuation.
Cordialement,
Nathan
NathV74 a écrit :j'ai réussi à résoudre mon problème, pour se faire j'ai transféré ma librairie Modbus sur le compactRIO en incluant le module IO Modbus dans la cible.
J'ai également du désactivé le dépoiement des bibliothèque partagé au démarrage de l'appli PC, qui créait un conflit.
Une fois tous ça fais, aucun problème n'est à signaler !
Nathan
Luc Desruelle | Mon profil | Mon blog LabVIEW | Auteur livre LabVIEW : Programmation et applications - G Web
Certified LabVIEW Architect (CLA) & Certified TestStand Developper (CTD) | LabVIEW Champion
MESULOG - LinkedIn site | NERYS - NERYS Group
| directeur CEO MESULOG
| CODIR - NERYS group