ACMSL

LdP Datalogger Viewer

User Manual

LdP_Datalogger_Viewer is a tool designed to visualize time series, especially those related to internal signals of systems. It is specialized in handling data in the format generated by ACMSL Simulators (LdP framework).

It also implements a procedure for grouping the presentation of signals using criteria that help to find the temporal relationships between them: state changes, delays, responses, correlations and cause -> effect sequences.

It also generates data formats compatible with other analysis tools for this data, such as CSV files (spreadsheets).

With this manual the technical user will become familiar with concepts of:

  • datalogger and signal recording,
  • time series,
  • different treatment of analog and digital signals,
  • specialized data files, such as SQLite databases and CSV files compatible with spreadsheets,
  • and graphical representation of data.

The goal is for the user to be able to:

  • track the temporal evolution of relevant variables,
  • compare signals in the same time window,
  • locate events and transitions,
  • better understand the overall behavior of the analyzed system.

1. Program Usage

To use this program, follow these steps:

  1. select a data file. There are three types:,
    1. SQLite files with LdP original structure, from simulation sessions
    2. files in unified format,
    3. files in CSV format
  2. select a group of signals contained in the chosen file, and a visualization structure,
  3. visualize it.

The following figure shows a typical example:

  1. Press Open.

  2. Choose the session file of a simulator. For example: C:\WFS_Datalog\Doubly Fed Induction Generator Wind Turbine\25-11-21-09-29-36.sqlite. (This file corresponds to the session carried out with the "Doubly Fed Induction Generator" Simulator, which started on 2025/11/21 09:29:36).

Initial screen

  1. Select, for example, the Visualization Profile Cutin + Cutout + Production. This Profile corresponds to the visualization of the Panel of the same name in the Wind Turbine Simulator Doubly Fed Induction Generator.

    NOTE: If the selector is not filled with the available Profiles, continue to the section Import .conf or Create a new profile.

  2. Press Visualize.

When a Profile is selected using the selector, it is necessary to press the Visualize button for it to appear in the central panel.

Initial screen

From that point on, you can choose an area of interest by performing a Zoom with the right mouse button: mark the start of the zoom with the right button, and drag the mouse with the right button held down until you reach the end of the desired area. See next image.

Zoom area definition

When you release the right button, the chosen area will appear filling the entire screen. See next image.

Zoomed area

2. Description of graphical interface elements

This application incorporates the concept of Visualization Profile as a mechanism for managing the way of selecting the signals to be visualized, as well as their visualization and visual grouping modes.

2.1 Visualization Profile

The user can decide which signals to visualize from those contained in the chosen data file, and how they are presented in the different recorders.

This means that the user can:

  • choose a reduced set of signals for a specific search,
  • group in the same recorder only the signals whose visual comparison is useful,
  • separate different functional blocks into different recorders,
  • build alternative profiles for the same file, according to the type of analysis to be performed.

By choosing a specific Profile, we choose two concepts:

  • The set of signals to visualize

  • The details of the representation of those signals

The Visualization Profiles section (in the left panel) presents the available functions for selecting, creating, editing and saving the files corresponding to the Profiles for a log file, or a set of them. In the section Visualization Profile you will find a detailed explanation of these functions.

Visualization Profile functions

2.1.1 Selecting a Visualization Profile

In first position we have a selector that allows us to choose among the available profiles. The definition of a Profile is saved in a JSON file, as shown in the Appendix.

2.2 Recorders

In this initial view, after "Open -> Select Visualization Profile -> Visualize" the most important graphical elements of the application can be distinguished.

Recorder and Panel

The central element is the Recorder, i.e., the canvas on which the temporal evolutions of the chosen signals are graphically represented. Each recorder occupies a horizontal strip in the visualization area and shares the same temporal reference (X axis) with the others.

2.3 Panels

Next to each recorder, on the right, a lateral information Panel appears where we find:

  1. the name of the recorder

  2. how analog signals are presented in this Recorder:

    • maintaining the value between one record and the next (Step)

    • joining two consecutive records.

  3. the way the Y axis scale is calculated: automatic, or not. In case of automatic calculation this affects:

    • the maximum and minimum values of the recorder
    • the number and value of the horizontal reference lines. These lines are calculated automatically, based on the maximum and minimum values of all signals in the recorder, to show the greatest resolution (Auto scale).
  4. details of the represented signals,

    • the color associated in the recorder
    • its short name
    • its value corresponding to the instant associated with the cursor.

2.4 Cursors and time interval measurement

In the upper left part, the data corresponding to the cursor instants are presented.

Cursors

  • "Cursor" : position of the (red vertical line), in day/month/year hour:minutes:seconds format (and milliseconds depending on the zoom level)

  • "Date LdP" : position of the red vertical line, in LdP format (field "Date" in the records)

  • "Ref": reference date (if it has been defined using Ctrl + left mouse button). (yellow line).

  • "Delta t": distance in seconds between the red vertical line and the yellow one (reference instant).

Sometimes it is useful to freeze the cursor to be able to use the mouse for other functions. We call this the Frozen cursor. It is indicated by the background of the "Cursor" text (see next figure) turning light blue.

Frozen cursor

To enter or exit this mode, press the f (or F) key. You must have previously pressed the right mouse button at least once.

2.5 Adaptive labelling of the time axis

It is done in the first recorder and automatically adjusts to the zoom level. Examples:

Time axis 1 minute

Time axis 2 seconds

2.6 Changing the visualization interval

The time interval being visualized can be controlled with:

  • the All button, which presents the full temporal expansion of the dataset; (above, between "Visualize" and the language selector).

  • the mouse; press the right button on the desired start instant, drag the mouse with the right button held down to the other instant, and release the right button;

  • using the < and > keys, while holding down the left mouse button, a shift to the left or right of the visualized time interval of 20% of the visualized interval is produced

  • using the PageUp or PageDown keys while holding down the Ctrl key, the zoom is multiplied or divided by two relative to the current one, centering the new area on the mouse position.


3. Visualization Profile: choosing signals to visualize and composing recorders

The user can decide which signals to visualize from those contained in the chosen data file, and how they are presented in the different recorders.

This means that the user can:

  • choose a reduced set of signals for a specific search,
  • group in the same recorder only the signals whose visual comparison is useful,
  • separate different functional blocks into different recorders,
  • and build alternative profiles for the same file according to the type of analysis to be performed.

By choosing a specific Profile, we choose two concepts:

  • The set of signals to visualize

  • The details of the representation of those signals

The Visualization Profiles section presents the available functions for selecting, creating, editing and saving profile files:

Visualization Profile functions

3.1 Selecting a Profile

In the first position of the menu we have a selector that allows us to choose among the available Visualization Profiles. The definition of a Profile is saved in JSON files.

3.2 Where are the available Profile files located?

Since Visualization Profiles reference a set of signals, these signals are implicit in the data files. Since there may be data files that share signals (for example, the files from LdP simulators), this application expects to find the Profile files grouped together with the data files. For example, for data coming from sessions with the "Rotor Resistance Controlled WT" simulator, which the simulator saves in the directory: C:\WFS_Datalog\Rotor Resistance Controlled WT, the Profile definitions for this data are saved in the directory C:\WFS_Datalog\Rotor Resistance Controlled WT\layouts\.

If data files not created by LdP simulators are to be used, for example, CSV files from a spreadsheet, it is advisable to group these data files in a specific directory and give it a meaningful name. When a Visualization Profile is defined for that dataset, this application will save them in the layouts subdirectory, under that directory.

3.3 Importing Visualization Profiles used in a Simulator configuration

When you want to visualize data from sessions carried out with LdP simulators, a good idea is to start by emulating the StripRecorder Panels that allow visualizing the evolution of groups of signals during the execution of simulations. These groupings are described in the configuration files (conf) of each simulator. They are generally found in the directory C:\ACMSL\WindFarmSimulator\conf. This function imports all Panels and will create the corresponding Profiles, which will be available for selection.

3.4 Creating a new Visualization Profile

To create a new Profile, you must first open a data file, since you need to assign signal names to it, which logically must exist.

When you press the "New" button, a form will appear to enter the name of the new Profile.

New Layout The chosen name should ideally be minimally descriptive of the Profile's objective: in this case, we are interested in visualizing the evolutions of the power generated by a wind turbine, how it relates to the wind and to the revolutions of the electric generator.

On "Accept" the editing form for the recorders and their properties of the new profile will appear

New blank layout editing

And it will be ready to insert recorders into this new profile.

3.5 Adding Recorders to a Visualization Profile

Pressing "+Recorder" brings up the form

