Diseño y Desarrollo
Cuando programa gráficamente en el diagrama de clases, sus cambios provocan automáticamente adaptaciones para los objetos en el POU ver y Dispositivos vista. Los nuevos objetos se insertan en su estructura básica y los objetos existentes se adaptan. Por ejemplo, puede insertar declaraciones en las POU a través del diagrama de clases.
Esto le permite diseñar la arquitectura de su aplicación en un diagrama de clases y obtener las POU adecuadas de forma sincrónica. Luego, complementa las implementaciones en las POU.
Los siguientes pasos crean un diagrama de clases para una aplicación.
1. Crear un proyecto
Abierto CODESYS.
Hacer clic
.Especifique el nombre y la ubicación, y seleccione el Proyecto estándar plantilla.
los Proyecto estándar se abre el cuadro de diálogo.
Para PLC_PRG en, Selecciona el Texto estructurado (ST) lenguaje de implementación.
Se crea el proyecto.
Selecciona el Solicitud código y haga clic .
los Agregar diagrama de clase UML se abre el cuadro de diálogo.
Especifique el nombre del objeto
CD_Simple
.Selecciona el Importar la estructura del proyecto al diagrama de clase activo opción.
Hacer clic Agregar.
Guardar el proyecto como
SimpleMachine.project
.
2. Identificación de interfaces
Las interfaces determinan métodos y propiedades públicamente visibles para implementar clases.
Abre el editor del diagrama de clases.
CD_Simple
.En el Caja de herramientas ver, seleccione una interfaz.
Arrastre la interfaz al editor.
los Añadir interfaz se abre el cuadro de diálogo.
Especificar el nombre
IBaseMachine
. Hacer clic Agregar para salir del diálogo.En el Caja de herramientas ver, seleccione un método.
Arrastre el método a la interfaz.
los Agregar método de interfaz se abre el cuadro de diálogo.
Especificar el nombre
DoIt
.Especifique el tipo de devolución
BOOL
. Hacer clic Agregar para salir del diálogo.En el Caja de herramientas ver, seleccione una propiedad.
Arrastre la propiedad a la interfaz.
los Agregar propiedad de interfaz se abre el cuadro de diálogo.
Especificar el nombre
StateNumber
.Especifique el tipo de devolución
INT
. Hacer clic Agregar para salir del diálogo.
Sugerencia
Para obtener más información acerca de las interfaces, consulte: Objeto: Interfaz y Objeto: Propiedad de interfaz
3. Identificar clases e implementar una interfaz
Diferentes clases que implementan la misma interfaz contienen los mismos métodos y propiedades. Si la interfaz se cambia o amplía más tarde, esto afectará a todas las clases de implementación.
Abre el editor del diagrama de clases.
CD_Simple
.En el Caja de herramientas ver, seleccione una clase.
Arrastra la clase al editor.
los Añadir POU se abre el cuadro de diálogo.
Especificar el nombre
FB_Machine
.Selecciona el bloque de funciones opción.
Para el idioma de implementación, seleccione Diagrama de estado UML (SC). Hacer clic Agregar para salir del diálogo.
La clase
FB_Machine
se añade al diagrama de clases.Seleccione la clase.
Los iconos de comando se muestran encima de la clase.
Haga clic en el
Realización (
IMPLEMENTS
) icono de comando y haga clic en elIMachine
interfaz.los Seleccione el idioma de implementación se abre el cuadro de diálogo.
Seleccione Texto estructurado (ST).
La clase
FB_Machine
hereda las propiedades y métodos de la interfaz y por lo tanto implementa la interfazIMachine
.
4. Generalizar
En general, una clase hereda las propiedades y métodos de otra clase.
Abre el editor del diagrama de clases.
CD_Simple
.En el Caja de herramientas ver, seleccione una clase.
Arrastra una clase al editor.
los Añadir POU se abre el cuadro de diálogo.
Especificar el nombre
FB_Machine_A
.Selecciona el se extiende opción y especificar la clase
FB_Machine
en el campo de entrada.El bloque de funciones
FB_Machine
se extiende y por lo tanto es una generalización deFB_Machine_A
.Para el idioma de implementación, seleccione Diagrama de estado UML (SC). Hacer clic Agregar para salir del diálogo.
La clase
FB_Machine_A
se crea en el diagrama de clases. Existe una generalización entre las clases.FB_Machine
yFB_Machine_A
.FB_Machine_A
hereda sus propiedades y métodos deFB_Machine
.En el Caja de herramientas ver, seleccione el Declaración de variables elemento y arrástrelo a la clase
FB_Machine_A
.los Declarar variable se abre el cuadro de diálogo.
Especificar el nombre
iCounter
y el tipo de datosINT
. Hacer clic OK para salir del diálogo.Ahora la clase
FB_Machine_A
tiene sus propias variables además de las propiedades y métodos heredados.En la clase
FBMachine_A
, seleccione el métodoDoIt()
y presione el botón Supr llave.El método se elimina del diagrama, así como el objeto en el Dispositivos vista. El bloque de función hereditario
FBMachine_A
no necesita su propia implementación especial para el método. En su lugar, llama al métodoDoIt
del bloque de función baseFBMachine
cuando sea necesario.Nota
Cuando llame a métodos, que se asignan a un bloque de función base y se heredan, use el puntero
SUPER
.
Sugerencia
Para más información, ver Ampliación de un bloque de funciones y Puntero: SÚPER.
5. Instanciar
Abre el editor del diagrama de clases.
CD_Simple
.Seleccione el programa
PLC_PRG
.Los iconos de comando se muestran encima del programa.
Haga clic en el
Composición (
VAR
) icono de comando y haga clic en elFB_Machine_A
clase.los Declaración de variables se abre el cuadro de diálogo.
Especificar el nombre
fb_A
.El objeto
fb_A
de la claseFBMachine_A
se instancia. Ahora, la instancia de la clase en su forma concreta se genera en tiempo de ejecución.
El diagrama de clases muestra todos los objetos que son relevantes para generar el código de la aplicación. Sin embargo, sobre todo, el diagrama de clases visualiza las relaciones entre los objetos: ¿Quién implementa a quién? ¿Quién hereda de quién? ¿Quién instancia qué? De lo contrario, esta información se oculta en la declaración y, por ejemplo, no se puede ver en el Dispositivos vista.
6. Implementando
Abra el bloque de funciones
FBMachine
.Declare las variables del bloque de funciones.
FUNCTION_BLOCK FBMachine IMPLEMENTS IBaseMachine VAR iState: INT; iMachine : INT; END_VAR
Implementar el bloque de funciones.
iState := iState + 1; // Dummy for control ID
Implementar su método
DoIt
.METHOD PUBLIC DoIt : BOOL iMachine := iMachine + 1; // Dummy
Implementar el método Get de la propiedad
StateNumber
deFBMachine
.StateNumber := iState;
Implementar el método Set de la propiedad
StateNumber
deFBMachine
.iState := StateNumber;
Abra el bloque de funciones
FBMachine_A
.Declare las variables del bloque de funciones.
FUNCTION_BLOCK FBMachine IMPLEMENTS IBaseMachine VAR iCounter: INT; END_VAR
Implementar el bloque de funciones.
iCounter := iCounter + 1;
Implementar el método Get de la propiedad
StateNumber
deFBMachine_A
.StateNumber := iCounter;
Implementar el método Set de la propiedad
StateNumber
deFBMachine_A
.iCounter := StateNumber;
Hacer clic
.La aplicación se compila sin errores.
Descarga e inicia la aplicación.
Puede monitorear la instancia del bloque de funciones
fb_A
.