Skip to content

[ZeroErr eRob] Joint not moving using EcCia402Drive + Joint trajectory position #87

@alesof

Description

@alesof

Hi there!

I am trying to move an actuator using the generic plugin EcCiA402Drive. The device cannot switch to OP state due to a configuration error, can someone provide any help?

The error i get is: AL status message 0x001E: "Invalid input configuration".
The actuator name is: erob ZeroErr

sudo dmseg:

[ 7812.078596] EtherCAT DEBUG 0: Adding datagram pair with expected WC 3.
[ 7812.078597] EtherCAT 0: Domain0: Logical address 0x00000000, 20 byte, expected working counter 3.
[ 7812.078598] EtherCAT 0:   Datagram domain0-0-main: Logical offset 0x00000000, 20 byte, type LRW.
[ 7812.078599] EtherCAT DEBUG 0: Stopping master thread.
[ 7812.078632] EtherCAT DEBUG 0: Master IDLE thread exiting...
[ 7812.078651] EtherCAT 0: Master thread exited.
[ 7812.078652] EtherCAT DEBUG 0: FSM datagram is 0000000088c1f073.
[ 7812.078653] EtherCAT 0: Starting EtherCAT-OP thread.
[ 7812.078815] EtherCAT DEBUG 0: Operation thread running with fsm interval = 4000 us, max data size=45000
[ 7812.078817] EtherCAT DEBUG 0: mmap()
[ 7812.078818] EtherCAT WARNING 0: 1 datagram UNMATCHED!
[ 7812.078820] EtherCAT DEBUG 0: Vma fault, offset = 0, page = 00000000dfd09629
[ 7813.086330] EtherCAT DEBUG 0: Configuration changed.
[ 7813.086333] EtherCAT DEBUG 0-0: Checking system time offset.
[ 7813.106353] EtherCAT DEBUG 0-0: DC 64 bit system time offset calculation: system_time=751649702317787824 (corrected with 16000000), app_time=751649702316035076, diff=-1752748
[ 7813.106356] EtherCAT DEBUG 0-0: Setting time offset to 751641523853848985 (was 751641523855601733)
[ 7813.122353] EtherCAT DEBUG 0: Requesting OP...
[ 7813.162369] EtherCAT DEBUG 0-0: Changing state from PREOP to OP.
[ 7813.162374] EtherCAT DEBUG 0-0: Configuring...
[ 7813.190944] EtherCAT DEBUG 0-0: Now in INIT.
[ 7813.190945] EtherCAT DEBUG 0-0: Clearing FMMU configurations...
[ 7813.201000] EtherCAT DEBUG 0-0: Clearing sync manager configurations...
[ 7813.211005] EtherCAT DEBUG 0-0: Clearing DC assignment...
[ 7813.221006] EtherCAT DEBUG 0-0: Configuring mailbox sync managers...
[ 7813.221007] EtherCAT DEBUG 0-0: SM0: Addr 0x1000, Size 128, Ctrl 0x26, En 1
[ 7813.221008] EtherCAT DEBUG 0-0: SM1: Addr 0x1080, Size 128, Ctrl 0x22, En 1
[ 7813.231004] EtherCAT DEBUG 0-0: Assigning SII access to PDI.
[ 7813.260944] EtherCAT DEBUG 0-0: Now in PREOP.
[ 7813.260945] EtherCAT DEBUG 0-0: Assigning SII access back to EtherCAT.
[ 7813.270968] EtherCAT DEBUG 0-0: SM2: Addr 0x1100, Size   0, Ctrl 0x64, En 0
[ 7813.270969] EtherCAT DEBUG 0-0: SM3: Addr 0x1400, Size   0, Ctrl 0x20, En 0
[ 7813.300998] EtherCAT ERROR 0-0: Failed to set SAFEOP state, slave refused state change (PREOP + ERROR).
[ 7813.310940] EtherCAT ERROR 0-0: AL status message 0x001E: "Invalid input configuration".
[ 7813.330965] EtherCAT 0-0: Acknowledged state PREOP.

zeroerr_config.yaml

# Configuration file for ZERO ERR drive
vendor_id: 0x5A65726F
product_id: 0x00029252
assign_activate: 0x0300  # DC Synch register - 
auto_fault_reset: false  # true = automatic fault reset, false = fault reset on rising edge command interface "reset_fault"
rpdo:  # RxPDO = receive PDO Mapping
 - index: 0x1600
   channels:
     - {index: 0x607a, sub_index: 0, type: int32, command_interface: position, default: .nan}  # Target position
     - {index: 0x60fe, sub_index: 0, type: int32, default: 0}  # Digital Output Functionalities
     - {index: 0x6040, sub_index: 0, type: uint16, default: 0}  # Control word
tpdo:  # TxPDO = transmit PDO Mapping 
 - index: 0x1A00
   channels:
     - {index: 0x6064, sub_index: 0, type: int32, state_interface: position}  # Position actual value
     - {index: 0x60fd, sub_index: 0, type: int32}  # Digital Input Functionalities
     - {index: 0x6041, sub_index: 0, type: uint16}  # Status word
sm:  # Sync Manager
 - {index: 0, type: output, pdo: ~, watchdog: disable}
 - {index: 1, type: input, pdo: ~, watchdog: disable}
 - {index: 2, type: output, pdo: rpdo, watchdog: enable}
 - {index: 3, type: input, pdo: tpdo, watchdog: disable}

$ ethercat cstruct

/* Master 0, Slave 0, "ZeroErr Driver"
* Vendor ID:       0x5a65726f
* Product code:    0x00029252
* Revision number: 0x00000001
*/

ec_pdo_entry_info_t slave_0_pdo_entries[] = {
   {0x607a, 0x00, 32}, /* Target Position */
   {0x60fe, 0x00, 32}, /* Digital outputs */
   {0x6040, 0x00, 16}, /* Control Word */
   {0x6064, 0x00, 32}, /* Position Actual Value */
   {0x60fd, 0x00, 32}, /* Digital inputs */
   {0x6041, 0x00, 16}, /* Status Word */
};

ec_pdo_info_t slave_0_pdos[] = {
   {0x1600, 3, slave_0_pdo_entries + 0}, /* R0PDO */
   {0x1a00, 3, slave_0_pdo_entries + 3}, /* T0PDO */
};

ec_sync_info_t slave_0_syncs[] = {
   {0, EC_DIR_OUTPUT, 0, NULL, EC_WD_DISABLE},
   {1, EC_DIR_INPUT, 0, NULL, EC_WD_DISABLE},
   {2, EC_DIR_OUTPUT, 1, slave_0_pdos + 0, EC_WD_ENABLE},
   {3, EC_DIR_INPUT, 1, slave_0_pdos + 1, EC_WD_DISABLE},
   {0xff}
};

Thank you!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions