Elemento: Clase
Una clase es una unidad lógica con datos y operaciones encapsulados. También representa un tipo de variable que se puede instanciar. Cuando la instancia de una clase se asigna como variable a otra clase, esto se conoce como el rol o expresión de la clase.
Una clase puede proporcionar un método. FB_Init
que se llama al inicializar una instancia.
Una clase puede heredar de otra clase. Esta relación se llama generalización.
Una clase puede instanciar otra clase. Esta relación se llama composición.
Una clase puede reconocer otra clase. Esta relación se llama asociación.
Una clase puede ser una POU, una biblioteca POU (tipo: programa), un bloque de funciones o una función.

(1) | Iconos de comando SugerenciaCuando se selecciona una clase, sus símbolos de comando son visibles. |
(2) | Encabezamiento
|
(3) | Lista de atributos La entrada tiene el siguiente formato: Ejemplo: IDENTIFICACIÓN:
|
(4) | Lista de operaciones (acciones, métodos o propiedades) Ejemplo:
Una entrada para métodos tiene el formato:
En el caso de una entrada para un Una entrada para acciones tiene el formato:
Lo siguiente se aplica a <etiqueta>:
|
Propiedades
identificador | nombre de la clase Ejemplo: |
Entrada del usuario
La clase tiene listas ampliadas de atributos y operaciones que se identifican con . Los iconos de comando están visibles encima de la clase. Puede usarlos para insertar elementos de relación.
Acción | Resultado | |
---|---|---|
En el | los SugerenciaDespués de ser eliminada, la clase se muestra en la Caja de herramientas ver en Referencias cruzadas entrantes o Referencias cruzadas salientes. El requisito para esto es que seleccione un elemento en el diagrama de clases que tenga una relación con la clase eliminada. | |
Haga clic en el | los | |
los | Una flecha de composición apunta desde el nuevo La clase se ha ampliado mediante la declaración de una instancia de bloque de funciones de la primera clase. FUNCTION_BLOCK NewClass VAR_INPUT END_VAR VAR_OUTPUT END_VAR VAR InstanceBase : BaseClass; END_VAR | |
| Una flecha de composición apunta desde la segunda clase a la primera clase. La segunda clase se ha ampliado mediante la declaración de una instancia de bloque de funciones de la primera clase. FUNCTION_BLOCK SecondClass VAR_INPUT END_VAR VAR_OUTPUT END_VAR VAR InstanceBase : BaseClass; END_VAR | |
El nuevo | Una flecha de asociación apunta desde la nueva clase a la primera clase. El primero los FUNCTION_BLOCK NewClass VAR_INPUT END_VAR VAR_OUTPUT END_VAR VAR ptrBase : POINTER TO BaseClass; END_VAR | |
| Una flecha de asociación apunta desde la primera clase a la segunda clase. La primera clase reconoce a la segunda clase. La primera clase se ha ampliado mediante la declaración de un puntero a la segunda clase. FUNCTION_BLOCK SecondClass VAR_INPUT END_VAR VAR_OUTPUT END_VAR VAR ptrBase : POINTER TO BaseClass; END_VAR | |
Se genera una nueva clase que hereda de la primera clase. | Una generalización apunta de la nueva clase a la primera clase. La nueva clase hereda de la primera clase. La declaración de la nueva clase ha sido generada con FUNCTION_BLOCK ClassNew EXTENDS BaseClass VAR_INPUT END_VAR VAR_OUTPUT END_VAR VAR END_VAR | |
| Una generalización apunta de la primera clase a la primera clase. La declaración de la segunda clase se ha generado con la extensión de la primera clase.
| |
Se genera una interfaz que se implementa desde la clase saliente. | Una flecha de implementación apunta desde la clase a la nueva Ahora la clase implementa la nueva interfaz. La declaración de la clase se ha ampliado con la implementación. FUNCTION_BLOCK BaseClass IMPLEMENTS ITF_New VAR_INPUT END_VAR VAR_OUTPUT END_VAR VAR END_VAR | |
La interfaz es implementada por la clase. | Una flecha de realización apunta desde la clase a la interfaz. La declaración de la clase se ha ampliado con la implementación de la interfaz. FUNCTION_BLOCK BaseClass IMPLEMENTS ITF_A VAR_INPUT END_VAR VAR_OUTPUT END_VAR VAR END_VAR | |
| El nombre del objeto (en el árbol de dispositivos o en el POU vista) se ha adaptado automáticamente en la declaración. | |
| El cambio se aplica en el proyecto de forma síncrona y automática. | |
Haga doble clic en el elemento de clase. | Se abre el editor de objetos correspondiente. |
Ejemplos

FUNCTION_BLOCK Fb_D VAR VarFb_A: Fb_A; ... END_VAR

FUNCTION_BLOCK Fb_A VAR Class_2 : POINTER TO Class_2; END_VAR

FUNCTION_BLOCK Fb_A EXTENDS Fb_Base

FUNCTION_BLOCK Class_A IMPLEMENTS Itf_A