WikiPatents - Community Patent Review
Create Free Account  |  License or Sell Your Patent  |  WikiPatents Marketplace  |  WikiPatents Blog
Username:  Password:  
    
Advanced Search
On-line modification of computer programs    
United States Patent3969723   
Link to this pagehttp://www.wikipatents.com/3969723.html
Inventor(s)Kennicott; Philip R. (Scotia, NY)
AbstractA programmable data processor or controller serving as the main control in a control system contains an executive program for controlling the transfer of information between the processor and system equipment, updating that information during on-line control of the equipment and modifying the executive program to change operating parameters of the system while the data processor is controlling the system equipment. Modification of the executive program and displaying of system parameters related to the executive program and the system equipment is accomplished through the use of an operator's console which communicates with the data processor and system equipment as a result of operator intervention.
   














 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 3969723
On-line modification of computer programs - US Patent 3969723 Drawing
On-line modification of computer programs
Inventor     Kennicott; Philip R. (Scotia, NY)
Owner/Assignee     General Electric Company (Salem, VA)
Patent assignment
All assignments
Publication Date     July 13, 1976
Application Number     05/485,766
PAIR File History     Application Data   Transaction History
Image File Wrapper   Patent Term   Fees
Litigation
Filing Date     July 3, 1974
US Classification     700/83
Int'l Classification     G06F 003/00
Examiner     Zache; Raulfe B.
Assistant Examiner    
Attorney/Law Firm     Brunson; Robert E. Renner; Arnold E. ,
Address
Parent Case    
Priority Data    
USPTO Field of Search     340/172.5 235/152
Patent Tags     on-line modification computer programs
   
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
3832696
Taura
330/207A
Jun,2006

[0 after 0 votes]
3806714
Otsuka
708/231
Apr,1974

[0 after 0 votes]
3686639
Fletcher
703/14
Aug,1972

