Although the configuration data is (should be) ok, servos still don't go OP. After configuring with ethercat-tool and starting system (start halrun, load modules, load lcec_conf, start) everything else seems to work according to dmesg (ec_master debuglevel set to 1) but synchronising.. well, it's interesting. I plotted all "EtherCAT DEBUG 0-0: Sync after x ms: y ns" output in following picture:
Looks like the system doesn't even try to synchronize? From what I see, I guess the servo configuration is reset and DC is simply not running?
Code:
EtherCAT: Requesting master 0...
EtherCAT DEBUG 0: IDLE -> OPERATION.
EtherCAT: Successfully requested master 0.
EtherCAT DEBUG 0: ecrt_master_callbacks(master = 0xf3788000, send_cb = 0xfafcd029, receive_cb = 0xfafcd02e, cb_data = 0xf26de640)
EtherCAT DEBUG 0: ecrt_master_create_domain(master = 0xf3788000)
EtherCAT DEBUG 0: Created domain 0.
EtherCAT DEBUG 0: ecrt_master_slave_config(master = 0xf3788000, alias = 0, position = 0, vendor_id = 0x00000002, product_code = 0x14516012)
EtherCAT DEBUG 0: Creating slave configuration for 0:0, 0x00000002/0x14516012.
EtherCAT DEBUG 0 0:0: Attached slave 0.
EtherCAT DEBUG 0 0:0: ecrt_slave_config_dc(sc = 0xf419c000, assign_activate = 0x0730, sync0_cycle = 250000, sync0_shift = 50000, sync1_cycle = 2000000, sync1_shift = 0
EtherCAT DEBUG 0: ecrt_domain_reg_pdo_entry_list(domain = 0xf2ff9fc0, regs = 0xf2e5b0c0)
EtherCAT DEBUG 0: ecrt_master_slave_config(master = 0xf3788000, alias = 0, position = 0, vendor_id = 0x00000002, product_code = 0x14516012)
EtherCAT DEBUG 0 0:0: ecrt_slave_config_reg_pdo_entry(sc = 0xf419c000, index = 0x0086, subindex = 0x00, domain = 0xf2ff9fc0, bit_position = 0xfaf811c8)
EtherCAT DEBUG 0: Domain 0: Added 12 bytes, total 12.
EtherCAT DEBUG 0: ecrt_master_slave_config(master = 0xf3788000, alias = 0, position = 0, vendor_id = 0x00000002, product_code = 0x14516012)
EtherCAT DEBUG 0 0:0: ecrt_slave_config_reg_pdo_entry(sc = 0xf419c000, index = 0x0024, subindex = 0x00, domain = 0xf2ff9fc0, bit_position = 0xfaf812a8)
EtherCAT DEBUG 0: ecrt_master_slave_config(master = 0xf3788000, alias = 0, position = 0, vendor_id = 0x00000002, product_code = 0x14516012)
EtherCAT DEBUG 0 0:0: ecrt_slave_config_reg_pdo_entry(sc = 0xf419c000, index = 0x0086, subindex = 0x00, domain = 0xf2ff9fc0, bit_position = 0xfaf81388)
EtherCAT DEBUG 0: ecrt_master_slave_config(master = 0xf3788000, alias = 0, position = 0, vendor_id = 0x00000002, product_code = 0x14516012)
EtherCAT DEBUG 0 0:0: ecrt_slave_config_reg_pdo_entry(sc = 0xf419c000, index = 0x0024, subindex = 0x00, domain = 0xf2ff9fc0, bit_position = 0xfaf81468)
EtherCAT DEBUG 0: ecrt_master_slave_config(master = 0xf3788000, alias = 0, position = 0, vendor_id = 0x00000002, product_code = 0x14516012)
EtherCAT DEBUG 0 0:0: ecrt_slave_config_reg_pdo_entry(sc = 0xf419c000, index = 0x0087, subindex = 0x00, domain = 0xf2ff9fc0, bit_position = 0xfaf81548)
EtherCAT DEBUG 0: Domain 0: Added 12 bytes, total 24.
EtherCAT DEBUG 0: ecrt_master_slave_config(master = 0xf3788000, alias = 0, position = 0, vendor_id = 0x00000002, product_code = 0x14516012)
EtherCAT DEBUG 0 0:0: ecrt_slave_config_reg_pdo_entry(sc = 0xf419c000, index = 0x0033, subindex = 0x00, domain = 0xf2ff9fc0, bit_position = 0xfaf81628)
EtherCAT DEBUG 0: ecrt_master_slave_config(master = 0xf3788000, alias = 0, position = 0, vendor_id = 0x00000002, product_code = 0x14516012)
EtherCAT DEBUG 0 0:0: ecrt_slave_config_reg_pdo_entry(sc = 0xf419c000, index = 0x0087, subindex = 0x00, domain = 0xf2ff9fc0, bit_position = 0xfaf81708)
EtherCAT DEBUG 0: ecrt_master_slave_config(master = 0xf3788000, alias = 0, position = 0, vendor_id = 0x00000002, product_code = 0x14516012)
EtherCAT DEBUG 0 0:0: ecrt_slave_config_reg_pdo_entry(sc = 0xf419c000, index = 0x0033, subindex = 0x00, domain = 0xf2ff9fc0, bit_position = 0xfaf817e8)
EtherCAT DEBUG 0: ecrt_master_activate(master = 0xf3788000)
EtherCAT DEBUG 0: Adding datagram pair with expected WC 3.
EtherCAT 0: Domain0: Logical address 0x00000000, 24 byte, expected working counter 3.
EtherCAT 0: Datagram domain0-0-main: Logical offset 0x00000000, 24 byte, type LRW.
EtherCAT DEBUG 0: Stopping master thread.
EtherCAT DEBUG 0: Master IDLE thread exiting...
EtherCAT 0: Master thread exited.
EtherCAT DEBUG 0: FSM datagram is f3788488.
EtherCAT 0: Starting EtherCAT-OP thread.
EtherCAT DEBUG 0: Operation thread running with fsm interval = 4000 us, max data size=45000
EtherCAT WARNING 0: 248 datagrams UNMATCHED!
EtherCAT DEBUG 0-0: Processing register request...
RTAPI: ERROR: Unexpected realtime delay on task 1
This Message will only display once per session.
Run the Latency Test and resolve before continuing.
EtherCAT DEBUG 0: Datagram f3788520 already queued (skipping).
--- repeated 15 times ---
EtherCAT DEBUG 0: UNMATCHED datagram:
EtherCAT DEBUG: 05 18 01 00 10 09 04 80 00 00 E8 B9 25 04 01 00
--- type repeated 15 times ---
EtherCAT DEBUG 0: Configuration changed (aborting state check).
EtherCAT DEBUG 0-0: Checking system time offset.
EtherCAT DEBUG 0-0: Register request successful.
EtherCAT DEBUG 0-0: DC 32 bit system time offset calculation: system_time=3933703680 (corrected with 4000000), app_time=529501164825473000, diff=454844904
EtherCAT DEBUG 0-0: Setting time offset to 454844904 (was 0)
EtherCAT DEBUG 0: Requesting OP...
EtherCAT DEBUG 0-0: Changing state from PREOP to OP.
EtherCAT DEBUG 0-0: Configuring...
EtherCAT DEBUG 0-0: Now in INIT.
EtherCAT DEBUG 0-0: Clearing FMMU configurations...
EtherCAT DEBUG 0-0: Clearing sync manager configurations...
EtherCAT DEBUG 0-0: Clearing DC assignment...
EtherCAT DEBUG 0-0: Configuring mailbox sync managers...
EtherCAT DEBUG 0-0: SM0: Addr 0x1800, Size 128, Ctrl 0x26, En 1
EtherCAT DEBUG 0-0: SM1: Addr 0x1A00, Size 128, Ctrl 0x22, En 1
EtherCAT DEBUG 0-0: Assigning SII access to PDI.
EtherCAT DEBUG 0-0: Now in PREOP.
EtherCAT DEBUG 0-0: Assigning SII access back to EtherCAT.
EtherCAT DEBUG 0-0: SM2: Addr 0x1000, Size 12, Ctrl 0x24, En 1
EtherCAT DEBUG 0-0: SM3: Addr 0x1100, Size 12, Ctrl 0x22, En 1
EtherCAT DEBUG 0 0:0: FMMU: LogAddr 0x00000000, Size 12, PhysAddr 0x1000, SM2, Dir out
EtherCAT DEBUG 0 0:0: FMMU: LogAddr 0x0000000C, Size 12, PhysAddr 0x1100, SM3, Dir in
EtherCAT DEBUG 0-0: Setting DC cycle times to 250000 / 2000000.
EtherCAT DEBUG 0-0: Checking for synchrony.
EtherCAT DEBUG 0-0: Sync after 0 ms: 48281492 ns