Implementar una interfaz
Implementar una interfaz
La implementación de interfaces se basa en el concepto de programación orientada a objetos. También puede usar bloques de funciones diferentes pero similares de la misma manera a través de interfaces comunes.
Un bloque de funciones que implementa una interfaz debe contener todos los métodos y propiedades que se definen en esta interfaz (métodos de interfaz y propiedades de interfaz). Esto significa: El nombre, las entradas y las salidas del método o propiedad respectiva deben ser exactamente iguales.
Cuando crea un nuevo módulo de función que implementa una interfaz, agrega CODESYS ingresa automáticamente todos los métodos y propiedades de esta interfaz debajo del nuevo módulo de función en el árbol.
Importante
Después de eso, si agrega más métodos a la interfaz, agrega CODESYS estos métodos no se agregan automáticamente a los módulos de funciones relevantes. Para la actualización debe usar explícitamente el comando implementar interfaces escoger.
En el caso de bloques de función derivados, debe asegurarse de que los métodos o propiedades que se adoptaron por "herencia" de una interfaz reciban la implementación deseada o se eliminen si se va a utilizar la implementación en la base. Recibirá los mensajes de error o advertencias de traducción correspondientes, provocados por los atributos de pragma insertados automáticamente. Consulte la página de ayuda del comando. implementar interfaces.
Importante
- Debe asignar la interfaz de un bloque de funciones a una variable del tipo de una interfaz antes de que se pueda llamar a un método a través de la variable. 
- Una variable del tipo de interfaz es siempre una referencia de la instancia de bloque de funciones asignada. 
Una variable de tipo de interfaz es una referencia a instancias de bloques de funciones. Dicha variable puede hacer referencia a cualquier bloque de funciones que implemente la interfaz. Si no se ha realizado ninguna asignación a la variable, entonces la variable contiene el valor en modo en línea 0.
La interfaz I1 contiene el método GetName.
METHOD GetName : STRING
Los bloques de funciones A y B cada uno implementa la interfaz I1:
FUNCTION_BLOCK A IMPLEMENTS I1 FUNCTION_BLOCK B IMPLEMENTS I1
Por lo tanto, ambos módulos de función deben tener un método con el nombre GetName y el tipo de retorno STRING Contiene. De lo contrario, el compilador informa de un error.
Una función contiene la declaración de una variable del tipo interfaz. I1.
FUNCTION DeliverName : STRING
VAR_INPUT
    l_i : I1;
END_VARBloques de función que la interfaz I1 implemento, se puede asignar a esta variable de entrada.
Ejemplos de llamadas a funciones:
DeliverName(l_i := A_instance); // call with instance of type A DeliverName(l_i := B_instance); // call with instance of type B
Llamando al método de interfaz:
En este caso, depende del tipo real de l_i de si la aplicación A.GetName o B.GetName llamadas
DeliverName := l_i.GetName();
Implementación de una interfaz en un nuevo módulo de función
Requisito: El proyecto actualmente abierto tiene al menos un objeto de interfaz.
- Seleccione Solicitud en el árbol de dispositivos y seleccione el comando de menú . - El diálogo Añadir POU se abre 
- Introduzca un nombre para el nuevo módulo de funciones en el campo de entrada Apellido uno, por ejemplo POU_Im. 
- Escoger módulo de funciones. 
- Escoger implementado y haga clic en el botón  . .
- En el asistente de entrada, elija de la categoría interfaces la interfaz por ejemplo - ITF1y haga clic OK.
- Para agregar otra interfaz, haga clic nuevamente  y seleccione otra interfaz. y seleccione otra interfaz.
- Opcionalmente puedes tener uno modificador de acceso para el nuevo módulo de función de la lista de selección. 
- Elija de la lista desplegable lenguaje de implementación por ejemplo Texto estructurado (ST) fuera. 
- haga clic en añadir. - CODESYS agrega el bloque de función POU_Ex en el árbol de dispositivos y se abre el editor. La primera línea dice: - FUNCTION_BLOCK POU_Im IMPLEMENTS ITF1- La interfaz y sus métodos y propiedades ahora se insertan en el árbol de dispositivos debajo del bloque de funciones y ahora puede ingresar el código del programa en la parte de implementación de la interfaz y sus métodos. 
Implementación de una interfaz en un bloque de funciones existente
Requisito: El proyecto actualmente abierto tiene un bloque de función, por ejemplo POU_Im y al menos un objeto de interfaz, por ejemplo ITF1.
- Haga doble clic en la POU en el árbol de dispositivos POU_Ex(FB). - Se abre el editor de la POU. 
- Expandir la entrada de la fila superior existente - FUNCTION_BLOCK POU_ImCon- IMPLEMENTS ITF1.- El bloque de funciones POU_Im implementa la interfaz ITF1.