Presentation is loading. Please wait.

Presentation is loading. Please wait.

Comet, a Case Study Distributed Factory Automation System Software Engineering 2000-2001 Petta Davide.

Similar presentations


Presentation on theme: "Comet, a Case Study Distributed Factory Automation System Software Engineering 2000-2001 Petta Davide."— Presentation transcript:

1 Comet, a Case Study Distributed Factory Automation System Software Engineering 2000-2001 Petta Davide

2 Summary Problem description Requirements modeling Use case model Analysis modeling Conceptual static model Object structuring Finite state machine modeling Dynamic model Design modeling Subsystem structuring Distributed software architecture System configuration

3 Problem Description Workstations on an assembly line Programmable WSs: different parts can be processed Part moving on a conveyor belt  Processed in sequence Two kinds of workstations: Receiving (the first one), shipping (the last one) Pick & place robot Assembly Pick & place robot, assembly robot One operation per workstation Factory operators, one per workstation Views workstation status and alarms Process engineer Creates process plan to define mfg (manufacturing) steps for a part Production manager Creates work orders to process new parts (work order: # of parts of a type) Robots have sensors and actuators

4 Problem Description Workstations on an assembly line Programmable WSs: different parts can be processed Part moving on a conveyor belt  Processed in sequence Two kinds of workstations: Receiving (the first one), shipping (the last one) Pick & place robot Assembly Pick & place robot, assembly robot One operation per workstation Factory operators, one per workstation Views workstation status and alarms Process engineer Creates process plan to define mfg (manufacturing) steps for a part Production manager Creates work orders to process new parts (work order: # of parts of a type) Robots have sensors and actuators Noun Identification Technique

5 Use Case Model Grouped by actors: Factory operator View alarms View workstation status Generate workstation status and notify (with factory robot) Generate alarm and notify (with factory robot) Process engineer Create/update process plan Create/update operation Production mgr Create/modify work order Manufacture part (with pick&place, assembly robot) Receive part Process part at workstation Ship part Use just-in-time algorithm: ws receive part only when ready to process

6 Use Case Model View alarms Generate ws Status And Notify View ws status Generate Alarm And Notify > FactoryOperatorUseCasePackage Factory Operator Factory Robot Create/Update Operation Create/Update Process Plan > ProcessEngineerUseCasePackage Process Engineer >

7 Use Case Model Manufacture Part Create/Modify Work Order > ProductionManagerUseCasePackage > Ship Part Process Part At Workstation Receive Part > Production Manager Assembly Robot Pick & Place Robot

8 Conceptual Static Model Is very important for this case: it’s an information-intensive application Factory consists of WSs Aggregate Factory class, composed of WS classes Three types of WSs: Receiving, Line, Shipping Generalization/specialization hierarchy Line WSs have Pick&Place and Assembly robots Receiving, shipping have only Pick&Place robots WS generates one Status and multiple Alarms Both viewed from Factory Operator Process plan defines with operations all parts of a given type Operation defines a single step carried out at a WS Work order: number of parts to be manufactured of a given type

9 > Process Engineer > Process Plan > Operation > Part > Work Order > Production Manager > Factory > Factory Workstation > Shipping Workstation > Alarm > Factory Operator > Workstation Status > Line Workstation > Receiving Workstation <<external system>> Assembly Robot <<external system>> Pick&Place Robot 10..1 1..* Views * * * * 1 1 1 Processes Generates * 1 1..* Creates * 1 Defines # of 1..* 1 1 * Creates 1 1..* Contains Creates 1 * Defines 1 1..* Conceptual Static Model Composite classes

10 > ProductionManager > AssemblyRobot workOrderID : String customerName : String partType: String quantity : Integer priority : Integer startDate : Date shipmentDate : Date status : WoStatusType partType: String partID : String status : PartStatusType location : String priority : Integer nextOperation#:Integer startDate : Date finishDate : Date > ProcessEngineer Classes and Their Attributes > ProcessPlan partType : String rawMaterialType:String numberOfSteps : Integer > Alarm > FactoryOperator > Part > WorkstationStatus > WorkOrder > Operation > Pick&PlaceRobot userID : String password : String shift : Integer factoryArea : String userID : String password : String shift : Integer userID : String password : String engineerPrivileges:String alarmNumber : Integer alarmType : String alarmMessage : String workstationID : String factoryArea : String location : String state : WorkstationState robotID : Integer state : RobotState robotID : Integer state : RobotState maxWeight : Integer operation# : Integer operationName: String workstationType:WsType programName : String cycleTime : Integer

11 > Production Manager System Context Model > Factory Automation System 1..* > FactoryOperator > Pick&PlaceRobot > AssemblyRobot > ProcessEngineer 1..* 1 1 1 1 1 1 Interacts with Interacts with Interfaces to Interfaces to Interacts with One external class per actor:

12 Object Structuring Idea: we determine the objects that participate in each use case dividing the system into objects: Entity objects for data storing objects: Process Plan, Operation, Work Order, Part, Workstation Status, Alarm They are all server  corresponding server objects on collaboration diagrams For each Human actor: user interface object Factory Operator Interface, Production Manager Interface, Process Engineer Interface Adding controllers objects Receiving/Line/Shipping Workstation controller to control manufacturing workstation Each robot has a controller and its mfg operations are downloaded from the Factory Automation System

13 Finite State Machine Modeling There is a state-dependent object: the WS controller More in detail, each Workstation Requests a part only if ready Completes a part Waits for message from successor workstation When received, says pick&place robot to place part on the conveyor belt Send part coming message to successor Send part request message to predecessor Receiving ws controller counts remaining number of parts Shipping ws controller Removes part from conveyor belt Send part complete message to production manager interface For this state-dependent object: statecharts

14 Line W.S. Controller Statechart Line Workstation Controller Superstate B1: Workstation Startup Part Processing Superstate Part Requesting Superstate Part Requesting Part Processing Superstate Part not Requested Part has been Requested B1: Workstation Startup B15: Part Coming C2: Part Request

15 Line W.S. Controller Statechart Awaiting Part From Predecessor WS Robot Picking Assembling Part Awaiting Part Request from Successor WS Part Arriving Robot Placing B1:WS startup / B2: Part Request B3:Part Coming/ B4: Next Operation Request Part Processing Superstate B8:Part Arrived/ B9: Robot Pick B10:Part Ready/ B11: Start Assembly B14:Part Placed/ B15: Part Coming B15a: Part Request B12: Operation End [Part Has Been Requested] / B13: Robot Place B12: Operation End [Part Not Requested] C2: Part Request / B13: Robot Place

16 Dynamic Model Idea: we refine use cases using collaboration diagrams Factory operator has client/server use cases Client: OperatorInterface Server: AlarmHandlingServer, WSStatusServer Process Engineer has client/server use cases Client: ProcessEngineerInterface Server: ProcessPlanServer, OperationServer Production Manager has: client/server use case: Create/Modify Work Order Client: ProductionManagerInterface Server: ProcessPlanServer, WorkOrderServer distributed control use case: Manufacture Part

17 S1.1: Alarm Request Collab. Diagrams: View Alarms, View WS Status > : OperatorInterface > : AlarmHandlingServer > : FactoryOperator S1: Operator Request > : OperatorInterface > : WorkstationStatusServer > : FactoryOperator S1.3: Display Info S1.2: Alarm Data V1: Operator Request V1.3: Display Info V1.1: WS Status Request V1.2: Workstation Data Use Cases

18 Collab. Diagrams: Generate Alarm and Notify M1: Workstation Input > : Robot > : WorkstationController > : FactoryOperator M4: Display Info > : AlarmHandlingServer > : OperatorInterface M2: Alarm M3: Alarm Multicast Use Cases

19 Collab. Diagrams: Generate WS Status and Notify N1: Workstation Input > : Robot > : WorkstationController > : FactoryOperator N4: Display Info > : WorkstationStatusServer > : OperatorInterface N2: Workstation Data N3: Workstation Status Multicast Use Cases

20 Collab. Diagrams: Create/Update Operation, Create/Update Process Plan > : ProcessEngineerInterface > : ProcessPlanServer > : ProcessEngineer O1: Operation Input, P2: Process Plan Input > : OperationServer P2.2: Operation Request P2.3: Operation Info O1.3: Operation Info, P2.5: Process Plan Info P2.1: Create Process Plan P2.4: Process Plan Info O1.1: Create Operation O1.2: Operation Info Use Cases

21 Collab. Diagrams: Create/ Modify Work Order > : ProcessEngineerInterface > : ProcessPlanServer > : ProductionManager R1, R2: Production Input > : WorkOrderServer R2.2: Create R2.3: Part Info R1.3, R2.5: Production Info R1.1: Process Plan Request R1.2: Process Plan Info R2.1: Create R2.4: Work Order Info > : PartServer Use Cases

22 Collaboration Diagrms: Receive Part > : ProductionManager Interface > : Pick&PlaceRobot > firstLineWS Controller > : ReceivingWS Controller > : ProductionManager A1: Production Input A5 = B3: Part Coming A3: Pick & Place Robot Command A4: Pick & Place Robot Status A2: Start Part B2: Part Request Use Cases Note: it isn’t an UML notation

23 Collaboration Diagrams: Process Part at WS > : AssemblyRobot > successorLine WorkStationController > aLineWorkStation Controller C2, C15a: Part Request B11: Start Assembly B2, B15a: Part Request > : Pick&PlaceRobot > : OperationServer > predecessorLine WorkStationController > : ProcessPlanServer A15=B3: Part Coming B15=C3: Part Coming B5: Operation Request B6: Operation Info B12: Operation End B4: Next Operation Request B7: Operation Info B9: Robot Pick, B13: Robot Place B8: Part Arrived, B10: Part Ready, B14: Part Placed

24 Collaboration Diagrams: Ship Part > : ProductionManager Interface > : ShippingWorkStation Controller C2: Part Request > lastLineWorkStation Controller B15=C3: Part Coming > : Pick&PlaceRobot > : ProductionManager C7: Part Complete C5: Pick & Place Robot Command C4: Part Arrived C6: Pick & Place Robot Status C8: Production Info Use Cases

25 Subsystem Structuring Idea: we structure the system in subsystems and then develop the subsystem collaboration diagrams Two things to considerate: Geographical distribution (e.g. client/server) Use-case-based collaboration diagrams From View alarms: alarm handler server, operator interface From View ws status: ws status server From Create/update operation/process plan: process engineer interface, operation server and process plan server Two servers used together  process planning server Process planning server + process engineer interface  process planning subsystem From Create/modify work order: production manager interface, part server, work order server Two servers  production management server From Manufacture part: Receiving/Line/Shipping Workstation controller, ws status server All in a part processing subsystem

26 Factory Automation System > : Production Manager > : Process Engineer <<aggregate subsystem>> : ProcessPlanning > : Operator Start Part <<server subsystem>> : AlarmHandling Server <<aggregate subsystem>> : Production Management <<aggregate subsystem>> : PartProcessing > : Operator Interface <<external system>> : Pick&PlaceRobot <<external system>> : AssemblyRobot > : FactoryAutomationSystem Process Plan Input Process Plan Info Process Plan Info Process Plan Request Production Input Production Info Operation Info Display Info Alarm Request Alarm Data Part Complete WS Request WS Data Operator Request Assembly Robot Command Assembly Robot Status Pick & Place Robot Command Pick & Place Robot Status Next Operation Request Tasks

27 Process Planning Subsystem : Process Engineer Operation Request > : ProcessPlanning Process Plan Input Process Plan Info Process Plan Info Create Process Plan Operation Info <<aggregate subsystem>> : Production Management <<aggregate subsystem>> : PartProcessing Next Operation Request Operation Info Process Plan Request Process Plan Info Create Operation Info > : ProcessPlanningServer > : ProcessEngineer Interface Tasks > : ProcessPlan Server > : Operation Server

28 Production Management Subsystem > Start Part <<aggregate subsystem>> : PartProcessing Production Input Production Info Part Complete > : ProductionManagement > : Production Manager Interface > : WorkOrder Server > : PartServer <<server subsystem>> : ProcessPlanning Server Process Plan Request Process Plan Info : Production Manager Create Work Order Info Part Info > : ProductionManagementServer Tasks

29 Part Processing Subsystem <<server subsystem>> : AlarmHandling Server <<aggregate subsystem>> : Process Planning <<aggregate subsystem>> : Production Management > : Receiving Workstation Controller > : Shipping Workstation Controller > : Line Workstation Controller <<server subsystem>> : Workstation StatusServer > : Operator Interface <<external system>> : Assembly Robot <<external system>> : Pick&Place Robot <<external system>> : Pick&Place Robot <<external system>> : Pick&Place Robot Alarm WS Request WS Data Start Part Coming Part Request Part Coming Part Complete Part Request Pick & Place Robot Command Pick & Place Robot Command Pick & Place Robot Command Operation Info Next Operation Request Pick & Place Robot Status Pick & Place Robot Status Pick & Place Robot Status Assembly Robot Command Assembly Robot Status WS Status Tasks > : PartProcessing

30 Static Model of Composite Classes <<server subsystem>> AlarmHandling Server > Operator Interface <<server subsystem>> Workstation Status Server <<control subsystem>> Line WS Controller <<control subsystem>> Shipping WS Controller <<control subsystem>> Receiving WS Controller > Production Manager Interface <<server subsystem>> Process Planning Server > Process Engineer Interface <<server subsystem>> Production Management Server Is Client of 1 1 1 1 1 11 1 1 1 1 1 1 1 1 1 1 1..* 1 1 1 1 1 1 1 1 Is Client of Starts Part at Sends Part to Sends WS status to Sends Alarm to Sends Alarm to Sends Alarm to Sends Message to Conceptual model

31 Distributed Software Architecture Idea: each component of a distributed architecture executes on its own physical node and communicates with other components with messages. Steps: 1. Splitting system in separate nodes; can operate separately Each ws controller: each one can operate if others are unavailable (  sensors and actuators associated to them) Process planning server, production management s., alarm handling s.: if separated can respond quickly to requests Ws status server; two possibilities: One server for the whole system One per ws The second one is better for two reasons: High message traffic between this server and corresponding line ws controller Each ws node can supply both controller and server Interfaces subsystems: production manager (1), process engineer (1 each), operator(1 each)

32 Distributed Software Architecture 2. Design precise message communication Synchronous msg for client/server communication Loosely coupled msg for alarms, … For greatest flexibility, loosely coupled msg for communication between various ws controller components, production manager interface, robots and alarm handling server 3. Multiple-client/multiple-server communication Operator interface – ws status server: Status displayed not only when requested, but on change Can receive data from differents workstations concurrently

33 alarm Request (in request, out alarmData) Factory Automation System: Subsystem Interfaces > : Production Manager > : Process Engineer <<aggregate subsystem>> : ProcessPlanning > : Operator startPart (partInfo) <<server subsystem>> : AlarmHandling Server <<aggregate subsystem>> : Production Management <<aggregate subsystem>> : PartProcessing > : Operator Interface <<external system>> : Pick&PlaceRobot <<external system>> : AssemblyRobot > : FactoryAutomationSystem Process Plan Input Process Plan Info processPlan Request (in request, out processPlan Info) Production Input Production Info Display Info alarm (alarmData) alarmNotification (alarmData) part Complete (partInfo) WS_Request (in request, out wsData) WS Notification (wsData) Operator Request assembly RobotCommand assembly RobotStatus pick&place Robot Command pick&place Robot Status next Operation Request (in request, out operation Info) Back

34 createProcess PlanRequest (in request, out processPlanInfo) Process Planning Subsystem: Subs. Interfaces : Process Engineer > : ProcessPlan Server > : Operation Server > : ProcessPlanning Process Plan Input Process Plan Info <<aggregate subsystem>> : Production Management <<aggregate subsystem>> : PartProcessing > : ProcessPlanningServer > : ProcessEngineer Interface createOperation Request (in request, out operationInfo) operationRequest (in request, out operationInfo) processPlanRequest (in request, out processPlanInfo) nextOperation Request (in request, out operationInfo) Back

35 workOrderRequest (in request, out workOrderInfo) Production Management Subsystem: S. Interfaces > startPart (partInfo) <<aggregate subsystem>> : PartProcessing Production Input Production Info partComplete (partInfo) > : ProductionManagement > : Production Manager Interface > : WorkOrder Server > : PartServer <<server subsystem>> : ProcessPlanning Server processPlanRequest (in request, out processPlanInfo) : Production Manager partInfoRequest (in request, out partInfo) > : ProductionManagementServer Back

36 ws Status (status) Part Processing Subsystem: Subsystem Interfaces <<server subsystem>> : AlarmHandling Server <<aggregate subsystem>> : Process Planning <<aggregate subsystem>> : Production Management > : Receiving Workstation Controller > : Shipping Workstation Controller > : Line Workstation Controller <<server subsystem>> : Workstation StatusServer > : Operator Interface <<external system>> : Assembly Robot <<external system>> : Pick&Place Robot <<external system>> : Pick&Place Robot <<external system>> : Pick&Place Robot alarm (alarmData) ws Notification (wsData) wsRequest (in request, out wsData) startPart (partInfo) part Coming (partInfo) part Request (partInfo) pick&Place Robot Command pick&Place Robot Command nextOperation Request (in request, out operationInfo) pick&Place Robot Status pick&Place RobotStatus assembly Robot Status alarm (alarmData) alarm (alarmData) part Coming (partInfo) part Request (partInfo) part Complete (partInfo) pick&Place Robot Command pick&Place RobotStatus assembly Robot Command Back > : PartProcessing

37 System Configuration To configure individual target systems we may Define different workastations Define parameters such as wsID, alarm name, … for parameterized components Connect component instance and allocate them to phisical nodes There are different target configurations Highly distributed: see next slide Localized autonomy Adequate performance Failure of a node not impacting on another immediately Grouping process planning server, production management s., alarm handling server As above + Process engineer interface + production manager interface in a single node Multiuser interactive node

38 System Configuration : ProcessEngineer Interface {1 per Engineer} : Prodution ManagerInterface {1 node} > : Receiving WS Controller {1 node} > : AlarmHandling Server {1 node} : Operator Interface {1 per operator} : Line WS Node {1 node} : Shipping WS Controller {1 node} : ProcessPlanning Server {1 node} : ProductionMa- nagementServer {1 node}


Download ppt "Comet, a Case Study Distributed Factory Automation System Software Engineering 2000-2001 Petta Davide."

Similar presentations


Ads by Google