Visual

Visual programming method and its system

6366300

Abstract

The user is allowed to automatically generate a program by using a visual programming method and a system adopting the method for automatically generating a program wherein an object selection means 8 is used for selecting a behavioral graphical object defining the behavior of a load connected thereto, a behavior selection means 9 is used for selecting the type of the behavior of the behavioral graphical object, a relevant object selection means 10 is used for selecting relevant graphical objects related to the behavior of the behavioral graphical object and a behavioral rule setting means 11 is used for setting behavioral rules of the behavioral graphical object whereas a behavioral characteristic selection unit 3509 is used for selecting a behavior of a behavioral graphical object selected by using a behavioral object selection unit 3508, behavioral condition setting unit 3510 is used for setting conditions for the behavior of the behavioral graphical object and a relevant object selection unit 3511 is used for defining a relation.


Claims

What is claimed is:

1. A visual programming method comprising:

a first step of displaying graphical objects representing a plurality of members connected to output terminals of a programmable logic controller;

a second step of displaying graphical objects representing the output terminals of the programmable logic controller;

a third step of connecting a first graphical object selected by a user from the graphical objects representing the plurality of members displayed in the first step, to a second graphical object selected by the user from the graphical objects representing the output terminals and displayed in the second step;

a fourth step of allowing a user to select a graphical object or a plurality of graphical objects from said graphical objects each used for defining a function and displayed at said first step and transferring the same plurality of selected graphical objects to said layout diagram;

a sixth step of creating a layout diagram showing a layout of the graphical objects representing the plurality of members and displaying said layout diagram on a screen;

a seventh step of allowing the user to select one of said graphical objects each used for defining a function and transferring said selected graphical object to said layout diagram created and displayed at said sixth step;

an eighth step of allowing a user to select a plurality of graphical objects from said graphical objects each used for defining a function and displayed at said first step and transferring the same plurality of selected graphical objects to said layout diagram created at said sixth step;

a ninth step of allowing a user to select a graphical object or a plurality of graphical objects from said graphical objects each used for defining a function and displayed at said first step and transferring the same plurality of selected graphical objects to said layout diagram created at said sixth step as well as displaying the same plurality of selected graphical objects on said layout diagram;

a tenth step of identifying arrangement orders of graphical objects selected by a user and assigning a priority to each of said arrangement orders when a plurality of arrangement orders are identified;

an eleventh step of displaying the same plurality of identified arrangement orders sequentially one after another in a sequence determined by said priorities assigned thereto at said tenth step,

a twelfth step of allowing the user to select an arrangement order among the same plurality of identified arrangement orders displayed sequentially at said eleventh step;

a thirteenth of allowing a user to change an arrangement order of graphical objects selected by the user at said twelfth step;

a fourteenth step of detecting a settable parameter graphical object with a new parameter thereof among graphical objects selected by a user and notifying the user of a result of detection;

a fifteenth step of detecting selection of said graphical object reported to the user at said fourteenth step or a graphical object other than said reported graphical object and creating and displaying a window used for setting a parameter of said reported graphical object or said other graphical object; and

a sixteenth step of allowing the user to set said parameter on said window displayed at said fifteenth step.

2. A visual programming method according to claim 1 further comprising a fourth step of allowing a user to select a graphical object or a plurality of graphical objects from said graphical objects each used for defining a function and displayed at said first step and transferring the same plurality of selected graphical objects to said layout diagram.

3. A visual programming method according to claim 2 further comprising a fifth step of displaying a graphical object or a plurality of graphical objects transferred at said fourth step on said layout diagram.

4. A visual programming method according to claim 1 further comprising:

a seventeenth step of selecting one graphical object or a plurality of graphical objects among graphical objects displayed on said graphical editor used for carrying out programming work by operating graphical objects each visually representing a function;

an eighteenth step of creating a new graphical object on the basis of said graphical objects selected at said seventeenth step and putting said created new graphical object in a displayable state; and

a nineteenth step of displaying said new graphical object.

5. A visual programming method according to claim 4 further comprising:

a twentieth step of setting state information for graphical objects displayed on said graphical editor used for carrying out programming work by operating graphical objects each visually representing a function;

a twenty-first step of allowing a user to set a state of each of said graphical objects on the basis of setting carried out at said twentieth step; and

a twenty-second step of storing a result obtained at said twenty-first step as a function rule.

6. A visual programming method according to claim 5 further comprising a twenty-third step of re-creating and displaying a behavioral rule stored at said twenty-second step on another screen.

7. A visual programming method according to claim 6 further comprising:

a twenty-fourth step of allowing a user to change a state of a graphical object; and

a twenty-fifth step comprising the steps of:

monitoring a state of a graphical object set at said twenty-fourth step;

setting state information in said displayed graphical objects used for carrying out programming work by operating ordinary graphical objects each visually representing a function; and, if a condition set by the user with respective states of said graphical objects used as rules on the basis of said set state information is satisfied,

detecting a parameter settable graphical object with a new parameter thereof from graphical objects selected by the user;

detecting selection of said parameter settable graphical object or a graphical object other than said parameter settable graphical object and creating a window used for setting a parameter of said parameter settable graphical object or said other graphical object;

allowing the user to set a parameter on said displayed window; and

changing a state of said graphical object in accordance with said parameter set by the user.

8. A visual programming method according to claim 7 further comprising a twenty-sixth step of allowing a user to change an image of a graphical object.

9. A programming system comprising:

display means for displaying graphical objects representing a plurality of members connected to output terminals of a programmable logic controller, and for displaying graphical objects representing the output terminals of the programmable logic controller;

transfer means for connecting the graphical object selected by the user from the graphical objects representing the plurality of members displayed, to the graphical objects selected by the user from the graphical objects representing the output terminals and displayed;

said display means creating a layout diagram showing a layout of graphical objects representing configuration members of an application system being created by a user and displaying said layout diagram on a screen different from a screen for displaying a layout diagram showing a layout of graphical objects each defining a behavior;

said transfer means transferring a graphical object selected by a user from said graphical objects each defining a behavior to said layout diagram different from said laid out diagram showing a layout of graphical objects representing configuration members of an application system;

notification means for detecting a settable parameter graphical object with a parameter thereof not set yet among graphical objects selected by a user and notifying the user of a result of detection; and

parameter setting means for detecting selection of said graphical object reported to the user by said notification means or a graphical object other than said reported graphical object and allowing the user to set a parameter of said reported graphical object or said other graphical object on a window created and displayed by said display means for setting a parameter.

10. A programming system according to claim 9 wherein said display means displays one graphical object or a plurality of graphical objects transferred by said transfer means on said layout diagram.

11. A programming system according to claim 9 further comprising:

an identifying means for identifying arrangement orders of graphical objects selected by a user and assigning a priority to each of said arrangement orders when a plurality of arrangement orders are identified;

a step display means for displaying the same plurality of identified arrangement orders sequentially one after another in a sequence determined by said priorities assigned thereto by said identifying means; and

a select means for allowing the user to select an arrangement order among the same plurality of identified arrangement orders displayed sequentially by said step display means.

12. A programming system according to claim 9 further comprising a change means for allowing a user to change an arrangement order of graphical objects selected by the user.

13. A programming system according to claim 9 further comprising:

select means for selecting one graphical object or a plurality of graphical objects among graphical objects displayed on said graphical editor used for carrying out programming work by operating graphical objects each visually representing a function;

new object creation means for creating a new graphical object on the basis of said one graphical object or the same plurality of graphical objects selected by said select means and putting said created new graphical object in a displayable state; and

new object display means for displaying said new graphical object.

14. A programming system according to claim 9 further comprising:

state information setting means for setting date information for graphical objects displayed on said graphical editor used for carrying out programming work by operating graphical objects each visually representing a function;

state setting means for allowing a user to set a state of each of said graphical objects on the basis of setting carried out by said state information setting means; and

behavioral rule saving means for storing a result produced by said state setting means as a behavioral rule.

15. A programming system according to claim 14 further comprising a rule display means for re-creating and displaying a rule stored by said rule saving means on a new screen.

16. A programming system comprising:

display means for displaying graphical objects representing a plurality of members connected to output terminals of a programmable logic controller, and for displaying graphical objects representing the output terminals of the programmable logic controller;

transfer means for connecting the graphical object selected by the user from the graphical objects representing the plurality of members displayed in the first step, to the graphical objects selected by the user from the graphical objects representing the output terminals and displayed;

said display means creating a layout diagram showing a layout of graphical objects representing configuration members of an application system being created by a user and displays said layout diagram on a screen different from a screen for displaying a layout diagram showing a layout of graphical objects each defining a function;

said transfer means transferring a graphical object selected by a user from said graphical objects each defining a function to said layout diagram different from said laid out diagram showing a layout of graphical objects representing configuration members of an application system;

state information setting means for setting state information for graphical objects displayed on said graphical editor used for carrying out programming work by operating graphical objects each visually representing a function;

state setting means for allowing a user to set a state of each of said graphical objects on the basis of setting carried out by said state information setting means;

rule saving means for storing a result produced by said state setting means as a rule;

state change means for allowing a user to change a state of graphical object; and

state change display means for monitoring a state of a graphical object set by said state change means; and, if a condition for respective states of said graphical objects set by the user on the basis of said set state information of each of said graphical objects is satisfied, changing a state of said graphical object with a parameter thereof set among said graphical objects each having a settable parameter, and displaying said state.

17. A programming system according to claim 16 wherein said display means displays a graphical object or a plurality of graphical objects transferred by said transfer means on a layout diagram different from a layout diagram showing a layout of graphical objects representing configuration members of an application system.


Description

TECHNICAL FIELD

In general, the present invention relates to a visual programming method and a system adopting the method. More particularly, the present invention relates to a visual programming method, that is, a user interface technique capable of automatically generating a program by selecting an object defining a behavior, defining the behavior and setting behavioral rules by means of a graphical editor. It also relates to a system adopting the method. Technical fields of the present invention include function block diagrams and visual programming tools based on a diagram widely used as a programming language of a programmable logic controller (PLC), and a work environment for carrying out programming by operating graphical objects such as characters and icons which are displayed on a screen and used in a graphical user interface (GUI) commonly known as a user interface between the user and a personal computer or a workstation serving as a graphical editor.

BACKGROUND ART

With popularization of personal computers, there is a demand for a product that allows the so-called end user, a user who is not specially trained in the programming field, to develop a program.

For the end user, it is as very difficult to master a conventional programming language used for developing a program. For this reason, the idea of mastering the programming language is given up and, instead, an already existing program is used in many cases. This situation is seen as an end user programming problem and, as a solution to this problem, there have been proposed visual programming tools for the end user, programming tools that do not require the conventional literal expressions.

These visual programming tools display graphical objects on a display screen. An example of the graphical objects is an icon which is obtained as a result of treating a certain coherent piece of processing as a component. The end user then forms a combination of a plurality of objects on the display screen and makes some modifications in order to create a program. These visual programming tools are based on object oriented programming languages which are commonly known in the field of information processing. The programming languages themselves are visual.

A prior art disclosed in JP-A No. Hei 8-76985 provides a visual programming tool for a situation in which a given programming language further requires the use of a number of difficult functions, showing the fact that the necessity of visual expressions for the end user exists. At a stage of program development in particular, the end user recognizes the necessity to create variables for holding state information before determining a next step. For this reason, there is a demand for a program specifying inspection of these variables. In JP-A No. Hei 8-76985, on the other hand, there is disclosed a visual programming method which allows the end user to program state information visually by using visual switch objects as a solution once such a programming element has been isolated as one of the difficult functions.

