Forcing an output to be on to a specific position

sxj1988

Member
Join Date
Apr 2014
Location
Rochester, NY
Posts
38
Hi everybody,
Currently working on a school project, I do have a pneumatic robotic muscle setup (so my outputs are digital outputs and they are directional control valves - turn on: retracts muscle - air-in, turn off: extends the muscle - air-out). I have potentiometers (-10V to 10V+) on each of the joints.

My question is how to turn ON an output to move to a specific input parameter?
(So lets say, I want to move joint 2 to be between 5.5V-6V on the potentiometer - what instruction to I need to use to force ON the output to reach the 5.5-6V potentiometer read?)
 
It sounds to me like you need to use different components.
A pneumatic servo valve would do what you want.
If you had directional valves with two solenoids and a closed center position, (solenoid A on - move out, solenoid B on - move in, both off - hold position) you might be able to get acceptable performance. You will have to turn off a solenoid slightly before the potentiometer gets to the target value and adjust the setting so that the muscle stops at the right place. That will only be valid as long as you don't change the system air pressure or the load that the muscle works against.
With the hardware you have, you would have to rapidly cycle a solenoid on and off to hold position. Neither the solenoids nor the PLC outputs will like that.
 
Instruction for what?

Also, help us help you. What's is your IO really like list them in a table format and tell us exactly what the IO does and means. Diagram helps too.
 
You will need to pick up the -10 to 10 VDC signals with an Analog Input module 'owned' by the PLC 'owning' the directional valves.

Read the 'current position' (the Analog Input channel signal value at a given position), determine what direction you want to move the wrist ('target position' > 'current position' or 'target position' < 'current position') and then turn ON the corresponding directional valve; turn the valve OFF when 'target position = 'current position'.

This will be a very crude positioning logic, however, depending of the chosen valves' types and programming timing you could get it pretty 'close' to accurate.
 
I would also recommend a pneumatic servo however since it is a school project I am assuming you have to work with what you have and not make it 'real world'. basically turn output on measure feedback from pot, depending on speed of muscle kill your output prematurely.

however as others have mentioned this will be crude and with only 1 output/valve you may overshoot.

with a second output/valve to bleed off the air you could compensate for overshoot but may end up chattering(rapidly cycling) your outputs/valves, as mentioned you plc and solenoids don't really like this.
 
Using a SLC 500 (5/04 Processor) A4 rack
Slot 1: 1746 - NI8
Slot 2: 1746 - IB16
Slot 3: 1746 - OB16

Slot 1 (1746 - NI8) ANALOG INPUT
I:1/0 - Potentiometer at Axis 1
I:1/1 - Potentionmeter at Axis 2
I:1/2 - Potentionmeter at Axis 3

Slot 2: (1746 - IB16) DIGITAL INPUT
*MC: Microswitch

I:2/0 - MC Switch 1(+X - Trigger)
I:2/1 - MC Switch 2 (-X Trigger)
I:2/2 - MC Switch 3 (+Y Trigger)
I:2/3 - MC Switch 4 (-Y Trigger)
I:2/4 - MC Switch 3 (+Z Trigger)
I:2/5 - MC Switch 4 (-Z Trigger)
I:2/6 - Selector Switch (Vacuum Gripper Trigger)

Slot 3: (1746 - OB16) DIGITAL OUTPUT

O:3/0 - Solenoid Valve A (Air-In)
O:3/1 - Solenoid Valve A (Air-Out - exhaust)
O:3/2 - Solenoid Valve B (Air-In)
O:3/3 - Solenoid Valve B (Air-Out - exhaust)
O:3/4 - Solenoid Valve C (Air-In)
O:3/5 - Solenoid Valve C (Air-Out - exhaust)
O:3/6 - Solenoid Valve D (ON - Vacuum ON, OFF - Vacuum OFF)

*Note: Added flow restrictors both Solenoid A,B and C to control the air-in-out a bit better.

I have only created a small program to test out my outputs to see the movements so far.

-----| |--------------( )----------
I:2/0 O:3/0

(This was done for all the digital inputs/outputs)

