Patent ID: 12261922

DETAILED DESCRIPTION OF THE EXEMPLARY EMBODIMENTS

FIG.1illustrates an industrial system100in an industrial facility. Industrial facility herein refers to any environment where at least one industrial process, such as manufacturing, refining, smelting, assembly of equipment, may occur and includes process plants, oil refineries, and/or automobile factories. The industrial system100includes a plurality of control devices, such as process controllers (shown in the figure as controller110and controller120), programmable logic controllers, supervisory controllers, robots (shown in the figure as mobile robot141), and/or operator devices (shown in figure as operator stations151). The process controllers (110and120) are connected to a plurality of field devices (not shown in figure), such as actuators and sensor devices, for monitoring and controlling industrial processes in the industrial facility. These field devices can include flowmeters, value actuators, temperature sensors, and/or pressure sensors. The process controllers110and120may be connected to each other via a control network. Additionally, the industrial system100includes a mobile robot141, for performing a plurality of operations such as welding, assembly of parts, transportation and handling of material, etc., in the industrial plant. Additionally, the industrial system100may include an operator station151, for displaying the status of the industrial plant to an operator and for allowing the operator to define KPIs for controlling the industrial processes in the facility.

Communication in the industrial facility may occur through industrial gateway devices (also referred to as gateway devices). The plurality of the control devices in the facility are connected to at least one industrial gateway device (shown in the figure as exemplary gateway device110) for communicating information with the other devices and systems in the industrial facility. The gateway device110is connected to a plurality of networks via a first and second network interface and is capable of transmitting data via the plurality of networks. For example, the gateway device110is connected via a first network interface to a cellular network (shown via connection to cell tower160) and via a second network interface to an industrial wireless local area network (shown via connection to a Wireless Local Area Network device170).

As shown inFIG.1, the gateway device110is connected to the process controllers (121and131), the mobile robot141and the operator station151(collectively referred to as connected devices). The gateway device110receives and transmits data (datagrams, data frames, data packets) to the process controllers (121and131), the mobile robot141and the operator station151. The gateway device comprises two network interfaces. Accordingly, transmission of the data from the connected devices occurs over one of the two network interfaces based on the datagram identifier of the datagrams received from the connected devices. Based on network characteristics associated with the two networks to which the gateway device110is connected, one network interface is for transmission of datagrams with high priority and the other network interface is for transmission of datagrams with normal priority. For example, the first network interface connected to the cellular network (5G network) is for transmission of datagrams with high priority and the second network interface connected to the industrial wireless local area network is for transmission of datagrams with normal priority. Resolution of the network interface over which a datagram is to be sent occurs based on the datagram identifier.

FIG.2illustrates a method200for transmitting a plurality of datagrams by the gateway device110. The plurality of datagrams are generated by the one or more of the connected devices. Each datagram from the plurality of datagrams comprises a datagram identifier and datagram payload. The datagram identifier of the datagram is generated by the connected control device based on network Quality of Service (QoS) requirements associated with a process application associated with the datagram. The datagram payload is associated with a process in the industrial plant, related to the corresponding control device. For example, a datagram from the controller121, may have an exemplary payload containing process values of a process regulated by the controller121. The gateway receives the plurality of datagrams from the connected devices and is responsible for transmission of the same.

As mentioned previously, the gateway device comprises a plurality of network interfaces and is connected to a plurality of networks via the plurality of interfaces. In an embodiment, the gateway device is connected to a cellular network (5G network) via a first network interface (shown inFIG.3as network interface360) and is connected to a wireless local area network via a second network interface (shown inFIG.3as network interface370).

In addition to the interfaces, the gateway device further comprises a plurality of priority queues (shown inFIG.3as queues340,345,350and355and inFIG.4as queues420,425,430and435). The priority queues (also referred to as queues) are for storing datagrams prior to transmission via either of the first or second network interfaces (360and370inFIG.3, and440and445inFIG.4). Each priority queue is associated with a corresponding network interface and datagrams stored in the particular queue are sent by the corresponding network interface. For example, as shown inFIG.3, queues340and345are associated with the network interface360. Similarly, queues350and355are associated with the network interface370. Similarly, as shown inFIG.4, queue420is associated with the network interface440and queues425,430and430are associated with the network interface445.