New Wind Recorder

In this example, we have assumed that we want to see the Wind variable in the first recorder, hence the chosen name, which is added to the "Profile in edit" form. Immediately the "Recorder properties: Wind" form is presented, to be able to continue adding the corresponding signal.

Wind Recorder Properties

Regarding the recorder parameters, we can leave the default values and proceed to add a signal to this recorder. To do so we press the "+Signal" button: the application will show the "Select signal" form. (See next figure)

3.6 Adding Signals to a Recorder

The program presents the set of signals available in the log file that we have open.

Select signal

In this form we look for the signal we are interested in, corresponding to the Wind. Signal selected

Pressing Accept, it will be added to the Recorder properties form.

Recorder with one signal

This signal corresponds to the value of the Wind Vane. We may also be interested in knowing the effective wind incident on the plane of rotation of the blades, which takes into account the misalignment of the Nacelle. This signal is calculated internally in the Controller, and is available as "Controller.Control.EffectiveWind".

Select Effective Wind signal

We see that both signals have been added with the same characteristics (Color, Width, Marker)

Recorder with two signals

3.7 Graphical representation of Signals

We can change the graphical characteristics by pressing "Edit selected signal", having previously selected it. The "Edit selected signal" form will appear

Edit signal

3.7.1 Signal Color

We can change the color with which this signal will be presented in this recorder (a signal can be in several recorders, represented in different ways in each one), by pressing "Choose", which will present the following form, where we can choose its associated color.

Color selector

3.7.2 Signal Markers

The "Marker" selector allows you to choose the type of mark drawn at each point corresponding to each record of the variable

Marker options

Signal with circular marker

Markers

Signal with cross markers

Markers

3.7.3 Modes for representing Analog Signals: Step - Interpolated

With "Mode" we can choose how the points of two consecutive records are graphically connected. This option is controlled at the "Recorder" level, which takes priority over what is defined for each signal.

Step Mode

Step Mode

Interpolated Mode

Interpolated Mode

3.7.4 Mode for representing Digital Signals

The interest of presenting several digital signals in the same Recorder is the advantage of easily observing when one precedes another. However, presenting them has the problem that they can "overlap", which loses part of the advantage sought: to avoid this problem it has been decided to present them offset vertically, so that they do not overlap. See example in the next figure.

Digital signal detail

4 Auxiliary Functions

These functions are accessed using the buttons in the left panel, under Functions

4.1 Hardcopy

Pressing the "F12" key generates a PNG image, like the following, insertable into any Office document.

Cutin + Cutout + Production hardcopy

4.2 Accessing the data of the Visualization Profile signals

We can have access to the data of the signals in a given Profile, in the time interval being visualized. To do so:

  • Choose the area of interest.

  • Press the "Data Access" button: a list of all the signals being presented in the current Profile appears.

Statistics without signal selection

  • Select the signal whose recorded data we want to know.

Statistics with selected signal

  • Press View Records, and the Records form appears showing the instants of each record, and the value of the signal at that instant.

Records with signal and recorder

  • In that form, the record corresponding to the cursor instant is presented in a synchronized way.

  • If you press the CSV button the following message will appear

CSV separator info

which informs about two important characteristics of the CSV file that will be generated. The next figure shows the beginning of the (single) spreadsheet generated in the CSV file produced, and viewed in LibreOffice.

CSV signal data


4.3 Exports

Pressing this button, the program will present the Export form, which will allow us to generate data files in formats suitable for processing in other applications.

Initial export form

The functionalities accessible through this form allow exporting the data of the signals being viewed, in the time range being viewed. The options for the generated file are:

  • Which data is exported:

    • Unified data
    • Sampled data
  • The format of the output file can be

    • SQLite database type (binary)
    • CSV (Comma Separated Value) file (text)
    • With SQLite format, data processing can be done so that
      • all records can be sent to the output file, or
      • sampling can be done with a Fixed period, whose interval is selectable.

The interest in using these functions derives from the convenience of having smaller data files in time ranges of particular interest. See further ahead the structure of these types of files.

5. Supported Data Formats

5.1 Datalogging data format of Simulators built with LdP

The files generated by ACMSL real-time simulators store information in an optimized way to reduce size and preserve temporal resolution. Their most significant characteristics are:

  • they are usually SQLite database files,
  • each signal has its own table,
  • the instants are stored with high temporal resolution,
  • there is not necessarily a uniform periodic sampling,
  • and the records are oriented towards value changes rather than fixed sampling.

