Patent Description:
Currently, a programmable logic controller (hereinafter, referred to as PLC) is widely used as an industrial control device.

The PLC controls various devices connected to the PLC by executing a preset control program.

The control program given to the PLC control is edited by an information processing device such as a PC (personal computer), as disclosed in <CIT>, for example. Such an information processing device is provided with a program (editing program) for creating and editing the control program. <CIT> refers to connection objects or other such data structures facilitate establishing and configuring connections between objects that model components in a process control system. A first set of data structures (e.g., the object connection type structures) identify valid types for component-to-component pairings and the respective roles of each component in the pairing (e.g., parent or child, source or sink). A second set of data structures (e.g., the parameter connection type structures) supply similar information for parameter-to-parameter connections. Together, these data structures can be used, for example, to validate component-to-component connections suggested by the user and to automatically configure parameter-to-parameter connections. Actual connections, both at the component or parameter level, are reflected using parameter overrides within the parameterized object model with which the connection objects are constructed.

For the information processing device provided with the conventional editing program as disclosed in <CIT>, it is necessary to create a new control program for each controller. Further, although it is possible to simply copy one control program in the conventional information processing device, each of a plurality of control programs has to be edited individually. Therefore, even if the same editing is performed on a plurality of control programs, the same editing has to be performed individually for each control program.

As described above, with the conventional information processing device, it may take time and effort to edit a plurality of control programs.

Therefore, the invention is to facilitate the editing for a plurality of control programs.

In an example of the disclosure, an information processing device includes an editing unit and a storage unit. The editing unit edits one or a plurality of pieces of controller data including control programs to be executed by control devices. The storage unit stores a sharing setting table indicating a sharing setting of the control programs respectively included in the plurality of pieces of controller data. When control programs of first controller data and control programs of second controller data included in the plurality of pieces of controller data are set to be shared, the editing unit synchronizes an edited content for the control programs of the first controller data with the control programs of the second controller data.

In this configuration, the edited content of the first controller data is automatically reflected to the second controller data by the sharing setting. The sharing setting does not mean that the control program itself is shared, but means that the contents of a plurality of control programs are always set to be the same. In addition, the synchronization of the control programs is a process of matching the contents of the control programs.

In an example of the disclosure, when the second controller data is created by copying the first controller data, the editing unit performs the following process. If sharing is selected for all the control programs included in the first controller data, the editing unit sets all the control programs included in the second controller data to share with all the control programs included in the first controller data, and stores the sharing setting in the sharing setting table.

In this configuration, controller data with all the control programs set to be shared is easily created, and the sharing setting content is automatically stored.

In an example of the disclosure, when the second controller data is created by copying the first controller data, the editing unit performs the following process. If sharing is selected for the control program, which is already set to be shared, included in the first controller data, the editing unit sets the control program copying the control program, which is already set to be shared, included in the second controller data to share with the control program, which is already set to be shared, included in the first controller data, and stores the sharing setting in the sharing setting table.

In this configuration, controller data reflecting sharing information that is already set is easily created, and the sharing setting content is automatically stored.

In an example of the disclosure, when receiving a change of the sharing setting, the editing unit reflects a changed content in the sharing setting table.

In this configuration, the content of the sharing setting can be changed after copying, and the flexibility in creating controller data is improved.

In an example of the disclosure, when synchronizing the control program, the editing unit synchronizes a variable used in the control program, and sets a content of the variable asynchronous. The synchronization of the variable is to match the variable names. The asynchronization of the contents of the variables is to set a state where the contents of the variables can be set as appropriate respectively.

In this configuration, when the settings are different for the devices to be controlled, the same setting is not made to the control devices to prevent an unintentional malfunction.

In an example of the disclosure, the information processing device includes a display unit displaying an editing screen of the controller data. The editing unit assigns a mark indicating the sharing setting to the control program set to be shared, and displays the mark on the display unit.

In this configuration, the state of the sharing setting for each control program is visually recognized by the programmer easily.

According to the invention, a plurality of control programs can be edited easily.

Hereinafter, embodiments of the invention will be described with reference to the drawings.

First, an example of application of the invention will be described with reference to <FIG> is a functional block diagram of an information processing device according to an embodiment of the invention.

