← Back to Patent Explorer
US5287548A Expired / Lapsed US ⏱️ 0.0 years remaining

Programmable controller having a stored program with both machine language instructions and source code data

Assignee: Allen Bradley Co LLC
•
Filing: 1988-02-29
•
Granted: 1994-02-15
•
Expires: 2008-02-29
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A programmable controller governs the operation of a piece of equipment by executing machine language instructions compiled from a ladder diagram type control program. The control program as stored in the controller includes not only compiled machine language instructions, but also a tokenized version of the source code from which certain machine language instructions were compiled. The source code is provided only for those portions of the machine language program which cannot be easily decompiled to produce the corresponding source code. This program storage facilitates subsequent editing of the stored program via a terminal connected to the programmable controller. During the editing process, the original ladder diagram can be reconstructed from a combination of the machine language instructions and the tokenized version of the source code. In doing so, the machine language instructions, which have a one-to-one correspondence with the source code instructions, are decompiled using conventional techniques. However, the tokenized version of the source code is used to recreate the portions of the ladder diagram for which each machine language instruction does not have a unique one-to-one correspondence with a source code instruction. This program storage technique enables the control program to be easily edited using the version stored in the programmable controller without requiring access to the original source code from which the program was compiled.

Inventors

  • 👤 Mark A. Flood
  • 👤 Michael D. Kalan
  • 👤 Charles M. Rischar
  • 👤 Robert R. Sepsi
  • 👤 Jack F. Toma

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-24 07:46
CPC Classifications
G; G05; G05B; G05B19/00; G05B19/02; G05B19/04; G05B19/05; G05B19/056; G05B2219/00; G05B2219/10; G05B2219/13; G05B2219/13118; G05B2219/13144; G05B2219/15; G05B2219/15059; G05B2219/15127

Claims Analysis

