|Publication number||USRE36263 E|
|Application number||US 08/645,606|
|Publication date||Aug 3, 1999|
|Filing date||May 14, 1996|
|Priority date||Apr 11, 1988|
|Also published as||CA1325683C, DE68928121D1, DE68928121T2, EP0365673A1, EP0365673A4, EP0365673B1, US4897777, WO1989009974A1|
|Publication number||08645606, 645606, US RE36263 E, US RE36263E, US-E-RE36263, USRE36263 E, USRE36263E|
|Inventors||Donald R. Janke, Kim J. Watt, Dirk I. Gates|
|Original Assignee||Schneider Automation, Inc.|
|Export Citation||BiBTeX, EndNote, RefMan|
|Patent Citations (10), Non-Patent Citations (2), Referenced by (30), Classifications (9), Legal Events (3)|
|External Links: USPTO, USPTO Assignment, Espacenet|
1. Reference to Related Applications
This application is related to applications filed concurrently herewith, entitled "Network Communications System", . .Ser. No. 179,969.!. .Iadd.issued as U.S. Pat. No. 4,912,623.Iaddend.; "Ladder Sequence Controller" Ser. No. 180,093.Iadd., now abandoned.Iaddend.; High-Speed Press Control System" . .Ser. No. 179,743.!..Iadd., issued as U.S. Pat. No. 5,023,770.Iaddend.; and, "Network Interface Board System", Ser. No. 179,756.Iadd., now abandoned.Iaddend.. The contents of these applications are incorporated herein by reference.
2. Technical Field
This invention relates generally to interconnecting programmable logic controllers . .connected together.!. to effect sequential program instructions and particularly relates to interconnecting image memory portions of several programmable logic controllers to enable operation at a speed much greater than the operating speed of the programmable logic controllers functioning independently.
3. Background of the Invention
In the past, programmable logic controllers have received sensor information over a communications network or over discrete leads from . .the.!. .Iadd.a .Iaddend.machine tool being controlled. The programmable logic controller or PLC processes the sensor information according to sequential instructions contained in its program memory portion. . .The result of the processing of.!. .Iadd.Processing .Iaddend.the sensor information often results in command information that the PLC transmits to switches or actuators on the controlled machine tool over the communications network or on discrete leads.
PLCs normally include an image memory which contains registers and addresses assigned to reflect the condition of the various sensors monitoring the machine tool. Information from the sensors and received at the PLC becomes stored . .at.!. .Iadd.in .Iaddend.certain registers .Iadd.of the image memory .Iaddend.and the processing instructions in the PLC operate on . .the.!. .Iadd.this .Iaddend.information contained in the image memory. Some PLCs include two processors to obtain increased operating speed. .: one.!. .Iadd.. The first such processor .Iaddend.is a control processor that handles communications with the sensors and drivers to move information to and from the image memory and . .that assigns.!. .Iadd.to assign .Iaddend.tasks to the second processor. .; and the.!. .Iadd.. The .Iaddend.second .Iadd.such processor .Iaddend.is a . .SCAN.!. .Iadd.scan .Iaddend.processor that . .effects the.!. .Iadd.executes .Iaddend.sequential processing instructions to obtain information from the image memory and provide solutions to other certain addresses in the image memory under control of the control processor.
While this latter arrangement has obtained higher processing speeds, further speed increases are desired.
The invention provides a high-speed interconnection between the image memory portions of several PLCs operating together. This allows each PLC to operate on a portion of a sequential instruction set and for the solution obtained by each PLC to appear in the image memory portions of the other PLCs at a time that is effectively simultaneous with the solution.
Moreover, the high-speed image memory transfers between the PLCs occur with parity and CRC checking at each PLC before the information is written into the image memory of that PLC to verify the accuracy of the information transfer between the image memories. The foregoing not only obtains increased operating speed but guarantees the accuracy of the information transferred between image memory portions of the PLCs.
Other advantages and aspects of the invention will become apparent upon making the reference to the specification, claims, and drawings to follow.
FIG. 1 is a block diagram of four programmable logic controllers (PLCs) . .connecting.!. .Iadd.connected .Iaddend.to a communications . .network.!. .Iadd.bus.Iaddend.;
FIG. 2 is a block diagram of a modification of the diagram of FIG. 1 which includes a high-speed .Iadd.image .Iaddend.memory transfer . .network.!. .Iadd.bus .Iaddend.in accordance with the invention;
FIG. 3 is a block diagram showing transferable . .register.!. .Iadd.registers .Iaddend.of each of the four PLCs and indicating transfer of blocks between the registers by the arrowed lines; and,
FIG. 4 shows the manner of connection between two communications . .networks.!. .Iadd.buses.Iaddend..
While this invention is susceptible of embodiment in many different forms, there is shown in the drawings and will herein be described in detail a preferred embodiment of the invention. The present disclosure is to be considered as an exemplification of the principles of the invention and is not intended to limit the broad aspect of the invention to .Iadd.the .Iaddend.embodiment illustrated.
FIG. 1 . .shows.!. .Iadd.illustrates .Iaddend.a presently used . .communications.!. .Iadd.PLC .Iaddend.network .Iadd.11 .Iaddend.including a group of . .4.!. .Iadd.four .Iaddend.programmable logic controllers (PLCs) numbered . .1.!. .Iadd.1A .Iaddend.to 4A. Each of the PLCs . .include.!. .Iadd.includes .Iaddend.a control processor . .12.!. .Iadd.12A.Iaddend., a scan processor 14A and . .an image.!. .Iadd.a .Iaddend.memory 16A. As . .noted.!. .Iadd.illustrated .Iaddend.in FIG. 1, the memory 16A is accessed by the control processor 12A to obtain or provide communications and control data. The scan processor 14A in turn accesses the . .image.!. memory 16A and then through the control processor 12A to the communications . .network.!. .Iadd.bus .Iaddend.20A.
FIG. 2 . .shows.!. .Iadd.illustrated .Iaddend.a . .communications.!. .Iadd.PLC .Iaddend.network 21 of the .Iadd.present .Iaddend.invention including four programmable logic controllers (PLCs) .Iadd.numbered .Iaddend.1 to 4, .Iadd.interconnected via a communications bus 20, .Iaddend.although up to . .16.!. .Iadd.sixteen .Iaddend.PLC's can be used. Each of the PLCs includes a control processor 12, a scan processor 14, and a memory 16. Referring to FIG. 2, the memory 16, for a device with peer-to-peer communications, is further divided into three sections, . .the.!. .Iadd.a .Iaddend.normal memory, .Iadd.an .Iaddend.image memory and . .the.!. .Iadd.a .Iaddend.two port shared memory. It is this shared memory and its operation that allow these programmable logic controllers to operate in a peer-to-peer (slave-to-slave) fashion. Importantly, each of the PLCs further . .include.!. .Iadd.includes .Iaddend.a communications processor 18, a local RAM (Random Access Memory) . .20.!. .Iadd.19 .Iaddend.and a local area network interface 22. The local area network interface 22 connects to a high speed image memory transfer . .network 21.!. .Iadd.bus 17.Iaddend..
As mentioned above, and as will be explained in detail hereinbelow, the image memories . .16.!. of each of the PLCs . .1 to 4.!. are interconnected and are, in effect, commonly accessed by the network devices and by the other PLCs to provide a higher speed of network communication and transfer of data.
. .Refer now to.!. FIG. 3 . .which shows.!. .Iadd.illustrates .Iaddend.the image memory . .16.!. map 16-1, 16-2, 16-3 and 16-4 of each of the PLCs . .1 to 4.!. .Iadd.PLC1 to PLC4.Iaddend.. The memory maps of the PLCs are similar and each consists of . .2.!. .Iadd.two .Iaddend.to . .16.!. .Iadd.sixteen .Iaddend.blocks .Iadd.of registers.Iaddend.. For simplicity of explanation, the transferable memory of each PLC represented in FIG. 3 will be divided . .with 4.!. .Iadd.into four .Iaddend.blocks. As each block of registers has an assigned time slot when it transfers blocks of registers, each device sends a different block of registers. This is . .shown.!. .Iadd.illustrated .Iaddend.in FIG. 3 wherein the arrowed line generally marked as 30 indicates the transfer of block . .register.!. .Iadd.of registers .Iaddend.1 of PLC 1 to PLC 2, PLC 3 and PLC 4. PLC 3 transfers the block .Iadd.of .Iaddend.registers 3 to PLC 1, PLC 2 and PLC 4, and PLC 4 transfers the block of registers 4 to PLC 1, PLC 2 and PLC 3.
FIG. 4 . .shows.!. .Iadd.illustrates .Iaddend.circuitry for coupling from a first communications . .network.!. .Iadd.bus .Iaddend.23 to a second communications . .network.!. .Iadd.bus .Iaddend.25. This is accomplished through a dual port network interface module 26 as explained in co-pending U.S. patent application Ser. No. 179,756 entitled "Network Interface Board System". As clearly shown in FIG. 4, .Iadd.the second .Iaddend.communications . .network.!. .Iadd.bus .Iaddend.25 communicates through . .a.!. .Iadd.the .Iaddend.network interface module 26 with RS-422 port in PLC 3 and a software switch 29 to .Iadd.the first .Iaddend.communications . .network.!. .Iadd.bus .Iaddend.23. This type of connection may be made necessary when the first . .network.!. .Iadd.communications bus .Iaddend.23 is supporting or has connected to it its maximum load of . .100.!. .Iadd.one hundred .Iaddend.network interface modules 26 and . .200.!. .Iadd.two hundred .Iaddend.devices (machines to be controlled, printers, terminals, computers, etc.).
The peer-to-peer network is able to transfer blocks of registers between 2 to 16 devices, each device sending a different block of registers. Each block of registers is assigned a mailbox location. The location of the mailbox is dependent on the ID number that each device is assigned.
When first powered up, when a device is added or removed from the network or in the event of noise, the network will need to be reformed.
In the formation process, each device sends a loop formation packet onto the network. The packet is identified as a loop formation packet, and contains information on the address of the sender, and size of blocks. During loop formation, the following is set up. The number of units on the network is determined, verification is made that all units have the same block size, each unit tests its address against the address of the other devices, and time slices for each device on the network are defined, that is, each device on the network calculates during what time slice it is to transmit, and what block it should be receiving during any given time slice. Each device sends a packet when it detects that the network is free. In the event there is a collision, the colliding units back off, and after a random delay, they resend their packets.
After a formation packet is sent, the sending device delays the time necessary to receive and process one packet. If a packet is received, it will again delay the time necessary to receive and process a packet. This will continue until no more packets are received. This means that all units will have time to send their packets to all other devices. After the last packet has been received, and the last time out, normal loop operation commences.
During the first loop, the transmitter waits one packet time before sending the first packet. The receivers will wait three packet times before timing out.
As mentioned above, loop formation is a function of the block size, and the number of units on the network. In general, formation time is determined by the following equation:
"Formation Time=K+Block Size (Number of Devices on the Network)"
Each device on the network sends its packet during the time slice defined during loop formation. The transmitted data is direct memory accessed out of the shared register RAM allowing the communication processor to handle necessary processing tasks such as updating the overall communication status bits.
When not transmitting data, each device waits for a packet from another device. When a packet is received, its CRC is validated, and a check is made if the sender of the packet is in the correct time slice. If the packet is totally validated, it is moved to the shared RAM.
If, during normal operation, a loop formation packet is received, the device will drop out of normal operation and go to loop formation mode.
The update time for a given installation can be determined by multiplying the block time for a single update by the actual number of units on the network.
The communication update rate is a function of the actual number of units on the network and the block size.
Ladder scans of some or all of the processors on the network can be automatically synchronized. This allows the processors to scan at the same time and facilitates parallel processing.
The serial network interface receives and transmits data over the peer-to-peer network. The data is sent in block form with CRC protection and parity protection on each block. The transmission method does not use collision detection schemes and is completely deterministic in the time domain. The serial network interface uses the shared register area (two port) as storage or the location to get messages.
The communication processor takes care of all processing required by the peer-to-peer network. It has access to the serial network interface and two port memory. It also has inputs to the setup switches. The communication processor sets up the network protocols and reports network status to the user through the two port memory.
The communication processor does most communication with the control processor through the two port memory.
Each PLC device has a bank of switches for setup. The state of the switches is read once at power up by the communication processor.
One switch is a rotary switch to set up the identification number of the device from O to F. Every device connected to the peer-to-peer network must have a unique identification number or the network will not operate properly. Labeling on the front panel allows the user to indicate the device ID number.
The other switches are arranged as follows:
1. (Bit 1-2) This code indicates the maximum number of units in the network. For fastest network formation time, the smallest possible number should be selected. All devices on the network must have the same code set up or the network will not operate properly. The code is as follows:
______________________________________ Max. Number of Units onCode the Network______________________________________0 21 42 83 16______________________________________
2. (Bit 3-4) This code indicates the block size. The block size is the number of registers sent from a device on the network to all other devices on the network. All devices on the network must have the same code or the network will not operate properly. The code is as follows:
______________________________________Code Size of Block (Registers)______________________________________0 321 642 1283 AUTO______________________________________
The AUTO position automatically configures the maximum number of registers possible based on the setting of the Maximum Number of Units on the Network switch. The following table describes this relationship:
______________________________________Max. Number of Units OnThe Network Number of AUTO Register______________________________________2 5124 2568 12816 64______________________________________
The 1024 "shared data registers" can be arranged in any one of 4 different block size configurations. They are: 2 blocks of 512 registers, 4 blocks of 256 registers, 8 blocks of 128 registers or 16 blocks of 64 registers.
In addition to the above shared registers, the PLC device has a "peer-to-peer control register" at location 8096. This register will allow the user to configure the shared registers for the particular application. The bits in this register are dynamic in that they can be changed by the user program at any time.
Table 1 contains a map of the shared registers which are divided into 5 main sections. There are 8 control data registers, 5 spare registers, 3 miscellaneous registers, 16 communications status registers, and 1024 data registers. An explanation of the register follows:
TABLE 1______________________________________SHARED REGISTERS MEMORY MAP______________________________________Control 8000 Error CodeDate Write 7999 DIP Switch ImageProtected 7998 Device ID(8) 7997 Block Size 7996 Number of Blocks 7995 Comm to CPU Handshake 7994 Main-CPU Handshake 7993 Reflectometry CounterShare 7992 Spare(5) 7991 Spare 7990 Spare 7989 Spare 7988 SpareMisc 7987 Count of Loop Formation(3) 7986 Max Consecutive Block Errors 7985 Failure Override Control 7984 PLC Device 0 7983 1 7982 2 7981 3 7980 4Communi- 7979 5cation 7978 6Status 7977 7Registers 7976 8(16) 7975 9 7974 10 7973 11 7972 12 7971 13 7970 14 7969 15Data 7968 Shared DataRegisters 7968 Shared Data(1024) 7968 Shared Data 6945 Shared Data______________________________________
If the communication processor detects an error, it will post an error code in this register.
The following error codes are supported:
______________________________________Code Meaning______________________________________A O No errorB 1 Address ErrorC 2 Bus ErrorD 3 Parity ErrorE 4 Handshake FailureF S Main Processor FailureG 6 PROM Checksum Test FailureH 7 Local RAM Read After Write Test FailureI 8 Local RAM Destructive Test Failure3 9 Share RAM Read After Write Test FailureK 10 Shared RAM Destructive Test FailureL 11 Local Area Network Controller Test FailureM 12 Shared Register Block Exceeds 1024 RegistersN 13 Incorrect Block Size ReceivedO 14 Address greater than Number of Devices on the NetworkP 15 Duplicate Address DetectedQ 16 Block Error Limit Exceeded______________________________________
The Dip Switch Image (7999) register contains an image of the peer-to-peer dip switch. The user can read this register to find out how the dip switch is set without removing the device from the rack. The communication processor writes the data to this location.
The Device ID (7998) register contains the ID code assigned to this unit. The communication processor decodes the ID code from the dip switch settings and places it here.
The Block Size (7997) register contains the peer-to-peer block size. The communication processor decodes the block size. The communication processor decodes the block size from the dip switch settings and places it here.
The Number of Blocks (7996) register contains the maximum number of blocks transferred by the peer-to-peer network. The communication processor decodes the maximum number of blocks from the dip switch setting and places it here.
The Comms to CPU Handshake (7995) is an internal register used by communication processor to handshake with the control processor.
The Main CPU Handshake (7994) is an internal register used by control processor to handshake with the communication processor.
The Time Domain Reflectometry Counter (7993) counts proportional to the length of the cable. A counter is started when a transmission is started from a unit. Reflections from the cable end terminate the count. The value should be constant for a given installation and device on the network. It has a value as a trouble shooting tool.
Spare Registers for Future Expansion (7992-7988) are registers reserved for future expansion.
During power up and conditions of extraordinary network disturbances, the network may be automatically reformed. The Count of Loop Formations (7987) register contains a count of the number of times the network has been reformed. The Maximum Consecutive Block Errors (7986) register is programmed by the user to indicate the maximum number of consecutive block errors before the system automatically generates an error and goes to HALT.
When the bits in the Failure Override Control (7985) registers are zero, the PLC will generate an error if the communication processor detects (n) consecutive errors in a row where (n) is determined by the contents of the previous maximum consecutive block errors. If a bit is set to one, the error will not be generated. Bit 1 corresponds to PLC device 1, Bit 2 to PLC device 2 and so on, up to PLC device 15.
The Communication Status Registers (CSR) (7984-7969) are written to by the communication processor to give the status of individual communication channels. There is one register for each communications register.
While the invention has been described with reference to a preferred embodiment, it will be understood by those skilled in the art that various changes may be made and equivalents may be substituted for elements thereof without departing from the broader aspects of the invention. Also, it is intended that broad claims not specifying details of a particular embodiment disclosed herein as the best mode contemplated for carrying out the invention should not be limited to such details.
|Cited Patent||Filing date||Publication date||Applicant||Title|
|US4253148 *||May 8, 1979||Feb 24, 1981||Forney Engineering Company||Distributed single board computer industrial control system|
|US4304001 *||Jan 24, 1980||Dec 1, 1981||Forney Engineering Company||Industrial control system with interconnected remotely located computer control units|
|US4459655 *||Mar 25, 1981||Jul 10, 1984||Willemin Machines S.A.||Control system for a machine or for an installation|
|US4486856 *||May 10, 1982||Dec 4, 1984||Teletype Corporation||Cache memory and control circuit|
|US4550366 *||Aug 12, 1982||Oct 29, 1985||Toshiba Kikai Kabushiki Kaisha||Programmable sequence controller and system|
|US4607256 *||Oct 7, 1983||Aug 19, 1986||Honeywell, Inc.||Plant management system|
|US4608661 *||Nov 15, 1985||Aug 26, 1986||Toshiba Kikai Kabushiki Kaisha||Programmable sequence controller|
|US4718039 *||Jun 29, 1984||Jan 5, 1988||International Business Machines||Intermediate memory array with a parallel port and a buffered serial port|
|US4754427 *||Jan 10, 1986||Jun 28, 1988||Toshiba Kikai Kabushiki Kaisha||Linking system for programmable controller|
|EP0200365A2 *||Mar 27, 1986||Nov 5, 1986||Siemens Aktiengesellschaft||System and method for controlling network bus communications for tightly coupled information among distributed programmable controllers|
|1||*||Patent Abstracts of Japan, vol. 10, No. 80 (P 441) (2137) Mar. 29, 1986.|
|2||Patent Abstracts of Japan, vol. 10, No. 80 (P-441) (2137) Mar. 29, 1986.|
|Citing Patent||Filing date||Publication date||Applicant||Title|
|US6169928 *||Jun 30, 1998||Jan 2, 2001||Ge Fanuc Automation North America, Inc.||Apparatus and method for sharing data among a plurality of control devices on a communications network|
|US6424872||Aug 21, 1997||Jul 23, 2002||Fieldbus Foundation||Block oriented control system|
|US6826590||Jun 21, 2000||Nov 30, 2004||Fieldbus Foundation||Block-oriented control system on high speed ethernet|
|US6938111 *||Apr 19, 2002||Aug 30, 2005||Siemens Aktiengesellschaft||Method for operating automation control equipment applications|
|US7146230||Aug 23, 2002||Dec 5, 2006||Fieldbus Foundation||Integrated fieldbus data server architecture|
|US7167762||Sep 30, 2005||Jan 23, 2007||Fieldbus Foundation||System and method for implementing safety instrumented systems in a fieldbus architecture|
|US7272457||May 26, 2006||Sep 18, 2007||Fieldbus Foundation||Flexible function blocks|
|US7486999||Jan 22, 2007||Feb 3, 2009||Fieldbus Foundation||System and method for implementing safety instrumented systems in a fieldbus architecture|
|US7489977||Dec 19, 2006||Feb 10, 2009||Fieldbus Foundation||System and method for implementing time synchronization monitoring and detection in a safety instrumented system|
|US7720639 *||Oct 27, 2005||May 18, 2010||General Electric Company||Automatic remote monitoring and diagnostics system and communication method for communicating between a programmable logic controller and a central unit|
|US7857761||Apr 16, 2004||Dec 28, 2010||Drexel University||Acoustic blood analyzer for assessing blood properties|
|US8126679||Mar 17, 2010||Feb 28, 2012||General Electric Company||Automatic remote monitoring and diagnostics system|
|US8311651||Oct 15, 2007||Nov 13, 2012||Endress + Hauser Gmbh + Co. Kg||Process automation system for determining, monitoring and/or influencing different process variables and/or state variables|
|US8347044||Sep 30, 2009||Jan 1, 2013||General Electric Company||Multi-processor based programmable logic controller and method for operating the same|
|US8676357||Dec 19, 2006||Mar 18, 2014||Fieldbus Foundation||System and method for implementing an extended safety instrumented system|
|US20030004987 *||Aug 23, 2002||Jan 2, 2003||Glanzer David A.||Integrated fieldbus data server architecture|
|US20050015001 *||Apr 16, 2004||Jan 20, 2005||Lec Ryszard M.||Acoustic blood analyzer for assessing blood properties|
|US20050240287 *||Jun 22, 2004||Oct 27, 2005||Glanzer David A||Block-oriented control system on high speed ethernet|
|US20050256939 *||May 3, 2004||Nov 17, 2005||Schneider Automation Sas||Automatic Configuration of Network Automation Devices|
|US20060025872 *||Sep 30, 2005||Feb 2, 2006||Glanzer David A||System and method for implementing safety instrumented systems in a fieldbus architecture|
|US20060206218 *||May 26, 2006||Sep 14, 2006||Glanzer David A||Flexible Function Blocks|
|US20070129820 *||Nov 16, 2006||Jun 7, 2007||Glanzer David A||Integrated fieldbus data server architecture|
|US20070142934 *||Dec 19, 2006||Jun 21, 2007||Fieldbus Foundation||System and method for implementing an extended safety instrumented system|
|US20070142939 *||Dec 19, 2006||Jun 21, 2007||Fieldbus Foundation||System and method for implementing time synchronization monitoring and detection in a safety instrumented system|
|US20080004727 *||Sep 10, 2007||Jan 3, 2008||Fieldbus Foundation||Flexible function blocks|
|CN101529352B||Oct 15, 2007||Sep 5, 2012||恩德莱斯和豪瑟尔两合公司||Process automation system for determining, for monitoring and/or for influencing different process variables and/or state variables|
|CN102540954A *||Dec 24, 2010||Jul 4, 2012||深圳市合信自动化技术有限公司||Programmable logic controller and control method thereof|
|CN102540954B *||Dec 24, 2010||Mar 11, 2015||深圳市合信自动化技术有限公司||Programmable logic controller and control method thereof|
|WO2008049753A1 *||Oct 15, 2007||May 2, 2008||Endress & Hauser Gmbh & Co Kg||Process automation system for determining, for monitoring and/or for influencing different process variables and/or state variables|
|WO2011041150A1 *||Sep 20, 2010||Apr 7, 2011||General Electric Company||Multi-processor based programmable logic controller and method for operating the same|
|U.S. Classification||700/5, 700/20|
|International Classification||G06F15/167, G05B19/05|
|Cooperative Classification||G05B2219/1208, G05B2219/1132, G05B19/052, G05B2219/1159|
|Aug 11, 1997||AS||Assignment|
Owner name: SCHNEIDER AUTOMATION, INC., MASSACHUSETTS
Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:AEG SCHNEIDER AUTOMATION, INC.;REEL/FRAME:008649/0310
Effective date: 19970718
|Dec 22, 1997||AS||Assignment|
Owner name: SCHNEIDER AUTOMATION INC., MASSACHUSETTS
Free format text: CHANGE OF NAME;ASSIGNOR:AEG SCHNEIDER AUTOMATION, INC.;REEL/FRAME:008855/0799
Effective date: 19960801
|Jul 23, 2001||FPAY||Fee payment|
Year of fee payment: 12