Assignment 1.1 Handout

6
SOFTENG 701 Advanced Software Development Methodologies Semester 1 - 2012, Part 1 Assignment 1.1 Model-View-Control pattern as a backbone of generative programming with Intelligent Mechatronic Components Due: 30 th of March, 2012, 11.00 p.m. Interviews/demos: week 6 This is an individual assignment worth 30 % of your final grade. 1. GOAL The goal of this assignment is experience manually all steps of the design flow proposed for generative programming. The backbone architecture of that is based on the Model-View-Control pattern. Components organized in this way are called Intelligent Mechatronic Components (IMC). 2. TASK DESCRIPTION 2.1 Pick and Place manipulator In this assignment you will be developing a simulation model of an individually customized Pick and Place system from Figure 1. Figure 1. Pick and place manipulator built from intelligent mechatronic components. The general operation of the system is described in [4]. In addition, in this assignment, the trays can be located in three different layers, and their number can be from 1 to 4. Input trays can occupy positions 1-4, while output trays can occupy positions 0-1. The mechatronic components used to build this object (and the variety of similar derivatives is as follows: 1. Pneumatic cylinders: horizontal 1..2, vertical 1..2 Can have the following attributes: length (1|2) can be of single or double length.

Transcript of Assignment 1.1 Handout

Page 1: Assignment 1.1 Handout

SOFTENG 701

Advanced Software Development Methodologies Semester 1 - 2012, Part 1

Assignment 1.1

Model-View-Control pattern as a backbone of generative programming with

Intelligent Mechatronic Components

Due: 30th of March, 2012, 11.00 p.m.

Interviews/demos: week 6

This is an individual assignment worth 30 % of your final grade.

1. GOAL

The goal of this assignment is experience manually all steps of the design flow proposed for

generative programming. The backbone architecture of that is based on the Model-View-Control

pattern. Components organized in this way are called Intelligent Mechatronic Components (IMC).

2. TASK DESCRIPTION

2.1 Pick and Place manipulator

In this assignment you will be developing a simulation model of an individually customized Pick

and Place system from Figure 1.

Figure 1. Pick and place manipulator built from intelligent mechatronic components.

The general operation of the system is described in [4]. In addition, in this assignment, the trays can

be located in three different layers, and their number can be from 1 to 4. Input trays can occupy

positions 1-4, while output trays can occupy positions 0-1.

The mechatronic components used to build this object (and the variety of similar derivatives is as

follows:

1. Pneumatic cylinders: horizontal 1..2, vertical 1..2

Can have the following attributes:

length (1|2) – can be of single or double length.

Page 2: Assignment 1.1 Handout

SOFTENG 701

Advanced Software Development Methodologies Semester 1 - 2012, Part 1

actuation (1|2) – can have one actuation signal to move forward with retraction by spring,

or two signals for moving forward and backward;

position sensors {h, m, e} – can have sensors in two or three positions (m is middle)

2. Input trays 1..4

level (1|2|3)

position (1|2|3|4)

3. Output trays 1..2

position (0|1)

Your individual object configuration can be decided from Table 1. For trays, notation x(y) means

tray in position x is on level y. For cylinders, notation a,b,c means three cylinders in the row, of

types a,b,c, correspondingly, and с(m) means cylinder of type c with middle position sensor.

2.2 Design task

The development goal is two Model-View-Control configurations for the pick and place device in

your individual configuration implemented using Master-Slave and Pier-To-Pier control

architectures.

As an example, you will be provided with a number of sample function block applications for the

object from Figure 1, corresponding to all steps in the design flow represented in Figure 2.

Figure 2 Incremental design methodology: from View to Model-View and to Model-View-Control.

The design in those sample application, however, can be quite messy bearing multiple traces of

developments and redevelopments. Your task is to create a functionally similar working application

for your particular object, reusing as much as possible basic components from the PICKER_MVC,

but increasing readability and manageability of the entire application by using design methods

learned in this course.

In three attempts at labs on 5th

, 12th

and 17th

of March you will need to develop the complete MVC

model of your individual system following the incremental design methodology in Figure 2 and [6].

Page 3: Assignment 1.1 Handout

SOFTENG 701

Advanced Software Development Methodologies Semester 1 - 2012, Part 1

3. ASSIGNMENT TASK

Part 1: View – to be accomplished at lab 2 (you can start earlier, but need to demonstrate

working code at the lab)

1) Using the /vhmi package (blocks Render, RenderRot) develop the View application for

each mechatronic object. Create a system configuration to test this application.

Remember, that the View is “dumb”, e.g. it does not know that the workpiece is pushed by

the shaft of the cylinder, etc. So, you need to provide separate displacement parameter for

workpiece and for the shaft).

