[Déplacé .Net --> VB6] utiliser le port LPT1 sous XP en VB et VBA/Excel en entr

cs_geryko Messages postés 328 Date d'inscription dimanche 16 mai 2010 Statut Membre Dernière intervention 25 mars 2019 - 17 mai 2010 à 14:33
cs_geryko Messages postés 328 Date d'inscription dimanche 16 mai 2010 Statut Membre Dernière intervention 25 mars 2019 - 29 mai 2010 à 13:50
Bonjour,

Pour utiliser le port LPT1 sous XP en VB et VBA/Excel j'ai essayé inpout32.dll (de 2003)
Tout est OK à 90% mais impossible de lire le port Centronics.
Je lis bien le registre mais pas l'état électrique des bornes.
Y a-t'il une astuce ? Comment s'y prendre ?, Un exemple ?
Comment faire passer le port de données en réception ?
(port bidirectionnel : Bit 5 du port 379Ah à mettre à 1, mais comment ?)

Aide svp . Merci.

J'ai déjà posté ce message mais j'ai l'impression qu'il n'est pas parti.

4 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
17 mai 2010 à 16:15
Salut
En cherchant "inpout32" parmi les codes du site, on trouve des exemples.
Tu n'as pas été précis sur le langage : "sous XP en VB et VBA/Excel" : VBA, Ok, mais le premier VB, c'est du VB quoi ? 6 ou .Net ?

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
cs_geryko Messages postés 328 Date d'inscription dimanche 16 mai 2010 Statut Membre Dernière intervention 25 mars 2019
18 mai 2010 à 15:57
Bonjour Jack
Au début, j'utilisais VB5CCE (version gratuite)
maintenant pour faire des tests je préfère utiliser Excel VBA.
Les DLL sont utilisables dans les 2 cas.
VB6 trop lourd pour faire des tests (n'est pas installé)
VB.net ??? désolé
Rappel :
Je lis bien les 3 registres 378h, 379h et 37Ah, je peux écrire dans 2 registres 378h et 37Ah
je peux donc commander un relais ou tout autre dispositif.
Merci et A+ Je suis de près.
0
cs_geryko Messages postés 328 Date d'inscription dimanche 16 mai 2010 Statut Membre Dernière intervention 25 mars 2019
19 mai 2010 à 09:55
Bonjour Jack
Dans tous les exemples pratiques, je n'ai vu que l'écriture (excitation d'un relais)
Je n'ai jamais vu la lecture d'un contact de relais.
A mon avis la version de VB n'a aucune importance.
En clair :
As-tu déjà lu un port LPT ( ex. : borne 2, D0 d'un port Centronics/36) avec VB en utilisant
inpout32.dll Oui/Non.
Si Non : pourrais tu le faire ?
Si Oui : pourrais tu me montrer les 3 ou 4 lignes de programmes nécessaires ?
(il faut 1 ligne pour écrire ou lire un registre : OUT(adresse_port),valeur ) ou
valeur = INP(adresse_port)

Mon LPT est bien bidirectionnel d'après mon BIOS et marqué ECP
quitte à changer de dll ?
Merci et bon courage
0
cs_geryko Messages postés 328 Date d'inscription dimanche 16 mai 2010 Statut Membre Dernière intervention 25 mars 2019
29 mai 2010 à 13:50
Bonjours à tous,
J'ai trouvé la solution !
En fait mon BIOS présentait les options suivantes :
Parallel Port Mode : SPP ou EPP ou ECP ou ECP + EPP
EPP Mode : EPP1.7 ou EPP1.9
ECP Mode Use DMA : 1 ou 3
-
J'étais persuadé que ECP + EPP signifiait bidirectionnel ! eh bien NON.
-
La seule configuration qui fonctionne est
Parallel Port Mode : EPP
EPP Mode : EPP1.9
ECP Mode Use DMA : non sélectionné.
-
Je pensais avoir fait tous le tests mais j'ai du me "planter". Désolé.
y compris sur un second ordinateur qui, lui, me disait en clair "bidirectionnel"
-
Maintenant je sais utiliser le port parallèle sous toutes ses coutures à l'aide de inpout32.dll en VB / VBA.
voir :
www.microfer.fr/geryko page "téléchargements" fichier "piloter_le_port_LPT_du_PC.zip".
-
Merci à tous.
0
Rejoignez-nous