[etherlab-users] Detecting whether an amp has repowered
Graeme Foot
GraemeF at touchcut.com
Sat May 26 07:54:29 CEST 2012
Hi,
I would like to detect whether my Yaskawa SGDV amps have been repowered
(as opposed to just a loss of communication). Is there any way to
nicely do so?
The amps have 32bit DC clocks so I can't tell based on the clock time.
What I was thinking I could do was:
- Set a unused value to a random number on startup (via an sdo)
- Read the value via a pdo
If communications are up but the pdo based value does not match the
random number then the amp has been repowered. (Needs to be a random
number incase the amp settings get saved).
The reason I would like to do this is that our amps/motors have
incremental encoders so if power is lost the axis position gets reset to
zero. However subsequent axes in the EtherCAT chain also loose
communications, but not their positions. Rather than having to rehome
the entire machine if there is a loss of comms to the amps I would only
like to rehome the repowered ones.
This situation is particularly relevant when commissioning the machine
where changing certain configuration parameters requires the amps to be
repowered. It is also relevant where we have some remote axes which may
either loose comms or power and I need to know which case it is.
Also, to really quickly detect that an amp has lost comms I'm reading
the amps error code value via a pdo. If the amp misses a frame the read
values do not get written by the amp. So just before I queue and send
the amps domain information I set each amps errorcode in the domain data
to a value of 0xFFFF. Once I receive the response if the value is still
0xFFFF then the amp has had a comms error.
Is this a good way to do it, or is there a better way?
Regards,
Graeme.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.etherlab.org/pipermail/etherlab-users/attachments/20120526/0e3f5fa0/attachment-0002.htm>
More information about the Etherlab-users
mailing list