4diac in Teaching Lessons from Lab Exercises and Student Projects

Slides:



Advertisements
Similar presentations
Usage of the memoQ web service API by LSP – a case study
Advertisements

IVANA NIŽETIĆ Faculty of Electrical Engineering and Computing, University of Zagreb, Croatia Long-lasting teaching materials in spite of changing technology.
MotoHawk Training Model-Based Design of Embedded Systems.
Java.  Java is an object-oriented programming language.  Java is important to us because Android programming uses Java.  However, Java is much more.
W4118 Operating Systems OS Overview Junfeng Yang.
Department of Electrical and Computer Engineering Texas A&M University College Station, TX Abstract 4-Level Elevator Controller Lessons Learned.
Introduction to a Programming Environment
Final Presentation Spring 2003 Project ID: D0822 Project Name: WinCE integrating BT media share application Supervisor: Evgeny Rivkin Performed by: Maya.
Automated Testing Nathan Weiss April 23, Overview History of Testing Advantages to Automated Testing Types of Automated Testing Automated Testing.
Object Oriented Software Development 1. Introduction to C# and Visual Studio.
An Introduction Chapter Chapter 1 Introduction2 Computer Systems  Programmable machines  Hardware + Software (program) HardwareProgram.
T Project Review RoadRunners [PP] Iteration
Software Engineering 2003 Jyrki Nummenmaa 1 CASE Tools CASE = Computer-Aided Software Engineering A set of tools to (optimally) assist in each.
Introduction CSE 1310 – Introduction to Computers and Programming Vassilis Athitsos University of Texas at Arlington 1.
Athena, a large scale programming lab support tool Anton Jansen, Ph.D. Student Software Engineering and ARCHitecture (SEARCH) University of Groningen The.
Chapter 1 What is Programming? Lecture Slides to Accompany An Introduction to Computer Science Using Java (2nd Edition) by S.N. Kamin, D. Mickunas, E.
CSC 120 Introduction to Programming Dr Andreas Loizides c.cy des/CSC120.
Introduction CSE 1310 – Introduction to Computers and Programming Vassilis Athitsos University of Texas at Arlington 1.
Chapter 11 An Introduction to Visual Basic 2008 Why Windows and Why Visual Basic How You Develop a Visual Basic Application The Different Versions of Visual.
OPERATING SYSTEMS Goals of the course Definitions of operating systems Operating system goals What is not an operating system Computer architecture O/S.
Interfaces to External EDA Tools Debussy Denali SWIFT™ Course 12.
Ganga A quick tutorial Asterios Katsifodimos Trainer, University of Cyprus Nicosia, Feb 16, 2009.
Computer Programming & Utilization(CS 101) Pushpak Bhattacharya.
Module 1: Getting Started. Introduction to.NET and the.NET Framework Exploring Visual Studio.NET Creating a Windows Application Project Overview Use Visual.
Controlling Computer Using Speech Recognition (CCSR) Creative Masters Group Supervisor : Dr: Mounira Taileb.
SCJ and EV3 Robots Leadership Election. Background Safety Critical Java – A safety critical programming model in Java EV3 mindstorms Lego Robot – A robot.
LanguageLab A Meta-modelling Environment Terje Gjøsæter and Andreas Prinz, University of Agder, Norway SDL Forum 2015, Berlin, Germany.
Introduction CSE 1310 – Introduction to Computers and Programming Vassilis Athitsos University of Texas at Arlington 1.
Oman College of Management and Technology Course – MM Topic 7 Production and Distribution of Multimedia Titles CS/MIS Department.
Source Level Debugging of Parallel Programs Roland Wismüller LRR-TUM, TU München Germany.
Instrument Control Systems Seminar 2014, 20 th -24 th October 2014 PLC Application Development with TwinCAT 3.1 D.Popovic, ESO/DoE/CSE/ICSSW.
GOING FURTHER WITH KODU GAME LAB Brendan Routledge
Programming and Debugging with the Dragon and JTAG Many thanks to Dr. James Hawthorne for evaluating the Dragon system and providing the core content for.
A Short Course on Geant4 Simulation Toolkit Introduction
1 Introduction to Engineering Spring 2007 Lecture 18: Digital Tools 2.
Environment & Education & More Dan Bothell. Overview Data Teaching Materials Environment Other ACT-R 5.0 and RPM issues.
Introduction to the FPGA and Labs
Introduction to Visual Basic. NET,. NET Framework and Visual Studio
Creativity of Algorithms & Simple JavaScript Commands
14 Compilers, Interpreters and Debuggers
INTERMEDIATE PROGRAMMING WITH JAVA
Programming Languages
CSc 020: Programming Concepts and Methodology II
Outline SOAP and Web Services in relation to Distributed Objects
Pipeline Execution Environment
CS101 Introduction to Computing Lecture 19 Programming Languages
An Introduction to Programming
Haritha Dasari Josue Balandrano Coronel -
Outline SOAP and Web Services in relation to Distributed Objects
Introduction CSE 1310 – Introduction to Computers and Programming
Module 0: Introduction Chapter 2: Getting Started
Module 1: Getting Started
Class project by Piyush Ranjan Satapathy & Van Lepham
Lesson 8: Boolean Expressions and "if" Statements
CIS16 Application Development – Programming with Visual Basic
UNIT 3 CHAPTER 1 LESSON 4 Using Simple Commands.
Teaching and Training Methods
An Introduction to VEX IQ Programming with Modkit
Chapter One: An Introduction to Programming and Visual Basic
A Short Course on Geant4 Simulation Toolkit Introduction
Guest Lecture by David Johnston
Bringing more value out of automation testing
CS 240 – Advanced Programming Concepts
Lecture 8 Programming Paradigm & Languages. Programming Languages The process of telling the computer what to do Also known as coding.
Why Threads Are A Bad Idea (for most purposes)
An Introduction to Programming
Chapter-1 Computer is an advanced electronic device that takes raw data as an input from the user and processes it under the control of a set of instructions.
Why Threads Are A Bad Idea (for most purposes)
Why Threads Are A Bad Idea (for most purposes)
Presentation transcript:

