1. Field of the Invention
This invention relates in general to system controllers and more particularly relates to programmable system controllers which store a set of program words for controlling the operating sequence of a controlled system.
Operation of many types of systems is conditional and sequential. For example, machine tools and chemical and manufacturing processes are conventionally operated to perform in a desired sequence of related steps. Execution of one step may be conditioned upon completion of a previous step, or may be conditioned upon other predetermined conditions whose status is indicated by mechanical limit switches, pressure or temperature sensing devices, contacts of relays, etc. Devices such as relays, solenoids, and indicators are controlled according to the sensed conditions for initiating the execution of the given step.
2. Prior Art
Prior to the introduction of so-called programmable logic controllers, operation of such systems was conventionally controlled by electrical circuits which were wired together in particular circuit configurations to cause the system to perform according to the dictates of the circuits. That is, the circuits dictated a desired operating sequence of the controlled system. For example, a bank of relays and their contacts were wired into a circuit network. A first set of system conditions, as detected by a particular combination of contacts, would operate a first relay which would initiate and/or terminate a step performed by the system and bring a second relay and another combination of contacts into play. When the sensed system conditions satisfied the configurations of the second set of contacts, a second relay would be actuated which would bring a third combination of contacts into play, and so forth.
Relay control circuitry of this type had many drawbacks. For example, physically interconnecting the relays and the relay contacts was time-consuming and expensive. If the circuitry malfunctioned, repairs not only were time-consuming but also usually required the services of a skilled trouble-shooter. Perhaps most importantly, because the contacts were wired to the relays the controlled systems were not versatile. Changes in the sequence of system operations could be accomplished neither easily not rapidly because the control circuitry had to be rewired each time the system was to be called upon to perform different operations.
Many of these drawbacks were overcome by the relatively recent introduction of programmable controllers. These programmable controllers were computer-like devices having a memory unit. They directly controlled the relays or other controlled devices of the controlled system in accordance with a sequence of instructions programmed into the memory unit and according to detection of actual system conditions sensed by particular sensors. A set of switches was provided to sense and indicate the system conditions. The switches and relays were all connected to the controllers but the switches and relays did not need to be connected to each other. Thus, the instructions programmed into the memory could be altered to produce a different operating sequence of the controlled system without requiring any physical rewiring of relays or switches. The controllers also typically have replaceable interface units for versatility in controlling different types of systems.
In order to arrive at appropriate instructions for programming the memory units, it was necessary, in some prior art proposals, for a skilled individual to derive mathematical expressions which characterized a desired sequence of system operations in terms of system operating conditions detected by selected ones of the switches. The mathematical expression then had to be converted, usually by a skilled programmer, into a sequence of operating steps or instruction, known as an algorithm, which represented the mathematical expression in a form which the controller could respond to. The algorithm was stored in the memory unit to program the controller to determine whether actually sensed system operating conditions were requisite to satisfy the mathematical expression represented by the algorithm. If requisites of one portion of the algorithm were satisfied by sensed system conditions, the controller operated an appropriate relay (or other controlled device) so that a system operation was initiated or terminated. Successive system operations were controlled in the manner described when succeeding portions of the algorithm were satisfied.
In one programmable controller of the type referred to, the mathematical expression took the form of a series of Boolean logic equations written in terms of given states of selected switches, and the switches and the controlled devices were respectively assigned reference or locations numbers. Switch signals representing the states of the switches were input into the controller in such a manner that specific switch signals could be selected and their values determined by specifying the respective reference numbers.
An algorithm representing the Boolean logic equations was created and programmed into memory to operate the controller to sequentially interrogate the switches specified in each successive equation. The interrogation determined whether the value of each specified switch signal was that value which would be needed to satisfy the logic equation. A single bit status register was provided in this controller for storing the results of each interrogation. The status register was set into a certain state dictated by the logic of the equation after interrogation of each of the specified switch signals. Accordingly, after completion of the sequence of interrogations, the state of the status register indicated whether the Boolean logic equation had been satisfied and thus whether the controlled device should have been actuated.
This type of programmable logic controller having a single bit register required special programming, known as jump instructions, in the algorithm for solving all but elementary Boolean logic equations. Because the mathematical expression was expressed in terms of a Boolean logic equation, the expression could be satisfied by considering less than all the logic terms in the expression. For example, a Boolean equation consisting of three logically "ORed" terms was satisfied if any one of the "OR" terms was satisfied. This special programming complicated programming procedures and, accordingly, to avoid this complication, an embodiment of the proposed logic controller provided an intermediate storage device in addition to the status register. The intermediate storage device was used to indicate whenever a sequence of interrogated switch signals satisfied the logic equation even though interrogations corresponding to less than all of the terms of the equation had been performed.
This described controller required (1) a logician for deriving the Boolean mathematical expression which characterized the desired operating sequence of the controlled system; and (2) a skilled programmer for producing the stored algorithm which directed the controller to monitor the operating conditions of the system and to determine whether the operating conditions were those which satisfied the logic of the Boolean expression. This required the programmer to be skilled in Boolean algebra in order to determine the state in which the status register should be conditioned after each interrogation. Specifically, "true" interrogations condition the status register in a state according to whether the interrogation was for a logic OR or a logic AND term in the equation. These requirements for the programmer increased overall system costs and decreased system versatility.
In another prior art logic controller, an algorithm in a program memory was generated through use of a special programming panel supplied with the controller. A special master program which was preprogrammed into the memory was also supplied with the controller. The master program and the programming panel were coordinated to produce the algorithm which would represent a desired operating condition of the system.
In preparation for entering instructions into the programming panel, a ladder diagram was simulated for characterizing desired operation of the controlled system. A presentation of this ladder diagram was entered into the programming panel. The ladder diagram entry was converted into the algorithm as dictated by the master program. The algorithm was then entered into the program memory of the controller.
A bank of data stores was provided in this controller for storing values of signals representing states of the switches of the controlled system. The algorithm produced by the master program and the programming panel as a result of the entry of the ladder diagram effected comparison of these signals with the values stored in the data bank for determining whether a controlled device should be operated.
In an attempt to provide such a controller which could be programmed without the services of a skilled programmer, this prior art controller required a sophisticated special programming panel and master program. Needless to say these features increased system costs and increased overall complexity of the programmable controller.
More detailed descriptions of the above prior programmable logic controllers, as well as other programmable controllers, are found in Lapidus, "Programmable Logic Controllers - Painless Programming to Replace the Relay Bank," CONTROL ENGINEERING, pp. 48-60, April, 1971.