throbber
(12) United States Patent
`Frazer et al.
`
`(10) Patent No.:
`(45) Date of Patent:
`
`US 9.494,926 B2
`Nov. 15, 2016
`
`USOO9494.926B2
`
`(54) METHODS AND APPARATUS EMPLOYING
`AN ACTION ENGINE FORMONITORING
`AND/OR CONTROLLING DYNAMIC
`ENVIRONMENTS
`
`(71) Applicant: Opteon Corporation, Cambridge, MA
`(US)
`(72) Inventors: Mark J. Frazer, Toronto (CA); T. Eric
`Hopkins, Wellesley, MA (US);
`Timothy N. Schaeffer, Somerville, MA
`(US)
`(73) Assignee: Opteon Corporation, North
`Cambridge, MA (US)
`
`(*) Notice:
`
`Subject to any disclaimer, the term of this
`patent is extended or adjusted under 35
`U.S.C. 154(b) by 828 days.
`(21) Appl. No.: 13/646,452
`
`(22) Filed:
`
`Oct. 5, 2012
`
`(65)
`
`Prior Publication Data
`US 2013/0090745 A1
`Apr. 11, 2013
`
`Related U.S. Application Data
`(60) Provisional application No. 61/543,680, filed on Oct.
`5, 2011.
`
`(2006.01)
`(2006.01)
`
`(51) Int. Cl.
`G05B 5/02
`G05B 9/042
`(52) U.S. Cl.
`CPC ........... G05B 15/02 (2013.01); G05B 19/0421
`(2013.01); G05B 2219/1153 (2013.01); G05B
`2219/2214 (2013.01); G05B 2219/2231
`(2013.01)
`
`(58) Field of Classification Search
`None
`See application file for complete search history.
`
`(56)
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`
`4,380,698 A
`4,858,101 A
`
`4, 1983 Butts
`8, 1989 Stewart et al.
`(Continued)
`
`FOREIGN PATENT DOCUMENTS
`
`CN
`CN
`
`6, 2002
`1353828 A
`2, 2008
`1.01131575 A
`(Continued)
`
`OTHER PUBLICATIONS
`
`International Search Report and Written Opinion for PCT Interna
`tional Application No. PCT/US2012/059097 dated Dec. 11, 2012.
`(Continued)
`Primary Examiner — Carlos Ortiz Rodriguez
`(74) Attorney, Agent, or Firm — Cooley, LLP
`(57)
`ABSTRACT
`A dynamic environment (e.g., an automated industrial pro
`cess) has multiple conditions in response to which corre
`sponding actions are required, and comprises various equip
`ment, control device(s) to control the equipment, and one or
`more sensors to generate input signal(s) representing a
`monitored condition of the environment. A control system
`for the environment comprises a master processor and one or
`more co-processors, wherein the master processor config
`ures a given co-processor to evaluate only a first Subset of
`conditions expected to occur in the environment within a
`specified time period (e.g., less than a response time of the
`master processor), and to provide first control information
`representing an action to be taken if a particular condition of
`the first subset is satisfied. The co-processor receives the
`input signal(s) representing the monitored condition, pro
`cesses the input signal(s) so as to determine if the particular
`condition of the first subset is satisfied, and provides the first
`control information to the control devices so as to control the
`equipment. Exemplary applications include dynamic envi
`ronments in which machine vision techniques and/or equip
`ment are employed.
`33 Claims, 10 Drawing Sheets
`
`RECEWE
`QUEE
`44
`
`counter(s)
`42
`
`SENSORS)
`40
`
`196
`
`194
`
`HOUSEKEEPNG
`CPU90
`
`NPUTss 12
`
`192
`
`192
`
`ACTION ENGINE1
`coNDITIONS 142c
`
`EVENT TABLE12
`
`158c
`
`A B C CTR S C NSTR 144
`
`1
`
`so
`
`Do X
`
`Node
`
`O
`
`O
`
`1
`
`- ||
`
`3
`
`|| 1 |NO-OP
`
`1
`
`Y
`
`1
`
`0
`
`1
`
`- || 1
`
`|| 0 | No-op
`
`?
`s
`
`
`
`SCANNER 16Oc
`30c
`
`140c-1
`
`140-2
`
`140-3
`40c-4
`
`140C-5
`
`OUTPUT
`SIGNALS 68
`
`OUTPUt
`US 14
`
`SEMAPHRE
`REGISTER
`150
`
`TRANSMT
`(UU
`34
`
`IPR2025-00943
`Tesla EX1005 Page 1
`
`

`

`US 9,494,926 B2
`Page 2
`
`(56)
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`
`2011 O161538 A1
`2011/023.0991 A1
`2013/00966.97 A1
`
`6, 2011 Decker
`9, 2011 Case
`4/2013 Frazer et al.
`
`4,876,664
`5,287,548
`5,594.917
`5,600,845
`5,748,468
`5,978,352
`6,282.462
`6,536,029
`6,567,709
`6,594,529
`6,646,564
`6,665,650
`6,941,247
`6,944,746
`6,968,242
`7,086,036
`7,120,505
`7,167,971
`7,200,741
`7,260,668
`7.469,177
`7,472,106
`7,522,066
`7,577,482
`7.593,784
`7,613,783
`7,774,074
`7.987,305
`8, 155,769
`8, 195,844
`8,761,036
`8,884,552
`8,904,074
`2005/OO97233
`2007, OO13547
`2007/O194944
`2007/0266370
`2008, 0046103
`2008, OO821.86
`2008/0260297
`2010/0281483
`2011 OO187O6
`2011/0022.192
`2011/0022822
`2011/OO77749
`2011/O157389
`
`A 10, 1989
`A
`2, 1994
`A
`1/1997
`A
`2, 1997
`A
`5, 1998
`A 11, 1999
`B1
`8, 2001
`B1
`3, 2003
`B1
`5/2003
`B1
`T/2003
`B1
`11, 2003
`B1
`12, 2003
`B2
`9, 2005
`B2
`9, 2005
`B1
`11/2005
`B2
`8, 2006
`B2 10, 2006
`B2
`1/2007
`B1
`4, 2007
`B2
`8, 2007
`B2 12, 2008
`B2 12, 2008
`B2
`4, 2009
`B1
`8, 2009
`B2
`9, 2009
`B2 11/2009
`B2
`8, 2010
`B2
`T 2011
`B2 *
`4, 2012
`B2
`6, 2012
`B2
`6, 2014
`B2 11/2014
`B2 12, 2014
`A1
`5/2005
`A1
`1/2007
`A1
`8, 2007
`A1 11, 2007
`A1
`2, 2008
`A1
`4, 2008
`A1 10, 2008
`A1 11, 2010
`A1
`1, 2011
`A1
`1, 2011
`A1
`1, 2011
`A1
`3, 2011
`A1
`6, 2011
`
`Bittorf et al.
`Flood et al.
`Palermo et al.
`Gilson et al.
`Notenboom et al.
`Imaizumi et al.
`Hopkins
`Boggs et al.
`Malm et al.
`Boggs et al.
`AZieres et al.
`O'Grady, Jr. et al.
`Voigt et al.
`So
`Hwu et al.
`Boggs et al.
`Nakamura et al.
`Asaad et al.
`Mine
`Franke
`Samad et al.
`Muneta et al.
`Galera et al.
`Steele et al.
`Carle et al.
`Naismith
`Davlin et al.
`Blair et al.
`Chandhoke ..................... TOO/86
`Fulton et al.
`Fulton et al.
`van Doorne et al.
`Lee et al.
`Oka et al.
`Boaz
`Galera et al.
`Myers et al.
`Ashida
`Hood et al.
`Chung et al.
`Rakib et al.
`Egawa
`Plache et al.
`Chandhoke
`Shang et al.
`McClellan
`
`FOREIGN PATENT DOCUMENTS
`
`CN
`CN
`DE
`DE
`JP
`JP
`
`8, 2009
`101498468 A
`9, 2011
`102.200786 A
`100 13 541 A1 10, 2001
`10 2009 047 O24 A1
`5, 2011
`2002-29.7209. A 10, 2002
`2010-079355. A
`4/2010
`
`OTHER PUBLICATIONS
`
`W. Bolton, “Programmable Logic Controllers.” (Elsevier, 4th ed.
`2006).
`Dias, J. et al., “Simulating Pursuit with Machine Experiments with
`Robots and Artificial Vision.” IEEE Transactions on Robotics and
`Automation, vol. 14, No. 1, Feb. 1998, pp. 1-18.
`Ito, T. et al., “A Master-Slave Adaptive Load-Distribution Processor
`Model on PCA.” Proceedings of the 19th IEEE International
`Parallel and Distributed Processing Symposium, Apr. 2005, 8 pages.
`Martinez, J. et al., “A modular and scalable architecture for PC
`based real-time vision systems.” Real Time Imaging, vol. 9, 2003,
`pp. 99-112.
`Ziemba, R. “Use of programmable logic controller (PLC) for
`temperature, position, velocity and pressure control of injection
`molding machinery.” Industry Applications Annual Meeting, 1988,
`Conference Record of the 1988 IEEE, pp. 12-19.
`Office Action dated Aug. 7, 2015 from U.S. Appl. No. 13/646,326.
`Extended European Search Report dated Jul. 27, 2015 from EP
`Application No. 12838771.9.
`Rao, N. “Programmable Controllers for Special Control Applica
`tions in Rolling Mills.” Industrial Automation and Control. 1995,
`IEEE/IAS International Conference, Jan. 5, 1995, pp. 173-177.
`Office Action mailed Apr. 22, 2016 from U.S. Appl. No. 13/646,326.
`Tang et al., “Application Technology of Programmable Controller.”
`published by Hubei Science and Technology Press, 2008, 35 pp.
`Office Action dated Mar. 31, 2016 from CN Application No.
`201280.0597609.
`Office Action Search Report from CN Application No.
`201280.0597609.
`Notice of Allowance dated Aug. 17, 2016 from U.S. Appl. No.
`13/646,326.
`Office Action mailed Mar. 11, 2016 by Japanese Patent Office for
`Application No. JP 2014-534803 (including English Translation).
`
`* cited by examiner
`
`IPR2025-00943
`Tesla EX1005 Page 2
`
`

`

