Symbolic Access and Methods for Industrial Equipment Systems Based on Externally Deployed Gateway Devices

By using symbolic data operations, symbolic object instances and template object instances are used to solve the problem of inconsistent data formats between different devices, thereby achieving efficient data access and unified data format in industrial automation systems, improving system operating efficiency and ease of equipment debugging.

CN116089657BActive Publication Date: 2026-05-26ROCKWELL AUTOMATION TECH INC

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
ROCKWELL AUTOMATION TECH INC
Filing Date
2022-11-08
Publication Date
2026-05-26

AI Technical Summary

Technical Problem

In existing industrial automation systems, devices of different brands, types, and generations generate different types of data, which increases the complexity of coordination and communication between devices, and connecting new devices to existing systems is time-consuming and complicated.

Method used

By manipulating symbolic data and using symbolic object instances and template object instances to access data, a standardized, flexible, and scalable interface is achieved between devices, reducing the consumption of computing resources and bypassing complex programming and data extraction operations.

Benefits of technology

It improves the overall control and monitoring efficiency of industrial automation systems, simplifies the commissioning and maintenance of new equipment, and achieves a unified data format and consistent reporting between devices.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116089657B_ABST
    Figure CN116089657B_ABST
Patent Text Reader

Abstract

Embodiments of this disclosure relate to symbolic access and methods for industrial equipment systems based on externally deployed gateway devices. Embodiments of this disclosure may include a system performing operations including: receiving a request from a requesting device for access to data associated with industrial automation equipment, and identifying the industrial automation equipment based on the request. The operations may include sending a query for template data to the industrial automation equipment based on the request and receiving the template data. The operations may include determining a data structure based on the requesting device and generating a data structure based on the template data and a mapping between the data structure and the template data. The operations may additionally include sending the data structure to the requesting device.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] Cross-reference to related applications

[0002] This application claims priority and benefit to U.S. Patent Application No. 63 / 276973, filed November 8, 2021, entitled “INDUSTRIAL DEVICE DISCOVERY AND CONSUMPTION SYSTEMS AND METHODS,” which is incorporated herein by reference in its entirety for all purposes. Technical Field

[0003] This disclosure generally relates to industrial automation systems, and more specifically, to control systems and methods based on symbolic data access. Background Technology

[0004] This section aims to introduce the reader to various aspects of the field that may relate to the aspects of the present technology described below and / or claimed. It is believed that this discussion will help provide the reader with background information to facilitate a better understanding of the various aspects of this disclosure. Therefore, it should be understood that these statements are to be interpreted in accordance with this teaching and not as an admission of prior art.

[0005] Industrial automation systems can include automated control and monitoring systems. These systems can monitor and / or receive status information and / or sensor data from a wide variety of devices, such as valves, motors, various types of sensors, and other suitable monitoring equipment. Furthermore, one or more components of the automated control and monitoring system, such as programming terminals, automation controllers, input / output (I / O) modules, communication networks, and human-machine interface (HMI) terminals, can use status and / or collected information to provide alerts to operators to change or adjust the operation of one or more components of the industrial automation system (e.g., adjusting the operation of one or more actuators) for the management of the industrial automation system.

[0006] Recent developments in industrial automation systems have increased the complexity of industrial automation equipment and the interactions between devices. New generations of industrial automation equipment are expected to interface with or control traditional equipment. Different brands, types, and generations of industrial automation equipment may generate different types of data for different purposes and using different units of measurement. For example, the voltage sensed by one motor drive may be in volts (V), while the voltage sensed by another motor drive may be in kilovolts (kV). Therefore, industrial automation systems and methods that facilitate coordination between many different types of traditional industrial automation equipment may be desired. Summary of the Invention

[0007] The following provides an overview of the specific embodiments disclosed herein. It should be understood that these aspects are presented merely to provide the reader with a brief overview of these specific embodiments, and are not intended to limit the scope of this disclosure. In fact, this disclosure may cover aspects that may not be set forth below.

[0008] In one embodiment, a method includes receiving, via a processor, a request from a requesting device for access to data associated with an industrial automation device, and identifying the industrial automation device via the processor based on the request. The method may further include sending a query for template data to the industrial automation device via the processor based on the request. The industrial automation device may be associated with multiple symbolic object instances, and a first template object instance may characterize template data stored in storage components accessible to the industrial automation device. Each of the symbolic object instances may be categorized relative to multiple categories, including identification of the industrial automation device, status of the industrial automation device, operating time status of the industrial automation device, maintenance status associated with the industrial automation device, durability information of the industrial automation device, or any combination thereof. The template data may include one or more instantaneous values ​​associated with one or more of the categories. The method may further include receiving the template data via the processor and determining a data structure via the processor based on the requesting device. The method may include generating a data structure via the processor based on the template data and a mapping between the data structure and the template data, wherein the mapping may describe a first information model associated with the requesting device. The method may include sending the data structure to the requesting device via the processor.

[0009] In another embodiment, a system may include: an industrial automation device disposed in an on-premises computing domain, wherein the industrial automation device is associated with a symbol object instance. Each of the symbol object instances may be categorized relative to a category, which includes the identifier of the industrial automation device, the status of the industrial automation device, the uptime status of the industrial automation device, the maintenance status associated with the industrial automation device, the durability information of the industrial automation device, or any combination thereof. The system may include an externally deployed gateway device disposed at the edge of the on-premises computing domain. The externally deployed gateway device may communicate with a requesting device disposed in the externally deployed computing domain. The externally deployed gateway device may receive from the requesting device a request to access data associated with the industrial automation device, and identify the industrial automation device based on the request. The externally deployed gateway device may send a query for template data to the industrial automation device based on the request, wherein a first template object instance may characterize template data stored in storage components accessible to the industrial automation device, and wherein the template data may include one or more transient values ​​associated with one or more of the categories. The externally deployed gateway device may receive the template data, determine a data structure based on the requesting device, and generate a data structure based on the template data and a mapping between the data structure and the template data. The mapping can describe a first information model associated with the requesting device. An externally deployed gateway device can send the data structure to the requesting device.

[0010] In another embodiment, a tangible, non-transitory computer-readable medium may include instructions that, when executed, cause a control system to perform operations including: receiving a request from a requesting device for access to data associated with an industrial automation device, and identifying the industrial automation device based on the request. The operations may include sending a query for template data to the industrial automation device based on the request, wherein the industrial automation device may be associated with a symbol object instance. A first template object instance may characterize template data stored in storage accessible to the industrial automation device, and each of the symbol object instances may be categorized relative to a category, including the identification of the industrial automation device, the status of the industrial automation device, the operating time status of the industrial automation device, the maintenance status associated with the industrial automation device, the durability information of the industrial automation device, or any combination thereof. The template data may include one or more transient values ​​associated with one or more categories. The operations may include receiving the template data, determining a data structure based on the requesting device, and generating a data structure based on the template data and a mapping between the data structure and the template data. The mapping may describe a first information model associated with the requesting device. The operations may include sending the data structure to the requesting device. Attached Figure Description

[0011] These and other features, aspects, and advantages of this disclosure will become better understood when the following detailed description is read with reference to the accompanying drawings, in which the same reference numerals denote the same parts throughout the drawings:

[0012] Figure 1 This is a graphical representation of an example industrial automation system according to the implementation method;

[0013] Figure 2 According to the implementation method, it includes Figure 1 Industrial automation systems and systems with off-premise computing devices;

[0014] Figure 3 According to the implementation method, it is used for Figure 1 A block diagram of an example symbol for an industrial automation system;

[0015] Figure 4 It is stored according to the implementation method. Figure 1 A block diagram of example templates and symbols in the firmware of one or more industrial automation devices in an industrial automation system;

[0016] Figure 5 According to the implementation method, it includes and Figure 4 A diagram of the example data model hierarchy of templates and symbols associated with categories and subcategories;

[0017] Figure 6 It is a block diagram of an example template instance (e.g., an identifier instance) corresponding to the data port of a conventional device (e.g., a motor driver without symbolic data access capability) according to an implementation method;

[0018] Figure 7 It is a block diagram of an example template instance (e.g., an identifier instance) corresponding to a symbol of an industrial automation device with symbol data access capability, according to an implementation method;

[0019] Figure 8 This is a flowchart of a process for operating an industrial automation control system to register newly installed industrial automation equipment, according to an implementation method.

[0020] Figure 9 It is a flowchart of a process for operating industrial automation equipment to generate templates based on data from sensors, including context data, according to an embodiment;

[0021] Figure 10 This is a flowchart illustrating the process of generating template structure data based on a request to adjust the operation of industrial automation equipment, according to an embodiment of the method; and

[0022] Figure 11 It is based on the implementation method and instantiated from Figure 1 The graphical user interface (GUI) corresponding to the client that acquires data in the industrial automation system;

[0023] Figure 12 It is a graphical representation of an example symbolic data structure according to the implementation method.

[0024] Figure 13 According to the implementation method, it includes Figure 1 An industrial automation system that includes externally deployed computing devices, on-premise gateway devices, and externally deployed gateway devices;

[0025] Figure 14 It is a flowchart of a process for operating an internally deployed gateway device to perform data access operations, according to an embodiment.

[0026] Figure 15 This is a flowchart illustrating a process for operating an internally deployed gateway device to send control commands to industrial automation equipment, according to an embodiment; and

[0027] Figure 16 This is a flowchart of a process for operating an externally deployed gateway device to perform data access operations and template data conversion operations, according to an embodiment. Detailed Implementation

[0028] One or more specific implementations will be described below. To provide a concise description of these implementations, not all features of the actual implementations are described in this specification. It should be understood that, as in any engineering or design project, many implementation-specific decisions are made to achieve the developers' specific goals, such as complying with system-related and business-related constraints, which may vary from implementation to implementation. Furthermore, it should be understood that such development efforts may be complex and time-consuming, but remain routine tasks of design, manufacture, and production for those skilled in the art who benefit from this disclosure.

[0029] When describing elements of various embodiments of this disclosure, the articles “a,” “an,” and “the” are intended to indicate the presence of one or more elements. The terms “comprising,” “including,” and “having” are intended to be inclusive and indicate the possibility of additional elements besides those listed. Additionally, it should be understood that references to “one embodiment” or “implementation” of this disclosure are not intended to exclude the existence of additional embodiments that also incorporate the described features.

[0030] For customers integrating new equipment into existing systems, connecting smart devices to the connected enterprise is a time-consuming and complex process. A common and easily connectable interface for data from various types of equipment operating using different communication protocols, different information model formats, and manufactured by different entities remains a challenge. Instead, customers are required to connect and model the acquired data within their local controllers, or create product-specific profiles that characterize data collected from other devices in a way that is useful to the local controller. Furthermore, the evolution of industrial systems increases the complexity of interactions between currently installed equipment and newer generations of industrial automation equipment. For this reason, this disclosure generally aims to use symbolic data operations to facilitate communication between devices in industrial automation systems, enabling consistent reporting and control operations and functions for industrial automation equipment using different information model formats. Symbolic data operations may include the ability to encode addressing paths (e.g., internal object identifiers (IOIs) to objects), which identify data tables represented by symbolic object instances through logical operations with more efficient access operations. Addressing paths and symbolic object instances represent the same data but allow access in different ways to aid in better performance requirements. By using systems and methods that reference operational data in a way that is understandable to both the machine and the software, data can be routed from the data source to the data-consuming device with fewer lookup operations, and therefore, control and processing operations can be performed with fewer computational operations compared to other systems that do not use symbolic data operations.

[0031] Symbols (e.g., symbol object instances) can be thought of as text names used to represent specific, related instances of data or values ​​within a data storage entity. For example, a symbol object instance named "Heatsink Temperature of Control Board" represents the sampled temperature value of a temperature sensor stored in a computational resource that collects sampled temperature values ​​from a radiator temperature detector. Symbol object instances can be referenced along with templates to access sampled temperature values. For instance, unlike the alternative addressing path concept, a control system using sampled temperature values ​​will reference DataStructure.HeatsinkTemperatureofControlBoard when accessing the sampled temperature values. In some cases, symbol object instances can help decode specific portions of data from a larger dataset, and these specific data portions can be associated with a data type definition from a corresponding defined template object instance. The template object instance defines the data type and format of the data portion of the larger dataset used when decoding data portions from the larger dataset based on the symbol object instance.

[0032] A template can be viewed as a format that identifies a specific, relevant instance of data (or value) that is interpreted (or used) in a data storage entity. A template can be a global setting definition, and a specific instance or use of a template for a particular device and its corresponding dataset can be called a template object instance. For example, a template for a temperature value might indicate the existence of four bytes of storage that should be read from the storage entity, and indicate that the value can have both positive and negative values ​​within a range of temperatures that can be expressed. A template object instance corresponding to a template for a template value might indicate that, for a particular device, the temperature value in the dataset associated with that device has four bytes and can have either a positive or negative value. For example, when a first template references multiple nested templates, a template can define the format of another template. The format used to interpret each of the multiple nested templates is defined by the first template.

[0033] In some cases, symbols can be used to decode specific portions of data from a larger dataset using data type definitions from corresponding template object instances. Templates can define the data type and format of the data to be decoded from a larger dataset based on symbols.

[0034] The implementation of symbolic data manipulation using the systems and methods detailed below enables a specific system to interact with different systems (e.g., different information model formats) using a standardized, flexible, and scalable interface. This interface can be used to expose a wide range of data models provided by other devices. Symbolic data manipulation can be based on at least two fundamental data objects—symbolic object instances and template objects. Industrial automation equipment can use symbolic data manipulation, distinct from traditional class, instance, and attribute (CIA) lookup operations, when communicating with other devices. Symbolic data manipulation can involve the control system of an industrial automation system that accesses data associated with the industrial automation equipment through symbolic object instances and template object instances in the information model format. Furthermore, symbolic data manipulation can improve the operation of industrial automation systems by reducing the amount of computational resources required to access and identify data associated with industrial automation equipment.

[0035] By using the systems and methods described above, industrial automation systems can exchange data using symbolic / template data access techniques (e.g., symbolic data manipulation), which can be enabled via symbolic object instances and template object instances. Therefore, one or more intermediate control systems can be incorporated into an industrial automation system to aggregate or process data generated by industrial automation equipment. In fact, industrial automation systems using symbolic data manipulation can bypass certain operations. Operations that can be bypassed include, for example, writing specific programmable logic controller (PLC) code to extract data from one or more industrial automation devices to make the data accessible to the control system, aggregating access data from industrial automation devices, extracting data for human-machine interface consumption, programming individual processing layers in software applications to process (e.g., identify trends) data, etc. Using symbolic data manipulation, thereby bypassing at least some of these operations, can make the overall control and / or monitoring operations of the industrial automation system more efficient during runtime and initial commissioning. Control and / or monitoring operations can be performed more efficiently by using gateway devices as components that collect data from various sources and perform data aggregation operations; communication-coupled devices can be accessed from the gateway devices.

[0036] To illustrate, a symbol object instance can be defined by a corresponding template object instance, which defines the structure, format, characteristics, and / or attributes of the data logically associated with the symbol object instance. These characteristics or attributes can represent the status, identification, analytical capabilities, etc., of the operating equipment. Symbol object instances can be used to provide symbolic access to both global and local data within a product. The template object instance describes the data type referenced by the symbol object instance. Symbols can help expose equipment data in a generic and consistent manner, providing a relatively uncomplicated data consumption advantage as an example of the advantages of these systems and methods. For example, a symbol can be a vendor-specific Common Industrial Protocol (CIP) object or other suitable type of programmable object. For a specific type of industrial automation equipment, a symbol can define the set of fields to be populated with data, which can correspond to instances of the corresponding symbol object instance. For example, a first device with a first device type and a second device with a second device type can be associated with different symbols.

[0037] A template object instance can be a data object referenced by a symbolic object instance. A template (e.g., a template object instance) can reference a set of data types aggregated through a common data structure, which can include any associated nested template object instances (e.g., sub-members) and the data types associated with the nested template object instances. Sometimes, when the corresponding data structure is designed to process different data types, the template and / or the corresponding template object instance can include different data types. Furthermore, a template can be a user-defined template based on a set of data variables defined according to a common data structure.

[0038] By way of example, control circuitry can use symbolic data manipulation to access data from industrial automation equipment via distributed input / output (I / O) products and other connected industrial automation devices. The firmware of the industrial automation equipment can query data sources based on symbols, or receive data from data sources, and store the retrieved datasets as template instances corresponding to the symbols represented in the industrial automation equipment. The nature of the templates and the data stored in the template instances can be understood within context by using concise language data labels such as classes, instances, and attribute combinations. When reporting status information associated with the industrial automation equipment, control circuitry can reference data, contextual data associated with the data, or both, where the reported status information can be used to determine when to perform control operations.

[0039] In some cases, templates and / or template object instances can be nested. When using a device-specific template, nested templates can be referenced via a symbol object instance of the device-specific template. When the symbol includes nested templates and / or formatting for data, the resulting instance is nested and / or pre-formatted. In this way, a template object instance can describe one or more specific data types, or can include one or more nested template object instances and their respective data types. Within each template object instance, the associated symbol can inherit the configuration of the corresponding data members of the template, where the inherited configuration can define the data type and its position within a data structure (e.g., a data table).