This format is particularly suitable for studying events, maneuvers and transients.

5.2 Unified format

The data from an LdP datalogger file can be used by external applications, since it is a format that implements the concepts of "Relational Databases", explorable and modifiable with standard SQL statements. To facilitate its use with common tools, such as spreadsheets, this application also allows generating files with a relational database table structure, but one that has only one date field, and one additional field for each signal to be exported.

Additionally, it may be interesting to have a unified structure where the instants corresponding to each record correspond to periodic sampling. This mode implies loss of temporal resolution (i.e., we will lose some records), but can greatly facilitate data processing for certain functions.

The application also accepts unified files, in which:

  • there is a single data table,
  • the temporal column is common,
  • and each signal appears as a column.

This format is useful when the set of variables has already been previously consolidated for joint analysis.

5.3 CSV Format

This format is the common one for exchanging data between spreadsheets and also between dissimilar databases.

The content of CSV files acceptable for presentation in this program has a logical structure identical to the Unified Format, i.e.:

  • A single table
  • This table must have:
    • a column that must be called "Date", with type Double, and with a range of values compatible with a date (Excel, or LdP)
    • one column per signal, with type Double for analog signals, or Integer (with values only "1" or "0") for digital ones.

By accepting this type of format, this application can be used as a presentation and analysis tool for calculations performed in other tools

6. Main visualization concepts

6.1 Visualization Profile

The concept of "Visualization Profile" keeps in a file: which signals are presented, the details of their presentation, and how they are distributed on screen, and therefore allows managing various ways of visualizing the data of a given time series file. It allows:

  • grouping certain signals according to criteria of:
    • subsystems or functional blocks,
    • being able to visually compare their values,
    • studying their precedences,
  • reusing an already prepared work structure.

6.2 Recorder

A Recorder is a graphic area of the application form where one or more signals are drawn. Each Recorder can contain:

  • a single signal
  • several analog signals
  • several digital signals

Each Recorder has a Scale for the ordinate axis (Y). And it also draws a set of horizontal lines, in a diluted color so they do not cover the

6.3. Recorder Panel

When there are many signals to observe, the goal of a Profile is not to show them all, but to show what is important clearly. It is advisable to group signals following functional criteria, for example:

  • input and response,
  • setpoint and controlled variable,
  • command and feedback,
  • state and condition,
  • cause and effect.

Practical recommendations:

  • do not mix too many signals without direct relation,

  • separate different functional blocks into different Recorders,

  • reserve specific Recorders for digital signals when they help explain events,

  • and group in the same Recorder only signals whose visual comparison adds value.

6.4. Visualization Profiles similar to those used in LdP Simulators

The simulators running in the LdP framework allow the visualization, in real time, of the evolutions of chosen internal signals. This presentation is done with a methodology similar to that of the Recorders in this application, and they are defined in the simulator configuration file, which allows the user to observe the evolution of the Profiles defined for the simulators, which allows maintaining the same visual organization used in Simulator Practical Classes. It also allows creating custom Profiles, more adapted to a specific analysis need.

6.4.1 Profiles similar to those used in Simulators

When you want to open a .sqlite file generated by a simulator, we can import from its configuration file the Panels used for real-time signal visualization in the Simulator with which those files were generated.

Subsequently we can modify some of their characteristics (vertical ordering of Recorders, colors assigned to signals, scales, etc.), and adapt them to particular observations.

6.4.2 Creating a new Visualization Profile

This situation arises when we want to use files not generated in LdP simulators, for example, when we are using a CSV data file from calculations performed in an external application. If we do not have an available Profile that matches the data source (CSV file), we have to create a new one. To do so, the procedure is:

  1. Open the data file.

    • After this phase, the application has the set of signals (columns) referenced in that file. Therefore, we can now:
  2. Create a new Profile.

  3. Add Recorders.

  4. Assign signals to each Recorder.

  5. Adjust the representation of each signal.

  6. Save the Profile for reuse.

The next image shows the creation of a new Recorder within the Profile construction process.

6.4.3 Same file, different views (Visualization Profile)

One of the strengths of the program is that the same data file can be studied with several different views, each oriented to a different question. This allows, for example:

  • a general view of the system,
  • another focused on control,
  • another on digital states,
  • and another on diagnosis or fine detail.