`U.S. Patent
`
`Nov.15, 2016
`
`Sheet 1 of 10
`
`US 9,494,926 B2
`
`
`
`o€SSd00udGALVWOLNV
`
`OL
`
`
`
`JOYNLNOD)LNdNI)
`
`SYHOLVNLOVINAWdINOASHOSNAS
`
`
`(SSO0IAaa(SS9IAga
`
`
`
`89—99
`
`
`
`
`
`YATIONLNOOOIDOTFIEVNWNVeSOdd
`
`(91d)
`
`LOla
`
`IPR2025-00943
`Tesla EX1005 Page 3
`
`IPR2025-00943
`Tesla EX1005 Page 3
`
`
`
`

`

`U.S. Patent
`
`Nov. 15, 2016
`
`Sheet 2 of 10
`
`US 9,494.926 B2
`
`99
`
`
`
`IPR2025-00943
`Tesla EX1005 Page 4
`
`

`

`U.S. Patent
`
`Nov. 15, 2016
`
`Sheet 3 of 10
`
`US 9,494.926 B2
`
`
`
`
`
`
`
`9
`
`Z
`9
`
`£579
`
`IPR2025-00943
`Tesla EX1005 Page 5
`
`

`

`U.S. Patent
`
`Nov.15, 2016
`
`Sheet 4 of 10
`
`US 9,494,926 B2
`
`89
`
`89
`
`1-021
`
`JOSS9901g-09
`
`payeoipeqd
`
`Alows\
`
`JOSS8901d-09
`
`nding
`
`
`2-021
`
`a0epezul
`
`sjeuBis
`
`Jase
`
`JOSSO90/q
`
`uoneolunWWwo4wun
`
`Buisseo0J4
`
`feoyu=|—yndu|
`
`
`payeolpaq
`
`Ajows\
`
`eyeq/weiBold
`
`uonoy
`
`7sulbug
`
`IPR2025-00943
`Tesla EX1005 Page 6
`
`IPR2025-00943
`Tesla EX1005 Page 6
`
`
`
`
`
`

`

`U.S. Patent
`
`Nov. 15, 2016
`
`Sheet S of 10
`
`US 9,494.926 B2
`
`
`
`IPR2025-00943
`Tesla EX1005 Page 7
`
`

`

`U.S. Patent
`
`Nov. 15, 2016
`
`Sheet 6 of 10
`
`US 9,494.926 B2
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`dO-ON
`
`00 | 0
`
`IPR2025-00943
`Tesla EX1005 Page 8
`
`

`

`U.S. Patent
`U.S. Patent
`
`Nov.15, 2016
`
`Sheet 7 of 10
`
`US 9,494.926 B2
`US 9,494,926 B2
`
`909)OdInaqng
`
`
`
`I0ft
`
`siaysiBoy
`yndino
`
`JeuueOS
`JBUULDS
`
` Paysagewageel010JANSEN
`Bulouenbes|uMajqe|jaarbeysluanalceindd
`
`Joyesedwon
`
`o1607
`
`9
`
`IPR2025-00943
`Tesla EX1005 Page 9
`
`IPR2025-00943
`Tesla EX1005 Page 9
`
`

`

`U.S. Patent
`U.S. Patent
`
`Nov.15, 2016
`
`Sheet 8 of 10
`
`US 9,494.926 B2
`US 9,494,926 B2
`
`
`
`NOOP
`
`NOOP
`
`
`
`REGISTERS
`CHAINED
` met110c¢
`
`if144¢-2
`-L144¢-4{
`sae
`ACTIONJ
`
`
`
`
`
`
`
`

`
`. ©
`
`ey
`LL
`
`IPR2025-00943
`Tesla EX1005 Page 10
`
`
`
`0
`
`1 | r E
`





`
`
`Qo
`-
`-
`-
`oO
`
`
`Oo

`
`
`Oo
`
`=
`
`-
`

`
`-
`
`Oo
`

`
`I
`
`I
`
`I
`
`-
`
`oO
`
`-
`
`Cc
`
`o
`
`i
`
`oO
`
`a
`
`<
`
`N N
`142c-1TNS142c-3
`142c-5
`142c-4
`
`IPR2025-00943
`Tesla EX1005 Page 10
`
`

`

`U.S. Patent
`
`Nov. 15, 2016
`
`Sheet 9 of 10
`
`US 9,494.926 B2
`
`
`
`
`
`
`
`ETTEVIL LINEAE
`
`?-00||
`
`
`
`Z-00Z|| ? ||OSSE OORHd-OO
`
`
`
`ETTEVIL LINEAE
`
`
`
`ETTEVIL LINEAE
`
`U-00||
`
`IPR2025-00943
`Tesla EX1005 Page 11
`
`

`

`U.S. Patent
`U.S. Patent
`
`Nov.15, 2016
`
`Sheet 10 of 10
`
`US 9,494.926 B2
`US 9,494,926 B2
`
`
`
`SS900Jq¢peyewoyny
`
`
`
`
`
`
`
`
`
`
`
`
`
`Sguswidinbysonoqoy
`
`(SOdIA0q[OUD)}(seolaeqyndu)ssojenpy
`SIOSU8S
`
`
`
`
`
`of
`
`89
`
`
`
`
`
`yusudinbguolsiAsuryoeyy
`
`OltO61
`
`OlOY
`
`
`
`wajshs[ou]U0D
`
`
`
`uolnoyJa}se/\
`
`
`
`suibugJOSSE90lq
`
`
`
`Buisseoo0lgebeul|
`
`4eyndwoy
`
`y
`
`IPR2025-00943
`Tesla EX1005 Page 12
`
`IPR2025-00943
`Tesla EX1005 Page 12
`
`
`
`

`

`US 9,494,926 B2
`
`1.
`METHODS AND APPARATUS EMPLOYING
`AN ACTION ENGINE FORMONITORING
`AND/OR CONTROLLING DYNAMIC
`ENVIRONMENTS
`
`CROSS-REFERENCE TO RELATED
`APPLICATION
`
`The present application claims a priority benefit, under 35
`U.S.C. S 119(e), to U.S. provisional application Ser. No.
`61/543,680, filed on Oct. 5, 2011, entitled “Methods, Appa
`ratus and Systems for Monitoring and/or Controlling
`Dynamic Environments, which application is incorporated
`herein by reference in its entirety.
`
`10
`
`15
`
`BACKGROUND
`
`2
`general architecture and various aspects of functionality,
`PLCs are in many respects similar to general-purpose com
`puters (e.g., desktop or laptop personal computers); how
`ever, whereas general-purpose computers typically are opti
`mized for calculation and display tasks, PLCs generally are
`optimized for control tasks in a dynamic environment Such
`as an automated industrial process. Accordingly, PLCs gen
`erally are thought of as special-purpose control computers
`for controlled dynamic environments. Since PLCs often are
`employed in the demanding conditions of an automated
`industrial process, from a package design standpoint con
`ventional PLCs often tend to be ruggedly designed so as to
`withstand demanding environments in which the PLC may
`be exposed to one or more of physical vibrations, challeng
`ing temperature and humidity conditions, dust or potentially
`damaging materials, and electrically noisy environments.
`FIG. 2 illustrates a generalized block diagram of the
`typical electrical components/circuitry (e.g., "hardware’)
`constituting the conventional PLC 50 of FIG. 1. As shown
`in FIG. 2, the basic functional components of the PLC 50
`include a processor unit 52, memory 54, power supply 56,
`input interface 58, output interface 60, and one or more
`communications interfaces 62 all communicatively and/or
`electrically coupled to one another. FIG. 2 also shows a
`programming device 64 communicatively coupled to the
`PLC 50 and employed to program the PLC.
`In FIG. 2, the processor unit 52 includes a microprocessor
`to interpret input signals 66 received by the input interface
`58, and in turn provide output signals 68 via the output
`interface 60 So as to implement control actions according to
`a program (e.g., series of processor-executable instructions)
`stored in the memory 54. In particular, the memory 54 stores
`the program containing instructions representing the control
`actions to be implemented by the microprocessor, as well as
`various data relating to input signals, output signals and
`operation of the microprocessor as it carries out various
`instructions. The input interface 58 provides to the processor
`unit 52 information via input signals 66 received from
`external input devices (e.g., sensors, Switches, meters, coun
`ters, etc.). The processor unit 52 in turn communicates
`control actions to external output devices (e.g., valves,
`motors, etc.) via the output signals 68.
`In FIG. 2, examples of components constituting the
`respective input and output interfaces may include analog
`to-digital converters, optocouplers/optoisolators, buffers,
`latches, and drivers so as to appropriately interface with
`various external input and output devices associated with the
`controlled dynamic environment. Although four input sig
`nals and four output signals are shown for purposes of
`illustration in FIG. 2, it should be appreciated that different
`types of conventionally available PLCs may be configured
`to accept different numbers of input signals (some number N
`of input signals) and provide different numbers of output
`signals (some number X of output signal), and that the
`number of input signals and output signals need not neces
`sarily be the same. In general, the number N of input signals
`and the number X of output signals is dictated at least in part
`by the number of input devices 40 employed to monitor the
`automated process 10 of FIG. 1 and the number of control
`devices 30 employed to control the equipment 20.
`In the PLC 50 shown in FIG. 2, the communications
`interface(s) 62 is/are used to receive and transmit various
`data (which may relate to one or more of the programs for
`execution by the processor unit 52, the input signals, the
`output signals, other data to be utilized by the processor unit
`52 in executing the program, etc.) via one or more commu
`nication networks from or to one or more network-based
`
`25
`
`35
`
`40
`
`A programmable logic controller (PLC) is a special form
`of computer-based controller typically employed to control
`equipment, machinery and/or instrumentation in automated
`industrial electromechanical processes. A common example
`of such an automated industrial electromechanical process is
`given by the operation of a factory assembly line. In the
`dynamic environment of a factory assembly line, there may
`be multiple pieces of industrial equipment, machinery and/
`or instrumentation (collectively referred to as “equipment'
`for simplicity) associated with the fabrication, assembly,
`and/or packaging of parts/components, as well as the trans
`port of the parts/components amongst various stages of
`fabrication, assembly and/or packaging.
`30
`FIG. 1 provides a general illustration of the typical role of
`a conventional PLC 50 in connection with an automated
`industrial process 10 Such as the operation of a factory
`assembly line. In addition to multiple pieces of equipment
`20, the dynamic environment of a factory assembly line
`typically includes several control devices 30 (e.g., actuators)
`for operating the multiple pieces of equipment 20, as well as
`multiple input devices 40 (e.g., sensors) to provide indica
`tions of equipment status and/or various conditions associ
`ated with fabrication, assembly, packaging and/or transport
`of parts/components. Such indications provided by the input
`devices 40 often are referred to as “states' or “conditions'
`of the dynamic environment. Some examples of control
`devices 30 used to operate the equipment 20 include mag
`netic relays, Solenoids, electric motors, and pneumatic or
`45
`hydraulic cylinders. Some examples of input devices 40
`include limit Switches, position sensors, analog sensors (e.g.,
`pressure or temperature sensors), and imaging devices (e.g.,
`cameras).
`Generally speaking, the PLC 50 is employed to monitor
`input signals 66 provided by input devices 40. These input
`signals, respectively or in various combinations, represent
`different states (conditions) of the dynamic environment as
`a function of time. In response to the input signals present
`at a given time, the PLC 50 generates output signals 68 to
`the control devices 30 for operating the industrial equipment
`20, to ensure the automated process 10 is implemented
`efficiently and predictably. To this end, the PLC 50 generally
`is employed to coordinate predetermined sequences of
`actions to be taken by the equipment 20 implementing the
`process 10, in which respective actions may need to occur
`within a certain time window contingent on information
`provided by the input devices 40 (via the input signals 66).
`A typical PLC includes programmable memory to store
`processor-executable instructions and employs various other
`electronic components to implement functions such as logic,
`sequencing, timing, counting, and arithmetic. In terms of
`
`50
`
`55
`
`60
`
`65
`
`IPR2025-00943
`Tesla EX1005 Page 13
`
`

`

