The scratchpad equivalents to what you are showing would be:
P2P_Get_FloatTable ~ Get I/O Unit Scratch Pad Float Table
P2P_Set_FloatTable ~ Set I/O Unit Scratch Pad Float Table
and so forth.
So the scratchpad becomes the P2P “holding area” instead of your P2P tables you have setup.
The rest of your code looks like it can remain the same, only thing you will need to watch out for is when I/O units go offline. If you use Opto’s IO Enabler chart, you should add the remote IO units to that.
If you have a lot of remote controllers and they all have the same or very similar strategies, then you are probably best having the remote controllers write to their local scratchpad (since you won’t need to write to different addresses) and then have the main controller read from each remote scratchpad. Hope that makes sense.
I recommend that you write comments in your strategies for which scratchpad areas are being used. I put these comments in the power up chart, so in the future I don’t accidentally write to a scratchpad area that is being used for something else.