View Full Version : Programming Pneumatics
Programming using LABVIEW. We are connecting our compressor from a spike relay to DIO port 1, the default code of compressor and solenoid works fine. I do not understand how to incorporate that into the Robot project. The code I wrote did not work . Could someone show a diagram of how the compressor is opened in the begin.vi and in the finish.vi and does it have to be in the teleop.vi?
Vikesrock
12-03-2010, 22:15
In Begin.VI you should have:
Compressor Open -> Compressor Start -> Compressor Refnum Set
Finish.VI should have:
Compressor Refnum Get -> Compressor Stop -> Compressor Close
You don't need anything in Autonomous or Teleop for the Compressor, the Start command spawns a separate thread that runs during both modes.
Ziaholic
12-03-2010, 22:18
Search is your friend ... many threads about this ...
Your explanation is a little "off" ... I hope that in actuality, you are hooking up both an INPUT to DIO-1 from the pressure shut-off switch, and an OUTPUT to Relay-1 (the Spike)
The compressor example has everything you need, and a great diagram on the front panel on the details of wiring it up. Copy the OPEN and REF and START stuff from the example's block diagram into your begin VI. Nothing in teleop. It spawns a task that takes care of turning it on/off.
PS: It only operates while the 'bot is ENABLED.
Do I have to hook up the the pressure switch and relay module and pressure switch channel and the relay channel to the compressor open or just the pressure switch and the relay number.
Do I have to hook up the the pressure switch and relay module and pressure switch channel and the relay channel to the compressor open or just the pressure switch and the relay number.
http://img717.imageshack.us/img717/7299/43427449.png
Vikesrock
12-03-2010, 22:28
The default module for both the switch and relay is slot 4, if this matches your configuration you can leave it unwired, but it doesn't hurt anything to wire in a constant Slot 4 to be sure.
You should wire in a constant for both the switch and relay channel that matches the channel you are using for each on the Digital Sidecar.
EDIT: From the image it looks like you are using controls instead of constants for the module and channel. While this will work if done properly, you probably aren't changing the module and channel very often so a constant is probably more appropriate. Right click on the control and select "Change to Constant"
http://img163.imageshack.us/img163/9664/begini.png
http://img716.imageshack.us/img716/8862/finish.png
Would that be just like tuning the compressor and solenoid.vi?
Vikesrock
12-03-2010, 22:46
That code looks correct for the compressor and for opening the Solenoid reference as well.
One more quick question if my kicker piston only has one solenoid which will extend and then tretract will this code suffice. Meaning when button one is pressed it will pop out and when it is released it would retract.
http://team358.org/files/programming/ControlSystem2009-/LabVIEW/CompressorTeleop.jpg
Vikesrock
12-03-2010, 22:53
If you are using a single acting solenoid the code you have posted will move the cylinder one way when the button is pressed and keep it there as long as the button is held.
The cylinder will move the other way when the button is released and stay there until it is pressed again.
Okay thank you for the help. The electrical team which handles the pneumatics stuff decided to all take a day off. So im trying to learn how everything is hooked up.
Ziaholic
13-03-2010, 22:05
Building on vikesrock's stellar advice, there are 2 common ways to control both sides of an extending/retracting piston.
1) Use 2 Solenoid Channels (see first attached pic).
2) Use a single Spike relay on the DIO sidecar (see 2nd pic)
Both of these assume you are using a 2-channel solenoid.
With option 1, you simply hook up 2 Sol-channel-outputs from the solenoid cRIO module to either side of the solenoid. [edit: to control it with your joystick button, wire it up to where the T/F constant is shown]
With option 2, you individually wire the 2 Red wires from the solenoid's 2 sides to the 2 outputs of the spike, then tie their blacks to each other and to the black from the PDB. On the input-side of the spike, run a fused-red from your PDB to both of them. To extend/retract you need to use the Forward/Reverse commands to the relay, and remember to set them to "Both Directions" when you open them in your Begin.VI [edit: to control it with your joystick button, put the Forward/Reverse constants into a T/F case structure and wire the joystick button to it.]
IMO, #1 is easier and more convenient, but sometimes #2 comes in handy when you are running low on Sol-Outputs.
vBulletin® v3.6.4, Copyright ©2000-2017, Jelsoft Enterprises Ltd.