`3
`external input/output devices and/or other remote PLCs. In
`general, the communications interface(s) 62 implement Such
`functions as device verification, data acquisition, synchro
`nization between user applications, and connection manage
`ment. The power supply 56 converts AC voltage to a low DC
`Voltage (e.g., 5 Volts) required for the various circuitry in the
`PLC to operate. Finally, the programming device 64 (which
`in some examples may be coupled to the PLC 50 via the
`communication interface(s) 62) is employed to enter into the
`memory 54 the program to be executed by the processing
`unit 52; typically, the program is developed/written in the
`programming device 64 and then transferred to the memory
`54 of the PLC 50.
`FIG. 3 provides additional details of the internal archi
`tecture of the PLC 50 shown in FIG. 2, particularly in
`connection with the processor unit, various elements of
`memory, input/output interfaces, and busses to facilitate
`information transfer. For example, FIG. 3 illustrates that the
`processor unit 52 (denoted as CPU in FIG. 2) is associated
`with a clock 52A, the frequency of which determines the
`operating speed of the PLC and provides the timing and
`synchronization for various elements in the PLC. Informa
`tion within the PLC is carried amongst the processor unit,
`various memory elements, and to and from the input/output
`interfaces 58 and 60 via multiple busses; in particular, the
`PLC employs a data bus for transporting data to and from the
`PLC’s constituent elements, an address bus to send the
`addresses of locations for accessing Stored data, and a
`control bus for signals relating to internal control actions.
`The PLC architecture also may include an I/O system bus for
`communications between the input/output interfaces 58 and
`60 (from which the input signals 66 are received from
`external input devices, and the output signals 68 are pro
`vided to external output devices, respectively) and an input/
`output unit 55 configured to transfer input/output informa
`tion between the I/O system bus and the PLC's data bus.
`In general, the processor unit 52 (CPU) of the architecture
`shown in FIG. 3 includes an arithmetic and logic unit (ALU)
`that is responsible for data manipulation and carrying out
`arithmetic operations (e.g., addition, Subtraction, multipli
`cation, division) and digital logic operations (e.g., AND,
`OR, NOT, and EXCLUSIVE-OR), internal memory regis
`ters used to store information involved in program execu
`tion, and an internal control unit to receive the output of the
`clock 52A and control the timing of operations. The various
`memory elements constituting memory 54 may include
`read-only-memory (ROM) 54A to provide permanent stor
`age for the operating system and fixed data used by the
`processor unit, user program random-access memory 54B
`(User program RAM) employed for the program to be
`executed by the PLC, and data random-access memory 54C
`(Data RAM) used for data (information regarding the status
`of input and output signals, values of timers and counters
`and other internal devices, etc.). The program to be executed
`by the PLC may also be stored in non-volatile memory.
`From the PLC architecture illustrated in FIG. 3, it may be
`appreciated that although conventional PLCs often are con
`sidered special-purpose computers rather than general-pur
`pose computers, both PLCs and general-purpose computers
`share many aspects of a “Von Neumann' computer archi
`tecture. In a Von Neumann computer architecture, computer
`instructions (the “user program” stored in User program
`RAM 54A) as well as any data required for program
`execution (e.g., stored in Data RAM 54C) are accessed from
`various memory elements over a common bus architecture
`(i.e., via the address, data and control busses shown in FIG.
`3). Although conventional PLCs attempt to tailor computer
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`US 9,494,926 B2
`
`10
`
`15
`
`4
`performance by being special-purpose computing devices
`implementing specific functionality corresponding to a par
`ticular automated industrial process, the architecture of
`conventional PLCs nonetheless places fundamental limits
`on their performance, as they execute instructions serially
`and hence effectively have no capacity for parallel execu
`tion.
`Programming of a PLC primarily is concerned with
`specifying digital logic functions that process one or more
`input signals representing a sensed condition (“state') asso
`ciated with the automated process being implemented by
`various equipment at a given time. The digital logic func
`tions acting on the monitored condition of the automated
`process generate one or more control signals in response to
`the monitored condition. As noted above, these control
`signals are applied to control devices that in turn control the
`various equipment to take Some action involved in further
`implementing the automated process. At a high level, a PLC
`program generally implements a sequence of one or more
`actions in response to monitored conditions as a function of
`time (e.g., if A or B occurs, actuate C; if A and B occurs,
`actuate D). The automated process evolves over time as
`actuators control equipment to drive the process to new
`conditions. Hence, as noted above, the automated process
`constitutes a dynamic environment in which an evolution of
`conditions is monitored by the PLC, and wherein the PLC
`makes decisions and updates control signals to actuators,
`based on respective monitored conditions, to drive the
`environment to new conditions.
`Many conventional PLCs are programmed via a “ladder
`logic' programming language to codify the digital logic that
`is used to evaluate inputs signals representing monitored
`conditions. Common ladder logic programming languages
`typically employ graphical diagrams that resemble “rungs'
`of a ladder, wherein respective rungs represent circuit dia
`grams for electromechanical relays (which were used in
`older logical control systems) to facilitate intuitive program
`ming by control system engineers. Ladder logic is best
`Suited to implement control solutions in which primarily
`binary variables are involved (e.g., the monitored conditions
`in a dynamic environment each may be represented as
`TRUE, i.e., logic one, or FALSE, i.e., logic Zero).
`However, in a variety of automated process environments,
`outputs of sensors may be analog signals. Accordingly, in
`Some instances, if the direct output of a given input device?
`sensor is not in the form of a binary signal, the output of the
`input device/sensor may be pre-conditioned in some respects
`to provide the input signals 66 in binary form. For example,
`an analog output of a temperature sensing device may be
`first applied to a comparator circuit having a temperature set
`point Voltage as another input so as to provide, as one of the
`input signals 66, a binary indication of whether or not the
`monitored temperature is above or below the particular
`temperature set point. Alternatively, an analog value may be
`converted to a quantitative value encoded into a multi-bit
`digital word used by the system to perform mathematical
`operations and/or make decisions. Similarly, a multi-bit
`output of a counter serving as an input device may be
`compared to a pre-determined count to in turn provide, as
`one of the input signals 66, a binary indication of whether or
`not the counter output is above or below the pre-determined
`count (alternatively, an output of a counter having some
`number B of bits may be provided directly as a number B of
`input signals 66). Yet other types of input devices may
`generate highly transient signals; for Such devices, a latch
`may be employed to facilitate the detection of a signal edge
`or transient so as to provide an input signal of Suitable
`
`IPR2025-00943
`Tesla EX1005 Page 14
`
`

`

