[Etherlab-dev] Ethercat mailbox gateway and TwinSAFE loader issues

Mark Verrijt mark.verrijt at vectioneer.com
Fri Apr 2 13:47:57 CEST 2021


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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.etherlab.org/pipermail/etherlab-dev/attachments/20210402/973b0b00/attachment.htm>


More information about the Etherlab-dev mailing list