Certainly, storing a state of a program in a variable is a method of the programmer who has been specially trained to write programs. Removal of such a thinking process from programming work is thus considered to be effective for a program development carried out by the end user.

In addition, according to a prior art disclosed in JP-A No. Hei 7-248911, with an existing link object in a user interface for visual programs, it is impossible to write for example a program which requires recursive or iterative processing such as an operation to copy elements of an array having a plurality of elements to other locations. The document shows the fact that a programming language of literal expressions such as BASIC, Smalltalk or C++ must be used in order to write a program of recursive iterative processing. In order to solve this problem, an iterative link object according to another prior art disclosed in JP-A No. Hei 7-248911 is introduced. With this iterative link object, there is provided an interface that allows characteristics of a link to be set so that an iterative application program can be created visually by using such iterative link objects without the need for the end user to master such a programming language. Iterative processing is processing seen in a large number of programs. This prior art is considered to be effective in that the technology allows iterative processing to be programmed visually.

On the other hand, the visual programming tool based on a rudder diagram, a programming language for a programmable logic controller (PLC), adopts a graphical user interface (GUI) to provide an environment in which a variety of parameters can be set. It should be noted that this visual programming tool is one of the technical fields to which the present invention closely relates as will be described later. Unlike the other visual programming tools, however, in the programming environment based on a rudder diagram, a mouse can be used along with a keyboard, increasing operatability accordingly and a rudder diagram is used in the programming language itself.

Nevertheless, the programming language based on a rudder diagram is a programming language for use by a specialist to create a program. To be more specific, a program is created by combining symbols of control devices to compose a sequence control circuit. Thus, in the creation of a program, heuristics (laws of experiences) of relay sequence control and knowledge of a logic circuit are utilized. While this visual programming tool allows a variety of parameters to be set, hence, advanced programming to be carried out, if anything, this tool is for use by a specialist rather than an end user.

As described above, the visual programming tool based on a rudder diagram is opposite to the concept of the user interface for the end user of personal computers and workstations embraced in the prior arts disclosed in JP-A Nos. Hei 8-76985 and Hei 7-248911. Even though the main market of the programmable logic controller (PLC) has been in the field of factory automation (FA), development of a new market in which a PLC is aimed at relatively simple control such as control of an illuminator or a speaker using a sensor at an exposition booth is in progress. In the new market in this field, the end user is the user of personal computers who is assumed to have no knowledge of a programmable logic controller (PLC) at all. Since a programming tool suited for such an end user does not exist, there is raised a demand for a programming tool that allows a program of a programmable logic controller (PLC) to be created with ease by using a personal computer.

When considering an application of the user interface of the technology disclosed in JP-A No. Hei 8-76985 to a programming environment of a PLC, for example, a study of creation of a program for sequence control of a combination comprising a plurality of input signals and one output signal will lead us to think that the user interface can be applied to programming of, among other kinds of control, sequence control to switch the state of the output signal in dependence on the combination of the states of the input signals such as control to make the output signal operative for a combination of the states of the input signals and make the output signal inoperative for another combination of the states of the input signals. If it is possible to provide an environment in which the output signal can be set in an operative or inoperative state by directly operating a graphical object of the output signal, more intuitive programming is considered to be possible.

When considering an application of the user interface of the technology disclosed in JP-A No. Hei 7-248911 to a programming environment of a PLC, a combination of symbols can be thought as a good application of the link object. In this case, however, such an application of the user interface results in a programming technique that is basically the same as the programming technique using a rudder diagram. In addition, in relay sequence control resulting from recursive or iterative programming disclosed in Japanese Laid-open No. Hei 7-248911, there are a number of pieces of recursive processing. It is thus quite within the bounds of possibility that recursive processing can be implemented by linking link objects to form a loop. However, there is still a pending issue that the programming problem of sequence processing, the function of each link object, is not solved.

As described above, while the visual programming tool based on the conventional rudder diagram allows a complicated program to be created, there is a problem that it is difficult to use the tool unless the user has the knowledge of a specialist. As a solution to the problem, an environment which allows a program to be created with ease by the end user even if the end user does not have programming knowledge is applied to the visual programming tool based on a rudder diagram. Even though such an environment has been proposed for use by the end user of personal computers and workstations, it is still difficult to solve the problem. Thus, the problem can be converted into a problem caused by the fact that it is necessary to provide a new user interface that allows a program to be created with ease by the end user even if the end user does not have programming knowledge.

A function block diagram (FBD) is a program created by a language whereby function blocks (FBs), graphical objects each representing a function, are connected to each other to form a flow of data processing. A graphical editor for this language is a tool providing a work environment in which programming can be carried out by operating graphical objects displayed on a screen. The graphical objects include icons and characters used in the graphical user interface (GUI), a commonly known user interface for personal computers and workstations.

In general, it is difficult for the end user who does not do programming work as a main job to develop a program. For such a user, there has been provided an environment for creating a program by connecting graphical objects representing functions to each other along a flow of signals or data in the function block diagram (FBD) language through the use of a graphical editor. In such an environment, the user has to carry out operations to connect graphical objects to generate a program. An example of an operation to connect graphical objects is to connect an output OUT1 of a function block FB1 to an input IN2-1 of a function block FB2 by a line. In this operation , it is necessary for the user to carry out a drag and drop operation, an operation comprising the steps, of pressing the button of a mouse, moving (or dragging) the, mouse to a target position with the button continuously pressed as it is and terminating (or dropping) the operation to press the button as the mouse arrives at the target position. The drag and drop operation is said to be one of most difficult operations of a computer. In the example, it is necessary for the user to do work to move the mouse from the output node OUT 1 to the input node IN2-1 with the button of the mouse pressed continuously as it is. In addition, since the function block FB2 has 2 inputs nodes IN2-1 and IN2-2, the output node OUT1 can be connected incorrectly to the input node IN2-2 unless the drag and drop operation is carried out by moving the mouse to the input node IN2-1, a target position, accurately as the mouse approaches the input node IN2-1. In operation to insert a function block FB5 into a location between function blocks FB3 and FB4, it is necessary to move the function blocks FB3 and FB4. This operation to insert the function block FB5 and to move the function blocks FB3 and FB4 must be done also by carrying out drag and drop operations. Since the display area of the graphical editor is limited, the user spends time and energy for most of the work on editing the layout of function blocks FBs, giving rise to a problem that the efficiency of the original work to create a program is lowered in some cases. In addition, in an arrangement of a plurality of function blocks (FBs), results of program execution may vary in dependence on an order the function blocks are arranged, making it necessary for the user to take the order of arrangement into consideration. In particular, the operation to take the order of arrangement into consideration is difficult for an end user.

As described above, an operation to connect function blocks to each other to be carried out by the user is cumbersome and lowers the work efficiency. On the other hand, the operation of connecting function blocks to each other by lines has a merit that the user is capable of understanding the flow of data visually. It is thus necessary to provide a new user interface which allows the user to create a program as a functional block diagram (FBD) with ease without the need to do the operation of connecting function blocks to each other by lines as in a conventional programming tool.

It is therefore an object of the present invention to address the problems described above and to provide a visual programming method and a system adopting the method which allow a program to be created by the user with ease even if the user does not have knowledge of programming. It is also another object of the present invention to provide a visual programming method and a system adopting the method allowing programming work to be done with ease and a rudder diagram to be displayed as a result of the programming work by using visual objects, that is, a visual programming method and a system adopting the method applicable to a rudder diagram, a programming language of a PLC which can be visually understood with ease.

It is still another object of the present invention to provide a visual programming method and a system adopting the method that allow a program comprising functional blocks (FBs) to be created easily without carrying out operations to connect the functional blocks to each other by lines. In particular, it is a further object of the present invention to provide a visual programming method and a system adopting the method which are applicable a function block diagram (FBD), a programming language of a programmable logic controller (PLC). By utilizing the visual programming method and a system adopting the method provided by the present invention, a function block diagram (FBD) can also be displayed by using graphical objects. As a result, the user is capable of doing programming work with ease and creating a program in an environment which can be visually understood with ease.

DISCLOSURE OF INVENTION

A visual programming method according to the present invention comprises the steps of:

displaying graphical objects each defining a behavior on a graphical editor used for carrying out programming work by operating graphical objects each visually representing a function and selecting, from the displayed graphical objects, objects used in the programming work;

displaying behavioral characteristics of the graphical objects and selecting a behavioral characteristic for each of the selected graphical objects;

defining a relation among the plurality of selected graphical objects; and

setting a behavioral rule of the selected graphical objects.

As a result, even a user who has a lack of professional knowledge of programming is capable of developing a program with ease.

In addition, in the visual programming method according to the present invention, the step of selecting a behavioral characteristic of a graphical object displayed on the graphical editor further includes a step of entering a detailed parameter of the behavioral characteristic. As a result, the user is capable of changing a set value of a behavioral characteristic and, hence, creating a program with ease.

Moreover, in the visual method according to the present invention, the step of setting a behavioral rule for graphical objects each defining a behavior with respect to the graphical objects further includes a step of generating a behavioral rule not set yet on the graphical editor from already set behavioral rules. As a result, the user is capable of creating a program with ease without the need to take all behavioral rules into consideration.

Further, in the visual programming method according to the present invention, the step of generating a behavioral rule not set yet from already set behavioral rules further includes a step of displaying the generated behavioral rule. As a result, programming is made simple.

In addition, in the visual programming method according to the present invention, the step of generating a behavioral rule not set yet from already set behavioral rules further includes a step of allowing a user to modify a generated behavioral rule by entering an acceptance or refusal input in response to the displayed behavioral rule. As a result, programming is made simple.

Moreover, in the visual programming method according to the present invention, there is further included a step of adding a modified behavioral rule to already set behavioral rules. As a result, programming is made simple.

Further, in the visual programming method according to the present invention, there is further included a step of generating a logic equation from already set behavioral rules. As a result, the efficiency of the programming work is enhanced.

In addition, in the visual programming method according to the present invention, there is further included a step of displaying results of the visual programming on the graphical editor obtained at each of the steps in terms of graphical objects and allowing a user to verify a behavior by operating the graphical objects displayed on the graphical editor. As a result, the user is capable of correctly creating a program with ease.

Moreover, in the visual programming method according to the present invention, a step of verifying a behavior further includes a step of generating a literal sentence written in a natural language to describe a program displayed on the graphical editor and displaying the generated literal sentence on the graphical editor. As a result, programming is made simple.

Further, a system adopting the visual programming method according to the present invention comprises:

an object selection means which displays graphical objects each defining a behavior on a graphical editor and which allows a user to select those of the displayed graphical objects as objects to be used in the programming work;

a behavior selection means which displays behavioral characteristics of the graphical objects and which allows the user to select a behavioral characteristic of each of the selected graphical objects;

a relevant object selection means which defines a relation among the plurality of graphical objects selected by using the object selection means and the behavior selection means; and

a behavioral rule setting means which sets a behavioral rule of the selected graphical objects.

As a result, by operating graphical objects obtained as a result of visually expressing a function, even a user who has a lack of professional knowledge of programming is capable of developing a program with ease.

In addition, in the system adopting the visual programming method according to the present invention, a behavioral parameter setting means allows a user to enter a detailed parameter of a behavior selected by using the behavior selection means to the graphical editor. As a result, the user is capable of changing a set value of a behavioral characteristic and, hence, creating a program with ease.

