The effective scheduling of operations in batch plants has a great potential for high economic returns, in which the formulation and an optimal solution algorithm are the main issues of study. Petri nets have proven to be a promising technique for solving many difficult problems associated with the modelling, formal analysis, design and coordination control of discrete-event systems. One of the major advantages of using a Petri-net model is that the same model can be used for the analysis of behavioural properties and performance evaluation, as well as for the systematic construction of discrete-event simulators and controllers. This paper aims at presenting a Petri-net based approach to the scheduling of operations in batch plants. Firstly, the short term of the 'scheduling of batch plants' is formulated by means of a timed Petri net which can accommodate various intermediate storage policies, such as unlimited intermediate storage (UIS), no intermediate storage (NIS), finite intermediate storage (FIS), and mixed intermediate storage (MIS). Secondly, a heuristic search algorithm for the optimal scheduling of batch plants is given, which is based on generating and checking the markings in the reachability tree of the Petri-net model. Finally, the novel formulation and algorithm are tested with several simulation case studies.