RS232 Appel désesperé

Résolu
cs_Jeeva Messages postés 7 Date d'inscription lundi 31 octobre 2005 Statut Membre Dernière intervention 2 décembre 2005 - 24 nov. 2005 à 17:35
cs_Jeeva Messages postés 7 Date d'inscription lundi 31 octobre 2005 Statut Membre Dernière intervention 2 décembre 2005 - 2 déc. 2005 à 15:31
Hello,

Je doit réaliser un projet dans le quel je doit recevoir des infos d'un appareil mais j'arrive à me connecter à l'appareil (port com) avec differents soft, mais je n'arrive pas a communiquer...

Est-ce que qq'un peut m'aider

l'appareil en question est un app. de la fabrication de l'entreprise Falcon modele : PT40...

SVP, Je désespère....

Merci,

12 réponses

perathoner Messages postés 90 Date d'inscription dimanche 5 novembre 2000 Statut Membre Dernière intervention 26 juillet 2006
24 nov. 2005 à 17:49
Il faut utiliser un composant active X : MsComm.
et puis tu te fais un truc du genre :

'Retourne True si connexion ouverte
Public Function InitCommunication(Vitesse As Long, Parite As String, BitDonnees As Integer, BitStop As String, MyVoie as Integer) As Boolean Dim MyParamConnexion As String


' Initialisation
MyParamConnexion = Vitesse & "," & Parite & "," & BitDonnees & "," & BitStop


' Ouvre le port si fermé
If MSComm1.PortOpen = False Then
' Définit la propriété InputMode pour la lecture de données binaires
MSComm1.InputMode = comInputModeBinary


' Définit qu'il n'y a pas de protocole matériel
MSComm1.Handshaking = comNone

' Définit les paramètres de connexion
MSComm1.Settings = MyParamConnexion

' Définit le N° du port
MSComm1.CommPort = MyVoie

' Ouvre le port
MSComm1.PortOpen = True


End If
' Lancement du Timer
Timer1 = True
' Restitution
InitCommunication = True

End function
3
perathoner Messages postés 90 Date d'inscription dimanche 5 novembre 2000 Statut Membre Dernière intervention 26 juillet 2006
29 nov. 2005 à 14:27
Je ne sais pas si cela peut te venir en aide mais j'ai trouvé ça en surfant... et j'ai pensais à toi..http://grafikm.developpez.com/portcomm/

Bon courage.

@+
3
perathoner Messages postés 90 Date d'inscription dimanche 5 novembre 2000 Statut Membre Dernière intervention 26 juillet 2006
24 nov. 2005 à 17:56
Sinon il faut de demander en quoi elle cause ta machine ???
C'est quoi le protocol utilisé pour communiquer entre ton Pc et ton appareil ?? (ModBus, etc...)
Une fois que tu as cette réponse, il faut que tu lise les données dans ton buffer puis
grace au protocole du décortique ta trame pour que tes infos aient un sens ...
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
24 nov. 2005 à 22:15
Vérifie dans la doc de ton appareil, s'il n'y a pas des infos sur le
protocole et le format des données transmises sur le port série.


Sinon appele le fournisseur pour savoir s'il est possible de
l'interfacer avec le prog que tu développe, visiblement il est déjà
livrer avec un logiciel permettant de vider l'appareil sur le pc, il
n'est pas certain que tu puisse faire ton propre prog.



pour toute info visite le site de PSC : http://fr.psc.com/




<hr size="2" width="100%">Si le cerveau était assez simple pour que nous puissions le comprendre,

nous serions assez bête pour ne pas le comprendre malgré tout.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_pluplu Messages postés 615 Date d'inscription mercredi 18 décembre 2002 Statut Membre Dernière intervention 4 juillet 2012
25 nov. 2005 à 07:23
Après consultation des données du fabriquant, je suppose que tu dois envoyé une série de commande à ce périphérique pour qu'il te restitue les datas qu'il enmagasine. regarde dans le manuel, si tu n'est pas sure des commandes à utiliser essaye dans un premier temps avec hyperterminal. et assure toi aussi que tu utilise un bon cable de liaison, ainsi que les bon parametres de communication (baud rate,parity,etc..)entre les
deux éléments.
Pascal Laurençon
0
cs_Jeeva Messages postés 7 Date d'inscription lundi 31 octobre 2005 Statut Membre Dernière intervention 2 décembre 2005
25 nov. 2005 à 09:59
D'après le manuel du fabricant il dise uniquement que la comm ce fait avec les protocoles ACK/NAK et XModem, mais il ne parle pas de comment faire pour etablire une connexion et communiquer avec cet... appareil.

Baud : 9600
Protocol : Xmodem, ACK/NAK
Flow control : - égal - (sauf XON/XOFF)

Voila,

Je vais essayer avec le code de perathoner

Merci,
Si vous avez des info's supplémentaire, ben,... vous êtes les bienvenus...

Merci bien,...
0
cs_Jeeva Messages postés 7 Date d'inscription lundi 31 octobre 2005 Statut Membre Dernière intervention 2 décembre 2005
29 nov. 2005 à 08:41
Hello,

J'ai essayé comme vous m'avez demandé mais le problème est que je recois un signal ok, mais pas les données alors que, avec l'Hyperterminal de Windows j'arrive sans problème.