Moreover, in the system adopting the visual programming method according to the present invention, a behavioral rule generation means generates a behavioral rule not set yet on the graphical editor from behavioral rules already set by the behavioral rule setting means. As a result, the user is capable of creating a program with ease without the need to take all behavioral rules into consideration.

Further, in the system adopting the visual programming method according to the present invention, a generated rule display means displays a behavioral rule generated by the behavioral rule generation means. As a result, programming is made simple.

In addition, in the system adopting the visual programming method according to the present invention, a behavioral rule modification means allows a user to modify a behavioral rule displayed by the system generated rule display means by entering an acceptance or refusal input in response to the displayed behavioral rule. As a result, programming is made simple.

Moreover, in the system adopting the visual programming method according to the present invention, a behavioral rule addition means adds a behavioral rule changed by the behavioral rule modification means to behavioral rules already set by the behavioral rule setting means. As a result, programming is made simple.

Further, in the system adopting the visual programming method according to the present invention, a logic equation generation means automatically generates a logic equation from already set behavioral rules. As a result, a program generated by the visual programming system can be executed at a high speed and, hence, the efficiency of the programming work can be enhanced.

In addition, in the system adopting the visual programming method according to the present invention, a behavior verification means displays a program automatically generated on the basis of data supplied by the behavior selection means, the behavioral parameter setting means and the logic equation generation means on the graphical editor in terms of graphical objects and allows a user to verify a behavior by operating the graphical objects displayed on the graphical editor. As a result, the user is capable of correctly creating a program with ease.

Moreover, in the system adopting the visual programming method according to the present inventions a natural language statement display means generates a literal sentence written in a natural language to describe a program displayed on the graphical editor by the behavior verification means and displays the generated literal sentence on the graphical editor. As a result, the user is capable of creating a program with ease.

Further, a visual programming method according to the present invention comprises:

a first step of creating and displaying graphical objects each defining a behavior on a graphical editor used for carrying out programming work by operating graphical objects each visually representing a function;

a second step of creating a layout diagram showing a layout of graphical objects representing configuration members of an application system being created by a user and displaying the layout diagram on the same screen as a screen used at the first step; and

a third step of allowing the user to select one of the graphical objects each used for defining a behavior and displayed at the first step and transferring the selected graphical object to the layout diagram.

In addition, the visual programming method according to the present invention further comprises a fourth step of allowing a user to select a graphical object or a plurality of graphical objects from the graphical objects each used for defining a behavior and displayed at the first step and transferring the same plurality of selected graphical objects to the layout diagram. As a result, the user is capable of doing work to create a more sophisticated program with ease and a high degree of efficiency.

Moreover, the visual programming method according to the present invention further comprises a fifth step of displaying a graphical object or a plurality of graphical objects transferred at the fourth step on the layout diagram. As a result, the user is capable of doing work to create a more sophisticated program with ease and a high degree of efficiency.

Further, the visual programming method according to the present invention further comprises:

a sixth step of creating a layout diagram showing a layout of graphical objects representing configuration members of an application system being created by a user and displaying the layout diagram on a screen different from a screen used at the first step; and

a seventh step of allowing the user to select one of the graphical objects each used for defining a behavior and displayed at the first step and transferring the selected graphical object to the layout diagram created and displayed at the sixth step.

As a result, the user is capable of doing work to create a more sophisticated program with ease and a high degree of efficiency.

In addition, the visual programming method according to the present invention further comprises an eighth step of allowing a user to select a plurality of graphical objects from the graphical objects each used for defining a behavior and each displayed at the first step and then transferring the same plurality of selected graphical objects to the layout diagram created at the sixth step. As a result, the user is capable of doing work to create a more sophisticated program with ease and a high degree of efficiency.

Moreover, the visual programming method according to the present invention further comprises a ninth step of allowing a user to select a graphical object or a plurality of graphical objects from the graphical objects each used for defining a behavior and each displayed at the first step and then transferring the same plurality of selected graphical objects to the layout diagram created at the sixth step as well as displaying the same plurality of selected graphical objects on the layout diagram. As a result, the user is capable of doing work to create a more sophisticated program with ease and a high degree of efficiency.

Further, the visual programming method according to the present invention further comprises:

a tenth step of identifying arrangement orders of graphical objects selected by a user and assigning a priority to each of the arrangement orders in case a plurality of arrangement orders are identified;

an eleventh step of displaying the same plurality of identified arrangement orders sequentially one after another in a sequence determined by the priorities assigned thereto at the tenth step; and

a twelfth step of allowing the user to select an arrangement order among the same plurality of identified arrangement orders displayed sequentially at the eleventh step.

As a result, the user is capable of doing work to create a more sophisticated program with ease and a high degree of efficiency.

In addition, the visual programming method according to the present invention further comprises a thirteenth step of allowing a user to change an arrangement order of graphical objects selected by the user at the twelfth step. As a result, the user is capable of doing work to create a more sophisticated program with ease and a high degree of efficiency.

Moreover, the visual programming method according to the present invention further comprises:

a 14th step of detecting a settable parameter graphical object with a parameter thereof not set yet among graphical objects selected by a user and notifying the user of a result of detection;

a 15th step of detecting selection of the graphical object reported to the user at the 14th step or a graphical object other than the reported graphical object and creating as well as displaying a window used for setting a parameter of the reported graphical object or the other graphical object; and

a 16th step of allowing the user to set the parameter on the window displayed at the 15th step.

As a result, the user is capable of doing work to create a more sophisticated program with ease and a high degree of efficiency.

Further, the visual programming method according to the present invention further comprises:

a 17th step of selecting one graphical object or a plurality of graphical objects among graphical objects displayed on the graphical editor used for carrying out programming work by operating graphical objects each visually representing a function;

a 18th step of creating a new graphical object on the basis of the graphical objects selected at the 17th step and putting the created new graphical object in a displayable state; and

a 19th step of displaying the new graphical object on the graphical editor.

As a result, the user is capable of doing work to create a more sophisticated program with ease and a high degree of efficiency.

In addition, the visual programming method according to the present invention further comprises:

a 20th step of setting state information for graphical objects displayed on the graphical editor used for carrying out programming work by operating graphical objects each visually representing a function;

a 21st step of allowing a user to set a state of each of the graphical objects on the basis of setting carried out at the 20th step; and

a 22nd step of storing a result obtained at the 21st step as a behavioral rule.

As a result, the user is capable of doing work to create a more sophisticated program with ease and a high degree of efficiency.

Moreover, the visual programming method according to the present invention further comprises a 23rd step of recreating and displaying a behavioral rule stored at the 22nd step on another screen. As a result, the user is capable of doing work to create a more sophisticated program with ease and a high degree of efficiency.

Further, the visual programming method according to the present invention further comprises:

a 24th step of allowing a user to change a state of a graphical object; and

a 25th step comprising the steps of:

monitoring a state of a graphical object set at the 24th step;

setting state information in graphical objects displayed on the graphical editor, used for carrying out programming work, by operating ordinary graphical objects each visually representing a function; and, if a behavioral condition, set by the user corresponding to respective states of the graphical objects and used as behavioral rules on the basis of the set state information, is satisfied, detecting a parameter settable graphical object with a parameter thereof not set yet from graphical objects selected by the user;

detecting selection of the parameter settable graphical object or a graphical object other than the parameter settable graphical object and creating a window used for setting a parameter of the parameter settable graphical object or the other graphical object;

allowing the user to set a parameter on the displayed window; and

changing a state of the graphical object in accordance with the parameter set by the user.

As a result, the user is capable of doing work to create a more sophisticated program with ease and a high degree of efficiency.

In addition, the visual programming method according to the present invention further comprises a 26th step of allowing a user to change an image of a graphical object. As a result, the user is capable of doing work to create a more sophisticated program with ease and a high degree of efficiency.

Moreover, a programming system according to the present invention comprises:

a display means for creating and displaying graphical objects each defining a behavior on a screen of a graphical editor, which is used for carrying out programming work, by operating graphical objects each visually representing a function, so as to create a layout diagram showing a layout of graphical objects representing configuration members of an application system being created by a user and to display the layout diagram on the same screen as the screen of the graphical editor; and

a transfer means for transferring a graphical object selected by the user among the graphical objects each used for defining a behavior and displayed by the display means to the layout diagram.

As a result, the user is capable of doing work to create a more sophisticated program with ease and a high degree of efficiency.

Moreover, in the system adopting the visual programming method according to the present invention, the transfer means transfers a plurality of graphical objects selected by a user from among the graphical objects displayed by the display means for creating and displaying graphical objects each defining a behavior to the layout diagram. As a result, the user is capable of doing work to create a more sophisticated program with ease and a high degree of efficiency.

Further, in the system adopting the visual programming method according to the present invention, the display means displays one graphical object or a plurality of graphical objects transferred by the transfer means on the layout diagram. As a result, the user is capable of doing work to create a more sophisticated program with ease and a high degree of efficiency.

In addition, in the system adopting the visual programming method according to the present invention:

the display means creates a layout diagram showing a layout of graphical objects representing configuration members of an application system being created by a user and displays the layout diagram on a screen different from a screen for displaying a layout diagram showing a layout of graphical objects each defining a behavior; and

the transfer means transfers a graphical object selected by the user from the graphical objects each defining a behavior to the layout diagram different from the laid out diagram showing a layout of graphical objects representing configuration members of an application system.

As a result, the user is capable of doing work to create a more sophisticated program with ease and a high degree of efficiency.

Moreover, in the system adopting the visual programming method according to the present invention, the transfer means transfers a plurality of graphical objects, selected by a user from the graphical objects used for defining behaviors and displayed by the display means, to a layout diagram different from a laid out diagram showing a layout of graphical objects representing configuration members of an application system. As a result, the user is capable of doing work to create a more sophisticated program with ease and a high degree of efficiency.

Further, in the system adopting the visual programming method according to the present invention, the display means displays a graphical object or a plurality of graphical objects transferred by the transfer means on a layout diagram different from a layout diagram showing a layout of graphical objects representing configuration members of an application system.

In addition, the system adopting the visual programming method according to the present invention comprises:

an identifying means for identifying the arrangement orders of graphical objects selected by a user and for assigning a priority to each of the arrangement orders when a plurality of arrangement orders are identified;

a step display means for displaying the same plurality of identified arrangement orders sequentially one after another in a sequence determined by the priorities assigned thereto by the identifying means; and

a select means for allowing the user to select an arrangement order among the same plurality of identified arrangement orders displayed sequentially by the step display means.

As a result, the user is capable of doing work to create a more sophisticated program with ease and a high degree of efficiency.

Moreover, the system adopting the visual programming method according to the present invention comprises a change means for allowing a user to change an arrangement order of graphical objects selected by the user. As a result, the user is capable of doing work to create a more sophisticated program with ease and a high degree of efficiency.

Further, the system adopting the visual programming method according to the present invention comprises:

a notification means for detecting a settable parameter graphical object with a new parameter thereof from among graphical objects selected by a user and for then notifying the user of a result of detection; and

a parameter setting means for detecting selection of the graphical object reported to the user by the notification means or a graphical object other than the reported graphical object and allowing the user to set a parameter of the reported graphical object or the other graphical object on a window created and displayed by the display means for setting a parameter.

As a result, the user is capable of doing work to create a more sophisticated program with ease and a high degree of efficiency.