2) Develop the HMI-1 application (sliders, checkboxes) for the View. This HMI shall produce

same signals as the Model-View interface.

3) Test the View system configuration using the HMI, for that, add a new resource and put the

HMI part there.

4) Refactor your View FB application into a composite FB.

5) Modify the View testing application to work with the composite FBs.

Part 2: Model-View – to be demonstrated at lab 3

1) Implement model of your version of Pick and Place robot.

2) Integrate View with the Model via the MV interface.

3) Develop CM interface to interact HMI-2 with Model;

4) Develop the Controls using the particular methodology designated to you.

Part 3: Model-View –Control to be demonstrated at the interviews in week 6

1) Design HMI-3 to interact with the controller via C-interface.

2) Develop two controllers according to Master-Slave and Peer-to-Peer architectures.

3) Assemble the entire MVC system for both control architectures.

4) Demonstrate their working.

4. HINTS

1. Don’t forget to change package name when you create a new function block type.

Otherwise a temporary FB type may be saved in the /templates package and next time you

create a new FB you will get that one as a template.

2. Don't give same name to Java classes (compiled FB types) even if they are in different

packages.

3. Streamline INITIALISATION chains: first initialize SUBLs, then computational FBs, then

Render FBs.

4. Insert a little time delay (use E_DELAY FB) between two FBs initialisations (e.g. FB

rendering one complex object and another complex object).

5. The VHMI package has a bug: it remains active even if you close the frame of the

ImageDev. You would need to restart FBDK. Sorry! Or, learn how to use launcher.bat.

5. ASSESSMENT

The assessment of your submission will be done using the following criteria:

Page 4: Assignment 1.1 Handout

SOFTENG 701

Advanced Software Development Methodologies Semester 1 - 2012, Part 1

1) Design merits:

a. Systematically following the suggested design flows (suggesting improvements to

the design flow is especially encouraged);

b. Demonstrated systematic re-use of components from the provided samples;

c. Nice looking design, use of adapter connections;

2) Conclusions on the systematic design methodology of systems with Model-View-Control.

Interactive labs are planned for 5, 12, 19 of March in UG 4. During the labs, you need to

demonstrate the working parts of the system (HMI-View, Model-View-Control)

The interviews will be held during the week 6 of the semester. Bring the printed version of your

report (same as submitted electronically) for the interview. The interview schedule will be

announced.

6. REPORT

Your report needs to describe in sufficient detail the solution and provide necessary illustrations.

You are expected to discuss in the report the toolset used in the assignment and the benefits

and drawbacks of the software engineering methodology used!

7. SUBMISSION

Submissions are via Cecil Dropbox.

Your submission shall include:

1. Zipped sources (from fbdk/src) of system configurations (.sys) and the function blocks (.fbt)

developed + Zipped compiled function block types (.java and .class) from fbdk/lib/fb/rt.

2. Readme file describing in sufficient detail what to run;

All these files have to be zipped together under your UPI.zip name.

Your report must be in PDF and with filename of your upi. Files with other names or types

will be discarded without the right of resubmission.

8. REFERENCES

1. Readme file “SE701_Readme.txt”

2. V. Vyatkin: “IEC 61499 Function Blocks For Embedded And Distributed Control Systems Design”,

297 p., ISA, USA, 2007, 2012

3. Lab 1 Handout

