Piloter un automate via RS 232

ooly2001 Messages postés 43 Date d'inscription lundi 24 janvier 2005 Statut Membre Dernière intervention 9 décembre 2011 - 14 juin 2005 à 17:39
ooly2001 Messages postés 43 Date d'inscription lundi 24 janvier 2005 Statut Membre Dernière intervention 9 décembre 2011 - 27 oct. 2005 à 19:33
Bonjour à tous,



Je connais un peu la programmation en VB mais la je dois développer
quelque chose que je ne connais pas. En effet je cherche à récupérer
des infos contenues dans un appareil de test. J'ai tout le protocol de
communication qui est fourni (ca devrait faciliter la tache ) mais je ne sais pas par ou commencer.



J'ai intégrer un le MScomm dans mon appli mais je ne sais pas du tout comment envoyer le commande a mon appareil

Je sais que la structure de la commande se compose de

--> Start Of Frame Marker ( 1 point d'exclamation '!')

--> Application Layer Data (1 to 121 characters from Application Layer ANSI subset)

--> Frame delimiter (1 pipe ('|') character

--> Frame check Sequence (4 hexadecimal characteres) je vois pas trop a quoi ca correspond

--> Et enfin le Carriage Return character (0x0D)



Les commandes ressemblent à ALARM, AUDIO_QUIET, LOG_USER_ACCESS etc...



Voila voila, c'etait un extrait de la doc concernant le protocol de communication mais je n'arrive pas a le mettre en pratique



Si quelqu'un peut m'aider, m'éclairer au autre, je l'en remercie par avance .........

9 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
14 juin 2005 à 18:46
Salut
Bah ça veut dire que tu recevras un e trame dont chaque élément est défini.
Tu devrais donc recevoir quelque chose du genre
!lesDonnéesMaxi121Caractères|1AD8^

avec :
lesDonnéesMaxi121Caractères
Maximum 121 caractères encadrés par ! au début et | à la fin
Ces données arriveront par une suite de code ascii, peut-être en hexa

1AD8
Représente ce qu'on appelle un CheckSum = CRC (XOR de chaque byte)
A la réception, tu devrais refaire le calcul du CRC pour vérifier que celui qu'on t'envoie est bien le même 1AD8. Si ce n'est pas le cas, les données fournies ne sont pas certifiées
^ représente le 0x0D en héxa qui terminera la trame cvCr Chr(13)

Donc, cherche :
- comment convertir un ascii en caractère, un caractère en ascii (Chr et Asc)
- comment faire une convertion décimal/héxa (Hex et Val)
- comment faire un CRC : cherche ce mot dans "Rechercher" sur vbfrance : il doit bien y avoir une source qui sait calculer ça
Avec le MSCOMM, c'est très faisable

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
ooly2001 Messages postés 43 Date d'inscription lundi 24 janvier 2005 Statut Membre Dernière intervention 9 décembre 2011
15 juin 2005 à 09:31
Bonjour jack,



Merci de toutes ces explications, je testerai ca aujourd'hui et tiendrai tout le monde au courant de l'évolution de ce projet ..
0
ooly2001 Messages postés 43 Date d'inscription lundi 24 janvier 2005 Statut Membre Dernière intervention 9 décembre 2011
15 juin 2005 à 15:49
J'ai donc essayer plusieurs choses aujourd'hui ce qui m'a permis de
comprendre pas mal de chose mais bon j'avance doucement .....



Mais je vois pas très clairement les étapes à réaliser



Imaginons que je veuille "lancer" une commande sur ma machine qui
s'appelle ALARM et qui est censée de me renvoyer la description de la
derniere alarme.



Si j'ai bien compris pour envoyer cette commande il faut :

--> Convertir les caractères ALARM en code ascii et hexa

--> calculer le CRC à partir de ALARM "version hexa"

--> envoyer la commande à mon appareil comme suit :



!'version ascii de ALARM'|'monCRC^



Suis je dans la bonne direction ?
0
awasarr Messages postés 5 Date d'inscription lundi 20 septembre 2004 Statut Membre Dernière intervention 15 juin 2005
15 juin 2005 à 16:03
Je voudrai moi aussi suivre ce projet de près car c'est mon domaine. Si
je peux avoir la doc du protocole je pourrai peut être t'aider. Je
connais les API et les SNCC, ça pourrait être semblable.
0

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

Posez votre question
ooly2001 Messages postés 43 Date d'inscription lundi 24 janvier 2005 Statut Membre Dernière intervention 9 décembre 2011
15 juin 2005 à 16:38
Salut et merci de montrer ton interet pour le sujet



Je vais pas pouvoir te donner la doc concernant le protocole de
communication car je ne l'ai qu'en format papier mais je pense avoir
fourni tout les éléments dont j'avais besoin .... du moins je pense.

Ce que je sais c'est:

- All communication shall be in the form of asynchronous serial non return to zero data frames encoded as

1 start bit

8 data bits

1 stop bit

No parity bits

- Frame structure (comme indiqué au dessus)

- Application Layer Interface : The data link layer shall support
Application Layer data comprising a sequence of characters from the
table below, combined in any manner

Character codes


Description

20h, 22h, ... to 7Eh


Ponctuation characters

41h .... to 7Ah


Alphabetic characters

etc ......

etc ......

- Frame check sequence CRC calculé selon le modele Rocksoft CRC algorithm

- Application Layer : Command and response will be encoded into strings
of characters from the ANSI subset supported by the data link layer. At
the interface betwwen the application and data link layers, the string
will be NULL-terminated.

- Exemples de commandes

Message
Description
Message to server
Response from server

ALARM
Return the last alarmCode
ALARM
ALARM^AlarmCode





Voili voilou ce que je peux donner comme info



Encore une fois merci de m'accorder du temps
0
ooly2001 Messages postés 43 Date d'inscription lundi 24 janvier 2005 Statut Membre Dernière intervention 9 décembre 2011
30 juin 2005 à 14:29
Personne pour m'aider à continuer ?? parceque la je patauge
0
ooly2001 Messages postés 43 Date d'inscription lundi 24 janvier 2005 Statut Membre Dernière intervention 9 décembre 2011
5 juil. 2005 à 10:04
J'ai un peu de nouveau.



Il existe deja des logiciels pour communiquer avec ce type d'appareil,
ils servent en général a faire une mise à jour du firmware. Il faut
mettre l'appareil en "learn mode" et des qu'il est pret, lancer la
procédure a partir d'un pc via le logiciel. Est -il possible de
brancher 2 pc en direct avec un hyper terminal d'un coté pour voir ce
que le logiciel envoie comme données l'histoire que ca me fasse un
exemple parceque la je ne sais meme pas concretement a quoi va
ressembler une commande ??



Merci de votre soutien
0
ooly2001 Messages postés 43 Date d'inscription lundi 24 janvier 2005 Statut Membre Dernière intervention 9 décembre 2011
20 juil. 2005 à 12:19
Je me sens abandonné .....
0
ooly2001 Messages postés 43 Date d'inscription lundi 24 janvier 2005 Statut Membre Dernière intervention 9 décembre 2011
27 oct. 2005 à 19:33
Bon alors, aujourd'hui le logiciel fonctionne mais j'ai toujours un problème avec le calcul du CRC

Les commande "constantes" vers l'automates comme ALARM par exemple
fonctionnent puisque je les ai calculées sur des sites que j'ai touvé
(exemple), mais pour les commande variables (EVENT^X - sachant que X
représente le numéro d'événement qui change) et bien la je galère.



Voila ou j'en suis aujourd'hui
0
Rejoignez-nous