we are porting a CNC project from codesys 3.5.16 to codesys 3.5.19.
The project has lots of CNC programs with variables.
now we get hundreds of messages like this.
[WARNING] CNC Test SP19: TestCNC SPS: PLC Logic: Application: C0564: A reference to uninitialized variable varCNC is used for initialization of TestCNC_D. Accessing the uninitialized variable may result in unexpected behavior.
The objects program_name_D are implicit generated by codesys. I see no way to generated them after the variables.
Is there a way to correct the initialization order?
We know how to suppress this warning.
But we need a clean solution as the warning already saved us in a other nonCNC project.
Update:
We managed to avoid the warnings by changing the order of initialization by adding an attribute to the GVL with the variables.
{attribute'global_init_slot':='49989'}
The variables are initialized right before the regular GVLs (default GVL slot 49990).
Note to Codesys:
I see the problem, Codesys needs to initialize the CNC objects before the GVLs so they can be used in the GVL. But then you can't use variables from GVLs in CNC programs. Maybe you could disable the warning in your generated CNC objects?
At least a note for a workaround would have been nice.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hello,
we are porting a CNC project from codesys 3.5.16 to codesys 3.5.19.
The project has lots of CNC programs with variables.
now we get hundreds of messages like this.
The objects program_name_D are implicit generated by codesys. I see no way to generated them after the variables.
Is there a way to correct the initialization order?
We know how to suppress this warning.
But we need a clean solution as the warning already saved us in a other nonCNC project.
Attached a small demo of the problem.
Update:
We managed to avoid the warnings by changing the order of initialization by adding an attribute to the GVL with the variables.
The variables are initialized right before the regular GVLs (default GVL slot 49990).
Note to Codesys:
I see the problem, Codesys needs to initialize the CNC objects before the GVLs so they can be used in the GVL. But then you can't use variables from GVLs in CNC programs. Maybe you could disable the warning in your generated CNC objects?
At least a note for a workaround would have been nice.
Hi Fless,
thanks for your report!
We created an issue in our bug tracker (SM-5109) and will have a look at this issue.
Best regards,
Georg