07-16-2019 02:47 PM
I am trying to control three stepper motors to step through a 3d space
Goal: Iterate through a series of steps. At each step move only ONE of the three motors. I use a case structure to determine which physical channels to pass to the daq segment of the code.
In other words.
Unexpected behavior...
(Turn on daq board)
1) Run 3d_step.vi - No motors move (they do make some noise indicating that they are powered)
2) Run motor_frame.vi - The motor tied to that port moves as expected
3) Run 3d_step.vi - The motors moved using motor_frame.vi now move using the same code as step 1. However, these motors move at every step instead of only when expected.
***Coming from a coding background this seems like a problem with initializing the channels used with the daq board but i'm not sure how this translates to LabView.
I am new to LabView so any advice would be greatly appreciated. Hopefully the above explanation and code below is understandable enough.
07-19-2019 04:48 PM
Hi curious_frog, welcome to LabVIEW!
Are you passing any values between the calls of the two VI's? Like calling one as a sub-vi as another? It does seem kind of strange that you are seeing the seemingly independent runs affect each other.
If you run them in different orders, what happens? It seems like you may have some strange dependencies between runs, but it looks to me like you shouldn't, based on the code.
07-22-2019 01:45 PM
The two programs are completely independent. The only sub vi I use is in 3d_step but it is unconnected to movement and even the analog ports (it deals with digital input/output of sine wave).
The 3d_step vi will not move the motors until the motor_frame gets moved.
Is there possibly something with configuration of ports or something that would lead to the apparent dependency?