Ah yes, good stuff. You seem to have thought of most of the things I was worried about (is the bit being used anywhere else in the code, etc).
Still one thing I'm uneasy about though - not 100% sure if it would be an issue or not, but here's where I'm coming from...
Let's say you were using the RSLogix 5000 platform, and transferring the data with produced/consumed tags. Produced/Consumed tags are transferred even if neither PLC is in run mode. So if your remote PLC faults, the remote bit (produced tag) is still a "1", and your local PLC will read that "1" and write a "1" to your local bit (consumed tag) accordingly. You can probably see where I'm going with this. In your case, if your MSG instruction is in your
remote PLC, and
writing to N20:20/15 in your local PLC, no problem. If the remote PLC faults or otherwise stops executing code, then it will stop overwriting N20:20/15 and your timer will time out. But if your MSG instruction is in your
local PLC, and you're
reading from your remote PLC, then it *might* be possible that even when the remote PLC is faulted or otherwise not in run mode - but still online - that your local MSG instruction can still look at it and see that N20:20/15 is still 1. Even if you think that "well, it only turns that bit on if the PLC is running" - not necessarily. If the PLC faults, everything stays right where it is, and it's not until the prescan sweep that happens just before it goes back to run mode that these sort of things are reset.
I'm not 100% certain whether this would be the case or not, but if it were me, I'd be testing it out
Just one other small note for future use - because you're using a MSG instruction to transfer the data, which you can schedule and control in sync with the rest of the ladder logic, all of this works fine. On the other hand, if you were getting the data from a produced/consumed tag or another RPI-based ethernet device, then it's important to remember that the communication wizardry happens completely independent of and asynchronously to your ladder logic. So that N20:20/15 could be unexpectedly changed halfway through one of those rungs. I can't see it causing any dramas in this case but worth remembering