CoDeSys Programmation

Forum traitant des automates industriels de marque Wago et du logiciel codesys
Répondre
Psdnn
Apprend le binaire
Apprend le binaire
Messages : 2
Enregistré le : 03 juin 2016, 14:15

CoDeSys Programmation

Message par Psdnn »

Bonjour,

Je souhaiterais faire une programmation sur le logiciel CoDeSys Version 2.3.9.42.3 que j'utilise en lien avec l'interface EasyBuilder Pro.

Est-il possible défaire en sorte que sous l'interface Easy Builder Pro je programme des interrupteurs allant de 1 à 8 avec chacun pour adresse %MX199.0 à %MX199.7. Si je clique sur le bouton que j'aurais préalablement programmer en %MX198.0 par exemple je vais changer de plage de variables. C'est à dire que j'ai 8 variables sur ma page et que si je clic sur ce bouton j'ai 8 autres variables qui vont apparaître sur mon écran (que la aussi j'aurait préalablement programmer par exemple de %MX200.0 %MX200.7).


Pour ce la j'ai une liste de variables allant par exemple de %MX199.0 à %MX199.7. Et d'avoir deux autres variables tel que %MX198.0 et %MX198.1.


Je cherche à faire cela pour que si je dois réutilisé ce programme avec d'autres variables qu'il y en ai plus au moins je n'ai pas à rentrée chaque adresse sous EasyBuilder à chaque fois.

Sous EasyBuilder Pro cela doit donner quelque chose comme:

Crée une interface avec des interrupteurs par exemple E1,E2...

Et de cliquer sur une flèche pour que cela fasse défilé les différents interrupteurs mais sans changer de fenêtre.

Je ne sais pas si c'est possible de faire cela sous Easy Builder Pro ou CoDeSys et si c'est possible sous les 2 quel est le mieux ?

Je ne sais pas si j'ai bien su m'exprimer car je trouve cela assez complexe à expliquer en quelques ligne.

Merci d'avance pour vos réponses.
Modifié en dernier par Psdnn le 15 juin 2016, 09:34, modifié 1 fois.
philou77
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 2089
Enregistré le : 21 oct. 2015, 10:00
Localisation : Ile de France

Re: CoDeSys Programmation

Message par philou77 »

Salut,

en effet pas clair ;)

mais le mieux est de faire afficher des bits fixes par easybuilder (genre %MW200.0 à %MW200.7).

et utiliser un transfert dans codesys :
transfert des bits fixes vers les bits de destination selon ton choix
condition 1 = transfert %MW200 dans %MW198
condition 2 = transfert %MW200 dans %MW199

attention aux conditions de reset car cette méthode ne 'scan' qu'un seul mot.

autre méthode
faire tes 8 boutons pour %MW198.xx
utiliser le bit activation et visibilité avec ta condition 1
faire 8 autres boutons pour %MW199.xx
utiliser le bit activation et visibilité avec ta condition 2
superposer les boutons sur un même écran (seul seront actifs et visibles ceux dont la condition est vrai )



cordialement
Si vous avez compris tout ce que je viens d'écrire, c'est que j'ai dû faire une erreur quelque part ! :D
Psdnn
Apprend le binaire
Apprend le binaire
Messages : 2
Enregistré le : 03 juin 2016, 14:15

Re: CoDeSys Programmation

Message par Psdnn »

Je vous remercie d'avoir pris le temps de me répondre.
Postit
Apprend le binaire
Apprend le binaire
Messages : 3
Enregistré le : 07 juin 2016, 11:20

Re: CoDeSys Programmation

Message par Postit »

Bonjour à tous,

Tout d'abord je débute sous codesys et ne connaît donc pas trop ce logiciel.

J'aimerais savoir comment vous faites pour transférer les bits fixes dans la destination que l'on veut et surtout est-ce possible de le faire sur front montant si oui comment ?

Merci de votre réponse.
Avatar du membre
Cyril93
Maître du binaire
Maître du binaire
Messages : 484
Enregistré le : 29 oct. 2015, 14:22
Localisation : IDF

Re: CoDeSys Programmation

Message par Cyril93 »

Salut,

Quelle version de codesys ?
Front montant c'est dans la biblio standard de 3S. (R_TRIG)
Pour l'autre question j'ai pas trop saisi qu'appel tu les bits fixe et quel est la destination que tu veux ??
Postit
Apprend le binaire
Apprend le binaire
Messages : 3
Enregistré le : 07 juin 2016, 11:20

Re: CoDeSys Programmation

Message par Postit »

.
Modifié en dernier par Postit le 15 juin 2016, 11:52, modifié 1 fois.
Avatar du membre
Cyril93
Maître du binaire
Maître du binaire
Messages : 484
Enregistré le : 29 oct. 2015, 14:22
Localisation : IDF

Re: CoDeSys Programmation

Message par Cyril93 »

Salut,

La première méthode tu peux faire en ST :

Code : Tout sélectionner

IF condition1 THEN
	%MW198:=%MW200;
	%MW199:=0;
ELSIF condition2 THEN
	%MW199:=%MW200;
	%MW198:=0;
ELSE
	%MW198:=0;
	%MW199:=0;
END_IF;
La deuxième ce n'est que de l'animation de visibilité coté IHM

Pour la première méthode ce qui peux être intelligent c'est d'utiliser un pointeur et de décaler l'adresse de destination par rapport à l'adresse d'origine. Ce qui donne beaucoup plus de liberté.
Postit
Apprend le binaire
Apprend le binaire
Messages : 3
Enregistré le : 07 juin 2016, 11:20

Re: CoDeSys Programmation

Message par Postit »

.
Modifié en dernier par Postit le 15 juin 2016, 11:52, modifié 2 fois.
Avatar du membre
Cyril93
Maître du binaire
Maître du binaire
Messages : 484
Enregistré le : 29 oct. 2015, 14:22
Localisation : IDF

Re: CoDeSys Programmation

Message par Cyril93 »

Je suis désolé mais c'est pas clair ton truc. C'est un ARRAY OF BOOL c'est ça ??
Ou est l’intérêt de recopier bit par bit alors que tout est au format mot ?

ça c'est la première méthode mais avec un pointeur peux être que ça peux t'aider :

Code : Tout sélectionner

FUNCTION_BLOCK ADD_DYN
VAR_INPUT
	Source: BYTE;
	Destination: POINTER TO BYTE;
	Decalage: WORD;
END_VAR
VAR_OUTPUT
END_VAR
VAR
	i: WORD;
	oldDecalage: WORD;
END_VAR


IF decalage <> oldDecalage THEN
	FOR i:=1 TO oldDecalage DO
		Destination:=Destination+1;
	END_FOR;
	oldDecalage:=Decalage;
	Destination^:=0;
ELSE
	FOR i:=1 TO Decalage DO
		Destination:=Destination+1;
	END_FOR;
	Destination^:=Source;
END_IF;

decalage0.PNG
decalage5.PNG
Répondre