6.4.4 Visualizing the selected Profile

Once the Profile is chosen, the action of visualizing loads the signals and presents the temporal evolution according to the defined organization.

The next image shows the same data file used in previous images, but with another Visualization Profile (Signals of the hydraulic system of a wind turbine)

Hydraulic system profile view

6.4.5 When to reuse a Profile and when to create a new one

Reusing an existing Profile is usually the best option when:

  • you are working with an already known simulator,
  • you want to maintain consistency with a practice or tutorial,
  • or you need to start analyzing quickly without investing time in configuring the view.

Creating a new Profile is usually preferable when:

  • the analysis objective is very specific,
  • you want to compare signals that do not appear together in the available Profiles,
  • or you want to prepare a view designed for diagnosis, control or validation of a specific maneuver.

7. Basic usage procedure

A typical use can follow this order:

  1. Open the data file.
  2. Identify the input format.
  3. Select an existing Profile or create a new one.
  4. Organize signals into Recorders.
  5. Adjust the representation mode of each signal.
  6. Visualize the temporal evolution.
  7. Analyze patterns, changes, delays and relationships.

In practice, this flow is rarely done only once. The usual approach is to iterate:

  1. visualize a first version,
  2. discover which signals are missing or superfluous,
  3. adjust the Profile,
  4. visualize again,
  5. and repeat until achieving a view that responds well to the technical question to be resolved.

7.1 Time and reference cursor. Frozen cursor

During visualization, the application maintains a time cursor associated with the horizontal position of the mouse over the Recorders. That cursor allows:

  • reading the exact instant in the upper side panel,
  • seeing the value of each signal at that instant,
  • visually comparing several responses on the same temporal reference,
  • and studying event sequences with considerable precision.

Additionally, a temporal reference can be set to measure differences relative to the current cursor. This is especially useful when you want to know how long a variable takes to respond after a command or state change. In the upper left part the data corresponding to the cursor instant are presented. Cursor details

"Cursor" : position of the red vertical line, in day/month/year hour:minutes:seconds format (and milliseconds depending on the zoom level)

"Date LdP" : position of the red vertical line, in LdP format (field "Date" in the records)

"Ref": reference date (if it has been defined using Ctrl + left mouse button). Yellow line.

"Delta t": distance in seconds between the red vertical line and the yellow one.

Sometimes it is useful to "freeze" the cursor to be able to use the mouse for other functions. We call this the "Frozen cursor". It is indicated by the background of the "Cursor" text (see next figure)

Frozen cursor

To enter or exit this mode, press the 'f' (or 'F') key. You must have previously pressed the right mouse button at least once.

7.2 Zoom and time scrolling

The visualization is not designed as a static image, but as an exploration tool. The most useful temporal operations are:

  • scrolling the visible time window,
  • zooming into a specific area,
  • returning to a more general view,
  • and working on the same Profile at different temporal scales.

In practice, a very effective way to analyze a maneuver is:

  1. first locate the temporal area where the main event occurs,
  2. then zoom into that interval,
  3. read with the cursor the order of changes,
  4. and zoom out again to check the general context.

10. Signal representation modes

In general:

  • analog signals are shown as traces or curves,
  • digital signals are shown as discrete states or steps,
  • and several signals can share a Recorder if the comparison is useful.

For each signal, in each Recorder where it is used, aspects such as these can be adjusted:

  • color,
  • line width,
  • use of markers,
  • and the way points are joined.

The choice is not only aesthetic. A good representation:

  • better separates what is important from what is secondary,
  • avoids false visual continuities,
  • and helps to quickly recognize transitions, permanences and regime changes.
    The drawing detail window allows changing these parameters to improve readability:

10.1 Digital signals in the same Recorder

When several digital signals share a Recorder, the application represents them so that their states are not completely superimposed. This facilitates:

  • distinguishing state changes,
  • comparing durations,
  • and discovering precedence relationships between events.

With digital signals, the priority is usually to clearly identify:

  • when the state changes,
  • how long each state lasts,
  • and which other signals change before, during or after.

That is why a clean, well-separated representation is usually preferable to a too compact view.

10.2 Interpolation and visual continuity

