A new diagnostic method for hierarchically structured discrete-event systems is presented. The efficiency of this method results from the fact that the complexity of the diagnostic task is reduced by first detecting a faulty component using a coarse process model on a high level of abstraction, and subsequently refining the result by investigating the faulty component with the help of a detailed component model in order to identify the fault with sufficient precision. On both abstraction levels, the method uses a timed discrete-event model of the appropriate part of the system. On the higher abstraction level a timed event graph is used that describes how the temporal distance of the events is changed by component faults. On the lower level of abstraction, timed automata are used to cope with the non-determinism of the event sequence generated by the faulty and faultless components. The approach is illustrated by the diagnosis of a batch process.