Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
2
Acercamiento a PackML
3
Adicionalmente, el estándar PackML provee además de estados, modos de
funcionamiento, donde el programador puede escoger qué estados utilizar y cuáles no; lo
cual se explicará con más profundidad líneas abajo.
Según la Norma ISA 88, hay que entender la máquina de acuerdo a los siguientes
3 niveles, lo que permite aplicar la máquina de estados de OMAC donde realmente
debe ir.
Implementación en Codesys
Una vez descargada e instalada, se procede a abrir el ejemplo que trae la librería,
tal como se ve en la figura 3
5
Fig. 3. Programa Ejemplo de PackML
6
En la parte de inserción de código de programación se tiene una estructura ejemplo, en la
figura 5 se puede ver cómo se realiza el registro de los modos de trabajo.
En la figura 6 se puede ver cómo se hace la asignación de variables que llevarán a cabo el
cambio de estado.
7
Note que en la parte de cambios de estado después de la imagen anterior, aparece el
comando “SimulateActingStateComplete();”, el cual llama al método que se aprecia
como subcategoría de PLC_PRG, lo que se explicará más adelante.
En la última parte esta sección, se aprecia cómo se cambia el modo de funcionamiento,
como se aprecia en la figura 7
SimulateActingStateComplete()
Es aquí donde el programador puede colocar su código para cada estado, en este código
ejemplo utilizan la variable “nextSupportedState” para almacenar el estado siguiente al
actual del programa, para que con la sentencia if, después de un retardo de dos segundos,
se cambie el estado actual con la sentencia
“unitModeManager.ActiveUnitMode.ActingStateCompleted();”, teniendo en cuenta que
según la imagen de la máquina de estados, figura 1, los estados Execute, Completing, etc,
se dan finalizados con el comando complete.
8
Aplicación de comando
Si se quiere, por ejemplo, prender un led, es decir una variable booleana en el estado
Stopped, y luego pasar a “Reseting” se puede modificar el código de
“SimulateActingStateComplete()”, agregando las siguientes líneas, también expuesto en
la figura 9:
IF (unitModeManager.ActiveUnitMode.CurrentState=PACK_ML.State.Stopped) THEN
led:=1;
xReset:=1;
END_IF
9
Implementación en Rockwell
Se crea un proyecto normal en Studio 5000, una vez creado el proyecto, en el árbol de
trabajo, en Add On Instruction, se hace click derecho y se le da importar, allí buscamos y
adjuntamos el archivo que acompaña este documento, figura 10.[3]
10
Una vez se hace click en el botón “Import”, aparece una ventana emergente como la que
se ve en la figura 12, donde sólo se procede a dar “OK”.
11
Fig. 14. Cómo agregar el módulo de PackML a una rutina Lader
Definimos las Variables para quitar los errores del Rung, para que quede como en la
figura 16
12
Podemos descargar al plc y verificar que comienza en estado “Stopped”, con un contacto
pasaremos al estado “Resetting” y prenderemos un led cuando el estado sea “Resetting”,
como se aprecia en la figura 17.
En la figura 18 se puede ver cómo inicia la máquina de estados recién se descarga el programa
al PLC
Una vez se cambia el estado a la variable “cambiar”, se ejecuta el comando “Reset”, lo que
provoca que la máquina de estados cambie su estado actual a “Resetting”, donde se energiza
una bobina llamada “Led”, esto se evidencia en las figuras 19 y 20.
13
Fig. 19. Máquina de estados en estado Resetting
Bibliografía
[1] OMAC, “PackML Unit/Machine Implementation GUIDE.”
[2] “CODESYS - CODESYS.” [Online]. Available: https://www.codesys.com/. [Accessed: 25-
Jul-2019].
[3] “Automatización industrial | Seguridad industrial | Rockwell Automation España.”
[Online]. Available: https://www.rockwellautomation.com/es_ES/overview.page.
[Accessed: 25-Jul-2019].
14