As shown in <FIG>, the information processing device <NUM> includes an editing unit <NUM> and a storage unit <NUM>. The editing unit <NUM> edits project data. The storage unit <NUM> has a project data storage area <NUM> and a sharing setting table <NUM>.

The project data includes one or a plurality of pieces of controller data. The controller data includes one or a plurality of control programs. The sharing setting table <NUM> stores that the control programs respectively included in the plurality of pieces of controller data are set to be shared.

The editing unit <NUM> synchronizes the plurality of pieces of controller data with reference to the sharing setting table <NUM>.

Next, the configuration of the information processing device according to the embodiment of the invention will be described with reference to the drawings. As described above, <FIG> is a functional block diagram of the information processing device according to the embodiment of the invention. <FIG> is a block diagram showing the configuration of a control system to which the information processing device according to the embodiment of the invention is connected. <FIG> is a diagram showing an example of the configuration of data created by the information processing device according to the embodiment of the invention. (A) of <FIG>, (B) of <FIG>, and (C) of <FIG> are diagrams showing an example of the sharing setting table according to the embodiment of the invention.

As shown in <FIG>, the information processing device <NUM> includes the editing unit <NUM>, the storage unit <NUM>, an operational input unit <NUM>, a display unit <NUM>, and a communication control unit <NUM>. The information processing device <NUM> is realized by, for example, a personal computer, etc..

In addition, as shown in <FIG>, the information processing device <NUM> is included in the control system <NUM>. The control system <NUM> includes the information processing device <NUM>, a plurality of control devices <NUM>, <NUM>, and <NUM>, and a plurality of control target devices <NUM>, <NUM>, <NUM>, <NUM>, <NUM>, <NUM>, <NUM>, <NUM>, and <NUM>. The control devices <NUM>, <NUM>, and <NUM> are realized by, for example, a so-called PLC (Programmable Logic Controller). Further, the control target device <NUM> is a device used in a production line such as a sensor, a switch, a lamp, a motor, etc., for example. Nevertheless, the number of the control devices and the number of the control target devices are not limited to the illustration of <FIG> and are set as appropriate according to the control system to be realized.

The control device <NUM> is connected to the control target devices <NUM>, <NUM>, and <NUM> via a control network. The control device <NUM> is connected to the control target devices <NUM>, <NUM>, and <NUM> via a control network. The control device <NUM> is connected to the control target devices <NUM>, <NUM>, and <NUM> via a control network. The information processing device <NUM> is connected to the control devices <NUM>, <NUM>, and <NUM> via a data communication network.

The information processing device <NUM> creates and edits project data PD having the data configuration shown in <FIG>.

As shown in <FIG>, the project data PD has a plurality of pieces of controller data CD1, CD2, and CD3. The number of pieces of controller data included in the project data PD corresponds to the number of the control devices used in the control system <NUM> and is one or more.

Each of the controller data CD1, CD2, and CD3 has configuration data CFD and program data PRGD. The program data PRGD has a plurality of control programs PRG1, PRG2, and PRG3. The number of the control programs included in the program data PRGD corresponds to the number of the controls executed by the control device and is one or more. Further, the number of the control programs included in the program data PRGD may not be the same for all controller programs.

Here, for example, the controller data CD1 corresponds to the control device <NUM>, the controller data CD2 corresponds to the control device <NUM>, and the controller data CD3 corresponds to the control device <NUM>. The configuration data CFD of the controller data CD1 is data that defines the configuration and specification (for example, the number of control target devices, EtherCAT, etc.) of the control system constituted by the control device <NUM> and the control target devices <NUM>, <NUM>, and <NUM>. The configuration data CFD of the controller data CD2 is data that defines the configuration and specification (for example, the number of control target devices, EtherCAT, etc.) of the control system constituted by the control device <NUM> and the control target devices <NUM>, <NUM>, and <NUM>. The configuration data CFD of the controller data CD3 is data that defines the configuration and specification (for example, the number of control target devices, EtherCAT, etc.) of the control system constituted by the control device <NUM> and the control target devices <NUM>, <NUM>, and <NUM>.