[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
 


What is claimed is:

1. In a controlled equipment system of the type operable in response to signals resulting from logical operations based upon operating parameters of the controlled equipment, a control system comprising:

a. a programmable controller including a store having stored therein an executive program serving to,

1. direct on-line communication between said controller and equipment external thereto, and

2. simulate an equipment control circuit having a format comprised of a plurality of logic strings, each logic string comprised of a conductor including at least one switch element disposed in a designated position and a continuity status means controlled by the condition of the switch elements of its associated logic string, said continuity status means serving to effect output signals from said controller to the equipment external thereto; and,

b. a programming console in communication with said controller comprising:

1. means for specifying to said controller a one of the simulated logic strings to be modified,

2. means for directing said controller to copy the simulated specified logic string into a predetermined region in said store while retaining the specified logic string in the executive program,

3. means for specifying to said controller a position in the conductor of the logic string copied,

4. means for modifying the copied logic string by specifying to said controller a type of switch element,

5. means for directing said controller to test the modified logic string on-line as a part of the executive program in place of the retained specified logic string, and

6. means for directing said controller to replace the retained specified logic string with the modified logic string while maintaining the modified logic string on-line whereby the modified logic string becomes an integral part of the executive program to control the external equipment in accordance with the logic now defined by the modified logic string.

2. The invention in accordance with claim 1 wherein said programming console further includes means for specifying to said controller a location in said store of a condition referenced by the switch element at the specified position.

3. A controlled equipment system as recited in claim 1 wherein a plurality of types of switch elements may be specified to said controller by the means for modifying the copied logic string, said switch types comprising normally open and normally closed series and parallel switch contacts, said continuity status means comprises a relay coil and wherein said means for modifying a copied logic string comprises a plurality of switches mounted on said programming console, which switches are individually identified to correspond to a particular type of switch and relay coil.

4. A controlled equipment system as recited in claim 2 wherein said means for modifying a copied logic string further includes two switches mounted on said programming console, the first, when activated, deleting the switch element in the specified position of the specified logic string and the second, when activated, inserts a space creating a position in the specified logic string between two adjacent switch elements for the inclusion of an additional switch element.

5. In a controlled equipment system of the type operable in response to signals resulting from logical operations based upon operating parameters of the equipment, a control system comprising:

a. a programmable controller including a store having stored therein an executive program serving to,

1. direct on-line communications between said controller and equipment external thereto,

2. simulate an equipment control circuit having a format comprised of a plurality of logic strings, each logic string comprised of a conductor including at least one switch element disposed in a designated position and a continuity status means controlled by the condition of the switch elements of its associated logic string, said continuity status means serving to effect output signals from said controller to the equipment external thereto; and,

b. a programming console in communication with said controller comprising,

1. means for selectively specifying to said controller simulated logic strings to be modified,

2. manually operable copy means for directing said controller to copy a selected simulated logic string into a predetermined region in said store each time said copy means is operated while retaining all such logic strings in the executive program,

3. means for specifying to said controller the identity of a logic string copied and a position in the conductor of that copied logic string,

4. means for modifying the selected copied logic string by specifying to said controller one type of a plurality of types of switch elements to change the type of switch element at the specified position,

5. means for directing said controller to test all copied logic strings on line as a part of the executive program in place of the retained specified logic strings, and

6. means for directing said controller to replace the retained specified logic strings with their corresponding copied logic strings while maintaining the copied logic strings on-line whereby the copied logic strings become a permanent part of the executive program to control the external equipment in accordance with the logic now defined by the copied logic strings.

6. A control system for controlling equipment of the type operable in response to signals resulting from logical operations performed by a portion of an equipment control circuit, said system comprising:

a. a programmable controller including a store having stored therein an executive program for directing communication between said controller and equipment external thereto, said executive program further simulating an equipment control circuit having a format comprising a plurality of logic strings, each logic string comprised of a conductor including a plurality of positions for the inclusion of one type of a plurality of types of switch elements, the conditions of which determine the status of continuity of the conductor, and each of said conductors further including a continuity status means controlled in accordance with the continuity of its associated conductor, said continuity status means serving to control output signals from said controller to said external equipment;

5. a programming console in communication with said controller comprising,

1. means for specifying to said controller a one of said logic strings,

2. means for directing said controller to copy the specified simulated logic string into a predetermined region in said store while retaining the specified logic string in the executive program,

3. means for specifying to said controller a position in the conductor of the logic string copied,

4. means for modifying the copied logic string by specifying to said controller one type of the plurality of types of switch elements to change the type of switch element at the specified position,

5. means for specifying to the controller the location in store of a condition referenced by the switch element at the specified position,

6. means for specifying to said controller to test the modified logic string on-line as part of the executive program in place of the retained specified logic string, and

7. means for specifying to said controller to replace the retained specified logic string with the modified logic string whereby the modified logic string becomes a permanent part of the executive program to control the external equipment in accordance with the logic now defined by the modified logic string.

7. A system for controlling process equipment of the type having electrical devices which respond to electrical control signals selectively provided to said electrical devices, said system comprising:

a. a programmable controller in communication with said process equipment, said controller including a store having an executive program stored therein for selectively controlling the transfer of signals between said controller and said process equipment for the control thereof, said program simulating an electrical control circuit having a format comprising a plurality of logic strings, each of said logic strings including a plurality of logic elements in specified positions thereof and each logic element representing one logic condition of a plurality of logic conditions, the outputs of said logic strings serving to provide said electrical control signals; and,

b. an operator's console in communication with said programmable controller for programming simulated electrical control circuit information into the store of said controller, said operator's console comprising,

1. selection means for designating to said controller one of said plurality of logic strings, the position of one of said plurality of logic elements in the one designated string, and the logic condition of that designated logic element,

2. means for specifying to said controller to copy from the program the designated logic string and all of the logic elements in that one designated string as data into specified store locations without altering the executive program,

3. means for specifying to said controller that the data in the specified store locations is to be selectively altered as designated by said selection means,

4. means for specifying to said controller to effect the testing of altered data in the specified store locations by causing the executive program to recognize the altered data as a part of the program, and

5. means for specifying to said controller to transfer the altered data from said specified store locations into said executive program to substitute the data previously copied from said program into the specified store locations.

8. The invention in accordance with claim 7 wherein said console further includes means for specifying to said controller that the program is to effect the allocation of additional store locations for receiving the electrical control circuit information from the specified store locations.

9. A system for controlling process equipment of the type having electrical devices which respond to electrical control signals selectively provided to said electrical devices, said system comprising:

a. a programmable controller in communication with said process equipment, said controller including a store having an executive program stored therein for selectively controlling the transfer of signals between said controller and said process equipment, said program simulating an electrical control circuit for the production of said electrical control signals having a format comprising a plurality of logic strings, each of said logic strings including a plurality of logic elements in specified positions thereof and each logic element representing one logic condition of a plurality of logic conditions;

b. an operator's console in communication with said programmable controller for programming simulated electrical control circuit information into the store of said controller, said operator's console comprising,

1. selection means for designating to said controller one of said plurality of logic strings, the position of one of said plurality of logic elements in the one designated string, and the logic condition of that designated logic element,

2. means for specifying to said controller to copy from the program the one designated plurality of logic strings and all of the logic elements in that one designated string as data into specified store locations without altering the executive program,

3. means for specifying to said controller in a first instance that the data in the specified store locations is to be selectively altered as designated by said selected means, and specifying in a second instance that electrical control circuit information for entry into the program is to be stored into certain ones of the specified store location as designated by the selection means,

4. means for specifying to said controller that the program is to effect the allocation of store locations for receiving altered data and the electrical control circuit information from the specified store locations,

5. means for specifying to said controller to effect the testing of the altered data and the electrical control circuit information in the specified store locations by causing the executive program to recognize the altered data and the control circuit information as a part of the program, and

6. means for specifying to said controller to transfer the altered data and the control circuit information from said specified store locations into said executive program and into the additional store locations allocated by the program whereby the altered data and the electrical control circuit information form a part of the program; and,

c. means for effecting the running of said executive program whereby said electrical control signals are produced.

10. A programming console for selectively communicating information to a programmable controller, the controller having stored therein a program representative of a control circuit in electrical diagram form, the electrical diagram having a format comprising a plurality of strings of logic elements contained in specified positions in said strings, each logic element being in the form of an instruction word, certain ones of the instruction words in each logic string specifying one type of a plurality of logic functions to be performed and at least one other instruction word in each logic string referencing a logic condition which it is to control the condition of said programming console comprising:

a. means for selecting a string of logic elements of the control circuit in which the logic function of a logic element is to be changed;

b. a keyboard comprising individual keys, each key, when activated selecting one type of the plurality of types of logic elements;

c. means for displaying the type of logic element selected and the position of the logic element in the selected string of logic elements;

d. means for testing the operation of the selected information transmitted to said programmable controller prior to changing the selected information in the program; and,

e. means for entering the selected information into the program to effect a change therein in the selected logic element of the selected logic string.

11. A programming console for a programmable controller, said controller including a memory having stored therein a program for communicating with said console and simulating a control circuit in ladder diagram format, the ladder diagram format comprising a plurality of logic strings, each ligic string comprised of a conductor including at least one switch element in a designated position therein and a continuity status means controlled by the condition of the switch elements of its associated logic string, said programming console comprising:

a. selection means for specifying to said controller a one of the simulated logic strings;

b. copy means for directing said controller to copy the simulated selected logic string into a copy region of said memory while retaining the selected logic string in the program;

c. means for specifying to said controller a position in the conductor of the logic string copied;

d. means for modifying the copied logic string by specifying to said controller one type of a plurality of types of switch elements to change the type of switch element at the specified position;

e. means for directing said controller to test the modified logic string as a part of the program in place of the retained specified logic string; and,

f. means for directing said controller to replace the retained specified logic string with the modified logic string while the program continues to execute the modified logic string whereby the modified logic string becomes a permanent part of the program as defined by the modified logic.

12. A programming console for a programmable controller, said controller including a memory having stored therein a program for communicating with said console and a replica of a control circuit in ladder diagram format, the ladder diagram format comprising a plurality of circuit conductors having position, each position capable of including one type of a plurality of logic functions, some of which perform logical operations and others which perform no operations, said programming console comprising:

a. selection means for selecting a circuit conductor of the control circuit which is to be modified;

b. copy means for specifying to said controller to make a copy of the conductor of the control circuit selected by said selection means to a copy region of said store for the modification thereof;

c. means for selecting one of the positions in the copied conductor into which a logic function is to be placed;

d. means for selecting one type of the plurality of types of logic functions for placement in the selected position of the copied conductor;

e. means for specifying to said controller to test the modified copied conductor as a part of the control circuit in place of the originally selected circuit conductor; and,

f. means for entering the test copied conductor into the originally selected circuit conductor, said copied conductor replacing the originally selected conductor to form a modified control circuit.

13. A method of providing modification to a program located within a store of a data processing system including a programmable controller comprising the steps:

a. storing a program within said store, said program including first and second portions respectively, to

1. direct on-line communication between said controller and equipment external thereto, and

2. simulate an equipment control circuit having a format comprised of a plurality of logic strings, each logic string comprised of a conductor including at least one switch element disposed in a designated position and a continuity status means controlled by the condition of the switch elements of its associated logic string, said continuity status means serving to effect output signals from said controller to the equipment external thereto; and,

b. effecting the modification of the second portion of said program through the use of an operator console by

1. specifying a one of the simulated logic strings to be modified,

2. copying the specified simulated logic string into a predetermined region in said store while retaining the specified logic string in the first portion,

3. specifying a position in the conductor of the logic string copied,

4. modifying the copied logic string by specifying a type of switch element,

5. testing the modified logic string on-line as a part of the program in place of the retained specified logic string, and

6. replacing the retained specified logic string with the modified logic string while maintaining the modified logic string on-line whereby the modified logic string becomes a integral part of the program to control the external equipment in accordance with the logic now defined by the modified logic string.

14. The method as provided in claim 13 wherein the modifying of the copied logic string is accomplished by specifying which of several types of simulated switch elements including normally open and normally closed, series and parallel types are to be placed into the specified location.

15. The method as provided in claim 13 in which the modifications are achieved under operator control by the selected setting of manual operating elements.
 Description Submit all comments and votes
 


BACKGROUND OF THE INVENTION

1. Field of the Invention

This invention relates generally to on-line stored-program computer systems for controlling industrial processes or the like and more particularly to a control computer system capable to making changes in a program while the computer is actually in control of a process.

2. Description of Prior Art

It is well known in the art that the computer in automated control systems generally contains a control program for controlling a process. It is also well known by engineers and programmers that it is difficult to make changes in the program of a stored-program computer while the computer is actually in control of a real-time process. This is due to the likelihood of errors being made, the effects of which can be disastrous in the process. Frequently, the magnitude of these changes is large which generally signifies that those changes are difficult to implement quickly. The magnitude of the changes also makes it difficult to remove those changes, if their effect on the process under control proves undesirable. Accordingly, it is desirable to provide a method and means for making changes to a program in an orderly way with the option of quickly removing changes to restore the program to its original state while controlling a real-time process.

SUMMARY OF THE INVENTION

It is, therefore, a primary object of the invention to provide an on-line data processing system having enhanced program modification capabilities.

Another object is to provide a method and means in an on-line stored-program computer system for modifying the program while the system is in real-time control of a process.

A still further object is to provide a method and means in an on-line stored program computer system for modifying a computer program or any portion thereof while the system is in real-time control of a process.

Still a further object is to provide means for communicating information to an on-line stored-program computer system for selectivelly modifying a program while the system is in real-time control of a process.

Another object is to provide a method a means in a stored program data processing system for making changes in the program, testing those changes, removing undesired changes, and entering those changes into the program while the system is on-line controlling a process.

Briefly stated, in carrying out the invention, a stored-program computer or controller for controlling process equipments is provided with a stored executive program for directing communications between the computer and the equipment which further includes a control or application program for controlling the process equipments is stored in the computer. The application program simulates system control circuitry for controlling the operations of the equipment. The application program is comprised of segments of instructions stored in contiguous locations in the computer memory.

One of the equipments in the system comprises an operator's console for programming the computer to effect modification of the application program. By virtue of the fact that the operator's console exists in the system as a process equipment, it can communicate with the computer and the executive program like all other equipments in the system.

Through operator intervention, the operator's console provides the capability to make a copy of any segment or segments of the application program which is to be modified in a copy region of memory not currently in use. The copied segment(s) can be modified (added to, deleted or complete new segments added) without disrupting the original state of the application program. While the modifications are being performed, the application program continues to run in its unmodified state.

After the desired modifications have been made in the copy region the console operator can cause the modified segments to be executed on-line as a part of the application program in place of each corresponding segments in the application program.

In a like manner, if the modified segments do not operate the process as desired, the console operator can remove the modified segments from on-line leaving the application program in its original state.

When the console operator desires to enter the modified segments into the application program he can do so. This activation specifies to the executive program in the computer to replace those application program segments with their corresponding modified segments from the copy region.

BRIEF DESCRIPTION OF THE DRAWINGS

While the novel features of this invention are set forth with particularity in the appended claims the invention both as to organization and content will be better understood and appreciated along with other objects and features thereof from the following detailed description taken in conjunction with the drawings in which:

FIG. 1 is a major block diagram of a programmable data processor control system of the type disclosed herein.

FIG. 2 is a memory map drawing showing the organization of programs and data as they reside in the memory of the data processor of FIG. 1.

FIG. 3 illustrates the format of the various instructions of which the data processor of FIG. 1 is capable of executing.

FIG. 4 shows a front panel view of an operator's console, shown as an I&MM of FIG. 1.

FIGS. 5, 33, 35, 36, 37 and 38 are electrical schematic drawings of typical ladder type diagram circuits useful in understanding the operation of the invention.

FIGS. 6 and 7 are memory maps showing the greater detail the organization of instructions and data in the memory of the data processor of FIG. 1.

FIGS. 8 and 9 are high level flow charts depicting typical operating cycles of the system of FIG. 1.

FIG. 10 is a legendary drawing showing the relationships between FIGS. 10A and 10B.

FIGS. 10A and 10B are detailed block diagrams of a bus controller of FIG. 1 for controlling the transfer of information between the computer and a plurality of remote terminals and the operator's console of FIG. 1.

FIGS. 11, 12 and 13 are representative instruction formats of those words of which the bus controller of FIGS. 10A and 10B utilizes in transferring information between the computer and process equipment.

FIG. 14 is a listing of equations defining the functional logic structure within the various blocks of the block diagram of FIGS. 10A and 10B.

FIGS. 15, 16, 17 and 18 are timing diagrams useful in understanding the operation of the bus controller of FIGS. 10A and 10B.

FIGS. 19 through 29 are program flow charts describing the operation of the executive program of the present invention for directing the transfer of information between the computer and the remote terminals of FIG. 1.

FIG. 31 is another memory map of the memory of FIG. 1 showing in detail how various data is organized within that memory.

FIG. 32 is a functional diagram showing the flow of the execution of instructions during the execution of a program by the computer and is useful in conjunction with FIG. 31.

FIG. 34 is also a memory map showing in detail how instructions and data are organized in the computer memory as related to the operation of the operator's console (I&MM) of FIG. 1.

FIGS. 39 through 67 are flow charts describing the operation of various subroutines comprising a part of the executive program to effect communications between the computer and the operator's console of FIG. 1.

DESCRIPTION OF THE PREFERRED EMBODIMENT

Reference is now made to FIG. 1 which shows a process control system generally designated 10. The control system includes a programmable data processor including units shown as a sequencer 12, a main store 14, an installation and maintenance module store 16 (I&MM store) and a digital bus controller 18. Each of these units connects in a modularized fashion to a common bi-directional data bus 20. The sequencer 12 exercises primary control over the entire system by controlling the proper execution of instructions and the transference of data over the data bus 20. Functioning as an active element or module in the system, the sequencer provides virtual memory address signals and data to the main and I&MM stores and to the bus controller. It also receives data from these latter units. The two stores and the bus controller each operate as passive elements or modules by responding to read/write control signals from the sequencer over a control bus 22 to transfer data over bus 20.

The bus controller functions as an interface control unit to control the flow of information between the data processor and a plurality process equipments 24. In response to instruction words from the sequencer the controller provides addressing and control signals to a plurality of addressable units shown as remote terminals 26 and an I&MM (Installation and Maintenance Module) 28 to control the transferring of data between the data processor and those units. All addressing, control and data signals are transferred between the bus controller 18 and the addressable 26 units via a bus interface 30 through interconnecting input/output buses 32 and 34. The data processor may be any one of several types of general purpose digital computers or programmable logic controllers, sometimes referred to as "mini-computers". Exemplary of these types of controllers or computers are the models PDP-8/L and the PDP-11 manufactured by Digital Equipment Corporation. Also the Directo-matic logic controller manufactured by the General Electric Company. The sequencer 12 comprises the main portion of the processor and contains well known computer hardware. It is comprised of an instruction address register a K register or counter, an arithmetic logic unit, an A register, and suitable control or gating logic for controlling register operations and the flow of information within and external to the sequencer.

The instruction address register (hereinafter called the IAR) is controllable to receive information from the arithmetic logic unit and from the control or gating logic. Also, the IAR is controllable to serve as a memory address register (MAR) for writing information to and retrieving information from either the main store, the I&MM store or the bus controller. Further, the contents of the IAR can be written into either the main store or the I&MM store or loaded from these units in accordance with address information specified by either the IAR or the gating logic within the sequencer.

The K register serves as a BCD counter for timing functions and for counting the number of shifts performed by the sequencer during the execution of shift-type instructions. Additionally, the K register can be loaded from either the main store or the arithmetic logic unit. Dependent upon the type of instruction being executed by the sequencer, the contents of the K register are representative of either instruction addresses, shift-count information, or a BCD number.

the arithmetic logic unit (subsequently referred to as the ALU) contains logic making it selectively controllable to receive information from the IAR and K register to perform arithmetic operations and register to register transfers.

The A register is basically an arithmetic register. It is controllable to be shifted a number of bit positions during the execution of shift instructions by the sequencer. Also, the A register is controllable to communicate with either the main store, the I&MM store, or the bus controller during store (memory) read and write operations. Thus, the contents of the A register may be stored into or loaded with information from specified locations in either the main store or the I&MM store or from addressable registers in the bus controller. The output of the ALU is also gated into the A register during the execution of certain sequencer instructions. Information transfer between the sequencer and the main store, the I&MM store and the bus controller is via the data bus 20. This information transfer is effected by control signals which flow between the sequencer and each of these units over the control bus 20.

Like all programmable data processors or controllers, the sequencer of the present invention is capable of executing a variety of instructions. Many of the instructions of which the sequencer is capable of executing are generic to the several types of previously cited programmable data processors or controllers. Additionally however, the present sequencer contemplates the incorporation of logic for the execution of bit addressable type instructions. This special logic is shown and described in U.S. Pat. No. 3,921,146 entitled "Programmable Data Processor and Controller System", to William J. Danco and assigned to the assignee of the present invention which is a continuation-in-part of abandoned patent application Ser. No. 321,260, filed Jan. 5, 1973. This application being incorporated specifically herein by reference.

In that application there is disclosed a programmable controller having means to sequentially accumulate the status of a plurality of logic operations performed by a controller to generate a final result representative of the conducting status of a conductor in a ladder-type diagram whereby the final result is utilized to provide a control signal to external equipment to control a process. The programmable controller includes a store, such as the main store of the present application, for containing a program representative of a logic configuration or circuit to be simulated. A logic configuration having the format of an electrical ladder-type diagram is stored in the computer store. Each conductor in the electrical ladder-type diagram may comprise a variable number of electrical elements such as switches or relay contacts of an unrestricted number. A logic operation or first type of control word is utilized to specify a particular type of logic operation to be performed and a condition of the electrical element represented by the type of logic operation. The control words are sequentially placed in the store and collectively represent the number of switches or relay contacts in a single string of contacts associated with one of the conductors in the electrical ladder-type diagram. The termination of any given string of switch contacts or a conductor is identified in the program by a second type control word. This latter control word effects the storing of a status condition representative of the conducting status of the conductor to a location in the store as specified by that control word.

Each of the first type control words also specifies a location in the store to retrieve a status condition, the state of which controls the conduction of the relay contact represented by that instruction.

The programmable controller of the previously referenced application also includes means for sequentially addressing the store to retrieve the control words. Each control word is placed in an instruction register which generates output signals representative of an operation code and an address. The address is used to retrieve a status condition from the store. This status condition is combined with the operation code signals in suitable logic (defined as R-logic in the application) of the controller wherein a logic operation is performed to effect the accumulation of a status condition in an accumulator designated F.sub.R. The accumulator provides a final output status condition representative of the result of a plurality of logic operations performed by the R-logic. This final status condition has a state representative of the conducting status of one of the conductors. This final status condition is then stored by the execution of the second type of instruction, the state of which serves to develop a control signal to be provided by the controller to external equipment.

The previously mentioned application also discloses means for placing a simulated permissive logic element or switch in a bus which is common to a plurality of conductors in the electrical ladder diagram. By the execution of a particular command, inserted at the beginning of any string of logic in the control program, the status of this permissive contact is stored in a storage means identified as F.sub.L. The storage means communicates with the R-logic as one input variable and serves in the determining of the accumulated status for the accumulator F.sub.R.

The sequencer of the present invention executes instructions utilizing the R-logic, the accumulator (F.sub.R) and the storage mans (F.sub.L) just described in connection with the aforementioned patent application. Reference is therefore made to that patent application for specific details regarding the aspect of the operation of the sequencer 12 of the present invention.

The sequencer, like many present-day data processors is capable of performing the functions of base addressing and address modification through indexing. Also, the sequencer contains a P register, or place counter, for keeping track of instructions presently under execution. These functions are performed by the sequencer by a plurality of registers residing in dedicated locations in the main store as shown in FIG. 2.

Referring to the top portion of FIG. 2 there are listed several locations identifying various registers residing in a scratch (read/write) area of the store. The first location contains the P register, or place counter which always contains the address of the current instruction under execution. A B.sub.p base register (procedure reference) at location 1 is utilized to contain an address referencing a store location during execution of programs to access various sub routines within procedure segments of the various programs. The third location 2 designated B.sub.d base register (data reference) always contains an address referencing some data base location in the store.

As previously mentioned, the sequencer is capable of bit addressing. Location 3 designated B.sub.b base register (bit reference) always contains a bit address in a word at a location specified by register B.sub.d. Location 4 of index register (reference reference) X.sub.p always contains an address which is added to the contents of B.sub.p during the execution of certain instructions to effect instruction address indexing of the base register B.sub.p. Additionally, location 5 contains X.sub.d an index register data and bit reference which always contains an address which is added to the contents of registers B.sub.d and B.sub.b during the execution of certain instructions.

Like most all data processors, the sequencer also requires registers for saving the contents of the P register and the base register during the execution of certain types of branch instructions. These registers reside in locations 6 and 7 as the SAVE location for P and the SAVE location for B.sub.p respectively.

Reference is now made to FIG. 3 which shows three instructions formats of types 1, 2 and 3 which the sequencer is capable of executing. The sequencer utilizes a 16 bit word with hexidecimal notations identifying each of the bits in the words. Type 1 instructions are those which address a specified bit in a store location addressed by that instruction. Bits 0 through 3 of the type 1 instructions specify a bit address y and bits 4 through 9 specify a word address Y. When a type 1 instruction is executed, the contents of the word address field Y addresses a location containing a data word and the bit address field y specifies a particular bit in that data word. Bit B of the type 1 instructions contains the designation X for indexing. The contents of bit B are examined during instruction execution to see if the address field of that instruction is to be index address modified. Similarly the contents of bit A are examined to see if that instruction is to be address base modified (B for basing). Bits C through F comprise the OP code field of the instruction, the contents of which identify the particular instruction.

Reference is now made to the type 2 instruction. Bits 0 through 9 contain a word address Y for addressing specified locations in the main store, the I&MM store and also for addressing the bus controller during the execution of a program. The type 2 instruction is utilized when bit addressing is not necessary (full 16 bit word). Bit A in the type 2 instruction serves the same purpose as Bit B in the type 1 instruction. The only difference between the op code field in the type 1 instructions and the type 2 instructions is that the OP code field in the type 2 instructions comprises bits B through F.

The sequencer is programmed to execute the type III instructions when it is desirable to perform counter and timing functions in response to signals derived from the operation of switches and frequency generators. Type III instructions are two word instructions. The first word of these types of instructions contains word (Y) and bit(y) address fields like the Type 1 instructions. Bits A and B also serve the same purpose as described for the Type I instructions. The OP code field (Bits C-F) identifies the first word as a counter/timer unit instruction for initializing a counter/timer in store.

The word address field Y of the second word specifies a word location in store like the Type II instructions. Bits A and B are used for address indexing and basing however reversed compared to the Type I instructions. Bits C-F of the second word contains a micro-code which specifies whether a counter or timer is being simulated in store to effect incrementation thereof in accordance with the contents of the micro-code.

To provide a complete understanding of the operation of the invention, the instruction repertoire of the sequencer will now be described. In the following description of these instructions, the following nomenclature will be used.

A represents the A register (accumulator)

Y represents the value in the operand field (normally the word address)

y Represents the value in the bit address portion of the operand field.

K represents the K register (used for BCD counting and shift count operations).

Y/y Bit of word Y.

R.sub.s Reset control flag loaded during the execution of the first word of Type III instructions.

() Contents of

Cv location in store of a word (current value) in BCD form representing the current state (count) of a counter or timer.

B.sub.i Represents a base register; i represents the base register location (such as B.sub.p, B.sub.d, B.sub.b)

X.sub.i Represents an index register and i represents the index register location (such as X.sub.p or X.sub.d).

I represents the instruction address register IAR

(b.sub.i).I.sub.j This term represents the contents of the indicated base register such as B.sub.b if Bit J of the instruction address register (I) is a binary 1. (Example I.sub.A, where A represents Bit A of the instruction address register. If I.sub.j is a binary zero then the next address is taken from the P - place counter register.

(X.sub.i).I.sub.j This term represents the contents of the indicated index register such as X.sub.d if Bit J of the instruction address register (I) is a binary 1. If I.sub.j is a binary zero the next instruction is taken from the P place counter register.

Z represents the value resulting from address computation.

z Represents a bit in value Z resulting from the address computation.

Z/z This term represents an effective memory address, Bit Z of value z.

R represents the result bit of the F.sub.R flip-flop as described in aforementioned patent application.

L represents the F.sub.L or left bus bit as described in the aforementioned patent application.

Each of the sequencer's instructions is listed by type below. Each instruction is listed by a descriptive name which is followed by the mnemonic code which identifies that instruction.

Type 1 Instructions

Load L Register (LDL)

Function: This instruction copies the contents of the indicated (addressed) bit to the L register F.sub.L.

Effective Address: Z/z = [(Y/y) + (X.sub.d) I.sub.B)] + (B.sub.b.I.sub.A)

Definition: (Z/z) into L

Logic or False (LOF)

Logic or True (LOT)

Logic and False (LAF)

Logic and True (LAT)

Function: These instructions each logically operate on the (R).sub.r result bit, the (L), left bus bit, and the indicated (addressed) status bit, with the results of the logical operation going into R.

Effective Address: Z/z = [Y/y +) X.sub.d.I.sub.B)] + (B.sub.b.I.sub.A)

Definition:

Lof: (r)+[(z/z).(L)] into R

Lot: (r)+[(z/z).(L)] into R

Laf: (r).[(z/z).(L)] into R

Lat: (r).[(z/z).(L)] into R

Store Status (SST)

Function: This instruction stores the contents of R into the indicated (addressed) bit location.

Effective Address: Z/z = [Y/y + (X.sub.d).I.sub.B )] + (B.sub.b).I.sub.A

Definition: (R) into Z/z

Type 2 Instructions:

Load A Normal (LAN)

Function: This instruction copies the indicated (addressed) word to A register.

Effective Address: Z = Y + (X.sub.d).I.sub.A

Definition: (Z) into A

Load from Data (LAD)

Function: This instruction copies the indicated (addressed) data word to the A register.

Effective Address: Z = Y + (X.sub.d).I.sub.A + (B.sub.d)

Definition: (Z) into A

Load A from Procedure (LAP)

Function: This instruction copies the indicated (addressed) procedure word to the A register.

Effective A