Graham just another thought,
Take your tool changer example. With all the variables you stated, in the end as a modual, it has an input point to change the tool/ operate functions and outputs to show position of tools. Mach would not need to know how you make it move to a new tool, just that if it sends a signal to the input in a certain way it will move to a location and how many total locations there are. same with the ouputs, it does not matter how the output is created, just what the signal represents. Mach would only need to know in what order to send signals. Make any sense?

Terry