Vous êtes sur la page 1sur 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: 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.

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].

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. Dont 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:

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 (ANIPLA06), Rome 2006

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
1(1),2(1),3(1),4(1) 1(1),2(1),3(1),4(2) 1(1),2(1),3(2),4(1) 1(1),2(2),3(1),4(1) 1(2),2(1),3(1),4(1) 1(2),2(1),3(1),4(2) 1(1),2(2),3(2),4(1) 1(1),2(2),3(1),4(2) 1(2),2(1),3(2),4(1) 1(1),2(2),3(2),4(2) 1(2),2(1),3(1),4(1) 1(2),2(2),3(1),4(1) 1(1),2(1),3(2),4(2) 2(1),3(2),4(3) 2(1),3(2),4(1) 2(2),3(1),4(3) 2(2),3(3),4(1) 2(3),3(1),4(2)

Output trays
0(2) 0(1) 0(1) 0(2) 0(1) 0(2) 0(1) 0(2) 0(1) 0(2) 0(1) 0(2) 0(1) 1(2) 1(3) 1(2) 1(3) 1(1)

Horizontal cylinders
1, 2, 1 2, 2 1, 2, 1 2,2 1, 2, 1 1, 2, 1 1, 1, 2 2, 1, 1 2, 2 1, 2, 1 1, 1, 2 2, 1, 1 2, 2 1, 2, 1 2, 2 2, 1, 1 2, 2 1, 2, 1

Vertical cylinders
1,1 2 1,1 1,1 2 1,1 1,1 2 1,1 2 1,1 2 1,1 1,2 1,1 2,1 1,2 1,1,1

1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18.

Biswas, Dipinti Boychuk, Samuel John Mikael Chen, Yusong Davis, Samuel Kieran Grewal, Punita Hou, Shuojun Huang, Shu Fang Insull, Matthew Roberts Iyer, Anand Ramakrishnan Lu, Dekai Nalli, Sindhoor Sambbasivam Nannivala Shivakumar, Veeresh Nelavara Raju, Nishanth Kumar Nguyen, Vu Duc Vinh Paul Dayanandan, Enoch Dickson Raghav Reddy, Sindhu Rajasekaran, Shivshankar Sharma, Shubham

SOFTENG 701 Advanced Software Development Methodologies Semester 1 - 2012, Part 1

19. 20. 21. 22.

Singh, Arun Kumar Sutaria, Vaishali Amrutlal Thirumalai, Ramaseshan Uddappanda Gnanendra, Ranjith Subbaiah 23. Vo, Minh Cat 24. Won, Seo Young

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

1(2) 1(3) 1(1) 1(2) 1(3) 1(1)

1, 1, 2 2, 1, 1 2, 2 1, 2, 1 1, 1, 2 2, 1, 1

2,1 1,2 1,1,1 2,1 1,2 1,1,1

Vous aimerez peut-être aussi