Il m'affiche les données sans problèmes :

Une question de débutant :
- Est-ce qu'il n'y a pas un moyent d'utiliser le composants qu'utilise l'hyperterminal (si ce n'est pas le MSCOMM)...

Merci,
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
29 nov. 2005 à 08:58
Comment fais-tu pour recevoir les données avec Hyperterminal,
est-ce que tu tape tes commandes dans la fenetre ou est-ce que tu passe
par le menu transferer/recevoir un fichier en choisissant le protocole
XModem?



Dans le premier cas, il te faut envoyer les mêmes commandes à partir de ton code.



Dans le second cas, il va falloir que tu implante la gestion du
protocole dans ton code. Le protocole XModem est un protocole logiciel,
c'est donc à toi de le gerer au niveau de ton code. Recherche sur le
site et sur le net, tu trouveras surement des sources d'implementation
de ce protocole (perso, je l'ai utilisé quelque fois avec
hyperterminal, mais je ne le connais pas au niveau code).



Tu risque de trouver surtout du code C je pense, sous forme de DLL, à
ce moment là, la gestion du port série à des chances d'etre faite dans
la DLL aussi, tu n'auras plus besoin de MSCOMM à ce moment là.



PS : Je ne connais pas de moyen d'utiliser hyperterminal dans le code VB, mais je ne connais pas tout sur tout non plus




<hr size="2" width="100%">Si le cerveau était assez simple pour que nous puissions le comprendre,

nous serions assez bête pour ne pas le comprendre malgré tout.
0
cs_Jeeva Messages postés 7 Date d'inscription lundi 31 octobre 2005 Statut Membre Dernière intervention 2 décembre 2005
30 nov. 2005 à 18:43
Re Bonsoir,

Ouais super ça marche...! euh en partie...

Désolé je suis vraiment un débutant en ce qui concerne la communication par le port com..

Mais en faite avec le prog Xfer32 fourni par le fabricant, il écrit directement dans un fichier txt. Et ça fonctionne c'est à dire qui arrive a écrire toutes les lignes de chaque article scanné.


Mais avec l'hyperterminal ou avec mon prog, ben... j'arrive à recevoir que la première ligne ...


Et en fin de ligne, il y a un caractère du style || et l'appareil m'indique une erreur de transmission et c'est tout il va plus loin....


Je n'arrive pas à aller plus loin, je ne reçoit pas le 'evEvEOF' non plus...
Je désespère... Au moins si je comprennait ce qui ce passe.

Au fait je recoit aucune 'error event'...
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
30 nov. 2005 à 20:30
ok je crois comprendre ce qui se passe mais c'est pas certain.



D'après ce que tu dis, ton appareil t'envois la première ligne, et doit
attendre que tu valide la reception c'est à dire que tu lui dise que tu
l'as bien recu. Je pense que lorsque tu valide la reception, il doit
t'envoyer automatiquement la ligne suivante et ce jusqu'a la fin des
données. Mais comme tu ne valide pas, au bout de quelques instants il
considère qu'il y a une erreur.



Tes deux caractères bizarre ( || c'est deux caractères non
affichables) sont surement l'indicateur de fin de ligne, quand tu
detecte cet indicateur, il faut que tu envoie le code d'acquitement (un
ou plusieurs caractères) et recevra une nouvelle ligne jusqu'au
prochain indicateur de fin de ligne, ou l'indicateur de fin de fichier
(EOF) qui lui te dit que la transmission est finie.



Mais sans une doc de l'appareil sur le protocole de transfert, ça va etre difficile de t'aider.



......



Je viens de trouver ce forum, sur les 7 pages de questions tu y
trouveras surrement quelques quelques pistes et une idée du protocole à
mettre en place :



https://partners.psc.com/PSCTekForum/forum.asp?FORUM_ID=47






<hr size="2" width="100%">Si le cerveau était assez simple pour que nous puissions le comprendre,

nous serions assez bête pour ne pas le comprendre malgré tout.
0
cs_pluplu Messages postés 615 Date d'inscription mercredi 18 décembre 2002 Statut Membre Dernière intervention 4 juillet 2012
30 nov. 2005 à 21:42
Vas voir ce lien tu y trouveras de la doc sur le protocol xmodem ainsi qu'un active-x qui gère celui-ci
http://ourworld.compuserve.com/homepages/richard_grier/Index.htm

ou sinon utilise le logiciel fournis par le fabriquant via ton application au moyen de la commande Shell et traite le fichier .txt ainsi généré pour le reste du taitement depuis ton application.

Pascal Laurençon
0
cs_Jeeva Messages postés 7 Date d'inscription lundi 31 octobre 2005 Statut Membre Dernière intervention 2 décembre 2005
2 déc. 2005 à 15:31
Snif!

Salut tout le monde,

Bon à force je me suis dit que ça serai mieux que j'aie sur une autre solution... J'ai trouvé l'application "xfer32.com" et je voulais savoir comment je fait pour executer ça la manière de faire...

Et je trouverai comment faire pour et le paramètre que je doit mettre pour cette app MS-DOS.

Merci, snif...! snif !

Ne prennez pas la vie au sérieux, de toute façons vous n'en sortirez pas vivant...
0
Rejoignez-nous