Before I forget again, thanks Graeme (and all others involved) for this mbg implementation in the first place. It saves us from a lot of hassle when deploying our safety projects. Only recently we discovered the twinsafe loader didn't work in all cases.
I finally got around to also looking at the mailbox traffic on the ethercat side. I think I have found the cause. For twincat the counter used on the ethercat side is separate from the one received by the mbg. For etherlab the counter in the message to the mbg is also seemed to be used on the ethercat side, is that correct, or is something else happening here? Depending on the setup it can therefore become possible for two subsequent requests to the same slave (with requests to others in between) to use the same counter value. See data at the bottom of the email. What is your take on this? Some other things worth mentioning (for completeness/archive): - The addressing is done a bit differently: .Twincat, Datagram header slave address: 0x03e9, Mailbox header address: 0xe000 .Etherlab, Datagram header slave address: 0x0002, Mailbox header address: 0x03e9 - The counter in the mailbox reply of a slave is separate from the counter value check in the (next) request. Though logical, I mention it here explicitly because this messed up my thinking quite a bit when I hadn't realized this yet. Regards, Mark *** Twincat *** mbg: -> 10 50 0a 00 e9 03 00 23 00 20 41 80 f9 02 00 00 00 00 ec: -> 0a 00 00 e0 00 13 00 20 41 80 f9 02 00 00 00 00 ec: <- 0a 00 00 e0 00 33 00 30 43 80 f9 02 ea 82 1e 00 mbg: <- 10 50 0a 00 e9 03 00 33 00 30 43 80 f9 02 ea 82 1e 00 mbg: -> 10 50 0a 00 e9 03 00 33 00 20 41 80 f9 01 00 00 00 00 ec: -> 0a 00 00 e0 00 23 00 20 41 80 f9 01 00 00 00 00 ec: <- 0a 00 00 e0 00 43 00 30 4b 80 f9 01 01 00 00 00 mbg: <- 10 50 0a 00 e9 03 00 43 00 30 4b 80 f9 01 01 00 00 00 .... other req/rep mbg: -> 10 50 0a 00 e9 03 00 33 00 20 41 01 fe 00 00 00 00 00 ec: -> 0a 00 00 e0 00 33 00 20 41 01 fe 00 00 00 00 00 ec: <- fa 00 00 e0 00 53 00 30 41 01 fe 00 00 08 ..... mbg: <- 00 51 fa 00 e9 03 00 53 00 30 41 01 fe 00 00 08 ..... *** Etherlab *** mbg: -> 10 50 0a 00 e9 03 00 23 00 20 41 80 f9 02 00 00 00 00 ec: -> 0a 00 e9 03 00 23 00 20 41 80 f9 02 00 00 00 00 ec: <- 0a 00 e9 03 00 13 00 30 43 80 f9 02 ea 82 1e 00 mbg: <- 10 50 0a 00 e9 03 00 13 00 30 43 80 f9 02 ea 82 1e 00 mbg: -> 10 50 0a 00 e9 03 00 33 00 20 41 80 f9 01 00 00 00 00 ec: -> 0a 00 e9 03 00 33 00 20 41 80 f9 01 00 00 00 00 <---. ec: <- 0a 00 e9 03 00 23 00 30 4b 80 f9 01 01 00 00 00 | mbg: <- 10 50 0a 00 e9 03 00 23 00 30 4b 80 f9 01 01 00 00 00 | | Problem occurs due to two subsequent requests | .... other req/rep to the same slave with the same counter | | mbg: -> 10 50 0a 00 e9 03 00 33 00 20 41 01 fe 00 00 00 00 00 | ec: -> 0a 00 e9 03 00 33 00 20 41 01 fe 00 00 00 00 00 <---' ec: <- No Reply mbg: <- Timeout
-- Etherlab-dev mailing list Etherlab-dev@etherlab.org https://lists.etherlab.org/mailman/listinfo/etherlab-dev