Pointeur

Forum traitant des automates industriels de marque Siemens.
Yacub
Générateur de blocs fonctions
Générateur de blocs fonctions
Messages : 102
Enregistré le : 07 févr. 2016, 18:27

Pointeur

Message par Yacub »

Bonjour,

Puis je savoir quelle opération execute ce script sur ma variable de type Word "Actuator" ?

L DBW [AR1, P#0.0]
T #Actuator
Avatar du membre
djé
Dieu du process
Dieu du process
Messages : 864
Enregistré le : 20 oct. 2015, 09:55
Localisation : Bretagne, Pays de la Loire, Nantes
Contact :

Re: Pointeur

Message par djé »

Salut,
Ça charge le contenu du mot DBW d'adresse indexée par la valeur du pointeur AR1, avec le décalage 0.0, dans la variable # actuator.
Le numéro de la DB affectée est celui de la dernière DB ouverte ( par l'instruction AUF DB ou par la dernière affectation explicite à un élément de DB.)
Le monde se divise en 10 catégories:les personnes qui comprennent le binaire,et les autres.

Dans tout ce que vous apprenez, seuls 10% vont vous servir,mais vous ne savez pas lesquels ...
Yacub
Générateur de blocs fonctions
Générateur de blocs fonctions
Messages : 102
Enregistré le : 07 févr. 2016, 18:27

Re: Pointeur

Message par Yacub »

merci djé,
Comment puis connaitre la valeur du pointeur "AR1"
Avatar du membre
djé
Dieu du process
Dieu du process
Messages : 864
Enregistré le : 20 oct. 2015, 09:55
Localisation : Bretagne, Pays de la Loire, Nantes
Contact :

Re: Pointeur

Message par djé »

Soit en ligne en affichant la visu colonne AR1 soit en analysant les parties de codes qui précèdent.
Le monde se divise en 10 catégories:les personnes qui comprennent le binaire,et les autres.

Dans tout ce que vous apprenez, seuls 10% vont vous servir,mais vous ne savez pas lesquels ...
Avatar du membre
djé
Dieu du process
Dieu du process
Messages : 864
Enregistré le : 20 oct. 2015, 09:55
Localisation : Bretagne, Pays de la Loire, Nantes
Contact :

Re: Pointeur

Message par djé »

Salut,
Réponse à ce sujet à partir du sujet Variable Local FB

........L #Act_Step : chargement du compteur de boucle
next: T #Cycle : initialisation - mise à jour du compteur de boucle / début de la boucle

........L DBW [AR1, P#0.0] : chargement de DB?.DBW[adresse définie par le Registre d'Adresse indirecte "AR1" à partir de DB?.DW0 (P#0.0)]

traitement.....

........+AR1 P#2.0 : ajout de +2 au Registre d'Adresse AR1 (+2.0 (16 bits) pour lire de mot en en mot )
........L #Cycle : Chargement du compteur de boucle
........LOOP next : boucle sur next tant que #Cycle >0

Vérifie en amont de ton code ou est ce que le registre AR1 est affecté pour connaitre la valeur de celui-ci au moment de rentrer dans la boucle

Pour plus d'information sur le langage LIST tu peux télécharger le manuel de référence LIST de SIEMENS ici ou cet excellent petit condensé de l'essentiel
Le monde se divise en 10 catégories:les personnes qui comprennent le binaire,et les autres.

Dans tout ce que vous apprenez, seuls 10% vont vous servir,mais vous ne savez pas lesquels ...
Yacub
Générateur de blocs fonctions
Générateur de blocs fonctions
Messages : 102
Enregistré le : 07 févr. 2016, 18:27

Re: Pointeur

Message par Yacub »

djé,

Merci beaucoup, je vais tenter de remonter la valeur contenu de ce fameux registre et je reviens vers toi (concernant la syntaxe) si cela ne te dérange pas .
Yacub
Générateur de blocs fonctions
Générateur de blocs fonctions
Messages : 102
Enregistré le : 07 févr. 2016, 18:27

Re: Pointeur

Message par Yacub »

djé,

quel est l’intérêt d'utiliser cette "memoire indirect AR1 et AR2 " par rapport a un Accu ou encore plus simple
un MW / DBW ?
Avatar du membre
djé
Dieu du process
Dieu du process
Messages : 864
Enregistré le : 20 oct. 2015, 09:55
Localisation : Bretagne, Pays de la Loire, Nantes
Contact :

Re: Pointeur

Message par djé »

Bonjour,

Chez siemens pour faire de l'adressage indirect tu as deux solutions:

en SCL: il peut être réalisé simplement en mode "Schneider Like" c'est à dire en mettant la valeur l'adresse entre crochet: ex : DB1.DBW[MW10]. MW10 représente l'adresse indirecte: si MW10=52 alors on va s'adresser à DB1.DBW52
La gestion est implicite.

en LIST: il faut explicitement construire l'index (registre d'adresse indirecte) à l'aide du registre AR (AR1 ou AR2). En LIST on est au plus près du langage machine, vraiment bas niveau. Il faut tout faire à la mano.
(exception les tempo "T" par exemple peuvent être adressées directement ex: T[MW10])

Jette un coup d'oeil à la doc dont je t'ai fourni le lien plus haut (la deuxième) dans les trois-quatre dernières pages.
Le monde se divise en 10 catégories:les personnes qui comprennent le binaire,et les autres.

Dans tout ce que vous apprenez, seuls 10% vont vous servir,mais vous ne savez pas lesquels ...
Avatar du membre
Mantysse
Dieu du process
Dieu du process
Messages : 756
Enregistré le : 20 oct. 2015, 08:17
Localisation : MiP

Re: Pointeur

Message par Mantysse »

djé a écrit : 19 juin 2017, 08:29 en SCL: il peut être réalisé simplement en mode "Schneider Like" c'est à dire en mettant la valeur l'adresse entre crochet: ex : DB1.DBW[MW10]. MW10 représente l'adresse indirecte: si MW10=52 alors on va s'adresser à DB1.DBW52
La gestion est implicite.
C'est aussi valable en Ladder ;)

A+
"Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément." Nicolas Boileau

L'urgence, c'est fait!
L'impossible, c'est en cours!
Pour les miracles, il faut prévoir un délai!
Avatar du membre
djé
Dieu du process
Dieu du process
Messages : 864
Enregistré le : 20 oct. 2015, 09:55
Localisation : Bretagne, Pays de la Loire, Nantes
Contact :

Re: Pointeur

Message par djé »

Mantysse a écrit : 19 juin 2017, 13:05 djé a écrit : ↑
19 juin 2017, 08:29
en SCL: il peut être réalisé simplement en mode "Schneider Like" c'est à dire en mettant la valeur l'adresse entre crochet: ex : DB1.DBW[MW10]. MW10 représente l'adresse indirecte: si MW10=52 alors on va s'adresser à DB1.DBW52
La gestion est implicite.

C'est aussi valable en Ladder ;)

A+
T'en es sûr?
Le monde se divise en 10 catégories:les personnes qui comprennent le binaire,et les autres.

Dans tout ce que vous apprenez, seuls 10% vont vous servir,mais vous ne savez pas lesquels ...
Répondre