In addition, the system adopting the visual programming method according to the present invention comprises:

a select means for selecting one graphical object or a plurality of graphical objects from among graphical objects displayed on the graphical editor used for carrying out programming work by operating graphical objects each visually representing a function;

a new object creation means for creating a new graphical object on the basis of the one graphical object or the same plurality of graphical objects selected by the select means and putting the created new graphical object in a displayable state; and

a new object display means for displaying the new graphical object.

As a result, the user is capable of doing work to create a more sophisticated program with ease and a high degree of efficiency.

Moreover, the system adopting the visual programming method according to the present invention comprises:

a state information setting means for setting state information for graphical objects displayed on the graphical editor used for carrying out programming work by operating graphical objects each visually representing a function;

a state setting means for allowing a user to set a state of each of the graphical objects on the basis of setting carried out by the state information setting means; and

a behavioral rule saving means for storing a result produced by the state setting means as a behavioral rule.

As a result, the user is capable of doing work to create a more sophisticated program with ease and a high degree of efficiency.

Further, the system adopting the visual programming method according to the present invention comprises a behavioral rule display means for re-creating and displaying a behavioral rule stored by the behavioral rule saving means on a new screen. As a result, the user is capable of doing work to create a more sophisticated program with ease and a high degree of efficiency.

In addition, the system adopting the visual programming method according to the present invention comprises:

a state change means for allowing a user to change a state of a graphical object; and

a state change display means for monitoring a state of a graphical object set by the state change means; and, if a behavioral condition for respective states of the graphical objects set by the user on the basis of the set state information of each of the graphical objects is satisfied, changing a state of the graphical object with a parameter thereof set among the graphical objects each having a settable parameter, and displaying the state.

As a result, the user is capable of doing work to create a more sophisticated program with ease and a high degree of efficiency.

BRIEF DESCRIPTION OF DRAWINGS

FIG. 1 is a system configuration diagram showing the basic configuration of a system implementing a visual programming method according to the present invention;

FIG. 2 is a flowchart showing an operation procedure of the visual programming method according to the present invention to be followed by the user;

FIG. 3 is an explanatory diagram showing a signal box of output signals;

FIG. 4 is an explanatory diagram showing a behavioral characteristic selection window;

FIG. 5 is an explanatory diagram showing a parameter setting window;

FIG. 6 is an explanatory diagram showing a relevant signal selection window;

FIG. 7 is an explanatory diagram showing a behavioral rule setting window and a rule display window;

FIG. 8 is an explanatory diagram showing a typical displayed screen of the behavioral rule setting window shown in FIG. 7;

FIG. 9 is an explanatory diagram showing a typical displayed screen of a rule display window shown in FIG. 7;

FIG. 10 is an explanatory diagram showing a typical displayed screen of the behavioral rule setting window and the rule display window shown in FIG. 7;

FIG. 11 is an explanatory diagram showing a generated rule display window;

FIG. 12 is an explanatory diagram showing a typical displayed screen of the rule display window obtained as a result of a response given by the user to the system generated rule display window shown in FIG. 11;

FIG. 13 is an explanatory diagram showing a window serving as an interface for prompting confirmation of treating other behavioral rules as rules to provide an off output signal in an inquiry window;

FIG. 14 is an explanatory diagram showing a behavior verification window;

FIG. 15 is an explanatory diagram showing a state obtained after carrying out verification operations by using the behavior verification window shown in FIG. 14;

FIG. 16 is an explanatory diagram showing a typical operation of the behavior verification window shown in FIG. 15;

FIG. 17 is an explanatory diagram showing a component model window;

FIG. 18 is an explanatory diagram showing a state right after the start of an operation of entire circuit simulation, one of the functions of a visual editor;

FIG. 19 is an explanatory diagram showing a result of a typical operation of the entire circuit simulation shown in FIG. 18;

FIG. 20 is a block diagram showing a system adopting the visual programming method as implemented by a first embodiment of the present invention;

FIG. 21 is a flowchart showing typical operations carried out by an object selection means shown in FIG. 20;

FIG. 22 is a flowchart showing typical operations carried out by a behavior selection means shown in FIG. 20;

FIG. 23 is a flowchart showing typical operations carried out by an object selection means shown in FIG. 20;

FIG. 24 is a flowchart showing typical operations carried out by a behavioral rule setting means shown in FIG. 20;

FIG. 25 is a block diagram showing a system adopting the visual programming method as implemented by a second embodiment of the present invention;

FIG. 26 is a flowchart showing typical operations of a behavior selection means shown in FIG. 25;

FIG. 27 is a flowchart showing typical operations carried out by a behavioral parameter setting means shown in FIG. 25;

FIG. 28 is a block diagram showing a system adopting the visual programming method as implemented by a third embodiment of the present invention;

FIG. 29 is a flowchart showing typical operations carried out by a behavioral rule setting means shown in FIG. 28;

FIG. 30 is a flowchart showing typical operations carried out by a behavioral rule generation means 13a, a generated rule display means 13b, a system generated rule modification means 13c and a behavioral rule addition means 13d employed in the system adopting the visual programming method according to the third embodiment of the present invention;

FIG. 31 is a block diagram showing a system adopting the visual programming method as implemented by a fourth embodiment of the present invention;

FIG. 32 is a block diagram showing a system adopting the visual programming method as implemented by a fifth embodiment of the present invention;

FIG. 33 is a block diagram showing a behavior verification means employed in the visual programming system shown in FIG. 32;

FIG. 34 is a block diagram showing a system adopting the visual programming method as implemented by a sixth embodiment of the present invention;

FIG. 35 is a block diagram showing a system adopting the visual programming method as implemented by a seventh embodiment of the present invention;

FIG. 36 is an explanatory diagram showing a behavioral object selection window;

FIG. 37 is an explanatory diagram for a case in which an internal signal tag of a behavioral object selection means has been selected;

FIG. 38 is a flowchart showing typical operations carried out by a behavioral object selection unit shown in FIG. 35;

FIG. 39 is an explanatory diagram showing a behavioral characteristic selection window;

FIG. 40 is a flowchart showing typical operations carried out by a behavioral characteristic selection unit shown in FIG. 35;

FIG. 41 is an explanatory diagram showing a preview window;

FIG. 42 is an explanatory diagram showing a behavioral condition setting window;

FIG. 43 is a flowchart showing typical operations carried out by a behavioral condition setting unit shown in FIG. 35;

FIG. 44 is an explanatory diagram showing a relevant object selection window;

FIG. 45 is an explanatory diagram showing an internal signal selection window;

FIG. 46 is an explanatory diagram showing a window displaying internal signals selected by using the internal signal selection window;

FIG. 47 is a flowchart showing typical operations carried out by a relevant object selection unit shown in FIG. 35;

FIG. 48 is a block diagram showing a system adopting the programming method as implemented by a second embodiment of the present invention;

FIG. 49 is an explanatory diagram showing a behavioral characteristic setting window;

FIG. 50 is a flowchart showing typical operations carried out by a behavioral characteristic setting unit shown in FIG. 48;

FIG. 51 is an explanatory diagram showing a typical parameter setting window;

FIG. 52 is a block diagram showing a system adopting the programming method as implemented by a third embodiment of the present invention;

FIG. 53 is an explanatory diagram showing a typical user interface of a relevant object devising unit shown in FIG. 52;

FIG. 54 is an explanatory diagram showing a programming box;

FIG. 55 is a flowchart showing typical operations carried out by the relevant object devising unit shown in FIG. 52;

FIG. 56 is an explanatory diagram showing a case in which the programming system according to the present invention induces a setting operation of the programming box to the user;

FIG. 57 is an explanatory diagram showing a typical user interface of a relevant object devising unit;

FIG. 58 is a block diagram showing a system adopting the programming method as implemented by a fourth embodiment of the present invention;

FIG. 59 is an explanatory diagram showing a behavior detecting characteristic setting window;

FIG. 60 is an explanatory diagram showing a characteristic set by a behavior detecting characteristic setting unit shown in FIG. 58;

FIG. 61 is an explanatory diagram showing a typical user interface of a behavioral rule setting unit shown in FIG. 58;

FIG. 62 is an explanatory diagram showing a behavioral rule table window;

FIG. 63 is a flowchart showing typical operations carried out by the behavior detecting characteristic setting unit shown in FIG. 58;

FIG. 64 is a flowchart showing typical operations carried out by the behavioral rule setting unit shown in FIG. 58;

FIG. 65 is a block diagram showing a system adopting the programming method as implemented by a fifth embodiment of the present invention;

FIG. 66 is an explanatory diagram showing a typical user interface of a behavior verification unit shown in FIG. 65;

FIG. 67 is a flowchart showing typical operations carried out by the behavior verification unit shown in FIG. 65;

FIG. 68 is a block diagram showing a system adopting the programming method as implemented by a sixth embodiment of the present invention; and

FIG. 69 is an explanatory diagram showing a typical operation to connect FBs to each other by a line.

BEST MODE FOR CARRYING OUT THE INVENTION

In order to describe the present invention in more detail, a best mode for implementing the invention is explained by referring to diagrams as follows.

Basic Configuration

First of all, the basic configurations and the basic operations of a visual programming method provided by the present invention and a system adopting the method are explained to be followed by description of first to twelfth embodiments.

The following description explains typical cases in which the visual programming method provided by the present invention and the system adopting the method are applied to a visual programming environment of a rudder diagram, a programming language of a PLC.

FIG. 1 is a diagram showing the basic configuration of hardware composing a system implementing a visual programming method provided by the present invention. In the figure, reference numerals 1 and 2 denote a display apparatus for displaying a graphical editor and an input apparatus respectively. Used for operating the graphical editor, the input apparatus 2 includes a mouse 21, a keyboard 22, a microphone 23, a gesture recognition unit 24, a pen shown in none of the figures and a touch screen also shown in none of the figures. Reference numeral 3 is an input/output equipment connecting apparatus for connecting the display apparatus 1 and the input apparatus 2 to a system bus 6. Reference numeral 4 denotes a storage apparatus. Used as a working area of the graphical editor and for storing a generated program, the storage apparatus 4 includes a read-only memory (ROM) unit 41, a random-access memory (RAM) unit 42, a hard disc drive 43 and a CD-ROM drive which is shown in none of the figures.

Reference numeral 5 is a network connection apparatus for connecting this visual programming system to other systems. The system bus 6 is used for exchanging data among mainly the display apparatus 1, the input apparatus 2, the input/output equipment connecting apparatus 3, the storage apparatus 4, the network connection apparatus 5 and a CPU (Central Processing Unit) 7. The CPU 7 controls operations of the display apparatus 1, the input apparatus 2, the input/output equipment connecting apparatus 3, the storage apparatus 4, the network connection apparatus 5 and the system bus 6 in order to actually carry out processing of the graphical editor. As described above, the system for implementing the visual programming method comprises the display apparatus 1, the input apparatus 2, the input/output equipment connecting apparatus 3, the storage apparatus 4, the network connection apparatus 5, the system bus 6 and the CPU 7.

FIG. 2 is a flowchart showing an operation procedure of the visual programming method provided by the present invention to be followed by the user. The following is a description of a user interface used as an operation procedure of programming work, the most prominent characteristic of the visual programming method provided by the present invention, with reference to operations represented by the flowchart shown in FIG. 2.

