Patent Description:
In the field of FA (Factory Automation), it is common to use a control device such as PLC (Programmable Logic Controller) to control a control target such as equipment or machinery. Such a control device is usually connected to a display device that presents various types of information to the user and receives an operation from the user. The state of the control target controlled by the control device is displayed on the display device.

Further, for debugging or the like, there are needs to confirm the execution state of a program (hereinafter, also referred to as "sequence program") arbitrarily created according to the control target and executed by the control device. A function of confirming the execution state of such a sequence program (hereinafter, also referred to as "online monitor") has also been realized on the display device.

For example, <CIT> (Patent Document <NUM>) discloses a configuration in which the development environment and the execution environment for a program coexist to improve the efficiency of program development. More specifically, an execution environment similar to PLC is realized on a computer device by using a control runtime unit, and the execution result of the control runtime unit is returned to a programmable display, so as to display the execution state of a ladder program on the programmable display.

[Patent Document <NUM>] <CIT>
Further attention is drawn to <CIT> describing to facilitate work for changing a control program for a control device in operation. There is provided a support device for supporting development of a control program executed in a control device which controls a control object. The support device comprises: calculation means for calculating identification information according to contents of each unit program constituting the control program for each unit program; first transfer means for transferring a unit program and identification information associated with the unit program to the control device; generation means for generating a changed unit program in response to change operation with respect to any unit program constituting the control program; and second transfer means for transferring the changed unit program to the control device in operation under the condition that the same identification information as identification information associated with the unit program constituting the control program is present in the control device. Attention is further drawn to <CIT> describing to increase efficiency by enhancing the reliability of checks on a sequence program. A CPU reads one command from the sequence program, refers to a command information table, and calculates the address of a data area occupied by each operand of the command. A service condition table is checked to determine whether or not the address calculated corresponds to a multiple use of the data area. If there is a multiple use of the data area, information about the multiple use of the data area in a command memory is registered in a result storage list. The contents of the result storage list are displayed on a display.

In the configuration disclosed in the above-described <CIT> (Patent Document <NUM>), in order to realize the same execution environment as PLC, it is necessary to provide a runtime unit on the computer device, which causes a problem that the configuration of the computer device becomes complicated.

An object of the invention is to provide a configuration that allows an online monitor to be easily realized on a display device.

A control system according to the invention is defined in claim <NUM>.

According to the present embodiment, since the control device executes the user program in the form of a native code, the online monitor can be provided even if the circuit component of the sequence program included in the user program cannot be restored.

In the above embodiment, the circuit output state may include a value of each variable being used by the native code executed in the calculation processing unit. According to the present embodiment, the control device may provide only the execution result of the native code to the display device, and the processing load can be prevented from increasing.

In the above embodiment, the sequence circuit information may include, for each circuit defined in the sequence program, information of a type of a circuit component defined and a variable associated with each circuit component. According to the present embodiment, the interpretation required for the online monitor can be easily realized even if the resources available to the display device are limited.

In the above embodiment, the storage unit of the display device may further store an object code generated from a second user program for realizing a screen display on the display device. According to the present embodiment, the processing speed in the display device can be increased.

In the above embodiment, the control system may further include a support device which creates the first user program and the second user program according to a user operation, and generates the native code and the sequence circuit information from the first user program and generates the object code from the second user program.

According to the present embodiment, it is not necessary to prepare support devices separately for the control device and the display device, and the control device and the display device can be linked to provide necessary data to the respective devices.

According to the invention, a support device for a control system is defined according to claim <NUM>.

According to yet another embodiment of the invention, a support program is defined according to claim <NUM>.

According to the invention, the online monitor can be easily realized on the display device.

Embodiments of the invention will be described in detail with reference to the drawings. The same or corresponding parts in the drawings are denoted by the same reference numerals and description thereof will not be repeated.

First, an example of a scene to which the invention is applied will be described. <FIG> is a schematic diagram showing a functional configuration example of a control system <NUM> according to the present embodiment. Referring to <FIG>, the control system <NUM> includes a control device that controls a control target, and a display device that is connected to the control device. In the following description, the control system <NUM>, which includes a PLC <NUM> as a typical example of the control device and an HMI (Human Machine Interface) <NUM> as a typical example of the display device, is shown.