Each of the control programs PRG1, PRG2, and PRG3 is a program indicating the control content that the control device executes on the control target device. For example, the control programs PRG1, PRG2, and PRG3 of the program data PRGD of the controller data CD1 are programs indicating the control contents that the control device <NUM> executes on the control target devices <NUM>, <NUM>, and <NUM>. The control programs PRG1, PRG2, and PRG3 of the program data PRGD of the controller data CD2 are programs indicating the control contents that the control device <NUM> executes on the control target devices <NUM>, <NUM>, and <NUM>. The control programs PRG1, PRG2, and PRG3 of the program data PRGD of the controller data CD3 are programs indicating the control contents that the control device <NUM> executes on the control target devices <NUM>, <NUM>, and <NUM>.

As described above, the information processing device <NUM> creates and edits a plurality of pieces of controller data CD1, CD2, and CD3 respectively corresponding to a plurality of control devices as one project data PD with one editing program.

Each component of the information processing device <NUM> specifically has the following configuration.

The editing unit <NUM> includes, for example, a CPU, a RAM, a ROM, etc., and is realized by a device that executes the editing program of the project data, and the editing program. The storage unit <NUM> is realized by a device including a storage medium such as a hard disk, a solid state drive, etc..

The operational input unit <NUM> includes, for example, a keyboard, a mouse, a touch panel, etc. The operational input unit <NUM> receives an operation input from a user such as a programmer, and gives the operation input to the editing unit <NUM>. The editing unit <NUM> creates and edits the project data PD according to the operation content.

The display unit <NUM> includes, for example, a liquid crystal display, etc. The display unit <NUM> displays the editing screen generated by the editing unit <NUM>.

The communication control unit <NUM> includes, for example, a so-called network adapter, etc. The communication control unit <NUM> is connected to the data communication network shown in <FIG> and outputs the controller data CD1, CD2, and CD3 of the project data PD from the editing unit <NUM> to the control devices <NUM>, <NUM>, and <NUM>.

The storage unit <NUM> has the project data storage area <NUM> and the sharing setting table <NUM>. The project data storage area <NUM> stores the project data PD including the plurality of pieces of controller data CD1, CD2, and CD3.

The sharing setting table <NUM> stores a shared state of the control programs PRG included in each of the controller data CD1, CD2, and CD3. The shared state does not mean that the control program itself is shared and held between the plurality of pieces of controller data, but means a state where the content of the target control program is always the same between the plurality of pieces of controller data. For example, the mark ∘ in (A) of <FIG>, (B) of <FIG>, and (C) of <FIG> and the mark ▲ in (B) of <FIG> indicate the shared state, and such a relationship is stored in the sharing setting table <NUM> as data.

In such a configuration, the editing unit <NUM> refers to the sharing setting table <NUM> to create and edit the plurality of pieces of controller data CD1, CD2, and CD3 constituting the project data PD. For example, when the content of the control program is changed, the editing unit <NUM> refers to the sharing setting table <NUM> and synchronizes the control program in the shared state with the changed control program. Here, the process of synchronizing the control programs is a process of matching the content of the control program in the shared state with the content of the control program changed by the editing operation. The process of matching the contents corresponds to the "synchronizing" process of the invention.

In the case of (A) of <FIG>, when the control program Program0 of the controller data Controller1 (CD1) is changed, the control program Program0 of the controller data Controller2 (CD2) and the control program Program0 of the controller data Controller3 (CD3) are also changed to the same content.

However, in the cases of (B) of <FIG> and (C) of <FIG>, even if the control program Program2 of the controller data Controller1 (CD1) is changed, the control program Program2 of the controller data Controller2 (CD2) and the control program Program2 of the controller data Controller3 (CD3) are not changed.

Further, in the case of (B) of <FIG>, when the control program Program2 of the controller data Controller2 (CD2) is changed, the control program Program2 of the controller data Controller3 (CD3) is changed to the same content, but the control program Program2 of the controller data Controller1 (CD1) is not changed.

Thus, if the control program of one controller data is changed, the information processing device <NUM> automatically changes the content of the control program of other controller data which needs to have the same content. Therefore, it is necessary to include control programs having the same contents in the plurality of controller programs, and when these control programs are changed, the programmer can easily edit the control programs of a plurality of pieces of controller data.

