An expert system for selecting and configuring programmable logic controllers Umit S. Bititci and Jone Lunde Manufacture and Engineering Management Division, University of Strathclyde, Glasgow, UK (Received January 1988) ABSTRACT Over the last ten years, the programmable logic controller (PLC) market has grown dramatically. Due to this, selecting and configuring PLCs for a production system can be a complex, timeconsuming and expensive process for a company lacking the necessary in-house expertise. An expert system application for this purpose might have potential as a useful tool to speed up the selection process, and thus lower the cost. The object of this project was to do a survey of PLC market leaders and develop an expert system using Expertech's Xi Plus expert system shell, for selection and configuration of PLC systems for specific applications. This paper describes in detail the package developed, emphasizing on the mechanics of the Lotus 123-Xi Plus interface. Types of problems encountered and solutions adopted are also discussed in some detail.
INTRODUCTION Programmable logic controllers were introduced in the early 70s as a direct replacement to conventional relay and fluidic control systems, and became widely used in process control applications. The early 80s, with the reducing cost of semiconductor devices, have seen the development of PLCs with high processing power, capable of high-level communications, colour graphics, maths computations and data storage. These features, in addition to the PLC's basic task of monitoring and controlling digital and analog sensors and actuators, quickly and efficiently, led to the use of distributed PLC systems for real-time control of modern flexible manufacturing systems, process plants and humancentred assembly lines. Examples of these are Cummins Engines FMS 1 for machining and 0952-1976/89/020154-0852.00 ~) 1989 Pineridge Ltd
154
Eng. Appli. of AI, 1989, Vol. 2, June
assembling diesel engine connecting-rods, Van den Burgh and Jurgens margarine processing plant: and Polaroids camera assembly line. Most modern PLCs are of modular construction. with different modules mounted on a suitable rack. The main modules of a PLC are the power supply and processor. In addition, there are a range of input/output modules available to fulfil a variety of requirements. These additional modules may be: discrete I/O, analog I/O, Word I/O, ASCII message, Colour graphics, Intelligent I/O, Communication modules, etc. Each type of input/output module may be further categorized according to its function, for example a discrete I/O module may be designed to serve different voltage or current ratings as well has having a number of I/O points. Typically for a large plant a PLC system configuration may consist of up to 500 modules. In an application on this scale, the systems builder, who is responsible for selecting and configuring a suitable PLC system, is faced with a complex task. Confronted with the task of automating a manufacturing plant, the systems builder has to review the specific application, in order to generate a functional specification. These requirements, then, need to be compared to what the market has to offer. A selection will be made, primarily based on functionality and price, although other factors such as management policy may also affect the final decision. During the specification phase, flexibility is also an important consideration. Careful thought must be given to possible future exPansion, compatibility requirements with existing equipment, etc.--which further complicates the selection task. In this paper, the structure and operation of an expert system capable of selecting and configuring a PLC system for a specific application is discussed. The system makes use of a knowledge-base which contains the expertise associated with selecting and configuring a PLC system. This knowledge base then reacts with an external database which contains information on commercially-available PLCs. A series of questions are asked to the user. Based on this input, the system searches through the database, and selects and configures suitable systems for specific applications.
PLC S E L E C T I O N PROCESS For a given application, a system's builder has to go through the process shown in Figure 1 in order to identify a suitable PLC system. This selection
An expert system for selecting and configuring PLCs." U. S. Bititci and J. Lunde
I
SURVEY OF AVAILABLE SYSTEMS
REOUIREMENT$ SPECIFICATION
J l T COMPARING
L
F SUITABLE PROCE880RS
l--=-,.,I poue, I iGONFIGURE PLC 8YSTEMS] FOR EACH ALTERNATIVE J
I
C08T AND 81ELECT PLC 8Y8TEM
1
Figure 1 The PLC selection process
and configuration process involves: • Requirements Specification • Identifying Suitable Processors • Configuring and Costing Each one of these issues is now discussed in turn.
Requirements specification The requirements specification phase is to enable a detailed study of the application, based on an operational description of the plant. Table I shows the typical factors which need to be considered in order to arrive at a realistic specification. Although the factors listed in Table I appear to be exclusive, to some extent they are inter-related. For example the memory size is directly tied to the number of input/output points used by the program; similarly, the scan time is directly affected by the actual memory used (i.e. program size). The I/O requirements should include operating conditions as well as the number of I/O points required. The operating conditions specify the voltage and current ranges I / 0 po!nts are expected to operate in. as well as their sensitivity to voltage
fluctuations. Most PLCs available on today's market offer a range of I/O modules. For example, an I/O module may have 8, 16 or 32 points, where the 32-point I/O card is most sensitive to voltage fluctuations, but it tends to be more cost-effective. Where a PLC is going to be used for process control, 'Partial Integral Derivative (PID)' facilities will be required. The number of PID loops required now and in the future, together with the need for operator access to the PID parameters, must be established. In order to establish diagnostics, monitoring and reporting facilities, additional components like ASCII and graphics modules must be included in the PLC configuration. Similarly for applications requiring advanced mathematical calculations, the selected PLC system must be capable of performing extended math functions and data manipulation operations. The type of communication links to use is also an important factor, particularly when the selected system is going to be a part of an integrated system. Most PLC suppliers support basic communication facilities such as RS232, RS422, etc. In addition to these, proprietary local area networks (LAN) such as Allen-Bradley's Datahighway, and Texas Instruments' TIWAY, are also supported. It is therefore important to clarify the communication and networking requirements of the application in question. In summary, the requirements specification provides a detailed picture of the minimum capability required from a PLC system, based on operational descriptions.
Identifying suitable processors Having completed the requirements specification the system's builder will carry out a review of Table 1 Key factors in requirements specification
Number of discrete inputs, operating conditions Number of discrete outputs, operating conditions Number of analog inputs, operating conditions Number of analog outputs, operating conditions Number of word inputs, operating conditions Distributed input/output requirements Intelligent input/output requirements ASCII message requirements Graphics requirements Number of Timer & Counters required Number of DRUMS and SEQUENCES required Number of PID loops required Memory size requirements Scan time requirements Communication requirements Compatibility requirements Math and data manipulation requirements
Eng. Appli. of AI, 1989, Vol. 2, June
155
An expert system for selecting and configuring PLCs: U. S. Bititci and J. Lunde
available systems. The requirements will then be compared to the capabilities of available systems in order to identify processors which are capable of fulfilling the application-specific requirements. In carrying out this task, the systems builder does not necessarily consider all the factors detailed in the requirements specification phase. This is because, for a given application, the capabilities of the processor are considered to be the limiting factor. Therefore, at this stage, the systems builder only needs to consider the overall requirements without looking in detail at various plug-in modules. For example, take an application which requires 25 discrete inputs at 24 V DC, and another 50 discrete inputs at 110 V AC. At this stage the system's builder will be concerned only with the total number of discrete inputs required, i.e. 75, and the operating conditions will be ignored until the configuration phase. In other words, for this example a PLC capable of handling more than 75 inputs will be suitable. Of course, in an automated database search system, this in itself will cause problems. The danger is that it will be so easy to overspecify, e.g. a PLC with 2064 discrete inputs can in effect handle 75 inputs. In practice, an experienced systems builder will naturally avoid over-specification by ,using know-how and judgement, in contrast to an automated search system based on a simple rule such as ' > 75' which will retrieve all PLCs capable of handling more than 75 discrete inputs. As a result of this comparison exercise the system builder will identify a number of suitable processors. The choice here may be influenced to a certain extent by management policies, such as local sourcing, preferred vendors, etc.
Configuring and costing In this phase, the system builder will consider the requirements specification in detail, together with the selected processors, to identify appropriate plug-in modules. Consideration will be given to the number of I/O points required, various operating conditions, operator interfaces, communication and networking requirements. If the previous example is followed, at this stage the system builder will have to consider the different voltage ratings required in order to select the appropriate number and type of 24 V DC and 110 V AC discrete input modules. Having completed the configuration task for each one of the suitable processors, each complete system will be costed, and (based on this information and
156
Eng. Appli. of AI, 1989, Vol. 2, June
again influenced by management policy) a final decision will be made. AN EXPERT SYSTEM FOR PLC SELECTION AND C O N F I G U R A T I O N In the University of Strathclyde, Manufacture and Engineering Management Division, an experimental expert system has been developed to carry out the task of PLC selection and configuration. In this section, the structure and operation of this system is discussed in detail.
Systems software In the first section, the basic structure of the system developed was briefly introduced. The main components of the system are a knowledge-base which contains the know-how, and an external database which contains information on different PLCs, processors and modules. The reason the main database is separated from the expert system itself is that this configuration allows updating of the database with minimum modifications to the knowledge-base. The software used to develop this system are the Expertech Xi Plus Expert System Shell Release 3 (Xi-3-plus) and the Lotus 123 spreadsheet package. Within Xi-3-plus any number of applications can be built simply by stating a number of production rules (i.e. if-then statements). Each application can be exclusive, or it may represent a portion of a larger task and may contain one or more knowledge-bases, which together represent the know-how within a domain. Xi-3-plus also allows a number of control rules to be stated within the knowledge-base, which allows some control Over the inferencing mechanism. The system is also capable of interfacing with external programs, such as programmes written in C language, as well as supporting standard interfaces to external software packages. For example the Xi-3-plus routine XIPWKS.EXE allows data retrieval from a Lotus 123 database. When selecting the database, emphasis was put on the simplicity of the package. Of course the highest priority factor was that the package was able to interface with the Xi-3-plus software and that it facilitated easy structuring and editing of the database. Lotus 123 spreadsheet was selected because it could also double up as a database containing 8192 rows and 256 columns. Each intersection of a row and a column forms a cell which is a unit of the database that can store data.
An expert system for selecting and configuring PLCs." U. S. Bititci and J. Lunde X! Pk.e
_kL_ruo._lZ3. . . .
'
.... ::}2
REPORT TO
t,o
--I
(,,__.)
~TERIMINE
Ho---H
~
---,
~8
m~
H
-q
sub-routine knowledge bases, one for each PLC supplier. This was found to be necessary to accommodate the individual characteristics associated with each of the suppliers. The database contains data associated with PLC processor units. It is structured such that each processor and its data makes up one record, i.e. a row containing approximately 30 cells. The first cell, in a record, holds the processor name, while the following cells contain data relevant to the selection process. A sample of the database is shown in Table 2. When the database file is read by XIPWKS.EXE, record by record, the value in each record is placed in a set of identifiers, i.e. database-identifiers. Application-specific information is provided to the main knowledge-base through an input form displayed on the screen. This input is placed in a set of user identifiers and the database record counter is set to one. The 'end of database' text is performed by a demon, which fires when the last record has been processed. If 'end of file' has not Table 2 Sample database (not complete)
Figure 2 PLC selection and configuration system logic
Each cell is uniquely addressable by a column letter and a row number (e.g. C20). The Xi-3-plus-Lotus 123 interface is achieved through a routine entitled XIPWKS.EXE, which is used by an Xi-3-plus application to retrieve data from Lotus 123. To use this program it must first be defined by the application it is called from. For example, to read two cells from the Lotus 123 file entitled 'abc.wks' and put their values in the identifiers 'dig input' and 'memory capacity' the following demon may be used: when . . . then cells is bl . . . b2 and do program read wks using 'abc.wks', cells) giving (dig input, memory capacity) The XIPWKS.EXE routine, as discussed, is able to return both numeric and text values.
System overview Figure 2 shows the PLC Selection and Configuration s y s t e m as a flow chart. The system consists of two m a i n parts: the Lotus 123 processor database and the Xi-plus application. The Xi-plus application c o n t a i n s a ' m a i n ' knowledge base and a n u m b e r of
LC model
Supplier
Memory
Digital inputs
allen bradley ~1c2 allen bradley )1c2 02 allen bradley )1c2 05 allen bradley ~1c2 16 allen bradley }1c2 17 allen bradley }1c2 20 allen bradley }1c3 allen bradley }1c5 12 allen bradley ~tc5 25 , texas instruments TI140 texas instruments TI525 1102 texas instruments TI525 1104 texas instruments TI525 1212 texas instruments TI560 texas instruments TI565 texas instruments TI520C 1102 texas instruments TI530C 1112 texas instruments TI530C 1104 texas instruments PM550C 112 gec minigem gec gem 80 100 MC gec gem 80 141 MC gec gem 80 300 MC gould 884 a 301 pc gould 484 pc gould 984 x pc family gould 984 b pc family bbc procontic KR 228 KT 228 bbc procontic KR 264 bbc procontic DP 800 K ED 1803 bbc procontic DP 800 K ED 1804 " mitsubishi F1 20MR ES mitsubishi F1 40MR ES mitsubishi F2 20MR ES mitsubishi F2 60MR ES mitsubishi A1 E CPU mitsubishi A3E CPU
allen allen allen allen allen allen allen allen allen texas texas texas texas texas texas texas texas texas texas gec gec gec gec gould gould gould gould bbc bbc bbc bbc mitsub mitsub mitsub mitsub mitsub mitsub
1 1 3 3 6 8 1920 6 21 1 5 8 20 512 256 5 15 20 7 0.5 12 128 512 8 8 8 64 2 2 32 64 1 1 1 1 6 30
128 256 128 512 512 896 4096 512 512 24 512 1023 1023 8192 8192 512 1023 1023 256 64 512 512 8192 1024 512 256 8192 16 40 3000 3000 12 24 12 36 256 512
Eng. A p p l i . o f A I , 1 9 8 9 , V o l . 2, J u n e
157
An expert system for selecting and configuring PLCs: U. S. Bititci and J. Lunde been met, the main knowledge-base then compares the values of the database-identifiers with the values of the corresponding user identifiers. If the values do not match within given parameters, the record counter is incremented and the next record is read. If the values match, the processor held in that record is selected and a form is displayed, showing the selected processor and associated technical data. The user is then prompted for a yes/no input, depending on whether configuration of the selected processor is required. If the reply is 'no', the database-identifiers are reset and a new record is read. If the reply is 'yes', the knowledge base checks the supplier identifier and enters the appropriate subroutine knowledge-base where a configuration, based on the selected processor and user requirements, is determined. The configuration is reported to a file, and control is transferred to the main knowledge-base, which increments the databaserecord counter and reads the next record. At the end of the consultation a final report is displayed containing all suitable processors identified and their configuration.
The 'main' knowl~ge-base This knowledge-base contains the following elements: • The 'loop' in which XIPWKS.EXE is called. • The processor selection demon. • Various demons for calling sub-routine knowledge bases. • Demons controlling the display of forms and reports. In this section each of the above elements is discussed in detail.
The X I P W K S . E X E call loop The XIPWKS.EXE routine allows the Xi plus application to access the Lotus 123 database. The mechanics of this process have already been briefly discussed in an earlier section. In order to allow the Xi plus application to access the Lotus 123 database record by record, the XIPWKS.EXE routine is built within a loop. The loop is controlled by a demon as shown below: when current database record is Current database record/ and cellno of Current database record is Cellno and successor of Current database record is Next record then command reset database--identifier 1 and command reset database--identifier 2
and force cellno is cellno and do program read wks using ( .... cellno) giving (...) and current data is ready" and force current database record is next record In addition to this demon, the knowledge base contains a number of facts which identify the number of cells in each record. These facts are as follows: fact cellno of '1' is a2.. z2 fact cellno of '2' is a3.. z3 fact successor of '1' is "2' fact successor of '2' is "3'
Following these facts is a demon which sets the identifier 'current database record' to 'l'. As soon as this identifier has got a value, the loop demon triggers. The first line in that demon puts the value of 'current database record' (i.e. '1') into 'Current database record' which is a floating variable. The next line sets 'Cellno' to the 'Cellno of current database record'. Using the first set of facts (i.e. cellno of '1' is a 2 . . z2), 'cellno of 1' is therefore set to ' a 2 . . z2'. In the third line of the loop demon, the value of 'successor '1' ', which is '2', is put into the floating variable 'Next record'. The lines preceding the 'and force . . . ' statement, reset the database identifiers before they receive a new set of data in the X I P W K S call statement. In the 'and force ..." statement, the value ' a 2 . . z2' is transferred from 'Cellno' to 'cellno' which is the identifier used as parameter in the X I P W K S cell. In the last line, the value of 'Next record' is transferred to 'current database record' and the demon fires again. The demon keeps firing until it encounters a 'number' with no successor.
The processor selection demon A shortened version of the processor selection demon is shown below: when current data is ready and memory> = user memory and dig input > = user dig input and dig output > = user dig output and an input > = user an input and an output > = user an output and scan time< = to user scan time then command reset current data and control is ok and do form 'Selected Processor' The second last line of the loop demon sets the
158
Eng. Appli. of AI, 1989, Vol. 2, June
An expert system for selecting and configuring PLCs: U. S. Bititci and J. Lunde identifier 'current data' to 'ready'. This is done to prevent the selection demon from 'looking' at the data until all the cells in the current database record have been retrieved. As soon as 'current data is ready' the selection demon fires, and compares the database-identifiers on the left hand side of the relation to the user-identifiers on the right hand side. If one condition fails, the whole demon fails and the next database record is read. If the conditions are true, 'current data' is reset, the identifier 'control' is given the value 'ok' and the processor corresponding to the current database record is selected and displayed on a form together with the associated data. The demon shown only tests for a few selection criteria--memory capacity of the processor, digital and analog I / O capacity and program scan time. Also, it does not restrict the selection process, i.e. it selects all processors with criteria values greater than or equal to the user requirements. For example, if the user specified 3 Kilobytes as sufficient memory, all p r o c e s s o r s w i t h memory capacity equal to or exceeding 3K would be selected. This means that the demon would select a processor with 2 Megabytes memory capacity as well as a processor with 5K, i.e. some of the information presented to the user would be irrelevant. How this problem was tackled will be discussed in a later section.
restores the state of the consultation, which can then carry on from where it left off.
The report control demon When 'current database record' has the value '80', a demon fires and sets the query identifier 'plc' to 'complete'. The report control demon: when plc is complete then command reset data and do form 'End of PLC Selection & Configuration' and report from file (filename) and check plc will then fire and reset the data before it displays the final report.
The sub-routine knowledge-bases These knowledge-bases are basically of the same format, the difference between them being due to the fact that each individual knowledge-base corresponds to one particular supplier. The basic decision rules are general to all knowledge-bases, but special configuration features, unique to a particular supplier, are taken care of in special rules, unique to the supplier's knowledge-base. The first line in a sub-routine knowledge-base is an entry statement: entry ((list of identifiers from the calling knowledge base))
The sub-routine call demons As seen in the previous section, the identifier 'control' was set to 'ok' when all conditions in the processor selection demon succeeded. The fact that "control' is 'ok' fires the sub-routine call demons: when control is ok and supplier is (supplier name) then command reset control 'and do kb "(supplier name) Config"using(...) giving(...) and do form "PLC Configuration" The second line contains the identifier 'supplier' which gets its value from the Lotus 123 database file. The value is an abbreviation of the supplier name of the processor in the current database record, e.g. "texas' for Texas Instruments or 'allen' for Allen Bradley. The condition in this line must be satisfied before a sub-routine knowledge base is called, so if 'supplier" has got the value 'texas', then the demon containing the Texas Instruments configuration knowledge base will fire. The sub-routine call itself is of the same format as the X I P W K S call. On returning from the call Xi-plus
which defines the identifiers it needs to carry out the configuration task. At the bottom of the sub-routine is a return statement, which specifies the identifiers that are supposed to return values to the calling knowledge-base. In the sub-routine knowledge-bases, the P L C configuration is determined, based on user requirements and the selected processor. The type and number of I/O-modules, memory modules, etc., are determined in decision rules like the following: if processor is allen bradley plc 2 15 and 1770 XU is Memory module 1 and 1770 XP EPROM is Memory module 2 then memory module 1 is Memory module 1 and memory module 2 is Memory module 2 if voltage sensitivity is medium and user max dcvolt = 30 and user min dcvolt = 10 then 1771 IBD DC HD is Dig ~nput module 1 and no of modules=int (user dig input/16)+ 1 and dig input module 1 is Dig input module 1 The first rule is triggered if the database-identifier 'processor' has the value 'allen bradley plc2 15', and
Eng. Appli. of AI, 1989, Vol. 2, June
159
An expert system for selecting and configuring PLCs. U. S. Bititci and J. Lunde
two alternative memory-modules are assigned to the processor. The next rule fires when the user-identifier "voltage sensitivity' has the value 'medium', i.e. a 16-point I / O card is needed. The appropriate I / O module is selected, taking the voltage range into account, and the number of modules needed is calculated using the formula shown. Use of this formula guarantees an integer value. When the configuration task is completed, the knowledge-base reports the resulting P L C to the 'final report' file and control is again transferred to the main knowledge-base.
Problems encountered and solutions adopted Development of the described system has not been without problems--various hurdles were encountered which needed to be resolved. In this section problems encountered and solutions adopted are discussed in greater detail.
Looping in Xi Plus This was the first problem which had to be solved, considering the fact that the system idea was based on repeatedly reading database records and incrementing the record number after each reading. The basic template for making Xi Plus loop, was obtained from the Turing Institute of Artificial Intelligence in Glasgow. This template was used to construct the loop-demon described in a previous section. What makes this demon unnecessarily complex is the awkward Lotus [23 cell address, which is impossible to increment using purely numeric calculations. The only way of solving the incrementation problem was to use a large number of facts, and juggle cell range values and record numbers, using floating variables. A second external program, written in 'C', entirely committed to the string-operation of incrementing the cell range address, was also thought of as a feasible solution. However, this option was not implemented at this stage.
capacity greater than or equal to "user memory" and less than the upper limit, are selected.
Configuration One problem here was how to store the data relevant to the configuration task. We first set out to use Lotus 123 databases for this purpose as well. but this was later found to be unfeasible. This was due to the fact that the add-on modules were not necessarily tailored for a particular processor, but could be used with a number of different CPUs. This caused a cross-linking of data, which would have badly affected the speed of the system. The solution adopted was to store the data as facts at the top of the knowledge-bases, and to use short identifier names as substitutes for the full descriptions in the rules. Taking, for example, the last rule described in the last section: fact di5 is 1771 IBD DC HD if voltage sensitivity is medium and user max dcvolt = 30 and user min dcvolt = 10 and di5 is Dig input module 1 then no of modules= intluser dig input 16)+ I and dig input module l is Dig input module I Another problem associated with the configuration task was how to make it possible for the user to choose the processor he/she wanted to configure. Two ways of doing it were considered: 1. Display a menu at the end of the C P U selection process and offer the user a choice of processor from the menu. 2. Display the selected C P U and give the user the option whether to configure it or not. The first alternative was rejected because it meant having extra identifier sets for each selected processor. This would have cluttered up the knowledge-bases and also adversely affected speed. Using the second alternative, only one identifier set is needed and it also lets the user concentrate on one processor at a time.
Restriction of the processor selection This was quite easily solved by adding a few rules at the beginning of the main knowledge-base, testing the user input values. For example, if the user input identifier 'user memory' is given a value that is less than a certain limit, 10 say, then the value of 'user memory' is multiplied by a suitable factor and the resulting value is taken as an upper limit in the selection process. Thus, all processors with memory
160
Eng. Appli. of AI, 1989, Vol. 2, June
DISCUSSION The programmable logic controller selection and configuration system described in this paper is rudimentary. It performs a basic selection and configuration task and will require enhancements if the information generated by it is to form the basis for a PLC system investment decision. First of all,
An expert system for selecting and configuring PLCs." U. S. Bititci and J. Lunde
the database containing processor data will need to be extended, and also the accuracy of the information stored will have to be increased. This task will most certainly need more time. Xi-Plus 3.0 is a large program, and with a 640K RAM PC, on which the selection/configuration system was developed, the size of the processor database used by the system is limited to approximately 40 records. In order to achieve a PLC configuration best suited to the user's application, a large selection domain is required. It is therefore necessary to extend the memory for further development work. An important aspect of using expert systems in any type of problem-solving is the 'narrowing down the problem' approach. Considering the PLC selection and configuration system in its present form, this approach has been used. As the number of suppliers and products increases, it might be advisable to classify the products depending on the applications they are designed to control, and use different databases for the various product groups. The first question posed by the expert system would then be something like: 'What is the nature of your application?' and depending on the user's response the appropriate database would read. This approach would indeed help to shrink the search domain and speed up the selection and configuration process. A feature of Xi-Plus and other expert system shells is that data can be volunteered before beginning a consultation. For example, if you have a processor
already and want to configure it for a certain application, you can supply the appropriate configuration knowledge-base with the necessary data and get the configuration without having to go through the processor selection process. If a knowledge-base cannot find a value for a particular identifier, it will automatically ask a question. This feature was not given much thought during the prototype system development process, but it will be taken into account in future development.
CONCLUSION The PLC selection and configuration system described is a rudimentary system, performing a basic selection and configuration task. In its present form it prompts the user for a PLC requirement specification, and based on this information it selects suitable processors and suggests a configuration for each processor selected. If it is to be used in practice, extensive enhancements will have to be made. Nevertheless, it proves the principle of using an expert system for selecting and configuring PLCs.
REFERENCES 1 Bititci, U. S. and Ross, A. S. PLC based diagnostic systems for FMS. Proc. FMS-7. Stuttgart, West Germany (1988) 2 Kehoe, D. F. and Bititci, U. S. Implementing manufacturing strategies through the application of programmable logic control. Proc. MACON-2. Birmingham, UK (1987)
Eng. Appli. of AI, 1989, Vol. 2, June
161