(* pump_1 management *)
If pump_1_ start Then pump_1_ cmd := true ;
End_if;
If pump_1_ cmd and pump_1_speed < 100 (*speed calculation*)
Then pump_1_speed := pump_1_speed +2;
End_if;
If not pump_1_cmd and pump_1_speed>0
Then pump_1_speed:= pump_1_speed - 4;
End_if;
If pump_1_speed=500 then jpm loopl;
End_if;
bonjour a tous svp j'aimerai savoir passer d'un langage ST a un langage LADDER
ST vers ladder
Re: ST vers ladder
Salut,
Il faut comprendre le ST pour pouvoir le repasser en Ladder.
Comment tu arrêtes la pompe ==> pump_1_ cmd:=FALSE;
Il faut comprendre le ST pour pouvoir le repasser en Ladder.
Comment tu arrêtes la pompe ==> pump_1_ cmd:=FALSE;
Re: ST vers ladder
bonsoir mais justement le langage le cherche a le comprendre mais pas facile
Re: ST vers ladder
Salut,
Je sais pas si cela peut t'aider mais je comprend le programme comme sa,
If pump_1_ start Then pump_1_ cmd := true ;
End_if;
= Si mon contact de demarrage pompe passe a 1 alors je commande la pompe
If pump_1_ cmd and pump_1_speed < 100 (*speed calculation*)
Then pump_1_speed := pump_1_speed +2;
End_if;
= Si je commande la pompe et que sa vitesse est inferieure a 100 alors j'incremente de 2 sa vitesse
If not pump_1_cmd and pump_1_speed>0
Then pump_1_speed:= pump_1_speed - 4;
End_if;
= Si je ne commande pas la pompe et que sa vitesse n'est pas nulle alors je désincrémente de 4 sa vitesse
If pump_1_speed=500 then jpm loopl;
End_if;
= Si la vitesse de la pompe est egale 500 alors je saute vers l'étiquette loopl
mais on dirais qu'ici on ne fait pas la difference entre consigne et mesure de vitesse.
en ladder tu aura besoin de contact NO NC de bobine des blocs d'opération mathématique pour la comparaison/addition/soustraction et la fonction jump.
Je sais pas si cela peut t'aider mais je comprend le programme comme sa,
If pump_1_ start Then pump_1_ cmd := true ;
End_if;
= Si mon contact de demarrage pompe passe a 1 alors je commande la pompe
If pump_1_ cmd and pump_1_speed < 100 (*speed calculation*)
Then pump_1_speed := pump_1_speed +2;
End_if;
= Si je commande la pompe et que sa vitesse est inferieure a 100 alors j'incremente de 2 sa vitesse
If not pump_1_cmd and pump_1_speed>0
Then pump_1_speed:= pump_1_speed - 4;
End_if;
= Si je ne commande pas la pompe et que sa vitesse n'est pas nulle alors je désincrémente de 4 sa vitesse
If pump_1_speed=500 then jpm loopl;
End_if;
= Si la vitesse de la pompe est egale 500 alors je saute vers l'étiquette loopl
mais on dirais qu'ici on ne fait pas la difference entre consigne et mesure de vitesse.
en ladder tu aura besoin de contact NO NC de bobine des blocs d'opération mathématique pour la comparaison/addition/soustraction et la fonction jump.
Re: ST vers ladder
c'est juste une rampe de vitesse pour la pompe,
si pump_1_ cmd=TRUE alors on incrémente de 2 le mot pump_1_speed à chaque tour de cycle jusqu’à ce qu'il soit supérieur à 100, idem pour la remise a zéro on décrémente de 4 à chaque tour de cycle. Par contre on se demande comment la valeur de vitesse pourra se mettre à 500 ?? et aussi comment on lâche la commande de la pompe, en gros ce code qui est assez mal écrit est incomplet.
De plus, il faut faire l'appel dans une tache interruptive cyclique pour pouvoir gérer la vitesse de la rampe. Par exemple dans une tache de 100ms ça fait de 0 à 100 en 5s.
si pump_1_ cmd=TRUE alors on incrémente de 2 le mot pump_1_speed à chaque tour de cycle jusqu’à ce qu'il soit supérieur à 100, idem pour la remise a zéro on décrémente de 4 à chaque tour de cycle. Par contre on se demande comment la valeur de vitesse pourra se mettre à 500 ?? et aussi comment on lâche la commande de la pompe, en gros ce code qui est assez mal écrit est incomplet.
De plus, il faut faire l'appel dans une tache interruptive cyclique pour pouvoir gérer la vitesse de la rampe. Par exemple dans une tache de 100ms ça fait de 0 à 100 en 5s.
Re: ST vers ladder
grand merci a vous pour toutes vos explications vraiment


