IP Library › Granted Patent US 7,894,460
Granted Patent B2
US 7,894,460 · App. 12/180,334 · Granted Feb 22, 2011

Programmable logic controller protocol converter

Assignee: Air Liquide Large Industries U.S. LP
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,894,460
App. No.
12/180,334
Granted
Feb 22, 2011
Kind
B2
Abstract

A programmable logic controller (PLC) protocol converter is disclosed that allows a supervisory control and data acquisition (SCADA) system to effectively communicate with a PLC device using a desired communications protocol, particularly in cases where the PLC device does not “speak” the desired communications protocol. A first thread may be configured to continually read PLC addresses, one at a time, using a communications protocol understood by the PLC device. The first thread may store the data values in the shared data array within program memory. Thus, the first thread exposes data from the PLC device, as specified in the configuration file. At the same time, a second thread may be configured to serve the data in the shared data array according to a second communications protocol, e.g., to the SCADA system.

Claims (50)

1. A method for exposing data from a programmable logic controller (PLC) device, comprising:

accessing a configuration file identifying a plurality of PLC addresses to expose;

initializing a shared memory array, wherein the shared memory array includes a plurality of elements each used to store data obtained from the PLC device;

invoking a first thread, wherein the first thread is configured to, repeatedly:

transmit a request for one of the identified PLC addresses, wherein the request is configured according to a first communication protocol, wherein the first protocol comprises a Non-Intelligent Terminal Protocol (NITP), and

store a data value returned by the PLC device in response to the request in one of the elements of the shared memory array; and

invoking a second thread, wherein the second thread is configured to:

receive a request, communicated according to a second communication protocol, for one or more of the data values stored in the shared memory array,

retrieve the requested one or more data values, and

return the requested data values in a format consistent with the second communication protocol.

2. The method of claim 1 , wherein the request for one or more data values is transmitted by, and returned to, a supervisory control and data acquisition (SCADA) system.

3. The method of claim 1 , wherein the first protocol is used to communicate over a serial communications data link established between the PLC device and the first thread.

4. The method of claim 1 , wherein the second protocol comprises a TCP/MODBUS protocol.

5. The method of claim 1 , wherein the shared memory array includes at least one numeric data value.

6. The method of claim 1 , wherein the shared memory array includes at least one discrete data value.

7. The method of claim 1 , wherein the shared memory array includes at least one diagnostic value.

8. A non-transitory computer-readable storage medium containing a program configured to perform a method for exposing data from a programmable logic controller (PLC) device, the program including instructions for performing an operation, comprising:

accessing a configuration file identifying a plurality of PLC addresses to expose;

initializing a shared memory array, wherein the shared memory array includes a plurality of elements each used to store data obtained from the PLC device;

invoking a first thread, wherein the first thread is configured to, repeatedly:

transmit a request for one of the identified PLC addresses, wherein the request is configured according to a first communication protocol, wherein the first protocol comprises a Non-Intelligent Terminal Protocol (NITP), and

store a data value returned by the PLC device in response to the request in one of the elements of the shared memory array; and

invoking a second thread, wherein the second thread is configured to:

receive a request, communicated according to a second communication protocol, for one or more of the data values stored in the shared memory array,

retrieve the requested one or more data values, and

return the requested data values in a format consistent with the second communication protocol.

9. The computer-readable storage medium of claim 8 , wherein the request for one or more data values is transmitted by, and returned to, a supervisory control and data acquisition (SCADA) system.

10. The computer-readable storage medium of claim 8 , wherein the first protocol is used to communicate over a serial communications data link established between the PLC device and the first thread.

11. The computer-readable storage medium of claim 8 , wherein the second protocol comprises a TCP/MODBUS protocol.

12. The computer-readable storage medium of claim 8 , wherein the shared memory array includes at least one numeric data value.

13. The computer-readable storage medium of claim 8 , wherein the shared memory array includes at least one discrete data value.

14. The computer-readable storage medium of claim 8 , wherein the shared memory array includes at least one diagnostic value.

15. A system, comprising:

a processor; and

a memory containing a program configured to perform an operation for obtaining data values from a programmable logic controller (PLC) device, the operation comprising:

parsing a configuration file identifying a plurality of PLC addresses to expose;

initializing a shared memory array, wherein the shared memory array includes a plurality of elements each used to store data obtained from the PLC device;

invoking a first thread, wherein the first thread is configured to, repeatedly:

transmit a request for one of the PLC addresses, wherein the request is configured according to a first communication protocol, wherein the first protocol comprises a Non-Intelligent Terminal Protocol (NITP), and

store a data value returned by the PLC device in response to the request in one of the elements of the shared memory array; and

invoking a second thread, wherein the second thread is configured to:

receive a request, communicated according to a second communication protocol, for one or more of the data values stored in the shared memory array,

retrieve the requested one or more data values, and

return the requested data values in a format consistent with the second communication protocol.

16. The system of claim 15 , wherein the request for one or more data values is transmitted by, and returned to, a supervisory control and data acquisition (SCADA) system.

17. The system of claim 15 , wherein the first protocol is used to communicate over a serial communications data link established between the PLC device and the first thread.

18. The system of claim 15 , wherein the second protocol comprises a TCP/MODBUS protocol.

19. The system of claim 15 , wherein the shared memory array includes at least one numeric data value.

20. The system of claim 15 , wherein the shared memory array includes at least one discrete data value.

21. The system of claim 15 , wherein the shared memory array includes at least one diagnostic value.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 22, 2008
From: CARPMAN, JOSHUA; CUMMINGS, TRAVIS R.; RABAT-TORKI, HAMID J.
To: AIR LIQUIDE LARGE INDUSTRIES U.S. LP
Reel/Frame 021429/0199 →
Continuity (2)
Provisional Application 60952118 · Jul 26, 2007
Related Publication 20090028184A1 · Jan 29, 2009