System and method for programming a logic control unit
First Claim
1. A process for generating a control program for execution by a programmable logic control unit having a plurality of input ports for receiving input signals from components of an external system under control, and a plurality of output ports for providing output signals to components of the external system, the program listings being easily read and understood by one not trained in the arts of software engineering, comprising the steps of:
- (ai) providing a variable editing user interface allowing a user to select and edit existing variables stored in a file and including input variables associated with corresponding ones of the input signals, and output variables associated with corresponding ones of the output signals, and to define new variables;
(aii) displaying a list of previously defined variables;
(aiii) selecting a type of variable from a predetermined set of types of variables;
(aiv) selecting and editing an existing variable of the selected type, or defining a new variable of the selected type by entering a variable name identifying the variable, and specifying particular characteristics of the new variable; and
(av) storing the edited or defined variable in said file and returning to step (aii) until all desired variables have been edited and/or defined;
(bi) providing a program level editing user interface allowing the user to edit a program level stored in said file, said program level including a plurality of states defining a sub-process of said control program for asynchronous execution by the programmable control unit, or to define a new program level;
(bii) selecting and editing an existing program level, or defining a new program level by assigning a level value, level type and level description thereto; and
(biii) storing the edited or new program level in said file and returning to step (bii) until all desired program levels have been edited and/or defined;
(ci) providing a state editing user interface allowing a user to select and edit an existing state stored in said file, or to define a new state having at least one variable associated therewith, said variable being assigned a data value upon transition of said control program to the corresponding state during execution of said control program by the programmable control unit;
(cii) selecting and editing an existing state, or defining a new state and assigning at least one variable thereto; and
(ciii) storing the edited or new state in said file;
(di) providing a condition editing user interface allowing a user to select and edit a condition associated with a particular state and stored in said file, or to add a new condition to a selected state said condition specifying a transition from an associated state as a source state to a corresponding selected destination state upon satisfaction of said condition during execution of said control program by the programmable control unit;
(dii) selecting a stored condition for editing, or defining a new condition for a particular state by assigning thereto a condition address, a condition name, a destination state address, and a destination state name, said destination address specifying, for said condition, a transition from its associated state, as a source state, to a selected destination state when said condition is true during execution of said control program; and
(diii) storing said edited or new condition in said file; and
(e) generating said control program as a function of the associative relationships of said stored variables, states, and conditions stored in said file.
1 Assignment
0 Petitions
Accused Products
Abstract
A system and process for generating a control program for execution by a programmable logic control unit including the steps of: providing a variable editing user interface allowing a user to define and edit variables including input variables and output variables; providing a program level editing user interface allowing the user to edit a program level; providing a state editing user interface allowing a user to define and edit a plurality of states of the control program; providing a condition editing user interface allowing a user to define and edit at least one condition for each of the states of the control program; and generating the control program as a function of associative relationships of the variables, states, and conditions.
-
Citations
33 Claims
-
1. A process for generating a control program for execution by a programmable logic control unit having a plurality of input ports for receiving input signals from components of an external system under control, and a plurality of output ports for providing output signals to components of the external system, the program listings being easily read and understood by one not trained in the arts of software engineering, comprising the steps of:
-
(ai) providing a variable editing user interface allowing a user to select and edit existing variables stored in a file and including input variables associated with corresponding ones of the input signals, and output variables associated with corresponding ones of the output signals, and to define new variables;
(aii) displaying a list of previously defined variables;
(aiii) selecting a type of variable from a predetermined set of types of variables;
(aiv) selecting and editing an existing variable of the selected type, or defining a new variable of the selected type by entering a variable name identifying the variable, and specifying particular characteristics of the new variable; and
(av) storing the edited or defined variable in said file and returning to step (aii) until all desired variables have been edited and/or defined;
(bi) providing a program level editing user interface allowing the user to edit a program level stored in said file, said program level including a plurality of states defining a sub-process of said control program for asynchronous execution by the programmable control unit, or to define a new program level;
(bii) selecting and editing an existing program level, or defining a new program level by assigning a level value, level type and level description thereto; and
(biii) storing the edited or new program level in said file and returning to step (bii) until all desired program levels have been edited and/or defined;
(ci) providing a state editing user interface allowing a user to select and edit an existing state stored in said file, or to define a new state having at least one variable associated therewith, said variable being assigned a data value upon transition of said control program to the corresponding state during execution of said control program by the programmable control unit;
(cii) selecting and editing an existing state, or defining a new state and assigning at least one variable thereto; and
(ciii) storing the edited or new state in said file;
(di) providing a condition editing user interface allowing a user to select and edit a condition associated with a particular state and stored in said file, or to add a new condition to a selected state said condition specifying a transition from an associated state as a source state to a corresponding selected destination state upon satisfaction of said condition during execution of said control program by the programmable control unit;
(dii) selecting a stored condition for editing, or defining a new condition for a particular state by assigning thereto a condition address, a condition name, a destination state address, and a destination state name, said destination address specifying, for said condition, a transition from its associated state, as a source state, to a selected destination state when said condition is true during execution of said control program; and
(diii) storing said edited or new condition in said file; and
(e) generating said control program as a function of the associative relationships of said stored variables, states, and conditions stored in said file. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20)
at least one task program level; and
at least one subroutine program level which may be called by a corresponding calling program level having a plurality of states, said plurality of states of said corresponding calling program level including at least one state having a call condition associated therewith, said call condition specifying a transition from an associated state of a calling program level to a corresponding selected destination state of a corresponding subroutine program level;
said plurality of states of said corresponding subroutine program level including at least one state having a return condition associated therewith, said return condition specifying that said control program is to transition to a return state of said corresponding calling program level upon satisfaction of said return condition during execution of said control program.
-
-
3. A process for generating a control program as recited in claim 2 wherein a return state is indicated by a return state field associated with a calling condition of a corresponding calling program level.
-
4. A process for generating a control program as recited in claim 2 wherein each said subroutine program level and said corresponding calling program level are executed by the programmable control unit in a single thread.
-
5. A process for generating a control program as recited in claim 1 wherein:
-
each of said program levels has a program level value field associated therewith, said program level value field for carrying a value uniquely identifying said program level;
each of said states of each said program level has a state address field associated therewith for carrying a state address defined by a program level value of a corresponding program level, and a state value uniquely identifying said state; and
each of said conditions has a condition field associated therewith, each said condition field including, a condition address field for carrying a condition address indicative of said condition, said condition address being formed by the program level value of a corresponding program level, the state value of a corresponding state, and a condition value uniquely identifying the condition, and a destination state address field carrying the state address of the selected destination state to which said process is to transition if the condition is determined to be true during execution of the control program by the programmable control unit.
-
-
6. A process for generating a control program as recited in claim 5 wherein:
-
each said program level has a program level name field associated therewith for receiving a user specified character string descriptive thereof;
each said state of each said program level has a state name field associated therewith for receiving a user specified character string descriptive thereof; and
each said condition field further includes a condition name field for receiving a user specified character string descriptive thereof.
-
-
7. A process for generating a control program as recited in claim 5 wherein said state values and said condition values are automatically generated sequentially by said process as the user defines said states and said conditions via said state editing user interface and said condition editing user interface respectively.
-
8. A process for generating a control program as recited in claim 1 wherein said set of types of variables includes memory location variables including:
-
at least one program variable for which an associated program variable data field is to be allocated by said programmable control unit upon execution of said control program; and
at least one digital variable for which an associated digital variable data field is to be allocated by said programmable control unit upon execution of said control program.
-
-
9. A process for generating a control program as recited in claim 1 wherein said input variables include
analog input variables associated with corresponding analog input signals received from corresponding ones of said components of said external system; - and
digital input variables associated with corresponding digital input signals received from corresponding ones of said components of said external system.
- and
-
10. A process for generating a control program as recited in claim 1 wherein said output variables include
analog output variables associated with corresponding analog output signals provided to corresponding ones of said components of said external system; - and
digital output variables associated with corresponding digital output signals provided to corresponding ones of said components of said external system.
- and
-
11. A process for generating a control program as recited in claim 1 wherein said conditions include condition statements for determining whether a transition from an associated source state to a corresponding destination state is to occur, said condition statements including check-state condition statements specifying that a selected check state and a source state must be active for the associated condition to be satisfied, the selected check state and source state being associated with different ones of said program levels.
-
12. A process for generating a control program as recited in claim 1 wherein selected limited ones of the program levels are limited to be executed by the programmable control unit only when corresponding selected limiting states are active, each said limiting state being associated with a program level other than the corresponding limited program level.
-
13. A process for generating a control program as recited in claim 1 wherein said program levels include at least one task program level.
-
14. A process for generating a control program as recited in claim 1 wherein said program levels include:
-
at least one subroutine program level which may be called by a corresponding calling program level having a plurality of states, said plurality of states of said corresponding calling program level including at least one state having a call condition associated therewith, said call condition specifying a transition from an associated state of a calling program level to a corresponding selected destination state of a corresponding subroutine program level;
said plurality of states of said corresponding subroutine program level including at least one state having a return condition associated therewith, said return condition specifying that said control program is to transition to a return state of said corresponding calling program level upon satisfaction of said return condition during execution of said control program.
-
-
15. A process for generating a control program as recited in claim 1 wherein said program levels include at least one task program level.
-
16. A process for generating a control program as recited in claim 1 wherein said program levels include:
-
at least one subroutine program level which may be called by a corresponding calling program level having a plurality of states, said plurality of states of said corresponding calling program level including at least one state having a call condition associated therewith, said call condition specifying a transition from an associated state of a calling program level to a corresponding selected destination state of a corresponding subroutine program level;
said plurality of states of said corresponding subroutine program level including at least one state having a return condition associated therewith, said return condition specifying that said control program is to transition to a return state of said corresponding calling program level upon satisfaction of said return condition during execution of said control program.
-
-
17. A process for generating a control program as recited in claim 1 wherein said variables include
analog input variables, analog output variables, digital input variables, digital output variables, program variables, digital variables, panel light-emitting diode (panel LED) variables, panel switch variables, timer variables, and proportional integral derivative (PID) variables. -
18. A process for generating a control program as recited in claim 1 wherein said program level value and state name are numerical values, and further comprising the step of;
generating a flow chart having a left hand column and a right hand column, the left hand column listing in order according to program level value and state name each odd numbered state and its associated conditions, and the right hand column listing in order according to program level value and state name each even numbered state and its associated conditions, the associative relationships between the several states and conditions being indicated by connecting lines.
-
19. A process for generating a control program as recited in claim 18 wherein each said state is identified by a unique pair of numbers the first of which indicates program level and the second of which indicates state name.
-
20. A process for generating a control program as recited in claim 19 wherein each said condition is identified by a unique set of at least three numbers the first of which indicates program level, the second of which indicates state name, and the third of which indicates condition name.
-
21. A machine readable storage device having stored therein encoding instructions for executing a process for generating a control program for execution by a programmable control unit having a plurality of input ports for receiving input signals from components of an external system under control, and a plurality of output ports for providing output signals to components of the external system, the program listings being easily read and understood by one not trained in the arts of software engineering, said process comprising the steps of:
-
(ai) providing a variable editing user interface allowing a user to select and edit existing variables stored in a file and including input variables associated with corresponding ones of the input signals, and output variables associated with corresponding ones of the output signals, and to define new variables;
(aii) displaying a list of previously defined variables;
(aiii) selecting a type of variable from a predetermined set of types of variables;
(aiv) selecting and editing an existing variable of the selected type, or defining a new variable of the selected type by entering a variable name identifying the variable, and specifying particular characteristics of the new variable; and
(av) storing the edited or defined variable in said file and returning to step (aii) until all desired variables have been edited and/or defined;
(bi) providing a program level editing user interface allowing the user to edit a program level stored in said file, said program level including a plurality of states defining a sub-process of said control program for asynchronous execution by the programmable control unit, or to define a new program level;
(bii) selecting and editing an existing program level, or defining a new program level by assigning a level value, level type and level description thereto; and
(biii) storing the edited or new program level in said file and returning to step (bii) until all desired program levels have been edited and/or defined;
(ci) providing a state editing user interface allowing a user to select and edit an existing state stored in said file, or to define a new state having at least one variable associated therewith said variable being assigned a at a value upon transition of said control program to the corresponding state during execution of said control program by the programmable control unit;
(cii) selecting and editing an existing state, or defining a new state and assigning at least one variable thereto; and
(ciii) storing the edited or new state in said file;
(di) providing a condition editing user interface allowing a user to select and edit a condition associated with a particular state and stored in said file, or to add a new condition to a selected state said condition specifying a transition from an associated state as a source state to a corresponding selected destination state upon satisfaction of said condition during execution of said control program by the programmable control unit;
(dii) selecting a stored condition for editing, or defining a new condition for a particular state by assigning thereto a condition address, a condition name, a destination state address, and a destination state name, said destination address specifying, for said condition, a transition from its associated state, as a source state, to a selected destination state when said condition is true during execution of said control program; and
(diii) storing said edited or new condition in said file; and
(e) generating said control program as a function of the associative relationships of said stored variables, states, and conditions stored in said file. - View Dependent Claims (22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33)
each of said program levels has a program level value field associated therewith, said program level value field for carrying a value uniquely identifying said program level;
each of said states of each said program level has a state address field associated therewith for carrying a state address defined by a program level value of a corresponding program level, and a state value uniquely identifying said state; and
each of said conditions has a condition field associated therewith, each said condition field including, a condition address field for carrying a condition address indicative of said condition, said condition address being formed by the program level value of a corresponding program level, the state value of a corresponding state, and a condition value uniquely identifying the condition, and a destination state address field carrying the state address of the selected destination state to which said process is to transition if the condition is determined to be true during execution of the control program by the programmable control unit.
-
-
26. A machine readable storage device having stored therein encoding instructions for executing a process for generating a control program as recited in claim 21 wherein:
-
each said program level has a program level name field associated therewith for receiving a user specified character string descriptive thereof;
each said state of each said program level has a state name field associated therewith for receiving a user specified character string descriptive thereof said corresponding state; and
each said condition field further includes a condition name field for receiving a user specified character string descriptive thereof.
-
-
27. A machine readable storage device having stored therein encoding instructions for executing a process for generating a control program as recited in claim 21 wherein said state values and said condition values are automatically generated sequentially by said process as the user defines said states and said conditions via said state editing user interface and said condition editing user interface respectively.
-
28. A machine readable storage device having stored therein encoding instructions for executing a process for generating a control program as recited in claim 21 wherein said set of types of variables includes memory location variables including:
-
at least one program variable for which an associated program variable data field is to be allocated by said programmable control unit upon execution of said control program; and
at least one digital variable for which an associated digital variable data field is to be allocated by said programmable control unit upon execution of said control program.
-
-
29. A machine readable storage device having stored therein encoding instructions for executing a process for generating a control program as recited in claim 21 wherein said input variables include:
-
analog input variables associated with corresponding analog input signals received from corresponding ones of said components of said external system; and
digital input variables associated with corresponding digital input signals received from corresponding ones of said components of said external system.
-
-
30. A machine readable storage device having stored therein encoding instructions for executing a process for generating a control program as recited in claim 21 wherein said output variables include:
-
analog output variables associated with corresponding analog output signals provided to corresponding ones of said components of said external system; and
digital output variables associated with corresponding digital output signals provided to corresponding ones of said components of said external system.
-
-
31. A machine readable storage device having stored therein encoding instructions for executing a process for generating a control program as recited in claim 21 said conditions include condition statements for determining whether a transition from an associated source state to a corresponding destination state is to occur, said condition statements including check-state condition statements specifying that a selected check state and a source state must be active for the associated condition to be satisfied, the selected check state and source state being associated with different ones of said program levels.
-
32. A machine readable storage device having stored therein encoding instructions for executing a process for generating a control program as recited in claim 21 wherein selected limited ones of the program levels are limited to be executed by the programmable control unit only when corresponding selected limiting states are active, each said limiting state being associated with a program level other than the corresponding limited program level.
-
33. A machine readable storage device having stored therein encoding instructions for executing a process for generating a control program as recited in claim 21 wherein said variables include analog input variables, analog output variables, digital input variables, digital output variables, program variables, digital variables, panel light-emitting diode (panel LED) variables, panel switch variables, timer variables, and proportional integral derivative (PID) variables.
Specification