Hay disponible una propiedad en extensión al estándar IEC 61131-3 como método de programación orientada a objetos. Se compone de un par de métodos de acceso (Get, Set). Permiten el encapsulado de un acceso de lectura o escritura a las variables declaradas en una POU o una GVL en una llamada de función mientras se mantiene la sintaxis de un acceso a variable.
Para insertar una propiedad como objeto debajo de un nodo de programa, bloque de funciones, GVL o interfaz, seleccione el nodo en el árbol Aplicaciones, haga clic en el botón de signo más de color verde y ejecute el comando Propiedad. Como alternativa, haga clic con el botón derecho en el nodo y ejecute el comando Agregar objeto > Propiedad en el menú contextual.
En el cuadro de diálogo Add Property, especifique el Nombre, Tipo de retorno, Lenguaje de implementación deseado y, opcionalmente, un Modificador de acceso.
Están disponibles los mismos modificadores de acceso que para los métodos:
oPUBLIC
oPRIVATE
oPROTECTED
oINTERNAL
NOTA: Las propiedades también se pueden declarar dentro de las interfaces.
EcoStruxure Machine Expert facilita la programación orientada a objetos utilizando la herencia dentro de los bloques de funciones. Al ejecutar Agregar objeto sobre un bloque de funciones que hereda de otro, los elementos Acción, Método, Propiedad y Transición utilizados en el bloque de funciones base se enumeran para seleccionarlos.
oLos elementos Acción, Método, Propiedad y Transición con Modificador de acceso = PUBLIC, PROTECTED e INTERNAL definidos en el bloque de funciones base están disponibles para seleccionarlos. Puede adaptar la definición para el objeto heredado. En el objeto heredado, se asigna el mismo Modificador de acceso que a los elementos origen.
oLos elementos Acción, Método, Propiedad y Transición con Modificador de acceso = PRIVATE no se pueden seleccionar porque el acceso está restringido al bloque de funciones base.
Descriptores de acceso Get y Set de una propiedad
Se insertan automáticamente 2 métodos especiales, denominados descriptores de acceso, en el árbol Aplicaciones, debajo del objeto de propiedad. Puede eliminar uno de ellos si la propiedad sólo se debe utilizar para la escritura o sólo para la lectura. Un descriptor de acceso, al igual que una propiedad (véase el apartado anterior), puede tener asignado un modificador de acceso en la parte de declaración, o bien a través del cuadro de diálogo Agregar objeto, cuando se añade explícitamente el descriptor de acceso.
oEl descriptor de acceso Set se llama cuando se escribe la propiedad.
oEl descriptor de acceso Get se llama cuando se lee la propiedad.
Ejemplo:
El bloque de funciones FB1 contiene una propiedad seconds que utiliza una variable local milli. Esta variable está determinada por las propiedades Get y Set:
Ejemplo de implementación de Get
seconds := milli / 1000;
Ejemplo de implementación de Set
milli := seconds * 1000;
Puede escribir la propiedad del bloque de funciones (método Set); por ejemplo, con fbinst.seconds := 22;
(fbinst es la instancia de FB1).
Puede leer la propiedad del bloque de funciones (método Get); por ejemplo, con testvar := fbinst.seconds;.
En el siguiente ejemplo, la propiedad seconds se asigna al bloque de funciones FB1:
Una propiedad puede tener variables locales adicionales pero ninguna entrada adicional y, a diferencia de una función o un método, ninguna salida adicional.
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.
Una propiedad se puede supervisar en la modalidad online con ayuda de la supervisión en línea o de una lista de supervisión. La condición previa para la supervisión de una propiedad es la adición del pragma {attribute 'monitoring' := 'variable'} (consulte el capítulo Supervisión de atributos) a su definición.