This document provides a training guide for the AVEVA Plant Programmable Macro Language (PML). It introduces PML and PML2, the newer and more powerful version. The guide covers topics such as macros, variables, control structures, errors, forms, objects, collections, menus and upgrading from PML1 to PML2. Examples of PML code are provided in the appendices to demonstrate and explain the concepts and features discussed.