Industrial automation system and method having efficient network communication
First Claim
1. A method for transferring real-time data in an industrial automation system comprising:
- one or more hardware devices generating a plurality of data elements;
receiving the data elements from the hardware devices;
wherein the hardware devices generating data elements and the receiving the data elements occur a plurality of times;
generating a packet comprising a plurality of data elements, wherein each of the data elements is generated by one or more of the hardware devices, wherein a server process generates the packet when a certain threshold amount of data has been received or a certain timeout period has elapsed;
the server process providing the packet to one or more clients in the industrial automation system.
1 Assignment
0 Petitions
Accused Products
Abstract
The system and method of industrial automation provides improved network transfer of data between nodes. The system comprises a plurality of computer systems which are interconnected through a network, wherein each of the computer systems executes industrial automation software. One or more of these computer systems interface to various hardware I/O devices for data acquisition. Each computer system is home to one or more client and/or server processes. When a hardware I/O device generates data, a server process which is linked to that device through a device driver receives a block of data from the device. Using a real-time protocol, the server adds one or more blocks of data to a packet and transmits the packet to every client which has subscribed to the data. For increased network and computational efficiency, the real-time protocol includes compression techniques and is exception-based: only changes in data are sent to clients. The real-time protocol further employs a “train station” model for packet generation: a packet is only sent when it reaches a certain size or when a certain time has elapsed. The server determines if a plurality of clients are interested in at least a subset of the same data; if so, the server generates a multi-cast packet which comprises compressed data element values that are desired by each of the plurality of clients.
-
Citations
30 Claims
-
1. A method for transferring real-time data in an industrial automation system comprising:
-
one or more hardware devices generating a plurality of data elements;
receiving the data elements from the hardware devices;
wherein the hardware devices generating data elements and the receiving the data elements occur a plurality of times;
generating a packet comprising a plurality of data elements, wherein each of the data elements is generated by one or more of the hardware devices, wherein a server process generates the packet when a certain threshold amount of data has been received or a certain timeout period has elapsed;
the server process providing the packet to one or more clients in the industrial automation system. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
a client subscribing to a set of data elements, wherein the set of data elements is generated by one or more hardware devices, wherein each of the hardware devices sends data to the server process.
-
-
3. The method of claim 2,
wherein the client subscribing to a set of data elements is performed by the client specifying a Universal Resource Locator (URL) to the server process. -
4. The method of claim 1, further comprising:
-
the server process determining if at least a subset of the data elements are being transferred to two or more clients;
wherein, if the server process determines that at least a subset of the data elements are being transferred to two or more clients, the method comprises;
the server process generating a multi-cast packet comprising at least a subset of data which is common to all of the two or more clients; and
the server process transferring that multi-cast packet to each of the two or more clients.
-
-
5. The method of claim 1,
wherein the industrial automation system includes a network; -
wherein the network comprises a plurality of computer systems;
wherein the plurality of computer systems comprises one or more server processes and one or more clients.
-
-
6. The method of claim 1, wherein a real-time server program executes within a server process.
-
7. The method of claim 1,
wherein a server process includes one or more driver objects, wherein each driver object is coupled to one or more hardware devices. -
8. The method of claim 1,
wherein the packet comprises one or more TCP/IP packets. -
9. The method of claim 1,
wherein the server process providing the packet to one or more clients occurs in substantially real time. -
10. The method of claim 1,
wherein the hardware devices generating data elements, the receiving the data elements, the generating a packet, and the server process providing the packet to the clients occur a plurality of times. -
11. The method of claim 1,
wherein at least a portion of the data elements comprise delta values indicating a change from a prior data element; -
wherein the data element delta values are stored as an integer times a quantum value, wherein the quantum value is pre-defined by the respective client process for the respective data element;
the method further comprising;
the server process transferring the packet comprising the data element delta values to one or more clients.
-
-
12. A method for transferring real-time data in an industrial automation system comprising:
-
one or more hardware devices generating a plurality of data elements;
receiving the data elements from the hardware devices;
wherein the hardware devices generating data elements and the receiving the data elements occur a plurality of timers;
accumulating data elements;
determining if a certain threshold amount of data has been received;
determining if a certain timeout period has elapsed;
generating a packet comprising a plurality of data elements if the threshold amount of data has been received or if the timeout period has elapsed, wherein each of the data elements is generated by one or more of the hardware devices;
the server process providing the packet to one or more clients in the industrial automation system. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19, 20, 21, 22)
a client subscribing to a set of data elements, wherein the set of data elements is generated by one or more hardware devices, wherein each of the hardware devices sends data to a server process.
-
-
14. The method of claim 13,
wherein the client subscribing to a set of data elements is performed by the client specifying a Universal Resource Locator (URL) to the server process. -
15. The method of claim 12, further comprising:
-
the server process determining if at least a subset of the data elements are being transferred to two or more clients;
wherein, if the server process determines that at least a subset of the data elements are being transferred to two or more clients, the method comprises;
the server process generating a multi-cast packet comprising at least a subset of data which is common to all of the two or more clients; and
the server process transferring that multi-cast packet to each of the two or more clients.
-
-
16. The method of claim 12,
wherein the industrial automation system includes a network; -
wherein the network comprises a plurality of computer systems;
wherein the plurality of computer systems comprises one or more server processes and one or more clients.
-
-
17. The method of claim 12,
wherein a real-time server executes within a server process. -
18. The method of claim 12,
wherein a server process includes one or more driver objects, wherein each driver object is coupled to one or more hardware devices. -
19. The method of claim 12,
wherein the packet comprises one or more TCP/IP packets. -
20. The method of claim 12,
wherein the server process providing the packet to one or more clients occurs in substantially real time. -
21. The method of claim 12,
wherein the hardware devices generating data elements, the receiving the data elements, the generating a packet, and the server process providing the packet to the clients occur a plurality of times. -
22. The method of claim 12,
wherein at least a portion of the data elements comprise delta values indicating a change from a prior data element; -
wherein the data element delta values are stored as an integer times a quantum value, wherein the quantum value is pre-defined by the respective client process for the respective data element;
the method further comprising;
the server process transferring the packet comprising the data element delta values to one or more clients.
-
-
23. An industrial automation system, comprising:
-
one or more I/O devices, wherein each of the I/O devices generates a plurality of data elements;
a server computer system coupled to at least one of the I/O devices, wherein the server computer system includes a central processing unit (CPU), a display screen, memory, and one or more input devices;
wherein the memory stores one or more drivers, wherein each driver is linked to a particular hardware device, and wherein each driver receives the data elements from that particular linked I/O device;
wherein the memory stores one or more real-time servers, wherein each real-time server receives the data elements from the drivers;
wherein the real-time server is executable to generate a plurality of packets, wherein each packet comprises a plurality of data elements, wherein the real-time server generates the packet when a certain threshold amount of data has been received by the real-time server or when a certain timeout period has elapsed;
one or more client computer systems, wherein each client computer system receives a plurality of packets from one or more real-time servers. - View Dependent Claims (24, 25, 26, 27, 28, 29, 30)
wherein each client computer system subscribes to one or more sets of data elements, wherein the sets of data elements are generated by one or more I/O devices. -
25. The system of claim 24,
wherein a client computer system subscribes to a set of data elements by specifying a Universal Resource Locator (URL) to a server computer system. -
26. The system of claim 23,
wherein the server computer system determines if at least a subset of the data elements are being transferred to two or more client computer systems; wherein, if the server computer system determines that at least a subset of the data elements are being transferred to two or more client computer systems, the real-time server is executable to generate one or more multi-cast packets, wherein each multi-cast packet comprises at least a subset of data elements which are common to all of the two or more clients, wherein the real-time server transfers that multi-cast packet to each of the two or more client computer systems.
-
27. The system of claim 23, further comprising:
a network, wherein the network comprises a plurality of computer systems, wherein the plurality of computer systems comprises one or more server computer systems and one or more client computer systems.
-
28. The system of claim 23,
wherein each driver comprises a driver object, wherein the memory of the server computer system stores the driver object, and wherein the driver object is executable to communicate with one or more hardware devices. -
29. The system of claim 23,
wherein each packet further comprises TCP/IP packets. -
30. The system of claim 23,
wherein at least a portion of the data elements comprise delta values indicating a change from a prior data element; -
wherein the data elements delta values are stored as an integer times a quantum value, wherein the quantum value is pre-defined by the respective client computer system for the respective data element;
wherein the real-time server transfers the packet comprising data element delta values to one or more client computer systems.
-
-
Specification