Hello, I’m afraid about the meaning of % memory usage in cockpit utilization area when I’m online.As days go by, this value increase near 100% (see attached “mem_utilization.png” picture) but I don’t know if it’s critical or not.
Basically, my program uses dataloggerRT (4 sesions) to store values on PLC, and it publish this values throw OPC Server UA to an “ad hoc” client developed by us. When % is high enough, about 80%, some downloads make to stop dataloggerRT service (see attached “Error after data change download.png” picture), so some times I have to stop and warm start in order to restore dataloggerRT service on. Whats is the meaning of this memory? It is managed or released by PLC? NOTE: I’m using AXC F 1152 with 2020.6.1 firmware
Hi Manel, This is most likely due to the data logger configuration, but there is a chance that there is a memory leak somewhere. Can you please tell us:
* All the parameter settings for your datalogger configuration?
* Have you installed any other application on the PLC, apart from the PLCnext Engineer project?
* What libraries (if any) does your PLCnext Engineer project use?
Thank you. ~ Martin.
Hi Martin, thanks for your quick response again.
* This is the configuration of my 4 datalogger sessions:

The only difference between them is the General Name and database name (dst).
* PLC doesn't have any other program installed, apart from an openVPN connection established.
* This is a good point that I will double check programing. I'm using a library developed by my with C#, in particular, I'm using 2 function blocks with big UDT as an in-out parameter. The other function block used is simpler and consist of known the day of the week. By the other hand, I'm using Modbus_TCP_6 as extra library.
Regards, Manel UPDATE: Independently of % of memory usage, after a only change download these are output.log lines recorded:
24.08.20 09:23:27.480 Arp.Services.ProfiCloud.Internal.ProficloudTSDAdapter INFO - Stopped Proficloud TSD service
> 24.08.20 09:23:27.480 Arp.Services.ProfiCloud.Internal.ProficloudAppAdapter INFO - Stopped Proficloud AppStore service
> 24.08.20 09:23:27.480 Arp.Services.Ehmi.EhmiComponent INFO - 2679198400 EhmiComponent: OnPlcChanging
> 24.08.20 09:23:29.020 Arp.Plc.Esm.Internal.TaskController INFO - Configuring Sleep class with a sync point interval of 100000us, an watchdog interval of 10000us and an axio interval of 10000us
> 24.08.20 09:23:29.155 Arp.Io.Axioline.Internal.AxiolineDomain INFO - Axioline: No bus configuration found. No links.xml file.
> 24.08.20 09:23:29.160 Arp.Io.EthernetIP.EthernetIPComponent INFO - LoadPlc, isChanging=true
> 24.08.20 09:23:29.181 Arp.Io.EthernetIP.EthernetIPComponent INFO - SetupPlc, isChanging=true, startKind=Warm
> 24.08.20 09:23:30.432 Arp.Services.OpcUAServer.Internal.Security.IO.IOAuthorizationServiceImpl INFO - Default PLCnext file security is active.
> 24.08.20 09:23:30.441 Arp.Services.OpcUAServer.Internal.Security.UserAuthenticationCallback INFO - Successful authentication for name='nor_opcua': client.address=172.18.0.13:50992, securityToken=BB826219, initialTimeoutMillis=1200000
> 24.08.20 09:23:30.861 Arp.Services.OpcUAServer.Internal.Security.SecurityContext INFO - Closing user session with: client.address=172.18.0.13:50992, securityToken=BB826219
> 24.08.20 09:23:30.884 Arp.Plc.Gds.Internal.GdsDomain INFO - GDS configuration successfully loaded.
> 24.08.20 09:23:30.980 Arp.Plc.Gds.Internal.GdsDomain INFO - GDS data connections successfully created.
> 24.08.20 09:23:31.296 Arp.Plc.Gds.Internal.Subscription.SubscriptionImpl INFO - Subscription 13 subscribed.
> 24.08.20 09:23:31.298 Arp.Plc.Gds.Internal.Subscription.SubscriptionImpl INFO - Subscription 13 unsubscribed
> 24.08.20 09:23:31.418 Arp.Services.DataLogger.Internal.Subscription ERROR - Could not stop sampling! Error: CurrentlyUnavailable
> 24.08.20 09:23:31.430 Arp.Services.DataLogger.Internal.Subscription ERROR - Could not stop sampling! Error: CurrentlyUnavailable
> 24.08.20 09:23:31.444 Arp.Services.DataLogger.Internal.Subscription ERROR - Could not stop sampling! Error: CurrentlyUnavailable
> 24.08.20 09:23:31.562 Arp.Services.DataLogger.Internal.Subscription ERROR - Could not stop sampling! Error: CurrentlyUnavailable
> 24.08.20 09:23:31.572 Arp.Services.DataLogger.Internal.Subscription ERROR - Could not stop sampling! Error: CurrentlyUnavailable
> 24.08.20 09:23:31.604 Arp.Plc.Gds.Internal.Subscription.SubscriptionManager WARN - The subscription kind ClosedRealTime doesn't allow a capacity of 1. The capacity will automatically increased to 2.If the capacity of 1 is needed, use the kind HighPerformance instead
> 24.08.20 09:23:31.642 Arp.Plc.Gds.Internal.Subscription.SubscriptionManager WARN - The subscription kind ClosedRealTime doesn't allow a capacity of 1. The capacity will automatically increased to 2.If the capacity of 1 is needed, use the kind HighPerformance instead
> 24.08.20 09:23:31.697 Arp.Plc.Gds.Internal.Subscription.SubscriptionManager WARN - The subscription kind ClosedRealTime doesn't allow a capacity of 1. The capacity will automatically increased to 2.If the capacity of 1 is needed, use the kind HighPerformance instead
> 24.08.20 09:23:31.728 Arp.Plc.Gds.Internal.Subscription.SubscriptionManager WARN - The subscription kind ClosedRealTime doesn't allow a capacity of 1. The capacity will automatically increased to 2.If the capacity of 1 is needed, use the kind HighPerformance instead
> 24.08.20 09:23:31.785 Arp.Plc.Gds.Internal.Subscription.SubscriptionManager WARN - The subscription kind ClosedRealTime doesn't allow a capacity of 1. The capacity will automatically increased to 2.If the capacity of 1 is needed, use the kind HighPerformance instead
> 24.08.20 09:23:31.869 Arp.Plc.Gds.Internal.Subscription.SubscriptionImpl INFO - Subscription 5 unsubscribed
> 24.08.20 09:23:31.876 Arp.Plc.Gds.Internal.Subscription.SubscriptionImpl INFO - Subscription 2 unsubscribed
> 24.08.20 09:23:31.883 Arp.Plc.Gds.Internal.Subscription.SubscriptionImpl INFO - Subscription 6 unsubscribed
> 24.08.20 09:23:31.982 Arp.Plc.Gds.Internal.Subscription.SubscriptionImpl INFO - Subscription 4 unsubscribed
> 24.08.20 09:23:31.995 Arp.Plc.Gds.Internal.Subscription.SubscriptionImpl INFO - Subscription 3 unsubscribed
> 24.08.20 09:23:32.021 Arp.Plc.Gds.Internal.Subscription.SubscriptionImpl INFO - Subscription 1 unsubscribed
> 24.08.20 09:23:32.082 Arp.Io.EthernetIP.EthernetIPComponent INFO - ResetPlc, isChanging=true
> 24.08.20 09:23:32.089 Arp.Io.EthernetIP.EthernetIPComponent INFO - UnloadPlc, isChanging=true
> 24.08.20 09:23:32.101 Arp.Services.Ehmi.EhmiComponent INFO - 2679198400 EhmiComponent: OnPlcChanged, success=true, dcgFullReload=false
> 24.08.20 09:23:35.555 Arp.Services.DataLogger.Internal.Subscription ERROR - Could not start sampling! Error: CurrentlyUnavailable.
> 24.08.20 09:23:35.555 root ERROR - Session 'ts_agg_2m': Session could not be started.
> 24.08.20 09:23:35.558 Arp.Services.DataLogger.Internal.Subscription ERROR - Could not start sampling! Error: CurrentlyUnavailable.
> 24.08.20 09:23:35.559 root ERROR - Session 'ts_alm': Session could not be started.
> 24.08.20 09:23:35.560 Arp.Services.DataLogger.Internal.Subscription ERROR - Could not start sampling! Error: CurrentlyUnavailable.
> 24.08.20 09:23:35.561 root ERROR - Session 'ts_agg_5m': Session could not be started.
> 24.08.20 09:23:35.563 Arp.Services.DataLogger.Internal.Subscription ERROR - Could not start sampling! Error: CurrentlyUnavailable.
> 24.08.20 09:23:35.563 root ERROR - Session 'ts_agg_1_h': Session could not be started.
> 24.08.20 09:23:35.565 Arp.Services.DataLogger.Internal.Subscription ERROR - Could not start sampling! Error: CurrentlyUnavailable.
> 24.08.20 09:23:35.567 root ERROR - Session 'ts_agg_15m': Session could not be started.
> 24.08.20 09:23:36.462 Arp.Services.OpcUAServer.Internal.InformationModel.Alarms.AlarmNodeManager WARN - Alarm with same id 'FV_ALM_INV_1' already defined (type='Alarma')
> 24.08.20 09:23:36.463 Arp.Services.OpcUAServer.Internal.InformationModel.Alarms.AlarmNodeManager WARN - Alarm with same id 'FV_ALM_INV_1_RESET' already defined (type='Alarma reset')
UPDATE 2: I downgraded firmware to 2020.3.1:
* datalog sessions don't stop after download is made.
* % of memory usage still increase slowly but constantly
Hi Manel, We will set up a simplified version of your project using only data logger sessions, to check if this causes a memory increase like the one that you are seeing. In the mean time, is it possible for you to disable the data logger sessions in your project, and check if the memory increase still occurs? This will help to identify the source of the behaviour that you are seeing. ~ Martin.
Hi Manel, Regarding the memory usage, we have observed that the memory usage does fluctuate up and down while the data logger is running, which makes sense because data is accumulated in RAM before being written to disk. We have not seen a situation where the memory usage increases forever, so it does not look like a memory leak in the data logger. It may be possible for you to reduce the “writeinterval” datalogger parameter, thereby accumulating less data in RAM between write cycles, which should help to reduce the peak % memory figure. Meanwhile, we will continue investigations here to see if there are any improvements we can make to the data logger memory management. Note that there have been no significant changes to the way that datalogger memory is managed between FW 2020.3 and 2020.6. Regarding the Download Changes issue, this is a different issue that we will investigate separately. ~ Martin.
Hi Martin, Sorry for the delay answering you. I’m thinking to make 3 test in order to identify where is memory leak: 1) Stop datalogger sessions. Allready done: memory still increase slowly.
- Stop opc client. This will be next test to do. Our client, in fact, is like 3 clients at the same time. The first one, open and close one session every 30 seconds to obtain some real-time data. Another client open and close another session every 5 minutes to communicate opcua historical data. And the last one client open and close another session to communicate more opcua historical data related to events.
- Comment function blocks made by us or special ones we are using. I’ll try to keep you informed about that, Regards, Manel
Hello, The problem was produced by opening and closing continuously OPC client sessions to PLC. We minimize OPC sessions utilization on our OPC ‘ad hoc’ client and only keep 2 openned permanently. The % of memory utilization is now stable. Thanks