Patent Description:
Various types of control systems communicate data between different sensors, devices, and user interfaces, etc., to enable control operations of other powered systems. For example, aircraft, locomotives, automobiles, surgical suites, power plants, etc., include many systems that communicate with each other using Industrial Ethernet networks in order to control operations of the aircraft, locomotives, automobiles, surgical suites, and power plants.

Industrial Ethernet networks are based on layer-<NUM> (Ethernet), but add proprietary protocols to achieve real-time communication. Some systems can use a time-sensitive network (TSN) to communicate data using standard methods for time synchronization and traffic management, allowing deterministic communication over standard Ethernet networks between end-devices. The IEEE <NUM> TSN suite standardizes layer-<NUM> communication so different networking protocols can provide deterministic communication while sharing the same infrastructure.

As Time-Sensitive Networks include more complex topologies, with redundant or dynamically changing links and large numbers of devices, rapid rescheduling of the communication flows between the devices becomes essential.

XP <NUM>, "Design of a Hybrid Genetic Algorithm for Time-Sensitive Networking", Arestova et al, August <NUM>, relates to extending the Ethernet standard. <NPL>, relates to search agents.

In one aspect, the present disclosure relates to a method for a Time-Sensitive Network (TSN) as claimed in claim <NUM>.

In another aspect, the present disclosure relates to a system according to claim <NUM>.

A full and enabling disclosure of the present description, including the best mode thereof, directed to one of ordinary skill in the art, is set forth in the specification, which refers to the appended figures, in which:.

The exemplary drawings are for purposes of illustration only and the dimensions, positions, order and relative sizes reflected in the drawings attached hereto can vary.

As used herein, the term "set" or a "set" of elements can be any number of elements, including only one. Additionally, as used herein, a "controller" or "controller module" can include a component configured or adapted to provide instruction, control, operation, or any form of communication for operable components to affect the operation thereof. A controller module can include any known processor, microcontroller, or logic device, including, but not limited to: field programmable gate arrays (FPGA), an application specific integrated circuit (ASIC), a full authority digital engine control (FADEC), a proportional controller (P), a proportional integral controller (PI), a proportional derivative controller (PD), a proportional integral derivative controller (PID controller), a hardware-accelerated logic controller (e.g. for encoding, decoding, transcoding, etc.), the like, or a combination thereof. Non-limiting examples of a controller module can be configured or adapted to run, operate, or otherwise execute program code to effect operational or functional outcomes, including carrying out various methods, functionality, processing tasks, calculations, comparisons, sensing or measuring of values, or the like, to enable or achieve the technical operations or operations described herein. The operation or functional outcomes can be based on one or more inputs, stored data values, sensed or measured values, true or false indications, or the like. Non-limiting examples of operable or executable instruction sets can include routines, programs, objects, components, data structures, algorithms, etc., that have the technical effect of performing particular tasks or implement particular abstract data types. In another non-limiting example, a controller module can also include a data storage component accessible by the processor, including memory, whether transient, volatile or non-transient, or non-volatile memory.

As used herein a "topology" can refer to one or more arrangement(s) of a network which comprising a plurality of nodes and connecting lines (e.g., communication links, including wired communication links or wireless communication links) between devices (e.g. sender and receiver devices) in the network. Topologies may comprise, but are not limited to one or more of mesh, star, bus, ring, and tree topologies.

Additional non-limiting examples of the memory can include Random Access Memory (RAM), Read-Only Memory (ROM), flash memory, or one or more different types of portable electronic memory, such as discs, DVDs, CD-ROMs, flash drives, universal serial bus (USB) drives, the like, or any suitable combination of these types of memory. In one example, the program code can be stored within the memory in a machine-readable format accessible by the processor. Additionally, the memory can store various data, data types, sensed or measured data values, inputs, generated or processed data, or the like, accessible by the processor in providing instruction, control, or operation to affect a functional or operable outcome, as described herein. In another non-limiting example, a control module can include comparing a first value with a second value, and operating or controlling operations of additional components based on the satisfying of that comparison. For example, when a sensed, measured, or provided value is compared with another value, including a stored or predetermined value, the satisfaction of that comparison can result in actions, functions, or operations controllable by the controller module. As used, the term "satisfies" or "satisfaction" of the comparison is used herein to mean that the first value satisfies the second value, such as being equal to or less than the second value, or being within the value range of the second value. It will be understood that such a determination can easily be altered to be satisfied by a positive/negative comparison or a true/false comparison. Example comparisons can include comparing a sensed or measured value to a threshold value or threshold value range.

Aspects of the disclosure can be implemented in any environment, apparatus, system, or method having a regulated, restricted, authorized, or otherwise limited "write-access" privileges to a memory or data store component. As used herein, "write-access" means availability or authorization to commit a change to a memory, the change being storing or overwriting data, values, commands, instructions, or any other data, element, or identifier to a memory location, regardless of the function performed by the data, element, or identifier, or regardless of the function or implementation of the environment, apparatus, system, or method. Collectively, "access" to data or "accessing" data can refer to either reading, viewing, or otherwise receiving data from a data store, "writing" data, as referenced above, or a combination thereof.