The system shown in FIG. 1 for implementing the visual programming method is implemented by systems provided by first to sixth embodiments for implementing the visual programming method as will be described later. In addition, the following explanation of a user interface also applies to later descriptions of the visual programming method and the systems adopting the method as implemented by the first to sixth embodiments.

When the user operates the user interface based on the visual programming method provided by the present invention, the visual programming system provided by the invention automatically generates a program. In the following description, only matters related to the user interface characterizing the visual programming method are explained, excluding automatic generation of a program because the automatic generation of a program is the same as the conventional system.

With the visual programming method provided by the present invention, in order to automatically generate a program of a PLC, the user executes the steps of selecting an output signal defining a behavior; selecting a behavior; selecting signals relevant to the behavior; setting behavioral rules; and confirming the behavior. For operations carried out to execute the steps, the use of various input units can be thought of. Graphical objects such as a button, a check box, a slide bar and an icon are operated mainly by clicking or dragging the mouse 21 of the input apparatus 2. On the other hand, a string of characters is entered mainly by using the keyboard 22 of the input apparatus 2.

A flow of operations to select an output signal carried out at a step ST1 of the flowchart shown in FIG. 2 is explained as follows. FIG. 3 is an explanatory diagram showing a signal box, that is, a window used for selecting an object defining a behavior. When a graphical editor is activated, the signal box 200 is displayed as an initial screen of the display apparatus 1.

The user selects a graphical object, that is, an object defining a behavior, by clicking the mouse 21. On the signal box 200, a graphical object representing a signal and the name of the graphical object are displayed as a pair. In the explanatory diagram of FIG. 3, a graphical object with a name of `Y000` representing one of output signals 201 is selected. The explanation is given below by assuming that the output signal Y000 drives an ordinary lamp.

On the signal box 200, input signals 202, personal computer input signals 203, personal computer output signals 204, personal computer data signals 205 and internal signals 206 are displayed in addition to the output signals 201. Signals displayed on the signal box 200 that can define behaviors are the output signals 201, the personal computer output signals 204 and the internal signals 206.

A flow of operations to select an output signal carried out at a step ST2 of the flowchart shown in FIG. 2 is explained as follows.

FIG. 4 is an explanatory diagram showing a behavioral characteristic selection window 300 for selecting a behavior of the output signal Y000 selected from the signal box 200. The behavioral characteristic selection window 300 shown in FIG. 4 is displayed on the display apparatus 1 when a signal set item of a set, menu on the signal box 200 shown in FIG. 3 is selected. It should be noted that the signal set item itself is not shown in FIG. 3.

The user selects and enters a behavioral characteristic 301, a behavioral state 302 and a comment 303 of the object defining a behavior, which has been selected from the signal box 200 shown in FIG. 3, as follows.

First of all, the user selects a behavioral characteristic 301 by clicking a check box associated with the behavioral characteristic 301 by using the mouse 21. In the explanatory diagram of FIG. 4, `A delay exists` and `flickering` behavioral characteristics are selected.

Then, the user selects a behavioral state 302 by clicking a check box associated with the behavioral state 302 by using the mouse 21. In the explanatory diagram of FIG. 4, `ON/OFF` and `SET/RESET` behavioral states, either of which is selected by the user, are displayed. The `ON/OFF` behavioral state applies for example to an imagined case in which on and off operations of an illuminator switch are driven by the selected output signal. On the other hand, the `SET/REST` behavioral state applies for example to an imagined case in which operations of the selected output signal is used to drive the second needle of a stop watch.

Subsequently, the user enters a comment 303 to a character input area, a field commonly known in the visual interface environment. In the case of creation of a program implementing a quiz response system, for example, the comment can be used for giving a name of `correct answer lamp` to the output signal Y000. The user enters a string of characters as a comment 303 to the character input area via the keyboard 22. The comment 303 is not absolutely required though. That is to say, a comment 303 does not have to be entered. In the above description, the behavioral characteristic 301, the behavioral state 302 and the comment 303 are entered in an order they are enumerated here. It should be noted, however, that they can be entered in an order freely selected by the user.

At a point of time the behavioral characteristic selection window 300 is displayed on the display apparatus 1, only the `ON/OFF` behavioral state 302 is set as default setting. Thus, if there is no problem with the default setting kept as it is, the user can click a `next operation` button 304 by using the mouse 21 in order to go on to a next operation. In this case, if the `next operation` button 304 is clicked, a window shown in FIG. 6 is displayed on the display apparatus 1. If any of the behavioral characteristics 301 are selected, on the other hand, a window shown in FIG. 5 is displayed on the display apparatus 1.

A flow of the processing to select an output signal carried out at a step ST3 of the flowchart shown in FIG. 2 to set behavioral characteristic parameters is explained as follows.

FIG. 5 is an explanatory diagram showing a parameter setting window 400 used for setting parameters of the behavioral characteristics 301 selected by using the behavioral characteristic selection window 300 shown in FIG. 4. On the parameter setting window 400, a `delay` parameter 410 corresponds to the `A delay exists` item of the behavioral characteristics 301 of the behavioral characteristic selection window 300 shown in FIG. 4 whereas a `flickering` parameter 420 corresponds to the `flickering` item of the behavioral characteristics 301 of the behavioral characteristic selection window 300. A parameter is set by dragging a slide bar, a commonly known tool in the visual interface environment, by means of the mouse 21 or by entering a value to the character input area via the keyboard 22.

The following description begins with an explanation of the setting of parameters of the `delay` item 410. A parameter `ON operation delay` 411 means a behavioral characteristic of the output signal Y000 to start flickering after a set time delay has lapsed since the output signal Y00 is switched on. If the time delay is set at 10 seconds, for example, the output signal Y000 starts flickering after the time delay of 10 seconds has lapsed since the output signal Y00 is switched on. A parameter `OFF operation delay` 412 means a behavioral characteristic of the output signal Y000 to start flickering after a set time delay has lapsed since the output signal Y00 is switched off. If the time delay is set at 10 seconds, for example, the output signal Y000 starts flickering after the time delay of 10 seconds has lapsed since the output signal Y00 is switched off. In the present example, the parameter `ON operation delay` 411 is not set while the value of the parameter `OFF operation delay` 412 is set at 10 seconds.

Next, the setting of parameters of the `flickering` parameter 420 is explained. A parameter `ON time width` 421 is the duration of 1 ON time of a flickering operation whereas a parameter `OFF time width` 422 is the duration of 1 OFF time of a flickering operation. In the example shown in FIG. 5, the values of both the parameters are set at 0.3 seconds.

A `detail` button 423 is provided for an advanced programmer who desires to set more detailed parameters. If this button 423 is selected by clicking the mouse 21, a window used for setting detailed parameters is displayed. It should be noted that this window is shown in none of the figures. When the setting of the parameters is finished, a `next operation` button 401 is clicked by using the mouse 21 to display a relevant signal selection window 500 shown in FIG. 6. In the explanation of the setting of parameters shown in FIG. 5, the parameters are set in an order starting with the `delay` item 410 to the `flickering` item 420. It should be noted that the parameters can be set in any arbitrary order.

In addition, parameters of other behavioral characteristics can be set with ease by using similar user interfaces. The operations described so far are what is typically needed by the user to program the behavior of the output signal Y000. Operations carried out at steps ST4 and ST5 of the flowchart shown in FIG. 2 to be explained below set behavioral conditions, that is, conditions for executing the behavior of the output signal Y000 programmed at the steps ST2 and ST3.

A flow of the processing carried out at the step ST4 shown in. 2 to select a signal related to the output signal is explained as follows.

FIG. 6 is an explanatory diagram showing a relevant signal selection window 500, a window used for selecting signals relevant to the behavior of the output signal. A signal relevant to the behavior of the output signal is selected from those shown in the signal box 200 described earlier by clicking a graphical object representing the signal by means of the mouse 21. A graphical object representing a selected signal is automatically displayed in a behavior relevant signal area 501 of the relevant signal selection window 500 as shown in FIG. 6. In the case of some contemporary visual programming tools, in such an operation to select an item signal, it is necessary to carry out an operation of dragging a graphical object representing the selected item to a predetermined position typically by means of a mouse. In the case of the visual programming method provided by the present invention and the system adopting the method, on the other hand; the dragging operation is not required.

In the explanatory diagram of FIG. 6, input signals X000, X001 and X002 are selected by repeating the select operation described above. The input signals X000, X001 and X002 are signals generated by on/off switches for operating the output signal Y000. The switches correspond to switches of a generally used illuminator.

Like the `detail` button 423 on the parameter setting window 400 shown in FIG. 5, an `interlock` button 502 is provided for an advanced programmer. Interlocking is prevention of a plurality of output signals from being activated at the same time. If it is desired to prevent the output signals Y000 and Y001 from operating at the same time, the `interlock` button 502 is clicked by means of the mouse 21 to display an interlock select window which is then used for selecting the output signal Y001. It should be noted that the interlock select window is shown in none of the figures.

When the selection of the input signals is finished, a `next operation` button 503 is clicked by using the mouse 21 to go on to the behavioral rule setting window 600 shown in FIG. 7. At the step ST4 described above, the output signal Y000 is programmed to behave in dependence on the input signals X000, X001 and X002. In terms of the conventional language, for example, the programming carried out at the step is equivalent to setting a function for defining the behavior of the output signal Y000 with the function having 3 arguments, namely, the input signals X000, X001 and X002.

The following is a description of a flow of operations carried out at the step ST5 of the flowchart shown in FIG. 2 to set behavioral rules.

FIG. 7 is an explanatory diagram showing a behavioral rule setting window 600 and a rule display window 700. The behavioral rule setting window 600 is used for setting behavioral rules of the output signal. When behavioral rules set by using the behavioral rule setting window 600 is accepted by the visual programming system, the user is informed of the fact that the set rules have been cataloged as behavioral rules by displaying the set rules on the rule display window 700.

When the `next operation` button 503 of the relevant signal selection window 500 is selected, the relevant signal selection window 500 shown in FIG. 6 disappears from the screen of the display apparatus 1, being replaced by the behavioral rule setting window 600 and the rule display window 700. A behavioral rule defines combinations of the states of a signal defining a behavior and the states of behavior relevant signals. The combinations are each used as a behavioral condition for the signal defining a behavior to enter a state thereof.

In the case of the input signals X000, X001 and X002 selected from the relevant signal selection window 500 shown in FIG. 6, the states of the signals are the 2 ON and OFF states. Thus, for the 3 input signals, there are 8 different combinations. In the case of the output signal Y000, the states of the signal are also the 2 ON and OFF states. At the step ST5, combinations of the states of the input signals X000, X001 and X002 selected at the step ST4 as signals relevant to the behavior of the output signal are programmed as a behavioral condition for the output signal Y000 to display the behavior defined thereby.

In the initial state of the behavioral rule setting window 600, the input signals X001, X002 and X002 are all displayed in an off state. A graphical object representing a signal, meaning in particular an input or output signal in this embodiment, is an object oriented entity which is generally known in the visual programming environment. The graphical object has for example a function to switch from an off state to an on state or vice versa in the event of a click, that is, when the object is clicked by using the mouse 21.

When it is desired to put the input signal X000, which is displayed in an off state initially, in an on state, the user just clicks the graphical object of the input signal X000 by using the mouse 21. Behavioral rules occurring to the user are set sequentially one rule after another by operating graphical objects representing signals. In the case of the example shown in FIG. 7, 8 combinations exist. When it is desired to program the output signal Y000 and the input signals X000, X001 and X002 so that the output signal Y000 is activated when the input signal X000 is on and either of the input signals X001 and X002 is on, behavioral rules 1 and 2 are set as follows. Behavioral rule 1 is (X000: on, X001: on and X002: off Y000: on) whereas behavioral rule 2 is (X000: on, X001: off and X002: on Y000: on) where notation `Y000: on` means that the output signal Y000 is activated to a flickering state.

