Guidelines and Patterns for Building Hierarchical Automation Solutions in the IEC 61499 Modeling Language | Synapse