Ejemplo: Uso de la biblioteca VisuTrendStorageAccess
Producto: CODESYS Visualization
El TrendStorage API Example.project
proyecto de muestra utiliza una visualización para mostrar cómo utilizar el VisuTrendStorageAccess biblioteca para leer trabajos de datos de tendencias.
Para obtener más información sobre el elemento de tendencia, consulte: Elemento de visualización: Tendencia
Descripción
En este ejemplo, el administrador de registro de tendencias guarda los datos de tendencia y luego los lee el VisuTrendStorageAccess
API usando código ST. Esto permite la recuperación de datos históricos. Además, los datos de tendencia se pueden exportar.
Cuatro tareas se definen en el TrendStorage API Example.project
proyecto de muestra.
La tarea estándar llama al
PLC_PRG
programa para simular datos.Los datos simulados son guardados en una base de datos por el
TrendRecordingTask
tarea y el componente "Trend Recording Manager".El
VISU_TASK
task es responsable de actualizar la visualización.La lectura real de los datos de tendencia se realiza en el
Task200ms
tarea, laTrendStorageAPI_TestProg
programa, y elTrendStorageReader
bloque de funciones
El ITrendStorageWriterListener
La interfaz se utiliza para la notificación activa de nuevos datos.
Para este propósito, el TrendStorageWriterListener
bloque de funciones implementa el ITrendStorageWriterListener
interfaz y está registrado para el TrendStorageReader
bloque de funciones Cuando se guardan nuevos datos, el DataWritten
se llama al método con las marcas de tiempo de inicio y finalización y el número de registros guardados.
El TrendStorageReader
bloque de funciones y el Read
se utilizan para leer registros.
eError2 := instTrendStorageReader.Read(liTimstampFrom := liTimstampFrom2, liTimstampTo := liTimstampTo2,itfTrendStorageReaderConsumer := instTrendStorageReaderConsumer);
El TimeStampRead
y ValueRead
métodos de instTrendStorageReaderConsumer
luego se llaman automáticamente para cada valor.
En el ejemplo, el TrendStorageReaderConsumer
bloque de funciones implementa el ITrendStorageReaderConsumer
y escribe los valores en la consola del controlador en formato CSV. Si el tamaño de los datos devueltos bloquearía la base de datos durante demasiado tiempo, entonces ETrendStorageReaderErrors.AdditionalReadCallRequired
se devuelve como un código de error. La operación de lectura debe continuarse más tarde llamando al ContinueReading
método con los mismos parámetros.
Información adicional
Descripción de la visualización
Las señales simuladas se muestran en un elemento de tendencia en la parte superior de la visualización.
Las marcas de tiempo mínimas y máximas de los datos de tendencia se muestran en la "Tiempos mínimos/máximos" pestaña.
Los valores actuales de la
DataWritten
método se muestran en "Nuevos datos".
Los valores se leen en el "Leer valores" pestaña.
La marca de tiempo de inicio se muestra en el campo superior y la marca de tiempo de finalización en el campo inferior.
El "Calcular marcas de tiempo" El botón convierte los datos especificados en la marca de tiempo correspondiente (función inversa: "Calcular fecha/hora"). A continuación, la operación de lectura se puede iniciar haciendo clic en el "Leer almacenamiento de tendencias" botón. haciendo clic "Para de leer" cancelará la operación de lectura. Cuando el "Salida detallada" está activo, los datos se pueden ver en la página de registro del dispositivo. (Hacer no comenzar CODESYS Control Win a través de SysTray). De lo contrario, el número de registros se muestra en la "contar filas" campo.
Requisitos y restricciones del sistema
Sistema de programación | CODESYS Development System (versión 3.5.14.0 o superior) |
Sistema de tiempo de ejecución | CODESYS Control Win (versión 3.5.14.0) |
Componentes adicionales | - |
Aviso
DESCARGAR Proyecto