FIG. 8 is an explanatory diagram showing of the behavioral rule setting window 600 wherein behavioral rule 1 described above has been set. In order to catalog behavioral rule 1 as a behavioral rule, a `rule setting` button 601 is clicked by using the mouse 21. When the `rule setting` button 601 is clicked by using the mouse 21, the set rule is displayed on a rule display window 700 to notify the user that behavioral rule 1 has been cataloged in the visual programming system.

FIG. 9 is an explanatory diagram showing the rule display window 700 on which behavioral rule 1 is displayed. Similarly, behavioral rule 2 will also be displayed on the rule display window 700 like as behavioral rule 1 is displayed as shown in FIG. 9. In the above description, the behavioral rule setting window 600 and the rule display window 700 are explained separately by using FIGS. 8 and 9 respectively. In actuality, however, the behavioral rule setting window 600 and the rule display window 700 are displayed side by side on the same screen as shown in FIG. 10 so that the user is capable of immediately and intuitively recognizing the fact that behavioral rules have been correctly cataloged.

Since the user sets only 2 behavioral rules, the remaining 6 behavioral rules all set the output signal in an off state. When the setting of all behavioral rules is finished, the user clicks a `next operation` button 602 of the behavioral rule setting window 600 by using the mouse 21. When the `next operation` button 602 is selected by using the mouse 21, the flow of operations continues to a screen shown in FIG. 14.

The operations carried out so far are programming to set behavioral rules each used as a behavioral condition of the output signal Y000. Thus, since the programming of the behaviors and the behavioral conditions has been completed, a program is automatically generated.

A flow of operations carried out at a step ST6 of the flowchart shown in FIG. 2 is explained as follows.

At the step ST6, results of the operations carried out at the steps ST1 to ST5, that is, results of the programming work, are verified. When the setting of behavioral rules is finished, a behavior verification window 1300 shown in FIG. 14 is displayed on the display apparatus 1. On the behavior verification window 1300, the 3 input signals X000, X001 and X002, that is, the behavior relevant signals of the output signal Y000, are displayed as a rudder diagram. That is to say, the behavior verification window 1300 which displays behavioral characteristics of the output signal appears on the display apparatus 1.

The input signals displayed on the left side of the behavior verification window 1300 are displayed as switches wired to form an electrical circuit based on a logic equation. For example, a contact point state 1330 represents a closed state of a graphical object representing the input signal X001 while contact point states 1331 and 1332 represent open states of graphical objects representing the input signals X002 and X000 respectively. When the graphical objects representing the input signals X002 and X000 are turned on, the contact point states 1331 and 1332 are changed to a closed state, resulting a state of connection shown in FIG. 15. In this state, the behavior of the output signal Y007 is started. From a figure like a rudder diagram, the user knows that the output signal displays a behavior when the contact points of the visual objects representing the behavior relevant signals shown in the figure are put in a closed state.

That is to say, the user knows that the output signal displays a behavior when the contact points of the graphical objects connected to each other in series are put in a closed state. An icon 1310 is a graphical object indicating a delay characteristic. An `ON operation delay` display area 1311 set by using the parameter setting window 400 is displayed above the icon 1310 whereas an `OFF operation delay` display area 1312 also set by using the parameter setting window 400 is displayed below the icon 1310. In the example, the OFF operation delay is set at 10 seconds, meaning that the output signal Y000 enters an off state after a period of 10 seconds elapses since a combination of the states of the input signals is set to turn off the output signal Y000.

A display area 1313 displays a time that has been elapsing since a combination of the states of the input signals is set to deactivate the output signal while the output signal is active. For example, assume that the input signals are put in states conforming to behavioral rule 1 or 2 to activate the output signal. Then, the input signals are put in new states other than the states conforming to behavioral rule 1 or 2. In this case, the display area 1313 displays a time that has been elapsing since the states of the input signals are changed. As time goes by, the value displayed on the display area 1313 is updated accordingly. When the value displayed on the display area 1313 becomes equal to the OFF operation delay of 10 seconds displayed on the `OFF operation delay` display area 1312, the operation to update the elapsing time is terminated and the output signal Y000 is deactivated.

Reference numeral 1320 is an icon representing a flickering characteristic. An `ON time width` display area 1321 above the icon 1320 displays an on time width set by using the parameter setting window 400. On the other hand, `an OFF time width` display area 1322 below the icon 1320 displays an off time width also set by using the parameter setting window 400. A blank display area on the left side of the `ON time width` display area 1321 typically displays an on time that has been elapsing since the output signal enters an on state.

FIG. 15 is an explanatory diagram showing a state obtained after the graphical object 1340 representing the input signal X000 and the graphical object 1342 representing the input signal X002 displayed on the behavior verification window 1300 shown in FIG. 14 are operated to put the contact points 1331 and 1332 in a closed state to verify the correct execution of the created program. As shown in the figure, the output signal Y000 is about to finish an on state which has a width of 0.3 seconds indicated by the on time width of the flickering behavioral characteristic.

Reference numeral 141 shown in FIG. 15 is a display area displaying a lapsing time within the on time width of the flickering behavioral characteristic. Similarly, reference numeral 142 is a display area displaying a lapsing time within the off time width of the flickering behavioral characteristic.

FIG. 16 is an explanatory diagram showing a result of a typical verification operation which is carried out after a state of program execution shown in FIG. 15 is established. To be more specific, the graphical object 1340 representing the input signal X000 is switched from an on state to an off state to terminate the behavior of the output signal Y000.

The display area 141 shown in FIG. 16 displays a value of 0.1 seconds, indicating that an on time of 0.1 seconds has lapsed since the output signal Y000 entered an on state having an on time width specified as a parameter of the flickering characteristic. A display area 1313 shown in FIG. 16 displays a value of 4.6 seconds, indicating that a time of 4.6 seconds has lapsed within the `OFF operation delay` parameter of the delay behavioral characteristic since the verification operation was carried out to terminate the behavior of the output signal Y000.

As the value displayed on the display area 1313 reaches 10, the output signal ends the behavior displaying a flickering characteristic. If the graphical object 1340 representing the input signal X000 is switched back from the off state shown in FIG. 16 to the on state, the execution of the program is resumed.

With the behavior verification window 1300, the user is capable of verifying correct operations of a program automatically generated by the visual programming system. If a result of the Verification indicates that the program does not carry out an intended operation, the behavioral rule setting window 600 and the rule display window 700 can be redisplayed by clicking a `return` button 1304 of the behavior verification window 1300 by means of the mouse 21 to return to a stage at which the behavioral rules can be verified and modified.

By clicking a `return` button of a window by means of the mouse 21 as described above, an immediately preceding programming user interface is displayed and, by repeating this operation, programming user interfaces are displayed one after another in an order opposite to what is described so far, allowing the user to modify and verify data. As an alternative method, a signal to be verified, namely, the output signal Y000 in this example, is selected by using the signal box 200 shown in FIG. 3 and then a `signal setting` item is selected from the `setting` menu to display the behavioral characteristic selection window 300. Thereafter, the program can be verified in an order of user interfaces explained so far.

If a `verification` icon of the signal box 200 shown in FIG. 3 is clicked to display a `verification` menu and a `component model window display` sub-menu of the `verification` menu is then selected, a component model window 160 shown in FIG. 17 appears on the display apparatus 1. It should be noted that the `component model window display` sub-menu itself is shown in none of the figures.

FIG. 16 is an explanatory diagram showing only a portion of the component model window 160. By scrolling the screen through an appropriate operation, unseen portions can be displayed. On the left end of the display area of the component model window 160, input signals are displayed in the vertical direction. This vertical input signal display area is referred to hereafter as an input signal area 161. On the right end of the display area of the component model window 160, on the other hand, output signals are displayed in the vertical direction. This vertical output signal display area is referred to hereafter as an output signal area 162. A display area between the input signal area 161 and the output signal area 162 is referred to as a component area 163 in which a relation between input signals and output signals is expressed by using graphical objects such as icons and lines.

An existing behavior relevant signal other than the input signals, if any, is displayed at a proper location in the component area 163. FIG. 17 shows a relation between the output signal Y000 and the input signals X000, X001 and X002.

The relation is verified starting with a visual object (or an icon) displayed in the component area 163 at a location closest to the input signal area 161. An icon 164 indicates that the behavioral states of the output signal Y000 are on and off states. The icon 164 also represents a logic portion in which the 3 input signals are wired in accordance with a logic equation generated by a logic equation generating means 13. An icon 165 is an icon for expressing a delay behavioral characteristic and an icon 166 expresses a flickering behavioral characteristic.

As described above, on the component model window 160 shown in FIG. 17, combinations of behavior relevant signals and characteristics displayed on the behavior verification window 1300 of FIG. 15 are expressed on a macro basis. Since the purpose of the behavior verification window 1300 is to verify operations for an output signal, information such as a behavioral characteristic parameter is displayed locally in detail. On the other hand, the component model window 160 is used for verification of setting of behavioral characteristics for all output signals on a macro basis. Pieces of information set for behavioral characteristics of all output signals are thus displayed on the component model window 160 on a macro basis in order to allow all the pieces of information to be displayed at the same time. It should be noted that, in the example shown in FIG. 17, information on only 1 output signal is displayed though.

When a `complete` button 1302 of the behavior verification window 1300 shown in FIG. 14 is clicked at the end of programming operations for 1 output signal, all the programming operations for the output signal are terminated. Then, only the signal box 200 appears on the display apparatus 1. If an `entire circuit simulation` item of the `verification` menu of the displayed signal box 200 is selected, a circuit block simulation window of all programmed output signals is displayed. It should be noted that the `entire circuit simulation` item itself is shown in none of the figures.

While the component model window 160 is used for verifying a result of programming a PLC statically, the entire circuit simulation its intended to be used for verifying operations of all results of programming a PLC. FIG. 18 is an explanatory diagram showing a state after selection of an `entire simulation start` upon completion of programming of 3 output signals Y000, Y001 and Y002.

3 circuit block simulation windows shown in FIG. 18 each with an output signal name at the left upper corner thereof are each the same as a behavior verification window 1300 of FIG. 14 for displaying information on an output signal in detail. On the `entire circuit simulation` screen, however, a `verification by sentences` button 1301 shown in FIG. 14 is not displayed.

Each of the output signals shown in FIG. 18 is explained in brief as follows. The output signal Y000 of the circuit block simulation window 170 has the same behavior as the output signal Y000 described so far. On the other hand, the output signal Y001 of the circuit block simulation window 171 is activated when the input signal X000 or X001 is turned on. Finally, the output signal Y002 of the circuit block simulation window 172 is activated when both the input signals X000 and X001 are turned on.

