Page 1 sur 1

du st au ladder ou IL

Posté : 12 août 2016, 21:56
par 2fik
bonsoir a tous,
je veux créer un truc de ce genre XOZjPueNioI je suis habitué a l informatique , je suis plus familier avec le st , je l ai fait sous codeSys avec le code suivant

Code : Tout sélectionner

PROGRAM PLC_PRG
VAR
	clk: TIME := t#1s;
	wait: sleep;
	states: ARRAY [0..14] OF BOOL := 1, 1, 1,                                       (*0 FALSE éteint  1 TRUE allumé *)
										 1, 0, 1,
										 0, 1, 0,
										 0, 0, 0,
										 1, 0, 0;
	i1: INT := -3;
	i2: INT := -2;
	i3: INT := -1;

	p1: BOOL := FALSE;
	p2: BOOL := FALSE;
	p3: BOOL := FALSE;

END_VAR

_____________________________________________________________________________________

wait(TimeToWait := clk);
IF wait.Q THEN
	i1 := (i1 +3) MOD 15;
	i2 := (i2 +3) MOD 15;
	i3 := (i3 +3) MOD 15;

	p1 := states[i1];
	p2 := states[i2];
	p3 := states[i3];
END_IF;

p1, p2, p3 sortie vers les electro-vannes
sleep est un FB que j ai crée , wait.Q prend true apres chaque clk temp c un signal pour passer a un autre etat
description détaillésur sleep code suivant

Code : Tout sélectionner

FUNCTION_BLOCK sleep
VAR_INPUT
	TimeToWait: TIME;
END_VAR
VAR_OUTPUT
	Q: BOOL;
END_VAR
VAR
	tomporisateur: TON;
END_VAR

---------------------------------------------------

F tomporisateur.Q THEN
	tomporisateur(IN := FALSE, PT:= TimeToWait);(*on remet tomporisateur.Q a false *)
END_IF;
tomporisateur(IN := TRUE, PT:= TimeToWait);
Q:= tomporisateur.Q;
le probleme est que sur le marche seuls les automates puissants donc plus cher supportent le st, pour un projet aussi simple j aimerai pas utiliser un automate monstre ni depenser une fortune.

donc soit je trouve un automate pas chers qui supporte le st soit je transforme ce programme st en ladder ou IL ,le probleme est que je suis debutent j ai quelques notions dans ces deux langages mais il m est impossible de faire ca ,

svp, aidez moi a transfomer ce programme en IL ou ladder , si vous avez des idées sur d'automate a utiliser(preferences schneider) n'hesiter pas a me les proposer.
merci d'avence.

[EDIT de Brebiou] Ajout balise [YT169]

Re: du st au ladder ou IL

Posté : 16 août 2016, 11:00
par Cyril93
Salut,

J'ai remplacé ton array par un registre de 16bit car sur les petits automate je suis pas sur que l'on puisse déclaré un Array.

Sur Unity Pro cela donne ça :
VannesPilot.PNG

Re: du st au ladder ou IL

Posté : 17 août 2016, 14:45
par 2fik
merci a toi cyril93 je m y met tout de suite

Re: du st au ladder ou IL

Posté : 17 août 2016, 18:52
par 2fik
je ne comprend rien au ligne 2 et 3 peut tu m expliquer ces deux reseau merci

Re: du st au ladder ou IL

Posté : 17 août 2016, 19:31
par itasoft
slts,
Unity ça veut dire un M340 au moins, ça peut se faire sur un M221 avec SoMachine Basic (gratuit)

Re: du st au ladder ou IL

Posté : 17 août 2016, 19:53
par Cyril93
Oui itasoft se sont des instructions que l'on peux faire avec un M221. Mais je n'ai pas somachine basic d'installé donc tu comprends ;)
D'ailleurs peux on declarer un array de bool avec soMachine basic ?

Re: du st au ladder ou IL

Posté : 17 août 2016, 20:39
par itasoft
slts,
oui fonction "SBR"
En fait, il lui faut un Programmateurs cyclique de machine à laver , le faire avec le bloc fonction %DR

Re: du st au ladder ou IL

Posté : 18 août 2016, 11:56
par Cyril93
2fik a écrit :je ne comprend rien au ligne 2 et 3 peut tu m expliquer ces deux reseau merci
Salut,

le réseau 2 c'est le transfert de la valeur hexa 90AF dans un mot nommé TabCommande
le réseau 3 c'est le décalage de 3 bit vers la droite de TabCommande toutes les secondes

au démarrage on charge 2#1001 0000 1010 1111 (16#90AF) dans TabCommande ce qui correspond à ton array de bool mais à l'envers,
puis toutes les secondes on décale de 3 bit à droite donc 2#1001 0000 1010 1111 devient 2#0001 0010 0001 0101 etc.... puis quand TabCommande est égale à 2#0000 0000 0000 0001 on remet 16#90AF dedans.