A specific editing process executed by the editing unit <NUM> will be described with reference to the drawings.

<FIG> is a flowchart showing an example of the process of creating the project data.

As shown in <FIG>, the editing unit <NUM> receives an instruction to create project data and an instruction to create controller data from the operational input unit <NUM>, and creates the controller data (S11). Then, the editing unit <NUM> creates configuration data and program data as the controller data (S12).

(A) of <FIG> is a diagram showing an example of the editing screen. (B) of <FIG> is an enlarged diagram showing an example of a multi-view explorer window in the editing screen.

When the editing program is executed, the editing screen <NUM> as shown in (A) of <FIG> is formed by the editing unit <NUM>, and the editing screen <NUM> is displayed on the display unit <NUM>. The editing screen <NUM> has a program editing window <NUM>, a multi-view explorer window <NUM>, and a tool window <NUM>. The program editing window <NUM> is arranged at the center of the editing screen <NUM>, and the multi-view explorer window <NUM> and the tool window <NUM> are arranged on both sides of the program editing window <NUM>. In the program editing window <NUM>, editing contents such as a control program, configuration data, etc. are displayed. In the multi-view explorer window <NUM>, the configuration, hierarchy, etc. of the data and program to be edited are displayed. Although not shown, various tools for editing are displayed in the tool window <NUM>.

As shown in (B) of <FIG>, a controller name window <NUM> and a configuration tree <NUM> are displayed in the multi-view explorer window <NUM>. The controller name window <NUM> displays the name of the currently edited controller program and the name of the editable controller program. In (B) of <FIG>, only the name of the currently edited controller program is displayed. The configuration data, the configuration of the program data, and the tree structure included in the controller program displayed in the controller name window <NUM> are displayed in the configuration tree.

<FIG> is a flowchart showing an example of a process of copying controller data (creating a derived device). (A) of <FIG> is an enlarged diagram of the editing screen showing a state of instructing the process of copying controller data (creating a derived device), (B) of <FIG> is a diagram showing a state of selecting a tab for sharing all, and (C) of <FIG> is a diagram showing a state of selecting a tab for inheriting sharing setting.

As shown in <FIG>, the editing unit <NUM> receives an instruction to copy controller data, that is, an instruction to create a derived device from the operational input unit <NUM> (S21). For example, as shown in (A) of <FIG>, if a tab <NUM> for creating a derived device is selected by a predetermined operation input (for example, right-clicking and selecting with a mouse) when the controller data Controller1 is in the editing state, the editing unit <NUM> receives an instruction to copy controller data, that is, an instruction to create a derived device. Further, as shown in (B) of <FIG> and (C) of <FIG>, when the type of sharing is selected by a newly displayed tab <NUM> for selecting sharing, the editing unit <NUM> also accepts this content. For example, by selecting the tab <NUM> of "share all" as shown in (B) of <FIG>, the editing unit <NUM> accepts that all the control programs included in the controller data to be edited are the targets to be shared. On the other hand, by selecting the tab <NUM> of "inherit sharing setting" as shown in (C) of <FIG>, the editing unit <NUM> accepts that only the control program, which is already in the shared state, included in the controller data to be edited is the target to be shared.

The editing unit <NUM> copies the controller data to be edited and creates new controller data according to the instruction to copy controller data, that is, the instruction to create a derived device (S22). The editing unit <NUM> assigns a name different from the controller data to be edited to the newly created controller data. Here, for example, the controller data to be edited is Controller1, whereas the copied controller data is assigned Controller2. The editing unit <NUM> stores the copied controller data in the project data storage area <NUM> of the storage unit <NUM>.

The editing unit <NUM> determines a sharing inheritance condition according to the selected content of the tab <NUM> for selecting sharing (S23).