With reference toFIG.2, at step210, the gateway device110determines a first priority queue from a plurality of the priority queues for transmittal of a first datagram from the plurality of datagrams, based on a filter and the datagram identifier of the first datagram. Returning toFIG.3, as shown therein, the gateway device comprises a datagram classification module330that receives datagrams and determines the queue in which each datagram from the datagrams is to be placed for transmission. The datagram classification module is connected to a content address memory module which stores a filter. The filter comprises a plurality of bit masks. The filter further comprises mappings between the bit masks and the priority queues. Upon receiving a datagram (for example, a first datagram), the datagram classification module330, performs a logical operation between the datagram identifier and each of the bit masks of the filter. When a logical operation between the datagram identifier and a particular bit mask results in value equivalent to a preconfigured value, the datagram classification module330, identifies the queue associated with the particular bitmask and selects the corresponding queue (as the first priority queue) for transmittal of the corresponding datagram, which is further explained using an example below with reference toFIG.4.

In the example, a first datagram with the datagram identifier ‘8810’ is generated by the controller121and is sent to the gateway module110for further transmission. The first datagram is received, preprocessed (by datagram preprocessing module320) and is to be placed in one of the priority queues (420,425,430and435) for transmission by the network interfaces. The datagram classification module330loads the filter (shown in theFIG.4as filter410) from the memory335. The filter410comprises five bit masks411,413,416,419and421. Each bit mask comprises ‘1’s, ‘0’s and one or more don't care bits (shown inFIG.4as ‘X’).

Subsequent to loading the filter410, the datagram classification module330(seeFIG.3) performs a bitwise binary ‘AND’ operation on the datagram identifier ‘8810’ of the first datagram and each bit mask (411,413,416,419and421) in the filter410. Bitwise binary ‘AND’ between each of the bit mask411,416,419and421and the datagram identifier ‘8810’ generates the result 0. Bitwise binary ‘AND’ between bit mask413and the datagram identifier ‘8810’ generates the result 1. As shown inFIG.4, the bit mask413is mapped to priority queue425. Accordingly, the datagram classification module330identifies priority queue425as the first priority queue for storing the first datagram prior to transmission.

With reference toFIG.2, at step220, the datagram classification module330of the gateway device110, places the first datagram in the determined first priority queue for transmittal of the first datagram by a first network interface associated with the determined first priority queue. Subsequent to the identification of the first priority queue, the data classification module330(seeFIG.3) then places the datagram in the identified priority queue. The datagram is then transmitted by the first network interface associated with the first queue.

Continuing the above-mentioned example, subsequent to the determination of the priority queue425as the first priority queue, the data classification module300places the datagram with the datagram identifier ‘8810’ in the priority queue425. The datagram with the datagram identifier ‘8810’ is then transmitted by the network interface445over the second network490from the plurality of networks (480and490) to which the gateway device110is connected.

As mentioned previously, the datagram identifier of the datagram is generated by the connected control device based on network Quality of Service (QoS) requirements associated with a process application (also referred to as control application) associated with the datagram. Network Quality of service herein refers to at least one network property, such as transmission delay, availability, and/or bit rate. Based on the requirement associated with the process application, the control device can determine a datagram identifier using a coding or selection scheme to indicate a priority of the datagram. In so doing, the control device can indicate the priority of the datagram. In an exemplary embodiment, based on a network quality of service requirements (for example transmission delay) associated with the process application, the control device selects a communication protocol for datagram transmission from a plurality of communication protocols. According to the protocol selected, the datagram identifier is then generated, which is further explained in reference to an example as illustrated inFIG.5.

FIG.5illustrates an exemplary section of the industrial facility containing three mobile robotic device510,530and540. The mobile robotic devices510and530are wirelessly connected to gateway device110and gateway device560. All three of the robotic devices can communicate using S7 industrial communication protocol and the PROFINET communication protocol.

The mobile robotic device540is carrying an object550along a path560. While following the path560, the control application on the mobile robotic device540sends datagrams containing information regarding the location and status of the mobile robotic device540. This operation is not time sensitive. Consequently, the control application does not have strict network QoS requirements and, accordingly, the mobile robotic device540sends the datagrams using S7 protocol and, accordingly, the datagram identifiers have the format ‘0x8032______’. Therefore, upon receiving datagrams from the mobile robotic device540, the gateway device560, assigns the packet to a queue connected to a WLAN network based on a filter as described above.