As used herein, the term "installed product" should be understood to include any sort of mechanically operational entity, asset including, but not limited to, jet engines, locomotives, gas turbines, and wind farms and their auxiliary systems as incorporated. The term is most usefully applied to large complex powered systems with many moving parts, numerous sensors and controls installed in the system. The term "installed" includes integration into physical operations, for example, such as the use of engines in an aircraft fleet whose operations are dynamically controlled, a locomotive in connection with railroad operations, or apparatus construction in, or as part of, an operating plant building, machines in a factory or supply chain, or the like. As used herein, the terms "installed product," and "powered system" can be used interchangeably. As used herein, the term "automatically" can refer to, for example, actions that can be performed with little or no human interaction.

To achieve desired levels of reliability, TSNs typically employ time synchronization, scheduling, and time-aware data traffic shaping. The data traffic shaping uses the schedule to control logical gating on switches in the network. The schedules for such data traffic in TSNs are often determined during an initial design phase based on the topology of the network and predetermined system requirements, and updated as necessary. For example, in addition to defining a TSN topology (including communication paths, bandwidth reservations, and various other parameters), a network-wide synchronized time for data transmission can be predefined. Such a plan for data transmission (e.g., time-triggered data traffic) on communication paths of the network is typically referred to as a "communication schedule" or simply "schedule".

It will be understood that when scheduling communications in a TSN, a tradeoff or balance between time and space, such as processing time to determine a schedule, and storage space (i.e., memory) to store the schedule is necessary. Pre-computing all possible schedules might result in fast operation, but typically requires an impractical amount of storage space. Conversely, not pre-computing any schedules would consume significantly less space, but would typically require an impractical amount of real-time processing to determine a schedule when needed.

It will be further understood that some portions of a schedule are typically more difficult or complex to compute than other portions of the same schedule. The more difficult to compute portions can be pre-computed offline and act as "seeds" or partial schedules for fast computation when needed. As used herein the term "full schedule" will be used to refer to a computed schedule and "partial schedule" will be used to refer to a portion of a full schedule. As described in more detail herein, aspects can determine and pre-compute, these "seeds" or partial schedules, enabling a tradeoff or balance between computation time and storage space, while ensuring full schedules can be quickly computed in real-time when necessary.

Each partial schedule acts as a hash for its corresponding full schedule. This enables the partial schedule to act as a unique lookup marker. This can advantageously save time when determining a full schedule, especially when there are a significant number of partial schedules for to be managed.

Time-critical communication between end devices in TSNs commonly includes "TSN flows" also known as "data flows" or simply, "flows. " For example, data flows can comprise datagrams, such as data packets or data frames. Each data flow is unidirectional, going from a first or source end device to a second or destination end device in a system, having a unique identification and time requirement. These source devices and destination devices are commonly referred to as "talkers" and "listeners. " Specifically, the "talkers" and "listeners" are the sources and destinations, respectively, of the data flows, and each data flow is uniquely identified by the end devices operating in the system. It will be understood that for a given network topology comprising a plurality of interconnected devices, a first set of data flows between the interconnected devices can be defined. For example, the first set of data flows can be between the interconnected devices. For the first set of data flows, various subsets or permutations of the dataflows can additionally be defined. As used herein, the term, "flow permutation" refers to a subset of the data flows (i.e., a subset of the first set of data flows) for the given network. It will be further understood, that for the given network topology comprising a plurality of interconnected devices, a set of flow permutations can additionally be defined, wherein each flow permutation in the set of flow permutations is a subset of the first set of data flows.

Ethernet switches (commonly called "bridges") transmit and receive the data (in one non-limiting example, Ethernet frames) in a data flow based on a predetermined time schedule. The bridges and end devices must be time-synchronized to ensure the predetermined time schedule for the data flow is followed correctly throughout the network.

The data flows within a TSN can be scheduled using a single device that assumes fixed, non-changing paths through the network between the talker/listener devices in the network. The TSN can also receive non-time sensitive communications, such as rate-constrained communications. In one non-limiting example, the single device can include an offline scheduling system or module.

Furthermore, the communications received by the TSN for transmission through the network cannot include indication of whether they are a time-sensitive communication or a non-time-sensitive communication. Not being able to provide indication makes it difficult to determine and schedule all TSN data flows in a network. Additionally, in some cases, end devices can be temporarily or permanently taken off-line or cease operation (for example, due to scheduled maintenance, or unexpected device failure), requiring new or updated data flows to be determined and scheduled quickly (for example, in real time) in order to maintain network operation. Due to the relatively large size and complexity of industrial networks, and the relatively large number of possible topologies for the network, determining and scheduling TSN data flows for the network in real time presents many challenges.

For example, conventional TSN scheduler modules typically lack sufficient processing or computing capacity to pre-compute all possible data flow permutations or determine schedules within time constraints necessary for continuous TSN operation, or both. Conventional TSN scheduler modules further lack sufficient memory to store all possible pre-computed data flows and schedules. Accordingly, it is desirable to minimize scheduling time for data flows due to changes in network topology in real time.

