I'm working on a softmotion RT application. I have a CRIO(9074) and an EthernetRIO (NI-9146) to control 5 independent axis. 4 of those axis are exact copies of each other (code wise and hardware wise) and the other is the same hardware but has a completely different task. None of the axis interact with each other. Each axis is a stepper motor connected to an NI-9512. The 4 axis identical axis are connected to the EthernetRIO, and the 1 different axis is connected to th e CRIO.
I'm refactoring some old code that was previously working(ish). I've gotten the new code working great with the 4 axis, but now when I try to refactor the code for the different axis, I always get a softmotion error -77055 when I try to start the move. According to this http://zone.ni.com/reference/en-XX/help/371093G-01/nismlvhlp/nism_error_codes/ that error code means:
–77055 | NIMCDM_axisCommunicationWatchdogError | Communication with the device has timed out. Verify your connections, then switch the NI Scan Engine to Configuration mode and back to Active mode to restore communication with the device. |
I created a test VI that only runs the essential code, and I still get this error. Using the distributed systems manager I've watched the processor usage and it never goes above 50%. The memory usage of the CRIO is also below 50%. I can move the axis using the interactive test panel no problem.
My question:
1. Why am I getting this error? I feel like I shouldn't be getting a watchdog error when my CPU usage is so low.
2. In the General Settings menu of the Axis configuration there is a watchdog timeout, should I just disabled this (set it to 0)? The help for this mentions possibly missing data, but I don't exactly understand what that would mean. Possible position overshoots are bad, but reporting the incorrect position to when I call the Read Data method on an axis isn't a concern for me.
See attached snippet for suspect code. The only thing that happens before this VI is the axis is enabled. The Straigh-line Move method is where the error shows up.