bnjmnp / pysoem

Cython wrapper for the Simple Open EtherCAT Master Library
MIT License
95 stars 36 forks source link

IO-Link Ethercat module (EL6224) #129

Closed kfechter closed 5 months ago

kfechter commented 5 months ago

Trying to implement this EL6224 Ethercat IO-Link module through pysoem code.

I can map the TX and RX PDOs and I can send port configuration data with SDO Writes. but it seems to use AoE (ADS Over EtherCat) for some of the IO-Link Configuration and I cant seem to wrap my head around how to go about setting this data.

https://download.beckhoff.com/download/document/io/ethercat-terminals/el6224en.pdf this is the manual for the device in question.

I can add the output from simple_test.py tonight, and the contents of my testing script, since I don't have internet on my EtherCat laptop right now.

bnjmnp commented 5 months ago

Right, for the EL6224 it's not enough to do CoE, you also need AoE. The thing is that AoE is not implemented in the SOEM project PySOEM is the wrapper for. SOEM issue #572 gives some thoughts on this. The suggested option to implemented AoE on top of SOEM using ecx_mbxsend() and ecx_mbxreceive() is currently not applicable to PySOEM.

Maybe it is possible to do the configuration of the EL6224 using TwinCAT and storing the settings in non-volatile memory?

kfechter commented 5 months ago

interesting, I'll take a look at that issue. SOEM directly might not help here since all the code is python.

I can take a look at using TwinCAT to set the parameters and storing them in memory on the device however. Think I can probably close this issue for now.

Thank you for the information!