Aspects described herein provide a method of generating schedules for a TSN. The method can include "pre-computing" for the possible network topologies, corresponding data flow permutations, and schedules for the determined network topologies before they can be needed. The memory space required to store the determined data flows and schedules, and the time to compute the schedules for the data flows, can likewise be determined. Depending on the memory storage space required, and the time required to determine or compute the schedule for a given data flow, one or more of the determined data flows can be selected and saved and identified with a corresponding assigned hash to uniquely identify each saved data flow corresponding to the determined schedules. In the event of a subsequent change in the network topology (i.e., to a new topology), a saved data flow corresponding to the new topology can be readily identified, and a schedule determined or calculated accordingly based on the saved data flow.

More specifically, the method includes defining a predetermined topology or set of topologies for a network. Each network topology can include a set of "raw data" corresponding to a respective predetermined topology of the network. As used herein, the term "raw data" can refer to all or at least a portion of the data necessary to compute or determine a data flow for a given topology for the TSN. For example, the raw data can include, but is not necessarily limited to, all talker-listener devices in the network topology, the corresponding talker-listener data flows, maximum acceptable message delivery times for all data flows, and predetermined message sizes for each data flow for each respective topology. The method can include calculating or determining a full schedule for a set of all possible data flow permutations (e.g., comprising a number "F" of data flows), each data flow corresponding to a given network topology, and being based on the respective raw data for the network topology. The amount of time to calculate or determine the full schedule for each respective data flow of the set of data flows can be measured or determined and saved to memory.

For example, the method can include computing (e.g. via a digital twin) a first full schedule for a first data flow of the set of data flows based on a first set of raw data. The first full schedule can comprise a first full schedule data file that includes the computed first schedule data and the first data flow data. A partial first schedule data file can also be saved to memory that includes only the computed first schedule data (i.e., with the first data flow data omitted). The total size or amount of memory to save or store the first full schedule data file and the first partial schedule data file can be determined for the first data flow. It will be appreciated that for the first data flow, a first data triplet can be defined comprising the time to determine the full schedule for the first data flow, the memory space to save the first full and first partial schedule files, and the number of data flows processed (i.e., one).

The above steps can be repeated for a second data flow. That is, a second full schedule for a second data flow of the set of data flows can be computed based on the set of raw data. The second full schedule can comprise a second full schedule data file that includes the computed second schedule data and the second data flow data. A partial second schedule data file can also be saved to memory that includes only the computed second schedule data (i.e., with the second data flow data omitted). The total size or amount of memory to save or store the second full schedule data file and the second partial schedule file can be determined for the second data flow. It will be appreciated that for the second data flow, a second data triplet can be defined comprising the time to determine the full schedule for the second data flow, the memory space to save the second full and second partial schedule files, and the number of data flows processed (i.e., two).

The above steps can be further repeated as necessary for all F data flows in the set of data flows (i.e., all permutations of data flows). This provides or defines the schedule calculation time and memory space, and count of flows-processed for all possible permutations of data flows. It will be appreciated that for the set of data flows, a corresponding data triplet can be defined comprising the time to determine the full schedule for the set of data flows, the memory space to save the full and partial schedule files for the set of data flows, and the number of data flows processed (i.e., F).

Additionally, based on the foregoing steps, the calculation time to compute the full schedule for a given permutation "N" of the set of F data flows can be determined, and the difference in full schedule calculation time from the first N data flows to the remaining (i.e., F-N) flows can likewise be readily determined. Thus, a designer or operator of a given TSN, having a finite amount of available long-term memory space and computing capability, can make determinations as desired, based on trade-offs between processing or schedule calculation time for the remaining F-N flows and memory space suitable for long-term storage in the specific hardware and application of the TSN.

For example, depending upon a known or predicted likelihood of various components or end devices of the TSN to fail in service, the full schedule for any desired number of selected data flows can be pre-computed or pre-determined. In one non-limiting example, the full schedule for selected data flows can be pre-determined based on an anticipated failure of an end device for network topologies resulting from a failure of the end device. Each selected data flow can then be assigned or identified by a hash of the corresponding data flow schedule to enable quick identification and loading when required. Any number of the selected data flows can be loaded in memory on a network controller such as a TSN Centralized Network Configurator (CNC). In some aspects, all of the selected data flow permutations can be loaded in memory on the CNC. In other aspects, a portion of the set of data flows can be selected, for example based on a predetermined tradeoff between processing time and memory, and saved on the CNC. In the event of a change in the TSN topology, (e.g., an end device failure) to a new topology, the required data flow can be identified or selected, (e.g., using the appropriate assigned hash) and the full schedule can be calculated or computed based on the selected data flow.

<FIG> illustrates a block diagram of a system <NUM> architecture in accordance with some aspects. The system <NUM> can include at least one installed product <NUM>. As noted above, the installed product <NUM> can be, in various aspects, a complex mechanical entity such as the production line of a factory, a gas-fired electrical generating plant, a jet engine on an aircraft amongst a fleet (e.g., two or more aircraft), a wind farm, a locomotive, etc..

In various aspects, the installed product <NUM> can include any number of end devices, such as sensors <NUM>, <NUM>, a user platform device <NUM> such as a human machine interface (HMI) or user interface (UI) <NUM>, and one or more actuators <NUM>. As used herein, the term "actuator" can broadly refer to devices, components, modules, equipment, machinery, or the like that function to perform tasks or operations associated with operation of the installed product <NUM>. In aspects, the installed product <NUM> can further include one or more software applications <NUM>.

