gRPC / IDataLoggerService2::ReadVariablesData doesn't return values

Hi team,

We’re now evaluating PLCnext platform using EPC 1522 (firmware version 2022.0), and have trouble reading values in DataLogger, via gRPC. In our set up, a realtime task outputs variables to GDS, DataLogger logs the data, and a process on Linux reads the data via gRPC. The data is logged properly in SQlite database, and it’s readable via RSC service. However, when the linux process reads the logged value via gRPC, values are not set, like the debug string below. The “Value” oneof field in ObjectType of returned arrays isn’t set. If we checked “ValueCase” enum variable defined in ArpTypes.pb.h, it’s all set to 0, which is VALUE_NOT_SET.
How can we read variables via gRPC / DataLogger? We created the linux side binary using C++, but I think language doesn’t matter for gRPC. If you need more information to answer, please let me know.

Thanks!

[Response’s debug string]
TypeCode: CT_Array
ArrayValue {
ArrayElements {
TypeCode: CT_Object
}
ArrayElements {
TypeCode: CT_Object
}
ArrayElements {
TypeCode: CT_Object
}
ArrayElements {
TypeCode: CT_Object
}
}

There was a known issue with arrays in earlier firmware versions that affected the IDataAccessService, ISubscriptionService and the IDataLoggerService. This issue is fixed in firmware version 2023.0 (although this information doesn’t seem to have made it into the Change Notes).
I will check when a version of firmware containing this fix will be available for EPC devices.

Thanks Martin for the quick response!

Sorry for the delay.
The next firmware version for the EPCs, which will contain this fix, is currently due for release in April this year.