Por lo general, refactorización hace referencia al proceso de restructuración y mejora del código de software existente sin modificar su comportamiento.
La refactorización en EcoStruxure Machine Expert proporciona funcionalidades para cambiar el nombre de los objetos y las variables. Permite mostrar todas las ubicaciones de uso de los objetos y variables modificados y cambiarles el nombre a todos a la vez, o únicamente a algunos de ellos. Es posible configurar si se le consultará a la hora de realizar la refactorización y en qué ubicaciones. Explícitamente, puede utilizar el comando Refactorización > Cambiar nombre.
Para obtener más información, consulte asimismo Opciones, Refactorización.
El comando Refactorización > Cambiar nombre permite cambiar el nombre de objetos y variables de manera global en todo el proyecto.
Se encuentra disponible en el menú contextual al colocar el cursor sobre el nombre de una variable de la declaración o al hacer clic con el botón derecho en uno de los siguientes objetos en un navegador:
oFunciones
oPOU
oGVL
oMétodos
oPropiedades
oDispositivos
Este comando también se encuentra disponible al seleccionar conversiones de unidades y variables en el editor de conversiones de unidades.
El comando no está disponible en modalidad online.
Una vez que ha ejecutado el comando Refactorización > Cambiar nombre, aparecerá un cuadro de diálogo. En él se muestran las ubicaciones en las que se utiliza el nombre en cuestión: en la parte derecha de la ventana se muestran las distintas ubicaciones, mientras que en la izquierda se muestra un árbol de navegación con el objeto correspondiente marcado.
Es posible seleccionar de manera individual los siguientes comandos para cada ubicación:
oReject/accept this change: rechazar o aceptar cambios individuales en la ventana derecha.
oReject/accept this object: rechazar o aceptar todos los cambios en el objeto en cuestión.
oReject/accept whole project: rechazar o aceptar todos los cambios del proyecto.
Los cambios aceptados se mostrarán con un fondo amarillo, mientras que los rechazados lo harán con un fondo gris.
El comando Refactorización > Añadir <variable> permite declarar variables en una POU y ejecutar una actualización automática en sus diferentes puntos de uso.
Se encuentra disponible en el menú contextual o bien en el menú Editar > Refactorización al colocar el cursor en un editor de declaraciones. Se abre el cuadro de diálogo Declarar variable.
Tras hacer clic en Aceptar para confirmar el cuadro de diálogo Declarar variable, se abrirá el cuadro de diálogo Refactorización. Este consta, en la parte izquierda, de una estructura de árbol del proyecto. Las POU en las que se utiliza la nueva variable aparecen resaltadas en el árbol. Haga doble clic en una POU para que se abra en la parte derecha una vista detallada del cuadro de diálogo. En esta sección de declaración e implementación de la POU de la parte derecha, las nuevas declaraciones aparecerán resaltadas en amarillo.
Antes de decidir qué cambios desea aceptar y en qué ubicación, seleccione la opción adecuada en la lista situada encima de la sección de declaración e implementación de la POU de la parte derecha:
Opción |
Descripción |
---|---|
Add inputs with placeholder text |
Seleccione esta opción para insertar el texto de marcador de posición estándar _REFACTOR_ siempre que se detecte la nueva variable en el código de implementación. Puede buscar el texto estándar más adelante a fin de identificar las ubicaciones afectadas. |
Add inputs with the following value |
Seleccione esta opción para insertar un valor de inicialización siempre que se detecte la nueva variable en el código de implementación. Introduzca el valor de inicialización en el cuadro de texto situado a la derecha de la opción Add inputs with the following value. |
Para aceptar o rechazar cambios, haga clic con el botón derecho en las ubicaciones modificadas o ejecute los comandos de la parte izquierda o derecha del cuadro de diálogo, tal como se describe en el apartado Proceso de cambio de nombre del presente capítulo.
Ejemplos de adición de una variable
Ejemplo 1:
Al refactorizar, el bloque fun recibe una nueva variable de entrada input3 con el valor de inicialización 1. El cambio tiene el siguiente efecto:
Antes de la refactorización:
fun(a + b, 3, TRUE);
fun(input1:= a + b , input2 :=3 , inputx := TRUE);
Después de la refactorización:
fun(a + b, 3, input3:=1, TRUE);
fun(input1:= a + b , input2 :=3 , input3:=_REFACTOR_,inputx := TRUE);
Ejemplo 2:
Al refactorizar, el bloque fun recibe una nueva variable de entrada input3 con el texto de marcador de posición _REFACTOR_:
Antes de la refactorización:
inst(input1 := a + b, input2 := 3, inputx := TRUE);
fun(a + b, 3, TRUE);
Después de la refactorización:
inst(input1 := a + b, input2 := 3, input3 := _REFACTOR_, inputx := TRUE);
fun(a + b, 3, input3:=_REFACTOR_, TRUE);
El comando Refactorización > Eliminar <variable> permite eliminar una variable de entrada o salida de una POU. La variable se elimina automáticamente de los diferentes puntos de uso de la POU.
El comando se encuentra disponible en el menú contextual o bien en el menú Editar > Refactorización al colocar el cursor en el editor de declaraciones sobre el identificador de la variable que se desea eliminar. Se abre un cuadro de diálogo en el que se proporciona información acerca de la eliminación. Al confirmar el mensaje, se abre el cuadro de diálogo Refactorización.
Al aceptar las modificaciones propuestas en el cuadro de diálogo Refactorización, las variables de entrada o salida correspondientes se eliminarán automáticamente de los diferentes puntos de uso de la POU en cuestión.
NOTA: En CFC, solo se eliminará la conexión entre la entrada o salida eliminada y el bloque. La entrada o salida en cuestión permanecerán en el diagrama.
Ejemplo de eliminación de una variable en ST
En una POU, la refactorización conlleva la eliminación de la variable de entrada input4. La variable se elimina automáticamente de los diferentes puntos de uso de la POU en cuestión:
Antes de la eliminación:
inst(input1 := a + b, input2 := 3, input4 := 1, input5 := TRUE);
fun(a + b, 3, 1, TRUE);
Después de la eliminación:
inst(input1 := a + b, input2 := 3, input5 := TRUE);
fun(a + b, 3, TRUE);
Comando Actualizar pins referenciados
El comando Refactorización > Actualizar pins referenciados solo tiene efecto en el editor CFC y el editor FBD/LD/IL. Corresponde a los comandos Restablecer conexiones y Actualizar parámetros.
El comando Refactorización > Actualizar pins referenciados actualiza las conexiones de entrada y salida de la POU en sus diferentes puntos de uso y en función de la declaración de la POU actual.
Se encuentra disponible en el menú contextual o bien en el menú Editar > Refactorización al colocar el cursor sobre el nombre de una POU, en la primera línea de la declaración de la POU o en el editor de dispositivos.
El comando Refactorización > Reordenar variables permite cambiar el orden de las declaraciones de variables en los ámbitos VAR_INPUT, VAR_OUTPUT o VAR_IN_OUT.
Ejemplo:
VAR_INPUT
invar2 : INT;
invar1 : INT;
in : DUT;
bvar : BOOL;
invar3 : INT;
Para cambiar el orden de las declaraciones, haga lo siguiente:
Paso |
Acción |
---|---|
1 |
Haga clic con el botón derecho en la parte de la declaración y ejecute el comando Refactorización > Reordenar variables. Resultado: se abre el cuadro de diálogo Reordenar con una lista de variables VAR_INPUT. |
2 |
Arrastre la entrada invar1 : INT; hasta la posición anterior a la entrada invar2.. Resultado: la declaración invar1 se sitúa en la posición superior. |
3 |
Haga clic en Aceptar para cerrar el cuadro de diálogo. Resultado: se abre el cuadro de diálogo Refactorización. Los elementos afectados se marcan de color amarillo. |
4 |
Haga clic en Aceptar para aceptar el nuevo orden de parámetros del bloque de funciones. Tenga presente que el orden modificado de los parámetros se reflejará también en los usos de llamadas de las POU. |
Modificación de una declaración de variable y aplicación automática de la refactorización
La refactorización puede ayudarlo en el proceso de cambio de nombre de variables (mediante la función Declarar variable), tal como se indica en el siguiente ejemplo.
Como requisito previo para este ejemplo, deberá haber un bloque de funciones fb_A disponible con una entrada iA.
Paso |
Acción |
Comentario |
---|---|---|
1 |
Ejecute el comando Herramientas > Opciones.... |
Resultado: se abre el cuadro de diálogo Opciones. |
2 |
Seleccione la categoría Refactorización en la parte izquierda. |
– |
3 |
En la sección Declarar variable, seleccione las opciones Para agregar o eliminar variables, o para modificar el espacio de nombres y Al renombrar variables. |
– |
4 |
Haga doble clic en el bloque de funciones fb_A. |
– |
5 |
Seleccione una variable en la declaración de fb_A, por ejemplo, iA. |
Otra alternativa consiste en colocar el cursor antes de la variable o en ella. |
6 |
Ejecute el comando Editar > Declarar variable.... |
Otra alternativa consiste en utilizar el método abreviado Mayús + F2. Resultado: se abre el cuadro de diálogo Declarar variable. Se muestra la configuración de la variable iA. |
7 |
Edite el Nombre y cambie iA por iCounter_A. |
Resultado: se abre el cuadro de diálogo Refactor - Renombrar 'FB_A.iA' a 'iCounterA'. Las POU en las que se utiliza la variable aparecen resaltadas en la estructura de árbol. |
8 |
Haga clic en Aceptar para aplicar el cambio de nombre y cerrar el cuadro de diálogo. |
– |