The installed product <NUM> can further comprise a control system <NUM> that controls operations of the installed product <NUM> based on data obtained or generated by, or communicated among devices of the installed product <NUM> to allow for automated control of the installed product <NUM> and provide information to operators or users of the installed product <NUM>. In non-limiting aspects, the control system <NUM> can comprise a Central network controller (CNC). The control system <NUM> can define or determine the schedule on which all TSN the data frames are transmitted.

The control system <NUM> can include a memory or computer data store <NUM> and a Time Sensitive Network (TSN) module <NUM>. The TSN module <NUM> can include a digital twin <NUM>, and one or more processor or processing modules <NUM> (e.g., microprocessors, integrated circuits, field programmable gate arrays, etc.) that perform operations to control the installed product <NUM>. The processing module <NUM> can, for example, be a conventional microprocessor, and can operate to control the overall functioning of the TSN module <NUM>.

The data store <NUM> can provide information to a TSN module <NUM> and can store results from the TSN module <NUM>. The data store <NUM> can comprise any combination of one or more of a hard disk drive, RAM (random access memory), ROM (read-only memory), flash memory, etc. The data store <NUM> can store software that programs the processing module <NUM> and the TSN module <NUM> to perform functionality as described herein.

The TSN module <NUM>, according to some aspects, can access the data store <NUM> and utilize the digital twin <NUM> to create a prediction or result (e.g., a predicted schedule or data flow) that can be transmitted back to the installed product <NUM> as appropriate (e.g., for display to a user, operation of the installed product, operation of another system, or input to another system).

The system <NUM> can further include a communication system <NUM>. The communications system <NUM> can be used by the control system <NUM> to communicate data between or among devices of the control system <NUM> or the installed product <NUM> that is controlled by the control system <NUM>, or both. As used herein, the communication system <NUM> can include wired communication examples, wireless communication examples, or a combination thereof.

The communication system <NUM> can supply data (e.g., via a data flow) from at least one installed product <NUM> and the data store <NUM> to the TSN module <NUM>. The TSN module <NUM> can receive one or more data frames and determine a classification for each received data frame. Based on the classification, the TSN module <NUM>, in one or more aspects, can generate a schedule to transmit each data frame through the communication system <NUM>, and then can transmit the data frames based on that schedule. The control system <NUM> can control one or more operations of the installed product <NUM> based on the transmitted data or data frame(s).

In some aspects, the communication system <NUM> can supply output from the TSN module <NUM> to at least one of user platforms such as HMI/UI <NUM>, back to the installed product <NUM>, to other systems or a combination thereof. In some aspects, signals or data received by the user platform <NUM>, installed product <NUM> and other systems can modify the state or condition or another attribute of one or more physical elements or end devices of the installed product <NUM>.

The HMI/UI <NUM> can communicate via the communications system <NUM>. For example, the HMI/UI <NUM> can receive data <NUM> that is to be presented to a user or operator of the communication system <NUM> or control system <NUM> and that can communicate input data <NUM> received from the user or operator to one or more other devices of the control system <NUM>. The HMI/UI <NUM> can comprise a display device, a touchscreen, laptop, tablet computer, mobile phone, speaker, haptic device, or other device that communicates or conveys information to a user or operator.

In aspects the sensors <NUM>, <NUM> can comprise any conventional sensor or transducer. For example, in an aspect, at least one of the sensors <NUM>, <NUM> can comprise a camera that generates video or image data, an x-ray detector, an acoustic pick-up device, a tachometer, a global positioning system receiver, a wireless device that transmits a wireless signal and detects reflections of the wireless signal in order to generate image data, or another device.

The one or more actuators <NUM>, (e.g., devices, equipment, or machinery that move to perform one or more operations of the installed product <NUM> that is controlled by the control system <NUM>) can communicate using the communication system <NUM>. Non-limiting examples of actuators <NUM> include brakes, throttles, robotic devices, medical imaging devices, lights, turbines, etc. The actuators <NUM> can communicate status data <NUM> of the actuators <NUM> to one or more other devices of the installed product <NUM> via the communication system <NUM>. The status data <NUM> can represent a position, state, health, or the like, of the actuator <NUM> sending the status data <NUM>. The actuators <NUM> can receive command data <NUM> from one or more other devices of the installed product or control system via the communication system <NUM>. The command data <NUM> can represent instructions that direct the actuators <NUM> how and/or when to move, operate, etc..

The control system <NUM> can communicate a variety of data between or among the end devices via the communication system <NUM> in response to the one or more software applications <NUM>. For example, the control system <NUM> can communicate the command data <NUM> to one or more of the devices and/or receive data <NUM>, such as status data <NUM> and/or sensor data <NUM>, from one or more of the devices.

The communication system <NUM> can communicates data between or among the devices and control system <NUM> using a TSN network <NUM> that can communicate data using a data distribution service <NUM>. As will be understood, the data distributions service <NUM> can be a network "middleware" application that facilitates configuring publishers and subscribers on a network. In other aspects, other middleware applications can be used. In still other aspects, the data distribution service <NUM> can be omitted, and the software application(s) <NUM> can manage the installed product <NUM> (and its devices) without use of the data distribution service <NUM>.