The mobile robotic devices510and530coordinate with each other to handle the object520. Accordingly, for efficient coordination, the control applications on the mobile robotic devices510and530exchange datagrams with each other to coordinate arm movement with each other. This is a time-sensitive operation, however. Accordingly, the control applications have strict network QoS requirements and, accordingly, the mobile robotic devices send the datagrams using the PROFINET protocol and, accordingly, the datagram identifiers have the format ‘0x8892______’. As a result, upon receiving datagrams from the mobile robotic device540, the gateway device560, assigns the packet to a queue connected to a 5G network based on a filter as described above.

While the above example is explained using selection of industrial communication protocols, the same may be realized by the controller using traffic classes and other such prioritization schemes. For example, the controller may generate a datagram identifier based on the time sensitive networking (TSN) traffic class associated with the datagram. In another example, the controller may generate a datagram identifier based on the ISA100application class associated with the process application. In another example, the controller may generate a datagram identifier based on classes associated with the Open Platform Communications Unified Architecture (OPC UA) protocol.

Returning toFIG.3, illustrated therein is an exemplary gateway device300. As described previously, the gateway device300is connected to a plurality of control devices via a I/O interface310. The I/O interface310may be based on an industrial bus protocol or industrial ethernet or industrial wireless protocol. The gateway device300receives datagrams from the control devices and forwards them on one of two or more networks to which the gateway device300is connected.

Upon receiving datagrams, the datagrams are preprocessed by a datagram preprocessing module320. The datagram preprocessing module checks the validity and integrity of the datagrams. Subsequent to preprocessing, the datagrams are then stored on a plurality of priority queues (shown inFIG.3as queues340,345,350, and355) by the datagram classification module330. Each queue is associated with a network interface from a plurality of network interfaces connected to the corresponding networks. For example, as shown inFIG.3, queues340and345are connected to network interface360and queues350and355are connected to network interface370. The datagram classification module330places each datagram from the plurality of datagrams in a particular queue based on the datagram identifier and the filter. The filter is stored on memory module335. In an exemplary embodiment, the memory module335is a ternary content-addressable memory (TCAM) module. Each datagram stored in the corresponding queue is then transmitted via the corresponding network interface on the corresponding network.

In case a network or network interface malfunctions and is no longer be available for transmission of the datagrams, the queues associated with the malfunctioning network interface is unbound from the malfunctioning network interface and is associated with the remaining network interfaces. Datagrams in the queues are prioritized for transmission based on the queues in which they are stored. For example, if the network interface360starts to malfunction, then the queues340and345are assigned to the network interface370. Accordingly, between the datagrams from queue340and datagram350, datagrams from queue340are prioritized for transmission.

FIG.4illustrates an exemplary filter410for resolving identifiers into priority queues (420,425,430,435). The filter410comprises five bit masks (411,413,416,419and421). Each bit mask is comprised of 1, 0 and don't care bits (indicated as X) and is mapped to a particular queue from the plurality of queues. As shown inFIG.4, bit mask411is mapped to queue420, bit mask413to queue425, bit masks416and419to queue430and bit mask421to queue435. The queues are connected to the network interfaces (440and445) and store datagrams prior to their transmission by the corresponding network interface over the corresponding network (490or480). The queue on which a particular datagram is to be stored is resolved using the bitmasks of the filter and the datagram identifier by performing a logical operation between the bit masks and the datagram identifier. The result from the logical operation is compared against a predetermined value and if they are equivalent the datagram is stored on the queue associated with the corresponding bit mask. While the bit masks are shown, other such schemes using hexadecimal values may also be used to realize the current invention. Additionally, the mapping between the bit mask and the queue may be changed dynamically. Additionally, new bit masks may be added to the filter without restarting the gateway devices, as further explained below.

In an embodiment, the filter is generated by a network controller and transmitted to the gateway devices (for example, gateway110). The network controller is connected to a plurality of gateway devices. Upon detection of a new control device in the industrial network, the network controller coordinates with the newly connected control device to determine prioritization of datagrams from the newly connected control device and the corresponding coding schemes used by the newly connected control device. Based on this coordination, the network controller can determine whether the filter in the gateway devices must be updated. In an example, new filters can be generated by the network controller and sent to the gateway devices over gateway protocols, such as OpenFlow, without restarting the gateway devices, as explained further in reference toFIGS.6and7.

