The objective of this project is to develop a revolutionary methodology for controlling manufacturing systems, called Software-Defined Control. This approach uses a global view of the entire manufacturing system, including all of the physical components, such as machines, robots, and parts to be processed, as well as the cyber components, including logic controllers, RFID readers, and networks. Models of both the cyber and physical components are used to predict the expected behavior of the manufacturing system. The components of the manufacturing system are tightly coupled in both time and space. Using this temporal-physical coupling together with high-fidelity models of the system allows any fault or attack that changes the behavior of the system to be detected and classified. Once this disruption has been identified, the Software-Defined Controller will automatically compute new routes for the parts through the plant, avoiding the affected locations. These new routes will be directly downloaded to the low-level controllers that communicate with the machines and robots, and will keep production operating (albeit at a reduced level), even in the face of an otherwise catastrophic fault. Importantly, these same algorithms can be used to redefine the production routes (and machine programs) when a new part is introduced, or the desired production volume is changed, to maximize profitability for the manufacturing operation.