Ensure data consistency between modular devices and external systems
By using configuration signatures between modular devices and external systems to compare and verify the matching of configuration signatures, data consistency issues are solved, system error behavior and downtime are avoided, and data consistency and system stability are ensured.
Patent Information
- Application Number
- CN202010634147.1
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2019-07-02
- Filing Date
- 2020-07-02
- Publication Date
- 2025-02-07
- Estimated Expiration
- 2040-07-02
AI Technical Summary
Ensuring data consistency between modular devices and external systems is a challenge, especially when configuration changes in modular devices, where other devices need to be reconfigured to avoid system error behavior and downtime.
By using configuration signatures to ensure data consistency, the baseline configuration signature of the modular device is received and stored, the current configuration signature is compared with the baseline signature at initialization, and if it does not match, a notification is generated and the relevant processing operations are stopped.
Effectively avoid system error behavior and downtime caused by data inconsistency, ensure data consistency between modular equipment and external systems, and reduce downtime and interruption events.
Smart Images

Figure CN112181509B_ABST
Abstract
Description
Technical Field
[0001] The present disclosure relates to device communications, and more particularly to communications techniques for detecting and accounting for configuration changes in modular devices to ensure data consistency between the modular devices and external systems. background
[0002] Today's industry uses electric motors to perform a variety of tasks. Generally, various types of motors can be used, depending on the specific application. Electric motors can be used for fixed speed, variable speed, and / or positioning control of various types of industrial equipment. In most industrial applications, motor controllers are used together with the motors themselves to form a motor control system. The motor controller may include logic and hardware for starting and stopping the motor, selecting motor rotation, selecting and adjusting speed, adjusting or limiting torque and / or various protection functions (such as overload and / or fault). Often, many other devices can be used with such electric motors in industrial applications (e.g., sensor devices, special equipment, etc.), increasing the complexity of device communication of the system. In addition, such devices can be modular devices, which can have various configurations and can operate in different ways according to their configurations. Although modular devices can provide additional flexibility and functionality, other devices in the industrial system may need to be configured to illustrate the current configuration of the modular device. When the configuration of the modular device changes, these other devices may need to be reconfigured to reflect the new configuration of the modular device, because otherwise the system may not operate as expected, and may cause erroneous behavior and / or system shutdown. These difficulties are exacerbated in environments where downtime and other disruptive events need to be minimized for business reasons. Overview
[0003] One embodiment described herein provides a method for ensuring data consistency between devices using configuration signatures at a control device. The method includes receiving a baseline configuration signature of a first modular device and storing the baseline configuration signature. The method also includes receiving a current configuration signature from the first modular device when the first modular device is initialized. The method also includes comparing the current configuration signature with the baseline configuration signature, and if a mismatch is found, generating a notification and stopping one or more processing operations associated with the first modular device.
[0004] Another embodiment described herein provides a method for ensuring data consistency between devices using a configuration signature at a modular device. The method includes generating a current configuration signature using current data values of a predefined set of configuration parameters when initializing a first modular device. The method also includes receiving a baseline configuration signature from a control device, wherein the baseline configuration signature is provided to the control device by a configuration application when the first modular device is configured. In addition, the method includes comparing the received baseline configuration signature with the generated current configuration signature. The method also includes generating a notification and stopping one or more processing operations of the first modular device when it is determined that the current configuration signature and the received baseline configuration signature do not match. BRIEF DESCRIPTION OF THE DRAWINGS
[0005] The more detailed description of the present disclosure, the brief summary above, refers to various embodiments, some of which are shown in the accompanying drawings. Although the drawings show selected embodiments of the present disclosure, these drawings should not be considered as limiting the scope of the present disclosure, as the present disclosure may allow other equally effective embodiments.
[0006] Figure 1 is a block diagram illustrating a system configured with a configuration management component according to one embodiment described herein.
[0007] Figures 2A-2D is a block diagram illustrating a workflow for ensuring data consistency between devices using configuration signatures according to one embodiment described herein.
[0008] Figure 3 A workflow for ensuring data consistency between devices at a control device using configuration signatures according to one embodiment described herein is shown.
[0009] Figure 4 A workflow for using configuration signatures at modular devices to ensure data consistency between devices according to one embodiment described herein is shown.
[0010] Wherever possible, identical reference numerals are used to designate identical elements that are common to the figures. However, elements disclosed in one embodiment may be beneficially utilized on other embodiments without specific recitation. Detailed Description
[0011] Figure 11 is a block diagram illustrating a system according to one embodiment described herein, the system being configured with a configuration management component. As shown, the system 100 includes a programmable logic controller (PLC) 110, a configuration system 137, and a modular device 140 interconnected via a network 135. In general, the network 135 represents any suitable data communication network, examples (without limitation) including a local area network (LAN), a wide area network (WAN), an IEEE 802.11 wireless network, and the like.
[0012] The PLC 110 includes one or more computer processors 112, a memory 115, one or more input modules 122, one or more output modules 125, and a network interface controller 127. Typically, one or more input modules 122 represent devices that provide input to the PLC 110. Such inputs can be provided, for example, in the form of digital inputs or analog signals. In the case of analog signals, one or more input modules 122 may include circuits for converting analog signals into logic signals that can be processed by the processor 112. One or more output modules 125 typically convert logic signals from the processor 112 into digital values or analog values for controlling output devices. The memory 115 contains a dedicated program logic 118 and a device configuration server component 120. Typically, the dedicated program logic 118 represents software logic that performs various application-specific operations according to the type of computing environment 100. For example, a PLC device 110 in an industrial automation environment may perform application-specific operations different from a PLC device 110 in a fulfillment center environment.
[0013] The modular device 140 includes a computer processor 142, a memory 145, one or more input modules 156, one or more output modules 158, and a network interface controller 159. Generally, the one or more input modules 156 represent devices that provide inputs to the modular device 140. For example, these inputs can be provided in the form of digital inputs or analog signals. For the latter, the one or more input modules 156 can include circuits for converting analog signals into logic signals that can be processed by the processor 142. The one or more output modules 158 generally convert logic signals from the processor 142 into digital or analog values for output to an output device. Like the network interface controller 127, the network interface controller 159 facilitates communication with the network 135.
[0014] One or more end node devices 160(1)-(N) may also be present in system 100. Each end node device 160(1)-(N) includes a computer processor 162(1)-(N), a memory 165(1)-(N), and one or more input modules 180(1)-(N). One or more input modules 180(1)-(N) represent devices that provide input to their corresponding end node devices 160(1)-(N) in a manner similar to their corresponding input modules in PLC 110 and modular device 140.
[0015] Any general purpose computer system used in various embodiments of the present disclosure may be, for example, a general purpose computer having a general purpose computer processor. For example, processors 112, 142, and 162(1)-(N) may include processors based on an Intel PENTIUM-type processor, a Motorola PowerPC, a Sun UltraSPARC, a Hewlett-Packard PA-RISC processor, or any other type of processor. In general, processors 112, 142, and 162(1)-(N) represent any suitable processor, including commercially available processors, such as the well-known Pentium-class processors available from Intel Corporation. Many other processors are available. Such processors typically execute an operating system (not shown), which may be, for example and without limitation, a processor such as a processor that is not intended for use with ... or Many other operating systems may be used.
[0016] Memories 115, 145, and 165(1)-(N) generally represent any suitable form of addressable computer memory. For example, memories 115, 145, and 165(1)-(N) may represent volatile memory (e.g., static random access memory (SRAM)) and / or non-volatile memory (e.g., flash memory). More generally, any suitable form of memory device consistent with the functionality described herein may be used. Typically, a processor and an operating system together define a computer platform, and applications for the computer platform are written in a high-level programming language. It should be understood that embodiments of the present disclosure are not limited to a particular computer system platform, processor, operating system, or network. Furthermore, it should be apparent to those skilled in the art that the present disclosure is not limited to a particular programming language or computer system. Furthermore, it should be appreciated that other suitable programming languages and other suitable computer systems may also be used.
[0017] One or more parts of the computer system may be distributed among one or more computer systems coupled to a communication network. For example, as discussed above, a computer system that determines available power capacity may be located away from a system manager. These computer systems may also be general-purpose computer systems. For example, various aspects of the present disclosure may be distributed among one or more computer systems that are configured to provide services (e.g., servers) to one or more client computers, or perform overall tasks as part of a distributed system. For example, various aspects of the present disclosure may be performed on a client-server or multi-layer system that includes components distributed among one or more server systems that perform various functions according to various embodiments of the present disclosure. These components may be executable code, intermediate (e.g., IL) code, or interpreted (e.g., Java) code that communicates through a communication network (e.g., the Internet) using a communication protocol (e.g., TCP / IP). For example, one or more database servers may be used to store device data used when designing a layout associated with an embodiment of the present disclosure, such as expected power draw.
[0018] As shown, memory 115 includes application specific program logic 118 and configuration management component 120. Memory 145 includes device communication component 150, which in turn includes configuration signature generation component 155. In addition, memories 165(1)-(N) each include respective device communication components 170(1)-(N), which in turn include configuration signature generation components 175(1)-(N). PLC 110 is communicatively coupled to data storage 130, which in the depicted embodiment includes configuration data 133.
[0019] In the depicted example, the configuration system 137 includes a configuration application 139. Generally, the configuration application 139 can be used to configure the modular devices 140 and / or the end node devices 160(1)-(N). For example, the configuration application 139 can provide a human-machine interface (HMI) through which an administrator can generate a configuration profile for one or more of the devices 140 and 160(1)-(N). The configuration application 139 can then deploy the generated configuration profile to one or more devices. When doing so, the configuration application can identify multiple predetermined configuration parameters and can generate a configuration signature based on the data values of the multiple predetermined configuration parameters in the initial configuration. In one embodiment, the configuration application 139 is configured to use a hash function on the data values of the multiple predetermined configuration parameters to generate a configuration signature (e.g., a 256-bit hash value).
[0020] Generally, the plurality of predetermined configuration parameters include configuration parameters that may affect the operation of the modular device when interacting with the PLC 110. For example, a first parameter may be included in the plurality of configuration parameters if a data value of the first parameter may affect the operation performed between the PLC 110 and the modular device 140, while a second parameter may be excluded if the second parameter will affect the performance of the modular device 140 but will not affect the operation performed between the PLC 110 and the modular device 140.
[0021] In certain embodiments, a plurality of predetermined configuration parameters define a communication protocol for implicit communication between the PLC 110 and the modular device 140. For example, the modular device 140 may be configured to periodically transmit a plurality of data values of various data types, of various sizes, and in a particular order to the PLC 110, and such configuration may be defined in configuration data stored on the modular device 140. Similarly, the PLC 110 may be configured with configuration data that defines the properties of incoming data messages, and based on the configuration data, the PLC 110 may expect transmissions from the modular device 140 to contain data of an ordered sequence of data types, and may expect each data type to have a specified size, and so on.
[0022] One advantage of this implicit communication protocol is that it has less overhead for communication between the PLC 110 and the modular devices 140 relative to alternative communication protocols. For example, by agreeing in advance on an ordering of data values of defined types and sizes and defining it in the configuration data, the modular devices 140 are able to transmit data values to the PLC 110 (and vice versa) without any embedded tags (e.g., tags defining the type of the data value and delimiting the individual data values). While this communication protocol provides many advantages, the protocol may fail if either the modular device 140 and / or the PLC 110 unilaterally makes changes to their configuration data without coordination with each other. That is, if the modular device 140 changes the size of a first data value that the modular device 140 sends to the PLC 110 from 8 bytes to 16 bytes, but the PLC 110 still expects the first data value to be an 8-byte value, the PLC 110 may misinterpret the message received from the modular device. Thus, embodiments described herein may generate configuration signatures by hashing configuration data that defines an implicit communication protocol between the PLC 110 and the modular devices 140, and these configuration signatures may be compared over time to ensure that the communication protocol is still being followed by both devices.
[0023] The configuration management component 120 may receive the generated configuration signature from the configuration application 139 (e.g., using the network 135) and may store the signature in the configuration data 133 of the data storage device 130. Upon subsequent initialization of the modular device 140 (e.g., after the device is restarted), the device communication component 150 of the modular device 140 may provide the updated configuration signature to the configuration management component 120 of the PLC 110. For example, the configuration signature generation component 155 may retrieve the current data values of a plurality of predetermined configuration parameters and may generate a configuration signature (e.g., a 256-bit hash value) using the current data values.
[0024] When the updated configuration signature is received, the configuration management component 120 may compare the updated configuration signature to the previously stored configuration signature in the data storage device 130. If the signatures match, the configuration management component 120 may determine that the data from the modular device 140 has integrity and take no further action at this time. On the other hand, if the configuration management component 120 determines that the signatures do not match, the configuration management component 120 may generate a notification (e.g., to alert a user of the problem) and may stop one or more data processing operations associated with the modular device 140. In one embodiment, the configuration management component 120 may mark any data received from the modular device 140 after the signature does not match to indicate that the data has uncertain integrity.
[0025] It is noteworthy that while in the foregoing examples the comparison is performed by configuration management component 120, in alternative embodiments configuration management component 120 may transmit previously stored signatures to modular device 140 upon initialization of modular device 140, and device communication component 150 may compare the signatures to determine if there is a mismatch. Further, while the foregoing examples involve device communication component 150 and configuration signature generation component 155, it is contemplated that the same functionality may be performed by device communication components 170(1)-(N) and configuration signature generation components 175(1)-(N). For example, upon initial configuration of end node device 160(1), configuration signature generation component 175(1) may generate a baseline configuration signature, and the baseline configuration signature may be transmitted to PLC 110 for storage in data storage device 130. PLC 110 may then perform a comparison operation between the baseline configuration signature and a subsequently generated configuration signature received from end node device 160(1) to determine whether the configuration of end node device 160(1) has changed (and if so, a notification may be generated and one or more processing operations with respect to end node device 160(1) may be stopped, for example).
[0026] Figure 2A-2Dis a block diagram illustrating a workflow for using configuration signatures to ensure data consistency between devices according to one embodiment described herein. As shown, Figure 2A A system 200 is shown that includes device A 210, configuration application 139, and device B 220. For example, device A 210 may be a modular device in an industrial automation environment, and device B 220 may be a controller device in an industrial automation environment. However, more generally, it is contemplated that the communication techniques described herein may be applied by a variety of different devices.
[0027] In the depicted embodiment, the configuration application 139 has generated configuration data 215 and transmitted the configuration data 215 to device A 210 (operation 225), and has generated a configuration signature 218 of the configuration data and transmitted the configuration signature 218 of the configuration data to device B (operation 228). In general, the configuration data 215 represents data that stores information about configuration settings of device A 210. These configuration settings can be the physical configuration of device A 210 (e.g., data describing the state of a physical switch), configuration values from a configuration file or database, etc. In the depicted embodiment, the configuration application 139 has generated the configuration signature 218 using data values for a plurality of predetermined configuration settings from the configuration data 215. The plurality of predetermined configuration settings can be selected based on configuration settings that (directly or indirectly) affect the content of messages transmitted between device A 210 and device B 220. That is, device B 220 may only be interested in changes to configuration settings that affect the operation of device B 220, and therefore data values for configuration settings that do not affect device B 220 and do not affect messages sent between device A 210 and device B 220 may be omitted from the configuration signature 218. In the depicted embodiment, when the configuration signature 218 is generated, the configuration application 139 transmits the configuration signature 218 to device B 220.
[0028] Figure 2BA system 230 is depicted showing devices 210 and 220 at subsequent points in time. More particularly, system 230 depicts a moment when device A 210 completes initialization (e.g., when device A 210 completes booting after a reboot). In the depicted embodiment, upon initialization, configuration signature generation component 155 on device A 210 generates a current configuration signature 233 based on configuration data 215 and transmits the signature to device B 220 (operation 235). Upon receiving the configuration signature, configuration management component 220 on device B compares the received configuration signature to previously stored configuration signatures and verifies that the configuration signatures match (operation 240). That is, because the configuration signature is generated using data values of configuration settings that can affect device B 220 and / or communication between device A 210 and device B 220, the configuration management component 120 can determine whether the configuration of device A 210 has changed in a meaningful manner (i.e., in a manner that affects the operation of device B 220 and / or communication between device A 210 and device B 220) by comparing the configuration signatures.
[0029] Figure 2C System 250 is shown in which the configuration of device A 210 is modified (e.g., by an administrator of device A 210, due to a hardware failure, etc.). In the depicted example, configuration signature generation component 155 on device A 210 generates a new configuration signature 260 based on updated configuration data 255 (operation 265). Figure 2D In the illustrated system 270, the device communication component 150 on device A 210 transmits a message containing an updated configuration signature to device B (operation 280). The device management component 120 on device B 220 compares the received signature with the previously stored configuration signature, and upon determining that the signatures do not match (i.e., because one or more data values for a plurality of predefined configuration settings on device A have changed in the configuration data 255), the device management component 120 generates a notification to alert a user of the configuration mismatch (operation 285). In addition, the device management component 120 may take one or more remedial actions in response to the configuration signature mismatch, such as ceasing operations between device A 210 and device B 220, marking data received from device A 210 as having questionable integrity after the configuration mismatch, and the like.
[0030] Figure 3A workflow for ensuring data consistency between devices using configuration signatures at a control device according to one embodiment described herein is shown. As shown, the method 300 begins at block 310, where the configuration management component 120 receives a baseline configuration signature of a first device and stores the baseline configuration signature. For example, the baseline configuration signature may be generated at the time of initial configuration of the first device. At a subsequent point in time, when the first device is initialized (e.g., after a restart operation), the configuration management component 120 receives a current configuration signature from the first device (block 315). The configuration management component 120 compares the current configuration signature with the baseline configuration signature (block 320), and if the signatures match ("yes" at block 325), the method 300 returns to block 315. On the other hand, if the configuration management component 120 determines that the signatures do not match ("no" at block 325), the configuration management component 120 generates a notification and stops one or more processing operations associated with the first device (block 330), and the method 300 ends.
[0031] Figure 4 A workflow for using configuration signatures at modular devices to ensure data consistency between devices according to one embodiment described herein is shown. As shown, method 400 begins at block 410, where upon initialization of a first modular device, configuration signature generation component 155 generates a current configuration signature using current data values of a predefined configuration parameter set. Typically, if the data values of the predefined configuration parameter set have not changed, the current configuration signature will be the same as a baseline configuration signature previously stored on the control device (e.g., after the control device receives the baseline configuration signature from a control application). On the other hand, if one or more data values have been modified, the configuration signature will not match.
[0032] The configuration signature generation component 155 receives a baseline configuration signature from the control device, where the baseline configuration signature has been provided to the control device by the configuration application (block 415). For example, when configuring the first modular device, the configuration application 139 can generate a baseline configuration signature, and the configuration application 139 can provide the baseline configuration signature to the control device for storage. In the depicted embodiment, the first modular device compares the received baseline configuration signature to the generated current configuration signature (block 420) and determines whether the signatures match (block 425). If the signatures do match, the method 400 returns to block 410. On the other hand, if the device communication component 150 of the modular device determines that the signatures do not match, the device communication component 150 generates a notification and stops one or more processing operations on the first modular device (block 430), and the method 400 ends.
[0033] In the foregoing, reference has been made to various embodiments. However, the scope of the present disclosure is not limited to the specific described embodiments. Rather, any combination of the described features and elements (whether or not related to different embodiments) is contemplated as implementing and practicing the contemplated embodiments. In addition, although the embodiments may achieve advantages over other possible solutions or over the prior art, whether a particular advantage is achieved by a given embodiment is not a limitation on the scope of the present disclosure. Therefore, the foregoing aspects, features, embodiments and advantages are merely illustrative and are not considered to be elements or limitations of the appended claims unless explicitly stated in the claims.
[0034] Various embodiments disclosed herein may be implemented as systems, methods, or computer program products. Thus, aspects may take the form of fully hardware embodiments, fully software embodiments (including firmware, resident software, microcode, etc.), or embodiments combining software and hardware aspects, which may all be generally referred to herein as "circuits," "modules," or "systems." Additionally, aspects may take the form of a computer program product embodied in one or more computer-readable media having computer-readable program code embodied thereon.
[0035] Any combination of one or more computer-readable media can be utilized. Computer-readable media can be non-transitory computer-readable media. Non-transitory computer-readable storage media can be, for example, but not limited to, electronic, magnetic, optical, electromagnetic, infrared, or semiconductor systems, devices, or equipment, or any suitable combination of the foregoing. More specific examples (non-exhaustive list) of non-transitory computer-readable media can include the following items: electrical connection with one or more wires, portable computer disks, hard disks, random access memories (RAM), read-only memories (ROM), erasable programmable read-only memories (EPROM or flash memory), optical fibers, portable compact disk read-only memories (CD-ROM), optical storage devices, magnetic storage devices, or any suitable combination of the foregoing. Any suitable medium (including but not limited to wireless, wired lines, fiber optic cables, RF, etc., or any suitable combination of the foregoing) can be used to transmit the program code embodied in the computer-readable medium.
[0036] The computer program code for performing the operation of aspects of the present disclosure is written with any combination of one or more programming languages. In addition, a single computer system or a plurality of computer systems (e.g., using a local area network (LAN), a wide area network (WAN), the Internet, etc.) communicating with each other can be used to perform such computer program code. Although various features in the foregoing are described with reference to flowchart illustrations and / or block diagrams, it will be appreciated by those of ordinary skill in the art that each frame of flowchart illustrations and / or block diagrams and the combination of frames in flowchart illustrations and / or block diagrams can be realized by computer logic (e.g., computer program instructions, hardware logic, a combination of the two, etc.). Typically, computer program instructions can be provided to the processor of a general-purpose computer, a special-purpose computer, or other programmable data processing device. In addition, the use of a processor to perform such computer program instructions produces a machine that can perform the function or action specified in one or more frames of a flowchart and / or block diagram.
[0037] The flow chart and block diagram in the figure show the possible architecture, function and / or operation of multiple embodiments of the present disclosure.In this regard, each frame in the flow chart or block diagram can represent a module, segment or part of a code, and the code includes one or more executable instructions for realizing the specified logical function.It should also be noted that in some optional implementations, the functions mentioned in the frame may not appear in the order mentioned in the figure.For example, the two frames shown continuously can in fact be executed substantially at the same time, or the frame can sometimes be executed in the opposite order, depending on the function involved.It should also be noted that each frame of the block diagram and / or flow chart illustration and the combination of the frames in the block diagram and / or flow chart illustration can be realized by a special hardware-based system or a combination of special hardware and computer instructions that perform the specified function or action.
[0038] It should be understood that the above description is defined as illustrative rather than restrictive. After reading and understanding the above description, many other implementation examples are obvious. Although the present disclosure describes specific examples, it should be appreciated that the system and method of the present disclosure are not limited to the examples described herein, but can be practiced in a modified form within the scope of the appended claims. Therefore, the description and the drawings are regarded as illustrative rather than restrictive.
[0039] The scope of the disclosure should, therefore, be determined with reference to the appended claims, along with the full scope of equivalents to which such claims are entitled.
[0040] Aspects of the present disclosure may be implemented in one or more of the following embodiments:
[0041] Item 1): A method comprising:
[0042] receiving, by the computing device, a baseline configuration signature for the first modular device from a configuration application and storing the baseline configuration signature;
[0043] When initializing the first modular device, receiving a current configuration signature from the first modular device via the first data communications network;
[0044] comparing the current configuration signature to the baseline configuration signature; and
[0045] Upon determining that the current configuration signature and the baseline configuration signature do not match, a notification is generated, through operation of the one or more computer processors, indicating that subsequently received data from the first modular device has uncertain integrity.
[0046] Item 2): The method according to item 1), wherein the baseline configuration signature is generated by the configuration application and received from the configuration application via the second data communication network.
[0047] Item 3): A method according to Item 2), wherein the configuration application is configured to use initial configuration data of the first modular device and generate a baseline configuration signature when the first modular device is successfully configured.
[0048] Item 4): A method according to Item 3), wherein the first modular device is configured to retrieve configuration data about the first modular device at the time of initialization, and use the retrieved configuration data to generate a current configuration signature.
[0049] Item 5): A method according to Item 4), wherein the baseline configuration signature includes a hash value, and wherein the configuration application is configured to generate the baseline configuration signature using initial configuration data as input to a predefined hash function.
[0050] Item 6): A method according to Item 5), wherein the current configuration signature includes a second hash value, and wherein the first modular device is configured upon initialization to generate the current configuration signature using the retrieved configuration data as input to a predefined hash function.
[0051] Item 7): The method according to Item 1) further includes:
[0052] After determining that the current configuration signature and the baseline configuration signature do not match, one or more data values received from the first modular device are marked as having uncertain integrity.
[0053] Item 8): A method according to Item 4), wherein the initial configuration data and the retrieved configuration data each define a communication protocol for implicit communication of data between the first modular device and the computing device.
[0054] Item 9): A method according to Item 8), wherein the defined communication protocol specifies at least one of the following: multiple data types to be transmitted, the ordering of multiple data types, and the size of at least one data type among the multiple data types.
[0055] Item 10): A method comprising:
[0056] upon initializing the first modular device, generating a current configuration signature using current data values of a predefined set of configuration parameters;
[0057] receiving a baseline configuration signature from a control device, wherein the baseline configuration signature is provided to the control device by a configuration application when the first modular device is configured;
[0058] comparing the received baseline configuration signature to the generated current configuration signature; and
[0059] Upon determining that the current configuration signature and the received baseline configuration signature do not match, a notification is generated indicating that data communicated between the first modular device and the control device has uncertain integrity.
[0060] Item 11): A method according to Item 10), wherein the baseline configuration signature is generated by a configuration application.
[0061] Item 12): A method according to Item 11), wherein the configuration application is configured to use initial configuration data of the first modular device and generate a baseline configuration signature when the first modular device is successfully configured.
[0062] Item 13): A method according to Item 12), wherein the baseline configuration signature includes a hash value, and wherein the configuration application is configured to generate the baseline configuration signature using initial configuration data as input to a predefined hash function.
[0063] Item 14): A method according to Item 13), wherein the current configuration signature includes a second hash value, and wherein the first modular device is configured upon initialization to generate the current configuration signature using current data values of a predefined set of configuration parameters input into a predefined hash function.
[0064] Item 15): A method according to Item 14), wherein the initial configuration data and the retrieved configuration data each define a communication protocol for implicit communication of data between the first modular device and the computing device.
[0065] Item 16): A method according to Item 15), wherein the defined communication protocol specifies at least one of the following: multiple data types to be transmitted, the ordering of multiple data types, and the size of at least one data type among the multiple data types.
[0066] Item 17): The method according to Item 10) further includes:
[0067] Upon determining that the current configuration signature and the baseline configuration signature do not match, one or more data values received from the control device are marked as having uncertain integrity.
[0068] Item 18): A system comprising:
[0069] Modular equipment, comprising:
[0070] first one or more computer processors; and
[0071] a first non-transitory memory containing computer program code that, when executed by operation of a first one or more computer processors, performs a first operation; and
[0072] Control equipment, control equipment includes:
[0073] a second one or more computer processors; and
[0074] a second non-transitory memory containing computer program code that when executed by operations of a second one or more computer processors performs a second operation;
[0075] The first operation includes:
[0076] upon initialization, generating a current configuration signature using current data values of a predefined set of configuration parameters, wherein the predefined set of configuration parameters defines an implicit communication protocol for communication between the modular device and the control device; and
[0077] transmitting the current configuration signature to the control device via the data communication network; and
[0078] The second operation includes:
[0079] receiving a baseline configuration signature for the modular device from a configuration application and storing the baseline configuration signature;
[0080] receiving a current configuration signature from a modular device;
[0081] comparing the current configuration signature to the baseline configuration signature; and
[0082] Upon determining that the current configuration signature and the baseline configuration signature do not match, a notification is generated indicating that subsequently received data from the modular device has uncertain integrity.
[0083] Item 19): A system according to Item 18), wherein the baseline configuration signature is generated by a configuration application using initial configuration data, the initial configuration data defining an implicit communication protocol for implicit communication of data between the modular device and the control device.
[0084] Item 20): A system according to Item 19), wherein the defined communication protocol specifies at least one of the following: multiple data types to be transmitted, the ordering of the multiple data types, and the size of at least one data type among the multiple data types.
Claims
1. A method comprising: receiving, by a computing device, a baseline configuration signature of a first modular device from a configuration application and storing the baseline configuration signature, wherein the baseline configuration signature is generated based on initial configuration data of the first modular device; receiving, upon initialization of the first modular device, a current configuration signature from the first modular device over a first data communications network, wherein the current configuration signature is generated based on current configuration data of the first modular device, wherein the initial configuration data and the current configuration data each define a communication protocol for implicit intra-device data communications between the first modular device and the computing device, wherein the defined communication protocol specifies at least one of: a plurality of data types to be transmitted, an ordering of the plurality of data types, and a size of at least one of the plurality of data types; comparing the current configuration signature to the baseline configuration signature; and Upon determining that the current configuration signature and the baseline configuration signature do not match, a notification is generated, through operation of one or more computer processors, indicating that subsequently received data from the first modular device has uncertain integrity.
2. The method according to claim 1, wherein: The baseline configuration signature is generated by the configuration application and received from the configuration application over a second data communications network.
3. The method according to claim 2, wherein: The configuration application is configured to use initial configuration data of the first modular device and generate the baseline configuration signature upon successful configuration of the first modular device.
4. The method according to claim 3, wherein: The first modular device is configured to retrieve configuration data about the first modular device at the time of initialization, and generate the current configuration signature using the retrieved configuration data.
5. The method according to claim 4, wherein: The baseline configuration signature comprises a hash value, and wherein the configuration application is configured to generate the baseline configuration signature using the initial configuration data as an input to a predefined hash function.
6. The method according to claim 5, wherein: The current configuration signature comprises a second hash value, and wherein the first modular device, upon initialization, is configured to generate the current configuration signature using the retrieved configuration data as an input to the predefined hash function.
7. The method according to claim 1, further comprising: After determining that the current configuration signature and the baseline configuration signature do not match, marking one or more data values received from the first modular device as having uncertain integrity.
8. A method comprising: generating a current configuration signature using current data values of a predefined set of configuration parameters upon initialization of a first modular device, wherein the current configuration signature is generated based on current configuration data of the first modular device, wherein the initial configuration data and the current configuration data each define a communication protocol for implicit intra-device data communication between the first modular device and a control device, wherein the defined communication protocol specifies at least one of: a plurality of data types to be transmitted, an ordering of the plurality of data types, and a size of at least one of the plurality of data types; receiving a baseline configuration signature from the control device, wherein the baseline configuration signature is provided to the control device by a configuration application when the first modular device is configured, wherein the baseline configuration signature is generated based on initial configuration data of the first modular device; comparing the received baseline configuration signature to the generated current configuration signature; and Upon determining that the current configuration signature and the received baseline configuration signature do not match, a notification is generated indicating that data communicated between the first modular device and the control device has uncertain integrity.
9. The method according to claim 8, wherein: The baseline configuration signature is generated by a configuration application.
10. The method according to claim 9, wherein: The configuration application is configured to use initial configuration data of the first modular device and generate the baseline configuration signature upon successful configuration of the first modular device.
11. The method according to claim 10, wherein: The baseline configuration signature comprises a hash value, and wherein the configuration application is configured to generate the baseline configuration signature using the initial configuration data as an input to a predefined hash function.
12. The method according to claim 11, wherein: The current configuration signature comprises a second hash value, and wherein the first modular device upon initialization is configured to generate the current configuration signature using the current data values of the predefined set of configuration parameters input to the predefined hash function.
13. The method according to claim 8, further comprising: After determining that the current configuration signature and the baseline configuration signature do not match, marking one or more data values received from the control device as having uncertain integrity.
14. A system comprising: Modular equipment, comprising: first one or more computer processors; and a first non-transitory memory containing computer program code that, when executed by operation of the first one or more computer processors, performs a first operation; and A control device, the control device comprising: a second one or more computer processors; and a second non-transitory memory containing computer program code that, when executed by the operations of the second one or more computer processors, performs a second operation; The first operation includes: upon initialization, generating a current configuration signature using current data values of a predefined set of configuration parameters, wherein the current configuration signature is generated based on current configuration data of the modular device, wherein the initial configuration data and the current configuration data each define a communication protocol for implicit intra-device data communication between the modular device and the control device, wherein the defined communication protocol specifies at least one of: a plurality of data types to be transmitted, an ordering of the plurality of data types, and a size of at least one of the plurality of data types; transmitting the current configuration signature to the control device via a data communication network; and The second operation includes: receiving a baseline configuration signature for the modular device from a configuration application and storing the baseline configuration signature, wherein the baseline configuration signature is generated based on initial configuration data for the modular device; receiving the current configuration signature from the modular device; comparing the current configuration signature to the baseline configuration signature; and Upon determining that the current configuration signature and the baseline configuration signature do not match, a notification is generated indicating that subsequently received data from the modular device has uncertain integrity.
Citation Information
Patent Citations
Input / output (i / o) device configuration signature
US20160179556A1