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.
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 , 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.
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.
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.
Para añadir una interfaz a una aplicación, seleccione el nodo
en el , haga clic en el botón de signo más de color verde y seleccione . Como alternativa, ejecute el comando . Si selecciona el nodo antes de ejecutar el comando, la nueva interfaz estará disponible para todas las aplicaciones.En el cuadro de diálogo extensión de otra interfaz.
, escriba un nombre para la nueva interfaz (<nombre de interfaz>). Como alternativa, puede activar la opción si desea que la interfaz actual sea una
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
para confirmar la configuración. Se abrirá la vista del editor de la nueva 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
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
y ejecute el comando . Se abrirá el cuadro de diálogo para definir un método que formará parte de la interfaz. Como alternativa, seleccione el nodo de la interfaz en el , haga clic en el signo más de color verde y seleccione . 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).