In analog signals, the connection between points helps to read trends, but it does not always mean that there is real information throughout the interval. For this reason, when there are large temporal gaps between samples, the application can avoid misleading interpolations and preserve a more faithful reading of the available data. It is worth keeping this in mind especially when:

  • comparing signals with different recording densities,
  • studying very fast maneuvers,
  • or working with files where the recording depends on value change.

11. Vertical scale in each Recorder

When there is more than one signal in a Recorder, or we have only one but it has areas with very different absolute values, and other areas with small variations that are of interest, it is necessary to adjust the scale and offset value to the interval being explored, so that these small variations can be easily appreciated, throughout the time interval of interest.

This application is designed so that it is easy to focus on time intervals where we suspect changes that may reveal interesting information, and therefore allows very fast zooms and temporal scrolling. In that situation, to avoid having to manually adjust the scale values for each change in the time interval of interest, the scale and offset of each Recorder can be set to *Auto-scaling mode. Each Recorder is designed to allow a quick and useful reading of the signals it contains.

11.1 Auto-scaling

This functionality, when activated in the Recorder, calculates in real time the most appropriate maximum and minimum values for the best vertical resolution of the signal values in the Recorder. It also calculates the horizontal reference lines whose values are rounded to the values closest to the evolution of the signals. The following images show this functionality.

  • Time interval of 15 seconds per unit. Auto-scaling 1

  • Time interval of 0.5 seconds per unit Auto-scaling 2

11.2 Scale type

Depending on the case, the user can work with:

  • linear scale,
  • or logarithmic scale.

The linear scale is usually the natural option when comparing absolute differences. The logarithmic scale is useful when a signal has a very wide range and resolution independent of the value is required. Also when several signals with very different magnitudes are presented in the same recorder.

11.3 Y axis format

The Y axis labelling can be adapted to make reading clearer. Among the available formats there are variants such as:

  • AUTO : generates text adjusting the format automatically so that the Y axis labels differ in the last digit.
    • Example AUTO format
  • [decimals]K
  • [decimals],K
  • [decimals]M
  • [decimals],M

11.4 Signal value shown in the side panel

The Recorder side panel shows the signal value at the instant indicated by the cursor, with a selectable format from those above, which can be different from the one used to label the Y axis.

This point reading is especially useful for:

  • checking values at a specific instant,
  • contrasting differences between several signals,
  • and verifying whether a small visual change is really significant.

12. Statistics of visualized signals and access to their values (Statistics form)

Sometimes it is useful to have the data of the signals being visualized, as an alternative to accessing the original data and performing an extraction using SQL statements or similar.

The application has a Statistics form, accessible by pressing the Data Access button, where grouped data about the signals of the Profile being used are presented, including:

  • minimum and maximum dates within the visible section,
  • minimum and maximum values, - signal type,
  • and number of records considered.

Statistics without signal selection

In this form a specific signal can be selected

Statistics with selected signal

and open the Records form for that signal, by pressing the View Records button.

Records with signal and recorder

12.1 Data of the selected signal (Records Form)

The Records form shows the Date - Value pairs of the selected signal within the time interval being visualized. This view is useful when you want to:

  • check exact values without visual interpolation,
  • review changes in a digital signal record by record,
  • export the visible section of a signal to analyze it outside the program.

While this form remains open, moving the cursor in the main window highlights the row corresponding to the start of the time interval where that cursor is located. This makes it easier to relate the graph to the specific record in the table.

12.2 Exporting data of the selected signal in CSV format

The Records form includes a CSV button that allows exporting the data shown to a .csv file. In this export:

Selected signal data

  • a Date column and a Value column are written,
  • the date is saved in numeric Excel format,
  • the column separator is ;, - and the decimal separator is ..

This export is designed to quickly extract the visible section of a single signal without needing to export the entire Profile.

13. Exports

The Exports button presents the Export form which allows exporting the data being viewed at that moment. The purpose of these exports is to pass the data from the file being visualized to formats common with other applications. It allows choosing:

  • the output format, i.e., the file type,
  • what data is exported

The selectable file types are:

Regarding data, there are two possibilities:

  • all original data, but in a single table containing all the dates from all tables,
  • one field for each signal, with values interpolated for those instants that do not exist in their original table

In both cases, the export is limited to the time window being visualized at that moment.

13.1 Unified SQLite

