|
Description  |
|
|
BACKGROUND OF THE INVENTION
1. Field of the Invention
The field of the invention is computer equipment for linking a plurality of
machine or process controllers in a factory automation network.
2. Description of the Background Art
In factory automation, more complex functions could be performed and
coordinated if the programmable or computerized machines presently used to
control mechanical equipment could be connected in a network with each
other and with higher level supervisory computers. A network would allow
the "reconfiguring" of the assembly line by communicating new programs to
the programmable systems from a central computer. The network would also
provide numerous monitoring and report functions at designated locations
and these would provide managers with information to further improve
efficiency of manufacturing operations.
Many programmable tools, instruments and control systems are now installed
in industry, however, many of these programmable machines cannot
communicate with each other. It has been estimated that to establish such
communication through custom hardware and software interfaces may account
for up to 50 percent of the cost of factory automation.
In anticipation of acquiring a large amount of programmable equipment to
automate its factories, certain large manufacturers have established MAP
(Manufacturing Automation Protocol). MAP is a seven-layer communications
specification for interconnection of general purpose mainframe computer
equipment to specialized computer controllers that control individual
machines or processes. The MAP standard is not complete at all seven of
its layers and is still in the process of development. The MAP standard is
also being implemented in phases as equipment has not been available to
meet all of the MAP specifications, and new equipment is being designed to
provide the MAP-networking capability.
Demonstrations of early phase MAP networks have pointed to possible
problems that have not as yet been addressed or solved. One problem has
been the time involved in downloading programs and data from supervisory
computers to stations on the factory floor. Even if computers are able
communicate, communication networks can develop bottlenecks where too many
messages are required to accomplish a certain task, where redundant data
is being communicated or where too many protocol translations are
required. Another problem has been the need for central computers to
recompile entire application programs to implement simple changes in data
tables or in the arrangement of discrete devices on equipment being
controlled by station-level controllers.
When an application program is written on a central computer, items of data
or variables stored at station level are represented by certain labels
rather than specific addresses or locations in memory where they will be
found. When the application program is compiled, the items of data in the
program are assigned addresses in the memory of the central computer.
At the stations some data variables are related to the physical connection
of devices on the controlled machine. When an additional device, such as a
photoelectric sensor, is connected the programmable controller, a new data
item is created in the memory of the programmable controller. Other new
data items such as timing variables may be created in the memory of the
programmable controller without connecting additional devices to the
controller.
In one MAP demonstration, the incorporation of the new data item or
variable at the station level required a recompilation of application
programs and data files at the level of the central computer. In this
instance recompilation was required to relate the address or location of
the new variable at the station level to an address or location in the
data files of the central computer.
Although standardization of communication network standards is an important
development, reaching the goals of factory automation will also require
innovative solutions such as those offered by the present invention.
SUMMARY OF THE INVENTION
The invention is incorporated in a database access machine for connection
in a factory automation cell that includes a cell controlling computer and
a plurality of machine controlling computers located at a corresponding
plurality of stations. The access machine is also a computer--one that
assists communications within the cell.
The access machine stores a database in which data items are organized on a
basis that is independent of the addresses which are assigned to the data
items for reference by the respective machine controlling computers.
The access machine has a first communication means for accessing the
database and for communicating the data items through a first local area
network to and from the cell controlling computer via messages in which
the information is organized as a portion of the database.
The access machine also has a second communication means for communicating
the data items through a second local area network to and from the machine
controlling computers via messages which include station-related blocks of
information that are organized according to the stations of the respective
machine controlling computers.
And, the access machine has a means interfacing the database to the second
communication means for translating the organization of data items between
the station-related blocks of information and the station-independent
organization of the database.
The access machine could be imagined as a huge set of pigeonholes such as
those used in an old post office. Station-level devices insert and
retrieve information (data, messages, graphic images) from one side of the
pigeonholes on a schedule determined by the needs of the control devices.
The cell controlling computer inserts and retrieves information from the
other side of the pigeonholes on a different schedule determined by the
needs of the human interfaces and higher level computers connected through
the cell controlling computer. Each pigeonhole is identified by a unique
name or tag.
Because the access machine is a computer that is separate from the cell
controlling computer, it provides distributed processing. The cell
controlling computer handles communication with the user through a work
station having a video display, a keyboard and a mouse, while the access
machine handles data collection from the remote stations. The cell
controlling computer and the access machines communicate with each other
when necessary, but generally the access machine relieves the cell
controlling computer of the burden of real-time data collection
activities. The cell controlling computer can therefore concentrate on its
user interface functions.
The invention also enables the cell controlling computer to add or delete
items from the database while the access machine remains "on-line" and in
control of machine controlling computers. This is referred to as "on-line
reconfiguration".
The invention removes any need to recompile application programs or to
reorganize large amounts of data in the cell controlling computer when
simple changes are made to the arrangement of equipment at the stations.
The invention also provides the basis for avoiding similar problems in
higher level computers supervising the operation of the cell controlling
computers.
Other objects and advantages besides those discussed above shall be
apparent to those skilled in the art from the description of a preferred
embodiment of the invention which follows. In the description, reference
is made to the accompanying drawings, which form a part hereof, and which
illustrate an example of the invention. Such example, however, is not
exhaustive of the various embodiments of the invention, and therefore
reference is made to the claims which follow the description for
determining the scope of the invention.
BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 is a data flow diagram showing the propagation of data in a control
system provided by the background art;
FIG. 2 is a hardware-to-memory map schematic diagram of a programmable
controller of a type known in the art;
FIG. 3 is a block diagram showing the management of data items in a factory
cell automation system that incorporates an access machine of the present
invention;
FIG. 4a shows the screen of the video display of FIG. 3 as a new data item
is being entered into the database of the access machine of FIG. 3;
FIG. 4b shows the screen of the video display of FIG. 3 as a new station
record is being entered into the database of the access machine of FIG. 3;
FIG. 5 is a map diagram showing the relationship of certain records in the
database maintained by the cell controlling computer and the access
machine of FIG. 3;
FIG. 6 is a map diagram showing the organization of data items in a
database residing in the access machine of FIG. 3;
FIG. 7 is a data flow diagram showing the communication of one type of
database-related information in a system that incorporates the access
machine of FIG. 3;
FIG. 8 is a data flow diagram showing the communication of another type of
database-related information in a system that incorporates the access
machine of FIG. 3;
FIGS. 9-15 are maps of the database-related information contained in
messages communicated between the cell controlling computer and the access
machine in FIGS. 7 and 8;
FIG. 16 is a hardware-firmware schematic showing the architecture of the
access machine of FIG. 3;
FIGS. 17 and 18 are block diagrams illustrating the operation of data
collection software in the access machine of FIG. 3;
FIG. 19 is a schematic diagram of a processor board in the data access link
processor module seen in FIG. 16;
FIG. 20 is a schematic diagram of a memory board in the data access link
processor module seen in FIG. 16;
FIG. 21 is a schematic diagram of the circuitry in an access machine
processor module seen in FIG. 16; and
FIG. 22 is a schematic diagram of the circuitry in a local area network
interface module seen in FIG. 16.
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT
FIGS. 1 and 2 show a system representing the art prior to the invention. A
plurality of station-level devices such as a robot controller 10 at
Station 1 and a programmable controller 11 at Station 2 are connected via
a first local network 12 to a gateway machine 13. The gateway machine 13
in turn is connected via a second network 14 to a supervisory computer 15
which may be of the mainframe or minicomputer class. The second network 14
conforms to the layers 1-3 of the MAP standard and in particular provides
a token-passing broadband network conforming to IEEE Std. 802.4.
The supervisory computer 15 executes a number or application programs 16
which utilize a hardware and software communication interface 17 to send
and receive messages 18 over the second network 14. The data in these
messages is organized as a series of bytes according to a protocol meeting
the MAP standard. As an example, it shall be assumed that four words of
data are of particular interest. In the application programs these will
assigned labels of MOTOR, SWITCH, ACCUM.sub.-- 1 and PRESET.sub.-- 1.
These four words of data correspond to four items of data stored in the
memory of the programmable controller 11 at Station 2.
There are two basic issues in handling the four words of data labeled
MOTOR, SWITCH, ACCUM.sub.-- 1 and PRESET.sub.-- 1. The first issue is how
to organize and store the data in the memory of the supervisory computer
15 in relation to its location in the programmable controller 11 at
Station 2. The second issue to how to organize the data for communication
between the supervisory computer 15 and the programmable controller 11.
The labels are assigned to the four items of data when an application
program 16 is written in source code. When the application program 16 is
compiled to object code, the data variables in the program 16 are assigned
addresses in the memory of the supervisory computer 15, such as
10516-10519 (hex) based on the set of addresses available to the CPU
within the supervisory computer 15. When this data is communicated to the
programmable controller 11, it is organized in a message 18 with a station
address. The station address is detected and compared by the stations to
determine that a message is being sent to it. When the programmable
controller 11 communicates the data in the other direction--to the
supervisory computer 15--the programmable controller 11 includes an
address for the supervisory computer 15 in the message.
Typically, the gateway machine 13 is "initialized" during startup
operations to recognize the addresses of the supervisory devices and
station-level devices with which it must communicate. The gateway machine
13 may store message data for the respective stations in assigned areas of
its memory while it is performing protocol translation and other message
handling functions. It may store message data moving downstream to the
stations in one set of memory areas and message data moving upstream to
the supervisory computer 15 in another set of memory areas. For messages
18 moving downstream, the station addresses are carried through to
messages 18 on the local network 12. For messages moving upstream an
address for the supervisory computer 15 is usually included in the
messages returned through the MAP network 14.
Besides a station level address, each item of data has a particular address
where it is located within the station. This address may be expressed as a
higher-level user program address or as a lower-level machine address. The
user programming address is expressed in the octal numbering system which
has been developed for programmable controllers. The addresses "010",
"030", "110" and "130" are the user programming addresses for the four
items of data to be communicated to and from Station 2. These user
programming addresses are translated within the programmable controller 11
to a set of machine-level addresses used by the microelectronic CPU within
the programmable controller 11. For purposes of this discussion, reference
will be made to the user programming addresses.
In the prior art exemplified in FIG. 1, some form of data addressing or
identification is provided for each item of data in addition to the
station-level address. A message is formed with station-level and
data-level addresses and is sent from the supervisory computer 15 to the
programmable controller 11, with any necessary protocol translations being
made along the way. This would require considerable time for the values of
data items in the memory of the supervisory computer 15 to be sent
downstream to the programmable controller 11 and for the values of data
times in the memory of the programmable controller 11 to be sent upstream
to the memory of the supervisory computer 15. If the data items were
located at four different stations, the number of messages and
comunication time would be multipled by a factor of four.
FIG. 2 illustrates the nature of the particular data items in this example.
The programmable controller 11 is connected to control a conveyor motor 27
in delayed response to signals from a limit switch 23. The delay has been
incorporated solely for the purposes of illustrating the different types
of data in the controller 11, and this example should not be taken as a
suggested program for reallife operation of such equipment.
The programmable controller 11 includes a processor 20 with a main memory
21 for storing the data items. The processor 20 is connected through an
input module 22 to the limit switch 23. The limit switch 23 contacts are
normally closed. These contacts will be opened when the switch arm is
contacted by a package 25 moving along the conveyor 24. This will change
the logic state of a signal that is sent to the processor 20 through the
input module 22. The processor 20 is also connected through an output
module 26 to a motor 27 for moving the conveyor 24. The processor 20 can
generate a signal to start the motor 27, and in response to the opening of
the limit switch contacts, and after a programmed delay, it will remove
the signal to stop the motor 27 and the conveyor 24.
To accomplish this operation, a status bit of data that represents the
state of the limit switch 23 is stored in an input image table 29 in the
memory 21 of the programmable controller 11. The status bit for the limit
switch 23 is stored at bit "10" (octal) in the high byte of a 16-bit data
word at address "110". A status bit of data that represents the "on" or
"off" state of the motor 27 is stored in an output image table 28 of the
memory 21. The status bit for the motor 27 is stored as bit "00" in the
low byte of a 16-bit data word at address "010" (octal). The processor 20
executes a control program 30, which is represented in the symbolic
language that has been developed in the art of programmable controllers,
to check the input status of the limit switch 23 and set the output status
of the motor 27 according to the logic of the program 30.
The execution of the control program is sometimes referred to as the
control program "scan". The processor 20 also periodically executes an
"I/O scan" to read the status of the limit switch 23 and to control the
operating state of the motor 27. The I/O scan is executed many times per
second so that the response of the programmable controller 11 to actual
operating conditions on the conveyor 24 appears instantaneous to the naked
eye.
Status bits representing physical devices such as the limit switch 23 and
the motor 27 are one type of data used by a programmable controller 11.
Another type of data exists in the memory 21 of the programmable
controller 11, but does not correspond too an external physical device.
This type of data is exemplefied by the preset and accumulated values for
timers and counters.
As seen in the memory map of FIG. 2, the output image table 28 is followed
by an area 31 for storing the accumulated values for timers and counters
that begins as address "030" (octal) in the memory 21. The accumulated
value ACCUM.sub.-- 1 is stored at word "030" as three binary-coded decimal
(BCD) digits with four control bits as the four highest order bits (bits
"17"-"14"). Preset values for the timers and counters are stored in an
area 32 following the input image table 29. The preset value PRESET.sub.--
1 is stored at word "130" as three binary-coded decimal (BCD) digits with
four control bits as the four highest order bits (bits "17"-"14").
With this background, the function of the timer and counter data can be
explained with reference to the example control program, which is
presented in a ladder diagram with two rungs, Rung A and Rung B. If all of
the conditions in a rung are "true", then an output action for the rung
will be executed. The first and only conditional instruction in Rung A is
an XIO instruction for the limit switch 23. The XIO instruction is
interpreted as "examine the limit switch status bit at bit "00" of memory
location "010" to see if the limit switch contacts are opened." If so, the
condition is satisfied, and the output action represented by the next
instruction is executed. The next instruction in Rung A is a TIMER ON
DELAY (TON) instruction.
The TIMER ON DELAY (TON) instruction is represented in the ladder diagram
program as follows. The "030" above the symbol "(TON)" means that the
accumulated value for this program timer is stored at address "030"
(octal) in the memory 21. The number "1.0" below the symbol "(TON)" means
that the timer is operated at 1.0 second time base. Each time the timer
runs for a second the accumulated count is advanced by one. The legend "PR
010" means that the preset number is a decimal "10", and that after 10
counts the accumulated value will equal the preset value to indicate that
the timer has timed out. When this occurs bit "15" (octal) in word 030
will be set.
To summarize Rung A of the ladder diagram program, if the limit switch
contacts are open for 10 seconds elapsed time, set bit "15" in data word
"030" to signal completion of a timing cycle. In Rung B, a second XIO
instruction is programmed with an "energize output" (OTE) instruction.
When this rung is true, this instruction will maintain the output status
bit "00[ of word "010" in a set state to energize the motor 27. When the
XIO instruction becomes false (signalling the timer has timed out) Run B
is interrupted and the motor status bit is reset to deenergize the motor
27. Of course, other logic instructions would be added to this example to
be sure that the motor did not run continuously.
As seen from the above example, the status bits in the input and output
image tables 28,29 are related to physical devices on the controlled
machine. The locations in the programmable controller memory 21 correspond
to terminals on the input and output modules 22, 26 so that status data
can be transmitted between the processor 20 and the physical devices
during the I/O scan. The I/O address of the limit switch 23 and the motor
27 and the address of their status bits in memory depends upon which
terminals on the input module 22 and output module 26 are wired to the
limit switch 23 and to the motor 27. When an additional device, such as a
photoelectric sensor, is connected to a terminal on the programmable
controller 11, a new data item is created in the memory of the
programmable controller 11.
The preset and accumulated values for timers are program data variables
rather than "status" data variables corresponding to the the physical
connection of control devices on the conveyor 24. Nevertheless, the
programming of such values creates new data variables with an address in
the memory of the station level device.
Returning to FIG. 1, it can now be appreciated that new data variables can
be created at Station 2 in several ways. An application program 16 might
be written for the supervisory computer 15 to monitor execution of the
user control program at Station 2 and depending upon the status of certain
variables at Station 2, it might signal the robot controller at Station 1
to begin execution of a user control program. If, however, a new variable
is added to the variables MOTOR, SWITCH, ACCUM.sub.-- 1 and PRESET.sub.--
1, there had not been an easy way to alter the application program 16
without recompiling the application program 16 to assign a new memory
location to hold the value of the new variable.
Besides the recompilation problem, the system in FIG. 1 causes a great
number of messages to be communicated, where there are many application
programs 16 and many more stations than shown. The large number of
communication messages lengthens the system response time in the real-time
factory environment.
In FIG. 3, there are two levels or tiers above the station level as
compared with one higher level in FIGS. 1 and 2. A cell controlling
computer 40 is located at a cell level that is one level above the station
level. The cell controlling computer 40 is connected for communication
with a supervisory computer 56 at the factory level through an I/O bridge
module 53. The supervisory computer 56 may be of the mainframe or
minicomputer class.
The cell controlling computer 40 comprises a work station 41, a power
supply unit 42, a cell processor and memory unit 43 and a hard disk memory
unit 44. These units 41-44 are housed in separate enclosures. The control
center or brain of the cell computer system is the cell processor and
memory unit 43. This unit 43 contains processor and memory modules. Within
the processor module is a microelectronic CPU from the 68000 Series of
CPU's manufactured by Motorola, Inc. of Phoenix, Ariz., and Austin, Tex.
The memory modules contain four megabytes (8 Mb) of random access memory
(RAM) storage capacity. The work station 41 and the hard disk memory unit
44 are peripherals connected to the cell processor and memory unit 43. The
power supply unit 42 provides power to the other units in the system. The
work station 41 includes a color video display 45 and a separate keyboard
46 and mouse (not shown). The hard disk memory unit 44 provides
seventy-one megabytes (71 Mb) of storage capacity and is useful for saving
application programs, databases and other data files and reloading these
items into the 8-megabyte RAM on startup.
The cell controlling computer 40 is compatible with the Series 5500
Computer Systems available from Massachusetts Computer Corporation,
Westford, Mass. It runs under the UNIX operating system available from
AT&T Bell Laboratories, Short Hills, N.J.
The cell controlling computer 40 is connected through a data access
baseband network 49 to two access machines of the present invention,
referred to as ACCESS MACHINE 1 and ACCESS MACHINE 2. The baseband network
49 is a carrier sense multiple access/collision detection (CMSA/CD) type
as specified in IEEE Std. 802.3.
The IEEE 802.3 specification is a development of the Ethernet Version 1.0
specification, published by DEC, Intel and Xerox on Sept. 30, 1980. The
IEEE 802.3 specification has three additional features:
HEARTBEAT, which requires the transceiver to send back a "heartbeat" signal
to the controller immediately after the successful transmission of a
packet;
JABBER, a transceiver function which requires that the transceiver stop
transmission if the controller attempts to transmit a packet of much
greater length than allowed by the specification (12,144 bits plus
preamble); and
HALFSTEP SIGNALLING which allows the transceiver to be used with
controllers having AC-coupled input/output circuits.
The data access baseboard network (49) consists of the following functional
blocks:
1. A passive broadcast medium (coaxial cable),
2. A transceiver (transmitter-receiver for the coaxial cable),
3. Connectors for connecting transceivers to a coaxial cable segment and
for connecting coaxial cable sections together,
4. A channel clock,
5. A channel data encoder and decoder,
6. A preamble generator and remover, and
7. Carrier and collision detect circuits.
The coaxial medium is the common element in the entire network. A
transceiver is required for each station connected to the medium.
The data access baseboard network 49 is connected through an I/O bridge
module 53 to a broadband network 55 conforming to the MAP protocol as
specified to date and conforming to IEEE Std. 802.4 for a token-passing
bus network. Through the MAP network 55, the cell controlling computer is
connected to the factory level supervisory computer 56.
A system database 62 is stored in the cell controlling computer 40 and
would be substantially duplicated in ACCESS MACHINE 1, if it were the only
access machine in the system. The system database 62 can be expanded
through ACCESS MACHINE 2, so that PART 1 of the system database 62 is
stored in ACCESS MACHINE 1 and PART 2 of the system database 62 is stored
in ACCESS MACHINE 2. The database 62 serves as an interface between a
plurality of station-level devices 10, 11 and 57-60 and the cell
controlling computer 40.
The programmable controller 11 at Station 2 is connected to ACCESS MACHINE
1 through one of two baseband local area networks (LAN's), referred to as
BASEBAND LAN 1 and BASEBAND LAN 2 in the drawing. Information, including
the four items of data discussed in relation to FIGS. 1 and 2, is
communicated through BASEBAND LAN 2 between the programmable controller 11
at Station 2 and ACCESS MACHINE 1, where it is reorganized according to
the structure of the database 62. The preferred networks are offered under
the trade designation Data Highway by Allen-Bradley Company, Inc. of
Highland Heights, Ohio. For a description of the construction and
operation of these networks, reference is made to Grudowski et al., U.S.
Pat. No. 4,319,338, issued Mar. 9, 1982, and the commercial literature
available from Allen-Bradley Company, Inc.
During startup operations, the database 62 is downloaded from the cell
controlling computer 40 to ACCESS MACHINE 1. As operations continue,
messages are transmitted over the data access baseband network 49. As will
be explained in more detail later herein, the character of these messages
is substantially different than the messages discussed earlier in relation
to FIGS. 1 and 2 and substantially different than the character of the
messages transmitted over BASEBAND LAN 2 to and from the programmable
controller 57. The messages transmitted over the data access baseband
network 49 are organized as database operations messages.
As seen in FIG. 3, a second access machine, ACCESS MACHINE 2, can also be
connected to the data access baseband network 49. PART 2 of the database
62 is downloaded to ACCESS MACHINE 2 through the baseband network 49. This
part of the database 62 serves as an interface to station level devices
58-60 which communicate with ACCESS MACHINE 2 through BASEBAND LAN 4.
Still other station-level devices can be interfaced to the database 62 and
ACCESS MACHINE 2 through BASEBAND LAN 3.
As explained in relation to FIGS. 1 and 2, there is a problem in the art of
multiple-tier computer systems in relating the addresses of data items in
a higher level computer to the addresses of the same data items in a
station-level device. The transportation and translation of messages from
the highest level to the lowest level of the system slows system response
time.
The invention provides a database machine as an interface between the
station level devices and higher levels of the system. The database is
constructed to serve the entire system with each item of data in the
computer system of FIG. 3 being assigned a "tag", or global identifier.
The tag provides an identifier of the type used in database operations and
also serves as a convenient cross-reference for relating the item of data
to various address locations in various machines in the computer system.
Generally, a database is organized with different types of data files. Data
files are the largest groupings of information in the database. A database
management program organizes the links and relationships between
separately identified files. Within a file are a plurality of records and
within each record are a number of fields which are the headings for items
of information in the record. One of the fields is usually designated as
an identifier, and the identifier field is included in each record that is
to be linked to the identifier. In the present computer system, the
identifiers are the tag names.
Some particular records used by the database 62 are illustrated in FIG. 4a.
Information is entered into the system through the work station keyboard
46 and reviewed on the video display 45. FIG. 4a shows the record creation
form as it would be viewed on the video display 45.
One by one the field or "atom" labels are highlighted on the screen. The
name of the highlighted field ("TYPE") appears next to a cursor field 63
at the bottom of the screen 45, where letters are typed in as a cursor 64
moves from left to right to indicate the location of the next letter. Also
shown in the cursor field 63 between the symbols "< >" is the number of
characters allowed in the field. When the information has been entered and
verified to the satisfaction of the user, the "f3 COMMIT" command is
entered to add the record to the files in the database 62. The labels "f1
NEXT TAG . . . f4 DELETE" in FIG. 4a signify commands that can be entered
by operating keys "f" and "1" or by touching the screen where the command
is displayed.
A record is created for each data item such as the four data items in the
programmable controller 11 described in FIGS. 1 and 2. As seen in FIG. 4a,
the fields are grouped in four sections which include a general section, a
parameter section, a description section and an alarm parameter section.
Within the general section, for example, there are fields for tag name,
data type, a textual description and "in service" status. The "Tag Name"
assigned to the MOTOR data item from FIGS. 1 and 2 is "MOTOR". Some of the
various types of data items for the "Type" field are BIT, N | | |