Uso de recetas para establecer valores
Use recetas para cambiar o leer valores de recetas para un conjunto específico de variables (definición de recetas) en el controlador al mismo tiempo.
Los ajustes básicos para recetas, como la ubicación y el formato, se definen en el Administrador de recetas objeto. Inserta cualquier número de definiciones de recetas debajo de este objeto.
Puede guardar una receta en un archivo o escribir directamente desde archivos al PLC.
Las recetas se pueden llamar a través del CODESYS interfaz de desarrollo, el elemento de visualización o el programa de aplicación.
Uso de recetas en dispositivos remotos
Si hay variables de fuentes de datos involucradas y se configura un intercambio de fuentes de datos, los valores de las variables de las recetas se transfieren automáticamente a/desde otro controlador. La lectura y la escritura ocurren sincrónicamente. Esto significa que todas las variables configuradas en una definición de receta se actualizan al mismo tiempo.
Después de leer o escribir, puede usar la llamada g_RecipeManager.LastError
para verificar si la transferencia fue exitosa o no (g_RecipeManager.LastError = 0
).
Llamar a los comandos de receta en el CODESYS interfaz de usuario
La interfaz de desarrollo de CODESYS proporciona comandos para generar recetas, así como lectura/escritura en modo en línea.
Llamar a los comandos de receta mediante programación o en una visualización
En tiempo de ejecución, la definición de recetas y los comandos de recetas se pueden llamar en el programa de aplicación. Para hacer esto, implemente el proceso para escribir, leer o monitorear definiciones de recetas en su código usando los métodos del RecipeManCommands
bloque de funciones de la RecipeManagement
biblioteca.
Para más información, ver: ComandosRecetaMan (FB)
En la visualización, la llamada de los comandos de receta se implementa utilizando el configuración de entrada (ejecutar comando) para un elemento de visualización. Al hacer esto, un usuario de visualización puede controlar la ejecución de los comandos de receta.
Sugerencia
Durante el proceso de inicialización, la gestión de recetas lee los valores de las variables que están definidas en la definición de recetas. Esta operación tiene lugar al final de la fase de inicialización de la aplicación. En este punto, se establecen todos los valores iniciales de las variables de la aplicación. Esto se realiza para inicializar correctamente los valores faltantes de los archivos de recetas.
Funcionalidad especial para números de punto flotante
Para variables de tipo REAL
o LREAL
, se distingue si el valor es exactamente convertible o no.
Si es posible convertir el valor exactamente, solo se guarda el valor numérico en el archivo de recetas.
Si no es posible realizar una conversión exacta, se escribe una cadena codificada en hexadecimal en el archivo de receta junto al valor numérico. Esto debería tener el efecto de que también un número de punto flotante no convertible devuelve el mismo valor.
Esta función se puede desactivar con el RECIPE_GENERATE_SIMPLE_STRINGREAL
definición del compilador.
Sugerencia
En las propiedades del objeto de la aplicación principal en Construir, puedes ingresar esto RECIPE_GENERATE_SIMPLE_STRINGREAL
el compilador define en el El compilador define opción. Como resultado, no se almacena ninguna cadena codificada en hexadecimal.
Para más información, ver: Diálogo: Propiedades: Construir
Creando una receta
En el árbol de dispositivos, seleccione el Solicitud objeto.
Hacer clic Proyecto → Agregar objeto → Administrador de recetas.
El Administrador de recetas se agrega al árbol de dispositivos.
En el árbol de dispositivos, haga clic en el Administrador de recetas objeto.
Hacer clic Proyecto → Agregar objeto → Definición de receta.
El definición de receta se agrega debajo del Administrador de recetas.
Abra el editor de la definición de receta haciendo doble clic en el objeto.
Haga doble clic en el campo en blanco a continuación Variable. Especifique el nombre de una variable para definir una receta. Puede utilizar el Asistente de entrada (
botón) para esto.
Hacer clic
y especifique un nombre para la nueva receta.Aparece una columna con el nombre de la nueva receta en el editor.
Ingrese el valor de la variable para esta receta en este campo.
Inserte campos adicionales según sea necesario.
Seleccione un valor variable para la receta y haga clic en
. Seleccione una ubicación y un nombre de archivo.La receta se guarda en el formato definido en el Administrador de recetas.
Cargar una receta desde un archivo
Requisito: Un administrador de recetas está disponible en la aplicación. En una definición de receta, hay un miRec receta con valores variables. A myRec.txt
El archivo de receta se encuentra en el sistema de archivos y contiene las entradas para esta receta.
Ejemplo del archivo de receta:
PLC_PRG.bVar:=0 PLC_PRG.iVar:=2 PLC_PRG.dwVar:=35232 PLC_PRG.stVar:='first' PLC_PRG.wstVar:='123443245'
Haga doble clic en el Definición de receta objeto en el árbol de dispositivos para abrir el editor tabular para la definición de las recetas individuales.
ves el
myRec
columna con los valores actuales para esta receta.Editar el
myRec.txt
archivo en un editor de texto externo y reemplace los valores de las variables con otros valores que desee cargar en la definición de receta en CODESYS. Guarda el archivo.En la definición de la receta, haga clic en el miRec columna y en el menú contextual, haga clic en Cargar Receta.
Un mensaje de diálogo le notifica sobre la posible necesidad de realizar un cambio en línea cuando vuelva a iniciar sesión. Es necesario un cambio en línea cuando cambia los valores actuales de las variables de receta al cargar la receta.
Hacer clic sí para cerrar el cuadro de diálogo y continuar. Selecciona el
myRec.txt
archivo desde el explorador de archivos para cargar.Los valores de receta en la definición de receta se actualizan de acuerdo con los valores leídos en el archivo.
Sugerencia
Si desea sobrescribir solo las variables de recetas individuales con nuevos valores, elimine los valores de las otras variables antes de cargarlas en el archivo de recetas. Las entradas sin definiciones de valor no se leen y, por lo tanto, la actualización deja estas variables sin cambios en el controlador y en el proyecto.
Para valores del tipo de dato REAL
/LREAL
, el valor hexadecimal también se escribe en el archivo de recetas en algunos casos. Esto es necesario para que se restablezca el valor exactamente idéntico al volver a convertir. En este caso, cambia el valor decimal y elimina el valor hexadecimal.
Gestión de recetas en el controlador; uso de memoria
Cuando borras el Gestión de recetas en el PLC opción, el administrador de recetas y las definiciones de recetas no usarán ninguna memoria en el PLC.
Si selecciona esta opción, se genera código para el Administrador de recetas y todas las definiciones de recetas, y este código se almacena en el PLC. El tamaño de la memoria utilizada depende principalmente del número de recetas y sus variables, así como del tipo de datos de las variables. El hecho de que los campos de la definición de receta estén o no llenos también tiene un efecto. No se puede calcular el uso de memoria de las recetas. Tiene que ser determinado por experimentación en el momento en que se necesita. La siguiente tabla simplemente proporciona algunos principios rectores.
Tamaño del código (bytes) | Tamaño de datos (bytes) | Total (bytes) | |
---|---|---|---|
Definición de receta con 100 variables INT | 194406 | 79400 | 267352 |
Definición de receta con 200 variables INT | 238318 | 121284 | 459344 |
Definición de receta con 300 variables INT | 282230 | 163084 | 543856 |
Definición de recetas con 100 variables BOOL | 192742 | 69884 | 343168 |
Definición de receta con 200 variables BOOL | 235446 | 101568 | 436872 |
Definición de receta con 300 variables BOOL | 278146 | 133284 | 510072 |
Definición de receta con 100 variables de cadena | 203278 | 870084 | 1154000 |
Definición de receta con 200 variables de cadena | 255570 | 1709784 | 2973296 |
Definición de receta con 300 variables de cadena | 307886 | 2549484 | 2964112 |
Carga de valores de recetas desde el controlador
Puede aplicar valores de recetas en el controlador a definiciones de recetas en el proyecto, incluso si estas definiciones se han modificado en el proyecto.
Requisito: El Gestión de recetas en el PLC Esta opción se selecciona en el Administrador de recetas.
Crear una definición de receta
RecDef1
en el proyecto, que contiene las variablesPLC_PRG.ivar
yPLC_PRG.bvar
. Insertar una receta R1: valor porPLC_PRG.ivar
:33
; valor porPLC_PRG.bvar
:TRUE
.Inicie sesión en el controlador y descargue la aplicación.
El archivo de recetas
R1.RecDef1.txtrecipe
se guarda en el directorio predeterminado del controlador ($PlcLogic$).Cerrar sesión y agregar otra variable
PLC_PRG.dwvar
a la definición de receta en el proyecto.Edite el archivo de definición de receta
R1.RecDef1.txtrecipe
en el dispositivo cambiando el valor dePLC_PRG.ivar
desde33
a34
.Además, añade otra receta. R2 en el dispositivo. Para ello, copie el
R1.RecDef1.txtrecipe
y cambiarle el nombre aR2.RecDef1.txtrecipe
. Luego edite este archivo y cambie los valores de la receta:PLC_PRG.ivar
:1
,PLC_PRG.bvar
:FALSE
.ahora dos recetas R1 y R2 están disponibles en el dispositivo. En el proyecto solo hay R1, y también contiene otros valores además de R1 en el dispositivo.
Inicie sesión en el controlador mediante un cambio en línea.
Hacer clic Cargar recetas desde el dispositivo del menú contextual.
Un mensaje de diálogo le notifica que ejecutar el comando en el próximo inicio de sesión puede desencadenar un cambio en línea y que las recetas en el sistema de tiempo de ejecución sobrescribirán las recetas de la definición de receta actual.
Confirme que desea continuar.
Un mensaje de diálogo le notifica que la receta para
PLC_PRG.dwvar
cargado en el dispositivo no puede generar un valor del controlador.Confirme que desea continuar.
El valor de
PLC_PRG.ivar
en receta R1 de la definición de receta en el proyecto cambia a34
. La receta R2 con los valores1
yFALSE
también aparece en la definición de la receta ahora.PLC_PRG.dwvar
permanece en la definición de receta.