Exporting to Unified SQLite generates a SQLite file, with a single Data table, where:

  • there is a single column with the date: Date,
  • each visible signal of the Profile is exported as a column,
  • and each row represents an instant of the output temporal grid.

In the export form, for this output you can choose between:

  • All records
  • Fixed period

If All records is chosen, the behavior preserves all unified instants corresponding to the visible signals. If Fixed period is chosen, the application builds a regular temporal grid from the first visible instant and calculates values by retaining the last known value. This mode is useful for:

  • reducing the number of records,
  • obtaining a more convenient basis for subsequent calculations,
  • preparing data for external numerical processing.

13.3 Profile CSV Export

Exporting to CSV generates a file readable by any calculation application, containing a single spreadsheet, whose structure is:

  • a first column for Date,
  • one additional column for each visible signal. The format is "Double" for analog signals and numeric (with values only "1" or "0") for digital signals.

If Fixed period is chosen, the output is resampled with the period indicated in the form.

Before exporting to CSV, the application warns about the format used:

  • the column separator is ;,
  • and the decimal separator is ..

15. Analysis best practices

To get the most out of the program it is advisable to:

  • always work with a common temporal reference,
  • start with a general view and then move to the detail,
  • not assume causality without checking the temporal sequence,
  • use the Profile as a working tool, not just as a presentation,
  • refine the view as the system is better understood.

It is also highly recommended to:

  • keep a general Profile for quick orientation,
  • create specific Profiles for recurring problems,
  • document Recorders with clear names when a Profile is going to be reused,
  • avoid simultaneous changes to too many options if you later want to understand what really improves the reading.

15. Summary

LdP_Datalogger_Viewer is designed for:

  • exploring long time series,
  • loading data from SQLite and CSV files,
  • organizing data visualization forms (signals) adjusted to specific objectives Visualization Profiles,
  • these Profiles:
    • group signals in Recorders to facilitate their comparison.
    • allow presenting the data in different ways (with/without markers, colors)
    • facilitate the visual interpretation of many signals.

To understand how a system evolves from its signals, this application is oriented precisely to making evident what the data alone do not show clearly. The most effective way to take advantage of it is to combine:

  • a careful selection of signals,
  • a clear organization in Recorders,
  • Profiles adapted to the study objective,
  • an orderly temporal reading of events, states and responses.

Appendix

1. Data Formats

1.1 Files generated by Simulators in the LdP framework

The simulators generate log files with the evolution of the internal and external signals used in the simulation sessions. These log files are SQLite database files, which contain one table per signal. The table name is the signal name, and it has two fields:

  1. Name of the date field: Date, REAL format. Contains the date with resolution of tenths of a millisecond.

  2. Name of the signal Value field

    1. For analog signals: ValueA, REAL type

    2. For digital signals: ValueD, INTEGER type

This design is optimized to maximize temporal resolution, since it adds a record only each time there is a change in the corresponding signal. In contrast, sampling at a constant frequency adds one record per clock tick, whether or not the signal value has changed.

These files can be read and used with many freely available applications (SQLiteStudio, DB Browser for SQLite, etc.) since these tools allow using SQL language.

The next figure shows the (partial) structure of one of these log files.

DB Browser structure

The next figure shows the initial content of one of these tables.

DB Browser data

Generally, these SQLite file managers have functions that allow exporting the content of a table in CSV format. See next figure.

DB Browser export CSV

1.2 Unified data files generated by LdP_Datalogger_Viewer

The LdP data format is the initial format used by this application. However, it is a format not easy to use in calculation applications, where it is common to have data grouped by date: i.e., each record contains a date and all the signal values for that date.

This application generates data in this format, which we call unified format. See next figure.

DB Browser unified

and in the next one a detail of the content of the generated table (Data)

DB unified data table

There is a variant of this approach that consists of resampling the data at a periodic frequency: i.e., the "Date" field is not taken from the original LdP files, but is generated uniformly from the start of the file, with a fixed distance between them (sampling period)

1.2 'Time-unified data' files generated by LdP_Datalogger_Viewer

This format is designed to facilitate processing by applications that require all signal data to have a common date for each record, across all signals. The LdP format has one table per signal, and its "Date" field corresponds to a change in that signal. This format is very versatile for data acquisition, but for its exploitation and study it is more convenient to have this data in the form of a single SQL table with a single date column (field), and as many columns (fields) as there are recorded signals.

There are two procedures for creating this type of SQL tables:

  1. With one record for each instant (field "Date") from each and every one of the data tables, and with the values of each field calculated from the values in their corresponding tables: these values have to be interpolated.
  2. Having records corresponding to a periodic sampling. The output format of these files is also SQLite.

1.3 'Generated CSV' file format by LdP_Datalogger_Viewer

The purpose of generating this type of files is to facilitate their use in subsequent calculations in a spreadsheet. The main advantage over CSVs generated directly with the export of the original tables is that it contains a single table that has:

  1. a single date field, "Date", in spreadsheet format.
  2. a numeric field for each signal in the Profile being visualized. The field name corresponds to that of the corresponding signal (table).

The "Date" field contains one record (row) for each of the records of each of the tables in the original SQLite files. The corresponding numeric values of the signals are interpolated from the original values in the SQLite files, for all those instants at which there is no record for the instant in "Date". The next figure shows an example of a CSV of this type:

1.4 CSV format with periodic sampling

Some calculation procedures require that signal samples have been taken with a periodic cadence. The program allows exporting the data from the set of signals being visualized in the profile, with periodic sampling. See an example in the next figure: note that the time distance between samples is 0.2 seconds, uniform.


2. About date values

The data recorded on the LdP platform (Simulator sessions) record the date on which a change in a signal occurs, with a temporal resolution of 0.1 milliseconds.

The date format in the most common spreadsheets has a millisecond resolution.

The formula for converting from LdP format to spreadsheet format is:

DateExcel=DateLdP86400000693593 \text{Date}_{\text{Excel}} = \frac{\text{Date}_{\text{LdP}}}{86400000} - 693593

Example: For

DateLdP=63899315110789,1 {\text{Date}_{\text{LdP}} = 63899315110789,1}

The corresponding value is DateExcel=45982,4063748734{\text{Date}_{\text{Excel}} = 45982,4063748734}

which displayed as a date, with format %yyyy%-%mm%-%dd% %hh%:%mmm%:%ss,000% gives us "2025-11-21 09:45:10,789"


3. Visualization Profile file format (JSON)

The following listing corresponds to the Visualization Profile used to obtain the images in this document.


{ "panel_name": "Cutin + Cutout + Production", "recorders": [ { "height": "120", "maxY": "55.0000000000", "minY": "-5.0000000000", "signals": [ { "modo": "I", "lineWidth": "1", "color": "16711680", "name": "Controller.Control.PitchOut", "type": "Analog" }, { "modo": "I", "lineWidth": "1", "color": "32768", "name": "Nacelle.DriveTrain.PitchNacelleOut", "type": "Analog" } ], "name": "Pitch values", "autoScale": "0" }, { "height": "120", "maxY": "1700000.0000000000", "minY": "-10.0000000000", "signals": [ { "modo": "I", "lineWidth": "1", "color": "8421504", "name": "Controller.Control.OfficialActivePowervsWindOut", "type": "Analog" }, { "modo": "I", "lineWidth": "1", "color": "32768", "name": "Nacelle.DFIGB2B.GridActivePower", "type": "Analog" }, { "modo": "I", "lineWidth": "1", "color": "0", "name": "Nacelle.DriveTrain.ActualWindPowerOut", "type": "Analog" } ], "name": "Power", "autoScale": "0" }, { "height": "60", "maxY": "1.0000000000", "minY": "0.0000000000", "signals": [ { "modo": "I", "lineWidth": "1", "color": "0", "name": "Nacelle.Braking.BrakeReleasedOut", "type": "Digital" } ], "name": "Brakes", "autoScale": "1" }, { "height": "150", "maxY": "2000.0000000000", "minY": "0.0000000000", "signals": [ { "modo": "I", "lineWidth": "1", "color": "0", "name": "Nacelle.DriveTrain.GeneratorRPMsOut", "type": "Analog" } ], "name": "GenRPMs", "autoScale": "0" }, { "height": "120", "maxY": "30.0000000000", "minY": "0.0000000000", "signals": [ { "modo": "I", "lineWidth": "1", "color": "0", "name": "SynopticWindNacelle.WindSpeedOut", "type": "Analog" }, { "modo": "I", "lineWidth": "1", "color": "0", "name": "Controller.Control.EffectiveWind", "type": "Analog" } ], "name": "WindSpeed", "autoScale": "0" } ] }