If the sharing inheritance condition is "share all" (S23: ALL), the editing unit <NUM> stores in the sharing setting table <NUM> that all the control programs of the controller data to be edited (the controller data of the copy source) and all the control programs of the controller data created by copying are in the shared state (S24). For example, it corresponds to the cases of copying from the controller data Controller1 to the controller data Controller2, copying from the controller data Controller1 to the controller data Controller3, and copying from the controller data Controller2 to the controller data Controller3 shown in (A) of <FIG>, and copying from the controller data Controller2 to the controller data Controller3 shown in (B) of <FIG>. Then, corresponding to these cases, the editing unit <NUM> stores in the sharing setting table <NUM> information indicating that they are in a shared relationship as indicated by the mark ∘ in (A) of <FIG> and the mark ▲ in (B) of <FIG>.

If the sharing inheritance condition is "inherit sharing setting" (S23: SEL), the editing unit <NUM> stores in the sharing setting table <NUM> that the control program that has already been set in the shared state in the controller data to be edited (the controller data of the copy source) and the control program that copies the control program in the controller data created by copying (the control program that is already in the shared state in the copy source) are in the shared state (S25). For example, it corresponds to the cases of copying from the controller data Controller2 to the controller data Controller3 shown in (B) of <FIG>, and copying from the controller data Controller1 to the controller data Controller3 and copying from the controller data Controller2 to the controller data Controller3 shown in (C) of <FIG>. Then, corresponding to these cases, the editing unit <NUM> stores in the sharing setting table <NUM> information indicating that they are in a shared relationship as indicated by the mark ∘ in (B) of <FIG> and (C) of <FIG>.

Thereby, the information processing device <NUM> can maintain the shared state of the control programs of a plurality of pieces of controller data. Further, the setting of the shared state is automatically stored and the programmer does not need to individually input the setting of sharing.

At this time, in the copied control program, each variable (for example, global variable) is copied to be the same as that of the control program of the copy source (synchronized), but the content of the variable (for example, value) is not copied (asynchronous). Thereby, in the case where the control target device is similar but the content of the variable has to be changed, it is possible to prevent the content of the same variable from being set unintentionally. As a result, a malfunction of the control target device is prevented.

The shared state is also displayed in the multi-view explorer window <NUM>. (A) of <FIG> and (B) of <FIG> are enlarged diagrams of the multi-view explorer window when a control program in the shared state is present. (A) of <FIG> shows a case where a plurality of control programs Program0, Program1, and Program2 in the controller data Controller1 are in the shared state, and (B) of <FIG> shows a case where a control program Program0 in the controller data Controller1 are in the shared state.

As shown in (A) of <FIG>, when the control programs Program0, Program1, and Program2 are in the shared state, the editing unit <NUM> displays sharing marks <NUM> at the positions of the control programs Program0, Program1, and Program2 in the configuration tree <NUM>. As shown in (B) of <FIG>, when the control program Program0 is in the shared state, the editing unit <NUM> displays the sharing mark <NUM> at the position of the control program Program0 in the configuration tree <NUM>.

By displaying such a sharing mark <NUM>, the programmer can easily recognize the control program in the shared state with certainty.

<FIG> is a flowchart showing an example of a process of synchronizing control programs between controller data.

The editing unit <NUM> receives an instruction to edit the control program of the controller data from the operational input unit <NUM>, and edits the control program of the controller data (S31). The editing unit <NUM> refers to the sharing setting table <NUM> to detect whether the control program being edited is in the shared state (S32). If the control program being edited is in the shared state (S33: YES), the editing unit <NUM> synchronizes the control program of other controller data in the shared state with the control program being edited based on the sharing setting table <NUM> (S34). Here, the synchronizing process is to match the content of the control program of other controller data in the shared state with the content of the control program being edited.

On the other hand, if the control program being edited is not in the shared state (S33: NO), the editing unit <NUM> does not perform synchronization.

(A) of <FIG>, (B) of <FIG>, (C) of <FIG>, and (D) of <FIG> are diagrams showing change of the content of a control program when synchronization is performed. (A) of <FIG> shows a state before editing the control program of the controller data Controller1, and (B) of <FIG> shows a state where the controller data Controller2 has been created by copying. (C) of <FIG> shows a state after editing the control program of the controller data Controller1, and (D) of <FIG> shows a state where the controller data Controller2 after synchronization has been created.

The editing unit <NUM> copies the controller data Controller1 to create the controller data Controller2, and thereby, as shown in (A) of <FIG> and (B) of <FIG>, the same control programs are configured in the controller data Controller1 and the controller data Controller2. At this time, if sharing is set, the content thereof is stored in the sharing setting table <NUM>.

