Octet sur GP Pro - Proface
Octet sur GP Pro - Proface
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.
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.
- itasoft
- Mi homme - Mi automate
- Messages : 7037
- Inscription : 20 oct. 2015, 10:15
- Localisation : Lyon
- Contact :
Re: Octet sur GP Pro - Proface
slts,
es que ces octets c'est de l'ASCII pour des chaines de caractères ?
es que ces octets c'est de l'ASCII pour des chaines de caractères ?
Automaticien privé (de tout)
itasoft@free.fr
itasoft@free.fr
Re: Octet sur GP Pro - Proface
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...
Donnes moi un exemple plus pertinent et je t'xpliquerai. Sur Proface, c'est un peu la misère...
Re: Octet sur GP Pro - Proface
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.
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.
- itasoft
- Mi homme - Mi automate
- Messages : 7037
- Inscription : 20 oct. 2015, 10:15
- Localisation : Lyon
- Contact :
Re: Octet sur GP Pro - Proface
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;
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
itasoft@free.fr
Re: Octet sur GP Pro - Proface
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.
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.
- itasoft
- Mi homme - Mi automate
- Messages : 7037
- Inscription : 20 oct. 2015, 10:15
- Localisation : Lyon
- Contact :
Re: Octet sur GP Pro - Proface
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.
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
itasoft@free.fr
Re: Octet sur GP Pro - Proface
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.
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.
- itasoft
- Mi homme - Mi automate
- Messages : 7037
- Inscription : 20 oct. 2015, 10:15
- Localisation : Lyon
- Contact :
Re: Octet sur GP Pro - Proface
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
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
itasoft@free.fr
Re: Octet sur GP Pro - Proface
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
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