Roschi,
I really don't understand how are you achieving to rotate the motor with the drive(the slave) being in PREOP state, I think that Lenze drivers won't allow any movement until the drive is in OP state.
Now I notice that after issuing the procedure in my last post the drive goes to OP state but dmesg shows a lot of unmatched and skipped datagrams, I guess that's connected with the DC sync. Do you have any ideas what could be wrong with the DcConf in the xml configuration file?
I noticed that in PREOP state I can change some objects like 0x55AF but I can't change the Mode of Operation (0x6060) object, the Control Word (0x6040), Target Position object etc. The strange think is that dmesg doesn't show any error while issuing the "ethercat download" command.
UPDATE 1:
I changed the hard coded (lcec.c line:201) alias address from 0 to 1001(according to Lenze's manual) and recompiled everything. Now, the executing of "halcmd loadrt lcec" fails and dmesg says:
Code:
EtherCAT: Requesting master 0...
[24062.569235] EtherCAT: Successfully requested master 0.
[24062.569396] EtherCAT ERROR 0 0:0: PDO entry 0x6040:00 is not mapped.
[24062.569400] LCEC: master 0 PDO entry registration failed
[24062.569402] EtherCAT 0: Releasing master...
[24062.569406] EtherCAT 0: Released.
The key error " EtherCAT ERROR 0 0:0: PDO entry 0x6040:00 is not mapped. " is issued by the "ecrt_master_slave_config(..)" function.
Do you have any ideas?
UPDATE 2:
I googled similar problem :
link
.
It says that if "Enable notLRW: yes" two separate domains should be used. Issuing "ethercat slaves -v" confirms that in my case this is true (Enable notLRW:yes), so I guess I should write my own driver or does anyone have idea how to modify Sascha's one to use two separate domains, one for input and another one for output?
Thank you very much.