Requirements for CPC Scripting Language

Slides:



Advertisements
Similar presentations
Chapter 2: Basic Elements of C++
Advertisements

1 What is JavaScript? JavaScript was designed to add interactivity to HTML pages JavaScript is a scripting language A scripting language is a lightweight.
Javascript It’s not JAVA. What do these all have in common?
© 2010 Delmar, Cengage Learning Chapter 9: Using ActionScript.
Introduction to Unix – CS 21 Lecture 11. Lecture Overview Shell Programming Variable Discussion Command line parameters Arithmetic Discussion Control.
4 July 2005 overview Traineeship: Mapping of data structures in multiprocessor systems Nick de Koning
The Programming Discipline Professor Stephen K. Kwan 2010 Things you need to know (learn) for developing large computer programs.
CS 299 – Web Programming and Design Overview of JavaScript and DOM Instructor: Dr. Fang (Daisy) Tang.
Principles of Procedural Programming
An example of platform independence in UNICOS control systems Koutli Maria CERN EN-ICE-PLC 07/02/14.
Chapter 9 Introduction to ActionScript 3.0. Chapter 9 Lessons 1.Understand ActionScript Work with instances of movie clip symbols 3.Use code snippets.
Introduction to C++ - How C++ Evolved Most popular languages currently: COBOL, Fortran, C, C++, Java (script) C was developed in 1970s at AT&T (Richie)
1 CIS336 Website design, implementation and management (also Semester 2 of CIS219, CIS221 and IT226) Lecture 9 JavaServer Pages (JSP) (Based on Møller.
Novel techniques while developing on the WinCC OA Experience with the UCPC library.
Automatic Generation Tools UNICOS Application Builder Overview 11/02/2014 Ivan Prieto Barreiro - EN-ICE1.
© 2011 Delmar, Cengage Learning Chapter 9 Introduction to ActionScript 3.0.
Javascript. Outline Introduction Fundamental of JavaScript Javascript events management DOM and Dynamic HTML (DHTML)
® IBM Software Group © 2007 IBM Corporation JSP Expression Language
 Mathias Dutour / UAB Dev. team  UNICOS regular meeting  29 January 2009.
CMPS 211 JavaScript Topic 1 JavaScript Syntax. 2Outline Goals and Objectives Goals and Objectives Chapter Headlines Chapter Headlines Introduction Introduction.
Tutorial 8 Programming with ActionScript 3.0. XP Objectives Review the basics of ActionScript programming Compare ActionScript 2.0 and ActionScript 3.0.
FORTRAN FORmula TRANslator -Anand Trivedi. HISTORY  Designed and written from scratch in by an IBM team lead by John W. Backus as the first.
Hans-Peter Plag November 6, 2014 Session 4 (Programming Languages) (Data Types and Variables) Expressions and Operators Flow Control.
Interpretation Environments and Evaluation. CS 354 Spring Translation Stages Lexical analysis (scanning) Parsing –Recognizing –Building parse tree.
CIS-165 C++ Programming I CIS-165 C++ Programming I Bergen Community College Prof. Faisal Aljamal.
Just a Little PHP Programming PHP on the Server. Common Programming Language Features Comments Data Types Variable Declarations Expressions Flow of Control.
Group 4 Java Compiler Group Members: Atul Singh(Y6127) Manish Agrawal(Y6241) Mayank Sachan(Y6253) Sudeept Sinha(Y6483)
MARCO UNICOS based control system CERN Lukasz Zwalinski – PH/DT Maciej Ostrega – PH/DT.
JavaScript Syntax, how to use it in a HTML document
PLT Final Project---COLOGO Lixing Dong, Zhou Ma, Chao Song, Siyuan Lu, Dongyang Jiang.
The basics of the programming process The development of programming languages to improve software development Programming languages that the average user.
XP Tutorial 8 Adding Interactivity with ActionScript.
Chapter 3 Syntax, Errors, and Debugging Fundamentals of Java.
1 UNICOS PVSS Evolution Cryogenics Control Enrique BLANCO Industrial Controls & Electronics Group.
©Colin Jamison 2004 Shell scripting in Linux Colin Jamison.
UAB Versioning: Definition 02/04/ Resources Package Split The resources package will be split into different modules: 1. Common/Core (name to define)
UAB Versioning: Definition 1 07/05/2014. Summary UAB component definition UAB component release UAB component query UAB component installation Create.
UCPC RP1.8 New Features Nov 2015 UCPC Team 19 Nov 2015UCPC RP Release Features Presentation1.
Introduction to JavaScript CSc 2320 Fall 2014 Disclaimer: All words, pictures are adopted from “Simple JavaScript”by Kevin Yank and Cameron Adams and also.
Spring 2009 Programming Fundamentals I Java Programming XuanTung Hoang Lecture No. 8.
Scion Macros How to make macros for Scion The Fast and Easy Guide.
XP Tutorial 8 Adding Interactivity with ActionScript.
DSL Prototype for Siemens Logic Templates Ivan Prieto Barreiro Jeffrey Goderie BE-ICS.
Concept V2.5 Lesson 17 Objectives: After completing this lesson, the learner will be able to: –Program logic using the ST Editor. –Demonstrate an Understanding.
Introduction to Computer Programming using Fortran 77.
CS Class 04 Topics  Selection statement – IF  Expressions  More practice writing simple C++ programs Announcements  Read pages for next.
MARCO control system Munich Lukasz Zwalinski – PH/DT Maciej Ostrega – PH/DT.
UAB Requirements for 2016 Ivan Prieto Barreiro 18/04/2016 UAB Requirements for
DSL implementation for UNICOS-CPC Ivan Prieto Barreiro Jeffrey Goderie BE-ICS.
UNICOS-CPC course - CERN EN/ICE Industrial Controls Engineering Department Deployment of the CPC6 control application Marc Quilichini
UNICOS Application Builder Architecture
Topic 02: Introduction to ActionScript 3.0
UNICOS: UNified Industrial COntrol System CPC (Continuous Process Control) Basic course SESSION 3: PLC architecture UCPC 6 UNICOS-Continuous Process.
UAB Extended Configurations
1-1 Logic and Syntax A computer program is a solution to a problem.
Programming Languages Dan Grossman 2013
UAB Development Status
Chapter 2 Assignment and Interactive Input
UCPC RP Presentation for GSI
Exploring JavaScript Ch 14
Scripts & Functions Scripts and functions are contained in .m-files
Chapter 19 JavaScript.
Programming Right from the Start with Visual Basic .NET 1/e
Lecture 15 (Notes by P. N. Hilfinger and R. Bodik)
Patterns to KNOW.
Selection Statements.
LCC 6310 Computation as an Expressive Medium
Chapter 6 Programming the basic computer
Python Basics. Topics Features How does Python work Basic Features I/O in Python Operators Control Statements Function/Scope of variables OOP Concepts.
Presentation transcript:

Requirements for CPC Scripting Language Ivan Prieto Barreiro Jeffrey Goderie 26/11/2015

What is UAB? Tool used to generate code for UNICOS applications UCPC: Generates code for the control and supervision layers Main inputs: Device type definitions, specs. file & code templates Device Instantiation Templates Process Logic Templates Device Types Analog Alarm PID Inputs Specifications Outputs Control Application PLC S7 Touch Panels 26/11/2015

Current Generation Workflow UNICOS application sources Code Generation Import & Compile Device specification list Control Code Inputs Compilation Error!!! UAB CPC Wizard Templates 26/11/2015

Desired Generation Workflow UNICOS application sources Code Generation Import & Compile Device specification list Control Code Inputs UAB CPC Wizard Templates Dynamic Errors! Generation Errors! 26/11/2015

Writing Logic Templates PLC code generated from strings No syntactic/semantic checkings Errors detected after generate, import & compile No syntactic/semantic checkings during editing Errors detected during compilation Error messages could be improved 26/11/2015

Project Structure Scripting DSL Siemens DSL Schneider DSL Siemens ‘Mixing’ DSL SchneiderScripting ‘Mixing’ DSL 26/11/2015

Siemens DSL (1/2) Reusable DSL for Siemens SCL language Access to CPC devices (I/O) & CPC device instances Syntax checking (To be optimized) & coloring Type system (In progress) Name binding (To be completed) Function names Variables CPC device instances & fields (currently only device I/O, others?) 26/11/2015

Siemens DSL (2/2) Code completion (To be completed) Function names & parameters Variables CPC device instances CPC device fields 26/11/2015

Scripting DSL (1/3) Shared by Mixing DSLs (Siemens/Schneider) Jython like language Used to generate PLC code dynamically User defined functions Reusability of PLC code generation Return values Recursion Call to standard functions List: list.get(index), list.add(obj), max(list), min(list), all(list), any(list), obj in list String: string.strip(), string.lower(), string.upper() String, List: obj.size(), len(obj) Number: abs(number), int(number), real(number) Dictionary (TBD): dict.keySet(), put value, get value 26/11/2015

Scripting DSL (2/3) UAB Utilities: Control statements: specs.findMatchingInstances(..) // Overloaded Completion of spec fields in the conditions TBD: Parameter validation TBD: Completion of device type names IDeviceInstance.getAttributeData(fieldName) TBD: Other utilities (static methods, plug-in methods) Control statements: if - else / if - elif - else for loop while loop break / continue (loops) 26/11/2015

Scripting DSL (3/3) Arithmetic expressions: + - / * % ** Comparison operators: ‘==‘ ‘is’ ‘is not’ ‘!=‘ ‘<>’ ‘>=‘ ‘<=‘ ‘<‘ ‘>’ Logical operators: ‘and’ ‘or’ ‘not(..)’ generate(..) Generation of valid SCL (ST) statements Partial SCL (ST) generation (only in last sentence) e.g.: generate{“IF”}; Scripting statements not allowed Comment generation: e.g.: ^// Comment generation with $variable$ replacement 26/11/2015

Siemens CPC Template DSL (1/2) Mixing of SCL(ST) and Scripting DSL Statements with $variable$ Variable insertion: var := $variable$; Simple sentence evaluation: var := $3 + 2$; Call to scripting functions: var := $myFunctions.factorial(4)$; SCL comments are not generated! 26/11/2015

Siemens CPC Template DSL (2/2) Code generation: Real time visualization Validation of SCL generated code 26/11/2015

Demo 26/11/2015

Questions What other device fields are required? (.index, .FEType, …) Are overloaded functions required (scripting language)? What Jython functions do you use often? In what locations should scripting language be allowed? 26/11/2015

Next Meeting… Get requirements for the scripting language: Date? Standard functions Additional functionalities Date? 26/11/2015