Dear Forum,
We’ve been having some issues with adding some functionalities to our existing PLCNext engineer program. I hope someone is able/willing to help us out, since we’ve run out of debugging ideas ourselves. I’ll try to summarize the issue as accurately as possible.
Summary
The issue concerns a PLCNext Engineer application (2022.6) running on an AXC F 2152 PLC (2022.6). The issue is that we cannot add any new function-blocks to an existing program. If we, for example, add a single TON timer in the “variables” tab, the build succeeds, to program uploads and starts, but the PLC application almost immediately crashes. After crashing, PLCNext Engineer is not able to connect or write other software to the PLC. The only solution seems to be to factory-reset the PLC.
Observations
* It doesn’t matter which type of function-block we try to add to that specific program, the application keeps crashing.
* It doesn’t matter if we try to use the added function-block (or just leave it unused).
* It doesn’t matter in which order we add the function block.
* It doesn’t matter which firmware version is used (we tested 2).
* It doesn’t matter which version of PLCNext Engineer is used (we tested 2)
* It doesn’t matter in which task or ESM the program is executed, it doesn’t seem to be a watchdog issue.
* We tried to go back to previous versions of our program, but the issue persisted.
* It does matter to what program we add the function block, other programs in the same project don’t have this issue. The application doesn’t crash anymore.
* It does matter what we’re trying to add to the program, a normal variable is OK, but a function-block is always an issue.
* It seems to matter if we add another variable before the new function block, sometimes it doesn’t crash if we add a bigger variable (maybe some memory leak?).
* We’re not 100% sure which log files are relevant in this case, but we found some differences in /opt/plcnext/logs/Output.log:
The last couple of lines of a **good** log:
19.08.22 13:47:52.922 Arp.Plc.Domain.Internal.PlcManager INFO - Plc state transition from 'Stop|Warm' to 'Running'
19.08.22 13:47:52.941 Arp.Services.OpcUAServer.Internal.Config.OpcUAConfigManager WARN - Configuration for subject alternative names is changed => replacing existing self-signed certificate
19.08.22 13:47:53.185 Arp.Services.OpcUAServer.Internal.Config.OpcUAConfigManager INFO - Using the self-signed certificate.
19.08.22 13:47:53.193 Arp.Services.OpcUAServer.Internal.InformationModel.Common.SampleGroupManager INFO - SubscriptionKind is set to DirectRead
19.08.22 13:47:53.469 OpcServer INFO - OPC UA server opened endpoint URI opc.tcp://axcf2152:4840 listening at opc.tcp://0.0.0.0:4840
19.08.22 13:47:53.470 Arp.Services.OpcUAServer.OpcUAServerComponent INFO - Started OPC UA Server successfully.
19.08.22 13:47:53.473 Arp.Services.OpcUAServer.Internal.Security.SessionManager INFO - Applying configuration for client authentication to 1 endpoints: trustAll=true, checkCRLs=false, checkIssuerCRLs=false, ignoreValidity=false
The last couple of lines of abad log:
19.08.22 13:58:08.208 Arp.Io.EthernetIP.EthernetIPComponent INFO - StartPlc, startKind=Warm
19.08.22 13:58:08.208 Arp.Io.EthernetIP.EthernetIPComponent INFO - 2946483008 OnPlcStarted
19.08.22 13:58:08.303 Arp.Plc.Domain.Internal.PlcManager INFO - Plc state transition from 'Stop|Warm' to 'Running'
19.08.22 13:58:15.227 Eclr ERROR - Vectored exception 6 at 0xab2d1b0e is thrown, Rfp=0xa3c7e000, Rsp=0x9ec7cb38, Rlr=0xab2d1b0f
We’re not sure how to proceed from here, so any suggestion on which log files might contain useful information is also very welcome. Thank you in advance for your help! Best regards, Gijs