[Ecostruxure Control Expert] Indexage des variables

Forum traitant des automates industriels de marque Schneider - Telemecanique
Répondre
Oliver
Asservi son premier moteur
Asservi son premier moteur
Messages : 24
Enregistré le : 07 nov. 2022, 15:21

[Ecostruxure Control Expert] Indexage des variables

Message par Oliver »

Bonjour,

J'ai un problème de compréhension sur l'indexage des variables.

Voici un bout de programme qui permet d'écrire des messages sur un afficheur de marque Siebert.

Code : Tout sélectionner

		(* Présence Alarme avec Variables *)
	Ecran_index:=FIND_EQ_ARINT(CW50,Walmpre);

	(* Affectation d'un numéro de message *)
	IF Ecran_index=-1 THEN
		Ecran_Ligne3:=Walmpre;
	ELSE
		Ecran_Ligne3:=CW70[Ecran_index]+%MW0[CW90[Ecran_index]]-1;
	END_IF;

Ecran_index est un INT (%MW661)
CW50 est un ARRAY OF INT 0..19 (non localisé)
CW70 est un ARRAY OF INT 0..19 (non localisé)
CW90 est un ARRAY OF INT 0..19 (non localisé)
Walmpre est un INT (%MW90)
Ecran_ligne3 est un INT (%MW651)

Donc selon moi :
Ecran_index recherche dans CW50 une valeur égale à Walmpre. Dans mon programme CW50 n'est jamais écris.
Quand Ecran_index trouve une valeur identique, il prend la valeur de la rangée ou il y à égalité.

Ensuite Ecran_ligne3 est égale à = %MW(valeur de Ecran index) + %MW(valeur de Ecran index) - 1.

Ai-je bien compris ?
Avatar du membre
itasoft
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 7167
Enregistré le : 20 oct. 2015, 10:15
Localisation : Lyon
Contact :

Re: [Ecostruxure Control Expert] Indexage des variables

Message par itasoft »

Ecran_ligne3 := CW70(valeur de Ecran index) + %MW0(CW90(Ecran_index))-1;.
Automaticien privé (de tout)
itasoft@free.fr
Oliver
Asservi son premier moteur
Asservi son premier moteur
Messages : 24
Enregistré le : 07 nov. 2022, 15:21

Re: [Ecostruxure Control Expert] Indexage des variables

Message par Oliver »

itasoft a écrit : 08 nov. 2022, 14:14 Ecran_ligne3 := CW70(valeur de Ecran index) + %MW0(CW90(Ecran_index))-1;.
Pourrais-tu développer ? Je comprends pas.

Est-ce que tu es d'accord avec ce principe :

A := B [C]
Si B a pour adresse %MW1
et C est égale à 1
alors A:= %MW1[10] donc A:= %MW11

C'est bien ça ?
Avatar du membre
andala
Expert de l'héxadécimal
Expert de l'héxadécimal
Messages : 344
Enregistré le : 19 déc. 2016, 10:24
Localisation : Atlantide

Re: [Ecostruxure Control Expert] Indexage des variables

Message par andala »

Oliver a écrit : 08 nov. 2022, 14:47 A := B [C]
Si B a pour adresse %MW1
et C est égale à 1
alors A:= %MW1[10] donc A:= %MW11

C'est bien ça ?
Si C=10 est non pas 1 alors oui
Une bonne action en entraine toujours une autre
Oliver
Asservi son premier moteur
Asservi son premier moteur
Messages : 24
Enregistré le : 07 nov. 2022, 15:21

Re: [Ecostruxure Control Expert] Indexage des variables

Message par Oliver »

Oui effectivement.

DU coup est ce que ma théorie du premier post est juste ?
philou77
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 2087
Enregistré le : 21 oct. 2015, 10:00
Localisation : Ile de France

Re: [Ecostruxure Control Expert] Indexage des variables

Message par philou77 »

Salut

ARINT est un tableau de INT

donc CW50 est un tableau de INT
pour le reste on voit pas les déclarations donc on peut pas savoir

Ensuite Ecran_ligne3 est égale à = %MW(valeur de Ecran index) + %MW(valeur de Ecran index) - 1.

Non, le deuxième terme est doublement indexé !

Ecran_ligne3 est égale à =CW70(valeur de Ecran index)+ %MW0(CW90(valeur de Ecran index)) - 1
Si vous avez compris tout ce que je viens d'écrire, c'est que j'ai dû faire une erreur quelque part ! :D
Oliver
Asservi son premier moteur
Asservi son premier moteur
Messages : 24
Enregistré le : 07 nov. 2022, 15:21

Re: [Ecostruxure Control Expert] Indexage des variables

Message par Oliver »

Bonjour,

Voici la déclarations

Ecran_index est un INT (%MW661)
CW50 est un ARRAY OF INT 0..19 (non localisé)
CW70 est un ARRAY OF INT 0..19 (non localisé)
CW90 est un ARRAY OF INT 0..19 (non localisé)
Walmpre est un INT (%MW90)
Ecran_ligne3 est un INT (%MW651)

Je suis d'accord pour le deuxième terme, sauf que CW90 est un variable non localisée, donc cela revient à 0 ??
philou77
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 2087
Enregistré le : 21 oct. 2015, 10:00
Localisation : Ile de France

Re: [Ecostruxure Control Expert] Indexage des variables

Message par philou77 »

Re !

Non localisé signifie que l’on ne connaît pas l’adresse physique de la variable, on y accède uniquement par son nom ( CW90[x] dans ton cas )

Walmpre qui est localisée, on peut y accéder par son nom ou son adresse %MW90.
Si vous avez compris tout ce que je viens d'écrire, c'est que j'ai dû faire une erreur quelque part ! :D
Répondre