FORUM CTRLX AUTOMATION
ctrlX World Partner Apps for ctrlX AUTOMATION
Dear Community User! We are updating our platform to a new
system.
Read more: Important
information on the platform change.
02-19-2024 04:07 PM
Dear Community,
I am using ctrlX PLC 1.20 and ctrlX Work with version 1.20.2.
i have this code snippet when i compile the code i dont have any error but as soon as a login a am receiving the below error.
What if i delete the folder of checkfunction? for example Checkbounds.
Thank you!!
Solved! Go to Solution.
02-19-2024 04:16 PM
Please check your call stack in case (View --> Call Stack) of the exception. That should lead you to the line that is using the NULL pointer.
If you remove the check pointer function the error above will not longer shown, but you will still run into that pointer exception without the possibility to check where it is coming from.
02-20-2024 08:41 AM
02-20-2024 12:01 PM - edited 02-20-2024 04:26 PM
Can you show the definitions of the various arrays in your code (MoveLinearAbsolute, MoveDirectAbsolute, point, point1, Run_sequence, etc.)? In particular, what are the upper bounds?
Also, the FOR loop is running 1 through 27 each scan of the PLC, meaning that you are issuing (potentially) 27 move commands per scan. Is this really what you are trying to do?
03-11-2024 01:27 PM
it is basically if we have 100 different position then robot can move according to position data. what i am trying to do is if 1st motion is finish then 2nd motion will start and so on. I can not use any loop function because it generate the check function error. so i connected out put of first motion to initiate the 2nd motion.
03-26-2024 11:36 AM
So is it solved in your application?
In general you can for sure use arrays in loops. But like @bostroemc mentioned you are looping and writing all 27 commands in one single cycle. I am not sure if the MX_Automation allows multiple commands in a single cycle, as it is an serial interface.
In your case I would only use one KRC.MoveLinearAbsolute or use them one after the other (like described in your last post) and then just change the inputs of this single function block as it has finished.