Communication rs232

petiflamand Messages postés 675 Date d'inscription samedi 31 mai 2003 Statut Membre Dernière intervention 26 mai 2013 - 10 janv. 2009 à 21:41
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 - 12 janv. 2009 à 18:26
Bonjour ,
Dans le cadre de mon travaille je suis ammené a utiliser un system de jauge de citerne veeder-root
qui est connecté a notre system de gestion informatique de station service.
Quand nous avons des problêmes avec la communication nous avons un programme sur notre laptop donner par veeder-root pour tester  la com.
Je voudrais pouvoir faire en VB6 un petit programme pour tester la communication de notre sortie db9 sur le pc.

explication:
Notre system envoi un message en rs232 par le por com sur le veeder-root et le veeder-root repond,
donc je doit faire la même chose mais vers notre pc.
comment faire pour que mon laptop reponde au message que notre system envoi
par quoi dois-je commancer

Merci

5 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
11 janv. 2009 à 03:25
Salut
C'est pas facile si tu n'as aucune idée de ce qui s'échange (protocole).
Le mieux serait d'insérer entre ton PC actuel et ton niveau un deuxième PC équipé de 2 liaisons série et d'espionner ce qui transite en renvoyant sur le port COM1 se qui arrive sur le COM2 et réciproquement.
Pendant ce temps, le programme pourrait afficher les codes hexa ou ASCII qui passent.
Après analyse de ces trames, tu pourras mieux aprécier comment gérer le nouveau PC.

Est-ce que ton niveau veeder-root ne fait qu'envoyer sa mesure ou bien a t-il aussi une intelligence interne qui répond à des commandes externes (du PC).
Dans le premier cas, c'est assez facile puisqu'il n'y a qu'à "écouter".
Dans l'autre cas, la première phase est, je pense, indispensable.

Pour lire ou écrire sur un port COM, voir le composant MSCOMM de VB6 que tu pourras connecter à un port COM + l'aide et les exemples de VB6 + les codes parlant de port COM sur le site.
Pour gérer au mieux une transmission de ce type, il faut être à l'aise dans la conversion décimale/hexadécimal :
Décimal vers Hexa : Hex
Hexa vers décimal : Val et la syntaxe "&h"
Il faudra peut-être aussi gérer des conversions hexa <--> Binaire : là pas d'instruction dédiée, il faut jouer avec les puissances de 2 - de multiples exemples parmi les sources du site.
Et enfin, les échanges sont peut-être sécurisés par un contrôle de flux permettant de s'assurer de la bonne qualité de la réception/émission : Il sera peut-être nécessaire de calculer un CheckSum.

Tu as du pain sur la planche.
Commence par te renseigner (doc technique) pour savoir s'il existe un protocole particulier et comment il est construit.

Exemple de trame (farfelue, c'est juste un exemple) :
<1><16><3><18><56><255><0>
avec
<1>   numéro d'esclave
même si cela ne sert pas dans ton cas, le protocole est peut-être prévu pour pouvoir communiquer avec plusieurs appareils, numérotés de 1 à X.
<16>   commande d'écriture (sens maître vers esclave)
<3>   nombre de données qui suivent
<18><56><255>   les 3 valeurs annoncées
<0>   témoin de fin de trame

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

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
petiflamand Messages postés 675 Date d'inscription samedi 31 mai 2003 Statut Membre Dernière intervention 26 mai 2013 1
11 janv. 2009 à 07:08
Bonjour et merci de la réponse,
Oui le veeder-root répond a un message qui est envoyé de notre system ,
et ce veeder-root envoie par protocole
ex:
reservoire 1, hauteur du floteur,temperature de la sonde,ex...
 <1>,<1000>,<26>,ex.....
reservoire 2, hauteur du floteur,temperature de la sonde,ex...

 <2>,<1250>,<25>,ex.....
reservoire 3, hauteur du floteur,temperature de la sonde,ex...

 <3>,<1500>,<24>,ex.....
mais pour le protocole je doit le trouvé chez nous car on l'utilise pour notre system
donc je vais le demander au développeur,
je vais essayer
Merci
0
petiflamand Messages postés 675 Date d'inscription samedi 31 mai 2003 Statut Membre Dernière intervention 26 mai 2013 1
11 janv. 2009 à 13:59
RE,
Comment envoyer des chaines de caractere comme "toto est ici"
et pas chr(??)
Merci
0
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
12 janv. 2009 à 09:56
Re
Là, c'est de la gestion de chaine : Tape "Chr" puis la touche F1, tu auras l'aide qui va bien.
Une chaine de caractères, c'est :
- un texte (Lapalisse, 1470-1525)
- une suite de caractères qui peuvent être :
un tableau de caractères uniques
un tableau de Bytes (chiffre entre 0 et 255)
Ces Bytes représentent le code ASCII du caractère, pouvant être affichés numériquement sous forme décimale ou hexadécimale.

Fonctions pour le traitement : For-Next, Len, Mid, Chr, Asc, Hex, Val ...

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

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0

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

Posez votre question
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
12 janv. 2009 à 18:26
Pour répondre à ta question par une autre : Comment fais-tu actuellement pour émettre tes Chr ?
Bah à la place de l'éventuelle boucle d'écriture des Chr, tu mets ton texte ...
0
Rejoignez-nous