Fault detection and recovery by hybrid Petri nets for automated drug preparation systems