CoE Write Discrepancy PLC --> I/O

I have a device on EtherCAT and I am writing to some dictionary objects using the cyclic I/O data. The I/O data includes structures for read and write requests and well as responses. I am experiencing a weird error where I write an index and subindex, but it fails and the subindex is not mirrored back in the response. I have checked everything and there is no obvious reason for this. If I check the CoE tab of the device in ctrlX I/O Engineering, I verify that the subindex value is being written. However, the response does not mirror it back. If I initiate the command direct from the ECAT master (in the CoE tab in ctrlX I/O Engineering), it works no problem.

In PLC Engineering, the DataLayerNode I/O data

 

In I/O Engineering, CoE of device

The data appears to transfer from the PLC app across the datalayer to the ECAT master correctly. Yet, the command errors. Again, to clarify, if I instead clear the command in the PLC and just enter the data direct in ctrlX I/O Engineering CoE for the device, it works no problem.

CORE X3 at v1.20

 

Best reply by CodeShepherd

Which device is used for your tests? Please check its manual is this parameter is allowed to be used in cyclic communication as the mechanism itself is acyclic and also used in this way via the ctrlX IO Engineering.

From PLC side acyclic function blocks could be used for writing data like CXA_EtherCatMaster.IL_ECATCoeWriteSdo or CXA_Datalayer.DL_WriteNode to path "fieldbuses/ethercat/master/instances/ethercatmaster/device_access/coe/sdo".

View original
2 replies