Probleme communication M221 ASCII

Forum traitant des automates industriels de marque Schneider - Telemecanique
scapa06
Code sa première boucle
Code sa première boucle
Messages : 16
Enregistré le : 07 mars 2019, 15:52

Probleme communication M221 ASCII

Message par scapa06 » 16 mai 2019, 11:36

Bonjour a tous,

je souhaite sur un projet envoyer à un contrôleur DMX des séquences d'éclairage pré-programmés, le dialogue se fait via un automate M221 en RS232 (chaine de caractère).

la trame a transmettre est de type X04dd (dd) étant le numéro de programme à envoyer en (Hexa)

mon problème et que le numéro de séquence que je reçois depuis supervision est en décimal et quand je l'envoi via SEND_RECV_MSG0 le numéro de séquence est en décimal.


je suis sur que c'est une connerie mais je bloque je n'arrive pas a trouver la fonction pour convertir ma valeur décimal en hexa.

MERCI POUR VOTRE AIDE

Avatar de l’utilisateur
itasoft
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 3417
Enregistré le : 20 oct. 2015, 10:15
Localisation : Lyon
Contact :

Re: Probleme communication M221 ASCII

Message par itasoft » 16 mai 2019, 14:09

slts,
ya combien de programmes au maxi ??
Automaticien privé (de tout)
itasoft@free.fr

scapa06
Code sa première boucle
Code sa première boucle
Messages : 16
Enregistré le : 07 mars 2019, 15:52

Re: Probleme communication M221 ASCII

Message par scapa06 » 16 mai 2019, 14:42

Bonjour,

FF en hexa soit 255 programmes possible

Avatar de l’utilisateur
itasoft
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 3417
Enregistré le : 20 oct. 2015, 10:15
Localisation : Lyon
Contact :

Re: Probleme communication M221 ASCII

Message par itasoft » 16 mai 2019, 14:57

slts,
effectivement ce cas n'est pas traité en SoMachine Basic, à part d'écrire 255 lignes de programmes.
Automaticien privé (de tout)
itasoft@free.fr

scapa06
Code sa première boucle
Code sa première boucle
Messages : 16
Enregistré le : 07 mars 2019, 15:52

Re: Probleme communication M221 ASCII

Message par scapa06 » 16 mai 2019, 15:16

merci...C'est con ça!!
je vais leur dire de limiter le nombre de scenario alors...

merci pour tes infos...

Avatar de l’utilisateur
itasoft
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 3417
Enregistré le : 20 oct. 2015, 10:15
Localisation : Lyon
Contact :

Re: Probleme communication M221 ASCII

Message par itasoft » 16 mai 2019, 15:27

slts,
oui, un exemple si tu dois te le palucher à la mano:
----------cliquer dessus-----------
_1234.JPG
Automaticien privé (de tout)
itasoft@free.fr

scapa06
Code sa première boucle
Code sa première boucle
Messages : 16
Enregistré le : 07 mars 2019, 15:52

Re: Probleme communication M221 ASCII

Message par scapa06 » 16 mai 2019, 16:05

Merci pour ton exemple et ta rapidité à répondre à nos problèmes... je vais voir avec le client ses besoins réel.

Avatar de l’utilisateur
itasoft
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 3417
Enregistré le : 20 oct. 2015, 10:15
Localisation : Lyon
Contact :

Re: Probleme communication M221 ASCII

Message par itasoft » 17 mai 2019, 08:46

Slts,
OK, il se peut qu’il faille inverser les octets avant de l’envoyer sur la COM , à voir
Ex :
%MW10 :=ROL(%MW10,8)
%MW11 :=ROL(%MW11,8)
%MW12 :=ROL(%MW12,8)
Automaticien privé (de tout)
itasoft@free.fr

Avatar de l’utilisateur
djé
Maître du binaire
Maître du binaire
Messages : 483
Enregistré le : 20 oct. 2015, 09:55
Localisation : Bretagne, Pays de la Loire, Nantes

Re: Probleme communication M221 ASCII

Message par djé » 17 mai 2019, 14:27

Salut,

Sinon pour éviter de te "palucher" les 256 lignes à la mano:

Tu calcules le quotient de la division entière du code programme par 16: ça te donne le deuxième digit (PF) du code HEXA: (en décimal)
Tu calcules le modulo de la même division, ça te donne le premier digit (pf) du code en HEXA: (en décimal)

Ensuite tu compares chaque résultat:
s'il est supérieur à 9 tu lui rajoutes la valeur décimale 55
sinon tu lui rajoutes la valeur 48

pour avoir le code caractère ASCII qui va bien.

Ex avec code programme d45 (h2D)

45/16 = 2 reste 13

Quotient = 2 + 48 = 50 > code caractère '2' en décimal
Reste = 13 + 55 = 68 > code caractère 'D' en décimal

:D
Le monde se divise en 10 catégories:les personnes qui comprennent le binaire,et les autres.

Dans tout ce que vous apprenez, seuls 10% vont vous servir,mais vous ne savez pas lesquels ...

Avatar de l’utilisateur
itasoft
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 3417
Enregistré le : 20 oct. 2015, 10:15
Localisation : Lyon
Contact :

Re: Probleme communication M221 ASCII

Message par itasoft » 17 mai 2019, 18:33

slts,
oui bonne idée , comme quoi rien ne sert e penser il faut réfléchir avant, lol
Automaticien privé (de tout)
itasoft@free.fr

Répondre