FIG.6illustrates an exemplary network controller610for generating filters for the gateway devices (620,630,640,650) of the industrial system100. The gateway devices (620,630,640,650) are connected to two or more networks (shown inFIG.6as a cellular network via an access point690and a WLAN network via a WLAN device680). The getaway devices (620,630,640,650) are connected to at least one control device in the industrial system and can transmit data to and from control devices (such as mobile robot670and process controller660). Prioritization and determination of the network to be used for data transmission is performed by the gateway devices using the abovementioned method of resolution of datagrams into priority queues based on the datagram identifiers and the filter.

The filter on each gateway device is generated by the network controller610. In an embodiment, this is achieved during engineering and commissioning of the industrial system based on the industrial communication protocols used for communication. At the engineering stage, a plurality of industrial communication protocol identifier formats are provided to the network controller610along with the priority associated with each industrial communication protocol. On the basis of the identifier formats, the network controller610generates the bit masks of the filter and the mapping between the bit masks and the priority queues. This is then transmitted to the gateway devices. When a new control device is added to the industrial network, the network controller610coordinates with the newly added control device to check whether any new industrial communication protocols are used and whether any new bit masks need to be generated and added to the filter. In an embodiment, the network controller610can negotiate with the newly added control device to determine a priority for the new industrial communication protocol and the network on which the datagrams related to the new industrial communication protocol is to be transmitted.

The present disclosure can take a 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, processing units, or instruction execution system. Accordingly, the current disclosure describes a non-transitory storage medium for transmitting a plurality of datagrams. The non-transitory storage medium contains machine-readable instructions stored therein, which when executed by a processor of a gateway device, causes the processor of the gateway device to determine a first priority queue from a plurality of the priority queues for transmittal of a first datagram from the plurality of datagrams, based on the datagram identifier of the first datagram, and to place the first datagram in the determined first priority queue for transmittal of the first datagram by a network interface associated with the determined first priority queue. For purposes of this description, a computer-usable or non-transitory computer-readable storage medium can be any apparatus that can contain, store, communicate, propagate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device. The medium can be electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system (or apparatus or device) or a propagation mediums in and of themselves as signal carriers are not included in the definition of physical computer-readable medium include a semiconductor or solid state memory, magnetic tape, a removable computer diskette, random access memory (RAM), a read only memory (ROM), a rigid magnetic disk and optical disk such as compact disk read-only memory (CD-ROM), compact disk read/write, and DVD. Both processing units and program code for implementing each aspect of the technology can be centralized or distributed (or a combination thereof) as known to those skilled in the art.

While the current disclosure is described with references to few industrial devices, a plurality of industrial devices may be utilized in the context of the disclosed embodiments of the invention. Moreover, while the current disclosure is explained using two reference networks 5G and WLan, a plurality of networks (of the same type or different type) may be used. For example, the current disclosure may be realized using three networks: a first cellular network, a second WLan network and a third wired network. Additionally, while the gateway device in the current disclosure as shown as a singular device, the gateway device may be realized using a plurality of devices. For example, a layer 2 switch connected to plurality of network hubs or network interface modules may also be utilized to realize the methods described here. Additionally, while the current invention is explained using datagrams, other such data blocks such as packets, data frames may also be utilized in realization of the current invention. Additionally, while the current invention is explained using layer 2 infrastructure, the disclosed embodiments of the invention may be realized on any layer of the Open Systems Interconnection (OSI) model (including layer 3).

Thus, while there have been shown, described and pointed out fundamental novel features of the invention as applied to a preferred embodiment thereof, it will be understood that various omissions and substitutions and changes in the form and details of the methods described and the devices illustrated, and in their operation, may be made by those skilled in the art without departing from the spirit of the invention. For example, it is expressly intended that all combinations of those elements and/or method steps which perform substantially the same function in substantially the same way to achieve the same results are within the scope of the invention. Moreover, it should be recognized that structures and/or elements and/or method steps shown and/or described in connection with any disclosed form or embodiment of the invention may be incorporated in any other disclosed or described or suggested form or embodiment as a general matter of design choice. It is the intention, therefore, to be limited only as indicated by the scope of the claims appended hereto.