Page 1 sur 2
[RESOLU] M221 chaine de caractères
Posté : 16 nov. 2016, 19:44
par Allan
Bonjour à tous ,
Je suis en train de mettre en service une liaison série ASCII d'un équipement de contrôle vers un contrôleur M221.
La liaison série entre l'équipement et le M221 fonctionne, cependant je reçois la trame ASCII dans 4 mots et je souhaiterai pouvoir les regrouper dans un seul mot afin de pouvoir les exploiter dans mon process. N'ayant jamais travaillé avec ce genre de trame, pouvez vous m'éclairer sur ce sujet
Merci
Re: M221 chaine de caractères
Posté : 16 nov. 2016, 23:11
par itasoft
slts,
c'est bien mais que esque tu reçois sur ces 4 mots exactement ?????????????
Re: M221 chaine de caractères
Posté : 17 nov. 2016, 08:01
par Allan
La valeur que je souhaite pouvoir récupérer serais par exemple 1.1415
Elle se décompose ainsi dans la table d'animation en format d'affichage ASCII:
MW1 : 1.
MW2 : 14
MW3 : 1
MW4 : 5
Re: M221 chaine de caractères
Posté : 17 nov. 2016, 10:49
par JC87
Bonjour,
Il faut récupérer les valeurs de poids faible et fort de chaque mots, convertir ces octets en flottant puis multiplier chaque chiffre par la puissance de 10 correspondante et additionner le tout. Du style : ma valeur en réel = mon premier chiffre en réel + mon deuxième chiffre en réel x 0.01 + mon troisième chiffre en réel x 0.001 etc. En Somachine basic ce doit être assez chiant a faire mais je pense que c'est possible.
JC
Re: M221 chaine de caractères
Posté : 18 nov. 2016, 15:45
par Allan
Bonjour,
J'ai converti mes valeurs venant de la ligne série ACSII en flottant , pour une valeur de l'équpement 05.865 voici le résultat dans mes 4 mots flottant
MF 20 = 0,568
MF 22 = 0,568
MF 24 = 68
MF 26 = 5
De ce que je comprends
MF 20 contient la valeur 0
MF 22 contient la valeur 5
MF 24 contient la valeur 68 mais c'est l'octet de poids fort qui est lu en premier
MF 26 contient la valeur 5
Je ne vois pas comment m'y prendre pour tout recomposer, quelqu'un peut-il m'aider à comprendre et à voir plus clair dans tout ça ?
Merci
Re: M221 chaine de caractères
Posté : 18 nov. 2016, 19:47
par JC87
Bonjour,
Il ne faut pas convertir directement les mots lus en flottants ça ne donnera rien d'exploitable, regarde l'aide en ligne de la fonction ascii_to_real dans Somachine basic tu va comprendre. En fait il faut d'abord récupérer les poids fort et faibles dans deux mots séparés. Une recopie brute peut faire l'affaire, tu recopie les bits de mots 0 à 7 puis 8 à 15 de ton mot lu dans les bits correspondants de deux mots différents et ensuite seulement tu fait la conversion des mots qui t’intéresse en real puis tu finit par l'addition. Regarde déjà les mots lus en format hexadécimal afin de voir quels octets sont significatifs.
JC
Re: M221 chaine de caractères
Posté : 21 nov. 2016, 18:28
par Allan
Bonjour,
Après avoir analysé la valeur en hexadécimal de chaque mots , j'ai donc recopié les poids fort et faible qui m’intéressait de chaque mot dans 2 mots séparés, puis j'ai réalisé un décalage de ces bits afin d'avoir la bonne lecture, puis j'ai converti en réal et ensuite j'ai réalisé l'opération.
Grand merci à JC87 pour ton aide

Re: [RESOLU] M221 chaine de caractères
Posté : 09 mai 2017, 15:26
par ariana
salut est ce que tu peux me faire un capture d'ecran pour voir le code de somachine et merciii
Re: [RESOLU] M221 chaine de caractères
Posté : 06 févr. 2018, 16:33
par tristan29250
Allan a écrit : ↑16 nov. 2016, 19:44
Bonjour à tous ,
Je suis en train de mettre en service une liaison série ASCII d'un équipement de contrôle vers un contrôleur M221.
La liaison série entre l'équipement et le M221 fonctionne, cependant je reçois la trame ASCII dans 4 mots et je souhaiterai pouvoir les regrouper dans un seul mot afin de pouvoir les exploiter dans mon process. N'ayant jamais travaillé avec ce genre de trame, pouvez vous m'éclairer sur ce sujet
Merci
Bonjour, pouvez vous m'expliquer comment (avec quelle fonction) avez vous récupérer votre trame ?
je possède un lecteur code barre sick (idm140-300s) rélié au SL1 de mon automate M221 et je souhaite récupérer une chaine de caractère.
merci
Re: [RESOLU] M221 chaine de caractères
Posté : 07 févr. 2018, 01:06
par itasoft
slts,
pour recevoir le code barre du lecteur il faut utiliser le bloc %SEND_RECV_MSG0 en mode réception
Après réception il faut relancer le bloc pour une prochaine réception
EXEMPLE:
cliquer dessus pour agrandir