|
Description  |
|
|
BACKGROUND OF THE INVENTION
1. Field of the Invention
This invention relates to industrial control systems, including
programmable controllers, and more particularly, to a highly distributed
industrial control system and a method for programming the same.
2. Background Art
Industrial controllers such as those described in U.S. Pat. Nos. 3,810,118;
3,942,158; 4,165,534; and 4,442,504 are typically centralized, high-speed
computers that may be connected to industrial equipment, such as automated
assembly lines or machine tools, to operate such equipment in accordance
with a stored program. The stored program includes instructions, which
when executed, examine the condition of selected inputs to the controller
from sensing devices on the controlled equipment, and energize or
de-energize selected outputs or actuators from the controller to operate
devices on the controlled equipment.
Inputs to the industrial controller may be discrete binary signals, such as
those from switches, which may detect limits of process variables such as
motion, temperature, time, or other quantities, or the inputs may be
analog measures of process variables which are generally then converted to
digital words for processing, or the inputs may be multi-variable
information.
Similarly, the outputs of the industrial controller may be either discrete
binary signals as produced, typically, by mechanical or solid state
relays; analog outputs produced by means of a digital to analog converter;
or multi-variable commands. Some of the inputs and outputs to the
centralized controller may be remotely located and connected to the
controller by means of a digital communications link. Typically, the
network connects the controller with a remote I/O rack at which a number
of inputs and outputs are clustered.
The centralized architecture of current industrial control systems reflects
both the historically high cost of computer hardware (as may be reduced by
the use of a single centralized controller) and the desire for centralized
reporting and coordination of the operation of an entire industrial
process. Nevertheless, a centralized controller architecture is not ideal
for all control tasks.
For some simple control tasks, with few inputs and outputs, the centralized
controller may be unnecessarily complex and expensive, providing unneeded
features and capacity. Conversely, for some complex control tasks, with
many inputs and outputs, the speed limitations of the centralized
controller, or its link to remote inputs and outputs, may significantly
degrade the performance of the control system. The centralized controller
processes each input and output of the control system, sequentially. For
large programs, a significant delay may occur between the changing of an
input and the control of a corresponding output. If the delay is large
enough, the control system may become sluggish or unpredictable. With a
centralized controller, the state of each input and output must be
repeatedly transmitted to the centralized controller at a rate sufficient
for the target application. When there are many remote inputs and outputs
to the control system, the capacity of the link between the I/O and the
centralized controller may become a significant limitation.
In a centralized architecture, a failure of the single controller typically
disables the entire control system. Troubleshooting the cause of the
controller failure is hampered if the failure is such that the failed
controller cannot report information about its internal operation or
execute troubleshooting programs.
Present industrial controllers are ordinarily programmed by means of a
"ladder logic" language in which the control program is represented as
ladders whose vertical rails represent a power source or power return and
whose rungs are series and parallel connected contacts and relay coils.
The contacts may be either normally-open or normally-closed as controlled
either by external inputs or by relay coils. The limited set of commands
in a ladder diagram (contacts and coils) may be efficiently processed by a
reduced instruction set computer ("RISC").
Although this language is simple in concept, for extremely long programs, a
ladder diagram may be difficult for a human programmer to interpret.
Troubleshooting large programs written in ladder logic can be difficult
because the flow of control in the ladder program is not readily
visualized. Further, for most control systems, additional functional
elements will be required beyond contacts and relay coils, such as
counters, comparators, timers and the like, whose implementation as relay
logic is extremely cumbersome.
SUMMARY OF THE INVENTION
The present invention is an architecture and programming method for a
highly distributed industrial control system where each of the control
modules, for example, each input, sensor, output, or actuator carries with
it a small portion of the total control program. The distributed nature of
this architecture allows for extremely fast processing times because the
actual program may be simultaneously executed on the various control
modules. The distributed nature of the architecture also improves the
chance that a failure of a single component will not disable the entire
control system, and improves the ability to troubleshoot any failure by
interrogating the remaining, undamaged control modules.
Importantly, the present invention provides a highly distributed control
architecture where each control module emulates a standard elemental
electrical component, such as a switch or light. This approach provides
not only an architecture, but a programming "language" in the form of an
electrical schematic, that is particularly well suited to simple
industrial controls.
For reasons of efficiency, more than one elemental function may be
performed by a given electronic module. For example, multiple pushbutton
switches, each being an elemental function, may be incorporated into a
single enclosure having a single microprocessor communicating with the
common link. In addition, some elemental functions, for example, a timer,
may have no connection with the outside world and hence may be efficiently
emulated by an electronic module having another primary task, such as that
of controlling a light.
A panel layout drawing provides a simple method of allocating pieces of the
overall control program among the various control modules--a problem that
often plagues attempts at "parallel processing". The panel layout drawing
flexibly and intuitively defines what physical hardware emulates what
elemental functions.
More particularly, then, the present invention provides a graphical
language for programming a highly distributed industrial controller
comprised of a large number of physically distinct modules, each emulating
elemental electrical functions, where the modules communicate along a
shared communications medium by transmitting messages on that medium, and
where one module may emulate several elemental functions.
The programming involves first generating a logical diagram depicting the
industrial controller in the form of an electrical schematic of electrical
symbols on an electronic display screen. The symbols each represent an
elemental electronic function and have at least one input terminal and one
output terminal between which current flows according to the elemental
function. The terminals of one symbol are connected on a schematic to the
terminals of other symbols and at least one electrical symbol is connected
to a power source symbol.
In the second step of the programming, a physical diagram is generated
showing outlines representing actual modules linked to symbols
representing the elemental functions to be performed by the modules. The
modules are programmed to emulate the elemental functions linked to them
by the physical diagram and the elemental functions are virtually
connected by according to the logical diagram of the schematic.
This latter step is accomplished by compiling the physical and logical
diagrams to generate a communication table. The communication table in
turn establishes the protocol of communications between the modules on the
communication medium so that the elemental functions executed by each
module may communicate with selected other elemental functions as if those
elemental functions were wired together according to the schematic.
Thus, it is one object of the invention to provide a method of programming
highly distributed industrial controllers that offers an intuitive way not
only to describe the logic of the control but to allocate the processing
functions to various spatially distributed modules.
Industrial process designers currently produce both logical schematics and
physical "panel layout" views. These drawings are used to describe the
construction and operation of discrete industrial control systems to
electricians and others who must assemble and wire together the various
components. The schematics and panel layout drawings are typically
prepared on computer assisted design ("CAD") systems. The present
invention uses data files developed by the CAD system as an input to a
compiler which allocates the functions among the modules and virtually
wires them together through messages on the link.
Thus, it is another object of the invention to provide a programming
language which minimizes effort by the industrial control designer. Using
CAD produced panel layout drawings to allocate processing functions among
distributed components adds no additional steps to the design process.
Each module may have a predetermined capability index assigned to it
indicating those elemental functions that can be performed by that module
or how many of a particular kind of elemental functions can be performed
by that module. Assignments of the elemental functions of the logical
diagram to a particular module may be checked against the capability index
to provide a warning to the programmer or alternatively to re-allocate the
elemental function to another module. The allocation of elemental
functions to modules can be constrained so that elemental functions that
need to be associated with a particular module, for example because of
connections to the outside world, will not be moved.
Thus, it is another object of the invention to permit automatic allocation
of elemental functions to spatially separate modules according to the
physical diagram produced by the designer but in a manner consistent with
the physical limitations of the electronic modules. Use of a capability
index permits proper allocation to be verified without operator
intervention and without affecting the schematic diagram.
The foregoing and other objects and advantages of the invention will appear
from the following description. In the description, reference is made to
the accompanying drawings which form a part hereof and in which there is
shown by way of illustration, a preferred embodiment of the invention. For
clarity, two simple examples of a control system are provided. Such
embodiments do not necessarily represent the full scope of the invention
as claimed.
BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 is a pictorial representation of a simple, highly distributed
control system according to the present invention having a number of
interconnected control modules for being programmed by a programming
terminal to control a motor for a conveyor system;
FIG. 2 is a simplified representation of a conveyor system controlled by
the control system of FIG. 1;
FIG. 3 is a schematic representation of the control system of FIG. 1 as
implemented with standard electrical components showing the division of
the functionality of those components into the control modules of FIG. 1;
FIG. 4 is a schematic diagram of a control module suitable for use with the
present invention;
FIGS. 5(a)-(d) are an example set of electrical graphic symbols having
terminals, such as may define the elemental functions of the parts of the
control modules of the present invention and which, together with wire
lines, form the programming language of the highly distributed control
system of the present invention;
FIG. 6 is a simplified representation of the control modules of FIG. 1
showing their addresses and the contents of their connection lists which
provide virtual connection between the control modules;
FIG. 7 is a more complete representation of the memory in each control
module showing both the connection lists of FIG. 6 together with other
data which defines the programming and logic attributes of the control
modules;
FIG. 8 is a flow chart of the operation of the programming terminal of FIG.
1 such as is used to program the control system of the present invention
and to allocate and download that program among the various modules;
FIG. 9 is a flow chart of the operation of a control module of FIG. 1
showing its response to various messages on the network including those
from other modules and from the programming terminal;
FIG. 10 is a screen display such as may be seen on the programming terminal
of FIG. 1 showing a parts bin of control modules and parts of control
modules as found in FIG. 5 and various programming tools as may be used to
generate a schematic;
FIG. 11 is the completed schematic of the control logic for the highly
distributed industrial control of FIGS. 1 and 3 as displayed on the screen
of FIG. 10 and as is used to generate the necessary connection lists and
wire lists for the control system;
FIG. 12 is a perspective view of a simple process for staging and releasing
balls such as may use the highly distributed control system of the present
invention;
FIG. 13 is a completed schematic of an alternative industrial control
system formed of elemental functions such as switches and solenoids
connected together with wires, such schematic as may be developed on a CAD
system and which represents a logical description of the industrial
controller;
FIG. 14 is a physical view or "panel layout" of the industrial controller
of FIG. 13 showing representations of the actual control modules used to
implement the industrial controller and incorporating physical symbols of
the various elemental functions shown in FIG. 13;
FIG. 15 is a flow chart of the compilation process of the present invention
in which the logical and physical views of FIGS. 12 and 13, as displayed
on an electronic display terminal and represented by graphic coordinates,
are compiled to lists which may be combined to produce a connection table
used for the communication of the physical modules of FIG. 14 with one
another;
FIG. 16 is a chart depicting an elemental function data base of
supplemental information about the elemental functions that may be
interconnected in the logical diagram of FIG. 13;
FIG. 17 is a chart representation of an electronic module data base of
information about the physical modules that may be interconnected in the
logical diagram of FIG. 13; and
FIG. 18 is a flow chart of the steps of the compilation of FIG. 15.
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT
Referring to FIG. 1, a highly distributed industrial control system
("HDIC") 10 includes a number of control modules 12 connected on a shared
communications medium 14. The communications medium 14 employs a cable 16
of copper conductors along which digital messages may be transmitted, and
optionally two power conductors 18 which provide 24 volts DC to the
control modules 12. As will be described in more detail below, each
control module 12 is connected in parallel across the twisted pair 16 so
that communication may occur between any module and all of the other
control modules 12.
Also connected to the twisted pair 16 of the communications medium 14 is a
programming terminal 20 having a display screen 22, a processor 24 and a
keyboard 26. The programming terminal may be a general purpose personal
computer, such as are well known in the art, with the display screen 22
providing for the output of text and graphics from the processor 24, and
the keyboard 26 allowing for the entry of alphanumeric characters to the
processor 24. The programming terminal 20 also includes disk drive 30
which allows programs to be loaded to the programming terminal 20 from
removable magnetic recording disks (not shown) inserted in the disk drive
30, and which allow data to be saved to the magnetic recording disks. A
cursor control device such as a mouse 28 may be connected to the
programming terminal 20 to aid in the manipulation of graphic icons as
will be described below.
The programming terminal 20 includes an interface to the twisted pair 16
such as will be described in detail with regard to the control modules 12
below and which allows communication to the control modules 12 in a manner
similar to that provided among the control modules 12.
HDIC Applied to a Conveyor Line
Referring now to FIGS. 1 and 2, an example of a highly distributed
industrial control ("HDIC") system 10 incorporates five control modules 12
to control a simple conveyor line 13. The conveyor line 13 includes a
conveyor belt 32 that may move products 34 along its upper surface in
response to the rotation of the conveyor belt by motor 36. Motion of the
conveyor belt is initiated by pressing a lighted pushbutton 38 on a
pushbutton module 40. Motion of the conveyor belt 32 is stopped when the
product 34 strikes the actuator arm 43 of a limit switch module 42 or when
the stop pushbutton 44 is pressed. The stop pushbutton is also
incorporated within the pushbutton module 40.
Referring also to FIG. 3, the first control module 12 employed in this HDIC
system 10 is a disconnect module 46 which includes fusing for the
three-phase power to the motor 36 and a disconnect switch 64 actuated by
handle 48. The disconnect module 46 receives the communications medium 14
and also three-phase power which it connects or disconnects from a
disconnectable three-phase bus 50. Generally, the status of the output of
the disconnect as either connecting to or disconnecting the three-phase
power from the bus 50 is communicated on the communications medium 14
whereas the actual actuation of the disconnect is performed manually By
means of the handle 48.
A physical transformer 53, providing the 24 volts of the power conductors
18 is typically connected upstream of the disconnect module 46 to preserve
network communications even when the disconnect module 46 disconnects
three-phase power from the control system. In this example, the
transformer 53 is not a control module 12. Nevertheless, a virtual
transformer 53' is contained within the disconnect module having a primary
winding connected across two of the phases of the three-phase power
switched by the disconnect switch. The leads of the secondary winding of
this virtual transformer pass through virtual circuit breakers 55 to power
source rail 74 and circuit breaker 57 to power return rail 80 for the
control logic. The virtual transformer provides a number of system
features, including: (1) opening the disconnect 64 disables all associated
control logic, (2) the virtual circuit breakers 55 and 57 provide an
intuitive method of disabling selected logic for editing purposes.
As will be described, generally, the parts of the modules 12 are virtually
connected via the communications medium 14 identically to the connections
of their physical counterparts. One exception is the physical transformer
53. Unlike the virtual transformer 53', the physical transformer 53 is
connected before the disconnect module 46 so that the control modules 12
do not lose actual power when three phase power is disconnected by the
disconnect module 46.
The second control module 12 is the pushbutton module 40 which as briefly
described includes three parts: a start pushbutton 38, lamp 39 for
lighting pushbutton 38, and an unlighted stop pushbutton 44. The
pushbutton module 40 provides a control module 12 that allows user input
to the HDIC system 10.
The third control module 12 is a limit switch module 42 which is an example
of the simplest possible control module 12 having only a single part (a
switch) providing only a single switching function in response to movement
of its actuator arm 43.
The fourth control module 12 is an motor starter module 52 which receives
the three-phase power from the bus 50, after the disconnect module 46, and
transmits it to the motor 36. The motor starter module 52 includes four
different parts: 1) "thermal" overload elements 70 for each phase, which
detect current flow through the windings of the motor 36 to actuate 2)
normally-closed overload contacts 78, and 3) a relay coil 72 for
controlling 4) normally-open contacts 68 on each phase of the three-phase
power to connect and disconnect the motor 36 absent an overload condition
and 5) latching auxiliary contact 76. The overload trip point for the
overload elements 70 is set by the programming terminal 20 over the
communications medium 14 as will be described. It should be noted that
although for this example the series connected contacts 78 are treated as
one part, each of the contacts 78 could be independently connectable to
other parts and thus treated as a separate part. For the purpose of
clarity, the following discussion will deal principally with the external
wiring between the modules rather than the internal wiring within the
modules
Modules, Parts and Virtual Connections
Generally each control module 12 may have any of a variety of different
functions and preferably emulate basic electronic components such as are
used in industrial control. The elemental electrical components, which
alone or in combination define the function of the control modules 12, are
termed "parts" and are generally characterized by their having two or more
terminals between which current may flow depending on the state of the
part. Thus, as mentioned above, disconnect module 46 contains a number of
parts (fuses and contacts). In contrast, limit switch module 42 contains a
single part being a single pole double throw switch. Representative
symbols for some parts are collected in FIG. 5 which shows standard JIC
graphic symbols from a JIC manual.
More generally, the terminals of the parts may represent paths of
information flow such as might be obtained in a comparator, a one shot, an
adder or a counter employed in digital electronics. Ideally, each part
embodies an elemental function needed in the HDIC system. This permits
maximum flexibility connecting the components of the HDIC system 10 and,
as will be discussed below, provides an intuitive method of allocating the
entire control program among the control modules 12, and offers maximum
resolution for the purposes of troubleshooting the HDIC system 10.
Referring again to FIG. 1, generally each of the control modules 12 are
interconnected by the communications medium 14. This form of connection
will be termed "network" connection. However, in the implementation of the
control program, certain parts of each control module 12 only respond to
selected other parts of that or other control modules 12 on the
communications medium 14. Hence, the parts of the control modules may be
considered to be "virtually" connected only to some of the other parts.
The paths of virtual connections are determined by the process of
comparing message identifiers of messages on the communications medium 14
to a connection list of message identifiers and will be described in
detail below.
In contrast to the network connection of the communications medium 14, and
the virtual connections between parts, certain control modules 12 also
have "physical" connections to power and the controlled process. For
example, the disconnect module is physically connected to the three-phase
power and the power bus 50 for actually providing voltage to the motor via
motor starter module 52. This physical connection, in which current
actually flows, is distinct from the virtual connection.
Referring to FIG. 3, the desired paths of virtual connections between parts
may be represented in a schematic showing each part as a standard
electrical symbol. The virtual connections between parts are shown by
solid lines 62, connecting the terminals on the symbols associated with
each part, which represent virtual connections between clusters of parts
within the modules 12. The module terminals 60, shown as rectangles, are
dependant on the arbitrary aggregation of parts within modules 12 and
appear on the schematic to be generated on the programming terminal 20, in
a specific mode, only when actual module hardware is selected, and the
aggregation is known, as will be described below.
Thus, for example, disconnect module 46 contains seven parts: three
contacts 64 of a parallel-actuated disconnect switch, controlled by handle
48, three fuse 66 in series with the contacts 64, and virtual transformer
53'. The parts are internally connected within the module 46 so that there
are only four module terminals 60 for virtual connections with other
modules: one for the downstream side of each series connected contacts 64
and fuse 66 and one for the lead of the virtual transformer providing
power to the power source rail 74. Module terminals 60 are not shown for
the upstream side of each series connected contacts 64 and fuse 66 because
no module 12 will be connected upstream of the disconnect module 46.
Further, module terminals 60 are not provided between the fuses 66 and the
contacts 64 because no module 12 will be connected there.
Each module terminal 60 is either an upstream terminal that may receive
current flowing directly or through other modules 12 from the power source
rail 74 or a downstream terminal providing current directly or through
other modules 12 to the power return rail 80. With one exception, the
leftmost terminal is the upstream terminal 60 and the rightmost terminal
is the downstream terminal 60, observing the convention of left to right
power flow. The exception is the virtual transformer 53 where the
downstream terminal 60 is to the left to conserve schematic space.
The grouping of the parts in FIG. 3 within dotted lines indicates the
physical grouping within control modules 12 of FIG. 1. This physical
grouping is permissibly ignored for the purpose of constructing the
schematic where, ideally, the virtual connections of the parts dictates
their respective placement on the schematic. The graphic symbol for any
part of a modules 12 may be located anywhere on the schematic diagram.
In the actual electrical devices emulated by the parts of the control
modules 12, the current may flow without restriction in either direction
between terminals, as is the case in a switch. As mentioned above,
however, the virtual connections between the parts of the control modules
12, by default, observe the more limiting convention that current flows
only in one direction between terminals of the parts. Hence, there is a
definite upstream or input terminal and a downstream or output terminal as
defined by the direction of current flow. This convention is reflected in
the symbols that will be used to represent the parts where current may
flow only from the left most terminal of the symbol to the right most
terminal. As will be understood from the following description, however,
the convention of bi-directional current flow may be easily implemented
through the present invention's system of virtual connections.
Referring to FIGS. 1 and 3, the parts of the control modules 12 are
virtually and physically connected as follows: The disconnect module 46
receives three-phases of power through a physical connection to
three-phase power--the virtual connection is implicit. On the downstream
side, the disconnect module 46 is physically connected to the three-phase
bus 50 to provide power to the motor starter 52 and ultimately to the
motor 36. Correspondingly, downstream terminals 60 of disconnect module 46
are virtually connected by lines 62 to upstream terminal 60 of motor
starter module 52, mirroring this physical connection. There is an
internal virtual connection between the switched three phase power and the
primary winding of the virtual transformer 53'. A downstream terminal 60
of the secondary winding of the virtual transformer 53' is connected to
other upstream terminals via the power source rail 74.
The upstream terminal 60 of pushbutton 38 in module 40 is also virtually
connected to the virtual transformer 53' via the power source rail 74,
however there is no physical connection. The downstream terminal 60 of the
pushbutton 38 is in turn virtually connected to the input terminal of
pushbutton 44. This input terminal of pushbutton 44 is also virtually
connected to an output terminal 60 of a latching auxiliary contact 76
which is also virtually connected to power source rail 74 so as to shunt
the terminals of pushbutton 38 to provide a latching action as is
generally understood in the art. Latching auxiliary contact 76 is a
normally-open auxiliary contact also controlled by coil 72. Again, none of
these virtual connections have corresponding physical connections.
The output of pushbutton 44 is virtually connected to an upstream terminal
60 of the pole of limit switch module 42 whose normally-closed contact is
virtually connected through an output terminal 60 to the input terminal 60
of module 52 to be received by a series connected set of three
normally-closed contacts controlled by the thermal overload element 70 to
open if there is a thermal overload. These normally-closed contacts 78
provide a virtual path to one terminal of coil 72, through coil 72 and
another terminal 60 to a power return rail 80. A lamp 39, used to light
pushbutton 38, is virtually connected between the power return rail 80 and
the input terminal of the coil 72 to provide an indication that coil 72
has been energized.
The description above is essentially identical to the physical wire
connections of actual parts such as coils, pushbuttons and limit switches
such as would be used to implement the conveyor system described above.
Nevertheless, the connections are not actual wires but simply paths of
communication affected by messages on communications medium 14 as will be
described in detail below.
Module Hardware
Referring now to FIG. 4, each control module 12 shares a number of
characteristics. Each control module 12 may receive the power conductors
18 via power conditioning circuitry 105 which provides protections against
reverse polarity and high voltage spikes on the power conductors 18 such
as is well known in the industrial electronics field.
Also as described above, the control modules 12 each receive the twisted
pair 16 of conductors of communications medium 14. Specifically, the
twisted pair 16 is received by two terminals of a removable terminal strip
84 and connected by jumpers in a "daisy chain" fashion. The signal on
twisted pair 16 is tapped off of the terminal strip 84 at the first two
terminals to be received by a transceiver 85 and then by CAN link
controller 86 that provides the necessary timing and bit sequences for the
transmission and receipt of messages along the communications medium 14.
The CAN link controller 86 provides a memory mapped interface for the
receipt and transmission of formatted messages along the communications
medium 14. One example of a CAN link controller 86 is a 80C592
microcontroller preprogrammed for executing the CAN protocols such as is
commercially available from Signetics Corporation having offices in
Sunnyvale, Calif. The CAN specification defines the requirements which
comprise the Media Access Control (MAC) and physical signaling layers of
the ISO/OSI for Data Communication Networks. The CAN protocols are
specified in ISO document ISO/TC22/SC3/WG1 as authored by Robert Bosch
GmbH, hereby incorporated by reference. Generally the CAN standard allows
for the communication of asynchronous digital messages along a twisted
pair of conductors such as may comprise communications medium 14 at speeds
of up to 1 Mbit/sec. The CAN protocol specifies a zero to eight byte data
message including an eleven bit arbitration field which determines
priority when two nodes need to transmit messages at the same time.
The CAN link controller 86 includes an internal buffer memory (not shown)
that may be directly addressed. Each location of the buffer may be loaded
with an arbitration field for use in sending and receiving messages. In
the case of messages to be sent, the message buffer is also loaded with
message data. The CAN link controller 86 automatically transmits the
message when the communications medium 14 is free according to the
priority of its arbitration field and then provides a signal that the
message has been transmitted.
For messages being received, when a message arrives, it is compared against
the arbitration fields of each buffer location and the first location with
the same arbitration field receives the message. At the time of receipt a
signal is generated indicating the receipt.
The CAN link controller 86 communicates by bus 92 with a read only memory
94, a volatile RAM 96, a nonvolatile RAM 98, microprocessor 100 and
digital I/O circuitry 102 as are generally understood in the art and as
may be implemented within a single dedicated microprocessor 90.
The digital I/O circuitry 102 will communicate with different module
specific inputs and outputs depending on the characteristics of control
module 12. For example, for pushbutton module 40 shown in FIG. 4, the
digital I/O circuitry 102 provides a signal for illuminating pushbutton
lamp 39 and receives a signal indicating whether the pushbutton 38 has
been pressed. Pushbutton module 40 includes a physical operator, being the
stem 108 of the pushbutton, which protrudes out of the housing of the
control module 12 and may be pushed inward against the force of a spring
110. The internal end of the stem 108 incorporates a magnet 112 which,
when the stem 108 is moved against a Hall effect detector 114 an
electrical signal is generated. This signal is received by the I/O
circuitry 102.
The various physical components incorporated into the control module 12
will change depending on the control module's characteristics. For
example, for limit switch module 42, the lamp 39 will not be present and
the push stem 108 may employ a radial motion as befits the actuator arm 43
on the limit switch. Likewise, the motor starter 52 will include circuitry
for indicating the current flowing to the motor 36 and for providing a
signal that the contact 78 should be opened if that current exceeds a
predetermined amount. These physical signals indicative of the external
aspects of the HDIC system 10 are received by the bus 92 via digital or
analog I/O circuitry 102.
Each control module 12 may also include one or more status indicator LEDs
106, the latter generally indicating that the control module 12 is
receiving power and that a program contained in ROM 94 has begun
successful execution b | | |