The data distribution service <NUM> can represent an object management group (OMG) device-to-device middleware communication standard between the devices and the network. The data distribution service <NUM> can allow communication between publishers and subscribers. The term publisher can refer to devices <NUM>, <NUM>, <NUM>, and <NUM> that send data to other devices <NUM>, <NUM>, <NUM>, <NUM> and the term subscriber refers to devices <NUM>, <NUM>, <NUM>, and <NUM> that receive data from other devices <NUM>, <NUM>, <NUM>, and <NUM>. The data distribution service <NUM> can operate on a variety of networks, such as Ethernet networks as one non-limiting example. The data distribution service <NUM> can operate between the network through which data is communicated and the applications communicating the data (e.g., the devices <NUM>, <NUM>, <NUM>, and <NUM>). The devices <NUM>, <NUM>, <NUM>, and <NUM> can publish and subscribe to data over a distributed area to permit a wide variety of information to be shared among the devices <NUM>, <NUM>, <NUM>, and <NUM>.

In one aspect, the data distribution service <NUM> is used by the devices <NUM>, <NUM>, <NUM>, and <NUM> to communicate data <NUM>, <NUM>, <NUM>, <NUM>, <NUM>, <NUM> through the TSN network <NUM>, which can operate on an Ethernet network of the installed product. The TSN network <NUM> can be at least partially defined by a set of standards developed by the Time Sensitive Networking Task Group, and includes one or more of the IEEE <NUM> standards.

A TSN-based deterministic network, including but not limited to an Ethernet network, can dictate (i.e., schedule) when certain data communications occur to ensure that certain data frames or packets are communicated within designated time periods or at designated times. Data transmissions within a TSN-based Ethernet network can be based on a global time or time scale of the network that can be the same for the devices in, or connected with, the network, with the times or time slots in which the devices communicate being scheduled for at least some of the devices.

The TSN network <NUM> is shown in <FIG> as a time sensitive network, but alternatively can be another type of network. For example, devices, including those associated with the system <NUM> and any other devices described herein, can exchange information via any TSN network which can be one or more of a Local Area Network ("LAN"), a Metropolitan Area Network ("MAN"), a Wide Area Network ("WAN"), a proprietary network, a Public Switched Telephone Network ("PSTN"), a Wireless Application Protocol ("WAP") network, a Bluetooth network, a "Wireless LAN network, or an Internet Protocol ("IP") network such as the Internet, an intranet, or an extranet. It is contemplated that any devices described herein can communicate via one or more such communication networks.

As will be appreciated that in various non-limiting aspects, TSN network <NUM> can include various types of physical media including copper, optical fiber, wires including Wi-Fi and <NUM>, and wave guide acoustical channels among many others.

