Method and apparatus for handling data in an industrial automation infrastructure

The method addresses parsing limitations in industrial automation by converting binary data to an encoded character sequence and using pattern-matching to extract specific attributes, enhancing efficiency and interoperability while reducing computational overhead.

WO2026046522A1PCT designated stage Publication Date: 2026-03-05SIEMENS AG
View PDF 1 Cites 0 Cited by

Patent Information

Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Filing Date
2024-08-30
Publication Date
2026-03-05

AI Technical Summary

Technical Problem

Industrial automation infrastructures relying on domain-specific languages face limitations in parsing and handling compressed file formats like ACX, leading to inefficiencies, delays, and errors in data extraction and integration, undermining interoperability and operational efficiency.

Method used

A computer-implemented method and apparatus that selectively parses target attributes from binary data using a processing unit, converting it to an encoded character sequence, and employing pattern-matching rules to extract specific parameters, compatible with domain-specific languages, eliminating the need for decompression and third-party libraries.

Benefits of technology

Enhances data handling efficiency, reduces computational overhead, and improves interoperability by enabling accurate extraction of target attributes, optimizing resource utilization and maintaining system performance, particularly in environments with limited bandwidth and storage.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 00000043_0000
    Figure 00000043_0000
  • Figure 00000044_0000
    Figure 00000044_0000
  • Figure 00000045_0000
    Figure 00000045_0000
Patent Text Reader

Abstract

A computer implemented method (300) and an apparatus (102) for handling data in an industrial automation infrastructure (100) are disclosed. The method (300) comprises receiving, by a processing unit (202), a stream of binary data from a file; storing the binary data in a data structure; converting the stored binary data to an encoded character sequence; determining whether an identifier (508) associated with a target attribute exists within the character sequence; and when the identifier (508) exists within the encoded character sequence, performing: recording a start position (508-1) and an end position (508-N) of the identifier (508), determining preconfigured positions (520) relative to at least the start position (508-1) and the end position (508-N) that accommodate data elements being indicative of length of attribute values by referencing a schema (516, 600), and extracting attribute values from the character sequence based on the preconfigured positions and length of attribute values.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] Description

[0002] METHOD AND APPARATUS FOR HANDLING DATA IN AN INDUSTRIAL AUTOMATION INFRASTRUCTURE

[0003] The present disclosure generally relates to data handling, and more particularly to a computer- implemented method and an apparatus for handling data in an industrial automation infrastructure. The method involves selective parsing of a target attribute from binary data received from a file.

[0004] Industrial environments commonly incorporate an industrial automation infrastructure comprising interconnected hardware, software, and communication systems. The automation infrastructure facilitates controlled operation and management of industrial processes. The automation infrastructure typically comprises several key components, including field devices, control devices, engineering systems, and communication networks. Field devices such as sensors and actuators directly interact with physical processes in the industrial environment, while control devices like drives and Programmable Logic Controllers (PLCs) manage and regulate these processes. Engineering systems are software-based platforms designed to configure, monitor, and / or diagnose the field devices and the control devices within the automation infrastructure. Communication networks enable data transmission between these components, facilitating integration and coordination within the automation infrastructure.

[0005] Data transmission between engineering systems and control devices, and between different engineering systems is generally facilitated through file-based communication. These files contain data which typically includes parameterisation data and network communication parameters. The parameterisation data may include, for instance, voltage, current, rotational speed, torque, and power factor associated with a variable frequency drive communicably coupled to a motor in the industrial automation infrastructure. Additionally, control type information, such as the specific control logic or strategy employed for the drive may also be included in the parameterisation data. The network communication parameters facilitate connectivity among the engineering systems and the control devices within the automation infrastructure. The network communication parameters typically include an Internet Protocol (IP) address which uniquely identifies a device on a network, a subnet mask which defines the network range and facilitates in identifying devices belonging to the same network, and a default gateway which acts as a router to direct traffic between different networks. In certain industrial automation infrastructures, such as those designed for process automation, the adoption of domain-specific languages like Electronic Device Descriptive Language (EDDL) has become increasingly prevalent. EDDL provides a standardized framework for describing and interacting with field devices, enabling integration and interoperability within the automation infrastructure. However, reliance on domain-specific languages may introduce certain limitations associated with data handling. One significant limitation is that the domain-specific languages may lack access to widely used parsing libraries for commonly used file formats, such as extensible Markup Language (XML) and JavaScript Object Notation (JSON). This contrasts with general-purpose languages like C# and Python, which typically provide built-in support for parsing various file formats. The lack of access to widely used parsing libraries may complicate efforts to parse and interpret data from files accurately.

[0006] The limitations associated with data handling by relying on domain-specific languages are further compounded when handling compressed files. Despite efforts to develop specialized tools and libraries for efficient management of compressed files, domain-specific languages present various limitations. Domain specific languages may lack native support for efficiently handling compressed files, leading to difficulties in reading, writing, and processing data in the compressed files. Further, due to restrictions or limitations in domain-specific languages, it may not be feasible to incorporate third-party libraries that offer comprehensive support for parsing data from compressed file formats. These restrictions or limitations may be attributed to the descriptive nature of domain-specific languages, which contrasts with greater flexibility and extensibility offered by general-purpose languages. Furthermore, the unavailability of standard file parsing libraries for commonly used languages within domain-specific languages can significantly impede the ability to accurately parse and interpret compressed file data.

[0007] In certain cases, original equipment manufacturers (OEMs) have developed proprietary suites of libraries and tools to facilitate data handling of specific compressed file formats between engineering systems and control devices. For instance, a specialized suite of libraries and tools has been developed for handling files of Access description Compressed and extensible (ACX) file format. ACX is essentially a compressed form of XML. ACX files serve as means for transmitting data between various engineering systems and variable frequency drives.

[0008] However, EDDL which is commonly used in industrial automation and process control, lacks compatible libraries for parsing data from ACX format files. This limitation has several implications. Firstly, it restricts accessibility and usability of data stored in ACX format within industrial environments heavily reliant on EDDL. This can potentially undermine interoperability among different engineering systems and control devices of the same OEM or of different OEMs. As an example, engineering systems compatible with EDDL widely used in process automation have been delivered with reduced functionality attributable to lack of compatible libraries for parsing data from ACX format files. Moreover, the lack of compatible libraries for ACX may create obstacles in data extraction and integration processes which are crucial for smooth configuration and management of field devices in the automation infrastructure. This can potentially lead to inefficiencies, delays, and errors in operation of field devices of the industrial automation infrastructure.

[0009] In view of the foregoing, it has been identified that industrial automation infrastructures that utilize domain-specific languages, such as those designed for process automation, consistently provide fewer features as compared to their counterparts that favour higher-level general-purpose languages like C# (for example, Totally Integrated Automation Portal (TIA Portal®), despite utilizing the same devices for data communication.

[0010] In light of the above, there exists a need for a method and an apparatus for handling data in an industrial automation infrastructure that addresses one or more of the aforementioned limitations.

[0011] Accordingly, it is an object of the present disclosure to provide a computer-implemented method of handling data in an industrial automation infrastructure, that involves selective parsing of target attributes (i.e., specified attributes or attributes of interest) from a stream of data received from a file. It is a further object that the method of handling data is compatible with an industrial automation infrastructure reliant on a domain-specific language for data handling, addressing the limitations associated with parsing of data within such automation infrastructures known in the art.

[0012] As used herein, the term “computer” refers to a programmable electronic device capable of performing calculations, processing information, and executing instructions. This includes, but is not limited to, a general-purpose computer, a specialized computer, a microcontroller, a microprocessor, a logic circuitry, or any other device that can perform the functions described herein. The computer-implemented method of the present disclosure is implemented in an industrial automation infrastructure.

[0013] Throughout the present disclosure, the terms “industrial automation infrastructure” and “automation infrastructure” refer to a system of interconnected hardware, software, and communication network(s) configured to automate and control industrial processes, unless specified otherwise. In some embodiments, the industrial automation infrastructure is a process automation infrastructure. As used herein, the term “process automation infrastructure” refers to a specific type of industrial automation infrastructure designed to automate and control discrete or batch processes in an industrial environment. Further, the terms “handling data” and “data handling” may encompass one or more of acquisition, storage, processing, parsing, transmission, and utilization of data within the industrial automation infrastructure, unless stated otherwise.

[0014] The industrial automation infrastructure comprises an apparatus, one or more field devices, one or more control devices, one or more engineering systems, and one or more communication networks. The industrial automation infrastructure may not be physically confined to a single plant location but may extend beyond the physical boundaries of the plant, such as engineering systems located off-site or remote-control devices that operate from distant locations.

[0015] The apparatus may be a computer, such as a personal computer, a laptop computer, a tablet, a server, a virtual machine, and the like. The apparatus is configured to implement the method of the present disclosure. The apparatus may host an application capable of handling data and parsing a target attribute in accordance with the method of the disclosure. The apparatus may further host a recipient engineering system.

[0016] In an embodiment, the apparatus may be an industrial computer located in a physical industrial plant, which is directly accessible by a local user / operator the plant. In another embodiment, the apparatus is deployed on a local server accessible by the user / operator through local communication network(s). In yet another embodiment, the apparatus is deployed in a cloud computing environment, and is remotely accessible by a remote user / operator.

[0017] As used herein, “cloud computing environment” refers to a processing environment comprising configurable computing physical and logical resources, for examples, networks, servers, storage, applications, services, etc., and data distributed over the one or more communication networks, for example, the internet. The cloud computing environment provides on demand network access to a shared pool of configurable computing physical and logical resources.

[0018] Throughout the present disclosure, “field devices” refer to physical components that directly interact with physical processes in the industrial automation infrastructure. The field devices may include, but not be limited to, sensors, actuators, motors, pumps, turbines, transducers, valves, and the like. Throughout the present disclosure, “control devices” refer to electronic or electromechanical systems that manage and regulate the industrial processes by interacting with the field devices. The control devices may be configured to receive sensory input associated with one or more field devices, process the sensory input, and send output signals to actuators or other control components. The control devices may include, but are not limited to, Programmable Logic Controllers (PLCs), drives, Human-Machine Interfaces (HMIs), Controllers and the like.

