Octet sur GP Pro - Proface

Partie du forum pour tout ce qui concerne les automates industriels B&R, Beckhoff, Phoenix Contact etc...
Pascal
Apprend le binaire
Apprend le binaire
Messages : 8
Inscription : 02 janv. 2021, 15:03

Octet sur GP Pro - Proface

Message par Pascal »

Bonjour,
Je suis en train de développer une interface sur un LT4301 Proface en GP Pro pour piloter un maître IO Link sur un réseau Ethernet/IP.
Problème, je dois renseigner différentes valeurs en octets mais le Proface ne fonctionne qu'en mot sur les adresses internes.
Je ne peux pas travailler avec des variables puisque mon périphérique est en Ethernet/IP, je dois configurer les assembly sur des adresses ( en l’occurrence, USR1000 pour les entrées et USR2000 pour les sorties).
Je ne peux pas utiliser de décalage d'octet sur une adresse, si je fais ça, je vais ré écrire un octet nul et effacer une de mes valeurs d'octet.
Exemple :
Octet XXXX, octet YYYY. Si je décale je peux avoir XXXX 0000 sans problème et 0000 YYYY sans problème mais si je ré écris le second mot sur le premier je vais effacer mon octet XXXX et inversement.

Même si j'arriverais à me débrouiller avec des variables, je ne peux avoir que des variables entières ou réelles en double mot.

J'espère que mon explication est suffisamment clair.

Quelqu'un aurait il une solution ?

Merci d'avance.
Avatar de l’utilisateur
itasoft
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 7037
Inscription : 20 oct. 2015, 10:15
Localisation : Lyon
Contact :

Re: Octet sur GP Pro - Proface

Message par itasoft »

slts,
es que ces octets c'est de l'ASCII pour des chaines de caractères ?
Automaticien privé (de tout)
itasoft@free.fr
Avatar de l’utilisateur
ProfnovA
Créateur de langage
Créateur de langage
Messages : 525
Inscription : 21 oct. 2015, 08:21

Re: Octet sur GP Pro - Proface

Message par ProfnovA »

Il faut utiliser les and et or sur les mots pour recomposer les valeur voulues.
Donnes moi un exemple plus pertinent et je t'xpliquerai. Sur Proface, c'est un peu la misère...
Pascal
Apprend le binaire
Apprend le binaire
Messages : 8
Inscription : 02 janv. 2021, 15:03

Re: Octet sur GP Pro - Proface

Message par Pascal »

Salut Itasoft et Pronova,

Ce sont des valeurs numériques.
Sur l'USR3000 ( mot forcément), j'ai un octet pour le type de connexion ( Ethernet/IP + IoT, Ethernet/IP only, etc ..) et le deuxième octet est la longueur des données de process (nombre d'octets).
Le premier octet aura la valeur 3 ( qui correspond à Ethernet/IP only) et le second octet 4 ( 4 octets de données de process sur mon périphérique IO Link).
J'ai trouvé une solution qui consiste à coder en binaire le premier octet (0000 0011 = 3) et le second octet (0000 0100 = 4)
Je re constitue un mot : 0000 0011 0000 0100 et je le convertie en décimal 772 dans l'USR3000. ça me parait bancal comme raisonnement. Je ferais mes tests avec ça demain mais si vous avez une solution, plus simple si la mienne est juste, je suis preneur.

Merci d'avance.
Avatar de l’utilisateur
itasoft
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 7037
Inscription : 20 oct. 2015, 10:15
Localisation : Lyon
Contact :

Re: Octet sur GP Pro - Proface

Message par itasoft »

slts, si j'ai bien compris:
mettre chaque octet dans un mot de 16bits, décaler à gauche de 8 le premier mot et faire un OR avec le 2ème mot
ex:
RESULT=SHL(MOT1,8) OR MOT2;
Automaticien privé (de tout)
itasoft@free.fr
Pascal
Apprend le binaire
Apprend le binaire
Messages : 8
Inscription : 02 janv. 2021, 15:03

Re: Octet sur GP Pro - Proface

Message par Pascal »

Itasoft,

Si je fais un "OR" je ne vais pas pouvoir écrire les valeurs simultanément. Tous ces paramètres vont servir à configurer les ports IO Link du maître ( 4 en tout) avec une longueur de 44 octets qui vont être envoyés en une fois.
J'avais pensé à décaler mais si je recopie les 2 mots sur mon adresse USR j'efface un octet. Même les manipulations de mémoire par les scripts ne fonctionnent qu'en mots.
Je ne comprends pas qu'une boite comme Proface n'ait pas pensé à ça, tous les automates sur lesquels je travaille peuvent travailler en octets. C'est vraiment une galère :-(

Pascal.
Avatar de l’utilisateur
itasoft
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 7037
Inscription : 20 oct. 2015, 10:15
Localisation : Lyon
Contact :

Re: Octet sur GP Pro - Proface

Message par itasoft »

slts,
j'avais compris que tu voulais mettre deux octets dans un mot de 16 bits, mais apparemment c'est pas ça que tu veux faire.
Automaticien privé (de tout)
itasoft@free.fr
Pascal
Apprend le binaire
Apprend le binaire
Messages : 8
Inscription : 02 janv. 2021, 15:03

Re: Octet sur GP Pro - Proface

Message par Pascal »

Salut Itasoft,

Merci pour ta réactivité :)
En fait c'est bien ça, avec un automate normal genre Rockwell j'aurais fait
Connexion (SINT) = 3
Longueur (SINT) = 4
Mais là, l'USR est un mot donc je dois faire USR3000 = [valeur Connexion] [Valeur Longueur]. Je pense que c'est ce que tu avais compris.
Si j'utilise la fonction OR comme tu indiques, ça va fonctionner ? (je ne suis pas trop familier des fonctions logiques)

Merci d'avance.
Avatar de l’utilisateur
itasoft
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 7037
Inscription : 20 oct. 2015, 10:15
Localisation : Lyon
Contact :

Re: Octet sur GP Pro - Proface

Message par itasoft »

slts, il faut faire un décalage à gauche de 8 de Connexion et un OR avec Longueur (ou * 256 )
Connexion (SINT) = 3
Longueur (SINT) = 4

USR3000 = SHL(valeur Connexion,8) OR Valeur Longueur
ou
USR3000 = (valeur Connexion * 256) OR Valeur Longueur
résultat
USR3000= H,0304
Automaticien privé (de tout)
itasoft@free.fr
Pascal
Apprend le binaire
Apprend le binaire
Messages : 8
Inscription : 02 janv. 2021, 15:03

Re: Octet sur GP Pro - Proface

Message par Pascal »

salut Itasoft,

Merci pour ta réponse :)
Je n'aurais accès au matériel que vendredi, je vais préparer le programme en appliquant tes conseils et je ferais mes tests vendredi.

Je te tiens au courant.
Merci encore :)
Répondre