Chief Delphi

Chief Delphi (http://www.chiefdelphi.com/forums/index.php)
-   Programming (http://www.chiefdelphi.com/forums/forumdisplay.php?f=51)
-   -   Pneumatics Programming (http://www.chiefdelphi.com/forums/showthread.php?t=25581)

KWalsh 18-02-2004 22:11

Pneumatics Programming
 
Hi,

Can someone tell me how to go about programming multiple pneumatics? And how to assign them buttons on the joystick? Newb question brought to you by Team 1191, if someone could help it would be greatly appreciated, thanks

KenWittlief 18-02-2004 22:15

Re: Pneumatics Programming
 
what do you want them to do? usually you program each solonoide to trigger on a different joysitck button, or switch on a custom control box.

Astronouth7303 18-02-2004 22:21

Re: Pneumatics Programming
 
We're doing a multi-pos. system, but yes, same thing.

KenWittlief 18-02-2004 22:32

Re: Pneumatics Programming
 
have you seen the thread on multipositioning with pneumatics? I think most of the details were covered there.

Chris Fultz 18-02-2004 22:46

Re: Pneumatics Programming
 
Check the White Papers section also, in the Technical group.
There is a sketch of a layout circuit -

ngreen 18-02-2004 23:04

Re: Pneumatics Programming
 
We programmed our last year to extend when we held one button. Makes it both extend and turns the other solenoid on. And stop when we let go. Retract was the same, just on a different button. As for programming specifics I can't answer anything.

Astronouth7303 19-02-2004 07:36

Re: Pneumatics Programming
 
Yes, That is simlest.

Our idea was using a pot for 'Target' position and using a sensor with 2 solenoids to make it stop.
Like:
Code:

Const Arm_Upper_Stop as Unsigned Int = 150
const Arm Upper_Catch as unsigned int = 140
Const Arm_Upper_Range as Unsigned Int = 130
Const Arm_Target as Unsigned Int = 125
Const Arm_Lower_Range as Unsigned Int = 120
const Arm_Lower_Catch as Unsigned Int = 110
Const Arm_Lower_Stop as Unsigned Int = 100

void inter_ArmSensor(void)
{
 Static iPrevValue as unsigned int
 
 //Continue after catchup
 if (iPrevValue >= Arm_Upper_Stop & ArmSensor < Arm_Upper_Catch)
  {ArmMotor_Go;}
 if (iPrevValue <= Arm_Lower_Stop & ArmSensor > Arm_Lower_Catch)
  {ArmMotor_Go;}
 
 //Emergancy Stops
 if (ArmSensor >= Arm_Upper_Stop)
  {ArmMotor_Stop;}
 if (ArmSensor <= Arm_Lower_Stop)
  {ArmMotor_Stop:}
 
 //Start Cylinder
 if (ArmSensor >= Arm_Upper_Range)
  {ArmCylinder_Out;}
 if (ArmSensor <= Arm_Lower_Range)
  {ArmCylinder_In;}
 
 //Stop Cylinder
 if (ArmSensor < Arm_Upper_Range)
  {ArmCylinder_Stop;}
 if (ArmSensor > Arm_Lower_Range)
  {ArmCylinder_Stop;}
}

But I have a more efficient idea. ;)

ngreen 19-02-2004 08:46

Re: Pneumatics Programming
 
You could use one of the magnectic sensor actuators from bimba and control the cyclinder based on the position of the piston throw. That would be simple and super efficient. I don't know how much more these cyclinders weigh but I doubt it could be much.

Ryan M. 19-02-2004 09:17

Re: Pneumatics Programming
 
Quote:

Originally Posted by Astronouth7303
Yes, That is simlest.

Our idea was using a pot for 'Target' position and using a sensor with 2 solenoids to make it stop.
Like:
Code:

Const Arm_Upper_Stop as Unsigned Int = 150
const Arm Upper_Catch as unsigned int = 140
Const Arm_Upper_Range as Unsigned Int = 130
Const Arm_Target as Unsigned Int = 125
Const Arm_Lower_Range as Unsigned Int = 120
const Arm_Lower_Catch as Unsigned Int = 110
Const Arm_Lower_Stop as Unsigned Int = 100

void inter_ArmSensor(void)
{
 Static iPrevValue as unsigned int
 
 //Continue after catchup
 if (iPrevValue >= Arm_Upper_Stop & ArmSensor < Arm_Upper_Catch)
  {ArmMotor_Go;}
 if (iPrevValue <= Arm_Lower_Stop & ArmSensor > Arm_Lower_Catch)
  {ArmMotor_Go;}
 
 //Emergancy Stops
 if (ArmSensor >= Arm_Upper_Stop)
  {ArmMotor_Stop;}
 if (ArmSensor <= Arm_Lower_Stop)
  {ArmMotor_Stop:}
 
 //Start Cylinder
 if (ArmSensor >= Arm_Upper_Range)
  {ArmCylinder_Out;}
 if (ArmSensor <= Arm_Lower_Range)
  {ArmCylinder_In;}
 
 //Stop Cylinder
 if (ArmSensor < Arm_Upper_Range)
  {ArmCylinder_Stop;}
 if (ArmSensor > Arm_Lower_Range)
  {ArmCylinder_Stop;}
}

But I have a more efficient idea. ;)

If anyone uses that make sure to change the Consts to lowercase. (Horrible error, Astronouth. ;))


All times are GMT -5. The time now is 04:22.

Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright © Chief Delphi