Page 1 sur 2

[TIA V17] "Ecriture" en SCL

Posté : 20 sept. 2023, 08:47
par franckautom
Bonjour à tous.
Une question toute bête, mais suis vraiment une quiche en SCL.
Comment écrire au plus simple ce réseau en SCL, svp?
scl.png
scl.png (3.83 Kio) Vu 3179 fois

Re: [TIA V17] "Ecriture" en SCL

Posté : 20 sept. 2023, 09:29
par dpo
un truc dans le genre

Tag_18:=Tag_17;
if Tag_17 then Tag_16:=1;end_if;

Re: [TIA V17] "Ecriture" en SCL

Posté : 20 sept. 2023, 09:53
par Brebiou
J'aurais été tenté de dire:

Code : Tout sélectionner

IF Tag_17 THEN
	Tag_16 := 1;
	Tag_18 := TRUE;
END_IF
Ce qui revient au même que dpo soit dit en passant :)

Re: [TIA V17] "Ecriture" en SCL

Posté : 20 sept. 2023, 10:17
par MiGaNuTs
Ça ne revient pas au même.
Dans le cas de DPO M100.1 vaut toujours M100.0
Dans le cas "Brebiou" il vaut 1 seulement si M100.0 vaut également 1, mais si M100.0 vaut 0, on peut supposer qu'il reste a 1
Dans le cas "Frankautom", je suppose que ça fait pareil que dans le cas DPO, mais pas sur. Faut voir comment fonctionne l’interpréteur SCL de l'automate. Ils ne réagissent pas forcement tous pareil, c'est pour ça qu'on évite d’écrire ce genre de chose en ladder normalement. (Dans les milieux underground de l'automatisme on appelle ça du 'code dégueulasse' mais parfois on l’écrit quand même parce qu'on s'en fout :D))

Re: [TIA V17] "Ecriture" en SCL

Posté : 20 sept. 2023, 10:38
par franckautom
Merci pour vos réponses.
MiGaNuTs a écrit : 20 sept. 2023, 10:17 Ça ne revient pas au même.
Dans le cas de DPO M100.1 vaut toujours M100.0
Dans le cas "Brebiou" il vaut 1 seulement si M100.0 vaut également 1, mais si M100.0 vaut 0, on peut supposer qu'il reste a 1
Dans le cas "Frankautom", je suppose que ça fait pareil que dans le cas DPO, mais pas sur. Faut voir comment fonctionne l’interpréteur SCL de l'automate. Ils ne réagissent pas forcement tous pareil, c'est pour ça qu'on évite d’écrire ce genre de chose en ladder normalement. (Dans les milieux underground de l'automatisme on appelle ça du 'code dégueulasse' mais parfois on l’écrit quand même parce qu'on s'en fout :D))
Tu as raison MiGaNuTs, et d'ailleurs si j'avais écrit ce réseau correctement, je me rends compte que je n'aurais pas eu besoin de poser la question.

Re: [TIA V17] "Ecriture" en SCL

Posté : 21 sept. 2023, 09:27
par Brebiou
MiGaNuTs a écrit : 20 sept. 2023, 10:17 Ça ne revient pas au même.
Dans le cas de DPO M100.1 vaut toujours M100.0
Dans le cas "Brebiou" il vaut 1 seulement si M100.0 vaut également 1, mais si M100.0 vaut 0, on peut supposer qu'il reste a 1
Dans le cas "Frankautom", je suppose que ça fait pareil que dans le cas DPO, mais pas sur. Faut voir comment fonctionne l’interpréteur SCL de l'automate. Ils ne réagissent pas forcement tous pareil, c'est pour ça qu'on évite d’écrire ce genre de chose en ladder normalement. (Dans les milieux underground de l'automatisme on appelle ça du 'code dégueulasse' mais parfois on l’écrit quand même parce qu'on s'en fout :D))
Bien vu ;)

Re: [TIA V17] "Ecriture" en SCL

Posté : 21 sept. 2023, 21:47
par Gigi
Il est aussi possible d’écrire le code en écrivant les deux cas .
If….
Then…..
Else….
End_if
Mais c’est vrai que ça fait long pour une simple égalité de valeur.

Re: [TIA V17] "Ecriture" en SCL

Posté : 22 sept. 2023, 06:15
par itasoft
slts,
je vois pas à quoi ça peut servir vu que Tag_16 garde la valeur "1" après la perte de Tag_17 et on ne le reverra plus jamais à zéro
???

Re: [TIA V17] "Ecriture" en SCL

Posté : 22 sept. 2023, 09:09
par Brebiou
itasoft a écrit : 22 sept. 2023, 06:15 slts,
je vois pas à quoi ça peut servir vu que Tag_16 garde la valeur "1" après la perte de Tag_17 et on ne le reverra plus jamais à zéro
???
Peut être que plus loin dans le programme il est remis à 0, ou à une autre valeur d'ailleurs puisque c'est un MW.

Re: [TIA V17] "Ecriture" en SCL

Posté : 22 sept. 2023, 09:21
par MiGaNuTs
Gigi a écrit : 21 sept. 2023, 21:47 Il est aussi possible d’écrire le code en écrivant les deux cas .
If….
Then…..
Else….
End_if
Mais c’est vrai que ça fait long pour une simple égalité de valeur.
C'est possible, mais

Code : Tout sélectionner

if %M100.0 then
	%M100.1:=1;
else
	%M100.1:=0;
end_if;
Dans le milieu underground de l'automatisme, ça s'appelle du code de merde.
Déjà ça fait 4 lignes de trop, et en plus du perds des cycles CPU a vérifier une condition inutile. Heureusement que la mémoire est pas chère et que les CPU sont rapides. On laisse ce genre de choses aux ingénieurs qui développent Windows, Acrobat Reader, ou tout un tas de merdes du genre.