Im no pid expert or guru either but having now thought about it for a bit, I think what would work would be to set up a PID loop for the outer tank with the set point being the PID output of the inner tank (cascading pid?).
To do this you will have to create a dummy output point on the I/O unit scaled from say 0 to 150. This will be the output point for the inner tank pid loop. The inner tank temp sensor will be the input for the inner tank pid and the set point will be 110deg. The pid loop min/max range would be set the same as the dummy output point.
When configuring the outer tank pid loop, the set point would be set to I/O and pointed to the dummy output point. You could set the PID input upper value to 150deg and by setting the force output when out of range to a nominal value would ensure the outer tank would be protected. The input for this pid would be the outer tank sensor and the output would be the watlow controller.
Then it would be a matter of tuning. As the inner tank gets hotter the set point of the outer tank decreases (this would indicate a - p value) therefore backing off the heating element. If the inner tank is cool, the output would increase therefore increasing the set point of the outer PID loop. It would be a fun tuning experience.
Outer tank control would have to be pretty responsive to cater for the set point changes, and the inner PID would have to be slowish to ensure there are no massive output changes (resulting in set point changes in the outer tank pid loop). It may be the case that the dummy output point might have to be scaled between say 100deg and 150deg or the inner PID loop max output change be limited to something like 5 or 10 to ensure the output cannot go from min to max in a short period of time causing the outer tank pid to swing massively.
If I was going to perform this I’d probably tune the outer pid loop first and make sure it is very snappy and responds well to setpont changes. Then I’d start with a slow pid loop on the inner tank working up to some acceptable tuning values. if the inner loop gets hard to tune (causing problems wit the outer tank pid loop), I’d probably look at trying rescaling the output of the inner tank pid or restricting the max output change of the outer tank pid. At some point you should be able to get them in sync.
Bear in mind too that if you don’t have the room on the IO unit for a dummy output point, you can set the output of the inner tank pid to host and the set point of the outer tank to host. This would then involve coding in some commands to read the inner tank output into the set point of the outer tank. If the IO is remote (ie an eb or sb brain) then the pid’s would not work autonomously as they would rely on commands from the strategy to perform their tasks.
I hope this makes sense (it did to me when i was thinking it…)