`5
`duration to the PLC indicating the occurrence of the edge/
`transient. In other examples, input devices may include
`various networked devices, for which one or more commu
`nication status signals (e.g., data packet transmitted/re
`ceived) may serve as one of the input signals 66.
`Ladder logic and other languages for programming con
`ventional PLCs generally are considered to be rules-based
`programming languages. A typical PLC program may be
`constituted by a series of rules, wherein each rule is consti
`tuted by one or more binary input signals (e.g., A, B, C, D)
`representing a monitored condition of the automated pro
`cess, and a corresponding control signal (e.g., X) that is
`generated in response to particular digital logic evaluating
`the input signals. Accordingly, in Some aspects a rule in a
`PLC program may be viewed in a manner similar to an
`“IF/THEN” statement (e.g., If (AAND NOT B) AND (COR
`D), THEN X). The PLC program includes all of the rules
`necessary to implement all of the actions that are required in
`response to different combinations of input signals repre
`senting all of the different possible conditions of the auto
`mated process that may be monitored via the set of available
`input signals.
`With reference again to FIG. 2, the programming device
`64 (which may be a handheld programming device, a
`desktop console, or a personal computer Such as a laptop or
`tablet computer) is typically employed to create, store and
`download to the PLC executable programs including a set of
`rules. When the program is executed by the PLC, the rules
`are typically executed sequentially from first to last and then
`repeated, wherein each pass through the set of rules in
`sequence often is referred to as a "scan” or "control loop.”
`Thus, consecutive repetitions of the scan or control loop
`represent a continuous cycle of the PLC reading input
`signals, examining input signal using the logic encoded in
`the program rules, and then changing control signals output
`by the PLC as appropriate.
`More specifically, with respect to general operation,
`including various housekeeping activities and performing
`scans or control loops, conventional PLCs typically function
`in a cyclical manner. For example, when power is initially
`applied to a PLC, the PLC may perform a self-check or
`diagnostic routine to ensure that various hardware compo
`nents are functioning properly. With reference again to
`FIGS. 2 and 3, if no fault or error conditions are detected, the
`PLC then controls the input interface 58 and memory 54 so
`as to read each of the input signals 66 sequentially and store
`each read instance of a given input signal in a dedicated
`memory location. The PLC then executes its program by
`sequentially testing each rule (i.e., fetching, decoding and
`executing the program instructions in sequence) and solving
`the logic encoded in the rule.
`In particular, for each rule, the stored instances of certain
`input signals as specified in the rule are retrieved from
`memory, the rule is evaluated based on the retrieved input
`signals, and if the rule is satisfied (i.e., all of the pre-requisite
`conditions specified in the rule are met), a control signal
`corresponding to the satisfaction of the rule is generated. If
`Such a control signal is generated, it is stored in a dedicated
`memory location. Evaluation of a given rule may involve
`multiple read operations from, and write operations to,
`different memory locations (e.g., registers) as the digital
`logic codified in the rule is solved. As noted above, respec
`tive rules are evaluated sequentially as the PLC executes the
`ladder logic program; accordingly, while the PLC is evalu
`ating a particular rule, it is inattentive to the other rules
`codified in the program.
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`US 9,494,926 B2
`
`10
`
`15
`
`6
`If the PLC generates any control signals in response to
`evaluation of the rules, it may provide these for output as a
`set of updated control signals 68. These control signals in
`turn are transmitted to one or more actuators or other
`equipment to be controlled in connection with the automated
`process. The PLC then returns to performing the self-check,
`reading each of the input signals and storing them to
`memory, executing the program rules to complete the con
`trol loop, updating the control signals for output (if any), and
`repeating this cycle iteratively.
`The time period required by the PLC to complete the
`cycle described above commonly is referred to as a “cycle
`time' or “scan time.” Typical cycle times of conventional
`PLCs are on the order of approximately 10 milliseconds to
`hundreds of milliseconds. The cycle time generally is deter
`mined by the particular CPU used in the processor unit, the
`size of the program to be scanned (e.g., the number of rules
`constituting the program, which in turn depends at least in
`part on the number of input signals to be read, the number
`of input signal combinations for which independent evalu
`ations are required, and the number of control signals to be
`generated), and the system functions that are in use pursuant
`to execution of the program. Thus, the more complex the
`program, the longer the cycle time will be.
`It should be appreciated that, in a conventional PLC, the
`vast majority of rules when evaluated in a given cycle are
`not satisfied (i.e., no control signal is generated pursuant to
`evaluation of the rule); if a rule is not satisfied, the program
`merely moves to the next rule for evaluation. In this manner,
`it is common in conventional PLCs for a substantial portion
`of a given cycle to be spent evaluating Successive rules
`without generating any control signals.
`Although relatively quick compared to general-purpose
`computers programmed to implement similar functionality,
`the cycle time of a PLC is not instantaneous. As a result, the
`PLC does not “watch’ its input signals all of the time, but
`instead the PLC samples the states of the input signals
`periodically depending on the cycle time. Furthermore, the
`cycle time constitutes a minimum delay in updating control
`signals (if generated pursuant to a satisfied rule) that are
`output by the PLC in response to sampled input signals. In
`this manner, the cycle time also may be viewed as a
`minimum response time (a “reaction time') of the PLC to a
`particular monitored condition (i.e., represented by a par
`ticular value for one or more of the input signals), and is
`often referred to as a “latency” of the PLC. Thus, it should
`be appreciated that due to this latency, an input signal that
`lasts for a duration shorter than the cycle time may be missed
`by the program (in general, any input signal must be present
`for longer than the cycle time). In some instances, external
`circuitry may be employed to latch transient signals so that
`they will not be missed entirely by the PLC. Even if a
`particular input signal is not “missed due to latching,
`however, a control signal that is to be generated in response
`to the input signal may be generated by the PLC too late to
`be effective for the correct operation of the equipment being
`controlled.
`Because of the cyclical nature in which a conventional
`PLC executes a program, all possible combinations of input
`signals (representing all possible conditions of the auto
`mated process being controlled for which some action is
`required) must be contemplated in a single control loop of
`the program. Stated different

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket