WikiPatents - Community Patent Review
Create Free Account  |  License or Sell Your Patent  |  WikiPatents Marketplace  |  WikiPatents Blog
Username:  Password:  
    
Advanced Search
System and method for programmable sequence control    
United States Patent3978454   
Link to this pagehttp://www.wikipatents.com/3978454.html
Inventor(s)Willard; Frank G. (Monroeville, PA)
AbstractA programmable sequence controller for controlling a machine or process operation including a main low-security programmed sequencer and a high-security programmed sequencer through which selected outputs from the main sequencer must pass before being allowed to control the machine or process operation. This high-security sequencer generates a sequence of steps which relate to machine or process commands under conditions critical to the operation of the machine or process and is controlled in a predetermined order. Any critical output requested by the main sequencer is caused to initiate sequencing by the high-security sequencer and is tested by the high-security sequencer as to the propriety of the generation of a permitted output to the machine or process. The high-security sequencer in this manner effects an improved interlocking between the various critical output commands and actual operative conditions.



 Title Information Submit all comments and votes
 
Patent Text Patent PDF Print Page Summary File History
Plain text PDF images Print Summary File History
Drawing from US Patent 3978454
System and method for programmable sequence control - US Patent 3978454 Drawing
System and method for programmable sequence control
Inventor     Willard; Frank G. (Monroeville, PA)
Owner/Assignee     Westinghouse Electric Corporation (Pittsburgh, PA)
Patent assignment
All assignments
Publication Date     August 31, 1976
Application Number     05/481,267
PAIR File History     Application Data   Transaction History
Image File Wrapper   Patent Term   Fees
Litigation
Filing Date     June 20, 1974
US Classification     700/1
Int'l Classification     G06F 009/16 G06F 013/08 G05B 011/32 G05B 019/24
Examiner     Shaw; Gareth D.
Assistant Examiner     Rhoads; Jan E.
Attorney/Law Firm     Lorin; C. M .
Address
Parent Case    
Priority Data    
USPTO Field of Search     445/1 340/172.5 235/151
Patent Tags     programmable sequence control
   
Enter a comma (,) or semicolon (;) between multiple tag words/phrases.
Describe this patent:
 Amusing   
 Clever   
 Complex   
 Efficient   
 Historic   
 Important   
 Innovative   
 Interesting   
 Practical   
 Simple   
[no votes]
Patent WIKI

Share information and news about this patent, including information and news about the technology, inventors, company, ligation and licensing.

 References Submit all comments and votes
 
*references marked with an asterisk below are user-added references
 U.S. References
 
Add a new US reference:  
ReferenceRelevancyCommentsReferenceRelevancyComments
3514758



[0 after 0 votes]
3875391
Shapiro
708/521
Apr,1975

[0 after 0 votes]
3825901
Golnek, Sr.
714/25
Jul,1974

[0 after 0 votes]
3783251
Pavkovich
600/1
Jan,1974

[0 after 0 votes]
3764995
Helf, Jr.
714/32
Oct,1973

[0 after 0 votes]
3763474
Freeman
714/38
Oct,1973

[0 after 0 votes]
3753243
Ricketts, Jr.
700/19
Aug,1973

[0 after 0 votes]
3741246
Braytenbah
700/289
Jun,1973

[0 after 0 votes]
3719931
Schroeder
700/11
Mar,1973

[0 after 0 votes]
3707703
Sakai
714/37
Dec,1972

[0 after 0 votes]
3701113
Chace
714/47
Oct,1972

[0 after 0 votes]
3651482
Benson
712/246
Mar,1972

[0 after 0 votes]
3585603
Ross
29/25.42
Jun,1971

[0 after 0 votes]
 Foreign References
 Other References
 Market Review Submit all comments and votes
   
Market Size
Estimate the gross annual revenues of the relevant market sector:
> $10B
$5B - $10B
$2B - $5B
$500M - $2B
$100M - $500M
$10M - $100M
$1M - $10M
$500K - $1M
$100K - $500K
< $100K
[No votes]
$0
 
$0   $2.5B   $5B   $7.5B   $10B
Market Share
Estimate the percentage of the relevant market sector this invention will capture:
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Reasonable Royalty
What percentage of gross sales should the inventor or assignee be paid?
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Public's "Guesstimation" of Royalty Value
Market SizeN/A[No votes]
xMarket ShareN/A[No votes]
xReasonable RoyaltyN/A[No votes]

N/A

License Availablity
If you are NOT the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
License Availablity
If you ARE the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
Competitive Advantage
Does this invention have a significant competitive advantage over similar technologies?
Yes

No



[No votes]
Most helpful competitive advantage comment
[No comments]

Commercial Alternatives
Are there viable commercial alternatives for this invention?
Yes

No



[No votes]
Most helpful commercial alternative comment
[No comments]

 Technical Review Submit all comments and votes
 Claims Submit all comments and votes
 


I claim:

1. In a control system operative with an industrial process and including a plurality of process condition sensors associated with process controlling devices, the combination of:

first memory means having stored therein a plurality of first output governing functions of input data representing the status of said process condition sensors for providing first mode output data corresponding to predetermined ones of said first output governing functions and pertaining to each of said process controlling devices;

second memory means having stored herein a single second output governing function of input data representing the status of selected process condition sensors and of said first mode output data for providing second mode output data pertaining to each of said process controlling devices;

timing means for generating a synchronizing signal;

counter means controlled by said synchronizing signal and operative with said first and second memory means

sequencer means operative with said first memory means when said counter means is in a first mode to generate said first mode output data in relation to said first memory means, and operative with said second memory means when in a second mode to generate said second mode output data in relation to said second memory means;

said sequencer means in the first mode selecting a predetermined corresponding first set of input data from said sensors when operative with a particular one of said first output governing functions and establishing a corresponding said first mode output datum in relation to a particular one of said controlling devices;

said sequencer means in the second mode selecting a second set of input data from said sensors and said first mode output datum and establishing a corresponding said second mode output datum in relation to said particular one of said controlling devices; and

output means inhibited by said sequencer means in the first mode and enabled by said sequencer means in the second mode for activating said particular one of said controlling devices.

2. The control system of claim 1 with said first memory means including branching governing functions logically related to said first output governing functions;

said sequencer means being operative in said first mode to select one of said first output governing functions in response to one of said branching governing functions.

3. The control system of claim 1 further including data memory means for storing said first mode output data, said sequencer means being operative in said second mode with said input data and with said stored first mode output data.

4. The control system of claim 1 with said counter means being binary counter means, with the operation of said sequencer means in first mode being initiated by one state of the most significant digital bit in said binary counter means, and with the operation of said sequencer means in the second mode being initiated by the other state of said most significant digital bit in said binary counter means.

5. The control system of claim 4 with the operation of said output means being inhibited by said most significant digital bit being in said one state, and being enabled by said most significant digital bit being in said other state.

6. The control system of claim 1 with said first mode output data being generated and successively stored during operation of said sequencer means in said first mode under control of said timing means in relation to a number of said first output governing functions;

said second mode output data being generated in relation to said stored first mode output data during operation of said sequencer means in said second mode under control of said timing means.
 Description Submit all comments and votes
 


BACKGROUND OF THE INVENTION

The invention relates to programmable sequence control operation for machines, and processes such as industrial machines or processes and it relates more particularly to high-security programmable sequence control apparatus, systems and methods.

It is known to control an industrial process sequentially, e.g. to cause the performance of a series of machine functions or process operations such that some of the steps will not be performed unless a predetermined event, which can be an earlier step, has occurred. Sequential control can be achieved with a stored set of program instructions successively read out and executed, and such control requires that at times these instructions provide for jumping, or branching out of the succession. Sequence controllers are well known, and an overview of the state of the prior art can be found in "Programmable Logic Controllers -- an Update" by N. Andreiev in Control Engineering of September, 1972, pages 45-47 and in "Programmable Logic Controllers-Painless Programming to Replace The Relay Bank" by G. Lapidus in Control Engineering of April 1971, pages 49-60. If the memory is programmable, a given hardware apparatus can be instantly adapted to fit a particular industrial process. Sequence controllers can be hard-wired, or they may use software coordinating logic elements used for decision and control. In a digital controller, conversation between the functional units is accomplished essentially by binary logic according to Boolean algebra. As a result of such logic steps, a logic decision is taken involving input conditions and output commands which admit of only two opposite states such as yes or no, do or do not, true or false, on or off. These states pertain for instance to limit switches, relay, valves or other such two-state power devices which are associated with the controlled process. A sequence controller can establish a predetermined sequence of outputs, each in one of two states, which is used to control a machine or a process and in this respect a sequence controller is distinguishable from other control systems which perfom data handling, logging or monitoring functions. The latter are generally associated with more complex control systems involving computation of data such as found in adaptive process control, for instance.

In contrast, a rather simple structural organization is practical with sequence controllers, although sequence controllers may be found also within more complex control systems, particularly in digital computer systems. As a result of this relative conceptual simplicity, efforts have been made in the past to reduce the structural combination to that essential for cost reduction and increased reliability. This trend is better represented by a combination of read-only-memory (ROM) units and a software translation, with coded instructions stored therein, of the logic coordination of the input and output signal units. Still, versatility and reliability demand a certain degree of comlexity which must be attained at the lowest cost as well as within the constraints of the simple basic structure of a sequence controller e.g. a short word length, a limited capacity for the memory, and, as a result, the availability of only a few elementary instructions.

Amond the requirements which need to be satisfied for the control of a real time process operation, an important requirement is the necessity of preventing any output command from being translated into process operation unless it is safe and desired to do so. A particular and critical control step can be unsafe to the human operator, or it may represent a risk of damage to the machinery, and equipment or the processed material. All such conditions must be anticipated and the logic of control by the sequence controller should take them into account so that only permissible output commands are provided.

As generally known, programmable logic controllers are designed to perform sequencing operations by first scanning signal inputs such as from relay contacts, limit switches, pushbuttons, valves, etc., then comparing the inputs to the conditions specified in the program and finally be energizing or deenergizing signal outputs in accordance with the programmed instructions. See in this respect "Programmable Logic Controllers" by G. Lapidus, Control Engineering, April 1971, pages 49-60.

It is known also in a programmed sequence controller to advance the control steps when machine functions, or process operations at a given step are matched with a pattern of input conditions. In particular, the prior art proposes logical interlocks to inhibit certain output signal functions in the programmed sequence until certain other input signal functions have been accomplished, and to this effect hardwiring is provided between input conditions sensed and an AND logic operation responsive to the output function to be abled or disabled. Seen in this regard U.S. Pat. No. 3,719,931 of R. L. Schroeder issued Mar. 6, 1973.

The prior art also shows that in sequence control apparatus is advantageous to use a programmable matrix of logic elements, rather than hard-wired logic, in order to modify the sequence of the control operations. See for instance, French Pat. No. 1,493,229 granted July 17, 1967 of Siemens and Halske A. G.

However, none of the above references is teaching the use of a separate high-security sequencer having selected outputs so interlocked that the propriety of outputs requested by the base programmed matrix of the controller is tested before enabling an actual ouput command, which is one important feature of the apparatus, system and method according to the present invention.

The prior art also shows two sequencers interlocked by an AND logic element to make them operate in dependency upon each other. See in this respect U.S. Pat. No. 3,651,482 of Benson issued Mar. 21, 1972. However, the sequencers disclosed in the Benson Patent are operating in parallel within a common processor and interlocking does not occur in one of them.

It is also known from the U.S. Pat. No. 3,783,251 of T. M. Pavkovich issued Jan. 1, 1974 to use two programs in digital automatic control, one program having stored predetermined critical characteristics which are compared at all times with the operative characteristics imposed by the other program so that when a mismatch occurs an interlocking signal is generated to stop the process or the machinery. Thus, one program generates a representation of all the critical parameters not to be exceeded for safe control and it monitors actual operation by the other program in order to detect any operation approaching criticality. In contrast, the present invention teaches the use of a separate high-security program having inherently safe control characteristics, and the base program does not actually exert control on the machine or process in relation to critical output functions unless the instructions to be performed have been effectively taken over by the high-security program. In addition, the present invention rather than stopping the entire operation of the process or machinery, proposes effective control operation in a prescribed and predetermined safe sequential order.

