I've just spent some time buried in the linuxcnc-ethercat documentation, and I think I have a solution to my first question.
lcec.0.slaves-responding gives the current number of slaves active, so I'm guessing I can use that via Classic Ladder to monitor for any major failings, and trigger a suitable warning?
I should be able to pull the basic Error status from the controlword, but it'd be nice to pull the actual error code without having to open a cabinet to look at the drive (on the nice to have list!).
My main concern is that LinuxCNC loads up without any warning if the drives aren't powered up, or the CAT cable is unplugged, and the first that you know there is an issue, is when you try moving an axis and get a position error. I like to cover most common eventualities when retrofitting/building a machine, so a basic sanity check of all the slaves being online I think is quite essential.
Something I've found missing from the linuxcnc-ethercat documentation, is a more general overview of the XML, as although it goes into good detail on specific functions, I can't see anything about the more general function of blocks. Like why are there 4 syncMaster blocks, yet the first two are empty (and required by the Lichuan drives!)?
For example my current question is how do I configure the drive current during initialisation?
I should really write a driver* for my Lichuan CL3-E57H drives, but even looking at the drivers for other drives, I'm not sure where that setting would fit into the XML, as I can't even find an example where somebody has set the current.
I'm fairly sure it shouldn't be in the syncManager/PDO block for the 1ms updates, but where does it go?
*I'd be willing to write a driver, but it would probably need the existing Lichuan driver renamed, as from a brief look at it, there is a bit more difference than just 4x the number of axes, as the xL3 drivers have more IO, so I think for simplicity, keeping the drivers separate would provide cleaner drivers for both.