DC-Sync related changes#311
Conversation
… (according to the ec-poster, cyclic inputs have to be provided starting in preop, also some festo slaves show weird behaviour if this is not being done)
This ensures that all slaves get an equal, hopefully 64bit, time. The former approach broke once a device had a 32bit clock, as the assumption 32bit_time % cycle_time == 64bit_time % cycle_time no longer holds once the clock overflowed for the first time
|
I've also updated the example code to loosely match our production code, I don't have an ethercat slave with me unfortunately, so I'm not able to test it... |
jamwaffles
left a comment
There was a problem hiding this comment.
Seeing as the DC fix is in #322, could we reduce this PR to just the added methods all_safe_op and request_into_safe_op, and the changes to examples/dc.rs (might want to rebase to get #322 first). I'm not too keen on the subdevice_mut and register_read_ignore_wkc methods and I think we could do the DC example changes in a better way at a later date.
Can you remember why you needed those methods in the first place? Maybe there's a different/better way to get what you need?
|
P.s. I believe a rebase from main now that #322 is in should fix the tests. |
|
Hey there! Sorry for the very late feedback. I wouldn't need the which doesn't work without that method - maybe there's a better way? |
Hey,
as discussed, this PR contains some dc sync related changes which brought a huge improvement in stability to our system.
The changes are:
Please let me know if you want to do some changes, split it up in multiple PR, etc