It is an object of the present invention to provide a sequence controller which is free from the prior art disadvantages and inconveniences.

Another object of the present invention is to provide a sequence controller of simple design but increased versatility.

Still another object of the present invention is to provide a sequence controller having selectable high-security features for application to control of machines and processes.

SUMMARY OF THE INVENTION

The invention resides in a programmable sequence controller apparatus for generating output commands to a controlled machine or process. The apparatus generates a main low-security programmed sequence of requested output signals and a high-security programmed sequence of permitted output signals initiated by said main programmed sequence for establishing with selected critical ones of said requested output signals said predetermined sequence of permitted output signals in relation to process requirements due, and means are provided gated for generating actual output commands in response to said permitted output signals when said process requirements are met.

The invention also resides in a method of establishing sequential output commands to a machine or process operation and comprising the steps of: generating a programmed sequence of requested output signals; generating a programmed sequence of permitted output signals in accordance with predetermined testing conditions and with at least selected critical ones of said requested outputs and controlling said process by said permitted output signals.

The invention further resides in a modular system for sequentially controlling a machine or process operation including a program memory module, a controller module, an output module, an input module and a bus system for functionally interconnecting said modules. The programm memory module includes a main set of stored instructions and a separate high-security set of stored instructions. The controller module is responsive to the main set of instructions for establishing a sequence of requested output signals and is further responsive to said high-security set of instructions for establishing permitted output signals in response to selected critical ones of said requested output signals and in relation to process requirement due. The process requirements are sensed and translated into digital input signals. The output module is inhibited when the controller module is operative under critical requested outputs from the main set of instructions, but generates actual output signals in response to said permitted output signals.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 represents an overall view of the organization of the process sequential control system according to the present invention;

FIG. 2 is a block diagram of the sequence controller apparatus according to the present invention showing the sequence control device and the controller which together form the controller module in the preferred embodiment of the present invention;

FIG. 3 shows the general organization of the sequence control device of FIG. 2;

FIG. 4 illustrates the logic circuitry of the sequence control device used for the generation of input and output data by the controller module of FIG. 2 in accordance with the present invention;

FIGS. 5, 6 and 7 are logic flow charts characterizing the operation of the sequence control device of FIGS. 3 and 4;

FIG. 8 illustrates the role of the program memory according to the present invention in relation to critical process input conditions and requested process commands;

FIG. 9 illustrates eight program memory cards used in the program memory module according to the present invention;

FIG. 10 shows the internal organization of a portion of the program memory module of FIGS. 1 and 9;

FIG. 11 shows the digital output module of FIG. 1;

FIG. 12 shows the digital input module of FIG. 1;

FIG. 13 shows the data memory and delay module of FIG. 1;

FIG. 14 is a block representation of the various modules of the sequence control system in relation to the interlocking operation here provided;

FIG. 15 shows a logic flow chart of an illustrative low-security initiate operation identified as INIT;

FIG. 16 shows a flow chart of an illustrative low-security main program SCAN operation;

FIG. 17 shows a flow chart of an illustrative low-security main program SEQUENCE ADVANCE operation;

FIG. 18 shows a logic representation of an illustrative HIGH SECURITY program operation;

FIG. 19 is an illustrative instruction listing for the INIT program flow chart of FIG. 15;

FIG. 20 is an illustrative instruction listing for the SCAN program of FIG. 16;

FIGS. 21A and 21B are an illustrative instruction listing for the SEQUENCE ADVANCE program of FIG. 17;

FIG. 22 is an illustrative instruction listing for the HIGH SECURITY program of FIG. 18; and

FIG. 23 is a block diagram depicting most generally the apparatus according to the present invention.

DESCRIPTION OF THE PREFERRED EMBODIMENT

Referring to FIG. 1 of the drawings, the overall organization of the sequence control operation according to the present invention is shown as a combination of several functional units in modular form arranged around a bus system comprising: an instruction bus, a control bus, a program address bus and a power bus. Although reference is made to one bus for each of the connecting functions, it is well understood that each bus in reality connects on both sides a plurality of conductors associated with various information data to be transferred between the different modules, with the exception, however, of the power bus since the latter does not carry information but is used only for the supply and transport of electrical energy from the power supply to the respective modules.

As shown in FIG. 1 the functional units include: a bus power supply module 1 connected to the power bus 2 and the control bus 3; a program memory module 4 having connections to the instruction bus 5 and the program address bus 6; a controller module 7 connected to the instruction bus 5 and also to the program address bus 6; a digital output module 8 operative with the control bus 3, the program address bus 6 and the instruction bus 5; a digital input module 9 operative with the control bus 3, program address bus 6 and instruction bus 5. The sequential control apparatus is also provided with a data memory and delay module 10 connected to the control bus 3 and the instruction bus 5, and an indicator module 11 operative with the control bus 3 and the instruction bus 5. It should be observed that the power bus 2 is operative with each of the modules, as well as the bus power supply module 1. Each of the above modules will be described structurally and functionally hereinafter in relation to other figures of the drawings.

As generally known, the controller module 7 responds to instructions from the program memory 4 received over the instruction bus 5, and determines the sequence of instructions to be addressed within the program memory 4. Thus at any given instant, over the program address bus 6, an instruction address is sent by the controller module 7 and a corresponding location is selected within the program memory 4. After selection an instruction is read out from the particular location in the memory 4 and transferred over instruction bus 5, to be executed. Execution by the controller module 7 may consist in performing another address selection or it may involve some datum derived from the digital input module 9, or from the data memory and delay module 10. Execution of the instruction by the controller module 7 may require the generation of an output command by the digital output module 8, to the outside world e.g., the controlled process. The indicator module 11 may provide at any given time a visual representation of process operation and of control conditions. For instance, two sets of indicators such as described in the above referenced U.S. Pat. No. 3,719,931 of Schroeber may be provided, if desired, which when matching would indicate a proper correspondence between conditions required and conditions due, and in case of a mismatch the operator would be alerted.

The controller module 7 will now be described to show some important features of the sequence control device according to the present invention. The program memory module 4 will be described subsequently in order to emphasize some other important features of the controller module 7.

A. -- THE CONTROLLER MODULE

FIG. 2 schematically represents the operational relationships between the controller module 7 and the other modules of the sequence control apparatus according to a preferred embodiment of the present invention. The controller module 7 includes two parts: a sequence control device 40 and a controller 41. The controller 41 will be considered separately, as well as in the combination with the program memory module 4, or the other functional units of the sequence control apparatus, including the sequence control device 40.

The purpose of the sequence control device 40 is to add sophistication in the operation of the controller 41. The sequence control device 40 will be described first, especially to the extent of the generation of subroutine sequences involving control commands to the controller 41, namely, and as shown in FIGS. 2 and 3. signals for the latch return resister program, count program, preset (or jump), reset, select, and latch instruction register, which signals are derived on lines 42-47, respectively. Such control operations are determined by the sequence control device 40 in response to input condition signals appearing on lines 48-51 (shown in FIG. 3) which pertain to respective coded signals such as F15, skip, run, and other signals defined in the operation process which may be generated within the controller module 7 or by some other input source. Operation of the sequence control device 40 is determined in response to a coded instruction of five bits F15-F11. This is the operation field of an instruction derived on line 75 from program memory module 4. Bits F14-F11 are inputted along line 53 (shown in FIG. 3) while another line 48 is provided as an input within the sequence control device 40 for the last bit F15. Program memory module 4 has stored therein instructions which are 16 bits long. These include at least two parts as shown herebelow in Table I: an operation field of five bits and an address field of ten bits. Besides, instructions 4 to 15 include a Z field of one bit. The following Table I illustrates 24 different types of instruction which are stored in the program memory module 4.

TABLE I __________________________________________________________________________ Mnemonic Instruction Coding Time .mu.s Name of Instruction __________________________________________________________________________ 0 N.phi.B 00000 (not defined) 7 No-Operation; Blank 1 SRR 00001 (not defined) 9 Sub-Routine Return 2 JMP 00010 Jump Addr. Y 9 JUMP, unconditionally 3 JSR 00011 Jump Addr. Y 11 JUMP to Sub-Routine 4 IFY 00100 In. Addr. Y Z 8 IF (Y) .noteq. Z, skip next instr. 5 STY 00101 In. Addr. Y Z 9 STOP if (Y) = Z 6 .phi.FA 00110 Out. Addr. Y Z 9 Output From A 7 .phi.FE 00111 Out. Addr. Y Z 9 Output from E 8 ANA 01000 In. Addr. Y Z 8 AND to A 9 ANB 01001 In. Addr. Y Z 8 AND to B 10 ANC 01010 In. Addr. Y Z 8 AND to C 11 AND 01011 In. Addr. Y Z 8 AND to D 12 .phi.RE 01100 In. Addr. Y Z 8 OR to E 13 .phi.RF 01101 In. Addr. Y Z 8 OR to F 14 .phi.RG 01110 In. Addr. Y Z 8 OR to G 15 .phi.RH 01111 In. Addr. Y Z 8 OR to H 16 WIJ 1000 Datum Y 8 Write Immediate to J 17 WIK 1001 Datum Y 8 Write Immediate to K 18 WIL 1010 Datum Y 8 Write Immediate to L 19 WIM 1011 Datum Y 8 Write Immediate to M 20 WIN 1100 Datum Y 8 Write Immediate to N 21 WIP 1101 Datum Y 8 Write Immediate to P 22 WIR 1110 Datum Y 8 Write Immediate to R 23 N.phi.D 1111 (not defined) 8 No-Operation; Delete-Code __________________________________________________________________________

The first 15 instructions listed are the same (F) instructions just mentioned for controlling the sequence control device 40. The operation field is represented by the five most significant bits, in the order F15-F11. Thus, at a given time it is one of those 16 binary numbers which appears on the instruction bus 5 and on line 75 leading to the sequence control device 40.

FIG. 3 illustrates the overall organization of the sequence control device 40. It should be observed that the sequence control device 40 is organized around a programmed memory 20 and includes a sequence counter 21, an input unit represented by input multiplexer 55, an output unit represented by output decode multiplexer 56, and some other generally known circuits which relate to typical functions such as jump, enable, inhibit, store, set, or reset, which, as well known in the art, are derived and executed in synchronization with a clock.

The memory 20, is distinct from the main memory within program memory module 4, and it contains 64 (2.sup.6) words of 8 bits each, of which six bits have been reserved for the address field, and two bits for the operation field. This memory 20 is addressed by a sequence counter 21, the address count of which corresponds to the F14-F11 bits received on line 53 and the instructions so addressed constitute corresponding subroutines which are read out from the memory 20 and stored in a latch register 36 gated by a clock for transferring the stored instruction to the input multiplexer 55, or to the output decode multiplexer 56, or else (according to the definition of the two bits in the operation field) to a "go-to (F)" decode unit 57 or to a "UJ" (unconditional jump) decode unit 58.

Unit 57, once actuated, gates on line 18 a data selector 54, which in fact is a 2:1 multiplexer in relation to inputs 53 and 59, where input 53 carries the F14-F11 bits, and input 59 carries a jump address. The sequence counter 21 is gated by a load enable signal over line 60 to receive data from line 53, or from line 59, depending upon the selection made by the data selector 54 in response to a select signal on line 18. When load enable signal 60 is not present, clock signal 22 causes sequence counter 21 to be incremented. The address contained in sequence counter 21 is used to select the correponding instruction from memory 20. Reset of the sequence counter 21 occurs by a reset signal on line 23. However, the sequence counter of sequence control device 40 is also actuated by the F14- F11 bits appearing on line 53 which are derived from program memory module 4. Thus, sequence control device 40 is auxiliary to the controller 41, and in this role it performs subroutines between received successive input (F) commands. These subroutines may involve output commands requested to be generated, such as at the outputs 42-47 of the output decode multiplexer 56, and they are conditioned in accordance with some inputs, such as on lines 48-51. These input lines may be transferring an input datum internal to the subroutine itself or the input may be a datum derived from outside the controller module 7, as will be explained hereafter.

Sequence control device 40 also includes an inhibit logic unit 61 which, in response to tested conditions from the input multiplexer 55, may block via line 62 operation of each of the four units 55, 56, 57 and 58. The operation of the inhibit logic 61 is used to skip or not to skip the reset instruction of the sequence control device 40. The two bits of the operation field of the instruction generated on line 63, at any given time, may determine which of the four units 55-58 must be controlled, while the address field of the instruction will select the proper input or output within the controlled unit. More particularly, the instruction selects which input, or output, of the multiplexed unit 55, or 56, is to be operated on.

Before considering in more detail the particular structure and operation of the sequence control device 40 in relation to the controller unit 41 by reference to FIG. 4, some general considerations regarding the controller unit 41 are necessary and will be given by reference to FIG. 2.

The program counter 31 is normally incremented, as generally known, by a count signal over line 43, and such incrementation causes the successive instructions to be selected and read out from the program memory module 4. The selection of addresses by the program counter is effected along line 74, (and the program address bus), into the program memory module 4. From the program memory module 4, the selected instructions are derived (on the instruction bus) via line 75 before being stored into an instruction register 76 when latching occurs as controlled from line 47. When latched, the stored instruction (which has three fields (F), (Y), (Z), as shown on FIG. 2 and Table I) is transferred via lines 77, 88 and 78, which respectively correspond to the (F), (Y) and (Z) fields. The (Y) field via line 88 is gated by a data selector 79 when so selected by a select signal appearing on line 46. As a result the program counter 31 via line 81, assumes the (Y) address count. If the select signal on line 46 is the opposite, the data selector 79 gates the output of return register 82, via line 80, instead. The return register 82 stores the present address of the program counter 31 when latched on line 42, while the contents of the next address count in the program counter 31 are transferred via line 74.

On FIG. 4 are represented the circuits of the controller module 7 which are associated with each of the (4 to 15) sixteen instructions listed in Table I. These circuits are responsive to control conditioning and data signals such as the clock signals, the Z signal on line 78, the reset signals for the various circuits and signals representing several input data from the main bus system, in particular those derived on the control bus 3. The main operative elements within these circuits are the "AND" flip-flops A, B, C and D which are represented as a unit by block 90 and the "OR" flip-flops E, F, G and H which are represented as a unit by block 91. Block 90 is gated by instructions such as ANA, ANB, ANC, AND which are sent on lines 92. These may relate to one of the possible (F) commands from line 53 (shown in FIG. 3) which are defined as shown in TABLE I. Beside the operation field F, which is part of an instruction from the program memory 4, there is an address field Y and a field Z. As shown in Table I, Z is the least significant bit for instructions 4 through 15. In fact, Z is used as a control logic to generate the complement of any given datum. Z is derived on line 78 (see also FIG. 2), to be inputted into one of the exclusive OR devices 93, 94 and 95. The EOR device 93 also receives an input datum on line 96 from the control bus 3 which signal received on line 96 is an input datum which is supplied 1) from the controlled process, or a manual operator console, e.g., from the input module 9, 2) from the data memory module unit 10, or 3) from one of the blocks, 90, 91, on respective lines 97 and 98. Such input datum is transferred by the EOR device 93 as a datum which may be stored via line 99 into one of the "AND" flip-flop in accordance with the coded instruction ANA, ANB, ANC or AND, appearing on line 92. If the instruction corresponds for instance to an ANA code, (namely the ninth type of instruction in the list of Table I) then the input datum on line 96 will be applied into the "AND" flip-flop A, such that if this input datum is true then flip-flop A is unchanged, but if this input datum is false, the AND flip-flop A is changed to zero. Since flip-flop A had started out being a ONE in response to the RESET signal on line 103, logical AND operation occurs. At the output 100 of block 90, the datum in flip-flop A is gated by a data selector 102 as selected by the address bits Y.sub.2 -Y.sub.1 derived on line 101 from the instruction bus 5. This results in an input datum being transmitted on line 97 to the control bus 3 and from there via line 96 to the controller module, if the instruction code so dictates, to permit sensing previous logic results during a current logic operation.

