Page 1 sur 2

MOVE ou BLKMOV?

Posté : 17 août 2021, 17:55
par PATRICK
Bonjour à tous,
A votre avis, sur Step 7, pour remettre à 0 trois DInt qui servent de compteur, qu'est-il préférable en terme de poids d'instruction, utiliser 3 MOVE (envoi 0 dans DInt 3X) ou un BLKMOV (envoi 0 dans les 3 DInt d'un coup)?
Pour moi ce n'est pas clair en terme de poids, de temps d'instruction, travail sur structure plutôt que mots...
A quel moment cela est intéressant?
Chez Rockwell on arrive a peu prêt a avoir des infos la dessus mais Siemens??
Merci pour vos avis... mais je pense que cela peux être un sujet à débat :D

Re: MOVE ou BLKMOV?

Posté : 18 août 2021, 01:28
par philou77
Salut !

Move permet de déplacer un mot.
BlkMove permet de mettre un bloc source à l'endroit de destination.


mais pour ton cas, fill (sfc21) serait plus approprié si tes valeurs sont consécutives dans la destination !

et en terme d'optimisation, bof aujourd'hui tout le monde s'en fout, on a de la ram et de la fréquence processeur alors...aucune importance.
il y a que les anciens qui ont fait de la TI57 qui cherchent la milliseconde

Re: MOVE ou BLKMOV?

Posté : 18 août 2021, 09:28
par PATRICK
Salut,
Oui FILL est plus approprié, c'est exact. Même si c'est une fonction qui a la puissance de d'écrire dans un DB complet.
Peut être que 3 MOVE est plus "économe" et lisible. c'est dur à évaluer.
Pour ce qui est de l'optimisation, je pense que c'est toujours important d'en tenir compte. On a tendance à voir des "abus" de temps en temps.
Même si c'est vrai que maintenant les CPU sont très performantes ainsi que les capacité mémoire, j'insiste un peu auprès de mes stagiaires que derrière la console de programmation il y a un automate avec des caractéristiques technique et des limites.

Pour exemple la modification que je suis en train de préparer sur une CPU S7315PNDP, j'ai commencer à vérifier la mémoire et elle est occupée à 88%.
Ca commence à faire un peu…
Après il faut également faire attention que l'optimisation ne rende pas le programme illisible, tout est une question de jugement. :D

Re: MOVE ou BLKMOV?

Posté : 18 août 2021, 09:36
par itasoft
slts,
A mon époque la mémoire RAM était limitée (des fois à 8ko) t'avait pas assez de mémoire pour pondre une usine à gaz, tandis que maintenant avec les Giga de mémoire de dispo, on voit pousser les usine à gaz comme dans un bois. lol

Re: MOVE ou BLKMOV?

Posté : 18 août 2021, 10:37
par philou77
Re !

Derrière la console il y a un cerveau ( normalement 😜).
Aujourd’hui’ , sans les bibliothèques de blocs , il y a un paquet de choses que les ´programmeurs’ ne savent tout simplement plus faire.

L’optimisation en est une partie.

Re: MOVE ou BLKMOV?

Posté : 18 août 2021, 11:20
par Béryl
Ah l'époque des "détassages mémoire" sur les TSX séries 7 !...
Une incitation à boire du café :D

Re: MOVE ou BLKMOV?

Posté : 18 août 2021, 11:54
par Lorent2
PATRICK a écrit : 18 août 2021, 09:28 [ ... ]

Pour exemple la modification que je suis en train de préparer sur une CPU S7315PNDP, j'ai commencer à vérifier la mémoire et elle est occupée à 88%.
Ca commence à faire un peu…
Après il faut également faire attention que l'optimisation ne rende pas le programme illisible, tout est une question de jugement. :D
Fait une compression et elle va retomber à 5%

Re: MOVE ou BLKMOV?

Posté : 18 août 2021, 12:40
par itasoft
philou77 a écrit : 18 août 2021, 10:37 Re !
Derrière la console il y a un cerveau ( normalement 😜).
Aujourd’hui’ , sans les bibliothèques de blocs , il y a un paquet de choses que les ´programmeurs’ ne savent tout simplement plus faire.
L’optimisation en est une partie.
-------------
c'est juste, ça doit être ça, lol

Re: MOVE ou BLKMOV?

Posté : 18 août 2021, 13:02
par itasoft
Béryl a écrit : 18 août 2021, 11:20 Ah l'époque des "détassages mémoire" sur les TSX séries 7 !...
Une incitation à boire du café :D
-------------
tu veux dire le "retassage" c'est vrai je m'en souvenais plus, lol

Re: MOVE ou BLKMOV?

Posté : 18 août 2021, 13:54
par PATRICK
RE,
@Lorent2, la compression ne change rien.

Néanmoins, j'ai chargé mes petites modifs pour les tester ce matin, et cela n'a pas impacté la mémoire.

De plus, j'ai fait beaucoup de Rockwell et TIA ces dernières années et j'ai perdu mes reflexes sur Step 7, ah mémoire!...
Du coup je répond à ma question et j'ai un peu honte de ne pas (plus) y avoir pensé automatiquement.
Sur Step 7 le language le plus optimisé est le LIST (STL) car c'est comme cela qu'il compile. donc d'une manière simple et classique pour reseter 3 doubles mots, il faut:

A "TRS".Nouv_OF
JNB _050
L 0
T "TRS".en_cours.Cpt_Carton
T "TRS".en_cours.Cpt_produit
T "TRS".en_cours.Cpt_Palette
_050: NOP 0

Bon a priori j'ai oublié qu'il faut adapter son language de programmation en fonction de son besoin :( :oops: