MOVE ou BLKMOV?

Forum traitant des automates industriels de marque Siemens.
PATRICK
Code sa première boucle
Code sa première boucle
Messages : 20
Enregistré le : 28 oct. 2015, 14:14

MOVE ou BLKMOV?

Message 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
philou77
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 2085
Enregistré le : 21 oct. 2015, 10:00
Localisation : Ile de France

Re: MOVE ou BLKMOV?

Message 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
Si vous avez compris tout ce que je viens d'écrire, c'est que j'ai dû faire une erreur quelque part ! :D
PATRICK
Code sa première boucle
Code sa première boucle
Messages : 20
Enregistré le : 28 oct. 2015, 14:14

Re: MOVE ou BLKMOV?

Message 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
Avatar du membre
itasoft
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 7156
Enregistré le : 20 oct. 2015, 10:15
Localisation : Lyon
Contact :

Re: MOVE ou BLKMOV?

Message 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
Automaticien privé (de tout)
itasoft@free.fr
philou77
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 2085
Enregistré le : 21 oct. 2015, 10:00
Localisation : Ile de France

Re: MOVE ou BLKMOV?

Message 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.
Si vous avez compris tout ce que je viens d'écrire, c'est que j'ai dû faire une erreur quelque part ! :D
Avatar du membre
Béryl
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 1683
Enregistré le : 20 oct. 2015, 12:00
Localisation : localhost

Re: MOVE ou BLKMOV?

Message par Béryl »

Ah l'époque des "détassages mémoire" sur les TSX séries 7 !...
Une incitation à boire du café :D
Lorent2
Maître du binaire
Maître du binaire
Messages : 484
Enregistré le : 27 déc. 2015, 08:52

Re: MOVE ou BLKMOV?

Message 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%
Si quelquefois tu te sens petit, inutile, démoralisé ou dépressif, n'oublies jamais que tu as été un jour le plus rapide et le meilleur spermatozoïde de ta bande ...
Avatar du membre
itasoft
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 7156
Enregistré le : 20 oct. 2015, 10:15
Localisation : Lyon
Contact :

Re: MOVE ou BLKMOV?

Message 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
Automaticien privé (de tout)
itasoft@free.fr
Avatar du membre
itasoft
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 7156
Enregistré le : 20 oct. 2015, 10:15
Localisation : Lyon
Contact :

Re: MOVE ou BLKMOV?

Message 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
Automaticien privé (de tout)
itasoft@free.fr
PATRICK
Code sa première boucle
Code sa première boucle
Messages : 20
Enregistré le : 28 oct. 2015, 14:14

Re: MOVE ou BLKMOV?

Message 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:
Répondre