4. M. Sorouri, S. Patil, V. Vyatkin, “Distributed Control Patterns for Intelligent Mechatronic Systems”,

IEEE INDIN 2012 Conference, Beijing, July, 2012, submitted

5. Function Block Development Kit – available on Cecil. For installation see [2], Chapter 6

6. V. Vyatkin, MVC Design Flow and Refactoring, learning material.

7. V. Vyatkin, H.-M. Hanisch, Design of Controllers aiming at Plug-and-Play Engineering of

Automated Systems from Mechatronic Components, Annual Conference of Italian Automation

Society (ANIPLA’06), Rome 2006

Page 5: Assignment 1.1 Handout

SOFTENG 701

Advanced Software Development Methodologies Semester 1 - 2012, Part 1

APPENDIX

Example of the standard Pick and Place interface

Picker Interface

Trays:

Input tray Output tray

9. INDIVIDUAL TASKS

# Name Input

trays

Output

trays

Horizontal

cylinders

Vertical

cylinders

1. Biswas, Dipinti 1(1),2(1),3(1),4(1) 0(2) 1, 2, 1 1,1

2. Boychuk, Samuel John Mikael 1(1),2(1),3(1),4(2) 0(1) 2, 2 2

3. Chen, Yusong 1(1),2(1),3(2),4(1) 0(1) 1, 2, 1 1,1

4. Davis, Samuel Kieran 1(1),2(2),3(1),4(1) 0(2) 2,2 1,1

5. Grewal, Punita 1(2),2(1),3(1),4(1) 0(1) 1, 2, 1 2

6. Hou, Shuojun 1(2),2(1),3(1),4(2) 0(2) 1, 2, 1 1,1

7. Huang, Shu Fang 1(1),2(2),3(2),4(1) 0(1) 1, 1, 2 1,1

8. Insull, Matthew Roberts 1(1),2(2),3(1),4(2) 0(2) 2, 1, 1 2

9. Iyer, Anand Ramakrishnan 1(2),2(1),3(2),4(1) 0(1) 2, 2 1,1

10. Lu, Dekai 1(1),2(2),3(2),4(2) 0(2) 1, 2, 1 2

11. Nalli, Sindhoor Sambbasivam 1(2),2(1),3(1),4(1) 0(1) 1, 1, 2 1,1

12. Nannivala Shivakumar, Veeresh 1(2),2(2),3(1),4(1) 0(2) 2, 1, 1 2

13. Nelavara Raju, Nishanth Kumar 1(1),2(1),3(2),4(2) 0(1) 2, 2 1,1

14. Nguyen, Vu Duc Vinh 2(1),3(2),4(3) 1(2) 1, 2, 1 1,2

15. Paul Dayanandan, Enoch Dickson 2(1),3(2),4(1) 1(3) 2, 2 1,1

16. Raghav Reddy, Sindhu 2(2),3(1),4(3) 1(2) 2, 1, 1 2,1

17. Rajasekaran, Shivshankar 2(2),3(3),4(1) 1(3) 2, 2 1,2

18. Sharma, Shubham 2(3),3(1),4(2) 1(1) 1, 2, 1 1,1,1

Page 6: Assignment 1.1 Handout

SOFTENG 701

Advanced Software Development Methodologies Semester 1 - 2012, Part 1

19. Singh, Arun Kumar 2(3),3(2),4(1) 1(2) 1, 1, 2 2,1

20. Sutaria, Vaishali Amrutlal 2(1),3(3),4(3) 1(3) 2, 1, 1 1,2

21. Thirumalai, Ramaseshan 2(3),3(3),4(2) 1(1) 2, 2 1,1,1

22. Uddappanda Gnanendra, Ranjith

Subbaiah

2(2),3(3),4(3) 1(2) 1, 2, 1 2,1

23. Vo, Minh Cat 2(2),3(3),4(2) 1(3) 1, 1, 2 1,2

24. Won, Seo Young 2(3),3(2),4(2) 1(1) 2, 1, 1 1,1,1