DETAILED ACTION
The following is a Final Office Action in response to the Amendment/Remarks received on 8 July 2026. Claims 1-3 and 6-8 have been amended. Claims 1-8 are pending in this application.
Notice of Pre-AIA or AIA Status
The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA .
Response to Arguments
Applicant’s arguments, see Remarks, pg. 5, filed 8 July 2026, with respect to objected claims 3 and 6-8 have been fully considered and are persuasive in light of the claim amendments filed on 8 July 2026. The objections of 3 and 6-8 have been withdrawn.
Examiner’s Note: The examiner inadvertently indicated claim 2 as being objected to rather claim 3 in the Non-Final Office Action mailed on 17 April 2026.
Applicant's arguments, see Remarks, pgs. 5-8, filed 8 July 2026, with respect to rejected claims 1-8 under 35 U.S.C. 101 have been fully considered but they are not persuasive.
With respect to the applicant’s arguments,
These recitations of amended claim 1 do not merely "manage personal behavior" using instructions or rules. Instead, amended claim 1 specifies that an application including PLC-specific code is automatically generated and transferred to a selected PLC "to configure the selected PLC to run the PLC-specific code and operate the at least one actuator of the sub-system based on the at least one sensor." Amended claim 1 does not merely recite outputting data but instead recites a specific step that effects a change in the real world, configuring the selected PLC to operate the actuator based on the automatically generated PLC-specific code. Amended claim 1 does not merely limit the claim to a particular field of use but recites a specific improvement for industrial plant automation system technology.
For at least these reasons, amended claim 1 provides a non-abstract improvement for configuring sub-systems of an industrial plant and thus integrates any alleged abstract ideas into a specific, practical application that provides a technological improvement in the field of industrial automation. Accordingly, the rejection of claim 1, and the claims depending therefrom, under §101 should be withdrawn. (see Remarks, pg. 6, paragraph 3-4)
The examiner respectfully disagrees.
MPEP 2106.05(a)(I):
Examples that the courts have indicated may not be sufficient to show an improvement in computer-functionality:
i. Generating restaurant menus with functionally claimed features, Ameranth, 842 F.3d at 1245, 120 USPQ2d at 1857;
ii. Accelerating a process of analyzing audit log data when the increased speed comes solely from the capabilities of a general-purpose computer, FairWarning IP, LLC v. Iatric Sys., 839 F.3d 1089, 1095, 120 USPQ2d 1293, 1296 (Fed. Cir. 2016);
iii. Mere automation of manual processes, such as using a generic computer to process an application for financing a purchase, Credit Acceptance Corp. v. Westlake Services, 859 F.3d 1044, 1055, 123 USPQ2d 1100, 1108-09 (Fed. Cir. 2017) or speeding up a loan-application process by enabling borrowers to avoid physically going to or calling each lender and filling out a loan application, LendingTree, LLC v. Zillow, Inc., 656 Fed. App'x 991, 996-97 (Fed. Cir. 2016) (non-precedential);
iv. Recording, transmitting, and archiving digital images by use of conventional or generic technology in a nascent but well-known environment, without any assertion that the invention reflects an inventive solution to any problem presented by combining a camera and a cellular telephone, TLI Communications, 823 F.3d at 611-12, 118 USPQ2d at 1747;
v. Affixing a barcode to a mail object in order to more reliably identify the sender and speed up mail processing, without any limitations specifying the technical details of the barcode or how it is generated or processed, Secured Mail Solutions, LLC v. Universal Wilde, Inc., 873 F.3d 905, 910-11, 124 USPQ2d 1502, 1505-06 (Fed. Cir. 2017);
vi. Instructions to display two sets of information on a computer display in a non-interfering manner, without any limitations specifying how to achieve the desired result, Interval Licensing LLC v. AOL, Inc., 896 F.3d 1335, 1344-45, 127 USPQ2d 1553, 1559-60 (Fed. Cir. 2018);
vii. Providing historical usage information to users while they are inputting data, in order to improve the quality and organization of information added to a database, because "an improvement to the information stored by a database is not equivalent to an improvement in the database’s functionality," BSG Tech LLC v. Buyseasons, Inc., 899 F.3d 1281, 1287-88, 127 USPQ2d 1688, 1693-94 (Fed. Cir. 2018); and
viii. Arranging transactional information on a graphical user interface in a manner that assists traders in processing information more quickly, Trading Technologies v. IBG LLC, 921 F.3d 1084, 1093-94, 2019 USPQ2d 138290 (Fed. Cir. 2019).
MPEP 2106.05 (f)(2):
(2) Whether the claim invokes computers or other machinery merely as a tool to perform an existing process. Use of a computer or other machinery in its ordinary capacity for economic or other tasks (e.g., to receive, store, or transmit data) or simply adding a general purpose computer or computer components after the fact to an abstract idea (e.g., a fundamental economic practice or mathematical equation) does not integrate a judicial exception into a practical application or provide significantly more. See Affinity Labs v. DirecTV, 838 F.3d 1253, 1262, 120 USPQ2d 1201, 1207 (Fed. Cir. 2016) (cellular telephone); TLI Communications LLC v. AV Auto, LLC, 823 F.3d 607, 613, 118 USPQ2d 1744, 1748 (Fed. Cir. 2016) (computer server and telephone unit). Similarly, "claiming the improved speed or efficiency inherent with applying the abstract idea on a computer" does not integrate a judicial exception into a practical application or provide an inventive concept. Intellectual Ventures I LLC v. Capital One Bank (USA), 792 F.3d 1363, 1367, 115 USPQ2d 1636, 1639 (Fed. Cir. 2015). In contrast, a claim that purports to improve computer capabilities or to improve an existing technology may integrate a judicial exception into a practical application or provide significantly more. McRO, Inc. v. Bandai Namco Games Am. Inc., 837 F.3d 1299, 1314-15, 120 USPQ2d 1091, 1101-02 (Fed. Cir. 2016); Enfish, LLC v. Microsoft Corp., 822 F.3d 1327, 1335-36, 118 USPQ2d 1684, 1688-89 (Fed. Cir. 2016). See MPEP §§ 2106.04(d)(1) and 2106.05(a) for a discussion of improvements to the functioning of a computer or to another technology or technical field.
The examiner respectfully disagrees.
As set forth in the current 35 U.S.C. 101 rejection of claim 1, the newly presented limitation of “… operate the at least one actuator of the sub-system based on the at least one sensor” has been treated under step 2A, prong two and step 2B of the subject matter eligibility requirement. The limitation is not more than a mere recitation of “apply it” (or equivalent) (see MPEP 2106.05(f)) that does not integrate the abstract idea into a practical application for the rational set forth below.
In addition, the newly presented limitation of “… automatically generating an application for controlling the selected PLC …” amounts to no more than using a computer to merely automate the previously claimed limitation of “generating an application”, which per MPEP 2106.05(a)(I) and MPEP 2106.05 (f)(2), does not integrate a judicial exception into a practical application.
Further, the applicant has merely summarized the steps of the claimed invention and presented broad and conclusionary statements (i.e. “Amended claim 1 does not merely limit the claim to a particular field of use but recites a specific improvement for industrial plant automation system technology.” and “Accordingly, the rejection of claim 1, and the claims depending therefrom, under §101 should be withdrawn.”) the claimed invention provides a specific improvement in the field of industrial automation without providing any specific arguments/rationales/evidence to why the previously and newly presented additional elements amount to an improvement (i.e. enhancement) in the functioning of a computer or an improvement (i.e. enhancement) to another technology or technical field (see MPEP 2106.04(d)(1) and MPEP 2106.04(a)). Hence, the applicant’s arguments are found unpersuasive.
In regards to the applicant’s arguments,
Amended claim 1 recites improvements to the technological field of industrial automation by providing an improved method for configuring sub-systems of an industrial plant. Amended claim 1 does not merely recite use of a computer to configure an industrial plant sub-system. Instead, claim 1 recites a specific approach specifying how the computer-implemented method configures a PLC to operate the at least one actuator of the sub-system based on the at least one sensor. Specifically, the method includes "automatically generating an application for controlling the selected PLC based on the selected PLC and the controller program, the application including PLC-specific code configured to run on the selected PLC," where the application is automatically generated in response to the selection of the PLC (e.g., based on the PLC type). (Specification at para. [0024].) The method further includes "transferring the application to the selected PLC to configure the selected PLC to run the PLC-specific code and operate the at least one actuator of the sub-system based on the at least one sensor." For example, the generated code may be compiled and downloaded as an application to the selected PLC. (Specification at para. [0024].)
The claimed method addresses problems with conventional approaches for implementing industrial automation technology, where the PLC is selected at an early design stage of the industrial sub-system. The claimed method addresses these problems by providing a method that allows PLC selection at a later stage (e.g., even when PLCs are replaced due to failure) without difficulty by automatically generating code and configuring the PLC responsive to the selection of the PLC. The steps of amended claim 1, at least when considered as a whole, recite unconventional activity in the field of industrial automation and confine the claim to a particular useful application, namely, configuring a PLC in an industrial automation subsystem to operate an actuator based on a sensor responsive to selection of the PLC. The claimed method provides flexibility when implementing a sub-system in an industrial plant, and may reduce the cost of the system, for example, when maintaining the industrial plant by simplifying the process for replacing a PLC of the sub-system. (Specification at para. [0032].) (see Remarks, pg. 7, paragraph 2 - pg. 8, paragraph 1)
The examiner respectfully disagrees.
The examiner recognizes the applicant has summarized the previously presented limitation of “transferring” and newly presented limitation of “operate” without providing any arguments/rationales/evidence as to why the claimed limitations of “transferring” and “operate” represent more than an insignificant extra-solution activity of outputting data (see MPEP 2106.05(g)) and a recitation of the words “apply it” (or an equivalent; see MPEP 2106.04(d)(I)), respectively, which amount to significantly more than the abstract. Further, the examiner maintains the limitation of “generating” (newly presented as automatically generating) and “selecting” were previously addressed in Step 2A, prong two of the subject matter eligibility requirement not Step 2B.
In addition, the applicant has merely set forth an advantage of use (i.e. benefits of “… providing a method that allows PLC selection at a later stage (e.g., even when PLCs are replaced due to failure) without difficulty by automatically generating code and configuring the PLC responsive to the selection of the PLC.” and “… flexibility when implementing a sub-system in an industrial plant, and may reduce the cost of the system, for example, when maintaining the industrial plant by simplifying the process for replacing a PLC of the sub-system.”) and intended use (“… configuring a PLC in an industrial automation subsystem to operate an actuator based on a sensor responsive to selection of the PLC.”) without providing any improvement (i.e. enhancement) in the functioning of a computer or an improvement (i.e. enhancement) to another technology or technical field (see MPEP 2106.05(a)). Hence, the applicant’s arguments are found unpersuasive.
Applicant's arguments, see Remarks, pgs. 8-9, filed 8 July 2026, with respect to rejected claims 1-8 under 35 U.S.C. 103 have been fully considered but they are not persuasive.
With respect to the applicant’s arguments,
Leonelli, however, does not disclose "selecting" a control device from a list based on a database storing descriptions of sensors, actuators, and control devices or based on the control program to be executed. Instead, Leonelli teaches away from this approach by providing a solution that enables the use of generic edge controller devices programmed to call remote servers to perform actions. Leonelli is thus not concerned with selecting a particular control device. Further, since Leonelli does not disclose the step of "selecting … a PLC" in the manner claimed, Leonelli likewise fails to disclose the step of "automatically generating an application for controlling the selected PLC" in response to the selection. Still further, Leonelli fails to disclose transferring an application generated in response to a PLC selection to the selected PLC. Moreover, while Leonelli discloses providing snippets of code to the control devices, these snippets of code do not configure the control devices to "operate" an actuator based on a sensor but instead configure the control devices to sends a call to a remote server for further action when certain conditions are detected. (see Remarks, pg. 9, paragraph 2)
The examiner respectfully disagrees.
US. Patent Publication No. 2018/0054850 A1 (hereinafter Leonelli) teaches:
Commonly assigned patent application Ser. No. 11/853,137, filed 11 Sep. 2007; Ser. No. 11/853,143, filed 11 Sep. 2007; Ser. No. 12/931,292, filed 28 Jan. 2011 (now U.S. Pat. No. 8,726,285); Ser. No. 14/307,198, filed 17 Jun. 2014; Ser. Nos. 14/307,227; 14/307,208, filed 17 Jun. 2014; Ser. No. 14/593,151, filed 9 Jan. 2015; Ser. No. 14/685,064, filed 13 Apr. 2015; Ser. No. 15/063,764, filed 8 Mar. 2016; and Ser. No. 15/148,353, filed 6 May, 2016, each of which is incorporated herein by reference in their entireties, describe techniques for developing software for a controller device incorporating a controller, mapping the use of hardware such as sensors or actuators to the controller remotely using a graphical user interface, and executing the software, e.g. remotely, to extend the capabilities of such a controller device via defined workflows. (pg. 2, par. [0023])
A snippet of code and/or a library is placed in the memory of the controller device. The snippet, when executed, sends a call for being executed on a code virtualization server, and/or sends (directly or via the code virtualization server) data to a service provider, and/or further calls a function to be remotely performed on the data by the service provider. Embodiments of the present invention use placement of snippets of code to create, and manage (i.e. monitor and control) controller based remote solutions comprising at least one controller device coupled to a conventional remote system. With such embodiments, remote solutions can be created for dynamic environments, for example, conventional systems coupled to controller devices. Other embodiments enable changing the code, the inputs for the code, changing the outputs required, configuring additional electronic devices (e.g., sensors, actuators, and the like) for use with the controller devices, or changing the configuration of the solutions. The configuration of the solutions may be changed by the controller devices, the conventional system, or a user using a user computer remote to the code virtualization server (or a “coding server”) on which the code is created and may be executed in part. (pg. 2, par. [0024])
The inputs received on the GUI on the user device, are used by the code virtualization server to create a program for the controller device(s), in a language suitable for the controller device(s) and according to the processing power of the controller device(s). The program or process generated automatically based on the predefined inputs by a user may also be referred to as a predefined device program or an automatically generated controller program (AGCP). The AGCP generally includes an automatically generated, predefined (based on user input) program code, and associated profile which includes parameters (data inputs) for executing the predefined program code, connection profiles, connection parameters, protocols, and other operational information required for execution of the predefined code. (pg. 3, par. [0026])
As an example, a water tank system in a residential rainwater harvesting application may contain a pump for controlling the supply to and from the water supply grid. If the water level in the tank is sufficient (i.e., above a pre-defined threshold value), additional water from the grid is not needed. However, if the water level is below the threshold level, the pump must provide additional water from the grid. Operations to control the supply are implemented via sensors and actuators (or electronic devices) working in conjunction with the water tank, the grid, and the pump(s) installed therein. In order to create a remote, controller-based management solution to activate the pump based on the water level, a user needs to design appropriate hardware configurations, configure the hardware with the correct connections and programs, and supply the correct parameters for execution of the programs. The burden of designing, configuring and operationalizing a remote solution for a simple conventional system described above can be quite complex and overwhelming for most users. Embodiments described herein remedy this complexity by providing a GUI on the user device. The GUI communicates with the code virtualization server (CVS), and presents solution templates stored at the code virtualization server to the user for selecting a desired solution. In other embodiments, the GUI allows for designing a solution from scratch. (pg. 4, par. [0036])
Upon selecting the water tank solution the GUI presents the user with a desired configuration of the water tank solution. For example, the water tank solution comprises, apart from the water tank and the pump, a water level sensor to indicate the level of water in the water tank, an actuator to control the pump, the actuator functionalities including start, stop, and speed variations. The water tank solution further includes communication devices for establishing wireless or wired connections between the water level sensor, the pump, the actuator, the network, and optionally, a gateway device. If installed, the gateway device interfaces with the network on one side, and the water level sensor and the pump actuator on the other. Each of the controller devices comprises electronic devices (e.g. sensors, actuators incorporated in the controller device), or the controller device is coupled to electronic devices of a conventional system, or a combination thereof. For ease of explanation, embodiments describe controller devices comprising the electronic devices, however, it is understood that in some embodiments, the electronic devices form a part of the conventional system, and are communicably coupled to the controller devices. In some embodiments, the GUI allows a user to specify connection(s) between the conventional system and the controller device graphically. For example, users can specify the output of a sensor to map to the desired pin on the controller device, or specify the parameter monitored by the sensor. The user can further provide specific values of the parameter (e.g., temperature or light intensity) to function as a condition for triggering a remote call of the AGCP from the controller device, or as boundaries on a visualization of monitored data. The controller devices including the electronic devices described above define a minimum hardware required for the remote water tank solution. In some embodiments, the code virtualization server determines the minimum hardware required based on a library of solutions, hardware and processes. The GUI presents the minimum hardware requirement to the user. For example, the GUI may present an interactive set of questions to the user to determine the solution required, and identify the required devices, such as controllers, sensors, actuators, and the like, and the user may use this information to obtain the required hardware and complete the required configuration for the solution, for example, as suggested in the GUI. (pg. 4, par. [0038])
The solutions library 214 includes pre-defined details about controller based solutions supported by the embodiments of the invention. The solutions library 214 includes details of the conventional systems (e.g. systems 131, 132 of FIG. 1) such as a water tank system, a refrigerator, a residential heating system, among several others. The details of conventional systems includes the various management components or electronic devices of such systems, including sensors, actuators, and the like, that can be used to monitor a parameter, or to modify or actuate a parameter of the conventional system. The solutions library 214 also comprises a hardware library 220, which comprises a list of controller devices available to interface with the management components of the conventional systems. (pg. 7, par. [0055])
The method 300 begins at step 302 and proceeds to step 304, at which the method 300 receives a selection of a desired solution from the GUI on the user device. The desired solution may include a predefined solution comprising one or more predefined controller device(s), conventional system element(s) and connectivity configuration(s). The desired solution may also include defining the solution from scratch, that is a blank template, in which the user selects or otherwise defines one or more of controller device(s), conventional system element(s) and connectivity configuration(s). The desired solution may also include the user selecting predefined solutions and modifying the configuration related to one or more of the predefined controller device(s), conventional system element(s) and connectivity configuration(s), thereby building a ‘customized’ solution. The following discussion relates to all of the above, viz., a pre-defined solution, a customized solution or a user-defined solution built from a blank template. For example, a user inputs a desired solution via the GUI 146, by selecting a solution from a list of solutions displayed in the GUI 146. The list of solutions in the GUI is populated using the solutions library 214. In alternate embodiments, the user may interact with the GUI 146 to search for a solution in the solutions library 214 using keywords, and thereafter select one of the available or suggested solutions. For example, the user may select a water tank solution from a drop down list, or by searching for terms such as “water tank,” “tank,” “pool,” and the like, which displays the water tank solution in the GUI 146, which is selected by the user. The solution includes at least one controller device, for example, one of the controller devices 102, 103 or 108, and a conventional system, for example, one of the conventional systems 130 or 132. For example, the user selects the controller device 103p and the conventional system 132r. (pg. 9, par. [0065])
If at step 310, the method 300 determines that a modification is not required, the method 300 proceeds to step 314, at which the method 300 generates a program for being executed on the controller, for example, the automatically generated controller program (AGCP) 126, using the code generator 212. The AGCP 26 includes a call, for example, the call 129 for executing a remote program, for example, the CVSP 209 on the code virtualization server 114. Generating the program includes generating the AGCP, and an SDK, created by the SDK generator 210 to work in conjunction with the AGCP 126. In some embodiments, the SDK is a custom SDK and limited to supporting the functionality required by the AGCP, thereby reducing the size of the SDK. The method 300 proceeds to step 316, at which the AGCP is sent, for example, using the interface 206, to the controller device 112 for installation on the controller device 112. In some embodiments, the SDK is also sent to the controller device 112, using the interface 206. The method 300 proceeds to step 318, at which the method 300 ends. (pgs. 9-10, par. [0069])
The modification GUI implemented as the GUI 146 provides functionality in a manner similar to the GUI generated at step 404 and/or 406, and as discussed with respect to the method 300 of FIG. 3. For example, the GUI 146 (with the modification GUI) receives an input to modify the at least one parameter. For example, the user may interact, on the GUI 146, with the GUI information. The GUI information includes the at least one parameter to view the monitored data, the boundary parameters, and the at least one parameter, and upon reviewing the GUI information, the user may modify the at least one parameter using the GUI 146. The GUI 146 sends an input corresponding to the desired modification by the user, to the code virtualization server 114 that the at least one parameter has been modified. (pg. 10, par. [0076])
Based on the input to modify the at least one parameter, the CVS generates a modified AGCP, or modifies a copy of the AGCP 126 stored on the CVS. For example, the modified AGCP is generated as a new program by executing the method 300 in manner similar as described earlier. If the modified AGCP is generated by modifying a copy of the AGCP 126, the method 300 changes relevant portions of the AGCP 126, according to the modified parameter input received at step 410, using similar techniques as described with respect to the method 300. The modified AGCP is sent to the controller device 112 for installation on the controller device 112, in a manner similar to that described with respect to step 316 of the method 300. (pg. 10, par. [0077])
The GUI elements 702-726 may be implemented as a drop down list, a check list, an icon list, radio buttons, a data input form for entering alphanumeric characters, among several others as known in the art. The GUI element 726 may further present data graphically, for example as line charts, area charts, scatter diagrams, pie charts, bar charts, among several other graphical representations of data known in the art. While only the GUI element 726 is illustrated as presenting visualization data, other GUI elements 702-724 may also present visualization data corresponding to the relevant fields presented therein. (pg. 12, par. [0082])
U.S. Patent Publication No. 2021/0096542 A1 (Stump) teaches:
The industrial system 10 may be configured to run a process 58. For example, the process 58 may include a compressor station, an oil refinery, a batch operation for making food items, a mechanized assembly line, and so forth. Accordingly, the process 58 may include a variety of operational components, such as electric motors, valves, actuators, sensors, or a myriad of manufacturing, processing, material handling, and other applications. Further, the process 58 may include control and monitoring equipment (e.g., an industrial controller 20) for regulating process variables through automation and/or observation. The control/monitoring device 20 may include, for example, automation controllers, programmable logic controllers (PLCs), programmable automation controllers (PACs), or any other controllers used in automation control. The illustrated process 58 may include one or more sensors 60 and/or one or more actuators 62. The sensors 60 may include any number of devices adapted to provide information regarding process conditions, such as temperature sensors, pressure sensors, position sensors, motion sensors, accelerometers, flow sensors, chemical sensors, and so forth. Similarly, the actuators 62 may include any number of devices adapted to perform a mechanical action in response to an input signal (e.g., linear motors, servos, electric motors, pumps, etc.). (pg. 5, par. [0070])
As illustrated, the sensors 60 and actuators 62 are in communication with the control/monitoring device 20 (e.g., industrial automation controller) and may be assigned a particular address in the control/monitoring device 20 that is accessible by the computing devices 52, via the application integration platform 56 and database 54. In some embodiments, the sensors 60 and actuators 62 may be in communication with one or more of the computing devices (e.g., an HMI), via the control/monitoring device 20, to operate equipment associated with the process 58. Indeed, the sensors 60 and actuators 62 may be utilized within process loops that are monitored and controlled by the control/monitoring device 20 and/or one or more of the computing devices 52 (e.g., an HMI). Such a process loop may be activated based on process inputs (e.g., input from a sensor 60) or direct inputs (e.g., operator input received through the computing device 52). (pg. 5, par. [0071])
It should be understood that the computing device 52 is generally intended to represent a computing system with which software 70 is deployed and executed in order to implement applications 80 for designing, configuring, modifying, monitoring, and/or troubleshooting industrial automation systems 10. Further, the application integration platform 56 may run on one or more computing devices 52, and computing devices 52 may store and maintain the database 52. However, the computing system 52 may also represent any computing system on which software 70 may be staged and from which software 70 may be distributed, transported, downloaded, or otherwise provided to yet another computing device 52 for deployment and execution, or yet additional distribution. For example, computing device 52 could be configured to deploy software 70 over the internet to one or more client computing systems for execution thereon, such as in a cloud-based deployment scenario. (pg. 7, par. [0081])
The examiner emphasizes that all anticipated components and limitations
of the pending claims are present in the prior art as supported below. In addition, the examiner notes the limitations of “providing a controller …”, “… automatically generating an application …”, and “… operate the at least one actuator of the sub-system based on the at least one sensor” were newly presented in the Amendment After Non-Final received on 8 July 2026 by the Office, and have been addressed as set forth in the office action below.
Further, the applicant's arguments are against the references individually, wherein one cannot show nonobviousness by attacking references individually where the rejections are based on combinations of references. See In re Keller, 642 F.2d 413, 208 USPQ 871 (CCPA 1981); In re Merck & Co., 800 F.2d 1091, 231 USPQ 375 (Fed. Cir. 1986). Additionally, the examiner recognizes the applicant has not addressed Leonelli’s teaching of transferring an automatically generated controller program, per a selection of a controller in a list based on a memory and obtained data describing an action of at least on actuator caused by at least one sensor, to a controller in combination with Stump’s teaching of at least one programmable logic controller (PLC), a database, and operating at least one actuator of a sub-system based on at least one sensor. Hence, the applicant’s argument is found unpersuasive.
Claims 1-8 stand rejected under 35 U.S.C. 101 and claims 1, 2, 4, 5, and 8 stand rejected under 35 U.S.C. 103 as set forth below.
Claim Interpretation
Claim 1 recites the limitation of “providing a controller program” in line 7. The limitation of “providing” has been interpreted as “writing” given the broadest reasonable interpretation in light of the specification (U.S. Patent Publication No. 2024/0361741 (instant application): abstract, pg. 2, par. [0026], pg. 3, par. [0032] and claim 1 as originally filed on 4 April 2024).
Claim Objections
Claim 2 is objected to because of the following informalities:
Claim 1 recites “selecting … a PLC …” in line 9 and claim 2 recites “wherein selecting the PLC …” in line 4. Suggested claim language: The limitation of “… wherein selecting the PLC …” in claim 2 should read “the selection of the PLC …” since the limitation has antecedent support; and has been interpreted as such for the purpose of examination.
Claim Rejections - 35 USC § 101
35 U.S.C. 101 reads as follows:
Whoever invents or discovers any new and useful process, machine, manufacture, or composition of matter, or any new and useful improvement thereof, may obtain a patent therefor, subject to the conditions and requirements of this title.
Claims 1-8 are rejected under 35 U.S.C. 101 because the claimed invention is directed to abstract idea without significantly more.
Claim 1:
At step 1, the recites a method for comprising of a plurality of “actions”; and therefore is a process, which is a statutory category of invention.
At step 2A, prong one the claim recites “providing a controller program, the controller program describing an action of the at least one actuator caused by the at least one sensor”; “selecting, based on the database and the controller program, a PLC of the PLC-list, which functionally connects the sensor and the actuator”; and “automatically generating an application for controlling the selected PLC based on the selected PLC and the controller program”.
The limitation of “providing a controller program, the controller program describing an action of the at least one actuator caused by the at least one sensor” (Examiner’s Note: The limitation of “providing” has been interpreted as “writing” given the broadest reasonable interpretation in light of the specification (U.S. Patent Publication No. 2024/0361741 (instant application): abstract, pg. 2, par. [0026], pg. 3, par. [0032] and claim 1 as originally filed on 4 April 2024), as drafted, is a process, under its broadest reasonable interpretation covers performing the limitation by use of steps in organizing a human activit(ies).
If a claim limitation, under its broadest reasonable interpretation, covers performance of the limitations by managing personal behavior (i.e. “providing a controller program …”) using an instruction or rule (i.e. “… the controller program describing an action of the at least one actuator caused by the at least one sensor”, as drafted, is a process”), then it falls within the sub-grouping of “C. Managing Personal Behavior or Relationships or Interactions Between People” of the “Certain Methods of Organizing Human Activity” grouping of abstract ideas. (MPEP 2106.04(a)(2)(C)(II): “Finally, the sub-groupings encompass both activity of a single person (for example, a person following a set of instructions or a person signing a contract online) and activity that involves multiple people (such as a commercial interaction), and thus, certain activity between a person and a computer (for example a method of anonymous loan shopping that a person conducts using a mobile phone) may fall within the "certain methods of organizing human activity" grouping. It is noted that the number of people involved in the activity is not dispositive as to whether a claim limitation falls within this grouping. Instead, the determination should be based on whether the activity itself falls within one of the sub-groupings.”) Accordingly, the claim recites an abstract idea.
The limitation of “selecting, based on the database and the controller program, a PLC of the PLC-list, which functionally connects the sensor and the actuator”, as drafted, is a process, under its broadest reasonable interpretation covers performing the limitation by use of steps in organizing a human activit(ies).
If a claim limitation, under its broadest reasonable interpretation, covers performance of the limitations by managing personal behavior (i.e. “selecting, …, a PLC of the PLC-list, which functionally connects the sensor and the actuator”) using an instruction or rule (i.e. “… based on the database and the controller program …”, as drafted, is a process”), then it falls within the sub-grouping of “C. Managing Personal Behavior or Relationships or Interactions Between People” of the “Certain Methods of Organizing Human Activity” grouping of abstract ideas. (MPEP 2106.04(a)(2)(C)(II): “Finally, the sub-groupings encompass both activity of a single person (for example, a person following a set of instructions or a person signing a contract online) and activity that involves multiple people (such as a commercial interaction), and thus, certain activity between a person and a computer (for example a method of anonymous loan shopping that a person conducts using a mobile phone) may fall within the "certain methods of organizing human activity" grouping. It is noted that the number of people involved in the activity is not dispositive as to whether a claim limitation falls within this grouping. Instead, the determination should be based on whether the activity itself falls within one of the sub-groupings.”) Accordingly, the claim recites an abstract idea.
At step 2A, prong two, the judicial is not integrated into a practical application. In particular, the claim recites “… a sub-system of an industrial plant, the sub-system comprising at least one sensor, at least one actuator and at least one programmable logic controller (PLC)”; “storing a description of the at least one sensor in a database”; “storing a description of the at least one actuator in the database”; “storing a PLC-list comprising a description of the at least one PLC in the database”; “in response to the selection of the PLC, automatically generating an application for controlling the selected PLC based on the selected PLC and the controller program, the application including PLC-specific code configured to run on the selected PLC” and “transferring the application to the selected PLC to configure the selected PLC to run the PLC-specific code and operate the at least one sensor and the at least one actuator of the sub-system based on the at least one sensor”.
The limitation of “… a sub-system of an industrial plant, the sub-system comprising at least one sensor, at least one actuator and at least one programmable logic controller (PLC)” is generally recited at a high level of generality and merely limits the abstract idea to a field of use. The courts have found “a claim directed to a judicial exception cannot be made eligible ‘simply by having the applicant acquiesce to limiting the reach of the patent for the formula to a particular technological use.’ Diamond v. Diehr, 450 U.S. 175, 192 n.14, 209 USPQ 1, 10 n. 14 (1981). Thus, limitations that amount to merely indicating a field of use or technological environment in which to apply a judicial exception do not amount to significantly more than the exception itself, and cannot integrate a judicial exception into a practical application.” (MPEP 2106.05(h)).
The limitations of “… at least one programmable logic controller (PLC) …”; “a computer program …”; “… a database …”; “… an application …”; “… the application including PLC-specific code configured to run on the selected PLC”; and “… the application … to configure the selected PLC to run the PLC-specific code and operate the at least one sensor and the at least one actuator of the sub-system based on the at least one sensor” are recited at a high level of generality and recited so generically that they represent no more than mere instructions to apply the judicial exception on a computer component (see MPEP 2106.05(f)).
The limitations of “storing a description of the at least one sensor in a database”; “storing a description of the at least one actuator in the database”; and “storing a PLC-list comprising a description of the at least one PLC in the database” represent mere data gathering. The limitations of “storing” are recited at a high level of generally and recited so generically they represent no more than an insignificant extra-solution activities of gathering data (see MPEP 2106.05(g)).
The limitation of “transferring the application to the selected PLC to configure the selected PLC to run the PLC-specific code and operate the at least one sensor and the at least one actuator of the sub-system based on the at least one sensor” represents a mere output of data. The limitation of “transferring” is recited at a high level of generally and recited so generically it represents no more than an insignificant extra-solution activity of outputting data (see MPEP 2106.05(g)).
The limitation of “in response to the selection of the PLC, automatically generating an application for controlling the selected PLC based on the selected PLC and the controller program, the application including PLC-specific code configured to run on the selected PLC” represents mere output of data. The limitation of “transferring” is recited at a high level of generally and recited so generically it represents no more than an insignificant extra-solution activity of outputting data (see MPEP 2106.05(g)).
The limitation of “… configure the selected PLC to run the PLC-specific code and operate the at least one sensor and the at least one actuator of the sub-system based on the at least one sensor” is a recitation of the words “apply it” (or an equivalent). “As explained by the Supreme Court, in order to make a claim directed to a judicial exception patent-eligible, the additional element or combination of elements must do "‘more than simply stat[e] the [judicial exception] while adding the words ‘apply it’". Alice Corp. v. CLS Bank, 573 U.S. 208, 221, 110 USPQ2d 1976, 1982-83 (2014) (quoting Mayo Collaborative Servs. V. Prometheus Labs., Inc., 566 U.S. 66, 72, 101 USPQ2d 1961, 1965).” (see MPEP 2106.05(f))
Accordingly, these additional elements neither individually nor in combination integrate the abstract idea into a practical application because they do not impose any meaningful limits on practicing the abstract idea. Thus, the claim is directed to an abstract idea.
At step 2B, the claim does not include additional elements that are sufficient to amount to significantly more than the judicial exception. As previously discussed with respect to the integration of the abstract idea into a practical application, the addition of the elements of “… at least one programmable logic controller (PLC) …”; “a computer program …”; “… a database …”; “… an application …”; “… the application including PLC-specific code configured to run on the selected PLC”; and “… the application … to configure the selected PLC to run the PLC-specific code and operate the at least one sensor and the at least one actuator of the sub-system based on the at least one sensor” amount to no more than mere instructions to apply the exception using generic computer components. Mere instructions to apply an exception using generic computer components cannot provide an inventive concept. See MPEP 2106.05(d)(II), “Courts have held computer‐implemented processes not to be significantly more than an abstract idea (and thus ineligible) where the claim as a whole amounts to nothing more than generic computer functions merely used to implement an abstract idea, such as an idea that could be done by a human analog (i.e., by hand or by merely thinking).”
The limitation of “… a sub-system of an industrial plant, the sub-system comprising at least one sensor, at least one actuator and at least one programmable logic controller (PLC)” merely limits the abstract idea to a field of use. Wherein, limiting the invention to a field of use cannot provide an inventive concept. Thus, the claim is not patent eligible. (MPEP 2106.05(h)).
The limitations of “storing a description of the at least one sensor in a database”; “storing a description of the at least one actuator in the database”; and “storing a PLC-list comprising a description of the at least one PLC in the database”, as discussed above, amount to no more than mere data gathering. In addition, the limitations are well-understood, routine and conventional; wherein the courts have found limitations directed to obtaining data, recited at high level of generality, to be well-understood, routine and conventional. See MPEP 2106.05(d)(II), “storing and retrieving information in memory”.
The limitation of “transferring the application to the selected PLC to configure the selected PLC to run the PLC-specific code and operate the at least one sensor and the at least one actuator of the sub-system based on the at least one sensor”, as discussed above, represents an insignificant extra-solution activity of outputting data. Further, the courts have found limitations directed to data transmission, recited at a high level of generality, to be well-known, routine, and conventional. See MPEP 2106.05(d)(II), “receiving or transmitting data over a network”.
The limitation of “in response to the selection of the PLC, automatically generating an application for controlling the selected PLC based on the selected PLC and the controller program, the application including PLC-specific code configured to run on the selected PLC”, as discussed above, represents an insignificant extra-solution activity of data gathering. Further, the limitation is well-understood, routine and conventional; wherein the courts have found limitations directed to obtaining data, recited at high level of generality, to be well-understood, routine and conventional. See MPEP 2106.05(d)(II), “storing and retrieving information in memory”.
The limitation of “… configure the selected PLC to run the PLC-specific code and operate the at least one sensor and the at least one actuator of the sub-system based on the at least one sensor” represents an equivalent recitation of the phrase “apply it”, wherein the courts have identified limitations that “(m)erely recit(e) the words ‘apply it’ (or an equivalent)” with the judicial exception cannot provide an inventive concept …”. (see MPEP 2106.04(d)(I)).
Considering the additional elements individually and in combination and the claim as a whole, the additional elements do not provide significantly more than the abstract idea. The claim is not patent eligible.
Claim 2:
The limitations of claim 2 merely further details “… a PLC of the PLC-list …” and “selecting, …, a PLC of the PLC-list” of claim 1; and is herein addressed for the rationale as set forth above in independent claim 1.
Claim 3:
At step 2A, prong two, the judicial is not integrated into a practical application. In particular, the claim recites “… outputting an error message when the PLC-list does not include a suitable PLC”.
The limitation of “… outputting an error message when the PLC-list does not include a suitable PLC” represents the mere output of data. The limitation of “caus(ing)” is recited at a high level of generally and recited so generically it represents more than an insignificant extra-solution activity of outputting data (see MPEP 2106.05(g)).
Accordingly, the additional element does not integrate the abstract idea into a practical application because it does not impose any meaningful limits on practicing the abstract idea. Thus, the claim is directed to an abstract idea.
At step 2B, the claim does not include additional elements that are sufficient to amount to significantly more than the judicial exception. As previously discussed with respect to the integration of the abstract idea into a practical application, the addition of the limitation “… outputting an error message when the PLC-list does not include a suitable PLC”, as discussed above, represents an insignificant extra-solution activity of outputting data. Further, the limitation is well-understood, routine and conventional; wherein the courts have found limitations directed to outputting data, recited at high level of generality, to be well-understood, routine, and conventional. See MPEP 2106.05(d)(II), “presenting offers and gathering”.
Considering the additional element individually and the claim as a whole, the additional element does not provide significantly more than the abstract idea. The claim is not patent eligible.
Claim 4:
At step 2A, prong two, the judicial is not integrated into a practical application. In particular, the claim recites “… starting to operate the sub-system of the industrial plant”.
The limitation of “… starting to operate the sub-system of the industrial plant” is a recitation of the words “apply it” (or an equivalent). “As explained by the Supreme Court, in order to make a claim directed to a judicial exception patent-eligible, the additional element or combination of elements must do "‘more than simply stat[e] the [judicial exception] while adding the words ‘apply it’". Alice Corp. v. CLS Bank, 573 U.S. 208, 221, 110 USPQ2d 1976, 1982-83 (2014) (quoting Mayo Collaborative Servs. V. Prometheus Labs., Inc., 566 U.S. 66, 72, 101 USPQ2d 1961, 1965).” (see MPEP 2106.05(f))
Accordingly, the additional element does not integrate the abstract idea into a practical application because it does not impose any meaningful limits on practicing the abstract idea. Thus, the claim is directed to an abstract idea.
At step 2B, the claim does not include additional elements that are sufficient to amount to significantly more than the judicial exception. As previously discussed with respect to the integration of the abstract idea into a practical application, the addition of the limitation of “… starting to operate the sub-system of the industrial plant”, as discussed above, is a recitation of the words “apply it” (or an equivalent). “As explained by the Supreme Court, in order to make a claim directed to a judicial exception patent-eligible, the additional element or combination of elements must do "‘more than simply stat[e] the [judicial exception] while adding the words ‘apply it’". Alice Corp. v. CLS Bank, 573 U.S. 208, 221, 110 USPQ2d 1976, 1982-83 (2014) (quoting Mayo Collaborative Servs. V. Prometheus Labs., Inc., 566 U.S. 66, 72, 101 USPQ2d 1961, 1965).” (see MPEP 2106.05(f))
Considering the additional element individually and the claim as a whole, the additional element does not provide significantly more than the abstract idea. The claim is not patent eligible.
Claim 5:
The limitation of claim 5 merely further details “… a controller program …” of claim 1; and is herein addressed for the rationale as set forth above in independent claim 1.
Claim 6:
The limitations of claim 6 merely further detail “… at least one PLC …”; “… an application …”; and “… a database …” of claim 1; and is herein addressed for the rationale as set forth above in independent claim 1.
Claim 7
At step 2A, prong one the claim recites “removing said selected PLC from the database”; “selecting a second PLC, which connects the sensor and the actuator based on the controller program”; and “generating an application based on the selected second PLC and the controller program”.
The limitation of “removing said selected PLC from the database”, as drafted, is a process, under its broadest reasonable interpretation covers performing the limitation by use of steps in organizing a human activit(ies).
If a claim limitation, under its broadest reasonable interpretation, covers performance of the limitations by managing personal behavior (i.e. “removing said selected PLC from the database”) using an instruction or rule (i.e. “… detecting a hardware defect of the selected PLC”, as drafted, is a process”), then it falls within the sub-grouping of “C. Managing Personal Behavior or Relationships or Interactions Between People” of the “Certain Methods of Organizing Human Activity” grouping of abstract ideas. (MPEP 2106.04(a)(2)(C)(II): “Finally, the sub-groupings encompass both activity of a single person (for example, a person following a set of instructions or a person signing a contract online) and activity that involves multiple people (such as a commercial interaction), and thus, certain activity between a person and a computer (for example a method of anonymous loan shopping that a person conducts using a mobile phone) may fall within the "certain methods of organizing human activity" grouping. It is noted that the number of people involved in the activity is not dispositive as to whether a claim limitation falls within this grouping. Instead, the determination should be based on whether the activity itself falls within one of the sub-groupings.”) Accordingly, the claim recites an abstract idea.
The limitation of “selecting, based on the database and the controller program, a PLC of the PLC-list, which functionally connects the sensor and the actuator”, as drafted, is a process, under its broadest reasonable interpretation covers performing the limitation by use of steps in organizing a human activit(ies).
If a claim limitation, under its broadest reasonable interpretation, covers performance of the limitations by managing personal behavior (i.e. “selecting a second PLC, which connects the sensor and the actuator …”) using an instruction or rule (i.e. “… based on the controller program …”, as drafted, is a process”), then it falls within the sub-grouping of “C. Managing Personal Behavior or Relationships or Interactions Between People” of the “Certain Methods of Organizing Human Activity” grouping of abstract ideas. (MPEP 2106.04(a)(2)(C)(II): “Finally, the sub-groupings encompass both activity of a single person (for example, a person following a set of instructions or a person signing a contract online) and activity that involves multiple people (such as a commercial interaction), and thus, certain activity between a person and a computer (for example a method of anonymous loan shopping that a person conducts using a mobile phone) may fall within the "certain methods of organizing human activity" grouping. It is noted that the number of people involved in the activity is not dispositive as to whether a claim limitation falls within this grouping. Instead, the determination should be based on whether the activity itself falls within one of the sub-groupings.”) Accordingly, the claim recites an abstract idea.
The limitation of “generating an application based on the selected second PLC and the controller program”, as drafted, is a process, under its broadest reasonable interpretation covers performing the limitation by use of steps in organizing a human activit(ies).
If a claim limitation, under its broadest reasonable interpretation, covers performance of the limitations by managing personal behavior (i.e. “generating an application …”) using an instruction or rule (i.e. “… based on the selected second PLC and the controller program”, as drafted, is a process”), then it falls within the sub-grouping of “C. Managing Personal Behavior or Relationships or Interactions Between People” of the “Certain Methods of Organizing Human Activity” grouping of abstract ideas. (MPEP 2106.04(a)(2)(C)(II): “Finally, the sub-groupings encompass both activity of a single person (for example, a person following a set of instructions or a person signing a contract online) and activity that involves multiple people (such as a commercial interaction), and thus, certain activity between a person and a computer (for example a method of anonymous loan shopping that a person conducts using a mobile phone) may fall within the "certain methods of organizing human activity" grouping. It is noted that the number of people involved in the activity is not dispositive as to whether a claim limitation falls within this grouping. Instead, the determination should be based on whether the activity itself falls within one of the sub-groupings.”) Accordingly, the claim recites an abstract idea.
At step 2A, prong two, the judicial is not integrated into a practical application. In particular, the claim recites “detecting a hardware defect of the selected PLC” and “transferring the application to the selected second PLC, thus configuring and/or functionally connecting the at least one sensor and the at least one actuator of the sub-system”.
The limitations of “… the selected PLC”; “…the selected second PLC …”; and “… the controller program” are recited at a high level of generality and recited so generically that they represent no more than mere instructions to apply the judicial exception on a computer component (see MPEP 2106.05(f)).
The limitation of “transferring the application to the selected second PLC, thus configuring and/or functionally connecting the at least one sensor and the at least one actuator of the sub-system” represents mere output of data. The limitation of “transferring” is recited at a high level of generally and recited so generically it represents more than an insignificant extra-solution activity of outputting data (see MPEP 2106.05(g)).
Accordingly, these additional elements neither individually nor in combination integrate the abstract idea into a practical application because they do not impose any meaningful limits on practicing the abstract idea. Thus, the claim is directed to an abstract idea.
At step 2B, the claim does not include additional elements that are sufficient to amount to significantly more than the judicial exception. As previously discussed with respect to the integration of the abstract idea into a practical application, the addition of the elements of “… the selected PLC”; “…the selected second PLC …”; and “… the controller program” amount to no more than mere instructions to apply the exception using generic computer components. Mere instructions to apply an exception using generic computer components cannot provide an inventive concept. See MPEP 2106.05(d)(II), “Courts have held computer‐implemented processes not to be significantly more than an abstract idea (and thus ineligible) where the claim as a whole amounts to nothing more than generic computer functions merely used to implement an abstract idea, such as an idea that could be done by a human analog (i.e., by hand or by merely thinking).”
The limitation of “generating an application based on the selected second PLC and the controller program”, as discussed above, amounts to no more than mere data gathering. In addition, the limitation is well-understood, routine and conventional; wherein the courts have found limitations directed to obtaining data, recited at high level of generality, to be well-understood, routine and conventional. See MPEP 2106.05(d)(II), “storing and retrieving information in memory”.
The limitation of “transferring the application to the selected second PLC, thus configuring and/or functionally connecting the at least one sensor and the at least one actuator of the sub-system”, as discussed above, represents an insignificant extra-solution activity of outputting data. Further, the courts have found limitations directed to data transmission, recited at a high level of generality, to be well-known, routine, and conventional. See MPEP 2106.05(d)(II), “receiving or transmitting data over a network”.
Considering the additional elements individually and in combination and the claim as a whole, the additional elements do not provide significantly more than the abstract idea. The claim is not patent eligible.
Claim 8:
At step 2A, prong two, the judicial is not integrated into a practical application. In particular, the claim recites “providing a Global Discovery Service (GDS) database according to IEC62541-12 for storing and/or retrieving the PLC-list”.
The limitation of “… a Global Discovery Service (GDS) database according to IEC62541-12 …” is recited at a high level of generality and recited so generically that it represents no more than mere instructions to apply the judicial exception on a computer component (see MPEP 2106.05(f)).
The limitation of “… storing and/or retrieving the PLC-list” represents mere data gathering. The limitation of “storing and/or retrieving” is recited at a high level of generally and recited so generically it represents no more than an insignificant extra-solution activities of gathering data (see MPEP 2106.05(g)).
Accordingly, these additional elements neither individually nor in combination integrate the abstract idea into a practical application because they do not impose any meaningful limits on practicing the abstract idea. Thus, the claim is directed to an abstract idea.
At step 2B, the claim does not include additional elements that are sufficient to amount to significantly more than the judicial exception. As previously discussed with respect to the integration of the abstract idea into a practical application, the addition of the element of “… a Global Discovery Service (GDS) database according to IEC62541-12 …” amounts to no more than mere instructions to apply the exception using generic computer components. Mere instructions to apply an exception using generic computer components cannot provide an inventive concept. See MPEP 2106.05(d)(II), “Courts have held computer‐implemented processes not to be significantly more than an abstract idea (and thus ineligible) where the claim as a whole amounts to nothing more than generic computer functions merely used to implement an abstract idea, such as an idea that could be done by a human analog (i.e., by hand or by merely thinking).”
The limitation of “… storing and/or retrieving the PLC-list”, as discussed above, amounts to no more than mere data gathering. In addition, the limitation is well-understood, routine and conventional; wherein the courts have found limitations directed to obtaining data, recited at high level of generality, to be well-understood, routine and conventional. See MPEP 2106.05(d)(II), “storing and retrieving information in memory”.
Considering the additional elements individually and in combination and the claim as a whole, the additional elements do not provide significantly more than the abstract idea. The claim is not patent eligible.
In the event the determination of the status of the application as subject to AIA 35 U.S.C. 102 and 103 (or as subject to pre-AIA 35 U.S.C. 102 and 103) is incorrect, any correction of the statutory basis (i.e., changing from AIA to pre-AIA ) for the rejection will not be considered a new ground of rejection if the prior art relied upon, and the rationale supporting the rejection, would be the same under either status.
Claim Rejections - 35 USC § 103
The following is a quotation of 35 U.S.C. 103 which forms the basis for all obviousness rejections set forth in this Office action:
A patent for a claimed invention may not be obtained, notwithstanding that the claimed invention is not identically disclosed as set forth in section 102, if the differences between the claimed invention and the prior art are such that the claimed invention as a whole would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which the claimed invention pertains. Patentability shall not be negated by the manner in which the invention was made.
Claims 1, 4, and 5 are rejected under 35 U.S.C. 103 as being unpatentable over U.S. Patent Publication No. 2018/0054850 A1 (hereinafter Leonelli) in view of U.S. Patent Publication No. 2021/0096542 A1 (hereinafter Stump).
As per claim 1, Leonelli substantially teaches the Applicant’s claimed invention. Leonelli teaches the limitations of a computer-implemented method for configuring a system, the system comprising at least one sensor, at least one actuator and at least one controller (PLC), the method comprising:
storing a description of the at least one sensor in a memory (pgs. 6-7, par. [0047], [0050], and [0052]; i.e. [0050]: “The memory stores computer readable instructions corresponding to an operating system (not shown), an interface 206, a process library 208, an SDK generator 210, a code generator 212, a solutions library 214, an execution engine 216, and a profile 218.”; [0052]: “… the process library 208 includes a process (program or code) for changing the state of the actuator based on a monitored state of the conventional system.”; and [0055]: “The solutions library 214 includes details of the conventional systems (e.g. systems 131, 132 of FIG. 1) such as a water tank system, a refrigerator, a residential heating system, among several others. The details of conventional systems includes the various management components or electronic devices of such systems, including sensors, actuators, and the like, that can be used to monitor a parameter, or to modify or actuate a parameter of the conventional system.”);
storing a description of the at least one actuator in the memory (pgs. 6-7, par. [0047], [0050], and [0052]; i.e. [0050]: “The memory stores computer readable instructions corresponding to an operating system (not shown), an interface 206, a process library 208, an SDK generator 210, a code generator 212, a solutions library 214, an execution engine 216, and a profile 218.”; [0052]: “… the process library 208 includes a process (program or code) for changing the state of the actuator based on a monitored state of the conventional system.”; and [0055]: “The solutions library 214 includes details of the conventional systems (e.g. systems 131, 132 of FIG. 1) such as a water tank system, a refrigerator, a residential heating system, among several others. The details of conventional systems includes the various management components or electronic devices of such systems, including sensors, actuators, and the like, that can be used to monitor a parameter, or to modify or actuate a parameter of the conventional system.”);
storing a controller-list comprising a description of the at least one controller in the memory (pgs. 6-7, par. [0047], [0050], [0052], and [0055]; i.e. [0050]: “The memory stores computer readable instructions corresponding to an operating system (not shown), an interface 206, a process library 208, an SDK generator 210, a code generator 212, a solutions library 214, an execution engine 216, and a profile 218.” and [0055]: “The solutions library 214 also comprises a hardware library 220, which comprises a list of controller devices available to interface with the management components of the conventional systems.”);
obtaining data describing an action of the at least one actuator caused by the at least one sensor (pg. 3, par. [0026], pg. 4, par. [0036], [0038] and [0039] and pg. 7, par. [0053] and [0054]; i.e. [0026]: “The program or process generated automatically based on the predefined inputs by a user may also be referred to as a predefined device program or an automatically generated controller program (AGCP). The AGCP generally includes an automatically generated, predefined (based on user input) program code, and associated profile which includes parameters (data inputs) for executing the predefined program code, connection profiles, connection parameters, protocols, and other operational information required for execution of the predefined code.”, [0036]: “Operations to control the supply are implemented via sensors and actuators (or electronic devices) working in conjunction with the water tank, the grid, and the pump(s) installed therein.”, [0039]: “Once the user confirms via the GUI that such hardware requirement is complete, the code virtualization server generates a program (referred to as a process, predefined program/code, or AGCP) for all the controller devices in the water tank solution.”, [0053]: “The SDK generator 210 generates an SDK in response to a user interacting with the GUI 146 and selecting or defining the choreos to be implemented in connection with the controller devices.”, and [0054]: “The code generator 212 creates a complete program code, or snippets of code for insertion in a complete program code, in response to the functions or choreos selected by the user for a particular controller device. Such code is referred to as automatically generated controller program (AGCP) 126, which may be stored in the memory 204, for being sent to the controller devices 102, 103 or 108.”);
selecting, based on the memory and the obtained data describing the action of the at least one actuator caused by the at least one sensor, a controller of the controller-list, which functionally connects the sensor and the actuator (pgs. 7-8, par. [0055] and [0057], pg. 9, par. [0065], and pg. 10, par. [0073]; i.e. [0055]: “The solutions library 214 also comprises a hardware library 220, which comprises a list of controller devices available to interface with the management components of the conventional systems.”; [0057]: “The hardware library 220 includes a list of controller devices compatible with the electronic devices, such as actuators and water level sensors, and all parameters pertaining to the controller device and the electronic devices.”; [0065]: “The desired solution may also include the user selecting predefined solutions and modifying the configuration related to one or more of the predefined controller device(s), conventional system element(s) and connectivity configuration(s), thereby building a ‘customized’ solution. The following discussion relates to all of the above, viz., a pre-defined solution, a customized solution or a user-defined solution built from a blank template. For example, a user inputs a desired solution via the GUI 146, by selecting a solution from a list of solutions displayed in the GUI 146. The list of solutions in the GUI is populated using the solutions library 214. In alternate embodiments, the user may interact with the GUI 146 to search for a solution in the solutions library 214 using keywords, and thereafter select one of the available or suggested solutions. For example, the user may select a water tank solution from a drop down list, or by searching for terms such as “water tank,” “tank,” “pool,” and the like, which displays the water tank solution in the GUI 146, which is selected by the user. The solution includes at least one controller device, for example, one of the controller devices 102, 103 or 108, and a conventional system, for example, one of the conventional systems 130 or 132. For example, the user selects the controller device 103p and the conventional system 132r.” and [0073]: “The modification GUI also includes options for receiving input for changing the condition, the at least one parameter, the remote program parameter, or the remote program itself.”);
in response to the selection of the controller, automatically generating an application for controlling the selected controller based on the selected controller and the obtained data describing the action of the at least one actuator caused by the at least one sensor, the application including controller-specific code configured to run on the selected controller (pg. 3, par. [0026], pgs. 9-10, par. [0065] and [0069], pg. 10, par. [0076] and [0077]; i.e. [0026]: “The program or process generated automatically based on the predefined inputs by a user may also be referred to as a predefined device program or an automatically generated controller program (AGCP). The AGCP generally includes an automatically generated, predefined (based on user input) program code, and associated profile which includes parameters (data inputs) for executing the predefined program code, connection profiles, connection parameters, protocols, and other operational information required for execution of the predefined code.”, [0069]: “If at step 310, the method 300 determines that a modification is not required, the method 300 proceeds to step 314, at which the method 300 generates a program for being executed on the controller, for example, the automatically generated controller program (AGCP) 126, using the code generator 212.”, [0076]: “The GUI 146 sends an input corresponding to the desired modification by the user, to the code virtualization server 114 that the at least one parameter has been modified.”, and [0077]: “For example, the modified AGCP is generated as a new program by executing the method 300 in manner similar as described earlier. If the modified AGCP is generated by modifying a copy of the AGCP 126, the method 300 changes relevant portions of the AGCP 126, according to the modified parameter input received at step 410, using similar techniques as described with respect to the method 300.” ); and
transferring the application to the selected controller to configure the selected controller to run the controller-specific code (pg. 7, par. [0054]; i.e. [0054]: “The code generator 212 creates a complete program code, or snippets of code for insertion in a complete program code, in response to the functions or choreos selected by the user for a particular controller device. Such code is referred to as automatically generated controller program (AGCP) 126, which may be stored in the memory 204, for being sent to the controller devices 102, 103 or 108. The AGCP 126 includes a call to the CVSP 209 on the code virtualization server 114, and the AGCP 126 is sent to the controller devices for execution thereon.” and par. [0077]: “The modified AGCP is sent to the controller device 112 for installation on the controller device 112, in a manner similar to that described with respect to step 316 of the method 300.”).
Leonelli does not expressly teach a sub-system of an industrial plant;
at least one programmable logic controller (PLC);
a database;
providing a controller program, the controller program describing an action of the at least one actuator caused by the at least one sensor; and
operate the at least one actuator of the sub-system based on the at least one sensor.
However Stump, in an analogous art of automation control and monitoring systems (pg. 1, par. [0001]), teaches the missing limitations of a sub-system of an industrial plant (pg. 4, par. [0067]: “As shown, the industrial system 10 may include one or more subsystems 12, 14, 16, 18, or areas, which may work in concert to perform one or more industrial processes.”);
at least one programmable logic controller (pg. 5, par. [0070], pgs. 13-14, par. [0128]);
a database (pg. 7, par. [0081]; i.e. “… the application integration platform 56 may run on one or more computing devices 52, and computing devices 52 may store and maintain the database 52.”);
provide a controller program, the controller program describing an action of at least one actuator caused by at least one sensor (pgs. 4-5, par. [0068], [0070], and [0071], pg. 7, par. [0088], pg. 13, par. [0125] and pg. 23, par. [0181]; i.e. [0125]: “… each object in the library may have a corresponding file of computer code or portion of computer code that defines object and the object's interaction with other objects within the library. When the design of a project is complete, or at intermittent time periods during development, the system may take the portions of code for each object in the project and modify the code based on the other objects in the project such that each object interacts with the other objects in the project as depicted in the design window 550. The modified portions of code may then be combined into a project code file that defines the operation of the entire project and [0181]: “Accordingly, the designer may drag components from a library into a design window, and the system may understand how the components are intended to interact with each other. The system may automatically arrange components and connect the components accordingly to how they are frequently implemented. Each component in a library may have a respective portion of code that defines the operation of the respective component. Based on how the components are arranged and connected in the design window, the system may then generate or modify program code for the components so the designer is not burdened with writing the code for the system.”); and
operate the at least one actuator of the sub-system based on the at least one sensor (pg. 5, par. [0070] and [0071] and pg. 7, par. [0081]; i.e. [0070]: “Accordingly, the process 58 may include a variety of operational components, such as electric motors, valves, actuators, sensors, or a myriad of manufacturing, processing, material handling, and other applications. Further, the process 58 may include control and monitoring equipment (e.g., an industrial controller 20) for regulating process variables through automation and/or observation. The control/monitoring device 20 may include, for example, automation controllers, programmable logic controllers (PLCs), programmable automation controllers (PACs), or any other controllers used in automation control.”, [0071]: “As illustrated, the sensors 60 and actuators 62 are in communication with the control/monitoring device 20 (e.g., industrial automation controller) … . In some embodiments, the sensors 60 and actuators 62 may be in communication with one or more of the computing devices (e.g., an HMI), via the control/monitoring device 20, to operate equipment associated with the process 58. Indeed, the sensors 60 and actuators 62 may be utilized within process loops that are monitored and controlled by the control/monitoring device 20 and/or one or more of the computing devices 52 (e.g., an HMI). Such a process loop may be activated based on process inputs (e.g., input from a sensor 60) or direct inputs (e.g., operator input received through the computing device 52).”, and [0081]: “Further, the application integration platform 56 may run on one or more computing devices 52, and computing devices 52 may store and maintain the database 52.”) for the purpose of automatically generating a control program for monitoring and control of an industrial system (pg. 7, par. [0088] and [0089] and pg. 13, par. [0125]).
Therefore, it would have been obvious to a person of ordinary skill in the art before the effective filing date of the claimed invention to modify the teaching of Leonelli to include the addition of the limitations of a sub-system of an industrial plant; at least one programmable logic controller; a database; providing a controller program, the controller program describing an action of at least one actuator caused by at least one sensor, and operate the at least one actuator of the sub-system based on the at least one sensor to easily, efficiently, and accurately design and program a system in a time-effective manner (Stump: pgs. 11-12, par. [0117]).
As per claim 4, Leonelli does not expressly teach starting to operate the sub-system of the industrial plant.
However Stump, in an analogous art of automation control and monitoring systems (pg. 1, par. [0001]), teaches the missing limitation of starting to operate the sub-system of the industrial plant (pg. 4, par. [0067] and pg. 5, par. [0070]; i.e. [0067]: “The industrial system 10 may be part of an industrial automation environment, such as an automobile manufacturing facility, a food processing facility, a drilling operation, a semiconductor or microprocessor fabrication facility, or some other type of industrial facility. As shown, the industrial system 10 may include one or more subsystems 12, 14, 16, 18, or areas, which may work in concert to perform one or more industrial processes.” and [0070]: “The industrial system 10 may be configured to run a process 58. For example, the process 58 may include a compressor station, an oil refinery, a batch operation for making food items, a mechanized assembly line, and so forth. Accordingly, the process 58 may include a variety of operational components, such as electric motors, valves, actuators, sensors, or a myriad of manufacturing, processing, material handling, and other applications. Further, the process 58 may include control and monitoring equipment (e.g., an industrial controller 20) for regulating process variables through automation and/or observation.”) for the purpose of automatically generating a control program for monitoring and control of an industrial system (pg. 7, par. [0088] and [0089] and pg. 13, par. [0125]).
Therefore, it would have been obvious to a person of ordinary skill in the art before the effective filing date of the claimed invention to modify the teaching of Leonelli to include the addition of the limitation of starting to operate the sub-system of the industrial plant to easily, efficiently, and accurately design and program a system in a time-effective manner (Stump: pgs. 11-12, par. [0117]).
As per claim 5, Leonelli does not expressly teach the controller program is implemented as at least one of a function block diagram, a ladder logic, a structured text, a sequential function chart, an iteration list, and a cause-effect-matrix.
However Stump, in an analogous art of automation control and monitoring systems (pg. 1, par. [0001]), teaches the missing limitation of the controller program is implemented as at least one of a function block diagram, a ladder logic, a structured text, and a sequential function chart (pg. 18, par. [0153]; i.e. [0153]: “Within the logic window 1002, a pop-up window 1004 may be displayed that allows a user to select how he or she would like to add logic. As shown, from within the pop-up window 1004, a user may choose to add ladder logic, add a structured text file, add a function block file, or add an SFC file. It should be understood, however, that the options for adding logic in the pop-up window 1004 are merely examples and not intended to be limiting.”) for the purpose of automatically generating a control program for monitoring and control of an industrial system (pg. 7, par. [0088] and [0089] and pg. 13, par. [0125]).
Therefore, it would have been obvious to a person of ordinary skill in the art before the effective filing date of the claimed invention to modify the teaching of Leonelli to include the addition of the limitation of the controller program is implemented as at least one of a function block diagram, a ladder logic, a structured text, and a sequential function chart to easily, efficiently, and accurately design and program a system in a time-effective manner (Stump: pgs. 11-12, par. [0117]).
Claim 2 is rejected under 35 U.S.C. 103 as being unpatentable over Leonelli in view of Stump in further view of U.S. Patent Publication No. 2008/0208363 A1 (hereinafter Grgic).
As per claim 2, Leonelli teaches each controller of the controller-list (pgs. 6-7, par. [0047], [0050], [0052], and [0055]; i.e. [0050]: “The memory stores computer readable instructions corresponding to an operating system (not shown), an interface 206, a process library 208, an SDK generator 210, a code generator 212, a solutions library 214, an execution engine 216, and a profile 218.” and [0055]: “The solutions library 214 also comprises a hardware library 220, which comprises a list of controller devices available to interface with the management components of the conventional systems.”).
Leonelli does not expressly teach each PLC of the PLC-list is attributed with a preference, the preference being a rank, which is based on a performance, a latency, an environment specification, and/or a cost of the PLC,
wherein selecting the PLC of the PLC-list includes selecting the PLC based on the preference.
However Stump, in an analogous art of automation control and monitoring systems (pg. 1, par. [0001]), teaches the missing limitation of a group of PLCs (pg. 5, par. [0070], pgs. 13-14, par. [0128]) is attributed with a preference (pg. 12, par. [0121] and pg. 19, par. [0156]; i.e. [0156]: “Further, the object preferences option may allow a user to define his or her preferences with regard to certain objects, such as preferred vendors, preferred models, budgets, preferred programming languages, compliance with preferred standards, preference for objects designed for specific industries, etc. In other embodiments, the object preferences option may allow a user to view and edit the settings for a given object.”),
wherein selecting a PLC of a PLC-list includes selecting the PLC based on the preference (pgs. 18-19, par. [0155] and [0156]; i.e. [0155]: “As shown, when the system suggests one or more components, the dashboard 200 updates to display a suggestion notification banner 1050, which notifies the user that one or more suggestions are being made, and allows the user to accept or discard the suggestions individually or in bulk. Additionally, the dashboard may display a suggestion pop-up window 1052 over one or more of the objects. The suggestion pop-up window 1052 allows a user to accept the suggestion, reject the suggestion, see more information about the suggested object, and/or view object preferences.” and [0156]: “When multiple objects are suggested, as is the case in FIG. 33, the suggestion pop-up windows 1052 for each suggestion may appear simultaneously, or one at a time, as each suggestion is accepted or discarded by the user. Further, a user may have the option to hold a suggestion and put off making a decision on the suggestion in order to further consider the suggestion.”) for the purpose of automatically generating a control program for monitoring and control of an industrial system (pg. 7, par. [0088] and [0089] and pg. 13, par. [0125]).
Therefore, it would have been obvious to a person of ordinary skill in the art before the effective filing date of the claimed invention to modify the teaching of Leonelli to include the addition of the limitation of a group of PLCs is attributed with a preference, wherein selecting a PLC of a PLC-list includes selecting the PLC based on the preference to easily, efficiently, and accurately design and program a system in a time-effective manner (Stump: pgs. 11-12, par. [0117]).
Leonelli in view of Stump does not expressly teach the preference being a rank, which is based on a performance, a latency, an environment specification, and/or a cost of the PLC.
However Grgic, in analogous art of industrial automation environment (pg. 1, par. [0002]), teaches a preference being a rank, which is based on a performance, an environment specification, and/or a cost of equipment (pg. 9, par. [0063]: “For example, entities (e.g., controllers, data, code, applications, controller engine instances, devices, hardware components, software components, processes, etc.) within the industrial environment can be hierarchically ranked according to importance and/or necessity within such environment. Thus, various criteria (e.g., subjective, objective, user-defined, user preferences, etc.) can be utilized to ascertain portions of the industrial environment are important and/or necessary. For instance, the criteria can be, but is not limited to, program association, application type (e.g., motion control code/data can be more important than diagnostic data/code, etc.), location, geography, batch process relation, hardware type, proximity, a user preference/need, load distribution, user-defined prioritization, code association (e.g., a portion of code relates to high-priority process, etc.), age, most any suitable technique to prioritize an industrial environment, industrial automation process step (e.g., 5 steps in an industrial automation environment, step 3 is the most important), repercussions and/or potential affects of segment/divisions, cost of equipment, preventative maintenance, business analysis, profit analysis, replacement costs, product quality, safety within the environment, independency and/or dependency relationships, most any suitable factors associated with ascertaining importance with a portion of the industrial environment, etc.”) for the purpose of hierarchically ranking accordance to importance and/or necessity within an environment (pg. 9, par. [0063]).
Therefore, it would have been obvious to a person of ordinary skill in the art before the effective filing date of the claimed invention to a preference being a rank, which is based on a performance, an environment specification, and/or a cost of equipment to advantageously increase manageability of a system (Grgic: pg. 1, par. [0008]).
Claim 8 is rejected under 35 U.S.C. 103 as being unpatentable over Leonelli in view of Stump in further view of Non-Patent Literature Publication “Self-commissioning Industrial IoT-Systems in Process Automation: a Reference Architecture (hereinafter Kozilek).
As per claim 8, Leonelli teaches to retrieving the PLC-list (pgs. 7-8, par. [0055] and [0057]; i.e. [0055]: “The solutions library 214 also comprises a hardware library 220, which comprises a list of controller devices available to interface with the management components of the conventional systems.” and [0057]: “The hardware library 220 includes a list of controller devices compatible with the electronic devices, such as actuators and water level sensors, and all parameters pertaining to the controller device and the electronic devices.”).
Leonelli does not expressly teach providing a Global Discovery Service (GDS) database according to IEC62541-12.
However Stump, in an analogous art of automation control and monitoring systems (pg. 1, par. [0001]), teaches the missing limitation of the database (pg. 7, par. [0081]; i.e. “… the application integration platform 56 may run on one or more computing devices 52, and computing devices 52 may store and maintain the database 52.”) for the purpose of automatically generating a control program for monitoring and control of an industrial system (pg. 7, par. [0088] and [0089] and pg. 13, par. [0125]).
Therefore, it would have been obvious to a person of ordinary skill in the art before the effective filing date of the claimed invention to modify the teaching of Leonelli to include the addition of the limitation of the database to easily, efficiently, and accurately design and program a system in a time-effective manner (Stump: pgs. 11-12, par. [0117]).
Leonelli in view of Stump does not expressly teach providing a Global Discovery Service (GDS) database according to IEC62541-12.
However Koziolek, in an analogous art of industrial processes (pg. 197, column 1, paragraph 3), teaches the missing limitation of a Global Discovery Service (GDS) device (i.e. a server) according to IEC62541-12 (pg. 197, column 2, paragraph 5; i.e. “For example, OPC UA Discovery (IEC62541-12) allows finding OPC UA servers on the network, OPC UA for Devices (IEC 62541-100) provides a generic, standardized syntactic model for field devices, and the PLC Open Companion standard for OPC UA allows mapping control logic elements to OPC UA servers”) for the purpose of monitoring field devices (pg. 197, column 2, paragraph 5).
Therefore, it would have been obvious to a person of ordinary skill in the art before the effective filing date of the claimed invention to modify the teaching of Leonelli in view of Stump to include the addition of the limitation of a Global Discovery Service (GDS) device (i.e. a server) according to IEC62541-12 to advantageously provide a fast and robust commissioning process (Koziolek: pg. 196, column 2, paragraph 2).
Conclusion
The prior art made of record and not relied upon is considered pertinent to applicant's disclosure.
The following references are cited to further show the state of the art with respect to configuring, monitoring, and controlling systems, programmable logic controllers, and automation systems.
U.S. Patent Publication No. 2005/0144271 A1 discloses a control system setting apparatus for setting a control system constituted of a PLC (programmable logic controller, or programmable controller), other components for control, and a network.
U.S. Patent Publication No. 2007/0208440 A1 discloses a system and/or method for employment in an industrial automation environment that facilitates utilizing data within a programmable logic controller.
U.S. Patent Publication No. 2015/0192918 A1 discloses a programmable logic controller for an industrial control system includes an application logic execution layer and at least one of an update checking layer and an output checking layer.
U.S. Patent Publication No. 2018/0314215 A1 discloses an adaptive process control system and corresponding method for independent steering of plant control systems, wherein a plant associated with the plant control system includes a plurality of interlocked elements of one or more operational unit of the plant.
U.S. Patent Publication No. 2023/0384753 A1 discloses a method for controlling a PLC using a PC program.
U.S. Patent No. 12,625,488 B2 discloses a system and method for providing a configuration for data extraction from an automation system
Applicant's amendment necessitated the new ground(s) of rejection presented in this Office action. Accordingly, THIS ACTION IS MADE FINAL. See MPEP § 706.07(a). Applicant is reminded of the extension of time policy as set forth in 37 CFR 1.136(a).
A shortened statutory period for reply to this final action is set to expire THREE MONTHS from the mailing date of this action. In the event a first reply is filed within TWO MONTHS of the mailing date of this final action and the advisory action is not mailed until after the end of the THREE-MONTH shortened statutory period, then the shortened statutory period will expire on the date the advisory action is mailed, and any nonprovisional extension fee (37 CFR 1.17(a)) pursuant to 37 CFR 1.136(a) will be calculated from the mailing date of the advisory action. In no event, however, will the statutory period for reply expire later than SIX MONTHS from the mailing date of this final action.
Any inquiry concerning this communication or earlier communications from the examiner should be directed to JENNIFER L NORTON whose telephone number is (571)272-3694. The examiner can normally be reached Monday - Friday 9:00 am - 5:30 p.m..
Examiner interviews are available via telephone, in-person, and video conferencing using a USPTO supplied web-based collaboration tool. To schedule an interview, applicant is encouraged to use the USPTO Automated Interview Request (AIR) at http://www.uspto.gov/interviewpractice.
If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, Robert Fennema can be reached at 571-272-2748. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300.
Information regarding the status of published or unpublished applications may be obtained from Patent Center. Unpublished application information in Patent Center is available to registered users. To file and manage patent submissions in Patent Center, visit: https://patentcenter.uspto.gov. Visit https://www.uspto.gov/patents/apply/patent-center for more information about Patent Center and https://www.uspto.gov/patents/docx for information about filing in DOCX format. For additional questions, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). If you would like assistance from a USPTO Customer Service Representative, call 800-786-9199 (IN USA OR CANADA) or 571-272-1000.
/JENNIFER L NORTON/Primary Examiner, Art Unit 2117