4diac in Teaching Lessons from Lab Exercises and Student Projects Martin Melik Merkumians 7th 4diac Users Workshop 4diac in Teaching Lessons from Lab Exercises and Student Projects

Content Student background at TU Wiens Electronics Master Programme „Energy and Automation Technology“ Lab course background Lab exercises Student project – transportation system Conclusion

Student background Beginner level C skills (no object-orientation) Beginner level Java skills Basic Boolean algebra Basic understanding of finite-state machines (Mealy and Moore) Introduction to IEC 61131 language und execution model Introduction to IEC 61499 and its execution model

Lab course background Master level course Focus on automation systems and IEC 61131 / IEC 61499 languages and concepts Approximately 120-130 students in one semester Four parts / 4h for each part + preparations at home Discrete manufacturing Batch process Industrial robot (6 axis articulated arm) Distributed control with IEC 61499

Lab exercise – Mechanic Press Example 4diac sample project Tasks Implement control with standard library function blocks only Implement a basic function block to control the mechanic press Add communication function block for control-to-simulation and control-to-GUI communication Pros Easy to set up Provided via 4diac systems Distributed scenario (although running on one PC) Easy to debug for students Suitable for large lab classes (30+ students at once) Cons Simulation only / no hardware specific problems (e.g. Timings, real signal behavior) As nothing really happens/moves, students percieve the lab as rather boring

Lab exercise – Measure and Sort NTC‘s Gantry robot Shaker Sorting station Measurement station

Lab exercise – Measure and Sort NTC‘s

Lab exercise – Measure and Sort NTC‘s Lab lecture notes Description of the plant Explanation of IEC 61499 and 4diac 30 minute live demonstration of 4diac (Flip-Flop tutorial) Basic FB creation and export Compile FORTE with new FB Test FB with monitoring Consultation with the lab lecture supervisor (me) and the responsible Student Assistant

Lab exercise – Measurement Station Control Turn table in measurement position Close measurement clamps Start measurement and readout Open measurement clamps Turn table back Provide measurement to system

Lab exercise – Overall control Shake NTC to takeout position Grab NTC with gantry robot Put NTC into measurement station Sort NTC depending on the measurement value

Lessons learned from first year Short introduction (30 min) to 4diac IDE/FORTE is not enough for most students to independently create 4diac solutions Textual explanations of the desired processes are to inaccurate for preparations, even though we tried to be very accurate The event driven approach of IEC 61499 is hard to grasp for students at first Basic function block development with ECC and Algorithms is also not always clear to students FORTE compilation and FB creation should be all done in the same tool

How to make things better Four tutorial videos how to install and use 4diac Available at (German only) https://www.youtube.com/channel/UCt0MlNo6Y7dXCZSDACXFi1g Test function blocks, which simulates the plant and gives advice if there are any errors in the desired behavior Mandatory preparation of the control program No solution for combining FORTE compilation/FB creation steps

How 4diac got better through the use in lectures A lot of bug reports (120 testers per year ) ADS interface FBs for communication with Beckhoff hardware Added serial interface communication for Windows Added RawDataLayer for communication Tutorial videos Input on how to enhance the ECC and Algorithms views in 4diac-IDE

Experiences of the second year Tutorial videos helped a lot! Setup steps for 4diac IDE and FORTE are a bit to complicated for approximately 30% of students Visual Studio changed Too much tools (CMake, VS or Cygwin, and 4diac IDE) Test FBs were very helpful, although they cannot cover all wrong behaviors 4diac IDE has become much more stable

Transportation system Platform Festo CPX-CEC Three different kinds of station types 2-way junction 3-way junction Handling station One program for each station Find shortest path between two stations Activate path in plant Communication via MQTT

Testbed manager

Feedback to 4diac Again bug reports Most important - MQTT communication layer Able to run FORTE on Festo CPX-CEC (again) Can control I/Os and valve ports Unfortunately not open source

Other systems controlled by 4diac Nutcracker Platform: Festo CPX-CEC

Other systems controlled by 4diac Process plant Platform: Beckhoff CX5010

Conclusion 4diac sample projects make it easy to ramp up a course or lab exercise to introduce IEC 61499, but lack reality Demonstration plants for exercises show the complexity and problems of real plants are more valued by students are a LOT more work to prepare and to use in exercises Helps to improve 4diac Are incubators to create new 4diac features