A simulation operation is carried out in the same way as the behavior verification window 1300 by operating a visual object representing a signal on any of the circuit block simulation windows. However, an operation carried out on a visual object representing an input signal on any of the circuit block simulation windows is interlocked with all the other circuit block simulation windows. To be more specific, consider as an example a case in which visual objects 173 and 174 representing the input signals X000 and X001 respectively on the circuit block simulation window 170 are switched from an off state to an on state. In this case, the input signals X000 and X001 on the circuit block simulation window 171 for the output signal Y001 as well as the input signals X000 and X001 on the circuit block simulation window 172 for the output signal X002 are also switched from an off state to an on state at the same time, causing all the 3 output signals to start their behaviors. FIG. 18 is an explanatory diagram showing a result of the interlocked operations described above. As described above, in a visual programming environment embracing the present invention, behaviors can be carried out by simulation by carrying out the same operations as the programming process explained earlier.

A user interface provided by the present invention for creating a program is explained once more in brief in a summary as follows. A signal box 200 is used for selecting a signal defining a behavior, that is, an object, a behavior of which is to be programmed. A behavioral characteristic selection window 300 is used for entering behavioral characteristics, behavioral states and a comment. A parameter setting window 400 is used for setting details of each behavioral characteristic. A relevant signal selection window 500 is used for selecting signals relevant to the behavior of a signal defining a behavior. A behavioral rule setting window 600 or a system generated rule display window 1000 is used for setting behavioral rules which each serve as a behavioral condition of a signal defining the behavior of a load connected thereto, that is, an object, a behavior of which is to be programmed.

At this stage, a program has already been automatically generated by the visual programming system. The user can verify behaviors carried out by the program by using a tool such as a behavior verification window 1300 or a component model window 160. The graphical editor provided by the present invention is a generic name of all user interfaces of the visual programming system which allows the user to do programming work by carrying out operations such as clicking and dragging using a device such as a mouse on windows such as the signal box 200, the behavioral characteristic selection window 300, the parameter setting window 400, the relevant signal selection window 500, the behavioral rule setting window 600, the rule display window 700 and the behavior verification window 1300.

An icon shown in the figures as a graphical object is no more than a typical example. An icon with another shape or another size, or even another object can also be used as well. In the examples described above, another icon shape can be selected from a menu, which is shown in none of the figures, of the signal box 200. Since a variety of devices are each employed as a control device in a sequencer, different icon shapes for the devices are provided.

The following is a description of first to sixth embodiments which are based on the basic configurations of the visual programming method provided by the present invention as described above and the system adopting the method to implement more detailed configurations and operations of the present invention.

FIRST EMBODIMENT

FIG. 20 is a block diagram showing a system adopting the visual programming method as implemented by the first embodiment of the present invention. In the figure, reference numerals 8 and 9 denote an object selection means and a behavior selection means respectively whereas reference numerals 10 and 11 denote a relevant object selection means and a behavioral rule setting means respectively. A main characteristic of the visual programming system implemented by the first embodiment has something to do with the user interface. Like the conventional system, the first embodiment is of course provided with a means for generating a program or code even though this means is shown in none of the figures. A generated program is transferred to a PLC typically by way of the network connection apparatus 5 shown in FIG. 1. The visual programming system implemented by the first embodiment is stored typically in the hard disc drive (HDD) 43 shown in FIG. 1 to be executed by the CPU 7 in conjunction with the display apparatus 1, the input apparatus 2 and other components.

In the visual programming method provided by the first embodiment and the system adopting the method, the object selection means 8 is used for selecting a graphical object, a behavior of which is to be programmed and the behavior selection means 9 is used for selecting the type of the behavior of the graphical object to be defined. On the other hand, the relevant object selection means 10 is used for selecting a graphical object relevant to the behavior of the graphical object and the behavioral rule setting means 11 is used for setting a behavioral rule of the graphical object for defining the behavior of a load connected thereto. As a result, by virtue of the visual programming method provided by the first embodiment and the system adopting the method, a user who has a lack of professional knowledge of programming is capable of visually developing a program with ease by merely clicking graphical objects displayed on a screen of a graphical editor using a device such as a mouse without the need to master a programming language which is difficult to understand.

The operations of the visual programming method provided by the first embodiment and the system adopting the method are explained as follows.

First of all, the object selection means 8 displays the signal box 200 shown in FIG. 3 on the display apparatus 1. Then, the object selection means 8 detects the fact that a graphical object for defining the behavior of a load connected thereto has been selected by the user using typically the mouse 21 of the input unit 2, and stores the name of an output signal represented by the selected graphical object typically in the RAM unit 42 of the storage apparatus 4.

Subsequently, the behavior selection means 9 displays the behavioral characteristic selection window 300 shown in FIG. 4 on the display apparatus 1. The behavior selection means 9 then detects the type of a behavioral characteristic selected from a group of behavioral characteristics 301 and the type of a behavioral state selected from a group of behavioral conditions 302 by the user using typically the mouse 21 of the input apparatus 2 as well as a string of characters entered by the user to the comment area 303 using typically the keyboard 22 of the input apparatus 2. The type of the behavioral characteristic, the type of the behavioral state and the string of characters are then stored typically in the RAM unit 42 of the storage apparatus 4.

Then, the relevant object selection means 10 detects the fact that signals relevant to a graphical object for defining the behavior of a load connected thereto have been selected from the signal box 200 shown in FIG. 3 by the user using typically the mouse 21 of the input unit 2. The graphical object was selected earlier from the signal box 200 shown in FIG. 3 by the user using the object selection means 8. The relevant object selection means 10 then displays graphical objects representing the selected signals in the behavior relevant signal area 501 of the relevant signal selection window 500 shown in FIG. 6 and stores the names of the selected signals typically in the RAM unit 42 of the storage apparatus 4.

Subsequently, the behavioral rule setting means 11 displays the behavioral rule setting window 600 shown in FIG. 7 on the display apparatus 1. The user then operates graphical objects displayed on the behavioral rule setting window 600 to represent the signals selected by using the relevant object selection means 10 and selects the `rule setting` button 601 by using typically the mouse 21 of the input unit 2 to set a behavioral rule. Then, the behavioral rule setting means 11 displays the behavioral rule set by the user on the rule display window 800 shown in FIG. 9 as well as temporarily stores the behavioral rule typically in the RAM unit 42 of the storage apparatus 4.

The following is a description of operations carried out by the object selection means 8 according to an eleventh embodiment.

Only ideal operations of the visual programming system provided by the first embodiment are explained. That is to say, explanation of special processing such as exception handling is omitted. Explanation of operations which are carried out when a `return` button and a `cancel` button are selected is also omitted as well.

FIG. 22 is a flowchart showing typical operations carried out by the object selection means 8 shown in FIG. 20.

As shown in the figure, the flowchart begins with a step ST21 at which the signal box 200 is displayed on the display apparatus 1. The flow of the processing then goes on to a step ST22 at which a position on the signal box 200 pointed to by the user using the mouse 21 at the step ST21 is detected. Then, the flow of the processing proceeds to a step ST23 to form a judgment as to whether or not the behavior of a signal at the position detected at the step ST22 can be defined. In the above explanation of the user interface, an output signal is selected from the signal box 200 as an example. However, a personal computer output signal 204 or an internal signal 206 may also be selected. Subsequently, the flow of the processing continues to a step ST24 at which information on the signal, the selection of which was detected at the step ST23, is stored typically in the RAM unit 42 of the storage apparatus 4.

FIG. 22 is a flowchart showing typical operations carried out by the behavior selection means 9 shown in FIG. 20. As shown in the figure, the flowchart begins with a step ST31 at which the behavior selection window 300 is displayed on the display apparatus 1. The flow of the processing then goes on to a step ST32 at which a position on the behavior selection window 300 pointed to by the user using typically the mouse 21 of the input apparatus 2 is detected.

Then, the flow of the processing continues to a step ST33 to form a judgment as to whether or not a `next operation` button 304 has been selected at the step ST32. In the case of an event not followed by an operation to click the `next operation` button 304, nothing is carried out.

If the outcome of the judgment formed at the step ST33 indicates that the `next operation` button 304 has been selected, on the other hand, a selected parameter of the behavioral characteristic 301, a selected parameter of the behavioral state 302 and a string of characters entered as a comment 303 are fetched and stored typically in the RAM unit 42 of the storage apparatus 4. The comment 303 is entered typically via the keyboard 22.

The behavioral characteristic 301, the behavioral state 302 and the comment 303 are each a graphical object. In the case of an event in which the `A delay exists` parameter of the behavioral characteristic 301 is selected, for example, the selected behavioral characteristic 301 processes the event and a result of the selection according to the event is stored internally. That is to say, at a step ST34, information on graphical objects stored internally is actually read out to be stored typically in the RAM unit 42 of the storage apparatus 4.

When the processing carried out at the step ST34 is completed, the relevant object selection means 10 starts its operations. The behavioral characteristic selection window 300 shown in FIG. 4 disappears from the display unit 1, being replaced by the relevant signal selection window 500 shown in FIG. 6. Some default values are set as parameters of the behavioral characteristic 301. A characteristic of the behavioral characteristic selection window 300 is the fact that parameters of the behavioral characteristic 301 are each displayed as a phrase written in a natural language. In the conventional visual programming tool, in many cases, an object to be selected is expressed by a graphical object such as an icon. With an object expressed by a graphical object, visual expression of the object is not adequate due to, among other reasons, limitation on the display space of the graphical object, adversely making it difficult to understand the meaning of the graphical object. As a solution to the problem encountered in the conventional visual programming tool, in the behavioral characteristic selection window 300 of the first embodiment, an object to be selected is represented by a phrase written in a natural language in place of a visual object.

If an icon is used to express an object to be selected in place of a phrase of `A delay exists` or the word `flickering` displayed on the screen shown in FIG. 4, the expression given by the icon will be difficult to understand. Thus, the expression given by the phrase of `A delay exists` or the word `flickering` written in the natural language is easier for the user to understand. If an object, which is difficult to understand when it is expressed by a 2-dimensionally displayed icon, can be displayed in 3 dimensions or displayed as a moving picture due to an improved level of the graphic technology achieved in the future, however, a visual expression other than a string of characters can also be used. This is because such a 3-dimensional display or a moving picture can also be intuitively understood with ease as well.

Since the parameters `ON/OFF` and `SET/RESET` of the behavioral state 302 may also be difficult to understand for some inexperienced users, a function such as an agent for helping the user understand their meanings may be provided.

FIG. 23 is a flowchart showing typical operations carried out by the relevant object selection means 10.

As shown in the figure, the flowchart begins with a step ST41 at which the relevant signal selection window 500 is displayed on the display apparatus 1. When the relevant signal selection window 500 is displayed at the step ST41, the user selects signals relevant to the behavior of the output signal selected by using the object selection means 8 by clicking graphical objects displayed on the signal box 200 using the mouse 21. The relevant object selection means 10 has nothing to do with the process of selection of these relevant signals.

A click event of a graphical object for example is processed by the graphical object itself. The graphical object detects the fact that the relevant signal selection window 500 is displayed and sends a message to the relevant object selection means 10 to notify that the graphical object has been selected. At a step ST42, the relevant object selection means 10 receives this message in detection of the event. It should be noted that, at the step ST42, events in which buttons on the relevant signal selection window 500 are clicked are also detected.

The flow of the processing then goes on to a step ST43 to form a judgment as to whether or not an event detected at the step ST42 is a message sent by the graphical object. If the outcome of the judgment formed at the step ST43 indicates that the event is the message from the graphical object, the flow of the processing proceeds to a step ST44 at which the graphical object sending the message is displayed in a behavior relevant signal area 501 on the relevant signal selection window 500.

