higway
Messages postés7Date d'inscriptionmardi 18 juillet 2006StatutMembreDernière intervention 7 juin 2007
-
6 juin 2007 à 18:04
higway
Messages postés7Date d'inscriptionmardi 18 juillet 2006StatutMembreDernière intervention 7 juin 2007
-
7 juin 2007 à 07:14
Bonjour
Voilà mon pb j'essai en vain sous vb de communiquer avec le port com de mon pc avec un automate EMG Le souci est que la lecture et l'ecriture des parametres se fait sous environnement dos mais avec xp pas moyen de d'acceder a l'automate avec la console msdos. Jai donc creer sous visual basic une routine qui envoi un shell comme commande mais en retour j'ai un message d'erreur du a la non ouverture du port com . J'ai essayé differents codes pour l'ouverture de ce port mais lors de l'execution toujours le même pb. Auriez vous une idée comment je peux faire pour d'une part ouvrir le port com puis lors de l'execution du shell reussir a communiquer avec mon automate
Merci d'avance pour vos reponces
cs_Jack
Messages postés14007Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201578 6 juin 2007 à 19:03
Salut
XP ne gère pas de mode DOS, ce n'est qu'une émulation.
Par contre, sous VB6, avec le composant MSComm32, tu peux dialoguer en utilisant un port COM, suffit de le paramétrer.
Charge et analyse le code des sources qui parlent de COM1 (dans le module de recherche)
Tu verras comment écrire et récupérer des données sur ce composant.
Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés
higway
Messages postés7Date d'inscriptionmardi 18 juillet 2006StatutMembreDernière intervention 7 juin 2007 6 juin 2007 à 19:23
J'ai essayé plusieurs code mscomm trouve sur le site mais pas de resultat peux etre esce moi ui le configure mal . Faut il ouvrir le pour avant d'executer la command ms dos ou faut il la faire en meme temps?
higway
Messages postés7Date d'inscriptionmardi 18 juillet 2006StatutMembreDernière intervention 7 juin 2007 6 juin 2007 à 19:34
Il est bien installe sous system32 et déclare , en fait je pense que je ne sais pas m'en servir c'est une premiere pour moi . Le soucis c'est de savoir dans quel ordre faut le faire dois je mette tout dans la meme form ou pas?
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_Jack
Messages postés14007Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201578 6 juin 2007 à 19:40
Dans quel ordre tu dois faire quoi ?
Oui, il y a un ordre :
- Paramétrer le composant : No de port, vitesse, parité ...
- L'ouvrir avec MSComm1.PortOpen
- Envoyer des données MSComm1.Output "Coucou l'automate"
- Recevoir des données avec l'évènement OnComm et un peu de programme pour savoir pourquoi le composant se réveille (données reçues ou erreur ?) ==> Voir l'aide de VB6
higway
Messages postés7Date d'inscriptionmardi 18 juillet 2006StatutMembreDernière intervention 7 juin 2007 6 juin 2007 à 19:44
pour les parametres c'est bon mais ce que je ne saisi pas c'est comment j'envoi ensuite la commande shell cad mon point .bat via la commande cmd.exe .j'ai la console qui s'ouvre est ca me dit qu'il ne peut pas dialoguer Faut il l'envoyer plutot avec mscomm1.output?
cs_Jack
Messages postés14007Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201578 6 juin 2007 à 19:47
Mais pourquoi veux-tu passer par DOS ?
Non, VB s'adresse directement au port COM.
Il suffit donc d'envoyer avec un MSComm1.Output le texte contenu dans tes fichier BAT.
Il suffit donc :
- Soit de recopier leur contenu dans ton programme
- Soit ouvrir les fichiers BAT comme des fichiers texte (le site est rempli d'exemples) et d'envoyer leurs contenus
cs_Jack
Messages postés14007Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201578 6 juin 2007 à 20:46
'Envoi une commande a un exe" Comment veux-tu que je te réponde ?
Quel genre de commande ? A quel EXE ? pour quoi faire ? un rapport avec la comm série ?
higway
Messages postés7Date d'inscriptionmardi 18 juillet 2006StatutMembreDernière intervention 7 juin 2007 6 juin 2007 à 21:45
Excuse moi je ne suis pas tres clair en fait
dans le batch j'ai " dload16.exe c:\xxx\xxx.h56" donc on execute l'exe en fonct de la config désirée car un meme systeme peux accepter plusieurs configs puis cet exe va ecrire les parametres dans le variateurs via le port com puis, le telechargement termine il renvoi le message comme quoi la procedure c'est bien realisée
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 6 juin 2007 à 23:07
Si j'ai bien suivi, c'est dload16.exe qui accède à ton matériel via le port COM
Et comme tu as précisé qu'il fonctionnait sous Dos, je présume que le 16 veut dire 16bits.
J'en deduit donc que cet exe est fait pour fonctionner sous Dos et Windows 3.1, éventuellement Win95.
J'en déduit surtout, (en m'avançant beaucoup quand même), que cet exe ne peut pas fonctionner sous un système 32bit qui plus est une plateforme NT pour la simple et bonne raison qu'il doit utiliser le port com en faisant des accès direct au matériel, chose que XP ne permet d'aucune manière (à l'exception des drivers).
Si je ne me trompe pas donc, il va te falloir trouver une version plus recente prévue pour tourner sous XP.
Sinon il te faudra reprendre par le code, tout ce que faisait cet executable. Ce qui signifie que tu devra avoir de la doc sur le protocole d'échange entre le matériel et ce logiciel. Eventuellement sniffer les échanges en te branchant en parallèle sur le cable entre le pc et le matériel.