7i76e and selective drive fault detection during drive initialization

More
7 years 7 months ago #128343 by andypugh

azrockcrawler wrote: After posting that book chapter and pondering the problem, I chose to use debounce.


That was my first idea too.

Something using "oneshot" might be better,

Maybe a oneshot triggered by the system going live (ie triggered by halui.machine.is-on)
linuxcnc.org/docs/2.7/html/man/man9/oneshot.9.html
Use the out-not (active low) output and an and2 component to mask the fault input briefly.

The advantage here is that the delay is only there at power-up rather than at all times.

That said, a 25mS delay in responding to a drive fault is unlikely to be a problem, how far can the machine travel in that time?

Please Log in or Create an account to join the conversation.

More
7 years 7 months ago #128347 by azrockcrawler
Thank you all for the input.

@Todd: Yeah, that could work. I missed the tristate_bit and oneshot somehow. I may try this first. I would prefer not to have a 25ms delay in the e-stop chain for the drive alarm.

@bevins: I wondered about CL also, just haven't ventured into that space yet. I think that could work, the problem is, guaranteeing that the CL timer and relay are in place before the drive blips the alarm. I think that should be no problem.

Thanks again.

Barry

Please Log in or Create an account to join the conversation.

More
7 years 7 months ago #128378 by azrockcrawler
Andy,

You and Todd have similar ideas. I missed the oneshot and tristate logic components and I think this is just what I was after.

Movement over 25ms is like between 20 and 50 thou at wildly optimistic rapid speeds and immensely less than that at regular cutting speeds so...that's why the inline delay works fine in practice. It just assaults my fragile sensibilities.

I think I'll change it to the suggested approaches using oneshot and tristate just for the exercise and to make the universe right again.

Thanks again for the help.


Barry

Please Log in or Create an account to join the conversation.

More
7 years 7 months ago #128426 by pl7i92
you can also use a AND2 logic
Mashine must be on
or a Moving command like
Code:
program halui.program.block−delete.is−on bit out status pin telling that block delete is on halui.program.block−delete.off bit in pin for requesting that block delete is off halui.program.block−delete.on bit in pin for requesting that block delete is on halui.program.is−idle bit out status pin telling that no program is running halui.program.is−paused bit out status pin telling that a program is paused halui.program.is−running bit out status pin telling that a program is running halui.program.optional−stop.is−on bit out status pin telling that the optional stop is on halui.program.optional−stop.off bit in pin requesting that the optional stop is off halui.program.optional−stop.on bit in pin requesting that the optional stop is on halui.program.pause bit in pin for pausing a program halui.program.resume bit in pin for resuming a program halui.program.run bit in pin for running a program halui.program.step bit in pin for stepping in a program halui.program.stop bit in pin for stopping a program (note: this pin does the same thing as halui.abort)

Please Log in or Create an account to join the conversation.

Time to create page: 0.055 seconds
Powered by Kunena Forum