This wont handle the force table issues. I think the logic processors must have their own private copy of these data tables. I'd make a local copy of the input table before starting the 'scan'. It seems to me the best way to implement force tables is to have an intermediate table. The input process reads the real inputs and places them in a table, the force processor applies the forces and write its results in a table that the control processes use for inputs.
Same thing happens for outputs.
If the logic engine is made responsible for dealing with the force tables, this model still holds. Actually, this is not a problem at all. It grabs a copy of the output image table before starting it's work, validates it with the force tables, and proceeds to set all the outputs it is responsible for. Then it collects the statuses of all the inputs it is responsible for, locks the appropriate input image tables, and updates them. At the beginning of it's scan it locks the appropriate input and output image tables, makes it's own copy, processes the inputs through the force tables, and proceeds to do it's logic scan.