If the outcome of the judgment formed at the step ST43 indicates that the event is an event of clicking a button, on the other hand, the flow of the processing continues to a step ST45 to form a judgment as to whether or not the `next operation` button 503 has been clicked. If the outcome of the judgment formed at the step ST45 indicates that the `next operation` button 503 has been clicked, the flow of the processing goes on to a step ST46 at which information on the behavior relevant signal is stored typically in the RAM unit 42 of the storage apparatus 4 before proceeding to processing carried out by the behavioral rule setting means 11.

FIG. 24 is a flowchart showing typical operations carried out by the behavioral rule setting means 11. As shown in the figure, the flowchart begins with a step ST51 at which the behavioral rule setting window 600 and the rule display window 700 are displayed on the display apparatus 1.

On the relevant behavioral rule setting window 600, behavior relevant signals selected by using the relevant object selection means 10 and the output signal selected by using the object selection means 8 are displayed in an off state and halted state respectively. On the rule display window 700, on the other hand, nothing is displayed because no behavioral rule has been set.

At a step ST52, an event on the behavioral rule setting window 600 is detected. An event detected at the step ST52 is an event of clicking a `rule setting` button 601, a `next operation` button 602, a `cancel` button 603 or a `return` button 604 only. During a period of time between the steps ST51 and ST52, the user clicks visual objects (or icons) representing a signal defining the behavior of a load connected thereto and signals relevant to the behavior displayed on the behavioral rule setting window 600 by using the mouse 21 in order to express behavioral rules visually.

The visual objects (or icons) representing a signal defining the behavior of a load connected thereto and signals relevant to the behavior are each designed to be object oriented. To put it in detail, for example, a visual object representing the input signal X000 has a function to detect an event of the input signal X000, change its state and display the changed state on the behavioral rule setting window 600 visually.

Visual objects representing the input signals X001 and X000 and the output signal Y000 each also have the same function. Thus, the step ST52 has nothing to do with the operations carried out by the user to set behavioral rules visually. In order to catalog set behavioral rules in the visual programming system, the `rule setting` button 601 is clicked. When the click event is detected at the step ST52, the flow of the processing goes on to a step ST53 to form a judgment as to whether or not the `rule setting` button 601 has been selected. If the outcome of the judgment formed at the step ST53 indicates that the `rule setting` button 601 has been selected, the flow of the processing proceeds to a step ST54 at which information on the states of visual objects representing the behavior relevant signals on the behavioral rule setting window 600 is fetched in. The flow of the processing then continues to a step ST55.

At the step ST55, information on the state of the visual object representing the signal, the behavior of which is being programmed, is fetched in. The flow of the processing then continues to a step ST56 at which the pieces of information on the states of the visual objects fetched in at the steps ST54 and ST55 are combined to set behavioral rules which are then stored typically in the RAM unit 42 of the storage apparatus 4.

For instance, in the example shown in FIG. 8, at the step ST54 of the flowchart shown in FIG. 24, the state information (X000: ON, X001: ON and X002: OFF) is fetched and, at the step ST55, the state information (Y000: ON) is fetched. Then, at the step ST56, behavioral rule 1 given as an example in the description of user interfaces is generated and stored in the storage apparatus 4. The flow of the processing then goes on to a step ST57 at which the behavioral rule generated at the step ST56 is displayed on the rule display window 700 in terms of visual objects.

FIG. 9 is an explanatory diagram showing a typical displayed screen of the rule display window 700 displaying behavioral rule 1 . Then, the flow of the processing returns from the step ST57 to the steps ST51 and ST52. Assume that a button other than the `rule setting` button 601 is clicked. The flow of the processing then goes on to the step ST53 to form a judgment as to whether or not the `next operation` button 602 has been clicked. If the outcome of the judgment formed at the step ST53 indicates that the `next operation` button 602 has been clicked, the processing to set behavioral rules is completed. After the processing carried out by the behavioral rule setting means 11 is finished, the visual programming system automatically generates a program and saves the program typically in the hard disc drive (HDD) 43 of the storage apparatus 4 in the form of a file.

As described above, according to the first embodiment, the object selection means 8 is used for selecting a behavioral graphical object defining the behavior of a load connected thereto, the behavior selection means 9 is used for selecting the type of the behavior of the behavioral graphical object, the relevant object selection means 10 is used for selecting relevant graphical objects related to the behavior of the behavioral graphical object and the behavioral rule setting means 11 is used for setting behavioral rules of the behavioral graphical object defining. As a result, a user who has a lack of professional knowledge of programming is capable of visually developing a program with ease by merely clicking graphical objects displayed on a screen of a graphical editor using a device such as a mouse without the need to master a programming language which is difficult to understand. Also in domains in which only specialists work, such as PLC (programmable logic controller) programming which particularly requires professional knowledge of a programming language and sequence control, a user with no professional training is also capable of creating such programs with ease.

SECOND EMBODIMENT

FIG. 25 is a block diagram showing a system adopting the visual programming method as implemented by a second embodiment of the present invention. In the figure, reference numerals 12 and 69 denote a behavioral parameter setting means and a behavior selection means respectively. The visual programming system implemented by the second embodiment is a system provided with a user interface which allows a value set for a behavioral characteristic selected by the behavior selection means 69 to be changed. It should be noted that elements of the second embodiment identical with those of the first embodiment are denoted by the same reference numerals as the latter and their explanation is omitted to avoid duplication of description. The visual programming system implemented by the second embodiment is stored typically in the hard disc drive (HDD) 43 shown in FIG. 1 to be executed by the CPU 7 in conjunction with the display apparatus 1, the input apparatus 2 and other components.

The visual programming system implemented by the second is built by adding a behavioral parameter setting means 12 to the visual programming system provided by the first embodiment so that detailed behavioral parameters of a behavioral characteristic selected by using the behavior selection means 69 can be set.

If the outcome of the judgment formed at the step ST33 of the flowchart representing typical operations carried out by the behavior selection means 9 as shown in FIG. 20 indicates that the `next operation` button has been selected, the processing goes on from the behavior selection means 9 to the relevant object selection means 10. In the case of the behavior selection means 69 of the visual programming system implemented by the second embodiment shown in FIG. 2, if the outcome of the judgment formed at the step ST63 indicates that the `next operation` button has been selected, the processing goes on a step ST65. At the step ST65, data stored in storage apparatus 4 at the step ST64 is examined to form a judgment as to whether or not a behavioral characteristic has been selected. If a behavioral characteristic is found to be selected, the behavioral parameter setting means 12 is used for setting detailed behavioral parameters. If the outcome of the judgment formed at the step ST65 indicates that no behavioral characteristic is selected, on the other hand, the relevant object selection means 10 is used for selecting relevant objects.

FIG. 27 is a flowchart showing typical operations carried out by the behavioral parameter setting means 12. As shown in the figure, the flowchart begins with a step ST71 at which the behavior selection means 69 reads out a behavioral characteristic from the storage apparatus 4 in order to recognize the selected behavioral characteristic. The flow of the processing then goes on to a step ST72 at which the parameter setting window 400 is displayed on the display apparatus 1. Then, the flow of the processing proceeds to a step ST73 at which a parameter setting area for each behavioral characteristic recognized at the step ST71 is displayed on the parameter setting window 400 displayed at the step ST72.

For example, the parameter setting window 400 is first displayed on the display apparatus 1 and the parameter setting area 410 for the `delay` behavioral characteristic and the parameter setting area 420 for the `flickering` behavioral characteristic are displayed on the parameter setting window 400 as shown in FIG. 5. At the step ST72, parameter setting areas for behavioral characteristics other than those selected by the user by using the behavior selection means 69 are not displayed. For example, a parameter setting area for `A time limit exists` behavioral characteristic of the example shown in FIG. 4 is not displayed because this behavioral characteristic is not selected. In this way, if it is within quite the bounds of possibility that displaying unnecessary information adversely makes the user confused, the confusing information is not displayed.

The flow of the processing then continues to a step ST74 to detect an event caused by an operation carried out by the user on any parameter setting area displayed at the step ST73. Then, the flow of the processing goes on to a step ST75 to form a judgment based on the event detected at the step S74 as to whether or not the `next operation` button 401 has been clicked. If the `next operation` button 401 has not been clicked, the flow of the processing returns to the step ST74 to wait for detection of a next event. If the outcome of the judgment formed at the step ST75 indicates that the `next operation` button 401 has been clicked, on the other hand, the flow of the processing proceeds to a step ST76.

At the step ST76, data entered by the user to the parameter setting areas using typically the mouse 21 and the keyboard 22 prior to the continuation of the flow of the processing to the step ST76 is fetched from the areas and stored typically in the RAM unit 42 of the storage apparatus 4.

When the processing carried out at the step ST76 is completed, the flow of the processing continues to an operation of the relevant object selection means 10 which is not included in the flowchart shown in FIG. 27. In the operation carried out by the relevant object selection means 10, the relevant signal selection window 500 shown in FIG. 6 is displayed on the display apparatus 1.

As described above, according to the second embodiment, a behavioral parameter setting means 12 is included to allow detailed behavioral parameters of a behavioral characteristic selected by using the behavior selection means 69 to be set. As a result, the user is capable of changing values set for a behavioral characteristic selected by using the behavior selection means 9 and, hence, carrying out programming work with ease and a higher degree of efficiency.

THIRD EMBODIMENT

FIG. 28 is a block diagram showing a system adopting the visual programming method as implemented by a third embodiment of the present invention. As shown in the figure, the visual programming system also includes a behavioral rule generation means 13a, a generated rule display means 13b, a system generated rule modification means 13c and a behavioral rule addition means 13d. The behavioral rule generation means 13a, the system generated rule display means 13b, the system generated rule modification means 13c and the behavioral rule addition means 13d each constitute a user interface. It should be noted that, since the object selection means 8, the behavior selection means 69, the relevant object selection means 10 and the behavioral parameter setting means 12 are identical with those of the second embodiment, they are denoted by the same reference numerals as the latter and their description is omitted to avoid duplication of explanation. The visual programming system implemented by the third embodiment is stored typically in the hard disc drive (HDD) 43 shown in FIG. 1 to be executed by the CPU 7 in conjunction with the display apparatus 1, the input apparatus 2 and other components.

In the system adopting the visual programming method provided by the second embodiment, it is necessary for the user to consider all behavioral rules, that is, all combinations of the states of behavior relevant signals, when setting some of the behavioral rules by using a user interface provided by the behavioral rule setting means 11 in order to avoid incorrect operations.

In the system adopting the visual programming method provided by the third embodiment, on the other hand, there is provided a user interface capable of setting all behavioral rules wherein the visual programming system automatically generates a behavioral rule without the necessity for the user to take all behavioral rules into consideration so that it is necessary for the user to merely accept or deny a behavioral rule generated by the system.

Operations carried out by the system adopting the visual programming method provided by the third embodiment are explained as follows.

If the outcome of the judgment formed at the step ST53 of the flowchart of FIG. 24 representing operations carried out by the behavioral rule setting means 11 indicates that a button other than the `rule setting` button 601 on the behavioral rule setting window 600 has been clicked, the processing is ended. In the case of the visual programming system implemented by the third embodiment, on the other hand, the flow of the processing goes on from a step ST83 to an operation carried out by the behavioral rule generation means 13a as shown by a flowchart of FIG. 29.

To be more specific, if the outcome of the judgment formed at the step ST83 of the flowchart shown in FIG. 29 indicates that the `next operation` button 602 of the behavioral rule setting window 600 shown in FIG. 7 has