Hi there, me again. I think I find the answer: It is related to the Macro EC_SYSTEM_TIME_TOLERANCE_NS in fsm_master.c. Using the configure option --enable-cycles before compiling the master seems to be the simplest way to resolve my problem.
Have a nice day, Jun On Mon, Dec 12, 2011 at 12:51 PM, Jun Yuan <j.y...@rtleaders.com> wrote: > Hi, > > I'm having problem with DC synchron. Sometimes it works, the slave is > in sync. And sometimes it doesn't, there comes the warning in the > master log: Slave did not sync after 5000 ms. What should I do to > improve the stability of the DC Sync? > > in the slave configuration, I did > // configure SYNC signals for this slave > ecrt_slave_config_dc(sc_lti, 0x0300, 4000000, 0, 0, 0); > > $ ethercat slaves -v > === Master 0, Slave 0 === > State: PREOP > Flag: + > Identity: > Vendor Id: 0x00000016 > Product code: 0x00020004 > Revision number: 0x00010000 > Serial number: 0x00000000 > DL information: > FMMU bit operation: no > Distributed clocks: yes, 64 bit > DC system time transmission delay: 0 ns > Port Type Link Loop Signal NextSlave RxTime [ns] Diff [ns] > NextDc [ns] > 0 MII up open yes - 2936198434 0 > 0 > 1 MII down closed no - - - > - > 2 N/A down closed no - - - > - > 3 N/A down closed no - - - > - > Mailboxes: > Bootstrap RX: 0x0000/0, TX: 0x0000/0 > Standard RX: 0x1800/512, TX: 0x1a2e/512 > Supported protocols: CoE > General: > Group: > Image name: > Order number: > Device name: > CoE details: > Enable SDO: yes > Enable SDO Info: yes > Enable PDO Assign: yes > Enable PDO Configuration: yes > Enable Upload at startup: no > Enable SDO complete access: no > Flags: > Enable SafeOp: no > Enable notLRW: no > Current consumption: 0 mA > > > The XML Description of its DC: > <Dc Unknown64Bit="1" UnknownFRMW="1"> > > <OpMode> > > <Name>DcSync</Name> > > <Desc>DC for synchronization</Desc> > > <AssignActivate>#x0300</AssignActivate> > > <CycleTimeSync0 Factor="1">0</CycleTimeSync0> > > <ShiftTimeSync0>0</ShiftTimeSync0> > > </OpMode> > > <OpMode> > > <Name>DcOff</Name> > > <Desc>DC unused</Desc> > > <AssignActivate>#x0000</AssignActivate> > > </OpMode> > > </Dc> > > > > [ 9766.872630] EtherCAT DEBUG 0: Master IDLE thread exiting... > [ 9766.872646] EtherCAT 0: Master thread exited. > [ 9766.872649] EtherCAT DEBUG 0: FSM datagram is f60f4bf4. > [ 9766.872651] EtherCAT 0: Starting EtherCAT-OP thread. > [ 9766.872729] EtherCAT DEBUG 0: Operation thread running with fsm > interval = 1000 us, max data size=11250 > [ 9766.872731] EtherCAT WARNING 0: 1 datagram UNMATCHED! > [ 9766.872733] EtherCAT DEBUG 0: mmap() > [ 9766.872738] EtherCAT DEBUG 0: Vma fault, virtual_address = > b78d6000, offset = 0, page = c276b9a0 > [ 9766.876765] EtherCAT DEBUG 0: Set application start time = 9766876764399 > [ 9766.877265] EtherCAT DEBUG 0: Configuration changed. > [ 9766.877276] EtherCAT DEBUG 0: Writing system time offsets... > [ 9766.885265] EtherCAT DEBUG 0-0: DC system time offset calculation: > system_time=9766879549706 (corrected with 4000000), > app_start_time=9766876764399, diff=-2785307 > [ 9766.885268] EtherCAT DEBUG 0-0: Not touching time offset. > [ 9766.893263] EtherCAT DEBUG 0: Writing system time offsets... > [ 9766.893265] EtherCAT DEBUG 0: Requesting OP... > [ 9766.909264] EtherCAT DEBUG 0-0: Changing state from PREOP to OP. > [ 9766.909282] EtherCAT DEBUG 0-0: Configuring... > [ 9766.920758] EtherCAT DEBUG 0-0: Now in INIT. > [ 9766.920759] EtherCAT DEBUG 0-0: Clearing FMMU configurations... > [ 9766.924758] EtherCAT DEBUG 0-0: Clearing sync manager configurations... > [ 9766.928758] EtherCAT DEBUG 0-0: Clearing DC assignment... > [ 9766.932758] EtherCAT DEBUG 0-0: Configuring mailbox sync managers... > [ 9766.932761] EtherCAT DEBUG 0-0: SM0: Addr 0x1800, Size 512, Ctrl 0x26, > En 1 > [ 9766.932763] EtherCAT DEBUG 0-0: SM1: Addr 0x1A2E, Size 512, Ctrl 0x22, > En 1 > [ 9766.944758] EtherCAT DEBUG 0-0: Now in PREOP. > [ 9767.280771] EtherCAT DEBUG 0-0: SM2: Addr 0x1200, Size 14, Ctrl 0x24, > En 1 > [ 9767.280773] EtherCAT DEBUG 0-0: SM3: Addr 0x1260, Size 14, Ctrl 0x00, > En 1 > [ 9767.284759] EtherCAT DEBUG 0 0:0: FMMU: LogAddr 0x00000000, DomAddr > 0x00000000, Size 14, Tx 14 PhysAddr 0x1200, SM2, Dir out > [ 9767.284762] EtherCAT DEBUG 0 0:0: FMMU: LogAddr 0x0000000E, DomAddr > 0x0000000E, Size 14, Tx 14 PhysAddr 0x1260, SM3, Dir in > [ 9767.288758] EtherCAT DEBUG 0-0: Setting DC cycle times to 4000000 / 0. > [ 9767.292758] EtherCAT DEBUG 0-0: Checking for synchrony. > [ 9767.296758] EtherCAT DEBUG 0-0: Sync after 4 ms: 2779416 ns > [ 9767.300758] EtherCAT DEBUG 0-0: Sync after 8 ms: 2779382 ns > [ 9767.304758] EtherCAT DEBUG 0-0: Sync after 12 ms: 2779345 ns > [ 9767.308758] EtherCAT DEBUG 0-0: Sync after 16 ms: 2779298 ns > [ 9767.312758] EtherCAT DEBUG 0-0: Sync after 20 ms: 2779242 ns > [ 9767.316758] EtherCAT DEBUG 0-0: Sync after 24 ms: 2779181 ns > [ 9767.320758] EtherCAT DEBUG 0-0: Sync after 28 ms: 2779113 ns > [ 9767.324758] EtherCAT DEBUG 0-0: Sync after 32 ms: 2779036 ns > ... > [ 9772.256758] EtherCAT DEBUG 0-0: Sync after 4964 ms: 362619 ns > [ 9772.260758] EtherCAT DEBUG 0-0: Sync after 4968 ms: 360183 ns > [ 9772.264758] EtherCAT DEBUG 0-0: Sync after 4972 ms: 357743 ns > [ 9772.268758] EtherCAT DEBUG 0-0: Sync after 4976 ms: 355303 ns > [ 9772.272758] EtherCAT DEBUG 0-0: Sync after 4980 ms: 352863 ns > [ 9772.276758] EtherCAT DEBUG 0-0: Sync after 4984 ms: 350425 ns > [ 9772.280758] EtherCAT DEBUG 0-0: Sync after 4988 ms: 347988 ns > [ 9772.284758] EtherCAT DEBUG 0-0: Sync after 4992 ms: 345551 ns > [ 9772.288758] EtherCAT DEBUG 0-0: Sync after 4996 ms: 343112 ns > [ 9772.292758] EtherCAT WARNING 0-0: Slave did not sync after 5000 ms. > [ 9772.292760] EtherCAT DEBUG 0-0: app_start_time=9766876764399 > [ 9772.292762] EtherCAT DEBUG 0-0: start_time=9772388764430 > [ 9772.292763] EtherCAT DEBUG 0-0: cycle_time=4000000 > [ 9772.292765] EtherCAT DEBUG 0-0: shift_time=0 > [ 9772.292766] EtherCAT DEBUG 0-0: remainder=31 > [ 9772.292768] EtherCAT DEBUG 0-0: start=9772392764399 > [ 9772.292769] EtherCAT DEBUG 0-0: Setting DC cyclic operation start > time to 9772392764399. > [ 9772.296758] EtherCAT DEBUG 0-0: Setting DC AssignActivate to 0x0300. > [ 9772.308758] EtherCAT DEBUG 0-0: Now in SAFEOP. > [ 9772.308764] EtherCAT 0: Domain 0: Working counter changed to 3/3. > [ 9772.316758] EtherCAT DEBUG 0-0: Now in OP. Finished configuration. > [ 9772.321262] EtherCAT 0: Slave states: OP. >
_______________________________________________ etherlab-users mailing list etherlab-users@etherlab.org http://lists.etherlab.org/mailman/listinfo/etherlab-users