Dear PLCnext Team, I have two questions about the DataLogger feature(included in PLCnext runtime). 1) How to calculate the required memory size for the DataLogger ?
Since PLCnext controller has limited memory space for data logging,
I would like to estimate how long the PLCnext controller can store the data
using the DataLogger.
- Is there any way to dinamically disable/enable the DataLogger during operation ?
As described above, PLCnext controller has limited memory space. To save the memory space,
I would like to enable the DataLogger only when the data record is needed. I want to do
this without stopping the PLCnext controller operation. Sincerely,
Hiroki Kannon
Hello Hiroki, please see the answers to your questions below: 1) How to calculate the required memory size for the DataLogger ? It is depends on your DataLogger configuration. If the Data should be logged permanently, you can use the following example for calculation: Memory Size for one Record of 10 Variables of datatype „Byte“ = uint64_Timestamp + 10_Variables x (b_Var_Value + uint64_EventCounterValue) + b_ConsistentDataSeries The max. needed memory size for one record is: 8Byte + 10 x (1Byte + 8Byte) + 1Byte = 99 Byte Please note, If you use the option "storeChangesOnly=„true“, you can spare Data-sink memory size. - Tipp: You can also use the SQLite Browser to open your DataBase and calculate the number of records during the recorded time-window (TimeStepLastRecord-TimeStepFirstRecord). In Windows Explorer you can see the DB-memory-size (if you copy the DB via WinSCP to the Windows directory). 2) Is there any way to dinamically disable/enable the DataLogger during operation ? I’m not sure what you mean by disabling / enabling the DataLogger. If you want to deactivate / activate the DataLogger Service, this is not possible because the DL-Service starts in a FW component and cannot currently be deactivated dynamically. However, if you want to start / stop or configure / reconfigure the DataLogger session, you can. During operation you can start / stop or configure / reconfigure it via RSC-IDataLoggerService (see IDataLoggerService.hpp):
virtual ErrorCode StartSession(const RscString& sessionName) = 0;
virtual ErrorCode StopSession(const RscString& sessionName) = 0;
virtual ErrorCode ConfigureSession(const RscString& sessionname, const std::vector& properties) = 0; If you have additional questions, plese don’t hesitate to ask! Best Regards Eduard
Hello Eduard-san, Thank you for your quick response. For the answer of Q1, I understand your clarification, Thanks.
I will also check the memory size on SQLite Browser. For the answer of Q2, you are correct. I meant dynamic activation/deactivation of DataLogger.
I will check the RSC-IDataLoggerService. Sincerely,
Hiroki Kannon