The editing unit <NUM> edits the control program of the controller data Controller1 in this state. For example, as shown in (C) of <FIG>, the content of the control program of the controller data Controller1 is added.

The editing unit <NUM> detects that the control program of the controller data Controller1 is in the shared state, and synchronizes the control program of the controller data Controller2 in the shared state with the control program of the controller data Controller1. That is, the editing unit <NUM> automatically changes the content of the control program of Controller2 to the content of the control program of the controller data Controller1. Thus, as shown in (D) of <FIG>, the control program of the controller data Controller2 automatically matches the control program of the controller data Controller1 shown in (C) of <FIG>.

When the same control program is used in a plurality of pieces of controller data, by executing such processing, if the control program of one controller data is edited, the control program of other controller data in the shared state is updated automatically. Therefore, the programmer can easily edit a plurality of pieces of controller data.

(A) of <FIG> is an enlarged diagram showing the multi-view explorer window when the sharing setting is changed. (B) of <FIG> is an enlarged diagram of the sharing setting window.

As shown in (A) of <FIG>, if a tab <NUM> for changing the sharing setting is selected by a predetermined operation input (for example, right-clicking and selecting with a mouse) when the controller data Controller1 is in the editing state, the editing unit <NUM> displays a sharing setting window <NUM> as shown in (B) of <FIG>.

In the sharing setting window <NUM>, the program, which is the sharing target, in the controller data being edited is displayed as a "sharing target". In addition, a table <NUM> for setting the sharing destination is displayed in the sharing setting window <NUM>. The table <NUM> has a controller name (name of the controller program) and a check box for selecting whether to enter the shared state.

When an instruction to check the check box is received, the editing unit <NUM> sets the control program of the controller data which is the sharing target and the control program of the controller data of the sharing destination to the shared state. For example, in the case of (B) of <FIG>, the editing unit <NUM> sets the control program Program2 of the controller data Controller1 and the control program Program2 of the controller data Controller2 to the shared state.

Further, when an instruction to cancel the check in the check box is received, the editing unit <NUM> sets the control program of the controller data which is the sharing target and the control program of the controller data of the sharing destination to cancel the shared state. For example, in the case corresponding to (B) of <FIG>, the editing unit <NUM> sets the control program Program2 of the controller data Controller1 and the control program Program2 of the controller data Controller2 to cancel the shared state.

By using such a configuration and processing, the sharing setting can be changed as appropriate. Thereby, the programmer can edit a plurality of pieces of controller data freely.

The above illustrates an embodiment of setting the controller data for each control device. However, the invention can also be used for editing controller data when one of a plurality of pieces of controller data is selectively set according to the situations for one control device.

The embodiments of the invention described above are merely examples of the invention in every respect.

Claim 1:
An information processing device (<NUM>), characterized in that, comprising:
an editing unit (<NUM>) editing one or a plurality of pieces of controller data (CD1, CD2, CD3) including control programs (PRG1, PRG2, PRG3) to be executed by control devices (<NUM>, <NUM>, <NUM>); and
a storage unit (<NUM>) storing a sharing setting table (<NUM>) indicating a sharing setting of the control programs (PRG1, PRG2, PRG3) respectively included in the plurality of pieces of controller data (CD1, CD2, CD3),
wherein when control programs (PRG1, PRG2, PRG3) of first controller data (CD1) and control programs (PRG1, PRG2, PRG3) of second controller data (CD2) included in the plurality of pieces of controller data (CD1, CD2, CD3) are set to be shared, the editing unit (<NUM>) synchronizes an edited content for the control programs of the first controller data (CD1) with the control programs of the second controller data (CD2), and
when synchronizing the control program (PRG1, PRG2, PRG3), the editing unit (<NUM>) synchronizes a variable used in the control program (PRG1, PRG2, PRG3) by copying a variable name of the variable used in the control program of the second controller data (CD2) to be the same as that of the control program of the first controller data (CD1), and sets a content of the variable by not copying a value of the variable used in the control program of the second controller data (CD2) to be the same as that of the control program of the first controller data (CD1).