In various aspects, the devices <NUM>, <NUM>, <NUM>, <NUM> can communicate the data <NUM>, <NUM>, <NUM>, <NUM>, <NUM>, <NUM> using the data distribution service <NUM>. As will be understood, the TSN network <NUM> can include communication links communicatively coupling node devices. For example, in one non-limiting aspect, the devices <NUM>, <NUM>, <NUM>, <NUM> can be node devices. The TSN network <NUM> can be configured to operate as a TSN and can include the devices <NUM>, <NUM>, <NUM>, <NUM> (e.g., communicatively coupled with each other via the communication links. The communication links are connections over or through which data flows, data packets, frames, datagrams or a combination thereof can be communicated between the node devices.

In aspects, the node devices can include routers, switches, repeaters, or other devices capable of receiving data frames or packets and sending the data frames or packets to another node device. The communication links can be wired or wireless connections between the node devices.

The data can be communicated in the TSN network <NUM> as data frames or data packets. The data frames or packets can be published by a device <NUM>, <NUM>, <NUM>, <NUM> and received by another device <NUM>, <NUM>, <NUM>, <NUM> according to a network or communication schedule. For example, one or more of the data frames or packets of the data can be published by the sensor <NUM> can be sent to the TSN network <NUM> and subscribed to by the control system <NUM>. The data frames or packets can hop from the sensor <NUM> to the control system <NUM> by being communicated from the sensor <NUM> to the various node devices and then the control system <NUM> in accordance with the determined schedule.

Turning to <FIG>, a block diagram of an example of operation of a portion of the system <NUM> of <FIG> in accordance with aspects of the disclosure, is provided. The system <NUM> can comprise the TSN module <NUM> including a scheduler <NUM> to schedule communication traffic. In non-limiting aspects the communication traffic can include data packets comprising one or more data frames <NUM>. The data frames <NUM> can be received by the TSN module <NUM> or control system <NUM> at a switch (not shown) and provided to the scheduler <NUM>. The scheduler <NUM> is configured to generate a schedule <NUM> for transmission of the data frames <NUM>. As will be described in more detail herein, the schedule <NUM> can comprise a full schedule <NUM>, and can be based on a computed partial schedule <NUM>. In some non-limiting aspects, the partial schedule <NUM> can be computed by a separate computing device and provided to the scheduler <NUM>. In one or more aspects, the schedule <NUM> can include a transmission time for the data frames <NUM>. The scheduler <NUM> can also receive a description of the network topology <NUM> and data flow path or link requirements <NUM> (e.g., an indication of time sensitive paths, maximum latencies, physical link bandwidths, size of frames ("payload"), and frame destination) from an application (not shown), or any other suitable source. The description of the network topology <NUM> can include a corresponding set of raw data <NUM>. In non-limiting aspects, the raw data <NUM> can include, for example, all talker-listener devices in the network topology <NUM>, the corresponding talker-listener data flows, maximum acceptable message delivery times for all data flows, Quality of Service (QoS) parameters, and predetermined message sizes for each data flow for each respective topology <NUM>. In an aspect, the TSN module <NUM> can determine a set of data flow permutations <NUM> based on the description of the network topology <NUM> and the respective set of raw data <NUM>. In other aspects, the set of data flow permutations <NUM> can be determined by another computing device and provided to the control system <NUM>.

In aspects, the scheduler <NUM> can communicate with all switches and end systems (e.g., devices of the installed product <NUM>) to configure them. For example, the TSN module <NUM> can include a Ternary Content Addressable Memory (TCAM) <NUM>. The TCAM <NUM> can be defined to operate on a specific physical port, a set of ports, or all of the ports in a network. The TCAM <NUM> can receive the data packet from one or more devices <NUM>, <NUM>, <NUM> and <NUM> and can divide the packet into the one or more data frames <NUM>. Each data frame <NUM> can be temporarily placed in the TCAM <NUM>, where one or more rules are applied to the data frame <NUM>, before the data frame <NUM> is moved out of the TCAM <NUM> to an appropriate transmission queue.

Conventionally, the data frame <NUM> is standardized and can include a header with reserved fields. The header can include a destination address, a source address and an Ethernet type. The data frame <NUM> can also include data (e.g., a payload).

In one or more aspects, the schedule <NUM> can include the transmission times for the data frame <NUM> (e.g., the time a gate will open to release the data frame <NUM>, for transmission to a destination node. The schedule <NUM> can include a determined communication pathway for each data frame <NUM> (e.g., to avoids contention with other data frames <NUM>). The schedule <NUM> can optionally include other suitable information.

<FIG> provides a flow diagram of a method <NUM>, according to an aspect. Method <NUM>, and any other process described herein, can be performed using any suitable combination of hardware (e.g., circuit(s)), software or manual means. For example, a computer-readable storage medium can store thereon instructions that when executed by a machine result in performance according to any of the aspects described herein. In one or more aspects, the system <NUM> is conditioned to perform the method <NUM> such that the system is a special-purpose element configured to perform operations not performable by a general-purpose computer or device. Software embodying these processes can be stored by any non-transitory tangible medium including a fixed disk, a floppy disk, a CD, a DVD, a Flash drive, or a magnetic tape. Examples of these processes will be described below, with respect to aspects of the system <NUM>, but other aspects are not so limited.

Initially, at <NUM>, data comprising one or more data packets, made of one or more data frames <NUM>, are received at a TSN module <NUM> within the scheduler <NUM>. A classification can be determined for the data frames, at <NUM>. Then, at <NUM>, a schedule <NUM> is generated by the scheduler <NUM>. In one or more aspects, the schedule <NUM> can be based on the description of the network topology <NUM> and path or link requirements <NUM>.

The schedule <NUM> can be transmitted at <NUM>. In one or more aspects, the schedule <NUM> can be downloaded onto all of the devices <NUM>, <NUM>, <NUM>, <NUM>, and <NUM> and switches in the TSN network <NUM>. The schedule <NUM> can be executed i.e., the one or more data frames <NUM> transmitted through the TSN network <NUM>, based on the schedule <NUM>, at <NUM>. One or more operations of the installed product <NUM> can be controlled based on the transmitted data frames <NUM>, at <NUM>.

Turning to <FIG>, a flow diagram, of an example of an operation of a method <NUM> in accordance with an aspect is provided. Method <NUM>, and any other process described herein, can be performed using any suitable combination of hardware (e.g., circuit(s)), software or manual means. For example, a computer-readable storage medium can store instructions that, when executed by a machine, result in performance according to any of the aspects described herein. In one or more aspects, the system <NUM> can be conditioned to perform the method <NUM> such that the system is a special-purpose element configured to perform operations not performable by a general-purpose computer or device. Software embodying these processes can be stored by any non-transitory tangible medium including a fixed disk, a floppy disk, a CD, a DVD, a Flash drive, or a magnetic tape.

In aspects, method <NUM> includes defining a topology <NUM> or set of topologies <NUM> of the TSN network <NUM>, at <NUM>. For example, in an aspect, the set of topologies <NUM> of the TSN network <NUM> can be predetermined topologies <NUM> comprising all logical permutations or variations of the topologies <NUM> of the TSN network <NUM>. Each topology <NUM> can be calculated or determined by the control system <NUM>. In other aspects, each topology <NUM> of the TSN network <NUM> can be determined by a separate computing device and provided to the control system <NUM> to be saved in the data store <NUM>. In non-limiting aspects, each topology <NUM> of the TSN network <NUM> can include a corresponding set of raw data <NUM>. In non-limiting aspects, the raw data <NUM> can include, but is not necessarily limited to, all talker-listener devices in the network topology <NUM>, the corresponding talker-listener data flows, maximum acceptable message delivery times for all data flows, Quality of Service (QoS) parameters, and predetermined message sizes for each data flow for each respective topology <NUM>.

The method <NUM> can also include calculating or determining a set of data flow permutations <NUM> (e.g., comprising a number "F" of data flows), at <NUM> corresponding to each network topology <NUM>. In various aspects, each data flow can correspond to a given network topology <NUM>, based on the respective raw data <NUM> for the network topology <NUM>. In an aspect, the set of data flow permutations <NUM> can be determined by the control system <NUM>. In other aspects, the set of possible data flow permutations <NUM> can be determined by a separate computing device and provided to the control system <NUM> to be saved in the data store <NUM> or memory.

The method <NUM> can include a determining a set of full schedules <NUM> and a corresponding set of partial schedules <NUM> at <NUM>. For example, the determining a set of full schedules <NUM> and a set of partial schedules <NUM> can include computing (e.g. via the digital twin <NUM>) a respective full schedule <NUM> for each data flow of the set of data flows based on a corresponding set of raw data <NUM>, at <NUM>. Each respective full schedule <NUM> can comprise a respective full schedule <NUM> data file that includes the computed first schedule <NUM> data and the first data flow data. The amount of time to calculate or determine the full schedule <NUM> for each respective data flow of the set of data flows can be measured or determined at <NUM>. In non-limiting aspects, the time to determine a full schedule <NUM> for each respective data flow of the set of data flows can be saved to the memory or data store <NUM>.

Likewise, a partial schedule <NUM> comprising a partial schedule <NUM> data file can be determined for each respective data flow of the set of data flows, at <NUM>. In non-limiting aspects, each partial schedule <NUM> data file can include the corresponding computed full schedule <NUM> data only (i.e., with the first data flow data omitted). The total size or amount of memory to save or store the respective full schedule <NUM> data file can optionally be determined at <NUM>. The total size or amount of memory to save or store the corresponding partial schedule <NUM> data file can optionally be determined for each partial schedule <NUM> at <NUM>. Each full schedule <NUM> and partial schedule <NUM> data file can be saved to memory <NUM>. It will be appreciated that when determining the full schedule <NUM> and partial schedule <NUM> for each data flow at <NUM>, a data triplet can be defined comprising the time to compute the full schedule <NUM> for the respective data flow, the memory space to save the respective full schedule <NUM> and corresponding partial schedule 221data files, and the number of data flows processed.

For example, in one aspect, the determining a set of full and partial schedules <NUM>, <NUM> at <NUM> can include computing a first full schedule for a first data flow of the set of data flows based on a first set of raw data <NUM>, at <NUM>. The first full schedule <NUM> can comprise a first full schedule <NUM> data file that includes the computed first schedule <NUM> data and the first data flow data. A first partial schedule <NUM> data file can also be computed at <NUM>, that includes the computed first schedule data with the first data flow data omitted. A first amount of memory to save or store the first full schedule <NUM> data file and a second amount of memory to save the first partial schedule <NUM> data file can then readily be determined for the first data flow at <NUM>, <NUM>. For the first data flow, a first data triplet can be defined comprising the time to determine the full schedule <NUM> for the first data flow, the memory space to save the first full and first partial schedule <NUM>, <NUM> files, and the number of data flows processed (i.e., one).

The above steps <NUM>-<NUM> can be repeated for a second data flow. That is, a second full schedule <NUM> for a second data flow of the set of data flows can be computed based on the set of raw data <NUM>, at <NUM>. The second full schedule <NUM> can comprise a second full schedule <NUM> data file that includes the computed second schedule data and the second data flow data. A second partial schedule <NUM> data file can also be determined at <NUM> that includes the computed second schedule data with the second data flow data omitted. The total size or amount of memory to save or store the second full schedule <NUM> data file and the second partial schedule <NUM> data file can be determined for the second data flow at <NUM>, <NUM>. It will be appreciated that for the second data flow, a second data triplet can be defined comprising the time to determine the full schedule <NUM> for the second data flow, the memory space to save the second full and second partial schedule <NUM>, <NUM> data files, and the number of data flows processed (i.e., two).

The above steps can be further repeated as desired for all F data flows in the set of data flows (i.e., all permutations of data flows). This provides or defines the full schedule <NUM> calculation time, memory space, and count of flows-processed for all possible permutations of data flows. It will be appreciated that for the set of data flows, a data triplet can be defined comprising the time to determine the full schedule <NUM> for set of data flows, the memory space to save the full and partial schedule <NUM>, <NUM> data files for the set of data flows, and the number of data flows processed (i.e., F).

Additionally, based on the foregoing steps, the calculation time for full schedule <NUM> for a given flow permutation "N" of the set of F data flows can be determined at <NUM>, and the difference in full schedule calculation time from the first N data flows to the remaining (i.e., F-N) flows can be readily determined, at <NUM>.

In non-limiting aspects, a likelihood of a need for a predetermined data flow permutation <NUM> can be determined at <NUM>. For example, in an aspect, the determined likelihood of the need for a predetermined data flow permutation <NUM> can be based at least in part on an anticipated change to the network topology <NUM>. In aspects, the anticipated change to the network topology <NUM> can be based on a likelihood of a failure of a predetermined device, or an anticipated shut-down period for a device, for example for scheduled maintenance.

The method <NUM> can further include selecting one or more flow permutations <NUM> at <NUM>, and saving the selected one or more flow permutations <NUM> in the data store <NUM> at <NUM>. The selection of the one or more flow permutations <NUM> can be based on at least one of the full schedule calculation time for the selected flow permutation <NUM>, the calculation time for the remaining flow permutations <NUM>, the first amount of memory to save full schedule for the selected flow, the second amount of memory to save the partial schedule <NUM> for the selected flow, the difference between the respective time to compute the full schedule for the selected flow permutation <NUM> and the total time required to compute the full schedule for the remaining flow permutations <NUM>. For example, the selection can be based on a predetermined trade-off criterion between processing or schedule computation time for the remaining F-N flows and long-term memory space of the TSN. In other aspects, the selection of the one or more flow permutations <NUM> can additionally or alternatively be based on the determined likelihood of the need for the selected data flow permutation <NUM>. The partial schedule <NUM> corresponding to the selected data flow permutation <NUM> can be selected at <NUM>. For example, in non-limiting aspects, a hash can be assigned to correlate the selected dataflow permutation <NUM> and the respective partial schedule <NUM> corresponding to the selected dataflow. In non-limiting aspects, the corresponding partial schedule <NUM> associated with the selected dataflow permutation <NUM> can be readily identified based on the assigned hash.

In the event of a change in the TSN network topology <NUM>, (e.g., resulting from the failure of the end devices), a selected data flow of the one or more data flows saved to memory can be selected, and the corresponding partial schedule <NUM> identified by the assigned hash, and loaded from memory for implementation. A corresponding full schedule can be readily determined at <NUM> based on the selected data flow and the corresponding partial schedule <NUM>. Any number of the pre-determined data flows can be loaded in memory on the control system <NUM>. In some aspects, all of the pre-determined data flow can be loaded in memory on the TSN. The determined full schedule can then be implemented by the control system <NUM>. The method <NUM> can concluded by operating the network with the control system <NUM> in accordance with the determined full schedule at <NUM>.

The sequence depicted are for illustrative purposes only and is not meant to limit the methods <NUM>, <NUM> in any way as it is understood that the portions of the method can proceed in a different logical order, additional or intervening portions can be included, or described portions of the method can be divided into multiple portions, or described portions of the method can be omitted without detracting from the described method.

Many other possible aspects and configurations in addition to that shown in the above figures are contemplated by the present disclosure.

The aspects disclosed herein provide a system and method for scheduling data flows in time sensitive networks. A technical effect is that the above described aspects enable the efficient scheduling of data flows in time sensitive networks. For example, the above described aspects further enable trade-offs between memory size and processing speed when scheduling data flows in time sensitive networks. One advantage that can be realized in the above aspects is that the amount of memory required to save data flows and schedule information for data flows can be reduced for time sensitive networks. Another advantage that can be realized in the above aspects is that the time required to determine a schedule for a time sensitive network can be reduced. This can be of particular benefit when a real time scheduling response is required.

To the extent not already described, the different features and structures of the various aspects can be used in combination with each other as desired. That one feature cannot be illustrated in all of the aspects is not meant to be construed that it cannot be, but is done for brevity of description. Thus, the various features of the different aspects can be mixed and matched as desired to form new aspects, whether or not the new aspects are expressly described. Combinations or permutations of features described herein are covered by this disclosure.

Claim 1:
A method executed within the control system (<NUM>) for controlling operations of a powered system comprising operational entities arranged in a Time Sensitive Network, TSN, the TSN having a network topology (<NUM>), the method comprising:
determining a set of data flow permutations (<NUM>) corresponding to the network topology (<NUM>);
computing a respective full schedule (<NUM>) corresponding to each data flow permutation (<NUM>) of the set of flow permutations (<NUM>);
determining a respective time duration to compute the full schedule (<NUM>) for each data flow permutation (<NUM>) of the set of data flow permutations (<NUM>);
computing a respective partial schedule (<NUM>) for each data flow permutation (<NUM>) of the set of flow permutations (<NUM>), wherein the partial schedule acts as a hash for its corresponding full schedule;
selecting a data flow permutation (<NUM>) of the set of data flow permutations (<NUM>) based at least in part on the respective time duration to compute the full schedule (<NUM>) for the selected data flow permutation (<NUM>); and
saving the selected data flow permutation (<NUM>) to a memory (<NUM>),
further comprising determining a first amount of memory to save each respective full schedule (<NUM>); and
determining a second amount of memory to save each respective partial schedule (<NUM>),
wherein the selecting a data flow permutation (<NUM>) of the set of data flow permutations (<NUM>) is based at least in part on the determined respective time duration to compute the full schedule (<NUM>) for the selected data flow permutation (<NUM>), the first amount of memory to save the respective full schedule (<NUM>), and the second amount of memory to save the partial schedule (<NUM>) for the selected data flow permutation (<NUM>).