Source: http://patents.com/us-9086692.html
Timestamp: 2018-10-20 23:25:03
Document Index: 74449667

Matched Legal Cases: ['Application No. 2009', 'Application No. 200810149081', 'Application No. 200610142194', 'Application No. 2003', 'Application No. 2003', 'Application No. 2003', 'Application No. 200810149081', 'Application No. 200810149081', 'Application No. 10']

US Patent # 9,086,692. Custom function blocks for use with process control systems - Patents.com
United States Patent 9,086,692
Nixon , et al. July 21, 2015
A system and method for creating and incorporating a function block within a process control system enables a user of the process control system to generate a function block by combining a plurality of files selected from a group of files provided by the manufacturer of the process control system to form a source code file associated with the function block. The user can modify the function block source code file to include a procedure, routine or algorithm that is not provided by the manufacturer and can send the modified source code file to the manufacturer for validation. If the function block source code file is validated, a security measure such as a digital signature is provided to the user that enables the user to incorporate the function block within the process control system. The function blocks can be used to incorporate anew function into a process control application or to operatively integrate a data source external to a process control application with the process control application via data mapping functions performed by the function blocks.
Nixon; Mark J. (Round Rock, TX), Beoughter; Ken (Round Rock, TX), Hieb; Brandon (Austin, TX), Blevins; Terrence L. (Round Rock, TX), Stevenson; Dennis L. (Round Rock, TX)
Nixon; Mark J.
Beoughter; Ken
Hieb; Brandon
Blevins; Terrence L.
Stevenson; Dennis L.
Family ID: 1000001226693
12/884,364
US 20110009985 A1 Jan 13, 2011
10123822 Apr 15, 2002 7822495
Current CPC Class: G05B 19/0426 (20130101); G06F 8/10 (20130101); G06F 8/30 (20130101); G06F 8/33 (20130101); G06F 8/40 (20130101); G06F 8/70 (20130101); G05B 2219/23258 (20130101); G05B 2219/25232 (20130101); G05B 2219/25428 (20130101)
Current International Class: G06F 9/44 (20060101); G05B 19/42 (20060101); G06F 9/45 (20060101); G05B 19/042 (20060101)
2002/0013865 January 2002 Toh et al.
1242690 Jan 2000 CN
1338841 Mar 2002 CN
2 345 360 Jul 2000 GB
5-216739 Aug 1993 JP
WO-97/12460 Apr 1997 WO
Notice of Reasons for Rejection for Japanese Application No. 2009-92496, mailed Sep. 6, 2011. cited by applicant .
Second Office Action for Chinese Application No. 200810149081.6, dated Jan. 12, 2012. cited by applicant .
Examination Report under Section 18(3) issued in GB0308581.8 application by the United Kingdom Patent Office on Feb. 28, 2005. cited by applicant .
Translation of Office Action for Chinese Application No. 200610142194.4, dated Mar. 7, 2008. cited by applicant .
Notice of Reasons for Rejection for Japanese Application No. 2003-145504, dated Mar. 11, 2008. cited by applicant .
Notice of Reasons for Rejection for Japanese Application No. 2003-145504, dated Oct. 7, 2008. cited by applicant .
Decision of Rejection for Japanese Application No. 2003-145504, dated May 12, 2009. cited by applicant .
Office Action for related Chinese Application No. 200810149081.6, dated Sep. 3, 2010. cited by applicant .
Decision on Rejection for Chinese Application No. 200810149081.6, dated Jul. 12, 2012, corresponding limitations are not related. cited by applicant .
Office Action for German Application No. 10 2004 029 022.9, dated Mar. 9, 2012. cited by applicant.
The present application is a divisional of U.S. patent application Ser. No. 10/123,822 entitled "Custom Function Blocks for Use with Process Control Systems," filed on Apr. 15, 2002, the disclosure of which is hereby expressly incorporated herein by reference.
1. A method of incorporating a custom function block within a process control system, the method comprising: generating the custom function block by combining a plurality of files from a group of files generated by a provider of the process control system to form a source code file associated with the custom function block and modifying one of the plurality of files within the source code file to include a procedure not included within the group of files, wherein the source code file includes a write checking routine which validates data written to data items in the custom function block from a source outside of the custom function block, by determining one or both of: (1) whether the data items can be written to by the source outside of the custom function block, or (2) whether the data written to the data items is within one or more predetermined threshold limits; compiling and linking the source code file to form a compiled/linked custom function block file; transferring the compiled/linked custom function block file to the provider of the process control system; validating the compiled/linked function custom block file; appending a security measure to the compiled/linked custom function block file to form a validated custom function block file; transferring the validated custom function block file to a user of the process control system; and incorporating the validated custom function block file within the process control system such that the custom function block conveys information between first and second other function blocks, at least one of which first and second other function blocks is incompatible with the process control system in the absence of the custom function block, wherein the incorporated custom function block is operable to enable the execution of an external system, application, or algorithm associated with at least one of the first and second other function blocks to be synchronized with the execution of a process control scheme executed by the process control system.
2. The method of claim 1, wherein transferring the compiled/linked function block file to the provider of the process control system includes transmitting the compiled/linked function block file using one of a wireless and a hardwired communication technique.
3. The method of claim 1, wherein validating the compiled/linked function block file includes determining whether the function block complies with one of licensing requirements and operational characteristics of the process control system.
4. The method of claim 1, wherein appending the security measure to the compiled/linked function block file to form the validated function block file includes associating a digital signature with the function block.
5. A method of using a custom function block within a process control system, the method comprising: receiving custom function block information from a user of the process control system, wherein the custom function block includes a write checking routine which validates data written to data items in the custom function block from a source outside of the custom function block, by determining one or both of: (1) whether the data items can be written to by the source outside of the custom function block, or (2) whether the data written to the data items is within one or more predetermined threshold limits; determining whether the custom function block information is valid; generating security information in response to a determination that the custom function block information is valid; associating the generated security information with the custom function block; sending the generated security information to the user if the custom function block information is valid; and incorporating the custom function block into the process control system such that the custom function block is operable to convey information between first and second other function blocks, at least one of which first and second other function blocks is incompatible with the process control system in the absence of the custom function block.
6. The method of claim 5, wherein generating the security information in response to the determination that the function block information is valid includes generating a digital signature.
7. The method of claim 5, wherein associating the generated security information with the function block includes adding the generated security information to the function block information.
8. The method of claim 5, wherein determining whether the custom function block information is valid includes determining whether the custom function block information complies with one of licensing requirements and operational requirements of the process control system.
9. A method of using a custom function block, comprising: conveying information from a data source to the custom function block; processing the information from the data source based on a function within the custom function block; and conveying at least some of the processed information to a process control system application, wherein the custom function block comprises a combination of a plurality of files selected from a group of files generated by a provider of the process control system to form a source code file associated with the function block, one of the plurality of files within the source code file modified to include a procedure not included within the group of files, wherein the source code file includes a write checking routine which validates data written to data items in the custom function block from a source outside of the custom function block, by determining one or both of: (1) whether the data items can be written to by the source outside of the custom function block, or (2) whether the data written to the data items is within one or more predetermined threshold limits, and wherein the custom function block is operable to convey information between a first function block associated with the data source and a second function block associated with the process control system application, the first function block incompatible with the process control system and requiring the custom function block to convey information to the second function block.
10. The method of claim 9, wherein conveying the information from the data source to the custom function block includes conveying the information from one of an application, an algorithm, a device and a system external to the process control system application to the custom function block.
11. The method of claim 9, wherein conveying the information from the data source to the custom function block includes conveying process control information.
12. The method of claim 9, wherein processing the information from the data source based on the function within the custom function block includes mapping the information to a parameter associated with the process control system application.
13. The method of claim 9, wherein processing the information from the data source based on the function within the custom function block includes calculating a parameter used by the process control system application based on the information from the data source.
14. The method of claim 9, wherein conveying the information from the data source to the custom function block includes conveying the information from one of a device, a function block and a parameter within the process control system application to the custom function block.
15. The method of claim 14, wherein processing the information from the data source based on the function within the custom function block includes performing a calculation not performed by the process control system application.
16. A method of using a custom function block, comprising: communicatively interposing the custom function block between a process control system application and a data source, the process control system application configured to operate with a first process control system type and the data source configured to operate with a second, incompatible process control system type; and conveying information between the process control system application and the data source based on a function performed by the custom function block, wherein the custom function block comprises a combination of a plurality of files selected from a group of files generated by a provider of the process control system to form a source code file associated with the function block, one of the plurality of files within the source code file modified to include a procedure not included within the group of files, wherein the source code file includes a write checking routine which validates data written to data items in the custom function block from a source outside of the custom function block, by determining one or both of: (1) whether the data items can be written to by the source outside of the custom function block, or (2) whether the data written to the data items is within one or more predetermined threshold limits, and wherein the custom function block is operable to integrate the data source into a process control system such that the process control system application and the data source cooperate seamlessly.
17. The method of claim 16, wherein communicatively interposing the custom function block between the process control system application and the data source includes communicatively interposing the custom function block between the process control system application and one of a function block, a device and a parameter associated with the process control system application.
18. The method of claim 16, wherein communicatively interposing the custom function block between the process control system application and the data source includes communicatively interposing the custom function block between the process control system application and one of a system, device and an application external to the process control system application.
19. The method of claim 16, wherein conveying the information between the process control system application and the data source based on the function performed by the custom function block includes mapping at least some of the information to a parameter used by the process control system application.
20. The method of claim 16, wherein conveying the information between the process control system application and the data source based on the function performed by the custom function block includes calculating a value based on at least some of the information and associating the value with a parameter used by the process control system application.
21. A method of using a custom function block, comprising: communicatively interposing the custom function block between a process control application and a data source external to the process control application, the data source configured for a second process control system incompatible, in the absence of the custom function block, with a first process control system associated with the process control application; and conveying information between the process control application and the data source external to the process control application based on a function performed by the custom function block, wherein the custom function block comprises a combination of a plurality of files selected from a group of files generated by a provider of the process control system to form a source code file associated with the custom function block, one of the plurality of files within the source code file modified to include a procedure not included within the group of files, wherein the source code file includes a write checking routine which validates data written to data items in the custom function block from a source outside of the custom function block, by determining one or both of: (1) whether the data items can be written to by the source outside of the custom function block, or (2) whether the data written to the data items is within one or more predetermined threshold limits.
22. The method of claim 21, wherein communicatively interposing the function block between the process control application and the data source external to the process control application includes communicatively interposing the function block between the process control application and one of a system, device and an application external to the process control application.
23. The method of claim 21, wherein conveying the information between the process control application and the data source external to the process control application based on the function performed by the function block includes mapping at least some of the information to a parameter used by the process control application.
24. The method of claim 21, wherein conveying the information between the process control application and the data source external to the process control application based on the function performed by the function block includes calculating a value based on at least some of the information and associating the value with a parameter used by the process control application.
25. A method of using a custom function block, comprising: operatively integrating a data source external to a process control application with the process control application via the custom function block, the data source configured for a second process control system incompatible, in the absence of the custom function block, with a first process control system associated with the process control application; and conveying information between the process control application and the data source external to the process control application based on at least one of a data mapping function, a data conversion function and a data translation function performed by the custom function block, wherein the custom function block comprises a combination of a plurality of files selected from a group of files generated by a provider of the process control system to form a source code file associated with the custom function block, one of the plurality of files within the source code file modified to include a procedure not included within the group of files, wherein the source code file includes a write checking routine which validates data written to data items in the custom function block from a source outside of the custom function block, by determining one or both of: (1) whether the data items can be written to by the source outside of the custom function block, or (2) whether the data written to the data items is within one or more predetermined threshold limits.
In a traditional DCS, control tasks are distributed by providing a control algorithm within each of the controllers. The controllers independently execute the control algorithms to control the field devices coupled to the controllers. This decentralization of control tasks provides greater overall system flexibility. For example, if a user desires to add anew process or part of a process to the DCS, the user can add an additional controller (having an appropriate control algorithm) connected to appropriate sensors, actuators, etc. Alternatively, if the user desires to modify an existing process, new control parameters or control algorithms may, for example, be downloaded from a user interface to an appropriate controller via the databus.
To provide for improved modularity and inter-manufacturer compatibility, process controls manufacturers have more recently moved toward even further decentralization of control within a process. These more recent approaches are based on smart field devices that can communicate with each other and/or controllers using an open protocol such as the HART.RTM., PROFIBUS.RTM., WORLDFIP.RTM., Device-Net.RTM., CAN, and Fieldbus protocols. These smart field devices are essentially microprocessor-based devices such as sensors, actuators, etc. that, in some cases, such as with Fieldbus devices, also perform control loop functions traditionally executed by a DCS controller. Because some smart field devices provide control capability and communicate using an open protocol, field devices from a variety of manufacturers can communicate with each other on a common digital databus and can interoperate to execute a control loop without the intervention of a traditional DCS controller.
In accordance with still another aspect, a system for creating a function block for use with a process control system may include a computer readable medium, a first software stored on the computer readable medium and adapted to be executed by the process control system to select an initialization routine from a plurality of source files, and a second software stored on the computer readable medium and adapted to be executed by the process control system to select aperiodic execution routine from the plurality of source files. The system may also include a third software stored on the computer readable medium and adapted to be executed by the process control system to select a write checking routine from the plurality of source files, a fourth software stored on the computer readable medium and adapted to be executed by the process control system to associate the initialization routine, the periodic execution routine and the write checking routine with the function block, and a fifth software stored on the computer readable medium and adapted to be executed by the process control system to modify one of the initialization routine, the periodic execution routine and the write checking routine to include a procedure not provided with the process control system.
The periodic execution routine 106, when executed, is adapted to carry out the special function or algorithm that the user needs to implement within the control system and which may not have been available via a standard function block provided by the control system provider or manufacturer. By way of example, the periodic execution routine 106 may include a mapping function or algorithm that enables information or data to be exchanged between the control system and some other application, system or device with which the control system would otherwise not be able to communicate. Alternatively or additionally, the periodic execution routine 106 may include a profitability calculation and/or some other financial calculation associated with the process control system that typically would not be provided within a standard function block. Of course, the number and types of functions or algorithms that can be included within the periodic execution routine 106 are virtually unlimited. In practice, the special function or algorithm executed by the periodic execution routine 106 typically defines the overall behavior of the custom function block 102 and, thus, the name of the custom function block 102 may reflect that particular behavior. For example, if the periodic execution routine 106 includes a profitability calculation function or algorithm, the function block name 122 may be "FB_PROFITCALC" to reflect that function or algorithm.
The custom function blocks described herein may be used to upgrade the functionality of older process control systems. For example, advanced control capability may be added to an older control system that provides only basic control capability by creating custom function blocks that perform the advanced control functions. Similarly, the custom function blocks described herein may be used to upgrade or increase the functionality of basic control systems or controllers such as, for example, programmable logic controllers. More functionality may be appended to abasic controller or control system by, for example, building a custom function block layer that interposes between the basic controller or control system and another more complex process control system, operator terminal, etc.
Alternatively or additionally, the system user or operator may create custom function blocks or libraries of custom function blocks that enable a process control system to interface or integrate with other devices, equipment and/or systems provided by other manufacturers. In the case where the custom function blocks described herein are used to interface or integrate a process control system associated with one manufacturer or supplier with a system or device associated with another manufacturer or supplier, the custom function blocks may defined or created by the user of the process control system to route, map, translate and/or re-format data or parameters provided by the other system or device for use by the process control system. Similarly, the custom function blocks may also function to route, map, translate and/or re-format data or parameters provided by the process control system for use by the other system or device.
The processing of information received from a data source by a custom function block may include mapping some of the information received from the data source and/or some of the processed information to one or more parameters associated with or used by a process control system application. Alternatively, or additionally, a custom function block may calculate a value for use by a parameter associated with a process control system application. The calculations performed by custom function blocks may be calculations that are not typically performed, or which could not be performed without the use of the custom function blocks described herein. Thus, in general, the custom function blocks described herein may be used to convey information between a process control system application and a data source based on functions performed by the custom function blocks. In this manner, the custom function blocks described herein enable an operative integration of a data source external to a process control application with the process control application. If desired, the custom function blocks described herein may calculate a value based on information received from a data source and may associate that value with a parameter used by a process control system application with which the function block is associated. More generally, the custom function blocks described herein may perform one or more functions such as, for example, data mapping functions, data conversion functions, data translation functions, etc.
By, way of example only, the custom function blocks and the manner of creating the custom function blocks described herein may be used to facilitate validation procedures such as, for example, validation procedures that may be required by the Food and Drug Administration (FDA). Additionally, if desired, the custom function blocks and creation technique described herein enables custom function blocks to be developed and distributed in compiled form, thereby making it more difficult, perhaps impossible, for entities other than the creator of the function blocks to reverse engineer or determine how the custom function blocks function. As a result, the custom function blocks described herein may be developed and distributed in a compiled form to enable developers to maintain the developed function blocks as proprietary.
Previous Patent US 9,086,691 | Next Patent US 9,086,693