Le processus de refactoring consiste à restructurer et à améliorer le code du logiciel existant, sans en changer le fonctionnement.
Dans EcoStruxure Machine Expert, cette fonctionnalité permet de renommer des objets et des variables. Vous savez où sont utilisés les objets et variables modifiés, et pouvez les renommer un à un ou de manière groupée. Vous pouvez également décider si et où vous recevrez une invite avant de procéder au refactoring. Enfin, la commande Refactoring > Renommer peut être utilisée de manière explicite.
Pour plus d'informations, consultez également la section Options, Refactoring.
La commande Refactoring > Renommer permet de renommer les objets et les variables à l'échelle d'un projet.
Elle est disponible dans le menu contextuel lorsque le curseur se trouve sur le nom d'une variable dans la déclaration ou que vous cliquez avec le bouton droit sur l'un des objets suivants dans un navigateur :
oFonctions
oPOU
oGVL
oMéthodes
oPropriétés
oEquipements
Vous avez également accès à cette commande lorsque vous sélectionnez des variables et des conversions d'unité dans l'éditeur de conversion.
Elle n'est pas disponible en mode en ligne.
Une fois la commande Refactoring > Renommer exécutée, vous accédez à une boîte de dialogue. Celle-ci affiche, à droite, les différents emplacements où le nom en question est utilisé et, à gauche, l'arborescence de navigation avec l'objet marqué.
Pour chaque emplacement, vous avez la possibilité de sélectionner les commandes suivantes :
oReject/accept this change : permet de rejeter ou d'accepter une modification dans la fenêtre de droite.
oReject/accept this object : permet de rejeter ou d'accepter toutes les modifications pour l'objet concerné.
oReject/accept whole project : permet de rejeter ou d'accepter toutes les modifications au niveau du projet.
Les modifications acceptées s'affichent sur un fond jaune, celles rejetées sur un fond gris.
La commande Refactoring > Ajouter <variable> permet de déclarer des variables dans une POU et de mettre à jour automatiquement leurs différentes occurrences.
Elle est disponible dans le menu contextuel ou dans le menu Edition > Refactoring lorsque le curseur se trouve dans un éditeur de déclaration. Une fois cette commande exécutée, vous accédez à la boîte de dialogue Déclarer une variable.
Après avoir confirmé l'opération par OK dans la boîte de dialogue Déclarer une variable, la boîte de dialogue Refactoring s'ouvre. Celle-ci contient l'arborescence du projet, à gauche. Les POU contenant la nouvelle variable sont mis en surbrillance dans l'arborescence. Pour accéder à l'affichage détaillé d'un POU, cliquez dessus à droite de la boîte de dialogue. Les nouvelles déclarations s'affichent en surbrillance jaune dans la section déclaration et dans l'implémentation du POU, à droite de la fenêtre.
Avant de décider quelles modifications vous acceptez et où, sélectionnez l'option qui convient dans la liste au-dessus de la section déclaration et de l'implémentation du POU à droite :
Option |
Description |
---|---|
Add inputs with placeholder text |
Sélectionnez cette option pour insérer le texte réservé standard _REFACTOR_ au niveau de chaque occurrence de la nouvelle variable dans le code d'implémentation. Vous pourrez effectuer ultérieurement une recherche sur ce texte pour identifier les emplacements affectés. |
Add inputs with the following value |
Sélectionnez cette option pour insérer une valeur d'initialisation au niveau de chaque occurrence de la nouvelle variable dans le code d'implémentation. Entrez la valeur d'initialisation dans la zone de texte à droite de l'option Add inputs with the following value. |
Pour accepter ou rejeter des modifications, cliquez avec le bouton droit sur les emplacements concernés ou exécutez les commandes dans la partie droite ou gauche de la boîte de dialogue (reportez-vous au paragraphe Procédure de renommage dans ce chapitre).
Exemples d'ajout d'une variable
Exemple 1 :
Lors du refactoring, le bloc fun reçoit une nouvelle variable d'entrée input3 avec la valeur d'initialisation 1. Voici le résultat de la modification :
Avant refactoring :
fun(a + b, 3, TRUE);
fun(input1:= a + b , input2 :=3 , inputx := TRUE);
Après refactoring :
fun(a + b, 3, input3:=1, TRUE);
fun(input1:= a + b , input2 :=3 , input3:=_REFACTOR_,inputx := TRUE);
Exemple 2:
Lors du refactoring, le bloc fun reçoit une nouvelle variable d'entrée input3 avec le texte réservé _REFACTOR_ :
Avant refactoring :
inst(input1 := a + b, input2 := 3, inputx := TRUE);
fun(a + b, 3, TRUE);
Après refactoring :
inst(input1 := a + b, input2 := 3, input3 := _REFACTOR_, inputx := TRUE);
fun(a + b, 3, input3:=_REFACTOR_, TRUE);
La commande Refactoring > Remove <variable> vous permet de supprimer une variable d'entrée ou de sortie dans un POU. Chaque occurrence de la variable est automatiquement supprimée du POU.
La commande est disponible dans le menu contextuel ou dans le menu Edition > Refactoring lorsque le curseur est positionné sur l'identifiant de la variable à supprimer dans l'éditeur de déclaration. Une boîte de dialogue s'ouvre et fournit des informations concernant la suppression. Si vous confirmez le message, la boîte de dialogue Refactoring s'ouvre.
Après avoir accepté les modifications proposées dans la boîte de dialogue Refactoring, chaque occurrence des variables d'entrée ou de sortie est automatiquement supprimée du POU concerné.
NOTE : dans l'éditeur CFC, seule la connexion entre l'entrée ou la sortie et le bloc est supprimée. L'entrée ou la sortie est conservée dans le diagramme.
Exemple de suppression d'une variable en langage ST
Dans un POU, la fonctionnalité de refactoring supprime la variable d'entrée input4. Chaque occurrence de la variable est automatiquement supprimée du POU correspondant.
Avant suppression :
inst(input1 := a + b, input2 := 3, input4 := 1, input5 := TRUE);
fun(a + b, 3, 1, TRUE);
Après suppression :
inst(input1 := a + b, input2 := 3, input5 := TRUE);
fun(a + b, 3, TRUE);
Commande Actualiser les connexions concernées
La commande Refactoring > Actualiser les connexions concernées ne s'applique que dans l'éditeur CFC et l'éditeur FBD/LD/IL. Elle correspond aux commandes Réinitialiser les connexions et Mettre à jour les paramètres.
La commande Refactoring > Actualiser les connexions concernées permet de mettre à jour chaque occurrence des connexions d'entrée et de sortie du POU, en fonction de la déclaration de POU actuelle.
Cette commande est disponible dans le menu contextuel ou dans le menu Edition > Refactoring lorsque le curseur est positionné dans le nom du POU, sur la première ligne de la déclaration du POU ou dans l'éditeur d'appareil.
Commande Réordonner les variables
La commande Refactoring > Réordonner les variables vous permet de modifier l'ordre des déclarations de variables dans les portées VAR_INPUT, VAR_OUTPUT ou VAR_IN_OUT.
Exemple :
VAR_INPUT
invar2 : INT;
invar1 : INT;
in : DUT;
bvar : BOOL;
invar3 : INT;
Pour modifier l'ordre des déclarations, procédez comme suit :
Étape |
Action |
---|---|
1 |
Cliquez avec le bouton droit sur la partie déclaration et exécutez la commande Refactoring > Réordonner les variables. Résultat : la boîte de dialogue Réordonner s'ouvre et contient une liste de variables VAR_INPUT. |
2 |
Faites glisser l'entrée invar1 : INT; avant l'entrée invar2.. Résultat : la déclaration invar1 s'affiche en première position. |
3 |
Cliquez sur OK pour fermer la boîte de dialogue. Résultat : la boîte de dialogue Refactoring s'ouvre. Les éléments affectés sont marqués en jaune. |
4 |
Cliquez sur OK pour valider la nouvelle organisation des paramètres du bloc fonction. Les paramètres sont également réordonnés dans les appels des POU. |
Modification d'une déclaration de variable et application automatique du refactoring
Vous pouvez utiliser la fonctionnalité de refactoring pour renommer des variables (à l'aide de l'option Déclarer une variable), comme illustré ci-dessous.
Pour cet exemple, un bloc fonction fb_A avec une entrée iA doit être disponible.
Étape |
Action |
Commentaire |
---|---|---|
1 |
Exécutez la commande Outils > Options. |
Résultat : la boîte de dialogue Options s'ouvre. |
2 |
Sélectionnez la catégorie Refactoring à gauche. |
– |
3 |
Dans la section Déclarer une variable, sélectionnez les options Pour l'ajout ou la suppression de variables, ou pour la modification de l'espace de noms et Lors du renommage de variables. |
– |
4 |
Double-cliquez sur le bloc fonction fb_A. |
– |
5 |
Sélectionnez une variable dans la déclaration de fb_A (par exemple, iA). |
Vous pouvez également placer le curseur avant ou dans la variable. |
6 |
Exécutez la commande Edition > Déclarer une variable. |
Vous pouvez également utiliser le raccourci Maj + F2. Résultat : la boîte de dialogue Déclarer une variable s'ouvre. Les paramètres de la variable iA s'affichent. |
7 |
Modifiez le nom et remplacez iA par iCounter_A. |
Résultat : la boîte de dialogue Refactor - Renommer de 'iA' en 'iCounterA' s'ouvre. Les POU contenant la variable sont mis en surbrillance dans l'arborescence. |
8 |
Cliquez sur OK pour appliquer le nouveau nom et fermer la boîte de dialogue. |
– |