As for the Analog Input, I am storing Integer values (N7) and using a LIM instruction to test out the potentiometer.


So the project is a proof-of-concept and it does not need to be precise, it just needs to work somewhat decent in order for another undergraduate student to pick it up as a project in the future.

The goals of this project is to be able to jog the robot using a joystick (thats where the microswitches are for) and by pressing a pushbutton it will start a program in which the robot will go to a certain position to pick an item and drop it off somewhere in the workcell.

So currently what I have in mind is when the user presses the pushbutton it will trigger a JSR instruction to jump to another subroutine, on that subroutine the joints of the robot will move to that limit (potentionmeter between 5 to 6V in axis 2 and 8-10V in axis 1 and etc) and will have to run in sequence until it drops the items to the other part of the workcell.
 
So currently what I have in mind is when the user presses the pushbutton it will trigger a JSR instruction to jump to another subroutine, on that subroutine the joints of the robot will move to that limit (potentionmeter between 5 to 6V in axis 2 and 8-10V in axis 1 and etc) and will have to run in sequence until it drops the items to the other part of the workcell.

That will probably run you up against the watchdog timer.

As far as movement, are you able to put a restriction in the air line to slow the arm? If you can this might avoid some overshoot/hunting.
 
The problem with air cylinders for precision movement is that just because you turn off a valve (output) does not mean it's going to stop moving. You will have to program in some pre-act into each movement where you turn off the output just before it gets to where you really want it to go. I had that problem on a recent project that moved a 1 ton high sheer mixer up and down inside of a 20,000 gallon mix tank, using only an air pressure for up and vent air going down.
 
Thanks for the suggestions. One thing I forgot to mention earlier is that when the Solenoid A (A1) and A(2) are both OFF it holds the position.

All solenoids are 5 way 3 position solenoid valves

Slot 3: (1746 - OB16) DIGITAL OUTPUT

O:3/0 - Solenoid Valve A1 (Air-In)
O:3/1 - Solenoid Valve A2(Air-Out - exhaust)
O:3/2 - Solenoid Valve B1 (Air-In)
O:3/3 - Solenoid Valve B2 (Air-Out - exhaust)
O:3/4 - Solenoid Valve C1 (Air-In)
O:3/5 - Solenoid Valve C2 (Air-Out - exhaust)

As for now I have only created a dummy program using BITS, Timers and Compare instructions to actuate the joints 1-3 in sequence (To turn ON, one by one)from location A then move to location B and turn off all the joints (Joints 1-3).

(I am using RsLogix 500)
As for the program I have used a TON timer and stored values (N7:#).

The program starts by pressing a momentary push button (NO) in which latches an output bit (B3:0/1).

Then added a NO contact (B3:0/1) on with a Timer. (So far the timer has been set to 20 secs - just so I can let the muscles have enough time to extend and retract)

Then the other rungs I used the LIM instruction to turn ON/OFF the Outputs (Joints) in sequence.

I used a LIM instruction to turn ON/OFF those joints
*Values are in seconds
LIM:
LOW: N7:0 (2)
TEST: T4:1.ACC
HIGH: N7:1 (4)

So far it does what it needs to do..however, I need to use the potentiometers to read where are all the joints are located, then re-position the joints to the desired position ("home position"), then pick a part from point A and drop the part at point B.
 

Similar Topics

Hi, im familiar only with Siemens PLC, and now im doing commissioning in unity pro project. So question is that how do I force an analog output...
Replies
7
Views
4,343
Looks like some Fanuc machine controls like 180i, 20i has a way to force output bits. Anybody know how to force output bits ? Thanks for any help.
Replies
0
Views
3,118
Hello all...I'm a newbie with PLCs. What I'm trying to do if possible is to force an analog output to control a damper motor manually...we want...
Replies
9
Views
4,608
Can anyone help. I am trying to force output Q1.0 using the force output option. What instruction should I type in. Thanks Alex
Replies
3
Views
5,468
Dear Fellows; I am working on a very old machine which is designed in GE 90-30 PLC system. I have some difficulties like 1. How a force to...
Replies
3
Views
344
Back
Top Bottom