Skip to main content

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

  1. Abierto CODESYS.

  2. Hacer clic Archivo → Nuevo proyecto.

  3. 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.

  4. Para PLC_PRG en, Selecciona el Texto estructurado (ST) lenguaje de implementación.

    Se crea el proyecto.

  5. Selecciona el Solicitud código y haga clic Agregar objeto → Diagrama de clase UML.

    los Agregar diagrama de clase UML se abre el cuadro de diálogo.

  6. Especifique el nombre del objeto CD_Simple.

  7. Selecciona el Importar la estructura del proyecto al diagrama de clase activo opción.

  8. Hacer clic Agregar.

    _uml_img_cd_simple.png
  9. Guardar el proyecto como SimpleMachine.project.

2. Identificación de interfaces

Las interfaces determinan métodos y propiedades públicamente visibles para implementar clases.

  1. Abre el editor del diagrama de clases. CD_Simple.

  2. En el Caja de herramientas ver, seleccione una interfaz.

  3. Arrastre la interfaz al editor.

    los Añadir interfaz se abre el cuadro de diálogo.

  4. Especificar el nombre IBaseMachine. Hacer clic Agregar para salir del diálogo.

  5. En el Caja de herramientas ver, seleccione un método.

  6. Arrastre el método a la interfaz.

    los Agregar método de interfaz se abre el cuadro de diálogo.

  7. Especificar el nombre DoIt.

  8. Especifique el tipo de devolución BOOL. Hacer clic Agregar para salir del diálogo.

  9. En el Caja de herramientas ver, seleccione una propiedad.

  10. Arrastre la propiedad a la interfaz.

    los Agregar propiedad de interfaz se abre el cuadro de diálogo.

  11. Especificar el nombre StateNumber.

  12. Especifique el tipo de devolución INT. Hacer clic Agregar para salir del diálogo.

    _uml_img_cd_simple_imachine.png

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.

  1. Abre el editor del diagrama de clases. CD_Simple.

  2. En el Caja de herramientas ver, seleccione una clase.

  3. Arrastra la clase al editor.

    los Añadir POU se abre el cuadro de diálogo.

  4. Especificar el nombre FB_Machine.

  5. Selecciona el bloque de funciones opción.

  6. 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.

  7. Seleccione la clase.

    Los iconos de comando se muestran encima de la clase.

  8. Haga clic en el _uml_icon_realization.png Realización (IMPLEMENTS) icono de comando y haga clic en el IMachine interfaz.

    los Seleccione el idioma de implementación se abre el cuadro de diálogo.

  9. Seleccione Texto estructurado (ST).

    La clase FB_Machine hereda las propiedades y métodos de la interfaz y por lo tanto implementa la interfaz IMachine.

    _uml_img_cd_simple_fbmachine.png

4. Generalizar

En general, una clase hereda las propiedades y métodos de otra clase.

  1. Abre el editor del diagrama de clases. CD_Simple.

  2. En el Caja de herramientas ver, seleccione una clase.

  3. Arrastra una clase al editor.

    los Añadir POU se abre el cuadro de diálogo.

  4. Especificar el nombre FB_Machine_A.

  5. 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 de FB_Machine_A.

  6. 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 y FB_Machine_A. FB_Machine_A hereda sus propiedades y métodos de FB_Machine.

  7. 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.

  8. Especificar el nombre iCounter y el tipo de datos INT. 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.

  9. En la clase FBMachine_A, seleccione el método DoIt() 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étodo DoIt del bloque de función base FBMachine 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.

    _uml_img_cd_simple_fbmachine_a.png

Sugerencia

Para más información, ver Ampliación de un bloque de funciones y Puntero: SÚPER.

5. Instanciar

  1. Abre el editor del diagrama de clases. CD_Simple.

  2. Seleccione el programa PLC_PRG.

    Los iconos de comando se muestran encima del programa.

  3. Haga clic en el _uml_icon_composition.png Composición (VAR) icono de comando y haga clic en el FB_Machine_A clase.

    los Declaración de variables se abre el cuadro de diálogo.

  4. Especificar el nombre fb_A.

    El objeto fb_A de la clase FBMachine_A se instancia. Ahora, la instancia de la clase en su forma concreta se genera en tiempo de ejecución.

    _uml_img_cd_simple_plc_prg.png

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

  1. Abra el bloque de funciones FBMachine.

  2. Declare las variables del bloque de funciones.

    FUNCTION_BLOCK FBMachine IMPLEMENTS IBaseMachine
    VAR
        iState: INT;
        iMachine : INT;
    END_VAR
  3. Implementar el bloque de funciones.

    iState := iState + 1; // Dummy for control ID
  4. Implementar su método DoIt.

    METHOD PUBLIC DoIt : BOOL
    iMachine := iMachine + 1; // Dummy
  5. Implementar el método Get de la propiedad StateNumber de FBMachine.

    StateNumber := iState;
  6. Implementar el método Set de la propiedad StateNumber de FBMachine.

    iState := StateNumber;
  7. Abra el bloque de funciones FBMachine_A.

  8. Declare las variables del bloque de funciones.

    FUNCTION_BLOCK FBMachine IMPLEMENTS IBaseMachine
    VAR
     iCounter: INT;
    END_VAR
  9. Implementar el bloque de funciones.

    iCounter := iCounter + 1;
  10. Implementar el método Get de la propiedad StateNumber de FBMachine_A.

    StateNumber := iCounter;
  11. Implementar el método Set de la propiedad StateNumber de FBMachine_A.

    iCounter := StateNumber;
  12. Hacer clic Construir → Generar código.

    La aplicación se compila sin errores.

    _uml_img_cd_simple_objects.png
  13. Descarga e inicia la aplicación.

    Puede monitorear la instancia del bloque de funciones fb_A.

    _uml_img_cd_simple_monitoring.png