150 likes | 354 Views
Automatic Generation Tools. UNICOS Application Builder Overview. UAB: UNICOS Application Builder. Software factory used to develop UNICOS applications. Main features: Provide a unified and highly customizable code generation environment for PLC, SCADA and other UNICOS target platforms.
E N D
Automatic Generation Tools UNICOS Application Builder Overview Ivan Prieto Barreiro - EN-ICE
UAB: UNICOS Application Builder • Software factory used to develop UNICOS applications. • Main features: • Provide a unified and highly customizablecode generation environment for PLC, SCADA and other UNICOS target platforms. • Keep the internal UNICOS types and engineering/process knowledge separated from UAB to maximize reusability. • Enforce input consistency and validity through automatic checking of syntax and grammar. • Flexibility: Easy to adapt the framework for new UNICOS packages. • Scalability: Modular architecture based on plug-ins. EN-ICE
UAB Modular Architecture UAB Core • Common utilities required by most of the plug-ins (user report, logging, …). • Dynamically discovering the different plug-ins. • Load the UNICOS project data. • Connect plug-ins with external files (specs, device type definitions, …). UAB Plug-ins • Platform dependent (Siemens, Schneider, WinCC O. A., …). • The plug-ins define the structure and format of the generated files (XML, SCL, …). UAB Resources • Set of resources required by the plug-ins.(Device Type Definitions, Jython Templates…). UAB Components • Logical integration of UAB plug-ins. • Friendly user interface (Wizard). • Detected by installation and updatetool (UAB Bootstrap). EN-ICE
Application Generation Workflow Device Types CPC Wizard Component Plug-ins Resources Control Application Control System Developer Device Instantiation Templates PID Process Logic Templates Alarm PLC: S7 Panel: WinCC Flex SCADA: WinCC OA Analog Baselines Touch Panel SCADA PLC UAB Core PLC S7 Inputs Outputs Core Specifications EN-ICE
CPC Wizard Screenshots EN-ICE
UCPC Plug-ins The UNICOS CPC component includes the following plug-ins: • Siemens PLC • S7 Instance Generator • S7 Logic Generator • Schneider PLC • Unity Instance Generator • Unity Logic Generator • CoDeSys (Twincat, SoMachine) • CoDeSys Instance Generator • CoDeSys Logic Generator • SCADA • WinCC OA Generator • Touch Panel Generator (Magelis, TIA Portal, WinCC Flexible) • General Purpose • Expert User Generator EN-ICE
Use Case: New Target Platform New target platform: EPICS New plug-in: EPICS New Wizard panel for EPICS New Jython Templates for EPICS New Baseline for EPICS Device Types CPC Wizard Component Plug-ins Resources Control Application Device Instantiation Templates PID Process Logic Templates Alarm PLC: S7 Panel: WinCC Flex SCADA: WinCC OA SCADA: EPICS Analog Baselines Touch Panel SCADA PLC UAB Core PLC S7 Inputs Outputs Core Specifications EN-ICE
Plug-in & Templates Execution Flow Callplug-in Execute template Method call UAB CoreUtilities Method call Method return Method return Return Continueplug-in execution When the generate button is pressed, the wizard will call the plug-in associated with the panel to perform the generation. EN-ICE
UAB Plug-ins EN-ICE Features • Platform dependent (Siemens, Schneider, WinCC O. A., …). • The plug-ins define the structure and format of the generated files (XML, SCL, …). Generation Workflow • Get the required parameters and data sources (specs file, templates location, output folder and output file(s) location). • Process the selected templates (global templates, device type templates, post-process templates). • Write the output files with the data provided by the templates. Reusability • In some cases it is possible to reuse the same plug-in for different target platforms (when the plug-in functionalities are equal or very similar). • Example: The CPC Touch Panel generator is used for several targets: Magelis, TIA Portal and WinCCFlexible.
Device Type Definitions FEDeviceOutputs: Device output Interface isCommunicated: Front-end <> SCADA comm. isSpecificationAttribute: Spec fields EN-ICE
Jython Templates Features • The templates are specialized scripts used to generate code for the target platform. • The templates are located in the Resources Package (separated from the plug-ins). Different Nature • Device Type Templates: Generate code related to an specific device type. One template for each existing device type. • Global Templates: Used to generate code not related to the device types (like front-end configuration). • Semantic Rules: Used to validate the user inputs. These templates are shared by all the plug-ins. EN-ICE
Device Type Templates Worksheet reference Getting data from the specs Getting device addresses Writing device importation line EN-ICE • Generate code related to an specific device type. One template for each device type.
Device Type Templates Recommendation EN-ICE • Development for EPICS target platform: • Try to reuse the existing plug-ins and device type templates (WinCC OA). • Create a new CPC application using the CPC Wizard and resources package (v1.6.0) • Modify the WinCCOA device type templates in the application folder to generate the required output for EPICS. • If the generated file is plain-text (comma separated or similar) Modification is straightforward. • If the generated file is xml Use a different API to create the files (IOutputFileBuffers@see Javadoc for UAB Core v1.5.2)
Questions? EN-ICE