Interfaz

Descripción general

El uso de interfaces es un medio de programación orientada a objetos. La interfaz POU define un conjunto de métodos y propiedades sin implementación. La interfaz podría describirse como la cáscara vacía de un bloque de funciones. Debe implementarse en la declaración del bloque de funciones para que se realice en las instancias del bloque de funciones. Un bloque de funciones puede implementar una o varias interfaces.

Mediante el uso de bloques de funciones diferentes, puede ejecutarse el mismo método con parámetros idénticos pero con código de implementación diferente. Por tanto, se puede utilizar/llamar a una interfaz en cualquier POU sin la necesidad de que la POU identifique el bloque de funciones concreto que está relacionado.

Ejemplo de definición y uso de interfaz en un bloque de funciones

Una interfaz IFT se inserta debajo de una aplicación. Contiene 2 métodos: Method1 y Method2. Ni la interfaz ni los métodos contienen ningún código de implementación. Solo la parte de declaración de los métodos se completará con las declaraciones de variables que se deseen:

Interfaz con 2 métodos:

Ahora pueden insertarse 1 o varios bloques de funciones, que implementan la interfaz ITF definida anteriormente.

Creación de un bloque de funciones que implementa una interfaz

Cuando el bloque de funciones POU se añade al Árbol de aplicaciones, los métodos Method1 y Method2 se insertan automáticamente debajo, conforme se ha definido mediante ITF. Aquí pueden completarse con código de implementación específico del bloque de funciones.

Uso de la interfaz en la definición del bloque de funciones

Una interfaz puede extender otras interfaces mediante EXTENDS (consulte el ejemplo siguiente, Ejemplo para extender una interfaz) en la definición de la interfaz.

Propiedades de interfaz

Una interfaz también puede definir una propiedad de interfaz, que consta de los métodos de descriptor de acceso Get o Set. Para obtener más información sobre propiedades, consulte el capítulo Propiedad. Una propiedad en una interfaz, como los métodos que puede incluir, solo es un prototipo, lo que significa que no contiene código de implementación. Al igual que los métodos, se añade automáticamente al bloque de funciones, que implementa la interfaz. En el bloque de funciones podrá completarse con código de programación específico.

Consideraciones

Tenga en cuenta lo siguiente:

  • No se permite declarar variables en la interfaz. La interfaz no tiene cuerpo (parte de implementación) ni acciones. En la interfaz solo se define una colección de métodos, y esos métodos solo pueden tener variables de entrada, variables de salida y variables de entrada/salida.

  • Las variables declaradas con el tipo de una interfaz se tratan como referencias.

  • Un bloque de funciones que implementa una interfaz debe tener asignados métodos y propiedades con exactamente el mismo nombre que tienen en la interfaz. Deben contener entradas, salidas y entradas/salidas también con el mismo nombre.

NOTA: Al copiar o desplazar un método o una propiedad de un POU a una interfaz, las implementaciones contenidas se eliminan de forma automática. Al copiar o desplazar de una interfaz a un POU, se solicita especificar el lenguaje de implementación deseado.

Inserción de una interfaz

Para añadir una interfaz a una aplicación, seleccione el nodo Aplicación en el Árbol de aplicaciones, haga clic en el botón de signo más de color verde y seleccione Añadir otros objetos... > Interfaz. Como alternativa, ejecute el comando Agregar objeto > Interfaz. Si selecciona el nodo Global antes de ejecutar el comando, la nueva interfaz estará disponible para todas las aplicaciones.

En el cuadro de diálogo Add Interface, escriba un nombre para la nueva interfaz (<nombre de interfaz>). Como alternativa, puede activar la opción Extendido: si desea que la interfaz actual sea una extensión de otra interfaz.

Ejemplo para extender una interfaz

Si ITF1 extiende ITF_base, todos los métodos que describe ITF_base estarán automáticamente disponibles en ITF1.

Extensión de una interfaz

Haga clic en Agregar para confirmar la configuración. Se abrirá la vista del editor de la nueva interfaz.

Declaración de una interfaz

Sintaxis

INTERFACE <nombre de interfaz>

Para una interfaz que extiende a otra:

INTERFACE <nombre de interfaz> EXTENDS <nombre de interfaz básica>

Ejemplo

INTERFACE interface1 EXTENDS interface_base

Adición de una colección de métodos

Para completar la definición de la interfaz, añada la colección de métodos que desee. Para ello, seleccione el nodo de la interfaz en el Árbol de aplicaciones y ejecute el comando Método de interfaces.... Se abrirá el cuadro de diálogo Agregar Método de interfaces para definir un método que formará parte de la interfaz. Como alternativa, seleccione el nodo de la interfaz en el Árbol de aplicaciones, haga clic en el signo más de color verde y seleccione Método de interfaces. Añada tantos métodos como desee y recuerde que solo se permite que estos métodos tengan variables de entrada, variables de salida y variables de entrada/salida, pero no cuerpo (parte de implementación).