[0019] Throughout the present disclosure, “engineering systems” refer to software-based platforms designed to configure, monitor, and / or diagnose field devices and control devices within the industrial automation infrastructure. The engineering systems may include, but not be limited to, automation software platforms used to design, program and simulate automation systems, asset management systems that track and manage the lifecycle of industrial assets such as the field devices, and data historian systems that store and analyze historical data from industrial processes, or a platform combination of two or more of these systems. Further, the engineering systems may include desktop-based tools and / or web server interfaces accessible through a web browser and hosted on remote servers.

[0020] The one or more communication networks enable data transmission across the industrial automation infrastructure, across the apparatus, the one or more field devices, the one or more control devices, and the one or more engineering systems. The one or more communication networks may include, but are not limited to, ethernet networks, fieldbus networks, wireless networks, Controller Area Networks (CAN), DeviceNet, or a combination of two or more network types.

[0021] According to one aspect, a computer-implemented method of the present disclosure comprises receiving, by a processing unit, a stream of binary data from a file. The processing unit receives the stream of binary data, which is in the form of a sequence of bits (Os and 1 s) that represents digital information. In some embodiments, the processing unit receives the stream of binary data that comprises a plurality of bytes of information. In an embodiment, the processing unit is integrated with the apparatus supporting a recipient engineering system.

[0022] The processing unit receives the file from at least one of an upstream control device (such as, but not limited to, a variable frequency drive associated with a motor), and an upstream engineering system in the industrial automation infrastructure. In an embodiment, the file is received by a recipient engineering system supported by the computer from an upstream drive. The upstream control device and the upstream engineering system referred to herein may act as intermediaries in a data transmission process in the automation infrastructure by way of receiving the binary data or the file from other entities or may act as sources that generate the file themselves by receiving user input

[0023] In an embodiment, the recipient engineering system supported by the computer requests data from an upstream drive, and the upstream drive responds with the stream of binary data. In some embodiments, the processing unit receives the file that may be a compressed file. As an example, the compressed file may be of Access description Compressed and extensible (ACX) format, which is essentially a compressed form of XML (extensible Markup Language) format.

[0024] The method comprises storing the received stream of binary data in a data structure. The data structure may be stored in a storage unit or a memory component. In some embodiments, storing the received stream of binary data in the data structure comprises storing the stream of binary data in a reference array. Arrays provide for a simple and efficient storage mechanism with fixed- size access. Storing the stream of binary data in the reference array is suitable for scenarios where the size of the binary data is known at the outset. In some other embodiments, storing the received stream of binary data in the data structure comprises storing the stream of binary data in a list. Lists offer advantages of dynamic resizing and potentially faster access times for accessing the data for subsequent data handling. Storing the stream of binary data in the list is suitable for scenarios where the size of the binary data is variable or unknown at the outset. Lists allow for flexible insertion, deletion, and modification of data elements, making them suitable for applications that require dynamic data management.

[0025] The method comprises converting, by the processing unit, the stream of binary data from the data structure to an encoded character sequence. In some embodiments where the stream of binary data comprises a plurality of bytes, converting the stream of binary data from the data structure to the encoded character sequence involves assigning each byte of the stream of binary data to a character type variable based on a character encoding standard for converting each byte of the stream of binary data to a corresponding character. Each of the resulting characters are then concatenated to obtain the encoded character sequence. In a further embodiment, each byte of the stream of binary data is assigned to the character type variable based on ASCII (American Standard Code for Information Interchange) encoding standard to convert each byte of the stream of binary data to a corresponding ASCII character. Each resultant ASCII character is then concatenated to obtain the encoded character sequence, wherein the encoded character sequence corresponds to an ASCII character sequence. Advantageously, the conversion of binary data into the encoded character sequence facilitates efficient machine processing and selective parsing and extraction of desired data elements from the stream of binary data. Further, converting the stream of binary data to the ASCII character sequence offers several advantages. ASCII being a widely adopted character encoding standard ensures compatibility with a broad range of software, hardware and communication protocols in the automation infrastructure. Further, fixed length encoding of ASCII standard allows for direct access to individual characters, simplifying parsing and extraction. Additionally, numerous programming languages, including domain-specific languages have built-in libraries for ASCII encoding. Moreover, while primarily used for machine-processing, ASCII-encoded character sequence can also be interpreted as human-readable text in certain contexts. This can be beneficial for debugging, analysis, or visualization purposes.

[0026] The method comprises determining, by the processing unit, whether an identifier associated with a target attribute exists within the encoded character sequence. As used herein, the “target attribute” refers to an attribute or a parameter of interest whose values are to be parsed and extracted. The target attribute is an industrial parameter. The identifier, in this context, refers to a unique name or a label associated with the target attribute that serves to identify and locate the target attribute within the encoded character sequence.

[0027] In an embodiment, the target attribute is an industrial parameter that corresponds to at least one of a network communication parameter and a process automation parameter. Network communication parameters are those parameters that facilitate connectivity among the engineering systems and the control devices within the automation infrastructure. Process automation parameters are those parameters that are used to monitor, control, or optimize the industrial processes in the automation infrastructure.

[0028] In an embodiment, the network communication parameter comprises at least one of an Internet Protocol (IP) address, a subnet mask, and a default gateway associated with one of a control device and an engineering system of the industrial automation infrastructure. The IP address parameter uniquely identifies a device (in this context, a control device or a computer hosting the engineering system) on a network. In an embodiment, a valid IP address of the drive configured in a network may be sent to a recipient engineering system from a control device on demand by the recipient engineering system, in the form of XML attribute “IP ADDRESS” using ACX format. The subnet mask parameter defines the network range and facilitates in identifying devices belonging to the same network. The default gateway acts as a router to direct traffic between different networks in the industrial automation infrastructure. In an embodiment, the process automation parameter comprises at least one of a control type, voltage, current, rotational speed, torque, and power factor associated with a drive communicably connected to a motor in the industrial automation infrastructure. The process automation parameter may comprise control type information such as the specific control logic or strategy employed for the drive.

[0029] Across embodiments, the processing unit may employ one or more predefined pattern-matching rules or logic to identify whether the identifier associated with the target attribute exists in the encoded character sequence. In an embodiment, determining whether the identifier associated with the target attribute exists within the encoded character sequence comprises comparing the identifier with one or more predefined substrings stored in a pattern repository. The pattern repository may be a database. The pattern repository serves as a centralized repository of the one or more predefined substrings that can be accessed by a parsing module to facilitate the determination process.

[0030] Advantageously, the centralized nature of the pattern repository facilitates easy access of the one or more substrings to the processing unit. Furthermore, the pattern repository may be suitably updated and modified as needed to accommodate for new target attributes for evolving data handling requirements within the industrial automation infrastructure.

[0031] When the identifier associated with the target attribute exists within the encoded character sequence (as determined by the processing unit), the method comprises recording, by the processing unit, a start position and an end position of the identifier within the encoded character sequence. In an embodiment, recording the start position of the identifier within the encoded character sequence comprises recording a runtime offset associated with the identifier in the encoded character sequence. The runtime offset corresponds to an offset between an initial position (or position corresponding to a first byte) of the encoded character sequence and the start position of the identifier.

[0032] Advantageously, by recording the runtime offset, the processing unit obtains crucial information about the location of the identifier for enabling subsequent data handling described herein. Consequently, the processing unit is capable of handling identifiers located at various positions within the encoded character sequence.

[0033] The method further comprises determining, by the processing unit, one or more preconfigured positions relative to at least one of the start position and the end position of the identifier within the encoded character sequence, by referencing a schema associated with a file format of the file. The one or more preconfigured positions are adapted to accommodate one or more data elements (such as one or more bytes) being indicative of a length of one or more attribute values (for example, bytes of an IP address) associated with the target attribute. In this context, length of the one or more attribute values corresponds to the number of data elements or number of bytes of the attribute value(s) to be extracted.

[0034] In some embodiments, the one or more preconfigured positions may be located downstream of the end position of the identifier, i.e., relative to the end position of the identifier. In some embodiments, the one or more preconfigured positions may be located upstream of the start position of the identifier, i.e. relative to the start position of the identifier. In some other embodiments, the one or more preconfigured positions comprises a plurality of preconfigured positions that may be located both upstream of the start position of the identifier and downstream of the end position of the identifier.

[0035] As used herein, the “schema”, or “data-definition schema” associated with the file format of the file, refers to a formal description of the structure, format, and relationships of data elements (i.e., individual components or fields that make up the data, such as bytes of binary data) within the file. The schema outlines the organization, types, and relationships of the data elements within the file, and provides a blueprint for how the data is structured and how the data is to be interpreted.

[0036] In an embodiment, the method may involve a step of determining, by the processing unit, a size (for e.g., byte size) of each attribute value to be extracted by referencing the schema associated with the file format of the file prior to extraction of the one or more attribute values from the encoded character sequence. Advantageously, such determination enables accurate and selective extraction of the attribute value(s) from the encoded character sequence.

[0037] In some embodiments pertaining to certain file formats, the one or more preconfigured positions are located at a preconfigured offset from the end position of the identifier associated with the target attribute. That is, the preconfigured offset refers to the offset between the end position of the identifier and an initial position of the one or more preconfigured positions, in case of unidirectional parsing. It should be appreciated that the preconfigured offset may vary for different file formats. The preconfigured offset is determined based on a data type (for example, integer, string etc.) associated with the one or more attribute values, by referencing the schema associated with the file format of the file. For example, in case of ACX files, the preconfigured offset for a “string” data type of the one or more attribute values may be two positions, and for “unsigned integer” data type of the one or more attribute values may be three. As an example, in case the target attribute is the name of a station, the one or more attribute values associated with the name of the station are of string data type, and the preconfigured offset may be two positions. As another example, in case the target attribute is an IP address, the one or more attribute values associated with the IP address are of unsigned integer data type, and the preconfigured offset may be three positions.

[0038] In some other embodiments pertaining to certain other file formats, such as but not limited to GZIP compressed file format, there may not be any preconfigured offset between the end position of the identifier and the initial position of the one or more preconfigured positions in the encoded character sequence. In other words, it may be understood that the preconfigured offset may be zero for the GZIP file format.

[0039] Advantageously, determination of the preconfigured offset enables accurate identification of the length of the one or more attribute values associated with the target attribute, which subsequently enables accurate extraction of the one or more attribute values from the encoded character sequence.

[0040] The method further comprises extracting, by the processing unit, the one or more attribute values from the encoded character sequence based on the one or more preconfigured positions and the length of the one or more attribute values determined by referencing the data-definition schema. The extracted attribute values may be converted into corresponding binary form for further processing.

[0041] In an embodiment, when the number of attribute values is one, extracting the one attribute from the encoded character sequence comprises extracting the attribute value from a first value position in the encoded character sequence, wherein the first value position is located at a fixed offset from a final position of the one or more preconfigured positions. That is, the attribute value to be extracted may be spaced apart by a first fixed offset from the final position of the one or more preconfigured positions. In an alternate embodiment, there may not be any offset between the first value position and the final position of the one or more preconfigured positions. In other words, it may be understood that the first fixed offset is zero.

[0042] In an embodiment, when the number of attribute values is more than one, extracting the attribute values from the encoded character sequence comprises, firstly, extracting a first attribute value from the first value position in the encoded character sequence. The first value position is located at a fixed offset from the final position of the one or more preconfigured positions. In the embodiment, the method further comprises extracting one or more subsequent attribute values from one or more subsequent value positions in the encoded character sequence. Each of the subsequent value positions may be located at a corresponding subsequent fixed offset from its preceding value position in the encoded character sequence. In a further embodiment, the length of the first fixed offset may be equal to the length of each of the subsequent fixed offsets.

[0043] In an alternate embodiment, there may not be any offset between the first value position and the final position of the one or more preconfigured positions. Further, there may not be any subsequent offsets between the one or more subsequent value positions. In other words, it may be understood that the first fixed offset as well as the one or more subsequent fixed offsets may be zero.

[0044] Advantageously, determination of the first fixed offset and the subsequent fixed offsets enables accurate extraction of the one or more attribute values from the encoded character sequence, dispensing the need to extract other characters or values from the encoded character sequence that are not of interest.

[0045] In case of network communication parameters such as IP address and station names, direct human interpretation is often desirable for monitoring, control, and diagnosis. In these cases, the extracted attribute values may be displayed in a human-readable format. This can allow the user / operator of the apparatus to identify and address any communication issues that may arise in the automation infrastructure.

[0046] In case of process automation parameters such as voltage or current associated with the drive, the extracted attribute values may be processed and analyzed directly by the recipient engineering system. The extracted attribute values may also be displayed to the user / operator facilitate monitoring, control, and diagnosis.

[0047] The computer-implemented method may be executed using, but not limited to, a domain-specific language (for example, Electronic Device Descriptive Language (EDDL)) configured or tailored for the industrial automation infrastructure. In other words, the method is compatible with an industrial automation infrastructure reliant on a domain-specific language for data handling. For example, a particular domain-specific language may be favoured in a process automation infrastructure, as it allows for more concise and efficient expression of domain-specific operations. Advantageously, the method of the present disclosure selectively targets and parses only the specific attributes or parameters, disregarding unnecessary data within the file. This approach can significantly improve efficiency of data handling and reduce computational overhead, especially when dealing with large or complex files. Further, the method is particularly beneficial for computer systems with limited processing capabilities, as it allows for efficient utilization of available computational resources, leading to improved performance.

[0048] Further, in scenarios where data parsing is performed on a compressed file, the method eliminates the need for prior decompression. For example, when performing data parsing on an ACX file, the method dispenses the requirement of converting the ACX file to XML format to carry out data parsing. This can significantly reduce computational time and resource utilization, as decompression can be a computationally intensive process. By avoiding unnecessary data processing and decompression, the method can optimize the utilization of system resources such as processing unit (such as CPU) and memory, leading to improved performance and responsiveness of the computer system. Further, reduced data transfer requirements resulting from avoiding unnecessary data processing and / or decompression can be particularly beneficial in situations with limited bandwidth and / or storage capacity.

[0049] Furthermore, the method of the present disclosure is capable of leveraging existing language features and libraries within the domain-specific language configured for the industrial automation infrastructure, thereby simplifying the data handling and the implementation of the parsing methodology. Consequently, the method eliminates the need for third-party libraries for parsing, thereby reducing external dependencies. Additionally, developers can utilize familiar tools and methodologies associated with the domain-specific language, accelerating the learning curve and minimizing development time to meet further data handling requirements in the automation infrastructure. Accordingly, the method enhances efficiency, reduces complexity, and promotes faster time-to-market for industrial automation solutions.

[0050] Advantageously, the method of the present disclosure enables industrial automation infrastructures such as process automation infrastructures that rely on domain-specific languages to be delivered with the same data parsing functionalities as that of factory automation infrastructures that generally rely on general-purpose languages for data handling.

[0051] However, it must not be construed that the computer-implemented method may only be executed using a domain-specific language. The method may also be effectively implemented using a general-purpose programming language like C# or Python, which may be favoured in certain factory automation infrastructures. Even in this context, the method eliminates the need for integrating third-party libraries for parsing, thereby reducing external dependencies. This is because the method is capable of leveraging existing language features and libraries within the general-purpose language, providing a self-contained and efficient solution.

[0052] In a further embodiment, the method further comprises overwriting the one or more attribute values in corresponding value positions in the encoded character sequence with one or more updated attribute values. The overwriting may be facilitated by a writing module, wherein the writing module refers to a machine-readable set of instructions stored in a memory component integrated with the computer. The writing module typically receives input from a user or a connected engineering system and modifies the corresponding attribute values within the encoded character sequence as per the received input. As an example, attribute value(s) associated with an IP address parameter may be updated with one or more updated values.

[0053] Advantageously, the ability to overwrite the one or more attribute values allows for modifications and updates to the data, enabling dynamic adjustments in the industrial automation infrastructure. The ability to update the attribute values can facilitate integration with other systems that require real-time data updates or control inputs.

[0054] According to one aspect, an apparatus for handling data in the industrial automation infrastructure is provided. The apparatus comprises one or more processing units and a memory coupled to the one or more processing units. The memory comprises programmable instructions which, when executed by the one or more processing units, cause the one or more processing units to perform the aforementioned method steps.

[0055] According to one aspect, a computer-readable storage medium is provided, which comprises instructions which, when executed by the one or more processing units, cause the one or more processing units to perform the aforementioned method steps.

[0056] According to one aspect, a computer program product is provided, having machine readable instructions stored therein, that when executed by the one or more processing units, cause the one or more processing units to perform the aforementioned method steps.

[0057] Features which are described in the context of separable aspects and embodiments of the disclosure may be used together and / or be interchangeable. Similarly, features described in the context of a single embodiment may also be provided separately or in any suitable subcombination.

[0058] The above-mentioned aspects, features, embodiments, and advantages will become more apparent and understandable with the following description of embodiments of the disclosure in conjunction with the corresponding drawings. The illustrated embodiments are intended to illustrate, but not limit the disclosure.

[0059] The present disclosure is further described hereinafter with reference to illustrated embodiments shown in the accompanying drawings, in which:

[0060] FIG 1 is a block diagram of an industrial automation infrastructure, in accordance with an embodiment of the present disclosure;

[0061] FIG 2 is a block diagram of an exemplary apparatus for handling data in the industrial automation infrastructure, in accordance with an embodiment of the present disclosure;

[0062] FIG 3 is a flowchart depicting steps of a computer implemented method for handling data in the industrial automation infrastructure, in accordance with an embodiment of the present disclosure;

[0063] FIG 4 is a flow diagram depicting method steps involved in extraction of one or more attribute values associated with a target variable, in accordance with an embodiment of the present disclosure;

[0064] FIG 5 is an exemplary block diagram that illustrates mapping of data elements in an encoded character sequence with a data-definition schema associated with an exemplary file format, in accordance with an embodiment of the present disclosure; and

[0065] FIG 6 is a block diagram of a data-definition schema associated with an exemplary file format, in accordance with an embodiment of the present disclosure.

[0066] Hereinafter, embodiments for carrying out the present disclosure are described in detail. The various embodiments are described with reference to the accompanying drawings, wherein like reference signs are used to refer to like elements throughout. In the following description, for the purpose of explanation, numerous specific details are set forth in order to provide a thorough understanding of one or more embodiments. It may be evident that such embodiments may be practiced without these specific details.

[0067] FIG 1 is a block diagram of an industrial automation infrastructure 100, according to an embodiment of the present disclosure. The industrial automation infrastructure 100 may not be physically confined to a single plant location but may extend beyond the physical boundaries of the plant. The industrial automation infrastructure 100 comprises an apparatus 102, one or more field devices 104, one or more control devices 106, and one or more engineering systems 108 communicating over one or more communication networks 110.

[0068] Across embodiments, the apparatus 102 may be a computer, such as a personal computer, a laptop computer, a tablet, a server, a virtual machine, and the like. The apparatus 102 is configured to implement the method of the present disclosure. The apparatus 102 may host an application capable of handling data and parsing a target attribute in accordance with the method of the disclosure. The apparatus 102 may further host a recipient engineering system.

[0069] In an embodiment, the apparatus 102 may be an industrial computer located in a physical industrial plant of the industrial automation infrastructure, which is accessible by a local user / operator in the plant. In another embodiment, the apparatus 102 is deployed on a local server and is accessible by the user / operator through local communication network(s). In yet another embodiment, the apparatus 102 is deployed in a cloud computing environment and is remotely accessible by a remote user / operator. As used herein, “cloud computing environment” refers to a processing environment comprising configurable computing physical and logical resources, for examples, networks, servers, storage, applications, services, etc., and data distributed over the one or more communication networks 110, for example, the internet. The cloud computing environment provides on demand network access to a shared pool of configurable computing physical and logical resources.

[0070] The one or more field devices 104 correspond to one or more physical components that directly interact with physical processes in the industrial automation infrastructure 100. In an embodiment, the one or more field devices 104 comprises a plurality of field devices 104-1 , 104-2 to 104-N. The one or more field devices 104 may include, but not be limited to, sensors, actuators, motors, pumps, turbines, transducers, valves, and the like. The one or more control devices 106 correspond to electronic or electromechanical systems that manage and regulate the industrial processes by interacting with the one or more field devices 104. In an embodiment, the one or more control devices 106 comprises a plurality of control devices 106-1 , 106-2 to 106-N. The one or more control devices 106 may be configured to receive sensory input associated with one or more field devices 104, process the sensory input, and send output signals to actuators or other control components in the automation infrastructure 100. The one or more control devices 106 may include, but not be limited to, Programmable Logic Controllers (PLCs), drives, Human-Machine Interfaces (HMIs), Controllers and the like.

[0071] The one or more engineering systems 108 refer to software-based platforms designed or adapted to configure, monitor, and / or diagnose the one or more field devices 104 and the one or more control devices 106 within the industrial automation infrastructure 100. In an embodiment, the one or more engineering systems 108 comprises a plurality of engineering systems 108-1 , 108-2 to 108-N. The one or more engineering systems 108 may include, but not be limited to, automation software platforms used to design, program and simulate automation systems, asset management systems that track and manage the lifecycle of industrial assets such as the field devices, or a platform combination thereof. Further, the one or more engineering systems 108 may include desktop-based tools and / or web server interfaces accessible through a web browser and hosted on remote servers.

[0072] The one or more communication networks 1 10 enable data transmission across the industrial automation infrastructure 100, i.e., across the one or more field devices 104, the one or more control devices 106, and the one or more engineering systems 108. Across embodiments, the one or more communication networks 1 10 may be wired networks, wireless networks, or any suitable combination thereof. The one or more communication networks 110 may include one or more portions that constitute a private network, a public network like Internet, or any suitable combination thereof. The one or more communication networks 110 may include, but not be limited to, ethernet networks, fieldbus networks, wireless networks, Controller Area Networks (CAN), DeviceNet, or a combination of two or more network types. One or more portions of the one or more communication networks 1 10 may communicate information through a transmission medium.

[0073] FIG 2 is a block diagram of an exemplary apparatus 102 for handling data in the industrial automation infrastructure 100, according to an embodiment. The apparatus 102 is communicatively coupled to the one or more field devices 104, the one or more control devices 106, and the one or more engineering systems 108 as shown in FIG 1. The apparatus 102 includes a processing unit 202, a memory 204 comprising a module package 206, a storage unit 216 comprising a pattern repository 218, an input unit 220, an output unit 222, and a bus 224.

[0074] The processing unit 202 as used herein, means any type of computational circuit, such as but not limited to, a microprocessor, a microcontroller, a complex instruction set microprocessor, a reduced instruction set microprocessor, a very long instruction word microprocessor, an explicitly parallel instruction computing microprocessor, a graphics processor, a digital signal processor (DSP), or any other type of processing circuit. The processing unit 202 may also include embedded controllers, such as generic or programmable logic devices, application-specific integrated circuits, single chip computers, and the like. In another embodiment, the apparatus 100 may comprise a plurality of processing units 202 functioning in conjunction to execute the method of the present disclosure.

[0075] The memory 204 may be non-transitory volatile memory and / or non-volatile memory. The memory 204 may be coupled for communication with the processing unit 202, such as being a computer readable storage medium. The processing unit 202 may execute instructions and / or code stored in the memory 204. A variety of computer-readable instructions may be stored in and accessed from the memory 204. The memory 204 may include any suitable elements for storing data and machine-readable instructions, such as read-only memory, random access memory, erasable programmable read only memory, electrically erasable programmable read only memory, a hard drive, a solid-state drive, a removable media drive for handling flash drives, compact disks, diskettes, magnetic tape cartridges, memory cards, and the like.

[0076] The memory 204 includes the module package 206 stored in the form of machine-readable instructions on any of the above-mentioned storage media and may be in communication to and executed by the processing unit 202. The machine-readable instructions are executed by the processing unit 202, which is capable of interpreting and executing instructions written in a domain-specific language configured for the industrial automation infrastructure. As an example, the domain-specific language is Electronic Device Descriptive Language (EDDL). EDDL provides a standardized framework for describing and interacting with field devices, enabling integration and interoperability within the automation infrastructure 100. When the machine-readable instructions are executed by the processing unit 202, the module package 206 causes the processing unit 202 to perform the method of data handling according to the present disclosure, which will be explained in detail later. The module package 206 further comprises a pre-processing module 208, a parsing module 210, an extraction module 212, and a writing module 214. Each of the pre-processing module 208, the parsing module 210, the extraction module 212, and the writing module 214 is stored in the form of sets of machine-readable instructions in the memory 204. These sets of machine-readable instructions may be non-discrete.

[0077] The processing unit 202 executes one or more instructions contained in the pre-processing module 208 to receive a stream of binary data from a file from at least one of an upstream control device 106 (such as, but not limited to, a variable frequency drive connected to a motor) and an upstream engineering system 108 in the industrial automation infrastructure 100. The upstream control device 106 and the upstream engineering system 108 referred herein may act as intermediaries in a data transmission process in the automation infrastructure by way of receiving the binary data or the file from other entities or may act as sources that generate the file themselves by receiving user input. The stream of binary data received from the file may comprise a plurality of bytes of information. In an embodiment, the file so received may be a compressed file. As an example, the compressed file may be of Access description Compressed and extensible (ACX) file format, which is essentially a compressed form of XML. The processing unit 202 is configured to leverage built-in language features of the programming language, which may be the domain-specific language, for storing the stream of binary data in a data structure. The data structure may be a reference array or a list.

[0078] The processing unit 202 further executes one or more instructions contained in the pre-processing module 208 to convert the stream of binary data from the data structure to an encoded character sequence. In an embodiment where the stream of binary data comprises a plurality of bytes, converting the stream of binary data from the data structure to the encoded character sequence comprises assigning each byte of the stream of binary data to a character type variable based on a character encoding standard, which converts each byte of the stream of binary data to a corresponding character. Each of the resulting characters are then concatenated to obtain the encoded character sequence. Such conversion is facilitated by built-in language features of the domain-specific language configured for the industrial automation infrastructure. In a further embodiment, the character encoding standard is the ASCII standard, and the resultant character sequence is an ASCII character sequence. FIG 5 illustrates an exemplary ASCII character sequence resulting out of such conversion, which will be explained later.

[0079] The processing unit 202 then executes one or more instructions contained in the parsing module 210 to determine whether an identifier associated with a target attribute exists within the encoded character sequence. The parsing module 210 is designed to analyse and interpret the encoded character sequence, typically in a structured format. The target attribute referred to herein corresponds to an attribute or a parameter of interest whose values are to be parsed and extracted. The identifier, in this context, refers to a unique name or a label associated with the target attribute that serves to identify and locate the target attribute within the encoded character sequence. Across embodiments, the parsing module 210 may employ one or more predefined pattern-matching rules or logic to identify whether the identifier associated with the target attribute exists in the encoded character sequence.

[0080] When the identifier associated with the target attribute exists within the encoded character sequence (as determined by the processing unit 202), the processing unit 202 executes one or more instructions contained in the parsing module 210 to record a start position and an end position of the identifier within the encoded character sequence. The processing unit 202 then refers to a data-definition schema associated with a file format of the file (for example, schema associated with the ACX file) to determine one or more preconfigured positions relative to at least one of the start position and the end position of the identifier within the encoded character sequence, by way of execution of one or more instructions in the parsing module 210. The one or more preconfigured positions are adapted to accommodate one or more data elements (or one or more bytes) being indicative of a length of one or more attribute values (for example, bytes of an IP address) associated with the target attribute. In this context, length of the one or more attribute values corresponds to the number of data elements or number of bytes of the attribute value(s) to be extracted.

[0081] In an embodiment, the processing unit 202 then executes one or more instructions contained in the parsing module 210 to determine the size of each attribute value to be extracted by referencing the schema associated with the file format of the file prior to extraction of the one or more attribute values from the encoded character sequence.

[0082] Further, the processing unit 202 executes one or more instructions contained in the extraction module 212 to extract the one or more attribute values from the encoded character sequence based on the one or more preconfigured positions and the length of the one or more attributes determined by the processing unit 202 by referencing the data-definition schema. The manner in which the extraction occurs will be explained in further detail later.

[0083] The processing unit 202 may execute one or more instructions contained in the writing module 214 to overwrite the one or more attribute values in corresponding value positions in the encoded character sequence with one or more updated attribute values. The processing unit 202 is configured to receive input from a user or a connected engineering system 108 and modify the corresponding attribute values within the encoded character sequence as per the received input, by way of execution of one or more instructions in the writing module 214. As an example, attribute values associated with an IP address attribute may be updated with one or more updated values in the encoded character sequence.

[0084] The storage unit 216 comprises the pattern repository 218. In this context, the pattern repository is a centralized repository of one or more predefined substrings associated with one or more names / labels, that can be accessed by the processing unit 202 to determine whether the identifier associated with the target attribute exists in the encoded character sequence. In the present embodiment, determining whether the identifier associated with the target attribute exists within the encoded character sequence comprises comparing the identifier with the one or more predefined substrings stored in the pattern repository 218. The storage unit 216 and / or the pattern repository 218 may be provided using various types of technologies, such as but not limited to solid state drives, hard disk drives, flash memory and the like, and may be stored in various formats, such as relational databases, non-relational databases, files, spreadsheets, extended markup files, etc. In an exemplary embodiment, the pattern repository 218 is a database.

