nicrolfi
Messages postés138Date d'inscriptionsamedi 10 mars 2007StatutMembreDernière intervention16 avril 2013
-
30 mai 2007 à 16:59
nicrolfi
Messages postés138Date d'inscriptionsamedi 10 mars 2007StatutMembreDernière intervention16 avril 2013
-
5 juin 2007 à 18:09
Bonjour,
J'ai chargé un programme en VB sur ce site (programme de pilotage de moteurs pas à pas par le port //).
Je n'arrive pas à faire tourner ce programme et, c'est également l'avis de l'auteur de la source, je rencontre des difficultés peut-être dues aux différences de version.
Voici donc les questions que je me pose et des réponses pourraient beaucoup m'aider:
- sous Win XP, il semble nécessaire d'utiliser une dll d'entrée sortie par le port // (inpout.dll par exemple)
- le programme est fait dans VB6 et je n'ai que VB5. Dans VB6, le programme fonctionne (chez l'auteur) en déclarant inpout.dll en sortie comme SUB et en entrée comme Function. Ces déclarations sont écrites dans le code de la feuille VB. Dans VB5, cela ne marche pas. Ne faut il pas déclarer les SUB et Function (externes) dans un module plutôt que dans la feuille? Si oui, est-ce la même syntaxe?
- dans VB6, il ne semble plus nécessaire de déclarer des SUB et Function internes (le code de la sub ou de la function est écrit dans la feuille). Faut-il les déclarer sous VB5? Si oui, où?
Mille merci d'avance pour l'aide....car je suis bloqué...
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 30 mai 2007 à 21:17
Exactn Cast,
Je n'avais pas vu que tu l'avais trouvée, cette Dll, et que tu en donnais le lien.
Rlle marche vien, en tout cas (plus d'erreur)
Mais, sans la carte correspondante, je ne peux vérifier plus loin.
Je pense que notre ami a maintenant tout ce qu'il lui faut.
A lui de jouer.
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 30 mai 2007 à 21:24
Pour tester ??? MDR
Tu connecte une imprimante sur le port //
Tu envoie les caractères 'B', 'o', 'n', 'j', 'o', 'u', 'r' et fin de document (connais plus le code), et si tu as de la change et un joujou quelque peu compréhensive, tu admire le résultat.
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 30 mai 2007 à 21:31
Ouais...
Faudrait alors que j'ouvre le capot et que je fasse ce qu'il convient de faire pour restituer ce que j'ai enlevé : une sortie sur port parallèle...(je n'en ai plus en ce moment...)
Il est fou, ce jmf, tu peux me croire ...
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 30 mai 2007 à 21:37
Oui, puis c'était une boutade.
Ce que j'ai dis est possible mais c'est plus complexe que ça, il faut se regérer entièrement le protocole à la main. Et puis si avec une matricielle ça marche encore bien, c'est bien plus compliqué avec les imprimantes modernes qui ne se contente plus du protocole de base pour imprimer.
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 30 mai 2007 à 21:50
Pour en revenir au problème de nicrolfi, il est vrai que personnellement j'ai toujours travailler avec un compte avec des droits administrateurs.
Cette dll créant et installant un driver dynamique, il est possible que si tu travaille avec un compte utilisateur ayant des droits restraint, tu n'as peut-etre pas le droit d'installer un tel driver.
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 30 mai 2007 à 22:03
regarde dans le répertoire Binaries\Dll, tu as inpout.dll, c'est ce fichier qui est à placer dans le dossier System32.
Ensuite dans le répertoire test applications\VB_test_app, tu récupère le fichier INPOUTV4.bas, que tu copie dans le réertoire de ton projet puis tu l'inclu à ton projet.
Et tu supprime toutes les déclarartions des fonctions que tu avait pu faire auparavent.
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 30 mai 2007 à 22:05
regarde dans le répertoire Binaries\Dll, tu as inpout.dll, c'est ce fichier qui est à placer dans le dossier System32.
Ensuite dans le répertoire test applications\VB_test_app, tu récupère le fichier INPOUTV4.bas, que tu copie dans le réertoire de ton projet puis tu l'inclu à ton projet.
Et tu supprime toutes les déclarartions des fonctions que tu avait pu faire auparavent.
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 30 mai 2007 à 22:06
regarde dans le répertoire Binaries\Dll, tu as inpout.dll, c'est ce fichier qui est à placer dans le dossier System32.
Ensuite dans le répertoire test applications\VB_test_app, tu récupère le fichier INPOUTV4.bas, que tu copie dans le réertoire de ton projet puis tu l'inclu à ton projet.
Et tu supprime toutes les déclarartions des fonctions que tu avait pu faire auparavent.
nicrolfi
Messages postés138Date d'inscriptionsamedi 10 mars 2007StatutMembreDernière intervention16 avril 2013 30 mai 2007 à 22:51
Ca ne marche pas encore, mais il y a un mieux:
Tout est bien branché...(j'ai fait un test)
Je lance le progrmme...l'écran de commande apparait...j'indique les données dans les fenêtres...je lance en cliquant sur le petit triangle noir couché >...un bouton témoin modifie sa couleur sur l'écran (passe de rouge à vert)
Il ne se passe rien (le moteur ne tourne pas et le témoin reste vert ) ...le sablier reste actif...je veut arrêter le programme en cliquant sur le carré noir...rien
Quand je clique sur la croix tout-à-fait en haut à droite, le programme fini par se fermer et apparait un message "Le programme ne répond pas".
Attention, je n'ai pas enregistré la dll dans regsvr32...
Je vais revoir si j'ai bien tout fait comme vous m'avez demandé...
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 31 mai 2007 à 08:30
si la dll est dans ton repertoire System32, declare simplement :
Private Declare Function Inp Lib "InpOut32.dll" Alias "Inp32" (ByVal PortAddress As Integer) As Integer
Private Declare Sub Out Lib "InpOut32.dll" Alias "Out32" (ByVal PortAddress As Integer, ByVal Value As Integer)
nicrolfi
Messages postés138Date d'inscriptionsamedi 10 mars 2007StatutMembreDernière intervention16 avril 2013 31 mai 2007 à 15:37
Bonjour à tous et en particulier à Renfield, Cazy, Jmfmarques, Exploreur, VBGenesis...
Merci pour les nouvelles réponses.
Je ne parlerai plus de regsvr32, juré promis.
J'ai fait toute la procédure que vous avez préconisée et les instructions de Renfield reprise dans son message de 8.30.31h ont été placées dans un module en Public au lieu de Private.
Cela se passe ensuite comme dans avant dernier message de hier.
Je vais essayer avec un programme plus simple ou bien ajouter des instructions pour voir comment le programme se déroule...
nicrolfi
Messages postés138Date d'inscriptionsamedi 10 mars 2007StatutMembreDernière intervention16 avril 2013 31 mai 2007 à 21:30
Bonjour à tous,
J'ai refait une série d'essais et cela ne donne pas grand chose...
J'ai fait un petit programme simplifié et c'est au moment où le programme doit recevoir les signaux d'horloge et qu'il attend dans une boucle, qu'il ne reçoit rien et, fatalement...rien ne se passe plus...
N'ayant pas le signal d'horloge, le programme n'envoie rien par le port Parallèle . Le seul programme en source (les autres sont compilés, et je ne sais donc pas aller voir le code) qui a été fourni avec les cartes de contole est un petit programme d'une vingtaine de lignes. Ce programme date de 1999 (du siècle dernier), devrait fonctionner sous Win98 en en faisant l'habillage sous VB (il est en tout cas en basic).J'ai essayé sans succès.
Le même compilé fonctionne.
Je peux envoyer ces fichiers sur l'E-mail de celui qui accepte de poursuivre" l'aventure" avec moi.
nicrolfi
Messages postés138Date d'inscriptionsamedi 10 mars 2007StatutMembreDernière intervention16 avril 2013 31 mai 2007 à 21:51
Bonjour Casy,
Il reçoit un signal d'horloge par le port parallèle ; ce signal est "émis" par la carte de contrôle du premier moteur.
Cette fréquence qui peut d'ailleurs être modifiée par un petit rhéostat placé sur la carte (multipliée par un coefficient que l'on choisi) donne l'intervalle entre les données que le programme transmet aux moteurs toujours par le port //.