Declaration de variable STRUCT SoMachine

Forum traitant des automates industriels de marque Schneider - Telemecanique
Avatar du membre
Cyril93
Maître du binaire
Maître du binaire
Messages : 484
Enregistré le : 29 oct. 2015, 14:22
Localisation : IDF

Re: Declaration de variable STRUCT SoMachine

Message par Cyril93 »

je vois pas ou est le problème, par exemple en ST tu peux faire comme ça

Code : Tout sélectionner

IF ConditionCopieDeMesVariables THEN
	ConditionCopieDeMesVariables:=FALSE;
	StructurePID.rKp:=Autotune.rKp;
	StructurePID.rTn:=Autotune.rTn;
	etc...
	etc...
END_IF;
Paul
Code sa première boucle
Code sa première boucle
Messages : 20
Enregistré le : 03 mars 2016, 15:03
Localisation : Doubs

Re: Declaration de variable STRUCT SoMachine

Message par Paul »

Bonjour,
je pensais qu'il était possible de l'écrire comme dans l'exemple : StructurePID(rKp:=8,rTn:=152,rTv:=32,rTd=3,ect...)
En gros envoyer une chaine sans avoir à réécrire StructurePID 15 fois :D
Avatar du membre
Cyril93
Maître du binaire
Maître du binaire
Messages : 484
Enregistré le : 29 oct. 2015, 14:22
Localisation : IDF

Re: Declaration de variable STRUCT SoMachine

Message par Cyril93 »

Non on ne peux pas écrire comme ça directement.
Si tu dois faire cette copie de nombreuse fois dans le programme fait toi une fonction de copie.
Paul
Code sa première boucle
Code sa première boucle
Messages : 20
Enregistré le : 03 mars 2016, 15:03
Localisation : Doubs

Re: Declaration de variable STRUCT SoMachine

Message par Paul »

Oui je doit faire 12 régulateur thermique donc je vais essayer une fonction copie.
Avatar du membre
Cyril93
Maître du binaire
Maître du binaire
Messages : 484
Enregistré le : 29 oct. 2015, 14:22
Localisation : IDF

Re: Declaration de variable STRUCT SoMachine

Message par Cyril93 »

Dans l'entête de la fonction :

Code : Tout sélectionner

FUNCTION TuneToPidParam : BOOL
VAR_INPUT
	stcAutotune: PidAutotune;		(* Ici la structure venant de l'autotune *)
END_VAR
VAR
END_VAR
VAR_IN_OUT
	Copy: BOOL;				(* la variable qui déclenche la copie *)
	stcParam: Pidparam;			(* ici la structure du bloc de régul *)
END_VAR
Le programme de la fonction:

Code : Tout sélectionner

IF Copy THEN
	stcParam.rKp:=stcAutotune.rKp;
	stcParam.rTn:=stcAutotune.rTn;
	stcParam.rTd:=stcAutotune.rTd;
	Copy:=FALSE;
END_IF
A adapter à ton besoin :D
J'ai remis à FALSE le déclenchement de la copie en interne de la fonction.
Paul
Code sa première boucle
Code sa première boucle
Messages : 20
Enregistré le : 03 mars 2016, 15:03
Localisation : Doubs

Re: Declaration de variable STRUCT SoMachine

Message par Paul »

Ok c'est sympas je ne m'étais jamais servi de la Fonction copy :D
Répondre