[0085] The input unit 220 is configured to receive the file and various other inputs and communicate the file and the other inputs to the processing unit 202. Further, the input unit 220 may include ports to receive input from user input devices such as keypad, touch sensitive display, etc. capable of receiving user inputs, such as those which may be required by the processor 202 for overwriting existing data in the encoded character sequence, by executing instructions in the writing module 214. The output unit 222 may include ports to output data via an output device, such as display device with a graphical interface for displaying the one or more attribute values extracted by the processing unit 202 and / or overwritten by the processing unit. The bus 224 acts as interconnect between the processing unit 202, the memory 204, the storage unit 216, the input unit 220, and the output unit 222.

[0086] Those of ordinary skill in the art will appreciate that the architecture depicted in FIG 2 may vary for particular implementations. For example, other peripheral devices such as an optical disk drive and the like, Local Area Network (LAN) / Wide Area Network (WAN) / Wireless (e.g. Wi-Fi) adapter, graphics adapter, disk controller, input / output (I / O) adapter etc. may also be used in addition to or in place of the hardware depicted. The depicted example is provided for the purpose of explanation only and is not meant to imply architectural limitations with respect to the present disclosure.

[0087] FIG 3 is a flowchart depicting steps of a computer implemented method 300 for handling data in the industrial automation infrastructure 100, according to an embodiment of the present disclosure.

[0088] At step 302, the processing unit 202 receives the stream of binary data from the file from at least one of an upstream control device 106 and an upstream engineering system 108 in the industrial automation infrastructure. The upstream control device 106 and the upstream engineering system 108 referred to herein may act as intermediaries in a data transmission process in the automation infrastructure by way of receiving the binary data or the file from other entities or may act as sources that generate the file themselves by receiving user input. The stream of binary data received from the file may comprise a plurality of bytes of information.

[0089] In an exemplary embodiment, the file in a compressed format, particularly the ACX format, is received from a drive (not shown). In the embodiment, the file is received by the pre-processing module 208 associated with the recipient engineering system (being a software-based platform) supported by the apparatus 102. The file is received from the drive upon request by the recipient engineering system.

[0090] At step 304, the received stream of binary data is stored in a data structure by leveraging built-in language features of the domain-specific language by the processing unit 202. In an embodiment, storing the received stream of binary data in the data structure comprises storing the stream of binary data in a reference array. In a further embodiment, the reference array is a singledimensional array. In another embodiment, storing the received stream of binary data in the data structure comprises storing the stream of binary data in a list.

[0091] The choice between the reference array and the list may be made based on the nature size of the data, i.e., fixed-size data or dynamic-size data. The reference array is suitable for scenarios where the size of the binary data is known at the outset. Storing the stream of binary data in the list is suitable for scenarios where the size of the binary data is variable or unknown at the outset. Lists allow for flexible insertion, deletion, and modification of data elements, making them suitable for applications that require dynamic data management. At step 306, the processing unit 202 converts the stream of binary data from the data structure to the encoded character sequence. In an embodiment where the stream of binary data comprises a plurality of bytes, converting the stream of binary data from the data structure to the encoded character sequence involves assigning each byte of the stream of binary data to a character type variable based on a character encoding standard. The character type variable may be pre-defined in the domain-specific language. The assignment of the binary data to the character type variable enables converting each byte of the stream of binary data to a corresponding character. Each of the resulting characters are then concatenated to obtain the encoded character sequence. The encoded character sequence may be stored in a data structure, such as an array or a list, which may be assigned to a user-defined variable. The conversion of binary data into the encoded character sequence facilitates efficient machine processing and selective parsing and extraction of desired data elements from the stream of binary data.

[0092] In a further embodiment, each byte of the stream of binary data is assigned to the character type variable based on ASCII encoding standard to convert each byte of the binary data to a corresponding ASCII character. Each resultant ASCII character is then concatenated to obtain the encoded character sequence. In this embodiment, the encoded character sequence is an ASCII character sequence. While primarily used for machine-processing, ASCII-encoded character sequence can also be interpreted as human-readable text in certain contexts. This can be beneficial for debugging, analysis, or visualization purposes.

[0093] At step 308, the processing unit 202 determines whether the identifier associated with the target attribute exists within the encoded character sequence by execution of one or more instructions contained in the parsing module 210. Across embodiments, the parsing module 210 may employ one or more predefined pattern-matching rules or logic to identify whether the identifier associated with the target attribute exists in the encoded character sequence. In an embodiment, determining whether the identifier associated with the target attribute exists within the encoded character sequence comprises comparing the identifier with one or more predefined substrings stored in the pattern repository 218.

[0094] Advantageously, the centralized nature of the pattern repository 218 facilitates easy access of the one or more substrings to the parsing module 210. Furthermore, the pattern repository 218 may be suitably updated and modified as needed to accommodate for new target attributes for evolving data handling requirements within the industrial automation infrastructure 100. The target attribute may be an industrial parameter. In some embodiments, the target attribute corresponds to at least one of a network communication parameter and a process automation parameter. Network communication parameters are those parameters that facilitate connectivity among the engineering systems and the control devices within the automation infrastructure 100. Process automation parameters are those parameters that are used to monitor, control, or optimize the industrial processes in the automation infrastructure 100.

[0095] In an embodiment, the network communication parameter comprises at least one of an Internet Protocol (IP) address, a subnet mask, and a default gateway associated with one of a control device and an engineering system of the industrial automation infrastructure. The IP address parameter uniquely identifies a device (in this context, a control device or a computer hosting the engineering system) on a network. In an embodiment, a valid IP address of the drive configured in a network may be sent to the engineering system on demand by the engineering system in the form of XML attribute “IP ADDRESS” using ACX format. The subnet mask parameter defines the network range and facilitates in identifying devices belonging to the same network. The default gateway acts as a router to direct traffic between different networks in the industrial automation infrastructure. In an embodiment, the process automation parameter comprises at least one of a control type, voltage, current, rotational speed, torque, and power factor associated with a drive communicably connected to a motor in the industrial automation infrastructure. The process automation parameter may comprise control type information such as the specific control logic or strategy employed for the drive.

[0096] At step 308, if the processing unit 202 determines that the identifier does not exist in the encoded character sequence, the method 300 proceeds to step 310. At step 310, a message may be returned to a user indicating that the target attribute is not found in the encoded character sequence. For example, the message may read “Error: Attribute not found”.

[0097] At step 308, if the processing unit 202 determines that the identifier exists within the encoded character sequence, the method 300 proceeds to step 312.

[0098] At step 312, the processing unit 202 records a start position and an end position of the identifier within the encoded character sequence. This provides information pertaining to the location of the identifier within the encoded character sequence.

[0099] In an embodiment, recording the start position of the identifier comprises recording a runtime offset associated with the identifier in the encoded character sequence. The runtime offset corresponds to an offset between an initial position (i.e., the first position, or position corresponding to the first byte) of the encoded character sequence and the start position of the identifier. Advantageously, by recording the runtime offset, the processing unit 202 obtains crucial information about the location of the identifier for enabling subsequent data handling. Consequently, the processing unit 202 is capable of handling identifiers located at various positions within the encoded character sequence.

[0100] At step 314, the processing unit 202 determines the one or more preconfigured positions relative to at least one of the start position and the end position of the identifier within the encoded character sequence, by referencing the data-definition schema associated with the file format of the file. The data-definition schema being referred defines the structure, format, and relationships of data elements of the received file. The one or more preconfigured positions are adapted to accommodate one or more data elements (for example, one or more bytes) being indicative of a length of one or more attribute values (for example, bytes of an IP address) associated with the target attribute. In this context, length of the one or more attribute values corresponds to the number of data elements or number of bytes of the attribute value(s) to be extracted.

[0101] In some embodiments, the one or more preconfigured positions may be located downstream of the end position of the identifier, i.e., relative to the end position of the identifier. In some embodiments, the one or more preconfigured positions may be located upstream of the start position of the identifier, i.e. relative to the start position of the identifier. In some other embodiments, the one or more preconfigured positions comprises a plurality of preconfigured positions that may be located both upstream of the start position of the identifier and downstream of the end position of the identifier.

[0102] In an embodiment, the method 300 may involve a step (not illustrated) of determining, by the processing unit 202, a size (for e.g., byte size) of each attribute value to be extracted by referencing the schema associated with the file format of the file prior to extraction of the one or more attribute values from the encoded character sequence. This step may be performed by the processing unit 202 by executing one or more instructions contained in the parsing module 210.

[0103] In some embodiments pertaining to certain file formats, the one or more preconfigured positions are located at a preconfigured offset from the end position of the identifier associated with the target attribute. That is, the preconfigured offset refers to the offset between the end position of the identifier and an initial position of the one or more preconfigured positions, in case of unidirectional parsing. It should be appreciated that the preconfigured offset may vary for different file formats. The preconfigured offset is determined based on a data type (for example, integer, string etc.) associated with the one or more attribute values by referencing the schema associated with the file format of the file.

[0104] Advantageously, determination of the preconfigured offset enables accurate identification of the length of the one or more attribute values associated with the target attribute, which subsequently enables accurate extraction of the one or more attribute values from the encoded character sequence.

[0105] At step 316, the processing unit 202 extracts the one or more attribute values from the encoded character sequence based on the one or more preconfigured positions and the length of the one or more attribute values.

[0106] Optionally and as per requirement, the method 300 may further comprise a step (not illustrated) of overwriting, by the processing unit 202, the one or more attribute values in corresponding value positions in the encoded character sequence with one or more updated attribute values. The extracted attribute values may be converted into corresponding binary form to facilitate overwriting. This overwriting may be performed by executing one or more instructions contained in the writing module 214. As an example, attribute values associated with an IP address parameter may be updated with one or more updated values based on requirement. Advantageously, the ability to overwrite the one or more attribute values allows for modifications and updates to the data, enabling dynamic adjustments in the industrial automation infrastructure. The ability to update the attribute values can facilitate integration with other systems that require real-time data updates or control inputs.

[0107] In some embodiments where there exist multiple target attributes of interest, steps 308 to 316 may be iteratively executed to parse and extract attribute values associated with each of the target attributes.

[0108] FIG 4 is a flow diagram depicting method 400 steps involved in extraction of the one or more attribute values associated with the target variable according to the method 300. Particularly, the step 316 comprises step 402 and step 404, in accordance with the embodiment depicted by FIG 4.

[0109] At step 402, the processing unit 202 determines whether the length of the one or more attribute values remaining to be extracted is zero. In this context, length of the one or more attribute values corresponds to the number of data elements or number of bytes of the attribute value(s) to be extracted. In other words, at step 402, the processing unit 202 determines if there are any attribute value(s) remaining to be extracted from the encoded character sequence.

[0110] If the length of the one or more attribute values remaining to be extracted is a natural number (i.e., non-zero), the method 400 proceeds to step 404. Else, the method 400 is terminated.

[0111] At step 404, the processing unit 202 extracts one data element or one byte of the one or more attribute values. Thereafter, the method 400 proceeds from step 404 to step 402 to determine if there are any attribute value(s) remaining to be extracted. The steps 402 and 404 are repeated iteratively until all bytes associated with the attribute values are extracted, i.e., when the length of the one or more attribute values remaining to be extracted becomes zero. The steps 402 and 404 are performed by the processing unit 202 by executing a set of instructions in the extraction module 212.

[0112] In an embodiment, when the number of attribute values is one, extracting the one attribute from the encoded character sequence comprises extracting 404 the attribute value from a first value position in the encoded character sequence, wherein the first value position is located at a fixed offset from a final position of the one or more preconfigured positions.

[0113] In an embodiment, when the number of attribute values is more than one, extracting the attribute values from the encoded character sequence comprises, firstly, extracting 404 a first attribute value from the first value position in the encoded character sequence. The first value position is located at a first fixed offset from the final position of the one or more preconfigured positions. In the embodiment, the method 400 further comprises extracting 404 one or more subsequent attribute values from one or more subsequent value positions in the encoded character sequence. Each of the subsequent value positions is located at a corresponding subsequent fixed offset from its preceding value position in the encoded character sequence. In a further embodiment, the length of the first fixed offset may be equal to the length of each of the subsequent fixed offsets.

[0114] FIG 5 is an exemplary block diagram that illustrates mapping 500 of data elements in the encoded character sequence with the data-definition schema associated with the ACX file format, according to an embodiment of the present disclosure.

[0115] Referring FIG 5, reference numeral 502 indicates a tabular representation of the encoded character sequence (i.e., ASCII character sequence in the present embodiment). The encoded character sequence is obtained from step 306 of the method 300 (see FIG 3). In the representation shown, a first column 504 represents decimal values corresponding to each byte of the stream of binary data, and a second column 506 represents corresponding ASCII characters corresponding to each byte of the stream of binary data. Each row of the representation 502 represents a byte of data. The direction arrow R indicates the direction in which the data is being processed. In the present embodiment, the processing of data is unidirectional along direction R.

[0116] In the present embodiment, the target attribute is an IP address associated with the drive. Particularly, the target attribute is an IPv4 address associated with the drive. The unique identifier 508 associated with the IP address is “IP ADDRESS”. At step 308, when the processor 202 identifies that the identifier 508 exists within the encoded character sequence, the method 300 proceeds to step 312.

[0117] Referring FIG 5 in conjunction with FIG 3, at step 312, the processing unit 202 records the start position 508-1 and the end position 508-N of the identifier 508 (“IP ADDRESS”). The size or length of the identifier 508 may be determined either by counting the number of characters in the identifier 508, or by referring to the data-definition schema and the ASCII character sequence wherein a predetermined byte (in this case, accommodated in an initial position 510 of the encoded character sequence) is indicative of the size or length of the identifier.

[0118] In the present embodiment, recording the start position 508-1 of the identifier 508 comprises recording the runtime offset 512. The runtime offset 512 corresponds to the offset between the initial position 510 of the encoded character sequence and the start position 508-1 of the identifier 508. The runtime offset 512 provides an indication of where the identifier 508 exists in the encode character sequence. The start position 508-1 of the identifier 508 is then set as a current position in the encoded character sequence.

[0119] Advantageously, by recording the runtime offset 512, the processing unit 202 obtains crucial information about the location of the identifier 508 for enabling subsequent data handling described herein. Consequently, the processing unit 202 is capable of handling identifiers 508 located at various positions within the encoded character sequence.

[0120] In the present embodiment, a fieldbus interface 514 establishes data communication between the drive and the recipient engineering system. The fieldbus interface 514 plays a crucial role in transmitting data related to the ACX file and its associated schema 516. That is, the fieldbus interface 514 transfers the data containing the IP address attribute, adhering to the specified schema of the ACX file.

[0121] The schema 516 associated with the file format of the file (here, ACX), refers to a formal description of the structure, format, and relationships of data elements (i.e., individual components or fields that make up the data, such as bytes of binary data) within the file. The schema 516 outlines the organization, types, and relationships of the data elements within the file, and provides a blueprint for how the data is structured and how the data is to be interpreted.

[0122] In the present embodiment, the schema 516 comprises an IP address attribute definition 518 (i.e., target attribute definition). The IP address definition 518 comprises a length block 518A and a value block 518B.

[0123] The length block 518A indicates how many bytes (or rows / positions) store information related to total length of the IP address data (i.e., total number of bytes of the IP address). In other words, the length block 518 indicates the number (i.e., byte size) of one or more preconfigured positions 520. The value block 518B indicates a size (i.e., byte size) of each attribute value associated with the target attribute.

[0124] At step 314, the processor 202 determines the one or more preconfigured positions 520 relative to the end position 508-N of the identifier 508 by referencing the schema 516 associated with the ACX file format. In the present embodiment, the one or more preconfigured positions 520 are located downstream of the end position 508-N. The one or more preconfigured positions 520 are adapted to accommodate one or more data elements (or one or more bytes) being indicative of the length of the one or more attribute values associated with the target attribute. In this context, length of the one or more attribute values corresponds to the number of data elements or number of bytes of the attribute value(s) to be extracted.

[0125] In alternate embodiment, the one or more preconfigured positions may be positioned upstream of the identifier, depending upon data representation style and / or data format of the file.

[0126] In the present embodiment, the processing unit 202 determines the number of one or more preconfigured positions 520 by referring to the length block 518A of the IP address attribute definition 518. As depicted, the length block 518A indicates that the information pertaining to the total length of the IP address attribute is contained in sixteen bits (Length=Uint16 indicates that the information pertaining to length of the IP address is contained in sixteen bits) or two bytes of data in the encoded character sequence. In other words, the number of one or more preconfigured positions 520 is two. That is, the processing unit 202 determines that two preconfigured positions 520-1 , 520-N in the encoded character sequence accommodate a byte each, that indicate the length of the one or more attribute values.

[0127] In the present embodiment, the preconfigured positions 520 are represented in a Little-Endian byte ordering format. That is, the first preconfigured position 520-1 accommodates the least significant byte and the last preconfigured position 520-N accommodates the most significant byte. As depicted, the first preconfigured position 520-1 accommodates an ASCII text that maps to decimal numeral 4. This indicates that the length of the one or more attribute values is four. That is, four attribute values are to be extracted from the ASCII character sequence.

[0128] Further, the processing unit 202 refers to the value block 518B of the IP address attribute definition 518, which indicates the size (i.e., byte size) of each of the four attribute values to be extracted from the ASCII character sequence. As depicted, the value block 518B indicates that the size of each attribute value is eight bits or one byte. That is, the processing unit 202 determines that four attribute values, each of which is having a size of one byte, are to be extracted.

[0129] In the present embodiment, the one or more preconfigured positions 520 are located at a preconfigured offset 522 from the end position 508-N of the identifier 502. That is, the preconfigured offset 522 is the offset between the end position 508-N and the initial position (or the first position) 520-1 of the one or more preconfigured positions 520.

[0130] It should be appreciated that the preconfigured offset may vary for different file formats. The preconfigured offset may be determined based on the data type (for example, integer, string, etc.) associated with the one or more attribute values, by referencing the schema associated with the file format of the file. For example, in case of ACX files, the preconfigured offset for a “string” data type of the one or more attribute values may be two, and for “unsigned integer” data type of the one or more attribute values may be three. As an example, in case the target attribute is the name of a station, the one or more attribute values associated with the name of the station are of string data type, and the preconfigured offset is two. As another example, in case the target attribute is an IP address, the one or more attribute vales associated with the IP address are of unsigned integer data type, and the preconfigured offset is three positions. In the present embodiment, since the target attribute is IP address, the data type of the one or more attribute values associated with the IP address is unsigned integer, which is known from the IP address attribute definition 518 in the schema. Particularly, the value block 518 (which reads Value=acx_Uint8) indicates that each of the attribute values is an unsigned integer. Accordingly, the preconfigured offset 522 for the ACX file may be three positions, as can be seen from the representation 502. Once the one or more preconfigured positions 520 are determined based on the preconfigured offset 522, the current position is updated to the last preconfigured position 520-N of the one or more preconfigured positions 520.

[0131] In some other embodiments pertaining to certain other file formats, such as but not limited to GZIP compressed file format, there may not be any preconfigured offset between the end position of the identifier and the initial position of the one or more preconfigured positions in the encoded character sequence. In other words, it may be understood that the preconfigured offset may be zero for the GZIP file format.

[0132] Advantageously, determination of the preconfigured offset enables accurate identification of the length of the one or more attribute values associated with the target attribute, which subsequently enables accurate extraction of the one or more attribute values from the encoded character sequence.

[0133] At step 316, the processing unit 202 extracts the attribute values from one or more attribute value positions (or one or more value positions) 524 from the ASCII character sequence based on the preconfigured positions 520 and the length of the attribute values (i.e., 4 attribute values). As used herein, the terms “attribute value positions” or “value positions” refer to locations in the encoded character sequence that accommodate the attribute values therein.

[0134] Referring FIG 5 in conjunction with FIG 4, at step 402, the processing unit 202 determines that the length of attribute values remaining to be extracted is four, which is a natural number (i.e., non-zero). The method 400 then proceeds to step 404. At step 404, the processing unit 202extracts the first attribute value (ASCII text: A which corresponds to decimal value 192) from the first value position 524-1 .

[0135] In the present embodiment, the first value position 524-1 is located at a first fixed offset 526-1 from the final preconfigured position 520-N of the preconfigured positions 520. In case of ACX file format, the first fixed offset 526-1 is three positions, which is known by the processing unit 202. Once the first fixed offset 526-1 is determined, the current position is updated to the first value position 524-1 , from which the first attribute value is extracted by the processing unit 202.

[0136] Once the first attribute value is extracted, the method 400 proceeds back to step 402. The processing unit 202 then determines that the length of attribute values remaining to be extracted is three, which is a natural number. The method 400 then proceeds to step 404. At step 404, the processing unit 202 extracts the second attribute value (ASCII text: " which corresponds to decimal value 168) from the second value position 524-2. The second value position 524-2 is the subsequent value position to the first value position 524-1 .

[0137] In the present embodiment, the second value position 524-2 is located at a second fixed offset 526-2 (subsequent offset to the first fixed offset 526-1 in the ASCII character sequence). In case of ACX file format, the second fixed offset 526-2 is three positions, which is known by the processing unit 202. Once the second fixed offset 526-2 is determined, the current position is updated to the second value position 524-2, from which the second attribute value is extracted by the processing unit 202.

[0138] Once the second attribute value is extracted, the method 400 proceeds back to step 402. The processing unit 202 then determines that the length of attribute values remaining to be extracted is two, which is a natural number. The method 400 then proceeds to step 404. At step 404, the processing unit 202 extracts the third attribute value (ASCII text: -■ which corresponds to decimal value 172) from the third value position 524-3. The third value position 524-3 is the subsequent value position to the second value position 524-2.

[0139] In the present embodiment, the third value position 524-3 is located at a third fixed offset 526-3 (subsequent offset to the second fixed offset 526-2 in the ASCII character sequence). In case of ACX file format, the third fixed offset 526-3 is three positions, which is known by the processing unit 202Once the third fixed offset 526-3 determined, the current position is updated to the third value position 524-3, from which the third attribute value is extracted by the processing unit 202.

[0140] Once the third attribute value is extracted, the method 400 proceeds back to step 402. The processing unit 202 then determines that the length of attribute values remaining to be extracted is one, which is a natural number. The method 400 then proceeds to step 404. At step 404, the processing unit 202 extracts the fourth attribute value (ASCII text: E which corresponds to decimal value 200) from the fourth value position 524-4. The fourth value position 524-4 is the subsequent value position to the third value position 524-3. In the present embodiment, the fourth value position 524-4 is located at a fourth fixed offset 526- 4 (subsequent offset to the third fixed offset 526-3 in the ASCII character sequence). In case of ACX file format, the fourth fixed offset 526-4 is three positions, which is known by the processing unit 202Once the fourth fixed offset 526-4 determined, the current position is updated to the fourth value position 524-4, from which the fourth attribute value is extracted by the processing unit 202.

[0141] Once the fourth value attribute is extracted, the method 400 proceeds back to step 402. The processing unit 202 then determines that the length of attribute values remaining to be extracted is zero. In other words, all attribute values associated with the target variable have been extracted. The method 400 is then terminated. The extracted attribute values may be converted into corresponding binary form for further processing.

[0142] In the present embodiment, the length of the first fixed offset 526-1 is equal to the length of each of the subsequent fixed offsets 526-2, 526-3, 526-4. However, in other embodiments, for certain other file formats other than ACX, the length of the first fixed offset and subsequent fixed offsets may be non-equal. In certain other embodiments, there could be no offset between each of the attribute values. The presence and length of each of the offsets may be determined by referencing the schema associated with the corresponding file format.

[0143] Advantageously, determination of the first fixed offset and the subsequent fixed offsets enables accurate extraction of the one or more attribute values from the encoded character sequence, dispensing the need to extract other characters or values from the encoded character sequence that are not of interest.

[0144] Each of the extracted attribute values may be converted to a specified data type defined in the schema 516 for further processing and / or interpretation by the recipient engineering system or the apparatus 102 supporting the recipient engineering system.

[0145] In case of network communication parameters such as IP address and station names, direct human interpretation is often desirable for monitoring, control, and diagnosis. In these cases, the extracted attribute values may be displayed in a human-readable format. This can allow the user / operator of the apparatus 102 to identify and address any communication issues that may arise in the automation infrastructure 100.

[0146] In case of process automation parameters such as voltage or current associated with the drive, the extracted attribute values may be processed and analyzed directly by the recipient engineering system. The extracted attribute values may also be displayed to the user / operator facilitate monitoring, control, and diagnosis.

[0147] In a further embodiment, the processing unit 202 may execute one or more instructions in the writing module 214 to optionally overwrite the one or more attribute values in the corresponding value positions with one or more updated attribute values. The extracted attribute values may be converted into corresponding binary form to facilitate overwriting. For instance, the first IP address attribute value (ASCII text: A which corresponds to decimal value 192) in the first value position 524-1 may be replaced with an updated attribute value (for example, ASCII text: -> which corresponds to decimal value 172). The processing unit 202 typically receives input from a user or a connected engineering system 108 through the input unit 220, and modifies the corresponding attribute value(s) within the encoded character sequence as per the received input.

[0148] Advantageously, the ability to overwrite the one or more attribute values allows for modifications and updates to the data, enabling dynamic adjustments in the industrial automation infrastructure. The ability to update the attribute values can facilitate integration with other systems that require real-time data updates or control inputs.

[0149] FIG 6 is a block diagram of a data-definition schema 600 associated with an exemplary file format (ACX file format), according to an embodiment of the present disclosure. The overall schema 600 defines the organization of data within the ACX file, while the individual schema definitions 518, 602, 604 specify the structure and format of specific target attributes. In the present embodiment, the target attributes are network communication parameters, namely IP address, default gateway, and name of station.

[0150] As depicted, the IP address schema definition 518 comprises a length block which indicates that the information pertaining to the total length of the IP address attribute is contained in sixteen bits (Length=Uint16) or two bytes of data in the encoded character sequence. In other words, the number of one or more preconfigured positions for the IP address attribute is two. Further, the IP address schema definition 518 comprises a value block which indicates the length of each attribute value of the IP address, which is eight bits (Value=acx_Uint8) or one byte. Since the data type of each attribute value is unsigned integer (Uint), the preconfigured offset in the encoded character sequence may be three positions.

[0151] As depicted, the default gateway schema definition 602 comprises a length block which indicates that the information pertaining to the total length of the default gateway attribute is contained in sixteen bits (Length=Uint16) or two bytes of data in the encoded character sequence. In other words, the number of one or more preconfigured positions for the default gateway attribute is two. Further, the default gateway schema definition 602 comprises a value block which indicates the length of each attribute value of the default gateway, which is eight bits (Value=acx_Uint8) or one byte. Since the data type of each attribute value is unsigned integer (Uint), the preconfigured offset in the encoded character sequence may be three positions.

[0152] As used herein, “name of station” or “station name” refers to a unique name assigned to a specific device or a system within the automation infrastructure. The station name may be used to distinguish different entities and facilitate communication and coordination between the different entities. The station name may be used for various purposes, including but not limited to addressing a target recipient of data or commands, routing messages within a network, and tracking status and performance of different stations within the automation infrastructure.

[0153] As depicted, the “name of station” schema definition 604 comprises a length block indicates that the information pertaining to the total length of the “name of station” attribute is contained in sixteen bits (Length=Uint16) or two bytes of data in the encoded character sequence. In other words, the number of one or more preconfigured positions for the “name of station” attribute is two. Further, the “name of station” schema definition 604 comprises a value block which indicates that the data type of the “name of station” attribute value is of string type. Since the data type of each attribute value is of string type, the preconfigured offset in the encoded character sequence may be two positions.

[0154] Subsequent to obtaining the encoded character sequence from step 306, steps 308 to 316 may be iteratively performed to obtain attribute values associated with each of the target attributes.

[0155] The aforementioned method steps of the present disclosure may be executed using a domainspecific language (for example, Electronic Device Descriptive Language (EDDL)) configured for the industrial automation infrastructure by leveraging existing language features and libraries within the domain-specific language. In other words, the method is compatible with an industrial automation infrastructure reliant on a domain-specific language for data handling. For example, a particular domain-specific language may be favoured in a process automation infrastructure, as it allows for more concise and efficient expression of domain-specific operations.

[0156] Advantageously, the method of the present disclosure selectively targets and parses only the specific attributes or parameters, disregarding unnecessary data within the file. This approach can significantly improve efficiency of data handling and reduce computational overhead, especially when dealing with large or complex files. Further, the method is particularly beneficial for computer systems with limited processing capabilities, as it allows for efficient utilization of available computational resources, leading to improved performance.

[0157] Further, in scenarios where data parsing is performed on a compressed file, the method eliminates the need for prior decompression. For example, when performing data parsing on an ACX file, the method dispenses the requirement of converting the ACX file to XML format to carry out data parsing. This can significantly reduce computational time and resource utilization, as decompression can be a computationally intensive process. By avoiding unnecessary data processing and decompression, the method can optimize the utilization of system resources such as processing unit (such as CPU) and memory, leading to improved performance and responsiveness of the computer system. Further, reduced data transfer requirements resulting from avoiding unnecessary data processing and / or decompression can be particularly beneficial in situations with limited bandwidth and / or storage capacity.

[0158] Furthermore, the method of the present disclosure is capable of leveraging existing language features and libraries within the domain-specific language configured for the industrial automation infrastructure, thereby simplifying the data handling and the implementation of the parsing methodology. Consequently, the method eliminates the need for third-party libraries for parsing, thereby reducing external dependencies. Additionally, developers can utilize familiar tools and methodologies associated with the domain-specific language, accelerating the learning curve and minimizing development time to meet further data handling requirements in the automation infrastructure. Accordingly, the method enhances efficiency, reduces complexity, and promotes faster time-to-market for industrial automation solutions.

[0159] Advantageously, the method of the present disclosure enables industrial automation infrastructures such as process automation infrastructures that rely on domain-specific languages to be delivered with the same data parsing functionalities as that of factory automation infrastructures that generally rely on general-purpose languages for data handling.

[0160] However, it must not be construed that the computer-implemented method may only be executed using a domain-specific language. The method may also be effectively implemented using a general-purpose programming language like C# or Python, which may be favoured in certain factory automation infrastructures. Even in this context, the method eliminates the need for integrating third-party libraries for parsing, thereby reducing external dependencies. This is because the method is capable of leveraging existing language features and libraries within the general-purpose language, providing a self-contained and efficient solution.

[0161] The present disclosure may take the form of a computer program product comprising program modules accessible from computer-usable or computer-readable medium storing program code for use by or in connection with one or more computers, processors, or instruction execution systems. For the purpose of this description, a computer-usable or computer-readable medium is any apparatus that may contain, store, communicate, propagate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device. The medium may be electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system (or apparatus or device) or a propagation medium. Both processors and program code for implementing each aspect of the technology may be centralized or distributed (or a combination thereof).

[0162] The present disclosure may take the form of a computer-readable storage medium comprising instructions which, when executed by the one or more processing units, cause the one or more processing units to perform the method steps described hereinabove. The computer-readable storage medium may include, but not be limited to, a portable computer diskette, a hard disk, a random-access memory (RAM) device, a read-only memory (ROM) device, an erasable programmable read-only memory (EPROM or Flash memory) device, a portable compact disc read-only memory (CDROM), an optical storage device, and a magnetic storage device.

[0163] While the present disclosure has been described in detail with reference to certain embodiments, it should be appreciated that the present disclosure is not limited to those embodiments. The foregoing examples have been provided merely for the purpose of explanation and are in no way to be construed as limiting of the present disclosure disclosed herein. Those skilled in the art, having the benefit of the teachings of this specification, may effect numerous modifications thereto and changes may be made without departing from the scope of the disclosure in its aspects. List of References

[0164] 100 Industrial automation infrastructure

[0165] 102 Apparatus

[0166] 104 One or more field devices

[0167] 106 One or more control devices

[0168] 108 One or more engineering systems

[0169] 110 One or more communication networks

[0170] 202 Processing unit

[0171] 204 Memory

[0172] 206 Module package

[0173] 208 Pre-processing module

[0174] 210 Parsing module

[0175] 212 Extraction module

[0176] 214 Writing module

[0177] 216 Storage unit

[0178] 218 Pattern repository

[0179] 220 Input unit

[0180] 222 Output unit

[0181] 224 Bus

[0182] 300 Flowchart depicting computer implemented method of handling data in industrial automation infrastructure

[0183] 400 Flow diagram depicting method steps involved in extraction of one or more attribute values associated with a target variable

[0184] 500 Exemplary block diagram illustrating mapping of data elements in encoded character sequence with data-definition schema associated with exemplary file format

[0185] 502 Tabular representation of encoded character sequence

[0186] 504 First column

[0187] 506 Second column

[0188] 508 Identifier

[0189] 508-1 Start position of identifier

[0190] 508-N End position of identifier

[0191] 510 Initial position of encoded character sequence

[0192] 512 Runtime offset

[0193] 514 Fieldbus interface 516 Schema

[0194] 518 IP address attribute definition

[0195] 518A Length block

[0196] 518B Value block

[0197] 520 One or more preconfigured positions

[0198] 520-1 First preconfigured position

[0199] 520-N Final preconfigured position

[0200] 522 Preconfigured offset

[0201] 524 One or more value positions

[0202] 524-1 First value position

[0203] 524-2 Second value position

[0204] 524-3 Third value position

[0205] 524-4 Fourth value position

[0206] 526-1 First fixed offset

[0207] 526-2 Second fixed offset

[0208] 526-3 Third fixed offset

[0209] 526-4 Fourth fixed offset

[0210] 600 Block diagram of data-definition schema associated with exemplary file format

[0211] 602 Default gateway attribute definition

[0212] 604 Name of station attribute definition

Claims

Claims1. A computer-implemented method (300) of handling data in an industrial automation infrastructure (100), the method (300) comprising:- receiving, by a processing unit (202), a stream of binary data from a file;- storing the received stream of binary data in a data structure;- converting, by the processing unit (202), the stream of binary data from the data structure to an encoded character sequence;- determining, by the processing unit (202), whether an identifier (508) associated with a target attribute exists within the encoded character sequence; and- when the identifier (508) exists within the encoded character sequence, performing: o recording, by the processing unit (202), a start position (508-1 ) and an end position (508-N) of the identifier (508) within the encoded character sequence, o determining, by the processing unit (202), one or more preconfigured positions (520) relative to at least one of the start position (508-1 ) and the end position (508-N) of the identifier (508) within the encoded character sequence by referencing a schema (516, 600) associated with a file format of the file, wherein the one or more preconfigured positions (520) are adapted to accommodate one or more data elements being indicative of a length of one or more attribute values associated with the target attribute, and o extracting, by the processing unit (202), the one or more attribute values from the encoded character sequence based on the one or more preconfigured positions (520) and the length of the one or more attribute values.

2. The method (300) according to claim 1 , wherein storing the received stream of binary data in the data structure comprises storing the stream of binary data in one of a reference array and a list.

3. The method (300) according to claim 1 or claim 2, wherein the stream of binary data comprises a plurality of bytes, and wherein converting the stream of binary data from the data structure to the encoded character sequence comprises: assigning each byte of the stream of binary data to a character type variable defined based on a character encoding standard for converting each byte of the stream of binary data to a corresponding character; and concatenating each resultant character to obtain the encoded character sequence.

4. The method (300) according to claim 3, wherein each byte of the stream of binary data is assigned to the character type variable based on ASCII encoding standard to convert each byte of the stream of binary data to a corresponding ASCII character, and each resultant ASCII character is concatenated to obtain the encoded character sequence, wherein the encoded character sequence corresponds to an ASCII character sequence.

5. The method (300) according to any one of the preceding claims, wherein determining whether the identifier (508) associated with the target attribute exists within the encoded character sequence comprises comparing the identifier (508) with one or more predefined substrings stored in a pattern repository (218).

6. The method (300) according to any one of the preceding claims, wherein the target attribute is an industrial parameter that corresponds to at least one of a network communication parameter and a process automation parameter.

7. The method (300) according to claim 6, wherein the network communication parameter comprises at least one of an Internet Protocol (IP) address, a subnet mask, and a default gateway associated with one of a control device and an engineering system of the industrial automation infrastructure, and wherein the process automation parameter comprises at least one of a control type, voltage, current, rotational speed, torque, and power factor associated with a drive communicably connected to a motor in the industrial automation infrastructure.

8. The method (300) according to any one of the preceding claims, wherein recording the start position (508-1 ) of the identifier (508) within the encoded character sequence comprises recording a runtime offset (512) associated with the identifier (508) in the encoded character sequence, wherein the runtime offset (508) corresponds to an offset between an initial position (510) of the encoded character sequence and the start position (508-1 ) of the identifier (508).

9. The method (300) according to any one of the preceding claims, wherein the one or more preconfigured positions (520) are located at a preconfigured offset (522) from the end position (508-N) of the identifier (508) associated with the target attribute, and wherein the preconfigured offset (522) is determined based on a data type associated with the one or more attribute values by referencing the schema (516, 600) associated with the file format of the file.

10. The method (300) according to any one of the preceding claims, comprising determining, by the processing unit (202), a size of each attribute value to be extracted by referencing the schema (516, 600) associated with the file format of the file prior to extraction of the one or more attribute values from the encoded character sequence.1 1 . The method (300) according to any one of the preceding claims, wherein when the number of attribute values is one, extracting the one attribute value from the encoded character sequence comprises extracting the attribute value from a first value position (524-1 ) in the encoded character sequence, wherein the first value position (524-1 ) is located at a first fixed offset (526-1 ) from a final position (520-N) of the one or more preconfigured positions (520).

12. The method (300) according to any one of claims 1 -10, wherein when the number of attribute values is more than one, extracting the attribute values from the encoded character sequence comprises: extracting a first attribute value from a first value position (524-1 ) in the encoded character sequence, wherein the first value position (524-1 ) is located at a first fixed offset (526-1 ) from a final position (520-N) of the one or more preconfigured positions (520); and extracting one or more subsequent attribute values from one or more subsequent value positions (524-2, 524-3, 524-4) in the encoded character sequence, wherein each of said subsequent value positions (524-2, 524-3, 524-4) is located at a corresponding subsequent fixed offset from its preceding value position in the encoded character sequence.

13. The method (300) according to any of the preceding claims, further comprising overwriting, by the processing unit (202), the one or more attribute values in corresponding value positions (524-1 , 524-2, 524-3, 524-4) in the encoded character sequence with one or more updated attribute values.

14. An apparatus (102) for handling data in an industrial automation infrastructure (102), the apparatus comprising: one or more processing units (202); and a memory (204) coupled to the one or more processing units (202), wherein the memory (204) comprises programmable instructions which, when executed by the one or more processing units (202), cause the one or more processing units (202) to perform the method (300) according to claims 1 -13.

15. A computer-program product having machine-readable instructions stored therein, that when executed by one or more processing units (202), cause one or more processing units (202) to perform a method (300) according to claims 1 -13.

Citation Information

Patent Citations

  • Method and apparatus for facilitating efficient processing of extensible markup language documents

    US20080077606A1