Sooo, back at my ethercat fun and I think I've made progress, but I'm stuck.
I've gone right to the basics and am just using halshow to poke the drives.
I made a super basic xml file following some other examples on here.
So, following this:
EtherCAT: How to use the dedicated OmrG5 lcec driver? - LinuxCNC
$ ethercat slaves shows me my 3 drives just fine
$ ethercat upload -p 0 -t int32 0x6064 0x0 shows me position just fine
$ ethercat safeop doesn't work and returns error 90 because the default sync0Cycle is wrong. This seems expected.
My xml is:
<masters>
<master idx="0" appTimePeriod="1000000" refClockSyncCycles="1">
<slave idx="0" type="generic" vid="#00000083" pid="#00000006">
<dcConf assignActivate="300" sync0Cycle="*1" sync0Shift="0"/>
<watchdog divider="2498" intervals="1000"/>
</slave>
</master>
</masters>(using the generic driver here cause the omron one was saying no drive found)
then we do this in halshow:
loadrt threads name1=master period1=1000000
loadusr -W lcec_conf linuxcnc/configs/ecat-test.xml
loadrt lcec
addf lcec.read-all master
addf lcec.write-all master
start
All works, except after we get to start, the drives show error 83, and if you look at the pins, its actually cycling through preop, safeop, inti, op, error every so many ms.
So what have I done wrong here, or what do I need to add? The are many gaps in the information and steps people provide so I expect there's just something missing I don't know about.
Thanks!