Fault tolerant computing for industrial control applications