nasa-jpl / fastcat

C++ EtherCAT Device Command & Control Library
Other
42 stars 11 forks source link

SDO error thrown for ignored device #104

Closed MartynStaalsen closed 1 year ago

MartynStaalsen commented 1 year ago

Not sure if this is a real issue or just me not knowing what I'm doing...

I'm trying to spin up a minimal fastcat example on physical hardware.

To that end, I'm using the cli_test tool to run a test configuration (test.yaml) with a bunch of IGNORE devices to stand in for the hardware jsd doesn't support yet (slaves 1-7), plus an el3318 as slave 8. When I run this config, everything inits fine, but then I get this error:

[ ERROR ] [1685120995.165696] (/home/icon/git/jpl_ethercat_sandbox/build/_deps/jsd-src/src/jsd_sdo.c:193) Time:1685120993.804 SDO slave:4 index:1c13.01 error:06090011 Subindex does not exist

Slave 4 is an EL4034 Analog Output slice, which indeed does not have a 1c13 SDO object, (confirmed with jsd_slaveinfo tool and the beckhoff documentation).

I'm wondering why this ignored device is causing problems. Perhaps I've configured something wrong on a bus, or is this a deeper issue?

For reference, here's a copy of my test.yaml co nfig file, pluss the device's mapping per jsd_slaveinfo, and output of the cli_test tool.

fastcat:
  target_loop_rate_hz:   100
  zero_latency_required: False
  actuator_position_directory:        /tmp/
  actuator_fault_on_missing_pos_file: False

buses:  
  - type: jsd_bus
    ifname: enp11s0
    enable_autorecovery: False

    devices:
    - device_class: IGNORE
    - device_class: IGNORE
    - device_class: IGNORE
    - device_class: IGNORE
    - device_class: IGNORE
    - device_class: IGNORE
    - device_class: IGNORE
    - device_class: El3318
      name: el3318_tc_location_1
      element: TYPE_K

  - type: fastcat_bus
    ifname: fcat_bus_1
    devices:
    - device_class: Filter
      name: filt_ma_1
      filter_type: MOVING_AVERAGE
      buffer_size : 25
      signals:
      - observed_device_name: el3318_tc_location_1
        request_signal_name: output_eu_ch1

cli_test_log.txt el4034sdo.txt

alex-brinkman commented 1 year ago

I'm not sure this is in fact an issue that's causing any harm, perhaps just a nuisance fault from how SOEM initializes devices during startup.

Is this causing any functional problems with your use case?

[ ERROR ] [1685121959.316053] (/home/icon/git/jpl_ethercat_sandbox/build/_deps/jsd-src/src/jsd_sdo.c:193) Time:1685121957.957 SDO slave:4 index:1c13.01 error:06090011 Subindex does not exist [ INFO ] [1685121966.007544] (/home/icon/git/jpl_ethercat_sandbox/src/cli_test.cpp:298) Received ctrl-c. Closing down.

MartynStaalsen commented 1 year ago

I think you're right - though this message still shows up, I've since gotten functional tests to work, so it does not seem to be actually breaking anything