conversion programme TSX37 (fonction OUT_IN_CHAR) => M340
Posté : 16 janv. 2017, 22:35
Bonjour,
Voila mon problème de programmation.
J’ai l’installation suivante qui fonctionne parfaitement:
• Automate TSX 3721 + Carte PCMCIA TSX SCP111 avec laquelle je communique en mode caractère (RS232) avec un colorimètre sensor-instrument en utilisant la fonction OUT_IN_CHAR qui me permet d’échanger des tableaux d’octets.
Je transfert notamment la trame suivante :
55 08 00 00 00 00 AA 76 en Hexa (tableau de 8 octets donc 4 mots)
Je veux faire la même chose avec la configuration suivante :
Automate M340 BMXP341000 + module BMX NOM0200
• 1er problème résolu : l’équivalent de la fonction OUT_IN_CHAR n’existe pas sur le M340 :
il faut utiliser les fonctions PRINT_CHAR (pour écrire) et INPUT_CHAR (pour lire). Ca c’est ok
• 2eme problème résolu : on ne peut pas échanger (a priori dixit Schneider) directement des tableaux d’octets, mais uniquement des caractères ASCII :
par exemple dans mon cas pour envoyer 55 08 je dois envoyer U$08 (la fonction ASCII_TO_STRING permet de faire ce changement de type). Ca c’est ok
• 3eme problème non résolu : je ne sais pas quoi envoyer pour obtenir l’octet suivant :
00 car dans ce cas, la fonction ASCII_TO_STRING me renvoie une chaine vide et si j’envoie une trame vide il ne se passe rien.
Il me faut donc l’équivalent ASCII de 00. Bien évidement Schneider me propose le niveau 2 avec les points qui vont avec…
Cordialement
Voila mon problème de programmation.
J’ai l’installation suivante qui fonctionne parfaitement:
• Automate TSX 3721 + Carte PCMCIA TSX SCP111 avec laquelle je communique en mode caractère (RS232) avec un colorimètre sensor-instrument en utilisant la fonction OUT_IN_CHAR qui me permet d’échanger des tableaux d’octets.
Je transfert notamment la trame suivante :
55 08 00 00 00 00 AA 76 en Hexa (tableau de 8 octets donc 4 mots)
Je veux faire la même chose avec la configuration suivante :
Automate M340 BMXP341000 + module BMX NOM0200
• 1er problème résolu : l’équivalent de la fonction OUT_IN_CHAR n’existe pas sur le M340 :
il faut utiliser les fonctions PRINT_CHAR (pour écrire) et INPUT_CHAR (pour lire). Ca c’est ok
• 2eme problème résolu : on ne peut pas échanger (a priori dixit Schneider) directement des tableaux d’octets, mais uniquement des caractères ASCII :
par exemple dans mon cas pour envoyer 55 08 je dois envoyer U$08 (la fonction ASCII_TO_STRING permet de faire ce changement de type). Ca c’est ok
• 3eme problème non résolu : je ne sais pas quoi envoyer pour obtenir l’octet suivant :
00 car dans ce cas, la fonction ASCII_TO_STRING me renvoie une chaine vide et si j’envoie une trame vide il ne se passe rien.
Il me faut donc l’équivalent ASCII de 00. Bien évidement Schneider me propose le niveau 2 avec les points qui vont avec…
Cordialement