Total Claims: 21
Claim 1
Independent Claim 190 words
In a programmable logic controller for use in executing an object code control program including a plurality of contiguous program data sectors which correspond to sequential program steps and which include a first section containing general purpose processor instructions and a second section containing tokenized source code information statements for accurately reconstructing source code instructions corresponding to said general purpose processor instructions for program editing purposes, a method for processing said control program at run time for control execution and during program decompiling for full source code reconstruction comprising the steps of: A) processing each of said control program sectors at run time by: 1) executing said general purpose processor instructions in the first section in each of said sectors, and 2) jumping over said tokenized source code information statements in the second section in each of said sectors; and B) processing each of said control program sectors during decompiling by: 1) skipping over said general purpose processor instructions in the first section in each of said sectors, and 2) generating source code instructions from said tokenized source code information statements in the second section of each of said sectors.
Claim 2
Dependent Claim 190 words
In a programmable logic controller for use in executing an object code control program including a plurality of contiguous program data sectors which correspond to sequential program steps and which include a first section containing general purpose processor instructions and a second section containing tokenized source code information statements for accurately reconstructing source code instructions corresponding to said general purpose processor instructions for program editing purposes, a method for processing said control program at run time for control execution and during program decompiling for full source code reconstruction comprising the steps of: A) processing each of said control program sectors at run time by: 1) executing said general purpose processor instructions in the first section in each of said sectors, and 2) jumping over said tokenized source code information statements in the second section in each of said sectors; and B) processing each of said control program sectors during decompiling by: 1) skipping over said general purpose processor instructions in the first section in each of said sectors, and 2) generating source code instructions from said tokenized source code information statements in the second section of each of said sectors.
Claim 3
Dependent Claim 29 words
The method of claim 1, wherein said step of jumping over said source code information is initiated with a jump instruction (JMP) at the end of said first sections.
Claim 4
Dependent Claim 36 words
The method of claim 1, wherein said step of skipping over said general purpose instructions is initiated with a stop execution instruction (STP) in said first section which specifies an offset to a corresponding third section.
Claim 5
Dependent Claim 20 words
The method of claim 1, wherein said program sectors correspond to ladder rungs in a ladder language industrial control program.
Claim 6
Dependent Claim 235 words
In a programmable logic controller for use in executing an object code control program including a plurality of contiguous program data sectors which correspond to sequential program steps and which include a first section containing special purpose co-processor instructions having one-to-one relationship with source code instructions, a second section containing general purpose co-processor instructions and a third section containing source code information for accurately reconstructing source code instructions corresponding to said general purpose co-processor instructions for program editing purposes, a method for processing said control program at run time for control execution and during program decompiling for full source code reconstruction compromising the steps of: A) processing each of said control program sectors at run time by: 1) executing said special purpose co-processor instructions in the first section in each of said sectors, 2) executing said general purpose co-processor instructions in the second section in each of said sectors, and 3) jumping over said source code information in the third section in each of said sectors; and B) processing each of said control program sectors during decompiling by: 1) generating source code instructions from said special purpose co-processor instructions in the first section in each of said sectors, 2) skipping over said general purpose co-processor instructions in the second section in each of said sectors, and 3) generating source code instructions from said source code information in the third section of each of said sectors.
Claim 7
Dependent Claim 235 words
In a programmable logic controller for use in executing an object code control program including a plurality of contiguous program data sectors which correspond to sequential program steps and which include a first section containing special purpose co-processor instructions having one-to-one relationship with source code instructions, a second section containing general purpose co-processor instructions and a third section containing source code information for accurately reconstructing source code instructions corresponding to said general purpose co-processor instructions for program editing purposes, a method for processing said control program at run time for control execution and during program decompiling for full source code reconstruction compromising the steps of: A) processing each of said control program sectors at run time by: 1) executing said special purpose co-processor instructions in the first section in each of said sectors, 2) executing said general purpose co-processor instructions in the second section in each of said sectors, and 3) jumping over said source code information in the third section in each of said sectors; and B) processing each of said control program sectors during decompiling by: 1) generating source code instructions from said special purpose co-processor instructions in the first section in each of said sectors, 2) skipping over said general purpose co-processor instructions in the second section in each of said sectors, and 3) generating source code instructions from said source code information in the third section of each of said sectors.
Claim 8
Dependent Claim 29 words
The method of claim 5, wherein said step of jumping over said source code information is initiated with a jump instruction (JMP) at the end of said second sections.
Claim 9
Dependent Claim 36 words
The method of claim 5, wherein said step of skipping over said general purpose instructions is initiated with a stop execution instruction (STP) in said first section with specifies an offset to a corresponding third section.
Claim 10
Dependent Claim 20 words
The method of claim 5, wherein said program sectors correspond to ladder rungs in a ladder language industrial control program.
Claim 11
Dependent Claim 20 words
The method of claim 5, wherein said source code information in said third sections comprises tokenized source code information statements.
Claim 12
Dependent Claim 24 words
The method of claim 5, wherein the ends of said third sections containing tokenized source code instruction statements are designated by fixed instruction statements.
Claim 13
Dependent Claim 15 words
The method of claim 5, wherein said special purpose co-processor instructions comprise bit co-processor instructions.
Claim 14
Dependent Claim 237 words
In a programmable logic controller for use in executing an object code control program including a plurality of contiguous program data sectors which correspond to sequential program steps and which include a first section containing special purpose co-processor instructions having one-to-one relationships with source code instructions, a second section containing general purpose co-processor instructions and a third section containing source code information for accurately reconstructing source code instructions corresponding to said general purpose co-processor instructions for program editing purposes, a system for processing said control program at run time for control execution and during program decompiling for full source code reconstruction comprising: A) means for processing each of said control program sectors at run time by: 1) executing said special purpose co-processor instructions in the first section in each of said sectors, 2) executing said general purpose co-processor instructions in the second section in each of said sectors, and 3) jumping over said source code information in the third section in each of said sectors; and B) means for processing each of said control program sectors during program decompiling by: 1) generating source code instructions from said special purpose co-processor instructions in the first section in each of said sectors, 2) skipping over said general purpose co-processor instructions in the second section in each of said sectors, and 3) generating source code instructions from said source code information in the third section of each of said sectors.
Claim 15
Dependent Claim 237 words
In a programmable logic controller for use in executing an object code control program including a plurality of contiguous program data sectors which correspond to sequential program steps and which include a first section containing special purpose co-processor instructions having one-to-one relationships with source code instructions, a second section containing general purpose co-processor instructions and a third section containing source code information for accurately reconstructing source code instructions corresponding to said general purpose co-processor instructions for program editing purposes, a system for processing said control program at run time for control execution and during program decompiling for full source code reconstruction comprising: A) means for processing each of said control program sectors at run time by: 1) executing said special purpose co-processor instructions in the first section in each of said sectors, 2) executing said general purpose co-processor instructions in the second section in each of said sectors, and 3) jumping over said source code information in the third section in each of said sectors; and B) means for processing each of said control program sectors during program decompiling by: 1) generating source code instructions from said special purpose co-processor instructions in the first section in each of said sectors, 2) skipping over said general purpose co-processor instructions in the second section in each of said sectors, and 3) generating source code instructions from said source code information in the third section of each of said sectors.
Claim 16
Dependent Claim 30 words
The system of claim 12, wherein the functional step of jumping over said source code information is initiated with a jump instruction (JMP) at the end of said second sections.
Claim 17
Dependent Claim 37 words
The system of claim 12, wherein the functional step of skipping over said general purpose instructions is initiated with a stop execution instruction (STP) in said first section which specifies an offset to a corresponding third section.
Claim 18
Dependent Claim 20 words
The method of claim 12, wherein said program sectors correspond to ladder rungs in a ladder language industrial control program.
Claim 19
Dependent Claim 20 words
The method of claim 12, wherein said source code information in said third sections comprises tokenized source code instruction statements.
Claim 20
Dependent Claim 24 words
The method of claim 16, wherein the ends of said third sections containing tokenized source code instruction statements are designated by fixed instruction statements.
Claim 21
Dependent Claim 15 words
The method of claim 12, wherein said special purpose co-processor instructions comprise bit co-processor instructions.

References Cited (Backward Citations)

US3810118A Cited
US4413319A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 1997-02-14 1997-08-16 1998-02-15 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2001-02-14 2001-08-16 2002-02-15 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2005-02-14 2005-08-16 2006-02-15 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag