From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

Motion Control and Motor Drives

cancel
Showing results for 
Search instead for 
Did you mean: 

Application Help

Hi guys,

 

I need help for an appilcation we have here at work. We have a stepmotor (HT23-398D-ZAA) that include a 2000cpr encoder with STR4 drive and a PCI-7334 controller board. We had a UMI-7774 but we broke it and we dont have time/money to invest on this at this moment. Instead we used a SCB-68 and wired it using the controller pinout. After much trial and error trying to make it work it is now fully working (in MAX).

 

Our application use to motor to rotate a propeller. We want to rotate the propeler at the designated position brake for a some distance and then reaccelerate. Nominaly we wanted to do it each turn. So it would be like that : 

Application.PNG

In this application, we need as much torque as we can get. As far as I know, to get the maximum torque possible we need to use the stepmotor in the full step configuration (200/step per rev)? As we need to brake at a certain position, I need to control it in position and not in velocity.I see that I dont really reach my target velocity before it is accelerating again. Is it the reality or it's because I dont have enough resolution on my encoder to make a real measurement on such a short time?

I made a test to show you guys. When I do a test from 1000rpm to 300rpm, the graph show a clean curve but 1000rpm to 900rpm it is not... I would think that it would be easier to only brake from 1000 to 900... Is there something I don't see? I'll also put scope measurment. There is weird behavior in the 1000 to 900 one.

 

1000RPM to 300RPM :

 

 

1000to300.JPGos_1000to300.png

 

 

1000RPM to 900RPM :

 

 

1000to900.JPGos_1000to900.png

0 Kudos
Message 1 of 5
(5,857 Views)

Hi Olivier,

 

In your second set of pictures your RPM is going from 1000 all the way down to 0 instead of 900. Do you know why this is?

 

Would you be willing to post your code in order to hopefully shed some light on what's going on?

0 Kudos
Message 2 of 5
(5,813 Views)

Yeah I saw that too... Thats weird. Here the code.

 

Thank you for your time!

Download All
0 Kudos
Message 3 of 5
(5,792 Views)

After taking a quick look at your code, nothing jumps out at me as being the cause of the issue.

 

The issue may lie in the Velocity Position VI, as that is the only Sub-VI where the Standard and Target Velocity seem to be used. You might try using highlight execution and probes to make sure that your values are being calculated correctly.

Message 4 of 5
(5,768 Views)

Thank you for the hint but it seems to be alright.

 

I have a new theory but I don't know if it's right. I think that the loop is simply to slow to keep up with the small changes of speed. When the change is bigger, there is more iteration of the loop and it appears to be juste fine (but in fact it's still behind) but when I ask for a small change, the motor is already at (or farther) the position asked and just keep spinning of the inertia (STEP signal blank spot) and when the loop come it reaccelerate to continue.

 

I don't know if it makes sense lol...

 

I made a simple (and crude) simulator in excel for my application and as we see, the loop would really need to be fast to be able to keep up.

 

I am now thinking that I would need something like RT or FPGA to obtain what I need.

 

I see that on some motion card you can use onboard programming and buffering. Do you think it would work or it's slower?

 

Thank you for your time!

0 Kudos
Message 5 of 5
(5,714 Views)