Update: I changed the order of the loadrt, addf, and any lines to do with the reset related oneshot to be at the top of the HAL file and it seems to "work" now. More testing maybe required. It's unclear to me which of these items (or all?) are important in terms of order and how order of all things in HAL is determined.
Still doesn't give enough time between the servo reset and checking servo status, but just pressing machine on again does the trick. On Tue, 09 May 2017 02:59:54 -0400, David Berndt <[email protected]> wrote: > Hello all, > > Sorry to disturb the email list with this, normally I'd post to the > forum but it seems to be pretty unreliable lately. > > I'm pretty new to this, so the solution to this might be obvious. But at > this time it isn't to me. Any help would be appreciated. > > My current situation is I'm trying to get me e-stop/motion stop/etc > stuff sorted out and I've found that one of my servo drives throws a bit > of a fit when power is removed from the motor power side of the drive, > and then restored some time later such that the internal caps have had > time to leak down. Once power is restored the drive should be good to > go, it throws no visible errors/alarms/warnings but fails to put it's > Servo on/Servo Ready output back to on. > > My HAL is and2'ing the Servo Ready and the Servo warning (limit > switches, etc) from the drive together and inputting that into the > axis.N.amp-fault. Which is working great in all cases except this > particular one. > > I've fiddled with the drive settings quite a bit and it seems it's > simply working as designed/implemented and there is no > setting/switch/magic beans to change this behaviour on the drive side. > > So what I'd like to do is to send an alarm reset signal to the servo > drive before machine power on (F2) does anything like check for enabled > amps, so that the drive could clear it's alarm and go Servo Ready. > > I've tried to attach a oneshot to halui.machine.is-on, but in this error > case according to halscope it never fires, possibly because the machine > is never in the is-on state long enough (or at all) when there is a > servo fault. It's not clear to me how I could arrange the oneshot to > happen much earlier? or to intercept the power-on command and do some > stuff then, then allow it to resume, or whatever the process might be? > Note that the oneshot code is likely correct/functional as I can see it > firing in all the other cases (for instance when there is no servo > error, but the machine is transitioning to the is-on state), it's just > likely not dispatched in the order it needs to be. > > Perhaps another solution would be to run somewhere, possibly in a new > loop, a check to see if the machine is off, and if so send an alarm > reset to the drive, every 5 seconds or something would be fine. It's > pretty unlikely that an operator could get from enabling the drives via > e-stop/motion stop switches to pressing machine on in the gui/keyboard > in less than a few seconds. This sounds less ideal and I'm still not > really sure how to implement that either... > > Regards, > Dave ------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot _______________________________________________ Emc-users mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/emc-users
