A study of fault diagnosis and recovery techniques for manufacturing systems