Go to Post We're not here to build robots. We're here to build students. - GreyingJay [more]
Home
Go Back   Chief Delphi > Technical > Programming
CD-Media   CD-Spy  
portal register members calendar search Today's Posts Mark Forums Read FAQ rules

 
 
 
Thread Tools Rate Thread Display Modes
Prev Previous Post   Next Post Next
  #12   Spotlight this post!  
Unread 24-02-2002, 16:26
kmcclary's Avatar
kmcclary kmcclary is offline
Founder 830/1015;Mentor 66/470/1502
FRC #0470 (Alpha Omega Robotics)
Team Role: Engineer
 
Join Date: Aug 2001
Rookie Year: 1994
Location: Ann Arbor, MI
Posts: 491
kmcclary has a reputation beyond reputekmcclary has a reputation beyond reputekmcclary has a reputation beyond reputekmcclary has a reputation beyond reputekmcclary has a reputation beyond reputekmcclary has a reputation beyond reputekmcclary has a reputation beyond reputekmcclary has a reputation beyond reputekmcclary has a reputation beyond reputekmcclary has a reputation beyond reputekmcclary has a reputation beyond repute
Quote:
Originally posted by Lloyd Burns
One team near mine only got one pressure switch, so I helped them with a timer. [...] What happens if you have a little leak and never get that high a pressure?
If the leakage is THAT bad, you've got OTHER problems! But to answer your question, the compressor keeps running, and the overpressure valve keeps you limited to 120psi. In any case, two minutes of the compressor running and popping the safety valve isn't going to kill you, nor your battery.

Quote:
Perhaps you should readjust the switch to turn _on_ the compressor at some user-selected lower pressure, and use the software timer to turn it back off. That way, if your pump can get the pressure above the low set point, the pump will turn off sometime, and you'll still have some pressure.
Now it DOES makes sense to use a timer as a failsafe, but it is really not necessary for normal operation. You can simply limit the maximum on time of the pump for any one "air request" and lock it off until either a pressure switch toggles, or a driver "manually override resets it" by some action on the OI such as running an unused thumbwheel up and down once.

Quote:
Originally posted by Joseph F
[Solder] breaks, programs don't.
LOL! You never heard of a program breaking under "unexpected conditions"??? It's called a "bug". (Maybe he's never programmed, nor tried to run a Microsoft product before... ). Seriously though, in industry we more often use HARDWARE to protect us from SOFTWARE bugs than the other way around! Most of the time for cost savings Consumer software only does "sanity checks" to keep an eye on the hardware, and simply alerts the user to problems. In military and automotive programming though we do often spend the extra time, money, and effort to try to "program around failed hardware".