Similarly, the "OR" flip-flops E, F, G, H of block 91 may be operated upon when gated by signals provided on line 103 in accordance with the coded instructions .phi.RE, .phi.RF, .phi.RG, or .phi.RH. The inverted datum is generated from the EOR device 93 via line l04, inverting circuit 105 and 106 and line 107. This results in setting a corresponding one of the OR devices of block 91. The OR logic operation involves setting an OR flip-flop to a ONE if the input datum is true and no action if the input datum is false. A reset signal clears the flip-flop to a ZERO. The non-inverted datum is impressed on block 90 via line 99. The output 108 of block 91, as selected by data selector 109 in accordance with address bits Y.sub.2 -Y.sub.1 (on line 110 from the instruction bus) is transmitted via line 98 to the control bus 3.

The A and E flip-flops (but it could be any of the others if needed) serve also the purpose of providing a first output datum on lines 111 and 113 and a second output datum on lines 112 and 114 which represent output commands in one and in the opposite state as shown in FIG. 4. This is the result of a combination of logic circuits including: NAND 115, for line 111 and inverter 117, coupled with NAND 116 for line 112 which are responsive to EOR device 94 and flip-flop A, NAND 118, for line 113 and inverter 120 coupled with NAND 119 for line 114 which are responsive to EOR device 95 and flip-flop E. The resulting two output data on lines 111 and 112 are passed on the control bus 3 to the data memory module 10 and the digital output module 8, as explained hereinafter.

The sequence control device 40 (FIG. 4) also includes "skip" and "run" flip-flops represented as a unit by block 121 which is gated by instructions IFY or STY (as defined in Table I) impressed on lines 122, thereby to transfer datum from line 123 from the EOR device 93, and generate skip, or run, signals on respective lines 49 and 50 which are inputs to the input multiplexer 55 of FIG. 3. Commands "Write Immediate Enable" may also be generated via line 24 which are performed as shown on the code list of Table I and are transferred to the control bus 3 and from there to the indicator module 11.

The operation of the sequence control device 40 as shown on FIGS. 3 and 4, will now be described by reference to FIGS. 5, 6 and 7 which represent flow charts (on FIG. 5, A through G on FIG. 6 and H through O on FIG. 9) characterizing several typical sequences of operation.

Referring to FIG. 5, before starting any control operation the system must have been prepared by placing all switches, all indicators, etc. in the zero state. This is accomplished at reset system step 150, in response to some initialize operation as indicated at 151. The next reset logic flip-flop step 152 provides resetting of the AND flip-flops A to D in block 90 and the OR flip-flops E to H in block 91. Step 153 indicates an unconditional jump operation to reset step 152 from the program flow chart shown on FIG. 6 as reset.

The sequence control apparatus having now been reset, the program advances to step 155 to increment program counter 31. At step 156 a check is made to see if a skip signal is provided on line 49, and if the skip logic element is set, the answer at step 156 is YES and the command clear slip at step 157 occurs, and the program goes back to begin at step 154 thus skipping the execution of the current instruction. If the answer at step 156 is NO, the program goes to block 158 and calls for a latch instruction operation, which places the reset instruction into the instruction register 76. A check is made at step 159 to see if this instruction can be executed (inhibit logic 61 permits execution of this instruction). If the answer is YES the program advances to step 160, which means that the go to F decode circuit 57 (FIG. 3) will generate a select signal on line 18 such that data selector 54 passes the F instruction from line 53 to the sequence counter 21. This selected F instruction determines which of the flow chart programs of FIGS. 6 and 7 is now followed, as will be later explained in greater detail. If the answer is NO at step 159, then at step 161, line 124 of FIG. 4 is used to transmit a write immediate enable signal to the indicator module 11 and the program returns through being 154 to step 155.

FIGS. 6 and 7 are flow charts representing execution of the respective first sixteen coded F instructions, listed in Table 1, each under the assumption that the particular instruction code has been stored in as contents of the F-Register, or instruction register 76, as expressed by (F-Register) within the oval on the left side of each flow chart. Also, as generally accepted in the art, the paren