Précédent   Forum des professionnels en informatique > Systèmes > Autres systèmes > Automation
Automation Forum d'entraide sur l'automatisme, la robotique et l'informatique industrielle
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 26/06/2008, 17h31   #1
Nouveau Membre du Club
 
Inscription : décembre 2007
Messages : 56
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : décembre 2007
Messages : 56
Points : 26
Points : 26
Par défaut [SCHNEIDER][UNITY PRO XL] Bizarreries de conversion PL7 PRO <-> Unity Pro

Salut a tous,

Voici mon souci, car ce n'est réellement pas un problème, j'effectue la conversion d'un programme API codé sous PL7 PRO vers Unity Pro.

Bon, il existe une moulinette interne, qui consiste a enregistrer le programme PL7 sous format .FEF et ensuite de le rouvrir avec Unity, qui l'extrait et le converti.

C'est un assez gros programme, mais j'ai eu peu d'erreurs de conversions, or je suis tombé sur une qui me turlupine.

Voici le code affecté

Original:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
(*========================== Initialisation de la mémorisation lors du premier passage ==========================*)
IF NOT Init_fil THEN
	FOR Index_filtrage := 0 TO 14 DO
		Image_filtre_tor_00 [Index_filtrage] := Image_tor_00 [Index_filtrage] ;
		Memo_image_tor_00 [Index_filtrage] := Image_tor_00 [Index_filtrage] ;
	END_FOR;
END_IF;



(*=================================== Filtrage & mémorisation des entrées TOR ===================================*)
FOR Index_filtrage := 0 TO 14 DO
	(* Filtrage *)
	Image_filtre_tor_00 [Index_filtrage] := (Image_tor_00 [Index_filtrage] AND Memo_image_tor_00 [Index_filtrage]) OR
	(Image_filtre_tor_00 [Index_filtrage] AND (Image_tor_00 [Index_filtrage] OR
	Memo_image_tor_00 [Index_filtrage]))  ;
	(* Mémorisation *)
	Memo_image_tor_00 [Index_filtrage] := Image_tor_00 [Index_filtrage] ;
END_FOR;



(*============================== Initialisation effectuée après le premier passage ==============================*)
SET(Init_fil);
Converti:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
(*========================== Initialisation de la mémorisation lors du premier passage ==========================*)
IF NOT Init_fil THEN
	FOR Index_filtrage := 0 TO 14 DO
		Image_filtre_tor_00_ar[Index_filtrage] := Image_tor_00_ar[Index_filtrage] ;
		Memo_image_tor_00_ar[Index_filtrage] := Image_tor_00_ar[Index_filtrage] ;
	END_FOR;
	(*{CONVERROR('1: Avertissement : la valeur de la variable de commande de la boucle FOR est non définie en dehors de la boucle ; il en est de même pour toutes les boucles FOR du projet.');}*)
END_IF;



(*=================================== Filtrage & mémorisation des entrées TOR ===================================*)
FOR Index_filtrage := 0 TO 14 DO
	(* Filtrage *)
	Image_filtre_tor_00_ar[Index_filtrage] := (Image_tor_00_ar[Index_filtrage] AND Memo_image_tor_00_ar[Index_filtrage]) OR
	(Image_filtre_tor_00_ar[Index_filtrage] AND (Image_tor_00_ar[Index_filtrage] OR
	Memo_image_tor_00_ar[Index_filtrage]))  ;
	(* Mémorisation *)
	Memo_image_tor_00_ar[Index_filtrage] := Image_tor_00_ar[Index_filtrage] ;
END_FOR;



(*============================== Initialisation effectuée après le premier passage ==============================*)
SET(Init_fil);
Vous remarquerez qu'il m'a signalé une erreur (que je ne saisi pas d'ailleurs), mais je viens de m'apercevoir qu'il avait modifié les noms de variables sans me le signaler une seule fois (il a ajouté _ar derrière mes index)


Donc voila, je voudrai savoir si cela est déjà arrivé a quelqu'un et l'impact que ça aurai sur mon code.

Merci d'avance et a bientôt
Brebiou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/06/2008, 22h49   #2
Responsable Visual Basic
 
Avatar de bbil
 
Inscription : juin 2003
Messages : 11 779
Détails du profil
Informations personnelles :
Âge : 45
Localisation : France, Ariège (Midi Pyrénées)

Informations forums :
Inscription : juin 2003
Messages : 11 779
Points : 16 855
Points : 16 855
Envoyer un message via Skype™ à bbil
J'ai pas encore utilisé le convertisseur mais un coup d'oeil dans l'aide en ligne d'Unity :


Citation:
Envoyé par Les tableaux et les objets indexés symbolisés
Le tableau est déclaré de [0..NbMaxMW-i-1], son type et sa localisation dépendent du repère.
Exemple : %MWi[j], déclaré en PL7 TABA[j], est converti en TABA_AR[j]. TABA_AR[j] est donc un tableau déclaré de [0..NbMaxMW-i-1], de type INT, localisé à %MWi et en ayant le même commentaire de TABA.
Citation:
Instruction FOR
Le convertisseur d’applications PL7 convertit l’instruction de commande FOR.
La variable d’index utilisée dans l’instruction FOR n’est utilisable, en Unity Pro, qu’à l’intérieur de la boucle de programmation.
Pendant la conversion de la première instruction FOR d’une application PL7, un message d’erreur vous préviendra de vérifier que chacune des variables de la boucle de programmation n’est utilisée qu’à l’intérieur de la boucle.
Dans le cas contraire, la variable n’étant pas déclarée, la commande n’est pas exécutée.
donc tout vas bien c'est prévu comme cela..

bbil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/06/2008, 08h59   #3
Nouveau Membre du Club
 
Inscription : décembre 2007
Messages : 56
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : décembre 2007
Messages : 56
Points : 26
Points : 26
Ok, me voila rassuré, il a donc transformé mes index en tableau indexé...

Par contre pour la boucle FOR, si je l'ai déclaré, ça ne devrai pas me poser de souci, non?

Apparemment ma boucle s'effectue, mais je n'en suis pas sur a 100%...

En tout cas merci de la rapidité et la clarté de la réponse (honte a moi, je ne maitrise pas encore l'utilisation de la recherche d'Unity )
Brebiou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/06/2008, 21h09   #4
Responsable Visual Basic
 
Avatar de bbil
 
Inscription : juin 2003
Messages : 11 779
Détails du profil
Informations personnelles :
Âge : 45
Localisation : France, Ariège (Midi Pyrénées)

Informations forums :
Inscription : juin 2003
Messages : 11 779
Points : 16 855
Points : 16 855
Envoyer un message via Skype™ à bbil
Citation:
Envoyé par Brebiou Voir le message
....
Par contre pour la boucle FOR, si je l'ai déclaré, ça ne devrai pas me poser de souci, non?...
As tu besoin de la valeur de l'index ailleurs que dans ta boucle ?
bbil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/06/2008, 09h21   #5
Nouveau Membre du Club
 
Inscription : décembre 2007
Messages : 56
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : décembre 2007
Messages : 56
Points : 26
Points : 26
Apparemment non, je viens de vérifier et cette variable n'est utilisé quand dans mes boucles FOR (autrement dit le code du premier post).
Brebiou est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 20h59.


 
 
 
 
Partenaires

Hébergement Web