Petri net design approaches for automated manufacturing systems are discussed, with emphasis on modular design methods for buffers. The simple Petri net module for a buffer is extended to a module for a generalized buffer which can be shared and which can accommodate a number of distinct types of parts. Theoretical results about the preservation of system properties such as boundedness, liveness, and reversibility are presented for when a Petri net contains such buffer modules. Two theorems provide certain conditions to achieve such property preservation. Safe Petri net modules for a buffer are designed using safe places only. The results are illustrated by two manufacturing examples: a multiple-machine and multiple-buffer production line, and an automatic storage-retrieval system in a flexible manufacturing system.