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

Reply via email to