Ecrire un byte dans le 2e octet d'un mot.

Forum traitant des automates industriels de marque Wago et du logiciel codesys
Avatar de l’utilisateur
maxpeigne
Créateur de langage
Créateur de langage
Messages : 712
Inscription : 11 oct. 2015, 17:31
Localisation : Nord pas de calais

Ecrire un byte dans le 2e octet d'un mot.

Message par maxpeigne »

Bonjour à tous,

Sous codesys (SEW Movisuite), je cherche à écrire un octet dans les 8 derniers bits d'un mot.
J'ai fais un essais, la syntaxe est considérée comme bonne, mais j'ai un doute que cela fonctionne:
2019-09-18 16_09_12-Clipboard.png
2019-09-18 16_09_12-Clipboard.png (1.49 Kio) Consulté 3866 fois
Savez vous me dire si cela va fonctionner?
Sinon connaissez vous une alternative?

Merci.
http://automacile.fr - Site et tutoriels sur l'arduino.
Avatar de l’utilisateur
filou59
Forcené des structures
Forcené des structures
Messages : 184
Inscription : 20 oct. 2015, 23:26
Localisation : Nord

Re: Ecrire un byte dans le 2e octet d'un mot.

Message par filou59 »

Salut

Concernant ta syntaxe, je ne sais pas si c'est possible, car pour moi la syntaxe %xxx.8 c'est pour acceder a un bit, je n'ai vu ca que sur des bits sous codesys, par exemple :
%MX1.15, pour acceder au bit 15 du du mot %W1

Pour ton SEW tu es sur que tu as autre chose sur le Mot ? genre des 0 a la place ca ne va pas ?
Car je vien de regarder comment j'avais procédé sur du SEW, et il y avait un mot par fonction (Vitesse/Commande/Rampe)
Avatar de l’utilisateur
maxpeigne
Créateur de langage
Créateur de langage
Messages : 712
Inscription : 11 oct. 2015, 17:31
Localisation : Nord pas de calais

Re: Ecrire un byte dans le 2e octet d'un mot.

Message par maxpeigne »

Merci pour ta réponse.

Sur les autres bits du mot j'ai quelque chose; et il est préférable de ne pas les déplacer:
2019-09-18 16_57_42-Clipboard.png
2019-09-18 16_57_42-Clipboard.png (7.57 Kio) Consulté 3860 fois
Sinon j'étais en train de regarder du coté du SHL, du genre:

Code : Tout sélectionner

%QW106 := bLongTeteCodeDef;
%QW106 := SHL(%QW106,8);
http://automacile.fr - Site et tutoriels sur l'arduino.
Avatar de l’utilisateur
JAPIB
Aguerri de l'automation
Aguerri de l'automation
Messages : 84
Inscription : 20 oct. 2015, 23:32
Localisation : Lyon

Re: Ecrire un byte dans le 2e octet d'un mot.

Message par JAPIB »

Bonsoir
Ya quelque chose qui m'intrigue dans vos adresses (ou bien je n'ai pas bien compris le problème)
Dans l'exemple donné, %QB106 est déjà un octet et non pas un mot.
%QB désigne un octet, %QW désigne un mot de 16 bits, %QD désigne un mot de 32 bits.
A vérifier, suivant la version de CODESYS (V2 ou V3) et suivant le fabricant, mais les mots sont composés de 2 octets :
Et on peut accéder directement aux octets d'un mot avec adresse.

1°) CODESYS V2 : si la case "adressement des octets" (configuration de la cible) est cochée.
%QW0 est composé de %QB0 (poids faible) et %QB1 (poids fort)
%QW2 est composé de %QB2 (poids faible) et %QB3 (poids fort)
Le numéro du mot indique le premier octet utilisé (poids faible)

2°) CODESYS V2 : si la case "adressement des octets" (configuration de la cible) n'est pas cochée.
%QW0 est composé de %QB0 (poids faible) et %QB1 (poids fort)
%QW1 est composé de %QB2 (poids faible) et %QB3 (poids fort)
Le numéro du mot doit être x2 pour connaître le premier octet utilisé (poids faible)

3°) Avec CODESYS V3 on retrouve, de base la solution du 2°, sans que cela ne soit modifiable.
Par contre certains fabricants on choisit la solution 1°et on ne peut pas modifier non plus. Donc bien lire la documentation.

Bon courage
Avatar de l’utilisateur
maxpeigne
Créateur de langage
Créateur de langage
Messages : 712
Inscription : 11 oct. 2015, 17:31
Localisation : Nord pas de calais

Re: Ecrire un byte dans le 2e octet d'un mot.

Message par maxpeigne »

Merci pour vos réponses,

Je viens de trouver cela dans la doc de SEW movisuite:
2019-09-19 09_11_43-Clipboard.png
Plus qu'a trouver si je suis en BYTE ADDRESSING ou WORD ORIENTED IEC ADDRESSING...
http://automacile.fr - Site et tutoriels sur l'arduino.
Avatar de l’utilisateur
itasoft
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 7035
Inscription : 20 oct. 2015, 10:15
Localisation : Lyon
Contact :

Re: Ecrire un byte dans le 2e octet d'un mot.

Message par itasoft »

slts,
disons que en PL7 j'écrirais:

MON_MOT :=(MON_MOT AND 16#FF00) OR MON_BYTE ;
Automaticien privé (de tout)
itasoft@free.fr
Répondre