[0040] Although the example environments described below for implementing this embodiment are from the perspective of industrial automation applications, it should be understood that symbolic data processing and handling systems can also improve operations in other applications. For example, petrochemical applications, burner management applications, natural gas production applications, mining applications, and / or other heavy industrial applications incorporating symbolic data operations can enable different components to communicate in a unified and consistent manner, and thus benefit from improved reliability and efficiency (e.g., reduced downtime) is expected, as described herein.

[0041] Through introduction, Figure 1 This is a graphical representation of an example industrial automation system 46 that includes a distributed control system 48 (e.g., a "DCS"). The industrial automation system 46 may include any number of industrial components.

[0042] Industrial components may include user interfaces, distributed control systems 48, motor drives, motors, conveyors, OEM machines, fire suppression systems, and any other devices that enable the production or manufacture of products or the handling of certain materials. In addition to the types of industrial components mentioned above, industrial components may also include controllers, input / output (IO) modules, motor control centers, motors, human-machine interfaces (HMIs), user interfaces, contactors, starters, sensors, drives, relays, protection devices, switching devices, compressors, network switches (e.g., Ethernet switches, modularly managed switches, fixedly managed switches, service router switches, industrial switches, unmanaged switches), etc. Industrial components may also be associated with various industrial equipment such as mixers, machine conveyors, tanks, pallets, OEM machines, etc. Industrial components may also be associated with equipment used in conjunction with devices such as scanners, flow meters, relays, instruments, valves, etc. In one embodiment, various aspects of an industrial component may be controlled or operated by a single controller (e.g., a control system), which itself may be considered an industrial component. In another embodiment, the control and operation of various aspects of an industrial component may be distributed via multiple controllers (e.g., control systems).

[0043] The industrial automation system 46 can be logically and physically divided into different units 50 corresponding to cells, areas, plants, subsystems, etc. within the industrial automation system 46. Industrial components (e.g., load components, processing components) can be used within each unit 50 to perform various operations for that unit 50. Industrial components can also be logically and / or physically divided into units 50 to control the performance of various operations for each unit 50.

[0044] The distributed control system 48 may include computing devices with communication, processing, and control capabilities. For example, the distributed control system 48 may include I / O modules, relays, sensors, protection devices, switching devices, network switches, processing modules, control systems, programmable logic controllers (PLCs), programmable automation controllers (PACs), or any other controller capable of monitoring, controlling, and operating industrial automation equipment or components. In this way, a motor drive can be considered a device associated with the distributed control system 48, and the industrial components and motors controlled by the drive can be considered industrial components.

[0045] The distributed control system 48 can be wholly or partially integrated into one or more physical devices (e.g., industrial components), or wholly or partially implemented as independent computing devices (e.g., general-purpose computers) such as desktop computers, laptops, tablets, mobile computing devices, etc. For example, the distributed control system 48 may include a number of logically hierarchical processing devices to perform control operations by propagating control signals, monitoring the operation of the industrial automation system 46, recording data as part of historical operation tracking, etc. The devices in the distributed control system 48 can translate logical operations or computer commands into mechanical changes implemented via one or more industrial components.

[0046] In the example distributed control system 48, devices at different hierarchical levels can correspond to different operations. The first level 52 may include input / output communication modules (IO modules) to interface with industrial components in unit 50. The second level 54 may include a control system that controls the components of the first level and / or enables communication between components of the first level 52 even if they are not communicatively coupled in the first level 52. The third level 56 may include network components, such as network switches, that support the availability of electronic communication modes between industrial components. The fourth level 58 may include server components, such as application servers, data servers, human-machine interface servers, etc. Server components may store data as part of these servers, enabling industrial automation operations to be monitored and adjusted over time. The fifth level 60 may include computing devices, such as virtual computing devices operated from servers, to enable human-machine interaction via an HMI presented through the computing device. It should be understood that the levels of the hierarchy are not exhaustive and non-exclusive, and therefore devices described in any level can be included in any other level. For example, any level can include some variations of the HMI.

[0047] One or more levels or components of the distributed control system 48 may use and / or include one or more processing units, including microprocessors (e.g., field-programmable gate arrays, digital signal processors, application-specific instruction set processors, programmable logic devices, programmable logic controllers), tangible non-transitory machine-readable media (e.g., memory such as non-volatile memory, random access memory (RAM), read-only memory (ROM)), etc. The machine-readable media may collectively store one or more instruction sets (e.g., algorithms) in the form of computer-readable code and may be grouped into applications according to the type of control performed by the distributed control system 48. In this way, the distributed control system 48 can be application-specific or general-purpose.

[0048] Furthermore, a portion of the distributed control system 48 may be a closed-loop control system (e.g., using feedback for control), an open-loop control system (e.g., not using feedback for control), or it may be a part of a closed-loop control system, an open-loop control system, or a combination of open-system components and closed-loop components and / or algorithms. Additionally, in some embodiments, the distributed control system 48 may utilize feedforward inputs. For example, the distributed control system 48 may control the flow of feedstock into the reactor based on information related to the feedstock.

[0049] As described above, industrial components may include HMIs. In fact, the distributed control system 48 may include or be coupled to one or more HMIs. The distributed control system 48 can represent components of the industrial automation system 46 through visualization of the components on a display / operator interface. The distributed control system 48 can use data generated by sensors to update the visualization of the components via one or more indications that change the current operation of the components. These sensors can be any devices suitable for providing information about processing conditions. An operator monitoring the industrial automation system 46 can refer to the display / operator interface to determine various conditions, states, and / or current operations, such as when to adjust the operation of the industrial automation system 46 and / or the operation of a specific component.

[0050] Symbolic data operations can be used to access data associated with industrial automation equipment, such as data generated by the aforementioned sensors, through a distributed control system 48. To improve the operation of industrial equipment and reduce the complexity of commissioning and maintenance, it is desirable for industrial automation equipment to report generated data as instances of symbolic objects and template objects in a common format among devices within the industrial automation system, enabling the control system to adjust the operation of the industrial automation system based on the data accessed as symbolic and template objects. The symbolic / template data access system and method described herein can improve the operation of industrial automation systems by reducing the amount of computational resources required to access and identify data associated with industrial automation equipment, and enable newly installed industrial automation equipment to be automatically programmed when communicatively coupled to the control system.

[0051] To explain in detail, Figure 2An example system 72 is shown, comprising an on-premises computing device 74, an externally deployed computing device 76, and an industrial automation control system 78. The aforementioned distributed control system 48 may include the on-premises computing device 74, an on-premises gateway device 80, the industrial automation control system 78, and an externally deployed edge gateway device 82, wherein the externally deployed edge gateway device 82 can communicate with the externally deployed computing device 76 via a network 84. The distributed control system 48 may include industrial automation equipment 86 coupled to and / or controlling connected industrial components to perform operations such as manufacturing products, moving products, opening, closing, rotating, etc. For example, the industrial automation equipment 86 may include motor control drives within a motor control center, which are coupled to one or more motors, one or more fans, etc., and control the operation of one or more motors, one or more fans, etc.

[0052] By means of operation, industrial automation device 86 can use a symbol template information model to access symbol / template data of industrial automation control system 78. For example, industrial automation device 86 can receive data associated with its own operation, classify the received data into a category of symbols, and store the classification-based data in a template, which is stored in a corresponding memory component. In this way, after generating a symbol object instance using the stored data or a stored reference to additional data, the firmware can store the instance in a memory component, industrial automation control system 78, etc., so that it can be accessed later through industrial automation device 86, another industrial automation device 86, or other devices (e.g., an internally deployed gateway device 80, an externally deployed edge gateway device 82).

[0053] Internally deployed gateway device 80 and externally deployed edge gateway device 82 can be communicatively coupled to each other and to the industrial automation control system 78. Industrial automation device 86 can generate data and report it as symbolic object instances and template object instances in a common format among devices within system 72, facilitating data processing, storage, and manipulation. That is, each device in system 72, such as internally deployed gateway device 80 and / or externally deployed edge gateway device 82, can use symbolic data operations to perform specific tasks. Symbolic data operations can interface with industrial automation control system 78 and / or industrial automation device 86 to expose data to other devices, such as internally deployed gateway device 80 and externally deployed edge gateway device 82. Symbolic data operations can be based on representing device data through symbolic object instances and template object instances, both of which can be flexible and allow devices to define their own data models and provide these model definitions to other (e.g., different) devices.

[0054] By way of example, an industrial automation control system 78 can access data from one or more industrial automation devices 86 using symbolic data operations enabled by distributed I / O products and other connected industrial automation devices. Distributed I / O products may include some of the circuitry described with reference to the industrial automation control system 78. The firmware of the industrial automation device 86 may query a data source based on symbols, or receive data from a data source and store the retrieved dataset as symbol instances whose data type and format are derived from template object instances corresponding to symbols represented in the industrial automation device 86. The data source may be a storage component to which the industrial automation device 86 is communicatively coupled, for example, a data repository that receives sensed data from one or more sensors. The industrial automation device 86 may directly receive sensed data from one or more sensors. This data received from the storage component or from the sensors may be stored in a template dataset or otherwise associated with a template dataset to enable symbolic access to the data.

[0055] Industrial automation equipment 86 capable of storing associated data in a template dataset can enhance the operation of the entire industrial automation system 46. This template dataset is associated with a template accessed via a symbolic data method. Symbols can transform at least some data generated via standard and connected devices (e.g., conventional devices without symbolic data compatibility) and datasets generated via intelligent devices (e.g., devices with symbolic data compatibility) into a consistent format accessible via an information model format corresponding to the industrial automation system 46. (The following at least refers to...) Figure 4 The discussion covers additional details related to the template. Memory 88 may include a main product data repository 90, a device data template 92, and an embedded device object 94. Memory 88 can be any suitable type of data storage device, such as a database, memory, etc.

[0056] The master product data repository 90 may include product capability profiles, computer-aided design (CAD) models and attributes, digital twin models, augmented reality and / or virtual reality libraries, digital presentation content management, persistent models, reports, graphics, application-enabled templates, etc. The libraries, profiles, models, etc., included in the master product data repository 90 can be referenced or manipulated based on symbolic data between the master product data repository 90, industrial automation equipment 86, on-premises gateway device 80, externally deployed edge gateway device 82, and / or any suitable on-premises and / or externally deployed control and processing systems.

[0057] Device data template 92 may include templates as a device data model, which may include one or more symbols and / or one or more templates. Device data template 92 can be considered a template data definition and can indicate how template data relative to one or more templates and / or one or more symbols and / or features of template data relative to one or more templates and / or one or more symbols are processed. For example, when the parent device includes multiple nested devices, multiple template object instances can be associated together in a single template instance, for example, at least referring to... Figure 4 The device data template 92 can harmonize and standardize different data models (e.g., different vendor data models) and understand contextual data used for higher-level consumption, such as further referencing at least... Figure 9 Therefore, the device data template 92 can store template object instances, data, and / or context data, or associate template object instances, data, and / or context data with each other.

[0058] Embedded device object 94 can correspond to a data structure that associates a set of symbols with a device type. Templates can define the data type and format of the data included in the data structure, and templates can be used to decode the dataset associated with the data structure. When industrial automation device 86 is registered to industrial automation system 46, industrial automation control system 78 can receive the data structure from embedded device object 94 corresponding to the type of industrial automation device 86. In fact, as... Figure 8 The description details that the industrial automation control system 78 can reference data, such as identifier data, from symbolic object instances received from the industrial automation device 86 to match the type of the industrial automation device 86 with one or more embedded device objects 94. The industrial automation control system 78 can use the embedded device objects 94 to generate template instances for the industrial automation device 86, wherein generated future data and received future context can be populated into the template instances by the industrial automation control system 78 and / or by the industrial automation device 86. By using embedded device objects 94 corresponding to the type of the industrial automation device 86, the industrial automation control system 78 can generate template object instances that are structurally consistent with other template object instances previously generated for the same type of industrial automation device 86.

[0059] The embedded device object 94 may include data structures for logical, physical, and application purposes. For example, data structures corresponding to logical purposes in the embedded device object 94 may include flight start templates, motor control templates, variable boost templates, sleep / wake templates, etc. Expected states that may be included in the templates as context data for the motor driver include "Run," "Ready," "High Speed," "Active," "Zero Speed," "Enabled," "Alarm," "Connected," "Fault," etc., as in at least Figure 5 and Figure 11 Further details are provided below. Embedded device object 94 may correspond to a power structure template, motor data template, predictive maintenance template, encoder feedback template, fan and / or pump template, conveyor template, crane and / or elevator template, etc. These templates can be referenced when processing the generated data. Templates may indicate data expected to be associated with a motor, data expected to be associated with a switching device or power distribution equipment, etc. In some cases, embedded device object 94 may correspond to a template specific to unit 50.

[0060] Data associated with various device-level systems can be accessed by other components of the industrial automation system 46 via the on-premises gateway device 80. The on-premises gateway device 80 can communicate with devices within the industrial automation system 46 on a network within the industrial automation system 46. The on-premises gateway device 80 can locally connect to one or more industrial automation devices 86, industrial automation control systems 78, or both, and can communicate with various devices using messages and / or control signals employing some operational technology (OT) communication scheme, such as Common Industrial Protocol (CIP). The on-premises gateway device 80 can access symbols stored in the industrial automation devices 86 to process read requests, rather than waiting to receive identification information about each device and mapping that identification information to request data for each device to read the requested data. Software application 96 can receive symbols from the on-premises gateway device 80 and analyze the symbol data to perform analysis, reporting, historical trend analysis, etc. The on-premises gateway device 80 can implement control loops based on symbols and / or can analyze data received via symbols in real time.

[0061] The on-premises gateway device 80 can operate at the logical boundary between the industrial automation control system 78 and the on-premises computing domain 98. The externally deployed edge gateway device 82 can operate at the logical boundary between the industrial automation system 46 and the externally deployed computing domain 100.

[0062] The communication coupling 102 between the internally deployed gateway device 80 and the externally deployed edge gateway device 82 can be used to transfer data between the two devices. The communication coupling 102 can be located within or outside the distributed control system 48. The internally deployed gateway device 80 can communicate with one or more internally deployed computing devices 74 to receive or transmit data to software applications 96 executed by and / or via the platform 104 provided by the internally deployed computing devices 74. Compared to communication between the internally deployed gateway device 80 and the externally deployed edge gateway device 82 routed through the industrial automation control system 78, communication routed via the communication coupling 102 can offer relatively lower transmission latency, different authentication operations, faster processing, and therefore lower consumption of computing resources. Similarly, communication routed from the externally deployed edge gateway device 82 to the industrial automation control system 78 can have different authentication operations than those used for communication routed from the internally deployed gateway device 80 to the industrial automation control system 78. Furthermore, as... Figure 1 As visualized in the text, but also as... Figure 2 The proposed approach, which categorizes devices into different levels to address the differences between the domain of the industrial automation control system 78 and the on-premises computing domain 98, can additionally improve the selective deployment of certification operations and security regulations.

[0063] Externally deployed edge gateway device 82 can access data of industrial automation device 86 via communication with industrial automation control system 78 and / or via communication with internally deployed gateway device 80. For example, externally deployed edge gateway device 82 can access template data via internally deployed gateway device 80 by referencing one or more symbolic object instances. Therefore, externally deployed edge gateway device 82 can obtain data from industrial automation device 86 using the same symbolic object instance used by internally deployed gateway device 80. Therefore, externally deployed edge gateway device 82 can be connected to internally deployed gateway device 80 via communication coupling 102. Externally deployed edge gateway device 82 can provide the acquired template data to software applications outside industrial automation system 46, such as a SaaS / FaaS platform 108 running on externally deployed computing device 76. The software application outside industrial automation system 46 can then perform real-time analysis on the template data indirectly obtained within industrial automation device 86 via externally deployed edge gateway device 82.

[0064] Data generated by the on-premises gateway device 80, on-premises computing device 74, externally deployed edge gateway device 82, and / or externally deployed computing device 76 can be exchanged between systems 72 to perform additional historical data logging, additional analysis, and security operations (e.g., user authentication). Template data stored in one or more industrial automation devices 86 and / or industrial automation control systems 78 can be directly accessed via a combination of referencing template object instances and symbol object instances, such as [template object instance].[symbol object instance]. To access template data, externally deployed edge gateway device 82, on-premises gateway device 80, or both can directly access data in industrial automation control systems 78 and / or industrial automation devices 86 via referencing template object instances and symbol object instances. In some cases, externally deployed edge gateway device 82 can instantiate a client on on-premises gateway device 80 to access template data via on-premises gateway device 80, as shown in the reference... Figure 11 Furthermore, in this way, the client can improve data exchange between industrial automation equipment and externally deployed edge gateway devices. For example, the client can enable the externally deployed gateway device to directly subscribe to information provided by or stored within the industrial automation equipment 86, which can reduce the amount of time spent on data communication between gateway devices 80 and 82 and / or reduce the amount of computing resources required to map the generated data to the externally deployed edge gateway device 82.

[0065] After acquiring data from industrial automation equipment 86, externally deployed computing device 76 and / or internally deployed computing device 74 can record the data in real time to perform historical trend analysis and analyze the data over time. Externally deployed computing device 76 and / or internally deployed computing device 74 can analyze the stored data over time. This processing can involve historical trends of the recorded data over time. Externally deployed edge gateway device 82 can communicate via network 84 to access software applications and / or record data in database 106.

[0066] As an example, externally deployed computing device 76 can provide a Software as a Service (SaaS) and / or Function as a Service (FaaS) platform 108 via network 84. Database 106 may include any suitable storage device, server, etc., such as a web server (e.g., a single Apache installation), an application server (e.g., a single Java Virtual Machine), and / or a database server (e.g., a single Relational Database Management System (RDBMS) catalog). The platform 108 provided by externally deployed edge gateway device 82 may include companies such as PTC, Inc. Registered trademarks, Microsoft Corporation Registered trademark, Fiix, Inc. Registered trademark, InfluxData, Inc. Platform 108 can manage data stored in database 106 based on data received from externally deployed edge gateway device 82. In some cases, externally deployed computing device 76 may correspond to one or more data centers, which may include one or more servers, one or more virtual servers, etc., each of which can operate on one or more physical computing devices. Network 84 can be any suitable wired or wireless network, such as a network enabled by the Internet or a cloud-based network. Network 84 can be an externally deployed network used by externally deployed computing device 76 to transmit data to externally deployed edge gateway device 82. Using this information, network 84 can route data and instructions between externally deployed computing device 76, database 106, and externally deployed edge gateway device 82. Externally deployed edge gateway device 82 can access network information used to communicate with industrial automation control system 78 and / or internally deployed gateway device 80, such as corresponding Internet Protocol (IP) addresses, Uniform Resource Locators (URLs), etc. In some cases, the externally deployed edge gateway device 82 can be configured as an internally deployed industrial automation system 46, and the externally deployed edge gateway device 82 is owned by the same entity that owns the internally deployed gateway device 80 and has a connection to the network 84.

[0067] As described above, industrial automation-related systems and methods using symbolic data manipulation can enable reporting and control of industrial automation equipment 86, even between systems using different communication formats. Symbolic data manipulation can involve industrial automation control systems 78, on-premises gateway devices 80, and off-premises edge gateway devices 82 that access data associated with one or more industrial automation equipment 86 via symbols.

[0068] To provide a more detailed explanation of symbol-based data operations Figure 3 This is a block diagram illustrating examples of symbol categories that can be associated with industrial automation system 46, which can be included in device data template 92. Here, these categories correspond to identification category 122, status category 124, runtime category 126, maintenance category 128 (e.g., preventative maintenance), and durability category 130. It should be understood that other different and / or additional categories, or combinations of categories, may be used, including considering fewer categories than those listed. The various categories 122 to 130 may represent references to template datasets of objects (e.g., symbol object instances, template object instances) rather than being the objects themselves. The representations of template datasets or symbol object instances of the categories 122 to 130 can be inherited from the template.

[0069] One or more of the industrial automation devices 86 may use symbolic template models to access symbolic / template data of control systems or interface devices such as industrial automation control system 78, on-premises gateway device 80, and / or externally deployed edge gateway device 82. For example, the industrial automation device 86 may receive data associated with its own operation, process the received data to determine the category of a symbol within a template instance of a symbol, and store the data in template data based on the determined category, the template data being stored in a specific memory component.

[0070] To further elaborate, each of the categories may correspond to a different template 132 for different data. For example, when used to describe industrial automation equipment 86, identification category 122 may correspond to a symbolic object instance referencing supplier identifier data indicating the supplier from whom the industrial automation equipment 86 was purchased. Identification category 122 may correspond to a symbolic object instance referencing serial number data of industrial automation equipment 86 and / or firmware loaded onto industrial automation equipment 86. In some cases, identification category 122 may correspond to a symbolic object instance referencing warranty information data of industrial automation equipment 86, such as characteristics of a valid warranty, remaining warranty period, whether the warranty has been fulfilled, and whether it is therefore invalid. Unlike industrial automation equipment 86, this reference to warranty information may be made at third level 56 by industrial automation control system 78 or another relatively high-level control system communicatively coupled to industrial automation equipment.

[0071] Other categories include Status Category 124, Operating Time Category 126, Maintenance Category 128, and Durability Category 130. Status Category 124 may correspond to a symbolic object instance referencing the current status data of the industrial automation equipment 86 (or at least the status of the industrial automation equipment 86 at the time of the most recent report), where different examples of potential states include "Running," "Stopped," "Faulty," and "Alarm." Other states may be used for different types of industrial automation equipment 86. Operating Time Category 126 may correspond to a symbolic object instance referencing current operating parameter data, such as data collected during operating time. For example, Operating Time Category 126 may correspond to a symbolic object instance referencing current data of the industrial automation equipment 86 (e.g., amperes), voltage data, torque data, speed data, and / or temperature data, or any suitable combination of measurable parameters. Maintenance Category 128 may correspond to a symbolic object instance referencing data related to predicted maintenance indicators of the industrial automation equipment 86. For example, maintenance category 128 may correspond to symbolic object instances referencing: data indicating the number of operating hours of industrial automation equipment 86, data indicating the expected remaining fan life of the fans of industrial automation equipment 86, data indicating the expected lifespan of hardware components (e.g., IGBTs) of industrial automation equipment 86, data indicating the remaining time of industrial automation equipment 86 regarding lifespan metrics, and / or data indicating the total number of motor starts performed by industrial automation equipment 86 over a period of time. These values, together or individually, can help quantify (e.g., quantify) the amount of remaining operating time of industrial automation equipment 86. Durability category 130 may correspond to symbolic object instances referencing data indicating environmental metrics, such as data used or useful in internal compliance reports or government entity compliance reports. For example, durability category 130 may correspond to symbolic object instances referencing: current power consumption data, current energy consumption data, historical power consumption data, historical energy consumption data, historical emission metric data, and / or current emission metric data, such as data indicating the amount of carbon dioxide (CO2) generated over a period of time (e.g., equipment lifespan to date).

[0072] The firmware can store template object instances in storage, such as in memory 88 along with device data template 92. After the template object instance is stored in storage, it can later be accessed by industrial automation device 86, on-premises gateway device 80, externally deployed edge gateway device 82, and / or control system (e.g., industrial automation control system 78), and used to decode datasets also accessed by said devices (e.g., industrial automation device 86, on-premises gateway device 80, externally deployed edge gateway device 82, industrial automation control system 78).

[0073] To explain in detail, Figure 4 This is a block diagram of example template 132 and symbol 144 stored in the firmware of industrial automation equipment 86. By using template 132 and symbol 144, unlike traditional class, instance, and attribute (CIA) lookup operations, data can be directly referenced from template datasets specific to industrial automation equipment, resulting in a more efficient data processing method while reducing the computational resources available for performing CIA lookup operations. Furthermore, these symbolic data operations can further improve control system operation by standardizing the systems and methods used to access data generated by industrial automation equipment 86, making data access easier when commissioning one or more devices, updating the processing of industrial automation system 46, etc.

[0074] Template 132 can provide a description of a separate data model, including all members of the corresponding industrial automation equipment 86 and their data types (and the template may include instances of other template objects). Symbol 144 can be a data object defined by a corresponding template object, which includes other characteristics or attributes associated with the data object, representing the status, identification, and / or analytical capabilities of one or more related operating devices. For example, the symbol "144A" corresponding to the primary identifier of the industrial automation equipment 86 (e.g., "Identifier – Master", Master Object 144A) can be defined by the corresponding template identifier category 122. The reference numerals "132" and "144" used herein generally refer to templates and symbols, and do not necessarily refer to... Figure 4 The exact template and symbols in it. In other words, Figure 4 Template 132 and symbol 144 can be used for a specific motor drive application, while the same template 132 and symbol 144 can be used for different applications and for different nested devices.

[0075] Instances of template 132 can organize data associated with different industrial automation devices 86 as different array elements into different categories of symbol 144. Different categories of symbol 144 can also include subcategories of symbol 144. When a template instance includes nested symbol subcategories, the symbol 144 of the parent template instance can reference the nested template instance, and therefore the array elements of symbol 144 can include information indicating the nested template instance to redirect to a reference to a second template instance.

[0076] In some implementations, template 132 may be associated with symbol 144 to enable symbolic access to global and local level data associated with industrial automation equipment. Symbol 144 may be an instantiation of a template object instance and correspond to an array element of organized data or a reference to an attached nested template. Multiple symbols 144 may be referenced by the same template instance; for example, each predictive maintenance symbol 146 in the figure (e.g., symbol 146A, symbol 146B, symbol 146C, and symbol 146D) may reference the same maintenance category 128 (e.g., a predictive maintenance (PM) template object). Symbol 144 and template 132 may be vendor-specific Common Industrial Protocol (CIP) objects.

[0077] Template 132 may describe the data type of the data referenced via symbol 144 and may reference a template object instance as the data type it describes. In practice, one or more of symbols 144 may include additional references to additional nested subcategories, which may be grouped as part of a nested template to allow for common reference to that group of subcategory symbols. One or more of templates 132 may include symbols 144 storing data and / or symbols 144 referencing another template as elements of an array data structure, such as maintenance category 128 including symbol objects 146A through D. For example, any template referenced via capacitor symbol 146D (e.g., "PM: Capacitor") is a nested template of maintenance category 128. When template 132 includes nested templates and / or is formatted for data, the resulting instances may also be nested and / or pre-formatted. In this way, each instance of template 132 may include objects describing one or more specific data types, and each instance of template 132 may include one or more sub-members and the data types of the corresponding sub-members.

[0078] Each instance of template 132 allocates storage across different devices in a consistent manner to help standardize data access. The instances can allocate storage based on different categories of data that can be stored within them. Template 132 can be shared among enterprise product suppliers via device data template 92, thereby providing consistent and uniform access to the stored data by control circuitry based on its classification.

[0079] For example, storage can be allocated in a way that enables on-premises gateway device 80, externally deployed edge gateway device 82, industrial automation device 86, and / or industrial automation control system 78 to similarly access, process, and analyze data associated with industrial automation system 46. In some cases, industrial automation control system 78 can act as an intermediary between industrial automation device 86 and another device such as on-premises gateway device 80 and / or externally deployed edge gateway device 82 to convert data into a format that can be interpreted by the target device. For example, industrial automation control system 78 may include one or more intermediary control systems from different units 50 to aggregate or process data generated by industrial automation device 86.

[0080] When the parent device (e.g., via) Figure 1 When the symbol 144 represents a device identified via the identifier (main symbol 144A), and the device has nested devices such as associated fans, associated capacitors, contactors, and insulated-gate bipolar transistor (IGBT) assemblies, then the nested device can also be represented by the symbol 144. For example, nested devices are included as symbols 144A to D associated with maintenance category 128. In other systems, nested devices may also be included as symbol 144 associated with identification category 122, status category 124, and / or runtime category 126. Different systems can be monitored at a higher parent device level or at a lower nested device level, or both. There may be a trade-off between the computational resource consumption for processing additional symbols for nested devices and the ability to remove unwanted operations and / or predict future maintenance needs.

[0081] Therefore, industrial components designed to incorporate symbolic data operations can have additional technological improvements that allow sub-component template structures to be nested within parent device template structures. This results in an enhanced representative data structure that enables the parent device to self-report its nested devices upon initial installation into the industrial automation system and when the nested devices report data. Enabling the parent device to self-report nested devices can improve operational reliability and reduce downtime by reducing the likelihood of operator error and making maintenance and installation operations more efficient by reducing the number of control commands required to install the equipment into the industrial automation system, thereby reducing the computational resources consumed.

[0082] To help visualize nested templates, Figure 5 It includes and Figure 4The diagram illustrates the example data model hierarchy of categories and subcategories associated with symbols 144 and template 132. It should be noted that these are examples of categories and additional categories or fewer categories may be used, including categories with additional types (e.g., categories indicating temperature information or other sensed data). Here, the categories correspond to identification category 122, status category 124, runtime category 126, maintenance category 128 (e.g., preventative maintenance), and durability category 130. It should be understood that any suitable category or combination of categories may be used. (Refer to the above...) Figure 3 and Figure 4 Each of the categories corresponds to a different template object that can store different data.

[0083] The template's identifier category 122 can correspond to an array 158 of identifier object instances (e.g., identifier.instance[0-n] template object instance array) as identifier-master symbol 144A. The identifier object instance array 158 corresponds to an array where each array element represents a different product available via the same IP address of a parent industrial automation device 86, where the parent industrial automation device 86 is a parent motor driver.

[0084] Status category 124 may correspond to fault information symbol 160, alarm information symbol 162, prohibition symbol 164, health symbol 166, inverter control symbol 168, and converter control symbol 172, wherein the inverter control symbol 168 includes its own nested control mode symbol 170. Industrial automation equipment 86 may report status data regarding two nested devices associated with status category 124—the power inverter represented by inverter control symbol 16 and the power converter represented by converter control symbol 172.

[0085] Tables 1 through 14 help to further illustrate these subcategories and the data referenced via template object instances and / or symbol object instances. It should be noted that some data generated during the operation of the industrial automation equipment 86 may be output values ​​affected by fluctuations between sampling periods. These values ​​can be read from the equipment with predefined sample levels according to a subscription service that provides periodic reports on the firmware of the industrial automation equipment 86 based on the sample levels. A moving window average (MWA) filter can be applied to these values ​​to provide a subset of the values ​​of these variables over time, and is shown as a blank column in Tables 1 through 14. The MWA column and timestamp column can be populated with data during actual operation, representing the moving window average for the corresponding value and the timestamp when the value was last updated. As described herein, Tables 1 through 14 show different examples of templates that can be saved as template object instances in the device memory.

[0086] Table 1 shows example template data that an array of identifier object instances 158 (e.g., identifier.instance[0-n]) can reference. In practice, the array of identifier object instances 158 can be nested templates. In Table 1, identifier attribute number 5 corresponds to invalid data. Templates can include invalid references when they are included due to a specific type of device and are not used. This helps maintain a consistent data structure across different industrial automation devices. By omitting invalid references and unused templates from the firmware of the corresponding industrial automation device, references between the control system and the corresponding industrial automation device can be incorrect, incomplete, and difficult to manage in batch control operations. By retaining invalid references, control operations can be batch-processed by the control system, enabling the use of the same commands across different devices without runtime errors due to potentially incomplete references.

[0087] The array 158 of identifier object instances may correspond to one or more attributes (e.g., identifier attributes 1 to 7 in Table 1), which may be visually represented as Figure 12 The template object instance 320 has one or more data members that are identical. The first identifier attribute (e.g., such as...) Figure 12 The first data member shown in the example—the Supplier Identifier (ID)—can be of data type unsigned integer (16 bits) (“UINT”) and corresponds to one or more numbers identifying the supplier of the industrial automation equipment. For example, the Supplier ID could be equal to “1” and represent Alan Bradley. The second identification attribute—Equipment Type—can be of data type UINT and indicates one or more numbers corresponding to the type of industrial automation equipment. The third identification attribute—Product Code—can be of data type UINT and indicates one or more numbers corresponding to the product name and grade of the industrial automation equipment. The fourth identification attribute—Firmware Version—can be of data type UINT and indicates one or more numbers corresponding to the product firmware version of the industrial automation equipment. The fifth identification attribute can be reserved for future use. The sixth identification attribute—Serial Number—can be of data type unsigned double integer (32 bits) (“UDINT”) and indicates a serial number or a 32-bit number specifically corresponding to the industrial automation equipment. The seventh identification attribute—Product Name—can be of data type with American Standard Code for Information Interchange (ASCII) characters (4 bits each and a maximum of 64 bits) (“SHORT_STRING”) and can indicate the product name and grade of industrial automation equipment.

[0088] Table 1

[0089]

[0090] The array of 158 identifier objects can be Figure 8 This is an example of one of several possible instances included in the firmware of the industrial automation equipment 86. For example, Tables 2 through 7 show example templates for status category 124, which may include multiple nested symbols corresponding to instances of various related templates. Status category 124 may correspond to the following symbols: health symbol 166; fault information symbol 160; alarm information symbol 162; disable symbol 164; inverter control symbol 168; and converter control symbol 172. For ease of reference, instance numbers (e.g., instances [0-n]) are omitted, and it is noted that for the array of object instances 158, the instance numbers may be similar for the other templates discussed above.

[0091] Table 2 shows an example template for the corresponding status that can be referenced by the health symbol 166. The template includes data of a data type with a Boolean value (1 bit) (“BOOL”). The data included in the template corresponds to “Fault”, “Alarm”, “Ready”, and “Owned”.

[0092] Fault data indicates any instance of the device at that time (e.g., Figure 1 None of the instances (corresponding to the nested components of the motor driver) are in a fault state. In the example where the motor driver is a device, it has no converter or inverter faults. Fault data can be an identification object, i.e., attribute 5 which informs about the fault state of all device instances. In some cases, bit 8 can indicate a minor recoverable fault, and bit 10 can indicate a serious recoverable fault.

[0093] Alarm data indicates any instance of the device at that time (e.g., Figure 8 None of the instances (corresponding to the nested components of the motor driver) are in an alarm state. In the example where the motor driver is the device, it has no converter or inverter active alarms or any user-configurable active alarms.

[0094] Readiness data indicates that the device is operational at that time and there is no fault. In the example of the motor driver as the device, it is fault-free and there are no start-up suppression conditions that would occur in the converter or inverter.

[0095] The "Owned" data indicates that the device was owned by the control system at that time. In the example of the motor driver as a device, the identifier object corresponding to the element of the owned data array can have attribute 5, which can notify each of the nested devices (e.g., the motor driver) of the ownership status of the parent device. The ownership data can use bit 0 to indicate that its status is "Owned".

[0096] Table 2

[0097]

[0098]

[0099] Table 3 shows an example template for a status fault information instance that can be referenced by fault information symbol 160. This template may include data of a data type with ASCII characters (8 bits each) (“STRING”). The data included in the template corresponds to the four most recently recorded faults. Any number of faults can be recorded in the status fault information template. An industrial automation control system 78 with industrial automation equipment 86 can perform additional recording operations that may render additional recordings at the device level meaningless or redundant. When a fault is recorded, a string may be associated with the storage of the relevant status fault information instance, indicating a fault code, sequence ID, status (e.g., active or inactive), international fault text (e.g., text describing the fault and supporting Unicode), instance number (or port number), and / or instance name (driver or option module name), etc. This information can change between recorded faults within the instance. When referenced, the fault string data corresponds to an “attribute packet.” When referenced, the attribute packet data structure can return a long string data type where each attribute of the event is separated by commas. Then, the attribute package can be parsed to separate each attribute from the attribute package, for example, by handling fault information through the owned control system.

[0100] Table 3

[0101]

[0102]

[0103] Table 4 shows an example template for a status alarm information instance that can be referenced by alarm information symbol 162. The template includes data of a data type with ASCII characters (8 bits each) (“STRING”). The data included in the template corresponds to the four most recently recorded alarms for the industrial automation equipment and / or for any of the nested devices within the equipment. Any number of alarms can be recorded in the status alarm information template. Control systems with industrial automation equipment can perform additional recording operations that may render additional recordings at the device level meaningless or redundant. When an alarm is recorded, a string can be associated with the storage of the relevant status.alarm information instance, indicating the alarm code, sequence ID, status (e.g., active or inactive), alarm type (e.g., 01 - value exceeds threshold for alarming or 02 - configuration disabled), international alarm text (e.g., text describing the alarm and supporting Unicode), instance number (or port number), and / or instance name (driver or option module name), etc. This information can change between recorded alarms within the instance. When referenced, the alarm string data corresponds to an “attribute packet.” The control system can then parse the referenced attribute package to access different alarm attributes separate from the attribute package. The sequence ID is a DINT (-2147483648 to 2147483647) that increments with each alarm generated and thus creates a unique number over a long period. This scheme allows the information system to distinguish a series of events. Other elements of the alarm message are available in the CIP alarm object (0x98 hexadecimal). The alarm message notifies the device of the last four alarms, where: alarm string 0 corresponds to the 1st most recent alarm, alarm string 1 corresponds to the 2nd most recent alarm, alarm string 2 corresponds to the 3rd most recent alarm, and alarm string 3 corresponds to the 4th most recent alarm.

[0104] Table 4

[0105]

[0106]

[0107] Table 5 shows an example nested template for prohibition status information that can be referenced by prohibition symbol 164. The template includes data of data type with ASCII characters (4 bits each) (“STRING”). The data included in the template corresponds to the last four prohibition descriptions for the industrial automation device 86 and / or any of the nested devices for the device. Any number of prohibition reasons can be recorded in the status prohibition template. In some cases, the prohibition description applies only to the industrial automation device 86. Faults or alarms do not constitute prohibition reasons, and the local processing circuitry of the industrial automation device 86 can generate a prohibition signal to prevent the drive from starting in response to a condition (e.g., a reason for prohibition as indicated by the prohibition reason data). The industrial automation control system 78 possessing the industrial automation device 86 can perform additional recording operations that may render additional recording at the device level meaningless or redundant. When recording a prohibition reason, the string can be associated with the storage of the relevant status prohibition template, which indicates a sequence ID, international text (e.g., text describing the prohibition reason and supporting Unicode), etc. This information can be changed between recorded prohibition strings in the instance. When referenced, the prohibition string data corresponds to an attribute package. The industrial automation control system 78 can then parse the referenced attribute package to access the different alarm attributes separate from the attribute package. The sequence ID is a DINT (-2147483648 to 2147483647) that increments with each alarm generated and thus creates a unique number over a long period. This allows the industrial automation control system 78 to distinguish between a range of events. The prohibition template can notify the device of the last four prohibition reasons, where: prohibition string 0 corresponds to the first most recent prohibition reason, prohibition string 1 corresponds to the second most recent prohibition reason, prohibition string 2 corresponds to the third most recent prohibition reason, and prohibition string 3 corresponds to the fourth most recent prohibition reason.

[0108] Table 5

[0109]

[0110] Industrial automation equipment 86 may include an inverter corresponding to one of the instances. The parent template for the inverter instance may include multiple subclass symbols referencing different nested templates. These subclasses may include an inverter control motor state nested template (e.g., Table 6) and a control mode nested template (Table 7).

[0111] Table 6 shows an example template for the state of the inverter controlling the motor, which can be referenced by inverter control symbol 168. The template includes data of a Boolean (1-bit) data type (“BOOL”). The data included in the template corresponds to “Run,” “Ready,” “High Speed,” “Active,” “Zero Speed,” “Enabled,” and any suitable data that can be included in the template. This could be an example of a template where the states included in the template data are based on states stored as part of an embedded device object 94. In the motor drive example, each of these states could correspond to a motor-side state. For other industrial automation equipment, these states could correspond to equipment load or downstream states.

[0112] Operating data indicates whether the motor-side inverter is modulating in response to a start or run command. This bit can be cleared in the following cases: drive stop, drive coast stop, drive push, and drive auto-tuning (bit 16). Ready data indicates that there is no start disable (bit 0). High-speed data indicates that the output frequency is within 1% of the speed reference value (bit 8). Active data indicates that the motor-side inverter is modulating (bit 1). Zero-speed data indicates that the motor-side inverter is operating at zero speed (within the zero-speed limit - bit 24). Enable data indicates that the enable input for the motor-side inverter is disabled or enabled (bit 29).

[0113] Table 6

[0114]

[0115]

[0116] Table 7 shows an example template for a state-of-the-art inverter control mode status instance that can be referenced by control mode symbol 170. This template includes data of a data type with ASCII characters (4 bits each) (“STRING”). Data included in nested templates may include motor data and active front-end (AFE) data. Motor data may describe the selected control mode being used by the drive to control the load (typically the motor). AFE data may describe the selected control mode being used by the active front-end (AFE).

[0117] Table 7

[0118]

[0119] Tables 8 through 11 illustrate examples of nested templates for runtime category 126 instances. Runtime category 126 (e.g., runtime template instance objects) may include a control symbol 174 corresponding to a template and a power symbol 176 corresponding to a nested template, the power symbol 176 being associated with an input symbol 178, an output symbol 180, and a DC bus symbol 182, each of which may be an instance of a nested template. Runtime category 126 may correspond to counters and measurements sampled during device operation.

[0120] Table 8 shows an example template for an instance of a runtime control template that can be referenced by control symbol 174. This template includes data of data types with actual values ​​(32 bits) (“REAL”) or Boolean values ​​(32 bits) (“BOOL(32)”). The data included in this template may include position reference, actual position, position error, speed reference, actual speed, speed error, acceleration reference, torque reference, torque step size, limit conditions, etc.

[0121] Table 8

[0122]

[0123] Table 9 shows example nested templates under the runtime power template (e.g., power symbol 176) that can be referenced by input symbol 178. For the example motor drive case, the nested template may include symbols corresponding to inputs received by the industrial automation device 86. Template instances may include data of a data type with actual values ​​(32 bits) (“REAL”). Data included in this nested template may include power, power factor, current, voltage, frequency, etc. Power data may indicate input power in kilowatts (kW). Power factor data may indicate the input power factor of the input power. Current data may indicate input current in amperes (A). Voltage data may indicate input voltage in volts (V). Frequency data may indicate the input frequency of power data, voltage data, current data, or any combination thereof, in hertz (Hz) or revolutions per minute (rpm).

[0124] Table 9

[0125]

[0126] Table 10 shows example nested templates under the runtime power template (e.g., power symbol 176) that can be referenced by output symbol 180. For the example motor drive case, the nested template may include symbols corresponding to the output from industrial automation device 86. Template instances may include data of a data type with actual values ​​(32 bits) (“REAL”). Data included in this nested template may include motor runtime data, power data, radiator temperature data, IGBT temperature data, output power factor data, output current data, output voltage data, speed error data, output torque data, slip frequency data, DC bus current data, DC bus voltage data, output frequency data, etc. Motor runtime data may indicate the total runtime (hours) elapsed by the motor. Power data may indicate the output power (kW). Radiator temperature data may indicate the radiator temperature in degrees Celsius (C) or degrees Fahrenheit (F). IGBT temperature data may indicate the IGBT temperature in C or F. Output power factor data may indicate the output power factor of the output signal from industrial automation device 86. Output current data indicates the output current from the industrial automation device 86 in amperes (A). Output voltage data indicates the output voltage from the industrial automation device 86 in volts (V). Speed ​​error data indicates the output voltage error associated with the voltage output and voltage setpoint of the industrial automation device 86 in Hz or rpm. Output torque data indicates the output torque associated with the industrial automation device 86, filtered as a percentage (%). Slip frequency data indicates the slip frequency of the output from the industrial automation device 86. DC bus current data indicates the estimated bus observer current associated with the industrial automation device 86 in amperes (A). DC bus voltage data indicates the voltage value transmitted via the DC bus of the industrial automation device 86. Output frequency data indicates the output frequency in Hz or rpm.

[0127] Table 10

[0128]

[0129]

[0130] Table 11 shows example nested templates under the runtime power template (e.g., power symbol 176) that can be referenced by DC bus symbol 182. For the example motor drive case, the nested template may include symbols corresponding to the DC bus operation of the industrial automation device 86. Template instances may include data of a data type with actual values ​​(32 bits) (“REAL”). Data included in this nested template may include DC bus current, DC bus voltage, etc. DC bus current data may indicate a bus observer current estimate in amperes associated with the motor drive. DC bus voltage data may indicate the voltage value of the voltage transmitted via the DC bus of the motor drive.

[0131] Table 11

[0132]

[0133] Tables 12 and 13 show examples of nested templates used for maintaining category 128 instances. Maintaining category 128 (e.g., maintaining template objects) may include the following sub-symbols corresponding to the nested templates: event information; and environment conditions.

[0134] Table 12 shows example nested templates under maintenance category 128 that can be referenced by environment condition object 184. The nested templates may include symbols for storing data corresponding to event information associated with a motor drive. Template instances may include ASCII characters (4 bits per character) where the maximum number of characters may be undefined (“STRING”). Data included in the event information template may include the last four predictive maintenance events for the device. Predictive maintenance events may indicate whether the remaining lifespan of a component has fallen below a user-configured threshold level. Each event information string is described by an attribute package. Maintenance event information stores event information about one or more previous predictive maintenance events, such as the last four predictive maintenance events for the device. In this case, event information string 0 corresponds to the first most recent predictive maintenance event, event information string 1 corresponds to the second most recent predictive maintenance event, event information string 2 corresponds to the third most recent predictive maintenance event, and event information string 3 corresponds to the fourth most recent predictive maintenance event. Event information string data may include sequence ID data, international text data (e.g., text describing previous maintenance events and supporting Unicode), part name data, sub-part number data, group name data, replacement catalog number data, location data, part remaining life data in hours, and group life threshold data in hours. Sequence ID data is a DINT (-2147483648 to 2147483647) that increments with each alarm generated and thus creates a unique number over a long period, allowing the control system to distinguish a range of events. International text data can describe predictive maintenance events and supports Unicode. Group name data may include a descriptive name for the part group. Part name data may include a descriptive name for the part. Sub-part number data can distinguish between parts when multiple parts are associated with a single identifier instance. Part remaining life data in hours can specify the remaining life level below which parts in the group take action to report predictive maintenance events. Location data can identify the location of the part within a product, device, or subsystem.

[0135] Table 12

[0136]

[0137]

[0138] Table 13 shows example nested templates under the maintenance templates that can be referenced by event information object 186. Nested templates may include symbols for storing data corresponding to environmental conditions associated with a motor drive. Template instances may include ASCII characters (4 bits per character) with a maximum character count of 64 (“SHORT_STRING”). Data included in the environmental conditions template may include enclosure rating and air pollutant data. Enclosure rating array elements may specify the enclosure IP (inlet protection) rating or enclosure type for the environment in which the product operates. This may be a product enclosure or an additional protective cabinet in which the product is installed. Types may include inlet protection (IP) types such as IP00-IP66, Type 1, Type 4X, or other suitable industrial environmental classifications. Air pollutant data may specify the severity level of air pollutants in the environment in which the product operates, such as G1, GX+, etc.

[0139] Table 13

[0140]

[0141] Table 14 shows an example of a template for a durability category 130 instance that can be referenced by electrical object 188. The template can be expanded after the commissioning of industrial automation equipment 86. Therefore, for durability category 130, after commissioning and installation, the template can become a nested template that includes references to additional instances.

[0142] Durability category 130 may include array elements referencing data indicating energy stored in kilowatt-hours (kWh), consumed energy in megawatt-hours (MWH) and kWh, Mtr at MWh, Rgn at MWh, Mtr at kWh, and Rgn at kWh. Each of these data may be of a data type with an actual value (32 bits).

[0143] Table 14

[0144]

[0145] Figure 6 and Figure 7 An example data structure for an instance of class 122 is shown. Figure 6 This is a block diagram of a template instance corresponding to the data port of a conventional device (e.g., a motor driver without symbolic data access capabilities). In fact, Figure 6An array 158 of identifier object instances is shown, which points to the communication port 200 of the conventional motor driver 202 to indicate the relationship between the array elements of the corresponding template data and the communication port 200. Some systems may include conventional devices that do not have the ability to store data in template data via references to symbol 144 and template 132.

[0146] Symbolic data manipulation is also compatible with these legacy devices because the industrial automation control system 78 (or the local control system of the legacy device) can access the mapping between the legacy device type, attribute, or data type associated with the target data associated with the legacy device and the class, instance, and attribute combination of the legacy device to which the industrial automation control system 78 can access the target data. The industrial automation control system 78 can use a generic mapping referenced when accessing any legacy device within the industrial automation system 46 of the same type, even if the legacy device itself does not change how it processes its associated data.

[0147] The array element number x of the identifier object instance array 158, identifier.instance[x], is the identifier instance number. For example, a motor driver may include several optional modules and communication ports for communicating with the optional modules. Identifier.instance[1] may reference motor driver identification information, and identifier.instance[2 to 15] may reference the identifiers of other optional modules and corresponding communication ports 200. In the case of 14 ports, a conventional motor driver as the "master" may correspond to template identifier.instance[0] and ports 1 to 14 may be located at template identifier.instance[1-14]. The corresponding identifier instance array element (e.g., identifier.instance[x]) may enable subscription to one or more communication ports 200 associated with the conventional motor driver, and said one or more communication ports 200 may not correspond to additional templates or objects. This structure allows the control system to send data to or receive data from the communication ports 200 with a less complex routing structure compared to having to program each of the communication ports 200 individually to the control system. By using template object structures (e.g., arrays of template object instances), errors in control system programming can be reduced, and overall routing between the industrial automation control system 78 and the consuming end devices (e.g., devices coupled to one or more of the communication ports 200) can be reduced or simplified, thereby improving communication efficiency.

[0148] Figure 7This is a block diagram of template object instance 204 corresponding to the array of identifier object instances 158. Template object instance 204 may be a template object instance corresponding to a template for a motor driver with symbolic access capability. Some of the identifier object instance arrays 158 may reference one or more nested template instances. Identifier object instance array 158 may be a user-defined template that defines a collection of data variables as a common data structure. Here, identifier object instance array 158 may be a template instance corresponding to one or more symbols referencing nested template instances for one or more drivers (e.g., driver instances 1 to n corresponding to object 206). When a template object instance references a nested template instance and / or formats data, the resulting instance is also nested and / or pre-formatted. In this way, each instance of a template can describe one or more unique data types, and each instance of a template can include one or more nested templates (e.g., sub-members) and the corresponding data types of one or more nested templates.

[0149] In this motor driver example, the identifier.instance[0] array element 208 may be reserved for class attributes, and the identifier.instance[1-n] array elements 210 may point to other instances nested under the motor driver (e.g., symbol object instance 210A referencing another template instance "Driver: Instance 1"). Each symbol object instance may self-identify which subcomponent of the motor driver it includes corresponding data for. The identifier object instance array 158 may include some of the same information available in the CIP identifier object (0x01 hexadecimal). The identifier object instance array 158 may be stored in the firmware of the motor driver.

[0150] In some cases, the identifier object instance array 158 can be an array where each array element (e.g., the corresponding array element of the identifier.instance[1-n] array element 210) represents an array of different products available via the same IP address of a parent device, where the parent device is a parent motor driver. The number of available products will depend on the implementation of each device. For example, a type of motor driver may include a large number of internal devices, and therefore a large number of array elements in the identifier object instance array 158 can be used to represent the devices. The maximum number n of available instances can correspond to one of the class attributes of the CIP identifier object.

[0151] Because symbols 144 and templates 132 can maintain a consistent format across devices in the industrial automation system 46, the industrial automation device 86 may lack prior knowledge of individual product parameters or object models, yet it can still be self-initiated for commissioning. In effect, these systems and methods can provide a common interface across similar devices (e.g., driver-to-driver, smart device-to-smart device). Symbols 144 and templates 132 can provide operators with contextualized and aggregated data reports, where classes, instances, and attribute combinations do not need to be associated with parameter identifiers to make the data understandable, but can be translated into a connected enterprise context. These systems and methods can be synchronized with system time, and timestamps can be added to the data when it is generated at the industrial automation device 86 or when it is received by an internally deployed gateway device 80 or an externally deployed edge gateway device 82. Furthermore, the nature of template 132 and the storage of data within instances of template 132 can, for example, contextualize each dataset by using concise language data labels different from those for classes, instances, attribute combinations, etc., based on the data's location within template 132.

[0152] To further describe the self-starting commissioning process in detail, when a new industrial automation device 86 is installed into the industrial automation system 46 and the communication network, the industrial automation device 86 can use its stored template data to register itself with the industrial automation control system 78. Alternatively, in some cases, the industrial automation control system 78 can detect changes on the communication network and perform industrial automation device discovery to poll devices on the network to obtain template data from the newly installed industrial automation device 86. In some systems, configuration files describing template object instances can be downloaded for use within the device. The newly installed industrial automation device 86 can self-report or respond to polling using device identifiers such as serial numbers and / or device types. The newly installed industrial automation device 86 can report this data to the industrial automation control system 78 as a combination of template object instances and symbol object instances, enabling access to the template data portion corresponding to the identifier (e.g., a symbol object instance backreferences a portion of the template data stored on the device). In effect, the industrial automation control system 78 can identify the newly installed industrial automation device 86 and, after identification, read template data from the newly installed industrial automation device 86 based on the template object instances. The industrial automation control system 78 can understand the data type / data structure provided by the device based on information included in a template corresponding to a device identifier and / or template object instance, the template being stored in device data template 92 in memory 88. From there, the industrial automation control system 78 can access symbol object instances and / or template object instances to receive template data (e.g., templated data) from a newly installed industrial automation device 86. In practice, the industrial automation control system 78 can receive device identifier data and can retrieve template object instances from the device and store them in storage (e.g., the local memory of the industrial automation control system 78, memory 88), wherein the industrial automation control system 78 can periodically update this data stored in storage over time to maintain the status and information corresponding to the device identified via the device identifier data. The industrial automation control system 78 can push updated template object instances to the device to cause the device to update its operation. Template data can be templated in data tables, data structures, and / or datasets and parsed based on information of template object instances maintained on the industrial automation control system 78, the template data having a data type and / or structure corresponding to the template in device data template 92 stored in memory 88. As part of the symbol access operation, a symbol object instance can be used with a template object instance to directly reference and access template data stored on one or more of the industrial automation equipment 86.

[0153] Based on the foregoing, Figure 8This is a flowchart of a process 222 for operating an industrial automation control system 78 to register a newly installed industrial automation device 86, for example, through a device replacement operation or a new installation operation. Process 222 is described as being performed by the industrial automation control system 78, and it should be understood that substantially similar operations can be performed by a local control system associated with the industrial automation control system 78, such as another control system associated with the industrial automation control system 78. These operations can be performed in response to the processing circuitry of the industrial automation control system 78 executing instructions stored in a tangible, non-transitory computer-readable medium, such as the storage of the industrial automation control system 78 or another suitable storage. Furthermore, the operations of process 222 are shown in a specific order; however, some operations may be performed in a different order than presented or may be omitted entirely.

[0154] At block 224, the industrial automation control system 78 can receive a device template object instance from a new industrial automation device 86 (e.g., a new component). The template object instance can represent a dataset stored in a storage component accessible to the industrial automation device 86. Symbolic object instances associated with the industrial automation device 86 can be categorized relative to one or more categories, including the identification of the industrial automation device, the status of the industrial automation device, the operating time status of the industrial automation device, the maintenance status associated with the industrial automation device, the durability information of the industrial automation device, or any combination thereof, such as at least referring to… Figure 3 As described above, a symbol object instance can actually correspond to a device type, device identifier, etc. The symbol object instance itself does not need to be categorized; instead, it inherits the categorization from its associated template object instance, which can correspond to various categories.

[0155] The new industrial automation device 86 can automatically transmit device template object instances (e.g., template object instances associated with the new industrial automation device 86) after being powered on and connected to the communication network used by the industrial automation control system 78. In practice, the newly installed industrial automation device 86 can report this data as a combination of template object instances and symbol object instances to the industrial automation control system 78, enabling access to the template data portion corresponding to the identifier (e.g., a symbol object instance back-references a portion of the template data stored on the device). Device template object instances can be transmitted by packetizing and routing data broadcast via the communication network to the industrial automation control system 78 and / or via other symbol data communication methods. In other cases, the industrial automation control system 78 can detect changes in the communication network and, in response to the detected changes, transmit signals to query the industrial automation device for device template object instances.

[0156] At block 226, the industrial automation control system 78 can use a first symbol object instance based on a device template object instance to identify the type of the industrial automation device 86. For example, when referenced, the device symbol instance can directly convey the device type, or it can provide an alphanumeric or numeric code to match the device type. The alphanumeric or numeric code can be a serial number for a new industrial automation device 86, a code to be converted or mapped to a certain type of device, etc.

[0157] At block 228, the industrial automation control system 78 can identify one or more nested components for a new industrial automation device 86. The type of the new industrial automation device 86 can be used to reference a template for the new industrial automation device 86, and this template can include indications of one or more nested components. The template corresponding to the new industrial automation device 86 can be accessed before any sensing data is obtained at the new industrial automation device 86, and therefore can be used to register the new industrial automation device 86 to the industrial automation control system 78 before performing operations with the new industrial automation device 86. Template data accessed based on the template can include one or more template data associated with one or more nested components (e.g., sub-devices, sub-components) communicatively coupled to the industrial automation device 86 and represented as nested templates in the template. In some cases, the new industrial automation device 86 self-reports one or more nested components via device symbol object instances, because symbols can reference template object instances. For example, a device symbol object instance can refer to... Figure 4 A template object instance like the one in the example, containing four nested components.

[0158] At block 230, the industrial automation control system 78 can receive template object instances from one or more nested components based on template object instances that access the new industrial automation device 86 and symbol object instances of each nested component. The template object instance corresponding to each nested component can be accessed via a corresponding reference to the device symbol object instance corresponding to the nested template object instance. In some cases, the industrial automation control system 78 can directly access the template object instance from one or more nested components. The template object instance can contain the data discussed above, for example in... Figure 5 In the discussion.

[0159] Based on the information from blocks 226 to 230, the industrial automation control system 78 can generate template object instances corresponding to the components and structures of the industrial automation equipment 86. These template object instances may include nested template object instances for each of the nested components identified at block 228. The template object instances may correspond to template data including one or more instantaneous values ​​stored in the storage components of the industrial automation equipment 86. Each of the template object instances associated with the industrial automation equipment 86 can be used by another device to parse template data received from the industrial automation equipment 86, as the template object instance indicates the type, format, and other information about the template data relative to the array elements of both. The template object instances may maintain information about the template data and based on one or more categories (e.g., ...) within the array elements. Figure 3 The structure of references to symbolic object instances (categories 122 to 130).

[0160] At block 232, the industrial automation control system 78 may store template object instances of the industrial automation equipment 86 and / or template data corresponding to the template object instances in memory 88. The industrial automation control system 78 may store the template data in a data repository, such as a master product data repository 90. Storing template data may include template data from the data repository along with other datasets. The stored datasets may be stored as public data exposed to other industrial automation equipment, and each of the industrial automation equipment may use the template data to communicate with additional industrial automation equipment of the same type as the industrial automation equipment 86. Context data associated with the template data may be referenced when the template data is stored in memory 88. In some cases, the industrial automation control system 78 may change how the template data is stored based on context, for example, by storing data about similar units, similar types of equipment, similar nested parts, etc., together in memory 88. Storing template object instances and template-associated data in memory 88 allows other devices, such as an in-house gateway device 80 and / or an externally deployed edge gateway device 82, to access the template data based on the corresponding template object instance.

[0161] At block 234, the industrial automation control system 78 can generate and send control signals to perform control actions based on template data and template object instances. These control actions may correspond to operational adjustments of the new industrial automation equipment 86, initial operations of the new industrial automation equipment 86, etc. The control signals may be appropriate signals used to cause the new industrial automation equipment 86 to operate in a manner that enables operational adjustments or initial operations. In some cases, the industrial automation control system 78 publishes data to the template data of the new industrial automation equipment 86 via symbolic data operations, which reference a combination of template object instances and symbolic object instances for that data. After being updated with the published data, the template data can be read by one or more components of the new industrial automation equipment 86 and / or its local control system to implement the control actions.

[0162] For example, a template object instance corresponding to status category 124 may include information corresponding to health data (e.g., corresponding to a health symbol 166 object instance) and alarm data (e.g., corresponding to an alarm information symbol 162 object instance). When template data is accessed, the information from the template object instance can enable the parsing of the template data. For example, template data may include health data and alarm information from the same dataset. Devices such as industrial automation control system 78 can interpret and process template data based on template object instances. In this way, health data determined by industrial automation control system 78 using the same dataset indicates that industrial automation equipment 86 is operating within the normal range, but alarm information from the same template data may indicate a warning alarm. A warning alarm may be unrelated to health data outside the expected or target range. Nevertheless, template data can provide both types of data to allow control actions to be implemented to eliminate or address warning alarms (e.g., adjusting the operation of industrial automation equipment 86 to correct warning alarms based on alarm data), while considering the impact on health data to keep health data within the expected range. Control actions can be implemented via control signals or via updated data published to industrial automation equipment 86. In some cases, control actions can be implemented by accessing template object instances and symbol object instances to publish specific target data to a portion of the template data without sending the larger portion of the template data back to the industrial automation equipment.

[0163] In some cases, the industrial automation control system 78 may generate and send control signals based on additional template data received from the industrial automation device 86, for example, after the industrial automation device 86 is registered to the industrial automation control system 78 and / or after block 232. After receiving at least some of the additional template data, the industrial automation control system 78 may store the additional template data in an additional storage component, such as in memory 88 and / or a data repository, to replace the original template data. The industrial automation control system 78 may determine adjustments to the operation of the industrial automation device 86 based on the additional template data. For example, the industrial automation control system 78 may determine the adjustment based on a difference between the additional template data and the original template data exceeding or surpassing a threshold. After determining the adjustment, the industrial automation control system 78 may send additional control signals to the industrial automation device 86 or issue updated data to implement the adjustments determined based on the additional template data.

[0164] Based on the foregoing, industrial automation equipment 86 (e.g., new equipment, existing equipment) may include components that generate data such as condition data and / or sensed data. The industrial automation equipment 86 that receives such generated data can store the data in its template data via symbolic object instances for later access. Figure 8 The new industrial automation device 86 can wait until it is registered with the industrial automation control system 78 before storing the generated data, or in some cases, it can record the data into template data as part of a traceable data recording operation via a symbolic object instance. In practice, the industrial automation device 86 may have a data source (e.g., a sensor) already connected to (e.g., referencing) its symbolic object instance before requesting data from client tools such as gateways (e.g., on-premises gateway device 80, externally deployed edge gateway device 82) and / or the industrial automation control system 78. The industrial automation device 86 can know where to place the data from the data source in the template data based on the structure of the template object instance, which represents the aggregation category corresponding to the data from the data source (e.g., whether the data corresponds to an identifier, durability, condition, etc.). Furthermore, some industrial automation devices 86 can generate contextual data for storage with the data or for adjusting the way data is stored, e.g., within the template object instance and / or within the template data. Gateways (e.g., internally deployed gateway device 80, externally deployed edge gateway device 82) and / or industrial automation control systems 78 can use context data provided by industrial automation devices 86 to determine relationships or to perform monitoring operations, control adjustments, etc., based on data accessed in industrial automation devices 86 to discover relationships.

[0165] To explain in detail, Figure 9This is a flowchart of a process 246 for operating an industrial automation device 86 to generate template data based on data from sensors, including contextual data. Process 246 is described as being performed by the industrial automation device 86, and it should be understood that substantially similar operations can be performed by a local control system associated with the industrial automation device 86. These operations can be performed in response to the processing circuitry of the industrial automation device 86 executing instructions stored in a tangible, non-transitory computer-readable medium, such as the storage of the industrial automation device 86 or another suitable storage. Furthermore, the operations of process 246 are shown in a specific order; however, some operations may be performed in a different order or omitted entirely. Specific voltage and current values ​​may be described herein, but it should be understood that these are example values ​​and ranges that can be adjusted for a particular system and implementation.

[0166] At block 248, the industrial automation device 86 can receive instructions to acquire sensor data, such as data generated by sensors during sensing operations. The sensor can be any suitable sensor for an industrial automation system, such as a pressure sensor, voltage sensor, current sensor, temperature sensor, motion sensor, image sensor (e.g., a camera), infrared sensor, audio sensor, etc. The instructions can be received from a control system, such as the industrial automation control system 78 of the industrial automation device 86, and / or from a local device, such as the local control system of the industrial automation device 86, which coordinates the sensing operations of the industrial automation device 86. Sometimes, instructions can be generated in response to configuration applied by the local control system of the industrial automation device 86 and / or in response to power-on of the industrial automation device 86.

[0167] At block 250, based on received instructions, the industrial automation device 86 can identify the data source of sensor data and the symbol object instance corresponding to the sensor data, the data source, or both. The identified symbol object instance is referenced to store the data in template data for subsequent access by other devices and / or reporting to the industrial automation control system 78. When a data source is associated with a symbol object instance, the data source can indicate the symbol object instance to be used. The industrial automation device 86 can reference memory 88 and / or its own internal storage when identifying the symbol object instance corresponding to the sensor data. Different sensor data can correspond to different categories of symbols and different relative positions within different template data, and therefore to different template object instances and different symbol object instances.

[0168] At block 252, the industrial automation device 86 can receive sensor data from the data source identified in the instructions. The industrial automation device 86 can transmit control signals to trigger the transmission of sensor data from the data source. In practice, in response to the instructions and after determining the symbol object instance to be associated with the sensor data, the industrial automation device 86 can operate the sensor to perform a sensing operation to generate sensor data and / or can receive data from a sensor performing a continuous sensing operation. The generated sensor data can be of various data types and correspond to various units, such as volts (V), amperes (A), pounds per square inch (PSI), degrees Fahrenheit (F), etc. Different data types and units can be associated within a shared template structure used for the industrial automation device 86.

[0169] At block 254, the industrial automation device 86 can generate context data based on sensor data. The context data can be metadata for the sensed data, along with concise language data tags such as classes, instances, and attribute combinations. In some cases, the context data includes tags describing the sensor, timestamps associated with each of one or more instantaneous values, the relative position of each of one or more instantaneous values ​​within the template instance data, or any combination thereof. The industrial automation device 86 can adjust its operation, store the context data along with the sensor data or with information from the template object instance, and / or adjust how the sensor data is stored within the template object instance based on the context data. In some implementations, the position of data within the data template can be changed based on the context data. For example, sensed data generated from the sensing circuitry of a nested device can be nested or otherwise structurally associated with the nested device within the template data of the parent device.

[0170] At block 256, industrial automation equipment 86 can generate template data based on sensor data and context data. The template data can be structurally similar to a template object instance. The template data may include sensor data and context data. In some cases, the template data can be modified or adjusted based on sensor data and / or context data.

[0171] At block 258, the industrial automation device 86 may store template data and / or context data in local storage. Then, the industrial automation device 86 may store sensor data using the corresponding symbol object instance into the template data. If template data for the sensor data and / or data source already exists in local storage, the industrial automation device 86 may store the sensor data in a manner that overwrites previous data stored in the template data. When a pre-existing template instance exists, the industrial automation device 86 may not generate template data at block 256 and may store the data on the pre-existing template data.

[0172] In some cases, the industrial automation control system 78 can reference template object instances generated by the industrial automation equipment 86 and determine adjustments to the operation of the industrial automation equipment 86 based on template data represented by the template object instances. To implement adjustments to the operation, the industrial automation control system 78 can use the industrial automation equipment 86 to process and repackage instructions, such as control signals, that trigger the adjustments using template object instances and symbolic object instances (e.g., data structures that can be implemented via symbolic data methods).

[0173] To explain in detail, Figure 10 This is a flowchart of a process 270 used to operate an industrial automation control system 78 to adjust the operation of an industrial automation device 86 based on template data. Process 270 is described as being performed by the industrial automation control system 78, and it should be understood that generally similar operations can be performed by a local control system associated with the industrial automation control system 78. These operations can be performed in response to the processing circuitry of the industrial automation control system 78 executing instructions stored in a tangible, non-transitory computer-readable medium, such as the storage of the industrial automation control system 78 or another suitable storage. Furthermore, the operations of process 270 are shown in a specific order; however, some operations may be performed in a different order or omitted entirely. Specific voltage and current values ​​may be described herein, but it should be understood that these are example values ​​and ranges that can be adjusted for a particular system and implementation.

[0174] At block 272, the industrial automation control system 78 can receive requests to adjust the operation of the industrial automation equipment 86. These requests can be received from an internally deployed gateway device 80, an externally deployed edge gateway device 82, or another industrial automation device 86, etc. For example, the internally deployed gateway device 80 can receive requests from a software application 96 running on an internally deployed computing device 74.

[0175] At block 274, the industrial automation control system 78 can determine symbol object instances associated with the operation of the industrial automation equipment 86. Within a template instance of the industrial automation equipment 86, different symbol object instances can be read by components of the industrial automation equipment 86 during operation. For example, the local control system of the industrial automation equipment 86 can read frequency symbol object instances that reference data populated by the industrial automation control system 78 to determine at what frequency a fan, motor driver, or other component of the industrial automation equipment 86 operates.

[0176] At block 276, based on the template instance, the industrial automation control system 78 can generate data for adjusting the operation of the device according to the value accessed based on the symbol object instance. Here, the industrial automation control system 78 can repackage the request to adjust the operation into a format that can be implemented by the industrial automation device 86. The industrial automation control system 78 can modify the data by referencing the symbol object instance to replace the existing data value referenced by the symbol object instance with the newly generated value. At block 278, the industrial automation control system 78 can transmit the generated data to the industrial automation device 86 for storage based on the symbol object instance and the template instance. For example, the industrial automation device 86 can use fewer lookup operations to store the generated data at the storage location corresponding to "template instance.symbol object instance" to change the location where the generated data is to be stored, which can reduce the number of computing resources used to implement the adjustment for the lookup operation. After receiving the generated data, symbol object instance, and template instance, the industrial automation device 86 can adjust the operation based on the changed data.

[0177] In some implementations, accessing template instances via on-premises gateway device 80 to an externally deployed edge gateway device 82 may involve instantiating a client on the on-premises gateway device 80. Using a client can improve data exchange between industrial automation device 86 and the externally deployed edge gateway device 82. For example, the client may enable the externally deployed edge gateway device 82 to directly subscribe to information provided by or stored within the industrial automation device 86. The externally deployed edge gateway device 82 may create a client on the on-premises gateway device 80 to access stored data from template instances stored within the industrial automation device.

[0178] To explain in detail, Figure 11 This is a diagram of the graphical user interface (GUI) corresponding to the client. Various industrial automation devices 86 (e.g., standard devices, connected devices, intelligent devices) can expose data based on symbol object instances and template object instances, enabling internally deployed gateway devices 80 and / or externally deployed edge gateway devices 82 to view data such as... Figure 11The public data 290 is exposed across a portfolio as described in the GUI. In some implementations, the public data 290 can be exposed according to a device data model, which may include template object instances representing information categories such as identification, status, uptime, maintenance, and durability. By storing data in this format, the local controller within the device may not need other devices connected to the on-premises gateway device 80 or the externally deployed edge gateway device 82 to access or view the data stored in the device. Furthermore, a device seeking or requesting the public data 290 from the device storing the public data 290 does not need prior knowledge of individual product parameters or object instance models. Instead, the public data 290 (e.g., exposed symbol object instances and template object instances) can be viewable by the respective device. Therefore, the device's namespace can be associated with namespaces used by other devices.

[0179] The GUI illustrates the cell hierarchy (e.g., “Layer 1” indication 292), where different symbols are grouped based on context data, each symbol relating to the same layer of cell 50. Layer 1 includes two industrial automation devices 86—a first motor driver (e.g., symbol object instance 294 “PF525”) and a second motor driver (e.g., symbol object instance 296 “PF755T”). Both motor drivers are represented as corresponding symbol object instances corresponding to nested template object instances. However, the template and symbol used to represent the motor drivers are identical and can be implemented as separate instances to represent different motor drivers. For example, symbol 298 corresponds to data associated with "diagnostic items" and is implemented as two symbol object instances, each symbol object instance 300 referencing a nested template object instance representing data associated with determining "online" status, such as "motor status" symbol object instance 302, symbol object instance 304 referencing the "PM HS fan" nested template instance (including its own symbol object instance 306), and symbol object instance 308 referencing the "PM M1IGBT" nested template instance (including its own symbol object instance 310). The industrial automation control system 78 can associate the first motor driver (e.g., symbol object instance 294 "PF525") and the second motor driver (e.g., symbol object instance 296 "PF755T") with the same device type, which can cause the same template to be referenced when registering the device to the industrial automation system. In this GUI, the "motor status" symbol object instance 302 (e.g., symbol object instance 294 "PF525") of the first motor driver is selected and different data options are displayed in the graphical display area 312. The value of the "Motor Status" symbol object instance 302 can be changed based on one or more other report symbol statuses, for example, by updating the report value over time by the local control system of industrial automation equipment 86 (or layer 1).

[0180] Figure 12This is a graphical representation of example symbolic data structures, such as example template object instance 320 corresponding to template 132, example symbol object instance 322, example template data 324 (e.g., example template dataset), and example addressing path 326 (IOI). It should be noted that IOIs may be used for performance reasons (e.g., accessing stored data via IOI may sometimes consume fewer resources or power when processing requests). Reference arrow 328 graphically indicates within template object instance 320 how template object instance 320 can define the formatting of symbolic data referencing specific values ​​of example template data 324. Template object instance 320 may reflect the structure of template 132. For example, as described above, when a device (e.g., via “DataStructure.DataMember1”) references symbol object instance 322 “DataMember1” and template object instance 320 “DataStructure”, the device can access data value 330 from template object instance 320 (e.g., read, overwrite) and determine the format of data value 330 as UINT, as well as determine the relative position of data value 330 within template data 324, which data value 330 can be stored in device-accessible storage.

[0181] Symbolic data operations may include the ability to encode one or more addressing paths, each of which may be an internal object identifier (IOI) path to a corresponding object. For example, addressing path 326 may be encoded and is an IOI path to symbolic object instance 322. Addressing paths can be logically manipulated to identify the data table represented by the symbolic object instance to provide more efficient access operations. Corresponding addressing paths and corresponding symbolic object instances may represent the same data while allowing access in different ways to assist with better performance requirements. For example, both addressing path 326 and symbolic object instance 322 may reference data value 330.

[0182] Based on the foregoing, an example implementation includes a motor drive, which can be a relatively small device (e.g., relatively low horsepower) or a very large device (e.g., relatively high horsepower) with many different components inside the motor drive. The motor drive may include components such as capacitors and fans. These components may individually require time-out maintenance and can therefore be advantageously monitored individually via symbol / template data access technology. Symbol / template data access technology can be used to create templates for each identifiable component within a product. Thus, in a particular product, different symbol object instances can correspond to the motor drive, motor-side power output, line-side power input, one or more capacitors, one or more fans, and any additional plug-in options for the motor drive. Different inputs, outputs, and components of the motor drive, as well as different symbol object instances of the motor drive as a whole, can allow for individual component electronic identification and monitoring. The industrial automation control system 78 individually identifies and monitors the motor drive, the motor drive-related inputs and outputs, and components within or associated with the industrial automation control system 78 can provide personalized maintenance alerts, individual performance alerts, individual control commands, etc., based on symbol object instances to more specifically tailor recommendations, alerts, or actions to various components at different levels. This can improve the operation of industrial automation systems by at least reducing the total downtime for maintenance operations due to customized recommendations.

[0183] In some cases, industrial automation equipment 86, upon initial power-on and communicatively coupled to industrial automation control system 78 via a communication network, reports its nested devices without further intervention from the control system. Industrial automation equipment 86 can achieve this by reporting template object instances pre-loaded into industrial automation equipment 86. Sometimes, industrial automation control system 78 may receive a command to power on industrial automation equipment 86, and industrial automation equipment 86 reports nested devices in response to power-on. Some industrial automation equipment 86 may not automatically report nested devices. These devices may report nested devices in response to a reporting command or control signal from industrial automation control system 78. In any case, industrial automation control system 78 registers the nested devices of industrial automation equipment 86 in response to an indication of nested devices received from industrial automation equipment 86. Sometimes, industrial automation control system 78 may initiate the registration of industrial automation equipment 86 in response to receiving an indication of nested devices via reporting.

[0184] Internal Deployment of Gateway Device Systems and Methods

[0185] As described above, the on-premises gateway device 80 can access template data stored in the industrial automation system 46, which represents one or more on-premises computing devices (such as on-premises computing device 74). For further details, Figure 13 An example system 72 is shown, comprising an internally deployed computing device 74, an externally deployed computing device 76, and an industrial automation control system 78. In some embodiments, the internally deployed gateway device 80 and the externally deployed gateway device 82 may be directly communicatively coupled to each other. The internally deployed gateway device 80 may also communicate with devices within the industrial automation system 46 on the internal network of the industrial automation system 46. The internal network of the industrial automation system 46 may be included in the internally deployed computing domain 98 and may be outside the external computing domain 100.

[0186] An internally deployed computing device 74 can provide one or more software applications 96. Software applications 96 may include monitoring software, data processing software, and such as operations technology (OT) software. OT software can monitor and detect when the processes of the industrial automation system 46 change, and in response to detected changes, can cause the industrial automation control system 78 to adjust one or more operations to respond to the changes. Software applications 96 analyze the operation of the industrial automation system 46 to promote increased output, reduced costs (e.g., reducing downtime by improving reliability and thus reducing costs associated with downtime), improved product quality, etc. The analysis performed by the software applications 96 can occur in real time in response to real-time assessment of operating conditions, in response to traceable operating conditions, or in response to inputs (such as from users) on a defined periodic basis. In some cases, one or more software applications 96 can monitor equipment and provide updated information on the current machine performance of the industrial automation system 46. For example, historical data software can be included in the software applications 96 and can automatically identify, collect, and store real-time process and production information, including data from legacy systems. Software application 96 allows operators to interact with and view data from industrial automation system 46 via a graphical user interface. Therefore, the on-premises gateway device 80 can convert template data into a data structure suitable for visualization on a graphical user interface.

[0187] Externally deployed computing device 76 can provide one or more software applications corresponding to SaaS / FaaS platform 108. SaaS / FaaS platform 108 can perform historical trend services off-site based on data generated by industrial automation system 46. SaaS / FaaS platform 108 can correspond to cloud computing and / or server-based computing operations. SaaS / FaaS platform 108 can be shared among other industrial automation systems 46. Although shared, data corresponding to one industrial automation system 46 can be maintained and provided separately from data corresponding to another industrial automation system 46. Externally deployed computing device 76 can sometimes use two datasets to compare processes, such as determining the average or expected performance of a type of process. In response to data analysis by externally deployed computing device 76, externally deployed computing device 76 can determine adjustments implemented at industrial automation device 86 and can generate control signals transmitted to externally deployed gateway device 82 for conversion and transmission to downstream devices of the industrial automation system (such as internally deployed gateway device 80 and / or industrial automation control system 78). Externally deployed gateway device 82 and / or internally deployed gateway device 80 can convert control signals into protocol signals compatible with templates and symbols (e.g., symbol data manipulation).

[0188] The on-premises gateway device 80 and / or the externally deployed gateway device 82 may include one or more clients 360 (client 360A, client 360B). Clients 360 may be hardware or software components, or a combination of both, that access a service available to a server as part of a client-server model of a computer network. Clients 360 may send requests to another hardware or software component that accesses a service available to a server, which may be located outside the on-premises gateway device 80 and / or the externally deployed gateway device 82. Clients 360 may automatically publish data to connected devices and / or services. Thus, one of the clients 360 may request data from other clients 360 and, upon receiving the requested data, may publish the requested data to downstream systems via the client 360 connection for corresponding future access by the downstream systems. For example, client 360B may request template data from client 360A and may convert the template data into a data structure usable by the externally deployed computing device 76.

[0189] Data associated with various device-level systems can be accessed by other components of the industrial automation system 46 (e.g., Linx Enterprise) via the on-premises gateway device 80. The on-premises gateway device 80 can locally connect to one or more industrial automation devices 86, one or more control systems, or a combination of both, and communicate with the various devices using messages and / or control signals conforming to the Common Industrial Protocol (CIP) or other suitable OT communication protocols. Instead of waiting to receive identification information about each device and a mapping of request data for each device, the on-premises gateway device 80 can access symbols stored in the industrial automation devices to process read requests.

[0190] Based on the foregoing, Figure 14 This is a flowchart of a process 370 for operating an on-premises gateway device 80 to perform data access operations. Although process 370 is described as being performed by the on-premises gateway device 80, these operations can be performed in response to the processing circuitry of the on-premises gateway device 80 executing instructions stored in a tangible, non-transitory, computer-readable medium (such as the storage of the on-premises gateway device 80 or another suitable storage). Furthermore, the operations of process 370 are shown in a specific order; however, some operations within the process may be performed in a different order or omitted entirely.

[0191] At block 372, the on-premises gateway device 80 can receive requests to access data from the industrial automation device 86. Requests can originate from the control system of the on-premises gateway device 80, the control system of the on-premises computing device 74, connected applications (e.g., software application 96, SaaS / FaaS platform 108), or from external devices (such as external computing device 76). The device generating the request can be "unseen" of symbolic data operations on the industrial automation system 46. Therefore, the on-premises gateway device 80 can operate at the boundary between symbolic and non-symbolic data access. The on-premises gateway device 80 can process requests and coordinate the acquisition of the desired data indicated by the request.

[0192] At block 374, the on-premises gateway device 80 can identify one or more industrial automation devices 86 based on a request received at block 372. The request may indicate a subset of industrial automation devices 86, the type of industrial automation device 86, etc. That is, the request may include an address, an indication of a target component, etc., within the data packet providing the request. In some embodiments, the request may include indications of conditions or parameters that can be used to query a list of industrial automation devices 86 accessible via the on-premises gateway 80 and stored in storage 88. The query may be based on information included or indicated by the request. The on-premises gateway device 80 may query storage 88 to determine one or more industrial automation devices 86 identified via a request for relevant data as desired. The query may result in query results being generated. Based on the query results, the on-premises gateway device 80 can identify one or more industrial automation devices 86 based on the request. For example, the request may specify that data is desired for “all motor drives”, data is desired for “current data from unit 2 circuit breaker”, etc., as query conditions. A request indicating "all motor drives" can cause the in-house gateway device 80 to search the storage 88 for indications of each motor drive in the industrial automation system 46. A request indicating "current data from the circuit breaker in unit 2" can cause the in-house gateway device 80 to search the storage 88 for indications of each circuit breaker physically located in the unit 50 corresponding to "unit 2".

[0193] At block 376, the on-premises gateway device 80 can determine template data associated with the request received at block 372. The template data may be data stored by a device identified at block 374 (such as a device identified based on a query to storage 88 using search terms indicated by the request). In some implementations, the on-premises gateway device 80 can identify or determine the template data associated with the request based on information provided in the request itself. For example, the template data may be specifically invoked by name or determined based on input to a data field corresponding to the request (e.g., via field selection or indication of input options with any number of setting options).

[0194] However, if the request does not specify template data, the on-premises gateway device 80 can access a mapping of detailed relationships between several devices, device types, etc., and corresponding template datasets. That is, the request received at block 372 may include template data, but if the device sending the request is unfamiliar with or incompatible with symbol-based data operations, the request received at block 372 may also lack template data. In this case, the on-premises gateway device 80 can consult the mapping to determine the corresponding template data that matches the information provided in the request received at block 372 (e.g., the requested data). Therefore, mappings can be predefined for several devices, device types, request types, etc.

[0195] In some cases, the on-premises gateway device 80 can use machine learning or process tracking operations over time to determine appropriate corresponding template data based on previous requests or operational analysis. That is, the on-premises gateway device 80 can receive requests lacking specified template data and monitor the resulting data used to facilitate the request. The data provided in response to the request can be selected by the user via the industrial automation device 86 associated with request 372, or the data provided automatically from the industrial automation device 86 in response to the request. For example, the on-premises gateway device 80 can forward the request to the designated industrial automation device 86 in the original format and protocol of the request. Therefore, the on-premises gateway device 80 can receive the response from the industrial automation device 86 in the same format. In some cases, users or experts can associate existing template datasets with the received responses, and the on-premises gateway device 80 can store the associations in a mapping. In some cases, the on-premises gateway device 80 can receive a response and query the mapping to identify similar data structures or datasets that match the received response. Here, the on-premises gateway device 80 can associate any identified match as the corresponding template data. The automatic identification process can be verified by user input or some other suitable verification process. In any case, the on-premises gateway device 80 can determine a combination of process states and / or data values ​​that led the on-premises computing device 74 to request template data. Therefore, the on-premises gateway device 80 can employ machine learning or process tracing operations to determine the template data associated with the request received at block 372.

[0196] At block 378, the on-premises gateway device 80 may send a query to the industrial automation device 86 to obtain the template data determined in block 376. The query may involve the on-premises gateway device 80 and / or the industrial automation control system 78 using symbolic data operations to access the desired template data stored in the industrial automation device. For example, the on-premises gateway device 80 may access the template data via a combination of a template object instance and a symbol object instance (e.g., “Example 1 template object instance.symbol object instance”).

[0197] After retrieving the template data, at block 380, the on-premises gateway device 80 can receive the template data from the industrial automation device 86 via symbolic data operations used at block 378. Symbolic data operations can be used to query the data, and therefore the on-premises gateway device 80 can directly read the template data from the storage of the industrial automation device 86.

[0198] At block 382, ​​the on-premises gateway device 80 can convert the template data into a protocol compatible with the requesting device that generated the request received at block 372. In some cases, such as when the start and end positions of the data differ, the on-premises gateway device 80 can convert the template data from a first protocol to a second protocol and subsequently to a third protocol. The template data can be converted into transformed data suitable for processing by the requesting device. The on-premises gateway device 80 can convert the template into a protocol for receiving the request at block 372.

[0199] At block 384, the internally deployed gateway device 80 can transmit the converted data to the requesting device. In some cases, the converted data may be transmitted within or along with the original request. Upon receiving the converted data, the requesting device may store the converted data or further process it, such as analyzing the operation of the industrial automation system 46 and / or interpreting the converted data to gain an understanding of the operation of the industrial automation system 46.

[0200] As described above, when the template data associated with the request is determined via the operation of block 376, the on-premises gateway device 80 can access the mapping between the requesting device and the target template data when determining which template data is requested. The mapping can define a data request previously determined by the requesting device for the template data. The mapping can be stored in the memory or memory 88 of the on-premises gateway device 80. The mapping can be a predefined mapping between template data and the requesting device, such that when the first template data is requested, the on-premises gateway device 80 and / or the externally deployed gateway device determine whether to access either the first or second template data based on the relationship between the template data indicated by the mapping. Artificial intelligence or machine intelligence algorithms can generate mapping timeouts based on the use of the industrial automation system 46 or user specifications. For example, the mapping can be a type of context defining the relationship between dataset A and datasets B and C, and thus, when a request for dataset A is facilitated based on the mapping, the on-premises gateway device 80 can obtain dataset B along with dataset C. Other methods can be used to generate the mapping.

[0201] and Figure 14 Related, Figure 15 This is a flowchart of a process 390 for operating an on-premises gateway device 80 to send control commands to an industrial automation device 86. Although process 390 is described as being performed by the on-premises gateway device 80, these operations can be performed in response to the processing circuitry of the on-premises gateway device 80 executing instructions stored in a tangible, non-transitory, computer-readable medium (such as the storage of the on-premises gateway device 80, or another suitable storage). Furthermore, the operations of process 390 are shown in a specific order; however, some operations may be performed in a different order or omitted entirely.

[0202] At block 392, the on-premises gateway device 80 can receive control commands from the industrial automation device 86 (such as part of a request from the on-premises computing device 74, which includes control commands or indications of changes implemented via control commands). Requests with control commands may also include or be requests for template data. Control commands may be generated by legacy devices or legacy software that do not enable symbolic data operations. Therefore, the on-premises gateway device 80 can translate control commands into protocols or formats implemented by the industrial automation device 86 and / or the industrial automation control system 78, which are enabled with symbolic data operations.

[0203] At block 394, the on-premises gateway device 80 can identify one or more industrial automation devices 86 based on control commands. These control commands can specifically identify one or more industrial automation devices 86. Sometimes, the control commands can be applied to a subset of industrial automation devices 86 that meet certain conditions, such as a subset of “industrial automation devices installed after 2013” ​​or another time threshold. Other conditions can be applied similarly, such as the type of industrial automation device 86 (e.g., “industrial automation devices with a specific brand”), the unit 50 that includes the industrial automation device 86 (e.g., “industrial automation devices of a specific unit”), etc. In some systems, contexts such as mappings can define relationships between two or more industrial automation devices 86. When this occurs, the on-premises gateway device 80 can identify a first industrial automation device 86 based on control commands and can then identify one or more related industrial automation devices 86 based on the context.

[0204] At block 396, the internally deployed gateway device 80 can generate template data associated with control commands. This template data can be used to implement control commands at one or more industrial automation devices 86 via symbolic data operations. In some implementations, this can be based on [the following text is incomplete and likely refers to a separate implementation, possibly related to a specific implementation or implementation]. Figure 14 The mapping described in this application is used to generate template data.

[0205] At block 398, the internally deployed gateway device 80 can send template data to the industrial automation device 86 to implement control commands. After determining the template data, the industrial automation control system 78 can send additional control signals or publish updated data to one or more industrial automation devices 86 to implement adjustments determined based on the additional template data. To implement the commands specified in the template data, the industrial automation device 86 can store the template data using references via a combination of one or more template object instances and one or more symbol object instances. Therefore, the control system (e.g., the local control system, the industrial automation control system 78) can then operate the industrial automation device 86 to perform control operations based on the newly stored template data, which may correspond to target operating parameters, etc. In effect, the control system can adjust the operation to make the industrial automation device 86 achieve the target operating parameters.

[0206] In some cases, and such as Figure 13As shown, the on-premises gateway device 80 can be coupled to the externally deployed edge gateway device 82. The externally deployed gateway device 82 can receive data via a client connection between clients 360. In this way, when template data is updated at the industrial automation device 86, the updated template data is automatically returned to the externally deployed edge gateway device 82. The externally deployed edge gateway device 82 can convert the received template data into data that can be processed and stored by the externally deployed computing device 76.

[0207] As described above, the on-premises gateway device 80 can be coupled to the externally deployed edge gateway device 82. The on-premises gateway device 80 and the externally deployed edge gateway device 82 can exchange data based on client 360.

[0208] Externally deployed gateway device systems and methods

[0209] To detail operations involving externally deployed edge gateway device 82 and / or client 360, externally deployed computing device 76 can collect data and data context stored on industrial automation components (such as controllers, equipment, etc.). A data model can be used to detail relationships between constraints, rules, data, data values, operations, or other types of information. A data model can specify relationships between certain types of data relative to other types of data. Therefore, a data model can provide context about how certain datasets relate to other datasets. Thus, a stable and organized structure of information can be provided to different software platforms, devices, etc., via a data model. For example, in industrial automation systems employing both operational technology (OT) and information technology (IT) systems, data communicated between the OT and IT systems may not include data context (e.g., attributes) when the data is transmitted. However, the raw values ​​of the data can be transmitted without providing appropriate context about the data.

[0210] Based on the foregoing, the externally deployed edge gateway device 82 can use symbolic data operations to collect template data from the context of the data source and template data. Aggregating the template data and context and converting them into a protocol that can be interpreted by the externally deployed computing device 76 located outside the industrial automation system 46 (e.g., located in the external computing domain 100) can improve computing operations by enabling automated processing operations to be performed at the externally deployed computing device 76 without further conversion based on the template data protocol.

[0211] For detailed explanation, the external computing device 76 may include processing circuitry, storage, a display, etc. The externally deployed edge gateway device 82 may be communicatively coupled to the internally deployed gateway device 80. This coupling may occur between clients 360. As described above, the externally deployed edge gateway device 82 may be externally connected to service software to continuously monitor data and / or perform real-time analysis. To achieve these operations, data may be transmitted to the externally deployed edge gateway device 82 via the internally deployed gateway device 80, the industrial automation control system 78, or both. The externally deployed edge gateway device 82 may be communicatively coupled to clients 360A on the internally deployed gateway device 80 to access template data of the industrial automation device 86.

[0212] Externally deployed computing device 76 can execute SaaS / FaaS platform 108 and can display visualizations on a monitor in response to the execution of SaaS / FaaS platform 108. One or more visualizations can be based on and / or include data obtained from data sources (such as industrial automation system 46 and / or industrial automation equipment 86) via externally deployed edge gateway device 82. SaaS / FaaS platform 108 can perform time-based analytics and / or historical data tracking. SaaS / FaaS platform 108 can automatically receive updated and transformed versions of template data using client 360 without first sending a request or query. In some cases, a data link can be established in response to a first data request. The first data request can instruct the externally deployed gateway device how to first generate a data link for future automatic updates. For example, Figure 16 This operation can be used to establish a data link between industrial automation systems and requesting devices for future automatic updates.

[0213] The in-house gateway device 80 can collect and store the context of data acquired from various devices (e.g., industrial automation equipment 86, other devices within the industrial automation system 46), enabling the in-house gateway device 80 to transmit the acquired data along with the data's context. For example, if the context defines dataset A as including datasets B and C, the computing device can acquire datasets B and C upon request for dataset A. By providing the context for retrieving datasets, the externally deployed gateway device 82 can provide contextual information about the relationships between various devices and components in the industrial automation system and external systems (e.g., systems in the external computing domain 100) and enable consistent data transmission between devices.

[0214] In addition to the retrieval having a corresponding context (e.g.) Figure 9In addition to datasets with specific data structures associated with a particular dataset (e.g., context), internally deployed computing devices 74, externally deployed computing devices 76, and / or industrial automation control systems 78 can provide one or more corresponding user interfaces that allow users to provide context associated with a specific dataset (e.g., context). Figure 9 The context (or information model) is used. In this way, users can add context to a dataset or data via a graphical user interface with input fields that, upon receiving text input or alternative input, convert the data into a format that can be stored using a symbolic data approach with template data. The retrieved dataset can then be transferred to other devices with the added context. By providing data with its context, different software platforms can more efficiently synthesize or analyze the retrieved template data. For example, unstructured component data provided without context can be preprocessed each time before analyzing the dataset to group related datasets together. However, when transferred with context, some operations related to grouping associated data can be bypassed, at least in part because the context already indicates this information, which can reduce processing costs and frequency. For example, a template object instance can indicate that a subset of template data corresponds to a context or information model, and based on this indication, an internally deployed computing device 74, an externally deployed computing device 76, an industrial automation device 86, and / or an industrial automation control system 78 can use the subset of template data to organize or group template data relative to other template data. Furthermore, by retrieving datasets using appropriate context, computing devices can obtain datasets and demonstrate how datasets are related through the specific context shared by the template data among the datasets.

[0215] In addition to retrieving template data using context, the internally deployed computing device 74, the externally deployed computing device 76, and / or the industrial automation control system 78 can provide one or more user interfaces for users to input transition conditions or transaction conditions, thereby defining the workflow for transferring datasets using context and / or data models associated with one or more datasets. For example, users can use contexts (such as transaction conditions and / or mappings) to describe a workflow that controls the transition of data between data-generating components (e.g., data sources) and data-targeting components (e.g., data consumers, requesting devices) of an industrial automation system. For instance, users can describe transaction conditions to initiate data capture from a second data source (e.g., a pressure sensor) by defining a triggering event (e.g., when a data value exceeds 300) for data retrieved from a first data source (e.g., a temperature sensor). Furthermore, transaction conditions can define how data is collected from the data sources. That is, transaction conditions can specify the specific collection and transfer paths used to access data from the data sources. In this way, the implementation described herein can better enable users to describe different datasets, associate datasets with one or more other datasets by defining relationships between the corresponding datasets, define conditions to detail custom workflows for data communication through industrial automation systems using the data model described herein, etc.

[0216] Based on the foregoing. Figure 16 This is a flowchart of process 410 for operating an externally deployed edge gateway device 82 to perform data access operations. Although process 410 is described as being performed by the externally deployed edge gateway device 82, these operations can be performed in response to the processing circuitry 82 of the external edge gateway device executing instructions stored in a tangible, non-transitory, computer-readable medium (such as the storage of the externally deployed edge gateway device 82 or other suitable storage). Furthermore, the operations of process 410 are shown in a specific order; however, some operations may be performed in a different order or omitted entirely.

[0217] At block 412, the externally deployed edge gateway device 82 can receive requests to access data from industrial automation devices 86. This request can be generated by a portion of an externally deployed computing device 76. For example, a SaaS / FaaS platform 108 can generate requests for data from one or more industrial automation devices 86. The request can be generated directly by a control system representing a connected application or on behalf of the externally deployed computing device 76. The request can also be generated by legacy devices or legacy software that are not enabled with symbolic data operations. Therefore, the externally deployed edge gateway device 82 can fulfill the data request on behalf of the requesting device.

[0218] At block 414, the externally deployed edge gateway device 82 can identify one or more industrial automation devices 86 based on a request. The request can specifically identify one or more industrial automation devices 86. In some implementations, the externally deployed edge gateway device 82 can identify or determine template data associated with the request based on information provided in the request itself. For example, template data can be determined by a specific name or based on input of data fields corresponding to the request (e.g., via field selection or input option indication with any number of setting options). Sometimes, the request can cause the externally deployed edge gateway device 82 to search for a subset of the industrial automation devices 86 associated with the request. A subset of the industrial automation devices 86 can be determined to satisfy defined conditions. For example, the externally deployed edge gateway device 82 can search storage 88 to obtain a subset of industrial automation devices 86 that were "installed after 2013" or meet another time threshold. Other conditions can be similarly determined and applied based on the request. For example, the request may specify the type of industrial automation equipment 86 (e.g., "industrial automation equipment with a specific brand") on which the query should be performed, the unit 50 including industrial automation equipment 86 (e.g., "industrial automation equipment of a specific unit"), etc.

[0219] However, if the request does not specify template data, the externally deployed edge gateway device 82 can access a mapping that details the relationships between several devices, device types, etc., and corresponding template datasets. That is, the request received at block 412 may include template data, but if the device sending the request is unfamiliar with or incompatible with symbol-based data operations, it may also lack template data. In this case, the external gateway device 82 can query the mapping to determine the corresponding template data that matches the information provided in the request received at block 412 (e.g., the requested data). Therefore, mappings can be predefined for several devices, device types, request types, etc. For example, a mapping can define a relationship between two or more industrial automation devices 86, which can be used to associate requests for template data between the two or more industrial automation devices 86. When this occurs, the externally deployed edge gateway device 82 can identify the first industrial automation device 86 based on the request, and can then identify one or more related industrial automation devices 86 based on the mapping.

[0220] At block 416, the externally deployed edge gateway device 82 can determine the template data associated with the request. That is, the request received at block 412 may include template data, but if the device sending the request is unfamiliar with or incompatible with symbol-based data operations, it may also lack template data.

[0221] To transform data into template data, the externally deployed edge gateway device 82 can access a transformation map (e.g., a mapping) that details the relationships between datasets that can be stored by various devices, device types, etc., and their corresponding template datasets. The externally deployed gateway device 82 can query the transformation map to determine the corresponding template data that matches the information provided in the request received at block 412 (e.g., requested data). Therefore, mappings can be predefined for various devices, device types, etc. For example, a mapping could define a relationship between an industrial automation device 86 and an externally deployed computing device 76, which could be used to transform the dataset defined in the received request into template data that can be received or requested from the industrial automation device 86.

[0222] To elaborate, requests that may originate from externally deployed computing device 76 and / or SaaS / FaaS platform 108 can specify the type of data, a specific dataset, or other details that identify the dataset stored in industrial automation device 86. However, the dataset can be stored in or accessed from industrial automation device 86 using symbolic data operations, which may include requests for corresponding template data. Therefore, externally deployed computing device 76 can determine the template data corresponding to the requested dataset based on the transformation mapping mentioned above.

[0223] At block 418, the externally deployed edge gateway device 82 can send a query for template data to one or more industrial automation devices 86 identified at block 414. Here, the externally deployed computing device 76 can request an identified portion of the template data (e.g., identified at block 416) or can request all template data, which can be parsed by the externally deployed computing device 76 to identify the requested template data.

[0224] At block 420, the externally deployed edge gateway device 82 can receive template data from one or more industrial automation devices 86 (e.g., as requested at block 418). The externally deployed computing device 76 can access the template data using symbolic data operations. In this way, the externally deployed computing device 76 can identify from which template object instances and symbolic object instances it is receiving data before receiving template data from one or more industrial automation devices 86. For example, using... Figure 11 In the example, an externally deployed computing device 76 can specify “Floor1.PF525.Online.MotorStatus” to receive template data associated with the “MotorStatus” symbol object instance 302.

[0225] At block 422, after receiving the template data, the externally deployed edge gateway device 82 can determine the data structure associated with the request. The data structure may correspond to an information model or other format that the SaaS / FaaS platform 108, database 106, or other externally deployed computing devices 76 may expect to receive. That is, different types of externally deployed computing devices 76 may receive datasets organized according to certain data models. In this way, the received datasets can be seamlessly stored or organized into storage components or appropriate data fields in an efficient manner. In fact, the data model can provide context, allowing the externally deployed computing device 76 to efficiently place the appropriate data values ​​of the received datasets into the appropriate data fields of the externally deployed computing device 76. The data model can detail one or more relationships between certain constraints, rules, data, data values, operations, or other types of information. The data model can specify the relationships between some kinds or types of data relative to other kinds or types of data. Therefore, the data model can provide context about how certain datasets are related to other datasets. Thus, a stable and organized structure of information can be provided to different software platforms, devices, etc.

[0226] For example, an externally deployed edge gateway device 82 can provide an externally deployed computing device 76 (or another requesting device) with a representation of the received template data in a data structure based on a data model, thereby providing the externally deployed computing device 76 (or the requesting device) with context about the received data. The data model can indicate the association between the received template data and the industrial automation system 46, one or more units 50, one or more industrial automation devices 86, one or more components of the industrial automation system 46, etc. The data model can be defined to enable the externally deployed edge gateway device 82 to process the received template data associated with a specific component according to a specific method or protocol. Furthermore, the externally deployed edge gateway device 82 can use the data model to extract specific details of each component of the industrial automation device 86. That is, the computing device 24 can process the received data to provide context (such as variables like speed, flow rate, temperature, and acceleration) to the dataset received from each industrial component. Additionally, the data model can provide contextual data, which includes associations or relationships with other devices, systems, plants, servers, equipment types, or other categories that classify the received data.

[0227] At block 424, the externally deployed edge gateway device 82 can generate a data structure based on template data. The generated data structure is based on the data structure identified at block 416. The operations at block 424 may include adding context or context data to the data structure via the externally deployed computing device 76 based on the industrial automation device 86, the mapping, and the template data. The mapping may be associated with a data model that indicates which additional data associated with the industrial automation device 86 and / or the template data is included in the data structure. This data model may be defined based on what type of data the requesting device uses and / or stores. In some cases, the template data may include context that causes the externally deployed computing device 76 to adjust the data structure. For example, the data structure identified at block 416 may include a portion of a data structure accommodating one sub-device, while the template data indicates two sub-devices; therefore, the externally deployed computing device 76 may generate a data structure to accommodate the two sub-devices indicated by the template data.

[0228] In some cases, the operation of block 424 may be performed based on the externally deployed edge gateway device 82 determining that the data structure does not correspond to a protocol compatible with the externally deployed computing device 76. To remedy this, the externally deployed edge gateway device 82 can convert the data structure generated based on the template data into converted data based on a protocol compatible with the externally deployed computing device 76.

[0229] At block 426, the externally deployed edge gateway device 82 can send the generated data structure to the requesting device (e.g., externally deployed computing device 76, or another suitable requesting device). Here, as described above, the generated data structure may include data compatible with the protocols and data structures used by the requesting device. The externally deployed edge gateway device 82 can send the generated data structure to the requesting device via client 360B. Client 360B can update the data stored in the requesting device based on the data structure received from the externally deployed edge gateway device 82 without additional conversion. To access the data in the data structure, the requesting device can perform page refresh, refresh the data structure used to access data from the externally deployed edge gateway device 82, etc.

[0230] It should be noted that the externally deployed edge gateway device 82 can receive and process requests from a downstream-coupled requesting device derived from the externally deployed computing device 76. In this manner, requests from the requesting device can be received by the externally deployed edge gateway device 82 via the externally deployed computing device 76. Therefore, when the externally deployed edge gateway device 82 processes template data at block 424 to generate a data structure, it can process the template data according to the specifications (e.g., protocol and / or data structure) of the requesting device and / or via a program executed by the requesting device rather than the externally deployed computing device 76. Sometimes the specifications of the externally deployed computing device 76 match those of the downstream requesting device, and at other times they differ. This may involve technological improvements that enable the externally deployed edge gateway device 82 to be a highly flexible system capable of communicating with a variety of computing devices, including those coupled downstream from intermediate devices.

[0231] Based on this, client 360B can also convert data into template data and process the data, and / or can convert template data from industrial automation system 46 into a combination of data structures and data protocols compatible with the system and methods used by the requesting device and process the template data from industrial automation system 46. Client 360B can also convert template data into template data and process the template data, and / or can convert a combination of data structures and data protocols compatible with the system and methods used by the requesting device into template data from industrial automation system 46 and process the combination of data structures and data protocols compatible with the system and methods used by the requesting device. Externally deployed computing device 76 can request template data via externally deployed edge gateway device 82, but the template data received by externally deployed edge gateway device 82 may be part of an array structure and protocol incompatible with the data structures and protocols used by externally deployed computing device 76 (e.g., if defined as by a template object instance). For example, externally deployed edge gateway device 82 can detect that the template data is arranged in a single-column, multi-row data structure via client 360B, and can convert the template data into data arranged in a multi-page, multi-column, and multi-row data structure compatible with externally deployed computing device 76. This transformation can occur based on information about the template data from a corresponding template object instance. For example, the template object instance can indicate the appropriate format for each part of the template data and can provide context about that part of the template data to instruct the externally deployed gateway device 82 how to place the data (e.g., the transformed template data) within a data structure for use by the externally deployed computing device 76. Therefore, the externally deployed computing device 76 can transform the template data into a data structure and protocol, or a compatible data structure and protocol, used by the requesting device. These operations may involve the externally deployed edge gateway device 82 transforming the template data into data and then transforming the data into a data structure compatible with the industrial automation device 86 and / or the externally deployed computing device 76. In this way, the externally deployed edge gateway device 82 can combine some or all of the template data from different industrial automation devices 86 into the same generated data structure. The externally deployed edge gateway device 82 can populate existing data structures with data transformed from the template data and / or can generate new data structures populated with data transformed from the template data. The new data structure can be received by the externally deployed computing device 76 and stored on some or all of the existing data structures. In some cases, the client 360B can automatically store the generated data structure (from the transformed template data) in an externally deployed computing device 76.

[0232] In some implementations, the data structure transmitted from the externally deployed computing device 76 to the requesting device may include a subset or all of the template data from the industrial automation device 86 identified at block 414. The externally deployed computing device 76 can determine which template data is transformed and transmitted to the requesting device based on the data structure used by the requesting device. The externally deployed computing device 76 may access the data structure used by the requesting device to determine the subset of template data and / or the externally deployed computing device 76 may receive instructions on the data structure from the requesting device. In some cases, the externally deployed computing device 76 may access stored instructions that define which template data will be transmitted to the requesting device.

[0233] Data can be exchanged wirelessly or via a wired connection between an externally deployed computing device 76 and the industrial automation system 46. The externally deployed computing device 76 can receive data directly from the industrial automation system 46 via the industrial automation control system 78. In some cases, the externally deployed computing device 76 can receive data from client-to-client connections between clients 360. Furthermore, sometimes the externally deployed computing device 76 can receive data from the industrial automation device 86 via an internally deployed gateway device 80. In any case, one or more of the clients 360 can be bypassed or can be included and used in the communication. Figure 13 Other clients not described in the text.

[0234] In some cases, one or more industrial automation devices 86 may update stored template data in response to implementing control commands (such as control commands generated by an internally deployed gateway device 80). Other systems may generate control commands, such as the industrial automation control system 78 and / or the externally deployed gateway device. The update of the template data may occur in response to sensing data being stored as at least a portion of the template data, overwriting some amount of previously stored data. In this case, the externally deployed gateway device 82 may determine that the template data has been updated by the industrial automation device 86 after sending the data structure to the requesting device at block 426, and generate an updated data structure based on the updated template data in response to determining that the template data has been updated. The externally deployed gateway device 82 may then transmit the updated data structure to the requesting device to autonomously update at least a portion of the data stored or referenced by the requesting device. This update operation may occur without further intervention or without issuing additional requests (e.g., additional requests similar to those in block 412).

[0235] The technical advantages of the systems and methods described herein include enabling direct access to and reporting of data from industrial automation systems using symbolic data methods. By using these systems and methods, one or more intermediate control systems can be incorporated into an industrial automation system to aggregate or process data generated by industrial automation equipment. Furthermore, the systems and methods described herein enable operational technology (OT) and information technology (IT) systems that would otherwise not be able to transmit data-related context (e.g., attributes) during data transmission to include context during data transmission. In practice, industrial automation equipment can generate and / or store template data and context data generated by its systems and components. Template data can be accessed by the control system and other equipment of the industrial automation system. One or more template object instances can correspond to and characterize the template data to enable the control system and other equipment to process and manipulate the template data. Template object instances on the equipment can reference nested template object instances. In some cases, symbolic object instances can reference nested template object instances, which can improve efficiency in managing and communicating data throughout the industrial system by implementing references to template object instances or symbolic object instances to include references to multiple nested template object instances or symbolic object instances within that reference. In practice, preparing data based on template object instances and symbolic object instances allows for more efficient processing, unified comparisons between datasets generated by different devices, and more. By using systems and methods to reference operational data in a way that is understandable to both machines and software, data is routed from the data source to the data-consuming device with fewer lookup operations, and therefore, control and processing operations can be performed with fewer computational operations compared to other systems that do not use symbolic data manipulation.

[0236] While this disclosure may be subject to various modifications and alternatives, specific embodiments have been illustrated by way of example in the accompanying drawings and described in detail herein. However, it should be understood that this disclosure is not intended to be limited to the particular forms disclosed. Rather, this disclosure is intended to cover all modifications, equivalents, and alternatives falling within the spirit and scope of this disclosure as defined by the following appended claims.

[0237] The techniques and claims presented herein are referenced and applied to specific examples of material objects and practical applications that significantly improve upon the technical field and are therefore not abstract, intangible, or purely theoretical. Furthermore, if any claim appended to this specification includes one or more elements designated as "means for [performing] [function]..." or "steps for [performing] [function]...", it is intended to be interpreted under 35U.SC112(f). However, for any claim including elements designated in any other manner, it is intended to be interpreted under 35U.SC112(f).

Claims

1. A method for symbolic data manipulation, comprising: The processor receives a request from the requesting device to access data associated with the industrial automation equipment. The processor identifies the industrial automation equipment based on the request; The processor sends a query for template data to the industrial automation equipment based on the request, wherein the industrial automation equipment is associated with a plurality of symbol object instances, wherein a first template object instance is configured to represent template data stored in storage components accessible to the industrial automation equipment, and wherein each of the plurality of symbol object instances is categorized relative to a plurality of categories, the plurality of categories including the identifier of the industrial automation equipment, the status of the industrial automation equipment, the operating time status of the industrial automation equipment, the maintenance status associated with the industrial automation equipment, the durability information of the industrial automation equipment, or any combination thereof; and wherein the template data includes one or more instantaneous values ​​associated with one or more of the plurality of categories; The template data is received via the processor; The processor determines the data structure based on the requesting device. The processor generates the data structure based on the template data and a mapping between the data structure and the template data, wherein the mapping is configured to describe a data model associated with the requesting device; and The processor sends the data structure to the requesting device.

2. The method according to claim 1, comprising: The processor identifies the mapping from multiple mappings based on the type of the template data, the type of the requesting device, or both; as well as The processor converts the template data into the data structure based on the mapping, wherein the data structure is configured to be compatible with the requesting device.

3. The method of claim 2, further comprising identifying the mapping from the plurality of mappings via the processor based on the industrial automation equipment, the connection platform of the requesting device, and the request.

4. The method of claim 1, further comprising adding context data to the data structure via the processor based on the industrial automation equipment, the mapping, and the template data.

5. The method according to claim 1, comprising: The processor determines that the data structure does not correspond to a protocol compatible with the requesting device. The processor converts the data structure into converted data based on the protocol in response to determining that the data structure does not correspond to the protocol; as well as The processor sends the converted data structure to the requesting device.

6. The method according to claim 1, comprising: determining, via the processor, that the request comprises a control command, wherein, The control commands are configured to cause the industrial automation equipment to adjust one or more operations; Additional template data is generated by the processor based on the control commands and the mapping; as well as The additional template data is sent to the industrial automation equipment via the processor, wherein the industrial automation equipment is configured to update the storage component based on the additional template data, and wherein the industrial automation equipment is configured to adjust one or more operations in response to the storage component being updated.

7. A system for symbolic data manipulation, comprising: An industrial automation device is configured within an on-premises computing domain, wherein the industrial automation device is associated with a plurality of symbolic object instances, each of which is categorized relative to a plurality of categories, including the industrial automation device's identifier, the industrial automation device's status, the industrial automation device's uptime status, the maintenance status associated with the industrial automation device, the industrial automation device's durability information, or any combination thereof; and An externally deployed gateway device is located at the edge of the internally deployed computing domain and configured to communicate with a requesting device located in the externally deployed computing domain, wherein the externally deployed gateway device is configured to: Receive a request from the requesting device to access data associated with the industrial automation equipment; The industrial automation equipment is identified based on the request; Based on the request, a query for template data is sent to the industrial automation equipment, wherein a first template object instance is configured to represent template data stored in a storage component accessible to the industrial automation equipment, and wherein the template data includes one or more instantaneous values ​​associated with one or more of the plurality of categories; Receive the template data; The device determines the data structure based on the request; The data structure is generated based on the template data and the mapping between the data structure and the template data, wherein the mapping is configured to describe a data model associated with the requesting device; and The data structure is sent to the requesting device.

8. The system of claim 7, wherein, The externally deployed gateway device includes a client configured to communicatively couple to the requesting device, wherein the client is configured to: Receive the request; and The data structure is sent to the requesting device.

9. The system of claim 7, wherein, The externally deployed gateway device is configured to: It is determined that the data structure does not correspond to a protocol compatible with the requesting device; In response to determining that the data structure does not correspond to the protocol, the data structure is converted into converted data based on the protocol; as well as The converted data structure is sent to the requesting device.

10. The system of claim 7, wherein, The externally deployed gateway device is configured to: The mapping is identified from multiple mappings based on the type of the template data, the type of the requesting device, or both; as well as The template data is converted into the data structure based on the mapping, and the data structure is configured to be compatible with the requesting device.

11. The system of claim 7, wherein, The externally deployed gateway device is configured to identify the mapping from multiple mappings based on the industrial automation equipment, the connection platform of the requesting device, and the request.

12. The system of claim 7, comprising an on-premise computing device configured to generate the control commands, wherein, The industrial automation equipment is configured to update the template data in response to the implementation of the control command.

13. The system of claim 12, wherein, The externally deployed gateway device is configured to: After sending the data structure to the requesting device, it is determined that the template data is updated by the industrial automation equipment; as well as In response to determining that the template data has been updated, an updated data structure is generated based on the updated template data; as well as The updated data structure is transmitted to the requesting device.

14. A tangible, non-transitory computer-readable medium comprising instructions that, when executed by a processor, cause a control system to perform operations, the operations including: Receive a request from the requesting device to access data associated with industrial automation equipment; The industrial automation equipment is identified based on the request; Based on the request, a query for template data is sent to the industrial automation equipment, wherein the industrial automation equipment is associated with a plurality of symbol object instances, wherein a first template object instance is configured to represent template data stored in storage components accessible to the industrial automation equipment, and wherein each of the plurality of symbol object instances is categorized relative to a plurality of categories, the plurality of categories including the identifier of the industrial automation equipment, the status of the industrial automation equipment, the operating time status of the industrial automation equipment, the maintenance status associated with the industrial automation equipment, the durability information of the industrial automation equipment, or any combination thereof; and wherein the template data includes one or more instantaneous values ​​associated with one or more of the plurality of categories; Receive the template data; The device determines the data structure based on the request; The data structure is generated based on the template data and the mapping between the data structure and the template data, wherein the mapping is configured to describe a data model associated with the requesting device; and The data structure is sent to the requesting device.

15. The tangible, non-transitory computer-readable medium of claim 14, wherein the operation comprises: The mapping is identified from multiple mappings based on the type of the template data, the type of the requesting device, or both; as well as The template data is converted into the data structure based on the mapping, and the data structure is configured to be compatible with the requesting device.

16. The tangible, non-transitory computer-readable medium of claim 14, the operations comprising storing the template data in a data store, wherein, The data repository includes multiple datasets stored as public data exposed to multiple other industrial automation devices, and each of the multiple other industrial automation devices is configured to use the template data to communicate with additional industrial automation devices.

17. The tangible, non-transitory computer-readable medium of claim 14, wherein the operation includes identifying the mapping from a plurality of mappings based on the industrial automation equipment, the connection platform of the requesting device, and the request.

18. The tangible, non-transitory computer-readable medium of claim 14, wherein the operation includes adding context data to the data structure based on the industrial automation equipment, the mapping, and the template data.

19. The tangible, non-transitory computer-readable medium of claim 14, wherein the operation comprises: It is determined that the data structure does not correspond to a protocol compatible with the requesting device; In response to determining that the data structure does not correspond to the protocol, the data structure is converted into converted data based on the protocol; as well as The converted data structure is sent to the requesting device.

20. The tangible, non-transitory computer-readable medium of claim 14, wherein the operation comprises: The request is determined to include control commands, wherein the control commands are configured to cause the industrial automation equipment to adjust one or more operations; Generate additional template data based on the control commands and the mapping; and The additional template data is sent to the industrial automation equipment, wherein the industrial automation equipment is configured to update the storage component based on the additional template data, and wherein the industrial automation equipment is configured to adjust the one or more operations in response to the storage component being updated.