In this specification, a function of confirming the execution state of a user program (sequence program) arbitrarily created according to the control target in the control device is also referred to as "online monitor". The display device (HMI <NUM>) according to the present embodiment acquires necessary information from one or a plurality of control devices (PLC <NUM>) and provides an online monitor.

The international standard IEC61131-<NUM> defines five types of programming languages for PLC application: ladder diagram (LD), function block diagram (FBD), sequential function chart (SFC), instruction list (IL), and structured text (ST). The online monitor according to the present embodiment may be a sequence program written in any programming language. In the following, a sequence program written in a ladder diagram will be described as a typical example.

In this specification, an application program arbitrarily created according to the control target and the control system <NUM> and executed in the control device (PLC <NUM>) and the display device (HMI <NUM>) is also referred to as a "user program". The user program executed by the control device (PLC <NUM>) includes a sequence program and a motion program created according to the control target. The user program executed by the display device (HMI <NUM>) includes a logic or the like for controlling the layout/attribute or display of an object for realizing screen display.

As shown in <FIG>, the PLC <NUM> has a storage unit that stores a native code <NUM> generated from the user program for PLC (including a sequence program). A calculation processing unit of the PLC <NUM> executes the native code <NUM> stored in the storage unit. The control for the control target is realized by execution of the native code <NUM>. This native code <NUM> is written from a support device <NUM> to the PLC <NUM>.

Further, the HMI <NUM> has a storage unit that stores an object code <NUM> generated from the user program <NUM> for HMI for realizing screen display on the HMI <NUM>. The storage unit of the HMI <NUM> further stores sequence circuit information <NUM> that is generated from the user program for PLC and defines the circuit configuration of the sequence program.

The HMI <NUM> has an online monitor module <NUM> for providing the online monitor. The online monitor module <NUM> acquires a circuit output state indicating the execution state of the native code <NUM> from the PLC <NUM>. That is, the HMI <NUM> (online monitor module <NUM>) exchanges the circuit output state with the PLC <NUM>. Then, the online monitor module <NUM> of the HMI <NUM> visualizes the execution state of the sequence program in the PLC <NUM> based on the sequence circuit information <NUM> and the acquired circuit output state (that is, provide the online monitor).

By adopting such a configuration, even if the user program including the sequence program, which is executed by the PLC <NUM>, has a format such as the native code which cannot reproduce the original sequence program, the online monitor can still be provided in the HMI <NUM>.

First, a configuration example of the control system according to the present embodiment will be described. <FIG> is a schematic diagram showing a configuration example of the control system <NUM> according to the present embodiment. Referring to <FIG>, the control system <NUM> includes the PLC <NUM> which is a typical example of the control device, the HMI <NUM> which is a typical example of the display device, and the support device <NUM>. These devices are connected to each other via a network <NUM>.

The PLC <NUM> controls the control target by executing a control calculation according to a user program (including a sequence program and a motion program) created in advance. The HMI <NUM> presents various types of information to the user according to a user program created in advance, and receives an operation from the user. The support device <NUM> provides functions such as creating and debugging the user programs to be executed by the PLC <NUM> and the HMI <NUM>.

Next, an example of the hardware configuration of each device included in the control system <NUM> will be described.

<FIG> is a schematic diagram showing an example of the hardware configuration of the PLC <NUM> according to the present embodiment. Referring to <FIG>, the PLC <NUM> includes a processor <NUM>, a main memory <NUM>, a storage <NUM>, a network controller <NUM>, field network controllers <NUM> and <NUM>, a USB (Universal Serial Bus) controller <NUM>, a memory card interface <NUM>, and a local bus controller <NUM>. These components are connected via a processor bus <NUM>.

The processor <NUM> corresponds to the calculation processing unit that executes the control calculation, etc., and includes a CPU (Central Processing Unit), a GPU (Graphics Processing Unit) or the like. Specifically, the processor <NUM> reads the program (for example, system program <NUM> and native code <NUM> (generated from the user program <NUM>)) stored in the storage <NUM>, expands the program in the main memory <NUM>, and executes the program to realize control according to the control target and various processes as described later.

The main memory <NUM> includes a volatile storage device such as a DRAM (Dynamic Random Access Memory) or an SRAM (Static Random Access Memory). The storage <NUM> corresponds to the storage unit, and includes a non-volatile storage device such as an HDD (Hard Disk Drive) or an SSD (Solid State Drive).

The storage <NUM> stores the native code <NUM> created according to the control target such as equipment or machinery in addition to the system program <NUM> for realizing the basic functions.

The network controller <NUM> exchanges data with any information processing device including the HMI <NUM> via the network <NUM>. The field network controllers <NUM> and <NUM> exchange data with any remote IO device or external device via a field network. Although <FIG> shows two field network controllers <NUM> and <NUM>, one single field network controller may be used. The USB controller <NUM> exchanges data with any external device or the like via USB connection.

The memory card interface <NUM> receives a memory card <NUM> which is an example of a removable recording medium. The memory card interface <NUM> can write data to the memory card <NUM> and read various types of data (log, trace data, etc.) from the memory card <NUM>.

The local bus controller <NUM> exchanges data with any local IO unit via a local bus <NUM>.

Although <FIG> shows a configuration example in which the processor <NUM> executes the program to provide necessary functions, some or all of these provided functions may be implemented by using a dedicated hardware circuit (for example, ASIC (Application Specific Integrated Circuit) or FPGA (Field-Programmable Gate Array)). Alternatively, the main part of the PLC <NUM> may be realized by using hardware conforming to a general-purpose architecture (for example, an industrial personal computer based on a general-purpose personal computer). In this case, by using a virtualization technique, a plurality of OSs (Operating Systems) having different purposes may be executed in parallel, and the necessary application may be executed on each OS.

<FIG> is a schematic diagram showing an example of the hardware configuration of the HMI <NUM> according to the present embodiment. Referring to <FIG>, the HMI <NUM> includes a processor <NUM>, a main memory <NUM>, a storage <NUM>, a network controller <NUM>, an input unit <NUM>, a display unit <NUM>, a USB controller <NUM>, and a memory card interface <NUM>. These components are connected via a processor bus <NUM>.

The processor <NUM> corresponds to the calculation processing unit that executes a display process, an input process, etc., and includes a CPU, a GPU or the like. Specifically, the processor <NUM> reads the program (for example, system program <NUM> and object code <NUM> (generated from the user program <NUM>)) stored in the storage <NUM>, expands the program in the main memory <NUM>, and executes the program to realize the display process and the input process corresponding to the PLC <NUM>.

The main memory <NUM> includes a volatile storage device such as a DRAM or an SRAM. The storage <NUM> corresponds to the storage unit, and includes a non-volatile storage device such as an HDD or an SSD.

The storage <NUM> stores the object code <NUM> created according to the control target such as equipment or machinery, and the sequence circuit information <NUM> in addition to the system program <NUM> for realizing the basic functions.

The input unit <NUM> includes a touch panel, a mouse, a keyboard, etc., and receives a user operation. The display unit <NUM> includes a liquid crystal display, etc., and displays an image, etc. according to the execution result of the object code <NUM> obtained by the processor <NUM>. The input unit <NUM> and the display unit <NUM> may be integrally configured.

The network controller <NUM> exchanges data with any information processing device including the PLC <NUM> via the network <NUM>. The USB controller <NUM> exchanges data with any external device or the like via USB connection.

Although <FIG> shows a configuration example in which the processor <NUM> executes the program to provide necessary functions, some or all of these provided functions may be implemented by using a dedicated hardware circuit (for example, ASIC or FPGA). Alternatively, the main part of the HMI <NUM> may be realized by using hardware conforming to a general-purpose architecture (for example, an industrial personal computer based on a general-purpose personal computer). In this case, by using a virtualization technique, a plurality of OSs having different purposes may be executed in parallel, and the necessary application may be executed on each OS.

<FIG> is a schematic diagram showing an example of the hardware configuration of the support device <NUM> according to the present embodiment. Referring to <FIG>, the support device <NUM> is realized by, for example, a computer conforming to a general-purpose architecture executing a program.

More specifically, the support device <NUM> includes a processor <NUM>, a main memory <NUM>, a storage <NUM>, an input unit <NUM>, a display unit <NUM>, an optical drive <NUM>, and a USB controller <NUM>. These components are connected via a processor bus <NUM>.

The processor <NUM> includes a CPU, a GPU or the like, and reads the program (for example, OS <NUM> and support program <NUM>) stored in the storage <NUM>, expands the program in the main memory <NUM>, and executes the program to realize various processes as described later.

The main memory <NUM> includes a volatile storage device such as a DRAM or an SRAM. The storage <NUM> includes a non-volatile storage device such as an HDD or an SSD.

The storage <NUM> stores the support program <NUM> for providing a function as the support device <NUM> in addition to the OS <NUM> for realizing the basic functions. The support program <NUM> has functions as a PLC tool and an HMI tool as described later.

The input unit <NUM> includes a keyboard, a mouse, etc., and receives a user operation. The display unit <NUM> includes a display, various indicators, a printer, etc., and outputs the processing result from the processor <NUM>.

The USB controller <NUM> exchanges data with any external device or the like via USB connection.

The support device <NUM> has the optical drive <NUM>, and reads the program stored in a recording medium <NUM> which stores a computer-readable program in a non-transitory manner (for example, an optical recording medium such as a DVD (Digital Versatile Disc)) from the recording medium <NUM>, and installs the program in the storage <NUM> or the like.

Although the support program <NUM>, etc. executed by the support device <NUM> may be installed via the computer-readable recording medium <NUM>, it may also be installed by downloading from a server device, etc. on a network. In addition, the function provided by the support device <NUM> according to the present embodiment may be realized by using a part of the module provided by the OS.

Although <FIG> shows a configuration example in which the processor <NUM> executes the program to provide necessary functions as the support device <NUM>, some or all of these provided functions may be implemented by using a dedicated hardware circuit (for example, ASIC or FPGA).

Next, an example of the online monitor provided in the HMI <NUM> according to the present embodiment will be described.

<FIG> is a schematic diagram showing an example of the online monitor provided in the HMI <NUM> according to the present embodiment. Referring to <FIG>, a sequence circuit <NUM> defined by the sequence program executed by the target PLC <NUM> is visualized and provided on the display unit of the HMI <NUM>. The sequence circuit <NUM> is a combination of one or a plurality of circuit components, and may include a contact corresponding to an input value and a coil corresponding to an output value.

The sequence circuit <NUM> shown in <FIG> includes the contact <NUM> and functions <NUM>, <NUM>, <NUM>, and <NUM> as circuit components. In the online monitor, a state value display <NUM> is added in association with the circuit component according to the state value of the sequence program. In the example shown in <FIG>, it is shown that the circuit is activated immediately before the contact <NUM>, but the contact <NUM> itself is off (that is, not activated).

In the present embodiment, the online monitor as shown in <FIG> is provided in the HMI <NUM> communicatively connected to the PLC <NUM>.

Next, an implementation example of an online monitor according to related art of the invention will be described.

<FIG> is a diagram for explaining an implementation example of the online monitor according to related art of the invention. Referring to <FIG>, in the related art of the invention, a support device <NUM> for the PLC <NUM> and a support device <NUM> for the HMI <NUM> are prepared.

In the support device <NUM> for the PLC <NUM>, a development environment (hereinafter also referred to as "PLC tool") for creating the user program (sequence program, etc.) to be executed by the PLC <NUM> is provided, and the user creates the user program <NUM> for PLC according to the control target ((<NUM>) program creation).

Further, in the support device <NUM> for the HMI <NUM>, a development environment (hereinafter also referred to as "HMI tool") for creating the user program (logic or the like for controlling the layout/attribute or display of an object for realizing screen display) to be executed by the HMI <NUM> is provided, and the user creates the user program <NUM> for HMI according to the control target ((<NUM>) program creation).

The user program <NUM> for PLC created in the support device <NUM> is transferred to the PLC <NUM> ((<NUM>) writing of user program (intermediate code)). Similarly, the user program <NUM> for HMI created in the support device <NUM> is transferred to the HMI <NUM> ((<NUM>) writing of user program (object code)). The user program <NUM> for HMI may be converted into an object code in the support device <NUM> and transferred.

The above-described (<NUM>) to (<NUM>) are processes for realizing the processing performed by the control system <NUM>. When the processing in the control system <NUM> is realized, the processing related to the online monitor as shown below can be executed.

That is, when the user instructs the HMI <NUM> to execute the online monitor, the HMI <NUM> requests the target PLC <NUM> for the sequence circuit information ((<NUM>) request for sequence circuit information). In response to this request, the PLC <NUM> responds with the sequence circuit information based on the sequence program stored in advance, and transmits the circuit output state indicating the execution state of the sequence program to the HMI <NUM> ((<NUM>) sequence circuit information + circuit output state). The circuit output state includes the state value (on/off or value) of the circuit component defined in the sequence program. The request for sequence circuit information from the HMI <NUM> to the PLC <NUM> may target not only all of the user programs stored in the PLC <NUM> but only a part thereof.

The HMI <NUM> visualizes the sequence circuit <NUM> (see <FIG>) based on the sequence circuit information and the circuit output state from the PLC <NUM> ((<NUM>) online monitor).

By adopting such a processing procedure, even if the user program executed by the PLC <NUM> is not stored in the HMI <NUM>, the online monitor can still be realized in the HMI <NUM>.

The implementation example of the online monitor according to the related art of the invention as shown in <FIG> is based on the premise that the circuit components constituting the sequence circuit and the connection relationship can be uniquely specified from the user program (sequence program) stored in the PLC <NUM>.

<FIG> is a diagram for explaining an implementation example for realizing the online monitor according to related art of the invention. Referring to <FIG>, in the related art of the invention, the PLC <NUM> executes the user program by a kind of interpreter system. More specifically, the PLC <NUM> sequentially interprets the user program written from the support device <NUM> for the PLC <NUM> to generate the native code. In the configuration example shown in <FIG>, an intermediate code <NUM> generated from the user program created by the user is written from the support device <NUM> to the PLC <NUM>. When executing the user program, the PLC <NUM> sequentially interprets the intermediate code <NUM> written by the support device <NUM> to generate the native code (command written in machine language) that can be interpreted by the processor <NUM> of the PLC <NUM>, so as to execute the user program.

For example, an implementation mode in which the user program written according to IEC61131-<NUM> is sequentially interpreted may be adopted.

Since such an intermediate code <NUM> corresponds to a code obtained by converting the user program written according to IEC61131-<NUM> according to a predetermined rule, it can be converted bidirectionally with the sequence circuit. That is, since the circuit component corresponding to each code of the intermediate code <NUM> can be uniquely determined, the corresponding sequence circuit can be restored from the intermediate code <NUM>.

The HMI <NUM> can acquire the intermediate code <NUM> from the PLC <NUM> as necessary, restore the sequence circuit from the circuit component corresponding to each code included in the acquired intermediate code <NUM>, and realize the online monitor. Therefore, it is not necessary to write the sequence circuit of the user program executed by the PLC <NUM> from the support device <NUM> for the HMI <NUM> to the HMI <NUM>.

<FIG> is a diagram for explaining the problem in the online monitor according to related art of the invention. Referring to <FIG>, depending on the execution environment of the PLC <NUM>, the native code <NUM>, instead of the intermediate code <NUM>, may be written to the PLC <NUM> from the support device <NUM> for the PLC <NUM>. That is, the PLC <NUM> may execute the user program by a compiler system.

In that case, the support device <NUM> generates the native code <NUM> by performing a building process (including parsing, optimization, compilation, etc.) on the user program (code written according to IEC61131-<NUM>) created by the user. Since the native code <NUM> can be directly interpreted by the processor <NUM> of the PLC <NUM>, it has an advantage that the processing speed can be increased as compared with the case of using the intermediate code <NUM>.

On the other hand, such a native code <NUM> is generated by optimizing the user program written according to IEC61131-<NUM>, and basically, reverse conversion into the sequence circuit is not possible. That is, the circuit component corresponding to each code of the native code <NUM> cannot be uniquely specified, and the corresponding sequence circuit cannot be restored from the native code <NUM>.

Therefore, even if the HMI <NUM> acquires the native code <NUM> from the PLC <NUM>, the sequence circuit cannot be restored from the acquired native code <NUM>, so the online monitor cannot be realized by the method described above.

<FIG> is a diagram for explaining the difference between the implementation examples of the interpreter system and the compiler system. Referring to <FIG>, the native code corresponding to each circuit component is generated in both the interpreter system and the compiler system.

In the interpreter system, the intermediate code corresponding to each circuit component is generated. The intermediate code cannot be directly interpreted by the processor <NUM> of the PLC <NUM>, but is linked to the circuit component in a one-to-one relationship. That is, the conversion from the circuit component to the intermediate code is a bidirectional conversion, and reverse conversion from the intermediate code to the circuit component is possible. Then, the native code is generated from the intermediate code. The conversion from the intermediate code to the native code is a unidirectional conversion, and basically, reverse conversion from the native code to the intermediate code is not possible.

In the compiler system, the native code is generated from each circuit component. The native code is a code that can be directly interpreted by the processor <NUM> of the PLC <NUM>. In the compiler system, since optimization, etc. is performed by the compiler, there is no guarantee that exactly the same native code is generated from the same circuit component. Therefore, the native code cannot be reliably returned to the circuit component. That is, the conversion from the circuit component to the native code is a unidirectional conversion, and basically, reverse conversion from the native code to the circuit component is not possible.

As described above, although the online monitor according to the related art of the invention shown in <FIG> can be implemented in the PLC <NUM> using the interpreter system, it is difficult to be realized in the PLC <NUM> using the compiler system. Thus, the control system <NUM> according to the present embodiment provides a configuration that can realize the online monitor even for the PLC <NUM> using the compiler system.

Next, the online monitor according to the present embodiment will be described.

<FIG> is a diagram for explaining an implementation example of the online monitor according to the present embodiment. Referring to <FIG>, in the present embodiment, a support device <NUM> is provided, which provides the respective development environments provided by the support device <NUM> for the PLC <NUM> and the support device <NUM> for the HMI <NUM> shown in <FIG>. That is, the support device <NUM> functions as an integration tool that provides the PLC tool and the HMI tool.

The user operates the support device <NUM> to create the user program <NUM> for PLC according to the control target and the user program <NUM> to be executed by the HMI <NUM> ((<NUM>) program creation).

When the program creation is completed, the support device <NUM> performs a building process on the user program <NUM> and the user program <NUM> to generate the native code corresponding to the user program <NUM> and the object code corresponding to the user program <NUM> ((<NUM>) building process). At this time, the support device <NUM> also generates the sequence circuit information <NUM> from the user program <NUM>. The sequence circuit information <NUM> is information for display used for providing the online monitor in the HMI <NUM>. Details of the sequence circuit information <NUM> will be described later.

The native code corresponding to the user program <NUM> created in the support device <NUM> is transferred to the PLC <NUM> ((<NUM>) writing of user program (native code)). Similarly, the object code corresponding to the user program <NUM> and the sequence circuit information <NUM> corresponding to the user program <NUM> created in the support device <NUM> are transferred to the HMI <NUM> ((<NUM>) writing of user program (object code) + sequence circuit information).

The above-described (<NUM>) to (<NUM>) are processes for realizing the processing performed by the control system <NUM>. In this way, the support device <NUM> creates the user program <NUM> for PLC and the user program <NUM> for HMI according to the user operation, and generates the native code <NUM> and the sequence circuit information <NUM> from the user program <NUM>, and generates the object code <NUM> from the user program <NUM>.

When the processing in the control system <NUM> is realized, the processing related to the online monitor as shown below can be executed.

That is, when the user instructs the HMI <NUM> to execute the online monitor, the HMI <NUM> requests the target PLC <NUM> for the circuit output state ((<NUM>) request for circuit output state). In response to this request, the PLC <NUM> transmits the circuit output state indicating the execution state of the native code being executed to the HMI <NUM> ((<NUM>) circuit output state). The circuit output state includes the state value (on/off or value) of the circuit component defined in the sequence program. The circuit output state transmitted from the PLC <NUM> to the HMI <NUM> may include only a part of the state value of the native code being executed in the PLC <NUM>.

The HMI <NUM> visualizes the sequence circuit <NUM> (see <FIG>) based on the sequence circuit information <NUM> from the support device <NUM> and the circuit output state from the PLC <NUM>, and provides the online monitor ((<NUM>) online monitor).

As shown in <FIG>, in the present embodiment, by using the support device <NUM> that integrates the PLC tool and the HMI tool, when the user program <NUM> for the HMI <NUM> is written to the HMI <NUM>, information necessary for the online monitor generated from the user program <NUM> for PLC can be written together to the HMI <NUM>. Thereby, even if the user program <NUM> is stored in the PLC <NUM> in the form of a native code, the online monitor can still be provided in the HMI <NUM>.

<FIG> is a diagram for explaining an example of the processing procedure for realizing the online monitor according to the present embodiment. Referring to <FIG>, in the support device <NUM> which is an integration tool, the processing for generating necessary data is executed. The steps shown in <FIG> are realized by the processor <NUM> of the support device <NUM>, which is a computer, executing the support program <NUM> (see <FIG>, etc.).

Specifically, with respect to the PLC <NUM>, the support device <NUM> creates the user program for PLC according to the user operation (step S2). That is, the support device <NUM> generates the user program <NUM> including the sequence program, which is executed in the PLC <NUM>, according to the user operation.

Subsequently, the support device <NUM> executes the building process on the created user program for PLC (step S4), and generates the sequence circuit information <NUM> in addition to the native code corresponding to the user program. That is, the support device <NUM> generates, from the user program <NUM> for PLC, the native code <NUM> to be executed by the processor <NUM>, which is the calculation processing unit of the PLC <NUM>, and the sequence circuit information <NUM>, which defines the circuit configuration of the sequence program.

Then, the support device <NUM> transfers the generated native code to the PLC <NUM> (step S6). Finally, the PLC <NUM> executes the native code transferred from the support device <NUM> (step S8).

Further, with respect to the HMI <NUM>, the support device <NUM> creates the user program <NUM> for HMI according to the user operation (step S12). That is, the support device <NUM> generates the user program <NUM> for realizing the screen display on the HMI <NUM> according to the user operation.

Subsequently, the support device <NUM> executes the building process on the created user program <NUM> for HMI (step S14), and generates the object code corresponding to the user program. That is, the support device <NUM> generates the object code <NUM> to be executed by the processor <NUM>, which is the calculation processing unit of the HMI <NUM>, from the user program <NUM> for HMI.

Then, the support device <NUM> transfers the sequence circuit information <NUM> generated in step S4 to the HMI <NUM> in addition to the generated object code (step S16). That is, the support device <NUM> transfers the object code <NUM> and the sequence circuit information <NUM> to the HMI <NUM>.

Finally, the HMI <NUM> executes the object code <NUM> transferred from the support device <NUM> to realize screen display, and in response to the user operation, provides the online monitor based on the sequence circuit information <NUM> (step S18).

In the online monitor according to the present embodiment, the sequence circuit showing the contents of the sequence program executed by the target PLC <NUM> is visualized by providing the sequence circuit information <NUM> to the HMI <NUM>.

The sequence circuit information <NUM> is information for visualizing the sequence circuit, and is data created by the support device <NUM>, which is an integration tool, for maintaining the information of the sequence circuit. It is preferable that the sequence circuit information <NUM> is created in a format that is compact and has a small processing load for interpretation so that even an HMI with limited resources can easily process the information.

<FIG> is a schematic diagram showing an example of the sequence circuit information <NUM> used in the control system <NUM> according to the present embodiment. Referring to <FIG>, for example, information of the circuit components included in each circuit defined by the user program for PLC is written.

<FIG> shows an example of a circuit including one contact <NUM> and one coil <NUM>. In this example, a circuit definition <NUM> of the sequence circuit information <NUM> includes type information <NUM> indicating the type such as "circuit", and circuit component information <NUM> and <NUM> indicating information of the circuit components included in each circuit. The circuit definition <NUM> shown in <FIG> is repeated for the number of circuits defined in the user program.

As described above, the sequence circuit information <NUM> includes information of the types of circuit components defined and the variables associated with the respective circuit components for each circuit defined in the sequence program.

Nevertheless, the circuit definition <NUM> shown in <FIG> is an example, and any format may be used. In addition, the sequence circuit information <NUM> may be written in a meta format language such as XML.

The circuit output state provided from the PLC <NUM> to the HMI <NUM> indicates the execution state of the sequence program in the PLC <NUM>. The circuit output state basically includes the value of each variable used by the user program executed in the PLC <NUM>. That is, the circuit output state includes the value of each variable used by the native code <NUM> executed in the processor <NUM>, which is the calculation processing unit of the PLC <NUM>.

Furthermore, when a function or function block is used in the user program executed in the PLC <NUM>, the value of an internal variable may be included. At this time, the value of a simple variable may be used, or a structure, etc. may be used.

The circuit output state provided from the PLC <NUM> to the HMI <NUM> may be updated in a predetermined cycle or each time it is requested.

Next, an example of the interface screen provided by the support device <NUM> according to the present embodiment will be described.

<FIG> is a schematic diagram showing an example of the interface screen <NUM> provided by the support device <NUM> according to the present embodiment. <FIG> shows an example of the interface screen displayed in the stage of executing the transfer processing from the support device <NUM> to the HMI <NUM>.

Referring to <FIG>, in the interface screen <NUM>, a list including a project data item <NUM>, a setting data item <NUM>, a user data item <NUM>, and a sequence circuit information item <NUM> to be transferred to the HMI <NUM> is displayed.

The project data <NUM> item includes a logic or the like for controlling the layout/attribute or display of an object for realizing screen display. The setting data item <NUM> includes a setting value of the HMI <NUM> itself and a setting value with respect to the execution environment. The user data item <NUM> includes authentication information of the user and information defined by the user himself/herself. The sequence circuit information item <NUM> includes information generated from the user program of the PLC <NUM> which is the target for providing the online monitor.

The PLC <NUM> which is the target for transferring the sequence circuit information item <NUM> to the HMI <NUM> may be automatically selected by the support device <NUM> or may be arbitrarily selected by the user.

When the user presses a transfer button <NUM>, the selected data is transferred from the support device <NUM> to the target HMI <NUM>. In the present embodiment, the sequence circuit information for providing the online monitor is transferred in addition to the data for realizing the screen display, etc. on the HMI <NUM>.

In the case where the online monitor of the interpreter system control device is provided, by acquiring the intermediate code executed by the control device, the sequence circuit information can be uniquely restored, and thereby the online monitor can be provided without preparing a special mechanism for the display device.

On the other hand, in the case where the online monitor of the compiler system control device is provided, even if the native code executed by the control device is acquired, it is basically impossible to restore the sequence circuit information, and it is difficult to provide the online monitor.

In contrast thereto, in the control system according to the present embodiment, by using the support device which is an integration tool that provides the PLC tool and the HMI tool, the circuit information of the user program (sequence program) executed by the control device can also be provided when data is transferred to the display device, and thereby the online monitor can be provided easily even for the control device that stores and executes the native code.

The embodiments disclosed here should be considered illustrative in all aspects and not restrictive. The scope of the invention is defined not by the above description but by the appended claims.

Claim 1:
A support device (<NUM>) for a control system (<NUM>) which comprises a control device (<NUM>) adapted to control a control target and a display device (<NUM>) connected to the control device, the support device comprising:
a means (S2) adapted to generate, according to a user operation, a first user program (<NUM>) comprising a sequence program, which is executable in the control device;
a means (S12) adapted to generate a second user program (<NUM>) for realizing a screen display on the display device according to the user operation;
a means (S4) adapted to generate a native code (<NUM>) to be executed by a calculation processing unit of the control device, and sequence circuit information (<NUM>), which is information for visualizing a sequence circuit defined by the sequence program, whereby the sequence circuit is a combination of one or a plurality of circuit components, from the first user program;
a means (S14) adapted to generate an object code (<NUM>) to be executed by a calculation processing unit of the display device from the second user program;
a means (S6) adapted to transfer the native code to the control device; and
a means (S8) adapted to transfer the object code and the sequence circuit information to the display device.