The provision of flexibility in hiercrchical control systems

Abstract Considerable benefits can be achieved by structuring not only the program, but also the data that is required to drive it. A methodology is described that allows the systems developer to concentrate on the areas which he is currently developing without effecting other parts of the system. A layered structure has been identified in both the program and the data. For instance, the program can be divided into system utilities, system logic, application, and configuration layers, each of which can be developed independently. A program development methodology has been developed based on this layered model that is particularly appropriate for systems that are to be programmed in modern languages allowing a high degree of parallel processing such as Modula II, ADA or Occam. Tools have been developed to manipulate the data modules. These are a Data-Module Profile Generator and a Data Editor. When a new data module is being prepared a definition module is first written. This specifies the data fields in the record. The data editor is then used to enter the actual data. Two example applications are discussed. The first is a comparatively simple milling machine controller, which has been implemented using a three-layer model. This has been further extended to a more complex robotics application: the assembly of electronic wiring looms. This has been implemented using a seven-layer model. It was possible to use the same set of utilities to develop the data for both applications, even though their complexity differed considerably.