Quote:
{I'm worried about [solder] joints failing, and here are the failure modes} [...]
Actually, a good solder joint is VERY reliable, as long as you have a good mechanical initial connection before soldering, and strain relief on the harness. In fact, they'll normally far outlast the rest of the system (including the computer) by decades!

BTW... That's not how a two switch system works, nor how it would fail.

You have a one bit variable as a "memory", that decides if the pump should run or not. It will be sent to the pump control at the end of each main loop. For system insurance in case everything fails, you initially set it to ON in the initialization routine so in the absence of any other signal it tries to start up.

During the loop, the High switch turns the pump bit OFF when pressure EXCEEDS it's setpoint. The Low switch turns it ON when it drops BELOW its set point. Between it the "memory" keeps the same condition. This gives you your hysteresis. The Low and High switches are set at something like 110 and 120 PSI respectively, so if you have a failure mode that causes an oscillation around EITHER ONE, you're still fine.

Seriously though, you're talking only TWO solder joints per switch. That's EASY to inspect. You can use input bits on opposite ends of the connector if you're nervous. If you're uncomfortable soldering, just let someone who is used to doing it make the joints. Now for the switch, just make sure you add some lock washers under the switch screws, and that will be secure.

If I remember correctly, these are normally closed switches that open when you exceed the pressure on a diaphragm. Switches CAN fail open or closed mechanically, but the most likely failure mode will be open from a loss of a connection, with a failed closed condition from a diaphragm break in the switch running a FAR second place. These switches are designed for millions of operations, and the mechanics in them don't break often.
Shorted electrical connections would normally be obvious during testing.

Let's look at the failure modes:

CASE 1 - HIGH switch disconnects or fails OPEN: depending on which switch is checked first in your logic, the pump either never starts up, or the pressure oscillates around the low pressure switch's pressure. Assuming you've set the low switch to something like 110 PSI (10 PSI hysteresis), if it is oscillating around that value you've still got FULL pressure to do things because the rules say your pneumatics must run at 60 PSI max. However you ARE allowed to start with full pressure, so if you set the logic so that this mode causes full failure and this happened before the start of the round, you'd notice your pump wasn't running then and have a chance to fix it. If it happens DURING the round and your pneumatics are only used for deployment and not motion, then given enough air storage you may not even NOTICE things stopping! Either way, no robot damage.

CASE 2 - HIGH Switch shorts or fails CLOSED: The pump keeps running, and the safety valve keeps popping, limiting the pressure limited to 120 PSI. That is noticeable, but your robot keeps running just fine. This won't damage the pump. For two minutes, since it won't even stall the pump from overpressure, it probably won't even impact your battery significantly. No robot damage, and you keep running just fine.

CASE 3 - LOW Switch disconnects or fails OPEN: Depending on the logic, either the pump never starts up, or else you go up ONCE, but never turn back on again after the first fillup when the pressure comes down. Similar situation to Case 1.
No robot damage, and you may not even notice it at first.

CASE 4 - LOW Switch connection shorts or fails CLOSED: The pump will run up to the high pressure once, then oscillate around the high pressure switch. This case DOES use up more battery, but again you've got full pressure so the robot runs fine. As before, no damage, and this would be noticeable on the Tether so you can correct it for the next round.

NONE of these situations are destructive to the robot, and you can operate just fine in several of them. You can INSTANTLY tell which switch failed by the pressure it oscillates around, if it doesn't restart, or it doesn't shut off and pops the valve.

If you've added enough air storage, and only use the pneumatics for "deployment" instead of something cyclical like "walking", there's a good chance you may not even run out of air before the round ends.

I still feel two switches is MUCH simpler. However, I do like your concept of using timers to limit effects as a backup.

Of course if you wish (and are REALLY bored), you can always review each case, and create the logic to test and handle error cases. For example, if you see the LOW switch thinks the pressure is too low AND the HIGH switch thinks it is too high, something is not right. Watching which one the pressure toggles around tells you the OTHER switch failed, and you fall back to a timer method using the good switch. The two switches now gives you REDUNDANCY.

But that makes the whole simple thing complicated again! The point here is that using two switches is SIMPLE, and it won't damage anything in ANY of the failure cases.

If you are REALLY worried about an automatic pressure control failing, then simply give your driver an "override switch". You run a "monitor" timer in the RC, and have it turn on a driver's LED if the program thinks the pump "has run too long". The driver then has an ON/OFF/ON SPDT Override Switch for manual pump control. Run the center to ground, and each of the two ends to to an input bit on the OI. Center = "Automatic", up = Manual On, and down = Manual Off. You can also do this with an unused thumbwheel as well by dividing its possible position value into thirds.

- Keith McClary, Advisor Huron High 830 Rat Pack
__________________
Keith McClary - Organizer/Mentor/Sponsor - Ann Arbor MI area FIRST teams
ACTI - Automation Computer Technologies, Inc. (Sponsoring FIRST teams since 2001!)
MI Robot Club (Trainer) / GO-Tech Maker's Club / RepRap-Michigan) / SEMI CNC Club
"Certifiably Insane": Started FIVE FRC teams & many robot clubs (so far)!
2002: 830 "Rat Pack" | 2003-5;14: 1015;1076 "Pi Hi Samurai" | 2005-6: 1549 "Washtenuts"/"Fire Traxx"
2005-(on): 1502 "Technical Difficulties" | 2006-(on): FIRST Volunteer!
2009-(on): 470 "Alpha Omega" | WAFL | Sponsor & "Floating Engineer" for MI Dist 13 (Washtenaw Cnty)
2011: 3638 "Tigertrons" | 2013-(on): 4395 "ViBots" | 2014-(on) 66 "Grizzlies"
"Home" Teams: 66, 470, 1076, 1502, 4395
Local FIRST alumni at or coming to Ann Arbor (UM/EMU/WCC/Cleary)?
...We Want YOU as a Mentor! Please email me for info!
Support CDF Reputation - If a posting helped, thank 'em with rep points!
"It must be FRC build season when your spouse and children become 'Action Items 8 & 9'..."
 


Thread Tools
Display Modes Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
Why can't you use 255 in PWM? Andrew Technical Discussion 4 29-05-2003 14:50
variable? manodrum Programming 11 01-04-2003 17:20
Dashboard programs and the char variable Ian W. Programming 13 26-06-2002 02:07
what teams have a variable transmissions? Greg Perkins Technical Discussion 4 06-03-2002 06:10
Pbasic argument question... Ghetto_Child Programming 10 18-02-2002 09:23


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

The Chief Delphi Forums are sponsored by Innovation First International, Inc.


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