[etherlab-users] Copley Drive w/ Distributed Clocks Drifting
Henry Bausley
hbausley at deltatau.com
Tue Apr 24 23:46:11 CEST 2012
I am working with Copley attempting to use Cyclic Synchronous Torque
Mode at 250usec. We have setup up the distributed clocks w/ Sync0_Cycle
as 250000 and assign activate at 0x330.
What is being seen on the scope is the time at which an EtherCAT frame
arrives eventually drifts into when the Sync0 signal occurs on the
slave. When this occurs the motor glitches since the drive cannot
accept our torque command and provide feedback at this time.
The engineers at Copley were gracious enough to create a pair of outputs
so we could monitor something on the scope. Take a look at the video
clip it displays this better than I can explain it.
The lower signal rising edge occurs at SYNC0 time. The upper signal is
high while receiving an EtherCAT frame.
ftp://support.deltatau.com/DT-USA/Henry/CopleyEtherLAB.mp4
When we monitor the register 0x92C with
watch -n0 "ethercat reg read -p0 -tsm32 0x92c"
we see +/- 2000
Our code is virtually identical to the provided examples except it
operates in an ISR triggered by a custom servo card.
void PhaseISR()
{
static time
ecrt_master_receive
EC_READs
ServoLoopCalcs()
HWClock = GetNanosecHWClock()
if(init_time)
{
clockgettime(&time)
init_time = 0
}
else
{
time += HWClock - HWClockOld
}
HWClockOld = GetNsecHWClock()
Ecrt_master_application_time(time)
Ecrt_master_sync_reference_clock
Ecrt_master_sync_slave_clocks(pshm->ECAT[idxMaster].Master)
EC_WRITEs
Ecrt_domain_queue
Ecrt_master_send
}
My ISR has ~10usec of jitter. I am using RTL8168B PCIe cards with a
PowerPC AMCC460EX 1Ghz CPU.
I don't have the setup in my hands but will be receiving it in a few
days.
Any ideas would be greatly appreciated!!!!!
Outbound scan for Spam or Virus by Barracuda at Delta Tau
More information about the Etherlab-users
mailing list