Modern Industrial Automation Software Design Principles And Real World Applications