In this video we’ll see how easy it is to program the Productivity3000 High Speed Output Module, or “HSO” to move this carriage back and forth along this rail using a Sure Step stepper motor. Here’s a block diagram of the system.
The productivity3000 is connected to a Stride Ethernet Switch. The Stride Ethernet switch is connected to a remote slave and that remote slave has both the high speed input and a high speed output module. In this video we’ll just use the High Speed Output Module. That module is connected through a zip link connector system, to a sure step stepper motor driver. That motor driver is connected to a stepper motor, which is driving the screw, which moves the carriage.
At the far end of the screw we have an encoder - which we are not going to use in this video – but we will use it in the high speed input module video.
To get going, all we do is auto-discover the hardware, configure the High Speed Output Module, and use it. Here we go …
Here we have a new empty project, and we are online with the controller.
We’ll just double click on Hardware Configuration, and we want to auto-discover the configuration by hitting this Read Configuration button. Notice the little yellow note that pops up when my cursor hits that button. It says this button is only available in STOP mode. In other words, I must be in RUN, and sure enough I am, let’s go ahead and put it in stop mode. And now my configuration button comes available.
The software is going out and auto-discovering all of the hardware I have connected in the system right now. Now it’s going to inform me about all the new hardware it found.
I really don’t care so I’m going to say yes to all and be done with it. Looks like I have two groups of equipment here. One is my local base and one is my remote base. My local base has an input simulator and some miscellaneous modules in it. And my remote has both the HSI and HSO modules in it.
So that was Step 1 – Auto-discover the hardware.
Step 2: We want to configure this HSO card, so we just double click on it. Let’s give the module a name – we’ll call it HSO DEMO. And we’re going to use channel 1 for this video. There are two channels here, we only need one. This will be our carriage channel.
We could do all of our moves using Pulse Counts. The stepper motor system we are using here has 20,000 pulses per revolution, and we could just use that to specify all of our distances. But it sure would be a whole lot easier if we could just use inches or millimeters.
Well, with the Productivity3000 that’s easy. We come down here to the custom button, and let’s do this one in millimeters. And I know from doing some measurements that there 2666 pulses per millimeter. We’ll look – now that I have done this, everything from here forward will be done in millimeters. Look, even the dialog has changed so that all of the units are in millimeters now.
So for example, my current position, is now in millimeters. In fact, I’m going to put an mm here just to remind myself. My velocity is in millimeters per second and my carriage status.
There are a number of other options here that you can use to customize this for your particular application. For this little video I want the motion from left to right to be positive distance. So to do that, I need to invert the polarity. Note that you can specify output limits on all of your accelerations and velocities. That’s a really important safety feature to have because it will prohibit the system from going beyond whatever limits you set. We’re not going to mess with those right now, just beware that they are there.
OK, I think we are good to go.
All we did was change our custom units, defined some tags to keep track of the position, velocity and status and we inverted the polarity. Done.
The Software recognized that we created some new tags and is asking us if we want to add those to the tag database. We do.
And that’s all there is to configuring the hardware.
Let’s expand this so you guys can see it. I’m going to go find the High Speed Module commands right here. And we are going to grab a simple move, and drop it on a rung.
Now, because we only have one HSO module, the software knew to drop that in there. And it even guessed the right channel for us.
We’ll go ahead and use Absolute addressing right now, we’ll come back and show you relative in just a minute.
Let’s setup some profile parameters here. This will be our profile target. And our profile Velocity. And our profile acceleration, and our profile deceleration.
This Jerk parameter allows you to change these linear ramps into something that looks more like an S-Curve profile. We don’t need that right now, but check out the help file if you want to know more about it.
When we disable the instruction I want this thing to come to an immediate stop – rather than decelerate to a stop. And let’s go ahead and create some tags for these guys. This will be our profile progress, our profile complete and our profile status.
Looks like we are good so we hit OK. The software recognizes we created some new tags, and it even recommended a data type for them. These all look great to me so I am going to say OK. And then I’m going to go back into that dialog – and now that these tags have been setup – I can hit this monitor button. What that’s going to do is take all of those tags and drop them into a data view for me. That saves me a lot of typing later.
Now, I can’t have an END statement before my instructions, let me go ahead and delete these. And now our instruction appears on rung 1. That’s great.
Now we need to enable the instruction. I want to use the switches on that input simulator on the local base to control this. So let’s go ahead and set those up.
Go back to Hardware Configuration, on my local base, here’s my input simulator. And I want switch 1 – this guy right here – to enable the move. Carriage Enable.
And I want the switch next to it – which is switch 9 – 1, 2, 3, 4, 5, 6, 7, 8 and 9 – I want him to set the zero for me. That will give me a convenient way to calibrate this thing.
Great, that’s all there is to setting up the hardware.
So now, if I go grab a contact, drop it in here, grab my enable, and say OK, I now have a way of enabling this instruction.
While we are at it, let’s go ahead and setup our zero function. To do that, I go back down to my High Speed Commands, and I say “Set Position.” When this rung in enabled, I want to set the position to zero.
To enable that rung, we go grab that other switch we setup, to zero things out.
That’s it – that’s the whole program.
Let’s transfer this down to our processor. Turn on monitoring so we can see what is going on. And bring up the data view so we can adjust some of those parameters.
There’s all of those parameters that got pre-loaded for us.
So let’s see, we want our target – let’s head out, oh I don’t know – how about 150 mm. And let’s setup our acceleration at 50, deceleration also at 50, and our velocity at 25 millimeters per second. Select all of those, write them out, and verify that the values actually got written to memory – and they did – and we should be ready to go.
All we have to do now is put the controller into RUN mode, are we sure, yes we are, and we are ready to go.
So the first thing I want to do is I want to flip this switch to make sure I am starting at a position of zero. So I’ll reach over, flip that switch, it turns green, turn it back off. My position is now set to zero.
Because we switched over to run mode, it cleared all of those locations we set earlier. That’s ok, I just highlight them, all of my edit values are still there. I just re-write them out. No big deal.
Now that those are all there, we can reach down and hit our carriage enable, and the carriage moves down the rail 150 mm and ramps to a stop.
If I want to move back to zero, I set my target value to zero, and let’s speed up our velocity a little bit, let’s double it to 50. Disable the carriage – re-enable it – and he carriage moves back to zero.
Those were absolute moves. The carriage moved right to the position I told it to.
What if we wanted to move 75 mm from where we are? That’s easy, we just go back into our Simple Move, specify relative and I want to be sure to use the sign of the target as my direction indicator. I say OK, re-download this to the controller, we’ll do a Run Time transfer – that’s fine – and we are ready to go.
So let’s set a new target of 75 millimeters from here. At that velocity, those ramp rates, those all look good. Write the value out.
Now when we enable the carriage, I ramps up and moves to 75 millimeters. Now if I enable the carriage again, it’ll move another 75 millimeters because this is a relative move. It’s going to move 75 millimeters from where I currently am. If this was an absolute move, it would just stay where it’s at because I am already at 75 millimeters.
So let’s try it, I’ll flip the switch, and sure enough, it moves another 75 millimeters.
To move backwards, we just change the sign. Let’s go backwards 100 millimeters. Write that out. Enable the instruction, and sure enough it moves backwards 100 millimeters.
There are a lot more options to play with, but that should be enough to get you started using motion with the Productivity 3000’s HSO module.
Be sure to check out the other videos in this series for more ways to get up and running quickly with this controller. And as always, please send us any comments you may have, we appreciate the feedback.
Performance plus Value … That’s Productivity.