The use of Estelle to specify manufacturing systems

The use of Estelle to specify manufacturing systems

North-Holland Microprocessing and Microprogramming 28 (1989) 253-258 253 The use of Estelle to specify manufacturing systems M. Morisio and R. Sis...

453KB Sizes 0 Downloads 223 Views

North-Holland Microprocessing and Microprogramming 28 (1989) 253-258

253

The use of Estelle to specify manufacturing systems M. Morisio

and

R. Sisto

Dipartiinento di Automatica e Informatica, Politecnico di Torino Corso Duca degli Abruzzi 24, 10129 Torino, Italy This paper proposes the use of Estelh (a specification language standardized by ISO) to specify Manufacturing Systems. After a review of the main features of manufacturing systems and of EsteUe, a case study is presented: the specification of a Flexible Manufacturing System. Advantages and disadvantages encountered in the use of Estelle to specify Manufacturing Systems are highlighted.

1

Introduction

A discrete part manufacturing system (MS) receives raw materials and semi-manufactured parts, works or assembles them and outputs a set of finished or semimanufactured products. Three kinds of components can be individuated in it: machines, controls (programmable logic controls, numerical controls, robot controis) and computers: the latter coordinate, command and get feedback from the former two. An MS is therefore a complex system featuring real time distributed software, large databases handling, sophisticated scheduling issues. People involved in manufacturing need to analyze the behavior of existing MSs and to specify and design new ones. In other words they need to model them with a language which should be formal in order to allow verification of the consistency of the specification, provide concurrency constructs to model the paralhl activities happening in an MS, support hierarchical decomposition/composition to mirror the different levels in which an MS is organized. EsteUe, a language standardized by ISO to describe the logic of processes in communication protocols, satisfies the listed requirements: it is formal and executable [8], describes concurrency using extended state machines that communicate with one another by the exchange of non-blocking messages, is based on a powerful and flexible programming language such as Pascal, and can be hierarchically structured. From these considerations the idea of experimenting Estelle to model MSs was born. In this paper we present a case study, the specification of a Flexible Manufacturing System (FMS), which is representative since it resumes the key issues in MSs. We also outline advantages and disadvantages encountered in the use of Estelle to specify MSs. The paper is organized as follows: section 2 describes the characteristics of MSs, section 3 introduces Estelle, section 4,is dedicated to present the case study, section 5 balances advantages and disadvantages encountered.

2

Manufacturing

systems

Discrete part manufacturing systems [1,2] are distributed, discrete event systems, in which different description levels implying different time scales, event types and decision kinds can be identified: m a c h i n e level: at this level typical hardware includes simple machines (drilling, milllng, boring machine, lathe) and programmable ones (numerical control, machining center, robot); events, the beginning and the end of an operation on a piece in a machine, happen every fraction of second or second, control decisions are very simple (operation sequencing) and are taken by programmable logic controls, numerical controls and robots according to the downloaded part programs. cell level: a cell, the first level of aggregation of an MS, is composed of machines connected by a transportation system which is made up of transfer lines or automatic guided vehides (AGV's). Events, the transfer of pieces among machines, happen every second or minute, control decisions involve the routing and priority of pieces and the tooling of machines. Hardware includes a real time minicomputer or personal computer where control decisions and monitoring happen, and a local area network. s h o p level: a shop is composed of cells and a transportation system; events are the beginning and end of the work for a lot (a collection of equal pieces to be produced), a machine, breaking down or the scheduled maintenance. Events happen every hour or day and impose decisions about scheduling of lots on the shop. A minicomputer and a local area network must be provided. p l a n t level: many shops compose a plant. Functions to be performed on a supermini or a duster are long term scheduling (every day or week), product and process design storing, inventory control, purchase order control, customer order processing.

M. Morisio, R. Sisto / Use of Estelle to Specify Manufacturing Systems

254

The timing of events can vary very much: working a piece on a machine can take from fractions of seconds to several hours; what is constant is the growing interval between the events as the machine, cell, shop or plant levels are considered.

TRANS WHEN i.p PROVIDED b FROM f

It is commonly accepted that the levels described are organized in a hierarchical architecture [3,4,5], in which every level of aggregation is slave with respect to the higher one and masters the immediately lower levels. This architecture, suggested from the system theory, has emerged as a powerful means to approach complexity and to achieve decentralization and reliability.

3

Estelle

Estelle [6] describes a distributed system as a number of hierarchically organized processes called tasks. At the top hierarchical level, the specification can be structured into a number of system tasks, that is to say independent, asynchronously running processes, otherwise it is organized as a single system task. Every system task can be structured into several synchronous subtasks and these tasks may themselves be structured. Two tasks communicate with each other by exchanging information units (interactions) through bidirectional channels whose ending points (called interaction points) are provided with unbounded FIFO queues, preventing message losses. Each task is described as an extended finite state machine, the main extension being a piece of a Pascal program that can be associated to each transition and executed at the firing time. Particular statements are provided also to create or destroy sub-tasks and channels so that dynamic evolution of the system's structure can be described. Each transition has a number of firing clauses that, when satisfied, enable its firing. Fig. 1 shows the typical form of a transition definition having the following meaning: WHEN an interaction of type i is on the top of the queue associated to the interaction point p, PROVIDED that the boolean expression b is true, a transition is enabled FROM state f TO state t after a DELAY of n time units has expired. If more transitions are enabled at the same time, one of them is selected according to their respective priorities. Only if a task does not have any enabled transition, transitions of its sub-tasks can be executed. So, a father's transition has always implicit priority over the children ones. Within every task, according to the task's class, two execution policies may take place for the transitions of the children. In a process task, at each computation step, all the selected transitions (one for each sub-task) are executed in parallel, while in an activit!l task only one transition is non-deterministically chosen out of the previously selected ones and executed. From a syntactic viewpoint, an Estelle specification is composed of nested definitions of static entities called modules. Tasks are the run-time instances of modules.

TO t

DELAY n

PRIORITY x BEGIN

END

Figure 1: The structure of a transition in Estelle The specification of a module is composed of a module header definition, where the external interaction points and the exported variables of the module are defined, and a module body definition, composed of three parts. The first is the declaration part, containing Pascal declarations, specifications of the types of channels that can be used within that module (defining what are the interactions that can be sent and received) and submodule definitions (corresponding to the sub-tasks that can be created within that module's instances). The second part is the initialization part that is a set of statements executed at the beginning, establishing the initial configuration of tasks and channels. The last part is the transition part which defines the transitions of the state machine associated to the module and the corresponding actions. Fig. 2 summarizes the structure of an EsteUe specification. The interested reader is addressed to [6,7] for further detMls about Estelle.

SPECIFICATION [] [] [