Data Logger
Overview
The Data Logger module manages logger definitions that periodically read configured data paths and store the values in a trend database. Use it to create a logger, define the values to record, control whether the logger is enabled, start or stop the runtime process, and inspect the stored data and logs.
Each logger contains a general configuration, one or more datasets, optional trending conditions, and runtime actions for starting, stopping, restarting, previewing data, and reading logs.
Logger List
The main Data Logger screen shows all configured loggers in a table.
| Column or control | Description |
|---|---|
| Filter | Filters the list by id, name, enabled state, dataset names, file size, or status. |
| ID | Internal logger id. |
| Name | Logger name. The eye icon opens the Data Preview dialog for that logger. |
| Datasets | Comma-separated list of dataset names recorded by the logger. |
| Filesize | Current database size. Click the value to download that logger database. |
| Status | Current runtime state with a colored dot, for example Running, Stopped, Starting, Stopping, Restarting, Crashed, Keeper crashed, Service crashed, Unmanaged, Idle, or Unknown. |
| Enabled switch | Enables or disables the logger configuration. This is persisted as configuration and is separate from the current runtime start/stop state. |
| Start | Starts the logger runtime. It is disabled while the logger is already running. |
| Stop | Stops the logger runtime. It is disabled unless the logger is running. |
| Restart | Requests a runtime restart for the logger. |
| Edit | Opens the logger detail screen. Double-clicking a row also opens the detail screen. |
| Delete | Deletes the selected logger after confirmation. |
The toolbar contains Export, Import, and New.
- Export downloads the logger configuration archive, typically
trends.tar.gz. - Import accepts only
.tar.gzfiles and refreshes the list after a successful import. - New creates a new logger definition.
Logger Detail
The detail screen is used to create or edit one logger. Runtime actions are available only for an existing saved logger. If the form has unsaved changes, runtime actions are disabled until the changes are saved or cancelled.
General Settings
| Field | Description |
|---|---|
| Name | Required logger name. The name must be unique. |
| Interval in milliseconds (ms) | Polling interval used by the logger and by the data preview refresh. The minimum accepted value is 1000 ms. |
| Max Points | Maximum number of records retained by the logger. The value must be at least 1. |
| Custom database file | When disabled, the logger uses the default customer database path, for example.../db/trends/{id}.db. When enabled, the path must start with /media/sd/, must use valid Linux path segments, must end with.db, and must not already be used by another logger. |
| Enabled | Controls whether the logger is enabled in configuration. It does not replace the Start and Stop runtime actions. |
Save is available only when the form is valid and contains unsaved changes. Cancel returns to the list without saving.
Runtime Actions
The detail screen and list both provide runtime controls:
- Start starts an existing logger and is disabled when the logger is already running.
- Stop stops an existing logger and is disabled when the logger is not running.
- Restart restarts an existing logger.
- Data Preview opens the stored data table for the logger.
- Logs opens the runtime log dialog.
Runtime actions are disabled on a new unsaved logger and when the edit form has unsaved changes, because the runtime must operate on the saved configuration.
Datasets
A dataset defines one value that the logger records. Every logger must contain at least one valid dataset.
| Field | Description |
|---|---|
| Name | Required database column name for the recorded value. It must be a valid SQLite column name. |
| Data Path | Required value source. Use the connection picker to select a PLCVisu data path. The saved path includes the connection id and path, such as 1::Application.PLC.value. |
| Format | Optional numeric display/storage format using only 0placeholders. Valid examples are 000, 000.00, or 0.000000. Other characters are rejected. |
Use Add to create another dataset. Use the edit icon to change a dataset. A dataset can be deleted when more than one dataset exists.
Trending Conditions
Trending conditions define when new data should be trended. If no condition is configured, the logger records according to the logger runtime and interval. If conditions are configured, the conditions must resolve to true for new values to be trended.
The button shows a small colored resolution dot when a condition exists:
- Green means the current global resolution is true.
- Red means the current global resolution is false.
- Gray means the current global resolution is unknown or waiting for values.
Condition Editor
The condition dialog builds a condition tree. A tree can contain groups and conditions.
- Groups combine child rules with AND, OR, or XOR.
- Conditions compare one selected data path against an operator and, when required, a value.
- Add Condition adds another rule to the current group.
- Add Group creates a nested group.
- Clear removes all configured conditions.
- Apply saves the condition tree to the logger form. It is disabled when the tree is incomplete or logically impossible.
Supported condition operators are Equal, Not equal, Greater than, Greater than or equal, Less than, Less than or equal, Empty, Not empty, Is true, and Is false. The Empty, Not empty, Is true, and Is false operators do not require a value.
The editor validates impossible combinations, for example rules that require the same path to be both empty and not empty, numeric ranges that cannot overlap, or XOR alternatives that contradict each other.
Live Condition Resolution
While the condition dialog is open, each condition subscribes to the selected data path through the configured connection and displays a live state:
- True or False shows the current result of the rule.
- Unknown means the value is not available or cannot be evaluated yet.
- Offline means the selected connection is offline.
- Waiting means the editor is waiting for a value or subscription.
- Error means the subscription or read failed.
The dialog also shows the Global resolution, which is the result of the whole condition tree.
Data Preview
Data Preview opens a read-only table of stored logger data. It shows the timestamp column and one column for each dataset.
- The preview loads the saved logger and datasets before opening when launched from the list.
- The table supports sorting by timestamp or dataset columns.
- The table supports paging with 10, 20, 50, or 100 rows per page.
- Columns can be resized by dragging the separator or by focusing the separator and using the left/right arrow keys.
- The timestamp is displayed as a human-readable value when possible.
- While the dialog is open, data refreshes using the logger interval only when the logger is running and conditions allow new data to be trended.
- Polling stops when the dialog is closed.
The preview also explains whether new data is currently expected to be trended:
- If the logger is not running, it shows that new data is not being trended and includes the current status when available.
- If conditions are invalid, it warns that conditions cannot be resolved.
- If conditions are true, it shows that new data can be trended while the logger is running.
- If conditions are false, it shows that new data is not being trended.
- If conditions are unknown, it shows that the preview is waiting for condition values.
When the logger is stopped, conditions are invalid, or the current condition resolution is false or unknown, the preview can still show the already stored rows, but it does not keep polling for new rows.
Logs
The Logs dialog shows runtime log entries for one logger.
- Logs are displayed in Time and Log columns.
- The dialog opens on the last page so the newest entries are visible first.
- The dialog refreshes every two seconds while it is open.
- The refresh timer stops when the dialog is closed.
- Use the paginator to change page size or move through older entries.
Database Files
- The list Filesize value downloads the database file for one logger.
- The global download endpoint can also return all trend databases as an archive.
- If a custom database file is configured, make sure the storage device is available and writable at runtime.
- Changing the database path changes where the logger writes new data. Existing data movement is not handled by the current UI workflow.
Recommended Workflow
- Create a new Data Logger entry.
- Enter a name, interval, max points, enabled state, and database path if needed.
- Add datasets and select their data paths with the connection picker.
- Add trending conditions if recording should depend on live values.
- Save the logger.
- Start the logger and confirm that the status becomes Running.
- Open Data Preview to verify that values are being stored.
- Open Logs when runtime behavior needs to be checked.
Troubleshooting
- Start is disabled: the logger is already running, the logger is not saved yet, a runtime action is in progress, or the form has unsaved changes.
- Stop is disabled: the logger is not currently running.
- Save is disabled: the form is invalid or nothing has changed.
- No preview rows are shown: no data has been recorded yet, conditions are not met, the logger is stopped, or the selected time/order/page has no rows.
- Condition stays Unknown: the selected connection may be offline, the data path may not emit a value yet, or the current value cannot be evaluated by the selected operator.
- Import fails: verify that the selected file is a
.tar.gzarchive. - Database download is unavailable: check the logger status and whether the database file exists and is accessible.