Program creation support device

The integrated development environment for PLCs addresses inefficiencies in separate user program and display screen development by combining non-Web and Web application environments, enhancing efficiency and maintainability.

JP2025100865AActive Publication Date: 2025-07-03KEYENCE CORP
View PDF 6 Cites 0 Cited by

Patent Information

Application Number
JP2025071377
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2025-04-23
Publication Date
2025-07-03
Estimated Expiration
2041-04-01

AI Technical Summary

Technical Problem

Existing program creation support devices for PLCs have separate software development environments for user programs and display screens, leading to poor development efficiency and inefficiencies in monitoring and controlling industrial machines.

Method used

An integrated development environment that combines a non-Web application-based development environment for user programs and a Web application-based development environment for display screens, allowing seamless integration and cooperation between the two environments.

Benefits of technology

Enhances development efficiency by allowing simultaneous editing and monitoring of user programs and display screens, reducing user burden and improving maintainability and reusability of components.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025100865000001_ABST
    Figure 2025100865000001_ABST
Patent Text Reader

Abstract

To provide a program creation support device having a comprehensive development environment into which a development environment for developing a user program to be executed in a PLC and a display screen development environment are integrated.SOLUTION: A program creation support device includes provision means that provides a comprehensive development environment into which a first development environment of a non Web application base that supports development of a user program to be transferred to and executed in a programmable logic controller, and a second development environment of a Web application base that supports development of a display screen which displays a symbol value collected from a symbol used according to the user program in the programmable logic controller, by generating the display screen as a Web page described with data describing a structure, data describing ornaments, and a code describing dynamic processing are integrated.SELECTED DRAWING: Figure 4
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to a program creation support device.

Background Art

[0002] A programmable logic controller (PLC) is a controller that controls industrial machines such as manufacturing equipment, conveying devices, and inspection devices in factory automation. The PLC controls various expansion units and controlled devices by executing a user program such as a ladder program created by a programmer. In order to monitor the operation of the PLC, it has been proposed to collect the data held by the PLC and monitor the data in real time on an HMI (human machine interface: display device) connected to the outside of the PLC (Patent Document 1).

Prior Art Documents

Patent Documents

[0003]

Patent Document 1

Summary of the Invention

Problems to be Solved by the Invention

[0004] By the way, the HMI of the PLC is configured to display bitmap data, and the display program and display settings for the HMI were created by a program creation support device using dedicated software. The program creation support device is realized by a personal computer (PC) or an industrial personal computer (IPC). On the other hand, it would be convenient to be able to access the PLC from a PC located away from the PLC and monitor the data of the PLC in real time instead of the HMI installed near the PLC. In particular, if the data of the PLC can be displayed by web-based technology, any PC equipped with a web browser can be used as a real-time monitoring device for the PLC. Such a monitoring device or display device will be referred to as a WebHMI.

[0005] By the way, the program creation support device has a PC application-based software development environment for creating user programs such as ladder programs executed by a PLC. In addition, the program creation support device may separately install a software development environment for an HMI or a WebHMI. Conventionally, these two software development environments have been independent, and users have individually started them to develop software for a PLC or a WebHMI, resulting in poor development efficiency. Therefore, an object of the present invention is to provide a program creation support device including an integrated development environment in which a development environment for developing a user program executed by a PLC and a development environment for a display screen are integrated.

Means for Solving the Problem

[0006] The present invention is, for example, an execution engine that uses symbols, which are devices or variables, according to a control program that is a user program, and a Web server that provides the display component to the browser in order to realize a WebHMI on an external display device having a browser according to the display component that is drawing data, for a programmable logic controller, communication means for communicating with the programmable logic controller, A first development environment based on a non-Web application for assisting in the development of the user program transferred to and executed by the programmable logic controller via the communication means, and a programmable logic controller according to the display component transferred as drawing data to the programmable logic controller via the communication means and provided from the Web server to the browser. A providing means for providing an integrated development environment that integrates a second development environment based on a Web application that supports the development of the display screen by generating a Web page described by data for describing the structure, data for describing the decoration, and code for describing dynamic processing. A program creation support device characterized by having the above is provided.

Effect of the Invention

[0007] According to the present invention, there is provided a program creation support device including an integrated development environment that integrates a development environment for developing a user program executed by a PLC and a development environment for a display screen.

Brief Description of the Drawings

[0008]

Figure 1

Figure 2

Figure 3

Figure 4

Figure 5

Figure 6

Figure 7

Figure 8

Figure 9

Figure 10

Figure 11

Figure 12

Figure 13

Figure 14

Figure 15

Figure 16

Figure 17

Figure 18

Figure 19

Figure 20

Figure 21

Modes for Carrying Out the Invention

[0009] Hereinafter, embodiments will be described in detail with reference to the accompanying drawings. It should be noted that the following embodiments do not limit the invention according to the claims, and not all combinations of the features described in the embodiments are essential for the invention. Two or more of the features described in the embodiments may be arbitrarily combined. Also, the same or similar configurations are assigned the same reference numerals, and duplicate explanations are omitted. Small letters of the alphabet may be appended to the end of the reference signs indicating the same or similar elements. When matters common to a plurality of elements are described, the small letters of the alphabet are omitted.

[0010] <System Configuration> First, to better understand a programmable logic controller (PLC, which may also be simply referred to as a programmable controller) for those skilled in the art, the configuration and operation of a general PLC will be described.

[0011] FIG. 1 is a conceptual diagram showing a configuration example of a programmable logic controller system according to an embodiment of the present invention. As shown in FIG. 1, this system includes a PC 2a for editing a user program such as a ladder program, and a PLC (programmable logic controller) 1 for comprehensively controlling various control devices installed in a factory or the like. PC is an abbreviation for personal computer. The user program may be created using a graphical programming language such as a motion program in a flowchart format such as a ladder language or SFC (sequential function chart), or may be created using a high-level programming language such as the C language. Hereinafter, for convenience of explanation, the user program executed in the basic unit 3 is assumed to be a ladder program. The PLC 1 includes a basic unit 3 with a built-in CPU and one or more expansion units 4. One or more expansion units 4 are detachable from the basic unit 3.

[0012] The basic unit 3 is provided with a display unit 5 and an operation unit 6. The display unit 5 is a display device that displays the operation status of each expansion unit 4 attached to the basic unit 3. The display unit 5 switches the display content according to the operation content of the operation unit 6. The display unit 5 usually displays the current value (device value) of the devices in the PLC 1 and error information generated in the PLC 1. A device is a name referring to an area on the memory provided for storing device values (device data), and may be called a device memory. The device value is information indicating the input state from the input device, the output state to the output device, and the states of internal relays (auxiliary relays), timers, counters, data memories, etc. set in the user program. The types (symbol types) of device values are bit type and word type. A bit device stores a 1-bit device value. A word device stores a 1-word device value. The operation unit 6 includes buttons, switches, etc. for inputting user instructions to the basic unit 3. The PLC 1 may be configured to handle variables in addition to devices. Devices and variables are called symbols, and the current value of a symbol is called a symbol value.

[0013] The expansion unit 4 is prepared to expand the functions of the PLC 1. A field device (controlled device) 10 corresponding to the function of each expansion unit 4 may be connected to each expansion unit 4, whereby each field device 10 is connected to the basic unit 3 via the expansion unit 4. The field device 10 may be an input device such as a sensor or a camera, or an output device such as an actuator. Also, a plurality of field devices may be connected to one expansion unit 4.

[0014] For example, the expansion unit 4b may be a positioning unit that drives a motor (field device 10) to position a workpiece, or a counter unit. The counter unit counts signals from an encoder (field device 10) such as a manual pulsar.

[0015] The expansion unit 4a is a data collection unit that collects data to be collected from the basic unit 3 and the expansion unit 4b by executing a data utilization program, which is a user program, performs data processing on the collected data to create display target data, and creates display data for displaying the dashboard on the display unit 7 or the PC 2. The basic unit 3 may also be called a CPU unit. Note that the system including the PLC 1 and the PC 2 may be called a programmable logic controller system.

[0016] The PC 2a is a computer mainly operated by a programmer. On the other hand, the PC 2b is a computer operated by a person in charge of the site or the like. The PC 2a may be called a program creation support device (setting device). The PC 2 is, for example, a portable notebook type, tablet type personal computer or smartphone, and is an external computer provided with a display unit 7 and an operation unit 8. The external computer is a computer outside the PLC 1. An example of a user program for controlling the PLC 1, a ladder program, is created using the PC 2a. The created ladder program is converted into a mnemonic code in the PC 2a. The PC 2 is connected to the basic unit 3 of the PLC 1 via a communication cable 9 such as a USB (Universal Serial Bus) cable. For example, the PC 2a sends the ladder program converted into a mnemonic code to the basic unit 3. The basic unit 3 converts the ladder program into a machine code and stores it in the memory provided in the basic unit 3. Here, the mnemonic code is transmitted to the basic unit 3, but the present invention is not limited to this. For example, the PC 2a may convert the mnemonic code into an intermediate code and send the intermediate code to the basic unit 3.

[0017] Although not shown in FIG. 1, the operation unit 8 of the PC2 may include a pointing device such as a mouse connected to the PC2. Further, the PC2 may be configured to be detachably connected to the basic unit 3 of the PLC1 via another communication cable 9 other than the USB cable. Further, the PC2 may be connected to the basic unit 3 of the PLC1 by wireless communication without using the communication cable 9.

[0018] The HMI (Human Machine Interface) 16 is a display device that reads and displays information stored in the devices or buffers of the PLC1. The HMI 16 may have, for example, a touch panel type input device. When the HMI 16 is equipped with a web browser, the HMI 16 functions as a WebHMI.

[0019] <Program Creation Support Device> FIG. 2 is a block diagram for explaining the electrical configuration of the PC2. As shown in FIG. 2, the PC2 includes a CPU 11, a display unit 7, an operation unit 8, a storage device 12, and a communication unit 13. The display unit 7, the operation unit 8, the storage device 12, and the communication unit 13 are each electrically connected to the CPU 11. The storage device 12 includes a RAM, a ROM, an HDD, an SSD, and may further include a removable memory card. The CPU is an abbreviation for a central processing unit. The ROM is an abbreviation for a read-only memory. The RAM is an abbreviation for a random access memory. The HDD is an abbreviation for a hard disk drive. The SSD is an abbreviation for a solid state drive.

[0020] The memory device 12 stores an integrated development environment program 14a and a web browser program 14d. The integrated development environment program 14a provides an integrated development environment that integrates a PLC development environment for supporting the development of a user program (e.g., ladder program) transferred to and executed by the PLC1, and a WebHMI development environment for supporting the development of a display screen that displays symbol values collected from symbols (e.g., devices, variables) used when executing the user program in the PLC1. When the user of the PC2a causes the integrated development environment program 14a to be executed by the CPU11, the integrated development environment is realized. The PLC development environment is realized by a PC application program 14b. The PC application program 14b is a program that depends on a PC operating system (OS) such as win32. The PC application program 14b may be any program other than a web application-based program, for example, a program that does not depend on the OS. The WebHMI development environment is realized by a web application program 14c. Since the web application program 14c is a web application-based program, it is a program that does not depend on the OS. Therefore, the web application program 14c can be executed by either an embedded browser provided in the integrated development environment program 14a or a general-purpose web browser. The web browser program 14d is a general-purpose browser for causing the CPU11 to function as a web browser.

[0021] In the integrated development environment 50, the user edits the project data 70 by operating the operation unit 8. The project data 70 includes one or more user programs (e.g., ladder programs), configuration information of the basic unit 3 and the expansion unit 4, drawing data of the WebHMI, a data utilization program executed by the expansion unit 4a, symbol definition information, and the like. The configuration information includes the connection positions of a plurality of expansion units 4 with respect to the basic unit 3, information indicating functions provided in the basic unit 3 (e.g., communication function and positioning function), and information indicating functions of the expansion unit 4 (e.g., photographing function). The drawing data is a group of display components for realizing the WebHMI, and is realized by markup data (e.g., HTML data) describing the front-end structure, style sheet data (e.g., CSS data) describing decoration, and code (e.g., JavaScript (registered trademark) code) describing dynamic processing. Note that the front-end refers to the part directly visible to the user in a web page, web service, and web application. The style sheet data for describing decoration may be provided, for example, in a file format. In this case, the style sheet data may be called by a description for calling an external style sheet data file within the markup data for describing the structure. The code for describing dynamic processing may be provided, for example, in a file format. In this case, the code for describing dynamic processing may be called by a description for calling an external code file within the markup data for describing the structure. A front-end in a form that can call an external style sheet data file or an external code file and use them has high reusability and maintainability, and for example, general-purpose front-end components can be used. By adopting such a general-purpose and highly reusable web drawing technology, components can be reused in the development of WebHMI and the like, and the maintainability of WebHMI and the like is also improved. Hereinafter, the drawing data is referred to as display components. The data utilization program includes programs for collecting control data (such as device values) in the PLC 1, processing data, and creating data to be passed to the WebHMI.

[0022] Editing the project data 70 includes creating and changing (re - editing) the project data 70. The user reads out the project data 70 stored in the storage device 12 as needed, and changes the project data 70 using the integrated development environment program 14a.

[0023] The communication unit 13 communicates with the basic unit 3 via the communication cable 9a. The CPU 11 transfers the project data 70 to the basic unit 3 via the communication unit 13. The communication unit 13 communicates with the extension unit 4a via the communication cable 9b. The CPU 11 transfers the project data 70 to the extension unit 4a via the communication unit 13. Note that the basic unit 3 may transfer the data required by the extension unit 4a among the project data 70 to the extension unit 4a.

[0024] <plc> FIG. 3 is a block diagram for explaining the electrical configuration of the PLC 1. As shown in FIG. 3, the basic unit 3 includes a CPU 31, a display unit 5, an operation unit 6, a storage device 32, and a communication unit 33. The display unit 5, the operation unit 6, the storage device 32, and the communication unit 33 are each electrically connected to the CPU 31. The storage device 32 may include a RAM, a ROM, a memory card, etc. The storage device 32 has a plurality of storage areas such as a device unit 34 and a project storage unit 35. The device unit 34 has bit devices, word devices, etc., and each device stores a device value. The project storage unit 35 stores the project data 70 input from the PC 2a. As shown in FIG. 3, the basic unit 3 and the extension unit 4 are connected via a unit internal bus 19 which is a kind of extension bus. Note that the communication function related to the unit internal bus 19 is implemented in the CPU 31, but may also be implemented as a part of the communication unit 33. The communication unit 33 may have a network communication circuit. The CPU 31 receives the project data 70 from the PC 2a via the communication unit 33.

[0025] Here, a supplementary explanation will be given for the unit internal bus 19. This unit internal bus 19 is a communication bus used for input / output refresh. Input / output refresh is a process of updating device values between the basic unit 3 and the extension unit 4. Input / output refresh is executed every time the ladder program is executed once (that is, every scan).

[0026] The expansion unit 4 is equipped with a CPU 41 and a memory 42. The CPU 41b of the expansion unit 4b controls the field device 10 according to an instruction (device value) from the basic unit 3 stored in the device. Also, the CPU 41b stores the control result of the field device 10 in a device called a buffer memory. The control result stored in the device is transferred to the basic unit 3 by input / output refresh. Also, the control result stored in the device is transferred to the basic unit 3 according to a read instruction from the basic unit 3 even at a timing different from the input / output refresh. The memory 42 includes a RAM, a ROM, etc. In particular, a storage area used as a buffer memory is secured in the RAM. The memory 42 may have a buffer for temporarily holding data (e.g., still image data or moving image data) acquired by the field device 10.

[0027] The CPU 41a of the expansion unit 4a that functions as a data utilization unit communicates with the PC 2a via the communication unit 43 and the cable 9b. The data utilization unit is an expansion unit that executes a data utilization program. The CPU 41a stores the data utilization program received from the PC 2a and its setting data in the memory 42a. The CPU 41a executes the data utilization program according to the setting data, collects device values, and creates display data for display on the WebHMI. The CPU 41a communicates with the PC 2b via the communication unit 43 and the cable 9b. The CPU 41a transmits the display data of the WebHMI to the PC 2b. Thereby, the PC 2b displays a WebHMI including various data regarding the PLC 1.

[0028] The HMI 16 may also be connected to the communication unit 43 and communicate with the CPU 41a via the communication unit 43. The HMI 16 receives display data from the CPU 41a and displays the display data as a WebHMI.

[0029] FIG. 4 is a diagram for explaining functions realized by the CPU 11 of the PC 2a. The integrated development environment 50 is a function realized by the CPU 11 executing the integrated development environment program 14a. The integrated development environment 50 has a PLC development environment 51 and a Web HMI development environment 61. The PLC development environment 51 is realized by the CPU 11 executing the PC application program 14b. The Web HMI development environment 61 is realized by the CPU 11 (embedded browser 62) executing the Web application program 14c. The embedded browser 62 has various functions (execution environments for HTML, CSS, and JavaScript (R)) required for executing the Web application program 14b. The Web application program 14b is a collection of display components that are transmitted from a Web server to a Web browser and are required for displaying a Web page in the Web browser.

[0030] The PLC development environment 51 has an editor section 52a that supports the creation of control programs 71a executed in the basic unit 3 and expansion unit 4b, data utilization programs 71b executed in the expansion unit 4a, symbol definitions 72, display components 73 that implement WebHMI, configuration information 74 of the PLC 1, etc. The mode switching section 53a switches the operation mode of the integrated development environment 50 (e.g., editor mode, monitor mode, online edit mode, simulator mode, simulator edit mode) according to a user instruction from the operation section 8. In particular, the mode switching section 53a manages the operation mode of the PLC development environment 51. The mode switching section 53a switches the operation mode of the PLC development environment 51 based on a user operation and requests the WebHMI development environment 61 to synchronize the operation mode (mode transition request). Also, when the mode switching section 53a receives a synchronization request (mode transition request) for the operation mode of the WebHMI development environment 61 from the mode switching section 53b of the WebHMI development environment 61, it switches the operation mode of the PLC development environment 51 according to this request. Thereby, the operation mode of the PLC development environment 51 and the operation mode of the WebHMI development environment 61 are synchronized. The editor mode is a mode in which the project data 70 of the PLC 1 is edited without connecting the PC 2a to the PLC 1. The monitor mode is a mode in which the state of the PLC 1 can be monitored in real time while the PC 2a is connected to the PLC 1. The online edit mode is a mode in which the state of the PLC 1 can be monitored in real time while the PC 2a is connected to the PLC 1, and furthermore, the project data 70 can be edited and updated, and the updated project data 70 can be transferred to the PLC 1. The simulator mode is a mode in which the operation of the WebHMI by the control program 71a, data utilization program 71b, and display component 73 can be simulated without connecting the PC 2a to the PLC 1. The simulator edit mode is a mode in which the project data 70 can be edited while simulating the operation of the WebHMI by the control program 71a, data utilization program 71b, and display component 73.The project management department 54 stores the project data 70 edited by the editor department 52a etc. in the storage device 12, exports the project data 70 from the storage device 12, or imports the project data 70. In a plurality of production lines set in the factory that manufactures products, there may be a plurality of PLCs 1 with the same configuration or similar configurations operating. Exporting and importing are used to divert the project data 70 between these plurality of PLCs 1. The transfer unit 55 transfers the project data 70 to the PLC 1 according to a user instruction input through the operation unit 8. The cooperation unit 56a communicates with the cooperation unit 56b of the WebHMI development environment 61 through the communication processing unit 58b of the Web server 60a and the WebHMI development environment 61, and cooperates regarding the editing process of the project data 70. Also hereinafter, the PLC development environment 51 and the WebHMI development environment 61 communicate with each other through the Web server 60a and the communication processing unit 58b. The communication interfaces of the Web server 60a and the communication processing unit 58b are Web APIs (Web application programming interfaces). The cooperation unit 56b transmits a part of the characters or words input in the editor unit 52b to the cooperation unit 56a. At this time, the cooperation unit 56b may transmit a request for obtaining candidates of words to be input to the cooperation unit 56a, or may use the transmission of a part of the input characters or words as the transmission of a request for obtaining candidates of words to be input. The cooperation unit 56a searches the symbol definition 72 by the search unit 57 for a part of the received word, and transmits candidates of words to be input to the cooperation unit 56b. The cooperation unit 56b passes the word candidates to the editor unit 52b, and the editor unit 52b displays a list of word candidates. The search unit 57 executes a search request or a replacement request for a character string from the editor units 52a, 52b. One search unit 57 is provided in the integrated development environment 50, and this search unit 57 is commonly used by the PLC development environment 51 and the WebHMI development environment 61. The communication processing unit 58a is a function of communicating with the PLC 1 via the communication unit 13, and transmits and receives communication frames according to a predetermined communication protocol.The protocol conversion unit 59a converts the information passed from the Web server 60a into a communication frame according to the communication protocol of the communication processing unit 58a, or converts the communication frame passed from the communication processing unit 58a and transfers it to the Web server 60a. In this way, the protocol conversion unit 59a performs encapsulation and decapsulation of information. When the Web server of the expansion unit 4a of the PLC1 provides a WebHMI, the Web browser 64 accesses the Web server of the PLC1 via the communication unit 13. For example, the Web browser 64 communicates with the Web server of the expansion unit 4a via a communication cable 9b that connects the communication unit 13 and the communication unit 43. The Web browser 64 accesses the Web server of the PLC1, obtains the display components 73 of the WebHMI, and draws and displays the WebHMI on the display unit 7 according to the display components 73. Note that the Web browser 64 may be provided in the PC2b. The embedded browser 62 incorporated in the integrated development environment 50 accesses the Web server 60a. For example, the embedded browser 62 accesses the Web server 60a via the communication processing unit 58b. The Web server 60a accesses the Web server of the PLC1 via the protocol conversion unit 59a and the communication processing unit 58a, obtains the display components 73 of the WebHMI, and passes them to the embedded browser 62. For example, the Web server 60a communicates with the Web server of the PLC1 via a communication cable 9a that connects the communication unit 13 and the communication unit 33. The embedded browser 62 draws and displays the WebHMI on the display unit 7 according to the display components 73. The display component 73 has symbol reference information 76a. The symbol reference information 76a holds identification information of symbols displayed on the display component 73 and the like.

[0031] In the WebHMI development environment 61, the editor unit 52b edits the display components 73 of the WebHMI according to the user instructions input from the operation unit 8. Note that the editor unit 52b holds the in - editing display component 75, which is the data during the editing of the display component 73, in the storage device 12. When the editor unit 52b completes the editing related to the WebHMI, the cooperation unit 56b uploads the in - editing display component 75 via the communication processing unit 58b and the Web server 60a. The Web server 60a passes the in - editing display component 75 and the save request to the cooperation unit 56a, and the cooperation unit 56a passes this to the project management unit 54. The project management unit 54 writes the in - editing display component 75 as the display component 73 into the project data 70 according to the save request. The in - editing display component 75 also has the reference information 76b of the symbol. The cooperation unit 56b operates in cooperation with the cooperation unit 56a to execute operations such as switching the operation mode and editing processes (search process, replacement process, input assistance process, input inspection process). The mode switching unit 53b manages the operation mode of the WebHMI development environment 61. The mode switching unit 53b switches the operation mode of the WebHMI development environment 61 based on user operations and requests (mode transition requests) through the cooperation unit 56b to synchronize the operation mode with the PLC development environment 51. Also, when the mode switching unit 53b receives a synchronization request (mode transition request) for the operation mode of the PLC development environment 51 from the mode switching unit 53a via the cooperation units 56a and 56b, it switches the operation mode of the WebHMI development environment 61 according to this request. Thereby, the operation mode of the PLC development environment 51 and the operation mode of the WebHMI development environment 61 are synchronized. The communication processing unit 58b communicates with the Web server 60a. The rendering unit 63 renders the Web page according to the Web application program 14c composed of markup data describing the front - end structure, style sheet data describing the decoration, and code describing the dynamic processing, such as HTML, CSS, and JavaScript(R) code, and displays it on the display unit 7.

[0032] Here, although the WebHMI development environment 61 is realized by the embedded browser 62 executing the Web application program 14c, this is just an example. By accessing the expansion unit 4a from the Web browser 64 of the PC 2b, the Web application program 14c stored in the memory 42a of the expansion unit 4a may be executed on the Web browser 64 to realize the WebHMI development environment 61.

[0033] FIG. 5 shows the functions realized by the PLC 1. The execution engine 80 is, for example, the CPU 31 or the CPU 41 and executes the control program 71a. The data utilization unit 81 is realized by the CPU 31 or the CPU 41 executing the data utilization program 71b. The data utilization unit 81 collects symbol values, statistically processes symbol values, generates analysis results of symbol values, and the like. The Web server 60b is realized by the CPU 31 or the CPU 41 executing a Web server program. The communication processing unit 58c is a function of communicating with the PC 2a via the communication unit 33, and transmits and receives communication frames according to a predetermined communication protocol. The protocol conversion unit 59b converts the information passed from the Web server 60b into a communication frame according to the communication protocol of the communication processing unit 58c, or converts the communication frame passed from the communication processing unit 58c and transfers it to the Web server 60b. In this way, the protocol conversion unit 59b performs encapsulation and decapsulation of information. The Web server 60b realizes the WebHMI on the Web browser by providing the display component 73 included in the project data 70 to the Web browser.

[0034] ● Communication sequence in the editor mode In the editor mode, the PLC development environment 51 and the WebHMI development environment 61 cooperate with each other by communicating as follows.

[0035] FIG. 6 shows an example in which the PLC development environment 51 sends a request for cooperation to the WebHMI development environment 61. Since the PLC development environment 51 is on the server side, it uses Server Sent Events (SSE) to perform push communication.

[0036] In S1, the cooperation unit 56b of the WebHMI development environment 61 sends an SSE connection request to the Web server 60a of the PLC development environment 51 via the communication processing unit 58b. The Web server 60a receives the SSE connection request.

[0037] In S2, the Web server 60a sends a message indicating the completion of the SSE connection. The cooperation unit 56b receives this message via the communication processing unit 58b. As a result, the cooperation unit 56a can send a request for cooperation to the WebHMI development environment 61 at any timing via the Web server 60a.

[0038] In S3, the cooperation unit 56a sends various requests via SSE through the Web server 60a. The cooperation unit 56b receives various requests by the communication processing unit 58b. Here, examples of the various requests include a request to switch the operation mode, a request to switch the Web page displayed by the WebHMI development environment 61, a request to obtain the operating state of the WebHMI development environment 61, a request to upload the editing display component 75 to the Web server 60a, a request to display a message (e.g., a dialog) on the user interface (UI) of the WebHMI development environment 61, a request to create a new page or window, a request to obtain information indicating a page, a request to prohibit UI operations, a request to cancel the prohibition of UI operations, and a request to switch the comment set / language.

[0039] In S4, the cooperation unit 56b creates a response to the request and sends it to the Web server 60a via the communication processing unit 58b. The Web server 60a receives the response and passes it to the cooperation unit 56a. The cooperation unit 56a executes processing according to the content of the response. Hereinafter, S3 and S4 are repeatedly executed.

[0040] FIG. 7 shows an example in which the WebHMI development environment 61 sends a request for cooperation to the PLC development environment 51. Since the WebHMI development environment 61 is on the browser side, that is, a Web client, it can freely send a request to the PLC development environment 51.

[0041] In S5, the cooperation unit 56b of the WebHMI development environment 61 sends various requests to the Web server 60a via the communication processing unit 58b. The Web server 60a transfers the request to the cooperation unit 56a. The cooperation unit 56a creates a response according to the request and passes the response to the Web server 60a.

[0042] In S6, the Web server 60a sends a response to the request to the WebHMI development environment 61. The cooperation unit 56b receives the response via the communication processing unit 58b.

[0043] Here, the requests sent from the WebHMI development environment 61 to the PLC development environment 51 include a request to switch the operation mode, a request to start an editing function (e.g., search dialog, replace dialog) in the PLC development environment 51, a request to display a dialog in the PLC development environment 51, a request to obtain a list of input string candidates, a request to obtain setting information managed by the PLC development environment 51, a request to update the setting information, a request to perform syntax analysis (input error check) of the input string, and the like.

[0044] ●Flowchart FIG. 8 shows a method for requesting a mode switch from the PLC development environment 51 to the WebHMI development environment 61. Specifically, it shows a method for requesting a switch from the editor mode to the monitor mode. Here, it is assumed that the mode switch button provided on the UI of the PLC development environment 51 has been pressed by the user. Also, it is assumed that the above-described SSE is used and the PLC development environment 51 can send a request to the WebHMI development environment 61.

[0045] In S11, the CPU 11 (PLC development environment 51) requests the WebHMI development environment 61 to prohibit operation. Here, the operation prohibition request is sent by SSE. When the WebHMI development environment 61 receives the operation prohibition request, it transitions to an operation prohibited state.

[0046] In S12, the CPU 11 (PLC development environment 51) acquires the status of the WebHMI development environment 61 from the WebHMI development environment 61. The WebHMI development environment 61 transmits status information indicating its own status to the PLC development environment 51 as a response.

[0047] In S13, the CPU 11 (PLC development environment 51) determines whether the state of the WebHMI development environment 61 received as a response from the WebHMI development environment 61 is displaying a dialog. That is, the CPU 11 (PLC development environment 51) determines whether the state of the WebHMI development environment 61 is displaying a dialog based on the state information indicating the state of the WebHMI development environment 61. If a dialog is being displayed, the CPU 11 proceeds to S14. If a dialog is not being displayed, the CPU 11 proceeds to S16.

[0048] In S14, the CPU 11 (PLC development environment 51) displays an error dialog on the display unit 7. The error dialog includes a message indicating that mode switching cannot be performed because a dialog is being displayed in the WebHMI development environment 61.

[0049] In S15, the CPU 11 (PLC development environment 51) requests the WebHMI development environment 61 to release the operation prohibition. For example, the operation prohibition release request is sent by SSE. The WebHMI development environment 61 releases the operation prohibition in accordance with the operation prohibition release request and sends a response indicating the release completion. This ends the method.

[0050] At S16, the CPU 11 (PLC development environment 51) determines whether there is data being edited in the WebHMI development environment 61. The PLC development environment 51 (interworking unit 56a) requests the WebHMI development environment 61 to respond as to whether there is data being edited. The WebHMI development environment 61 (interworking unit 56b) sends a response indicating whether there is data being edited to the PLC development environment 51. This causes the interworking unit 56a to determine whether there is data being edited in the WebHMI development environment 61. If there is data being edited, the CPU 11 proceeds to S17. If there is no data being edited, the CPU 11 proceeds to S19.

[0051] In S17, the CPU 11 (PLC development environment 51) requests the WebHMI development environment 61 to upload the data being edited. The linking unit 56 of the WebHMI development environment 61 uploads the data being edited (e.g., the edit display component 75) to the PLC development environment 51. The project management unit 54 of the PLC development environment 51 saves the edit display component 75 in the project data 70.

[0052] In S18, the CPU 11 (PLC development environment 51) transfers the project data 70 to the PLC 1.

[0053] At S19, the CPU 11 (mode switching unit 53a of the PLC development environment 51) switches the operation mode of the PLC development environment 51 in accordance with a user instruction. As described above, the mode switching unit 53a requests the mode switching unit 53b of the WebHMI development environment 61 to switch modes via the linking units 56a and 56b. The mode switching unit 53b switches the operation mode of the WebHMI development environment 61 in accordance with the mode switching request. The mode switching unit 53b transmits a response indicating completion of the mode switching to the mode switching unit 53a via the linking units 56b and 56a.

[0054] In S20, the CPU 11 (PLC development environment 51) requests the WebHMI development environment 61 to release the operation prohibition. The linking unit 56b releases the operation prohibition in accordance with the release request, and transmits a response to the WebHMI development environment 61 indicating completion of the release.

[0055] FIG. 9 shows a method executed in the WebHMI development environment 61 among methods for requesting the WebHMI development environment 61 to switch modes from the PLC development environment 51.

[0056] In S21, the CPU 11 (the linking unit 56b of the WebHMI development environment 61) transitions to the operation prohibited state in response to the operation prohibition request. When the transition to the operation prohibited state is completed, the CPU 11 transmits a response indicating the completion to the PLC development environment 51.

[0057] In S22, the CPU 11 (the linking unit 56b) transmits state information indicating the state of the WebHMI development environment 61 to the PLC development environment 51. The linking unit 56b transmits the state information as a response to the state acquisition request.

[0058] In S23, the CPU 11 (the linking unit 56b) judges whether or not a request to release the operation prohibition has been received. The request to release the operation prohibition is received when the WebHMI development environment 61 is in a state in which the operation mode cannot be switched. If a request to release the operation prohibition has been received, the CPU 11 proceeds to S24. If a request to release the operation prohibition has not been received, the CPU 11 proceeds to S25.

[0059] In S24, the CPU 11 (the cooperation unit 56b) releases the prohibition of the operation. The cooperation unit 56b transmits a response to the PLC development environment 51 indicating that the prohibition of the operation has been released.

[0060] In S25, the CPU 11 (the cooperation unit 56b) reports the presence or absence of data being edited to the PLC development environment 51. Upon receiving a request for an inquiry about the presence or absence from the PLC development environment 51, the cooperation unit 56b transmits a response indicating the presence or absence to the PLC development environment 51.

[0061] In S26, the CPU 11 (coordination unit 56b) determines whether a request to upload the data being edited has been received. If a request to upload the data being edited has been received, the CPU 11 proceeds to S27. If a request to upload the data being edited has not been received, the CPU 11 proceeds to S28.

[0062] In S27, the CPU 11 (coordination unit 56b) uploads the data being edited (e.g., the component 75 being edited on the display) to the PLC development environment 51.

[0063] In S28, the CPU 11 (coordination unit 56b) determines whether a mode switching request has been received from the PLC development environment 51. If a mode switching request has been received, the coordination unit 56b passes the mode switching request to the mode switching unit 53b. Thereafter, the CPU 11 proceeds to S29. If a mode switching request has not been received, the CPU 11 proceeds to S30.

[0064] In S29, the CPU 11 (mode switching unit 53b) switches the operation mode according to the mode switching request. The mode switching unit 53b transmits, through the coordination unit 56b, a response indicating that the switching of the operation mode has been completed to the PLC development environment 51. This response is transferred to the mode switching unit 53a via the coordination unit 56a.

[0065] In S30, the CPU 11 (coordination unit 56b) releases the operation prohibition. The coordination unit 56b releases the operation prohibition state according to the operation prohibition release request and transmits a response indicating the completion of the release to the PLC development environment 51.

[0066] FIG. 10 shows a method of requesting a mode switch from the Web HMI development environment 61 to the PLC development environment 51. Here, it is assumed that a mode switch button provided on the UI of the Web HMI development environment 61 has been pressed by the user.

[0067] In S31, the CPU 11 (mode switching unit 53b) requests the PLC development environment 51 to switch modes via the linking unit 56b. Here, the linking unit 56a of the PLC development environment 51 determines whether the PLC development environment 51 is busy. If the PLC development environment 51 is busy, the linking unit 56a cannot switch modes, and so transmits a response indicating a failure to switch modes to the WebHMI development environment 61.

[0068] In S32, the CPU 11 (the linking unit 56b) determines whether or not the mode switching in the PLC development environment 51 has failed, based on a response from the PLC development environment 51. If the switching has failed, the CPU 11 proceeds to S45 and displays a failure message on the display unit 7. If the switching has not failed, the CPU 11 proceeds to S33.

[0069] In S33, the CPU 11 (the linking unit 56b) determines whether there is data being edited (for example, the edit display component 75). If there is data being edited, the CPU 11 proceeds to S34. If there is no data being edited, the CPU 11 proceeds to S35.

[0070] In S34, the CPU 11 (the cooperation unit 56b) displays a confirmation dialog on the display unit 7. The confirmation dialog includes, for example, a message indicating that the project data 70 including the editing display component 75 will be transferred to the PLC 1.

[0071] In S35, the CPU 11 (the cooperation unit 56b) prohibits the user from operating the WebHMI development environment 61.

[0072] In S36, the CPU 11 (the cooperation unit 56b) transmits state information indicating the operation state of the WebHMI development environment 61 to the PLC development environment 51.

[0073] In S37, the CPU 11 (the cooperation unit 56b) determines whether or not a request to release the operation prohibition has been received. If a request to release the operation prohibition has been received, the CPU 11 proceeds to S47 and releases the operation prohibition. On the other hand, if a request to release the operation prohibition has not been received, the CPU 11 proceeds to S38.

[0074] In S38, the CPU 11 (coordination unit 56b) uploads the data being edited (e.g., the component 75 being edited and displayed) to the PLC development environment 51.

[0075] In S39, the CPU 11 (coordination unit 56b) determines whether the switching of the operation mode has failed in the PLC development environment 51 based on the information received from the PLC development environment 51 (e.g., the mode switching failure notification). If the switching of the operation mode has failed in the PLC development environment 51, the CPU 11 proceeds to S49 and displays a failure message on the display unit 7. The coordination unit 56b sends a response indicating that the confirmation of the mode switching failure has been completed to the PLC development environment 51. On the other hand, if the switching of the operation mode has not failed in the PLC development environment 51, the CPU 11 proceeds to S40.

[0076] In S40, the CPU 11 (coordination unit 56b) determines whether a mode switching request has been received from the PLC development environment 51. If a mode switching request has been received from the PLC development environment 51, the CPU 11 proceeds to S41. The coordination unit 56b transfers the mode switching request to the mode switching unit 53b. If a mode switching request has not been received from the PLC development environment 51, the CPU 11 proceeds to S42.

[0077] In S41, the CPU 11 (mode switching unit 53b) switches the operation mode of the WebHMI development environment 61 according to the mode switching request. Here, the received mode switching request functions as the permission signal of the mode switching request transmitted in S31. When the mode switching is completed, the mode switching unit 53b sends a response indicating completion to the PLC development environment 51 via the coordination unit 56b.

[0078] In S42, the CPU 11 (coordination unit 56b) releases the operation prohibition of the WebHMI development environment 61. When the release is completed, the coordination unit 56b sends a response indicating the completion of the release to the PLC development environment 51.

[0079] FIG. 11 shows a method executed in the PLC development environment 51 among the methods for requesting a mode switch from the WebHMI development environment 61 to the PLC development environment 51.

[0080] In S51, the CPU 11 (coordination unit 56a) determines whether the state of the PLC development environment 51 is a busy state. For example, when the modal window of the PLC development environment 51 is open, the state of the PLC development environment 51 is determined to be a busy state. If the state of the PLC development environment 51 is a busy state, the CPU 11 proceeds to S63 and sends a failure message indicating that the mode switch has failed to the WebHMI development environment 61. The coordination unit 56b of the WebHMI development environment 61 displays the received failure message on the display unit 7 through the drawing unit 63. On the other hand, if the state of the PLC development environment 51 is not a busy state, the CPU 11 proceeds to S52.

[0081] In S52, the CPU 11 (coordination unit 56a) determines whether there is data being edited in the PLC development environment 51 or the WebHMI development environment 61. If there is no data being edited, the CPU 11 proceeds to S54. If there is data being edited, the CPU 11 proceeds to S53.

[0082] In S53, the CPU 11 (coordination unit 56a) requests the WebHMI development environment 61 to display a confirmation dialog. This confirmation dialog includes a message indicating that it is necessary to transfer the data being edited, and thus it is necessary to transfer the project data 70 to the PLC 1. The user presses the OK button of the confirmation dialog displayed in the WebHMI development environment 61 with the operation unit 8.

[0083] In S54, the CPU 11 (coordination unit 56a) prohibits operations in the WebHMI development environment 61. As described above, a request to prohibit operations is sent to the WebHMI development environment 61, and an operation prohibition completion response is received from the WebHMI development environment 61.

[0084] In S55, the CPU 11 (the linking unit 56a) acquires the status of the WebHMI development environment 61. As described above, a status acquisition request is sent to the WebHMI development environment 61, and a response including the status information is returned.

[0085] At S56, the CPU 11 (cooperation unit 56a) determines whether or not a dialog is being displayed in the WebHMI development environment 61 based on the state information. If a dialog is being displayed, the CPU 11 proceeds to S65, where it displays an error dialog in the PLC development environment 51. Furthermore, the CPU 11 cancels the operation prohibition on the WebHMI development environment 61 by sending an operation prohibition release request to the WebHMI development environment 61. On the other hand, if a dialog is not being displayed, the CPU 11 proceeds to S57.

[0086] In S57, the CPU 11 (cooperation unit 56a) requests the WebHMI development environment 61 to upload the data being edited by sending an upload request to the WebHMI development environment 61. In response, the WebHMI development environment 61 uploads the data being edited to the PLC development environment 51 and sends an upload completion response.

[0087] At S58, the CPU 11 (editor unit 52a) converts a portion of the project data 70 that requires conversion, and determines whether the conversion is successful. The conversion rules used for this conversion are implemented in the editor unit 52a, but the conversion unit may be provided outside the editor unit 52a. If the conversion fails, the CPU 11 proceeds to S67, where it causes the WebHMI development environment 61 to display a failure message indicating that the mode switching has failed, and releases the operation prohibition in the WebHMI development environment 61. For example, the CPU 11 (editor unit 52a) transmits an operation prohibition release request to the WebHMI development environment 61. The WebHMI development environment 61 that has received the operation prohibition release request releases the operation prohibition. On the other hand, if the conversion is successful, the CPU 11 proceeds to S59.

[0088] In S59, the CPU 11 (transfer unit 55) transfers the project data 70 to the PLC 1.

[0089] In S60, the CPU 11 (mode switching unit 53a) executes mode switching. That is, the mode switching unit 53a switches the operation mode of the PLC development environment 51 to another operation mode specified from the WebHMI development environment 61. For example, the mode switching unit 53a switches the operation mode of the PLC development environment 51 from the editor mode to the monitor mode.

[0090] In S61, the CPU 11 (coordination unit 56a) requests mode switching for the WebHMI development environment 61 and releases the operation prohibition of the WebHMI development environment 61. For example, the CPU 11 (coordination unit 56a) sends a request to release the operation prohibition to the WebHMI development environment 61, and the WebHMI development environment 61 releases the operation prohibition according to the received request to release the operation prohibition. When the WebHMI development environment 61 receives a mode switching request, it executes mode switching and returns a mode switching completion response. Also, when the WebHMI development environment 61 receives a request to release the operation prohibition, it releases the operation prohibition and returns a response indicating the completion of the release.

[0091] ● Monitor mode In the monitor mode, the WebHMI development environment 61 receives HTML data, CSS data, and JavaScript(R) scripts for displaying the UI of the WebHMI from the Web server 60b of the PLC1 via the PLC development environment 51, and displays the UI of the WebHMI on the display unit 7. The communication route here is, as described above, a route such as communication processing unit 58b <=> Web server 60a <=> protocol conversion unit 59a <=> communication processing unit 58a <=> communication processing unit 58c <=> protocol conversion unit 59b <=> Web server 60b. Here, the physical layer interface between the PLC1 and the PC2a is Ethernet(R), USB (Universal Serial Bus) IF (Interface), serial communication IF, etc. Also, the communication protocol of the upper layer may be a proprietary protocol by the manufacturer that manufactures the PLC1. Therefore, protocol conversion units 59a and 59b are provided so that TCP transparent communication is realized between the Web server 60a on the PC2a side and the Web server 60b on the PLC1 side. Here, TCP transparent communication means that in communication via a physical layer different from Ethernet(R), Ethernet(R) is emulated and TCP is handled transparently. In short, the Web server 60a operates to pass on communication from the communication processing unit 58b to the protocol conversion unit 59a. For example, the protocol conversion unit 59a encapsulates the frame by attaching a header of the proprietary protocol to the frame received by the WebAPI from the Web server 60a. Further, the communication processing unit 58a attaches a header such as USB to create a communication frame and transmits it to the communication processing unit 58c. The communication processing unit 58c removes the header such as USB from the received communication frame and passes it to the protocol conversion unit 59b. The protocol conversion unit 59b removes the header of the proprietary protocol and passes it to the Web server 60b. The communication procedure from the Web server 60b to the Web server 60a is the reverse of this procedure.

[0092] Thus, since the protocol conversion units 59a and 59b are provided, the communication interface between the PC2a and the PLC1 is not limited to a wired LAN such as Ethernet (R) or a wireless LAN. That is, the communication interface between the PC2a and the PLC1 may be realized by a communication circuit to which an IP address cannot be assigned, such as a USB IF.

[0093] <Development assistance function> ●Activation of the WebHMI development environment FIG. 12 shows the UI100 of the PLC development environment 51. The mode selection menu 101 is displayed so that the operation mode of the integrated development environment 50 can be selected. The program display area 104 is displayed so that the ladder program to be edited can be edited. The project display area 102 displays information constituting the project. This information includes specification information and setting information of the basic unit 3 and the expansion unit 4 constituting the PLC1, symbol definition, data utilization program, ladder program, and the like.

[0094] When the user operates the pointer 103 and selects "WebHMI" from the project display area 102, the PLC development environment 51 displays the menu 105. When the user selects "New creation" from the menu 105, the PLC development environment 51 displays the menu 106. When the user selects "Screen" from the menu 106 with the pointer 103, the PLC development environment 51 activates the WebHMI development environment 61.

[0095] FIG. 13 shows the UI110 for creating a new screen in the WebHMI development environment 61. The UI110 is displayed by the built-in browser 62 of the WebHMI development environment 61. The UI110 accepts settings such as an identification number, name, URL, and screen size for identifying each screen.

[0096] The UI 110 for editing the display screen in this way can be seamlessly launched from the UI 100 of the PLC development environment 51, which is a PC application. Therefore, the user can use the PLC development environment 51 and the WebHMI development environment 61 within the integrated development environment 50 without recognizing them as separate applications.

[0097] ● Meta information of symbols FIG. 14 shows a setting UI 111 of a reference symbol that stores symbol values and the like displayed on a display component in the WebHMI development environment 61. The reference symbol is a symbol whose value is referenced by a display component. The setting UI 111 has a symbol type setting section 112a, a symbol name setting section 112b, a comment display area 113a, and a data format display area 113b. The linking section 56b inquires of the linking section 56a in the PLC development environment 51 about the symbol (device, variable) input to the symbol name setting section 112b. The linking section 56a causes the search section 57 to execute a search, extracts meta information such as a comment and a data format corresponding to the symbol name, and transmits it to the linking section 56b via the linking section 56a. The linking section 56b passes the comment and the data format to the drawing section 63, and the drawing section 63 displays the comment in the comment display area 113a and the data format in the data format display area 113b.

[0098] Since the symbol definition 72 is input and set in the PLC development environment 51, the PLC development environment 51 can display the symbol definition 72. However, when setting a reference symbol for a display component in the WebHMI development environment 61, returning to the PLC development environment 51 to display the symbol definition 72 would reduce the convenience for the user. In this embodiment, since the WebHMI development environment 61 can display the symbol definition 72 in the UI 111, the user can easily confirm the symbol definition 72 without returning to the PLC development environment 51.

[0099] ● Input assistance for symbols FIG. 15 is a diagram for explaining symbol input assistance. As described above, the cooperation unit 56b can search for project data 70 using the search unit 57 of the PLC development environment 51 and obtain search results. In FIG. 15, a candidate selection unit 114 that displays search results based on the character string "DM" input to the symbol name setting unit 112b and information on the symbol type is illustrated. When the cooperation unit 56b passes the search results to the drawing unit 63, the drawing unit 63 displays the candidate selection unit 114 that enumerates the search results. The candidate selection unit 114 displays candidates for devices including DM and meta-information such as comments set or defined for the devices. When the user selects any candidate from the candidate selection unit 114, the editor unit 52b inputs the selected candidate to the setting unit 112b. The drawing unit 63 displays the input candidate in the setting unit 112b. Note that such a candidate search and selection function (search unit 57) is installed in the PLC development environment 51, and the WebHMI development environment 61 uses the functions of the PLC development environment 51 through the cooperation unit 56b.

[0100] In this way, since the WebHMI development environment 61 can use the functions of the PLC development environment 51 by sending requests via the Web API, there is no need to separately implement the same functions in the WebHMI development environment 61 and the PLC development environment 51. Also, since the WebHMI development environment 61 can refer to the symbol definition 72 managed by the PLC development environment 51, there is no need for the WebHMI development environment 61 to separately create and hold the symbol definition 72. Also, there will be no conflict or confusion among multiple different symbol definitions 72.

[0101] ● Search and replace function FIG. 16 shows the dialog 120 of the search section 57. The search section 57 can be called from either the PLC development environment 51 or the WebHMI development environment 61. The search section 57 can perform search and replace across the entire integrated development environment 50. Therefore, the user can perform search and replace across the PLC development environment 51 and the WebHMI development environment 61. The dialog 120 has a plurality of tabs 121 for limiting the search target. The search target setting section 122 receives the input of the character string to be the search target. The range setting section 123 receives the setting of the search range. Here, either the entire project or the current window is set as the search range. Thus, the search section 57 does not always perform a search across the entire integrated development environment 50, but may perform a search limited to the PLC development environment 51 or the WebHMI development environment 61 (that is, the current window) that called the dialog 120. This will have the effect of shortening the time required for the search.

[0102] ● Batch switching of display language and comment set When the display language setting is changed in either the PLC development environment 51 or the WebHMI development environment 61, the display language setting in the other of the PLC development environment 51 or the WebHMI development environment 61 is also changed. When the user instructs a change in the display language setting in the PLC development environment 51, the cooperation section 56a instructs the cooperation section 56b to change the display language setting. The cooperation section 56b changes the display language setting of the WebHMI development environment 61 according to this instruction. Conversely, when the user instructs a change in the display language setting in the WebHMI development environment 61, the cooperation section 56b requests the cooperation section 56a to change the display language setting. The cooperation section 56a changes the display language setting of the PLC development environment 51 according to this request. The change of the comment set is also executed in the same procedure as the change of the display language.

[0103] ● Error detection and notification of input character string FIG. 17 is a diagram for explaining error detection and notification of a character string input in the WebHMI development environment 61. As described above, the cooperation unit 56b of the WebHMI development environment 61 can obtain the search result of the character string (e.g., varHoge) input to the setting unit 112b from the search unit 57. When the search unit 57 cannot find the character string input to the setting unit 112b, or when the character string input to the setting unit 112b exists but is a symbol in a data format that cannot be specified as a reference source, the search unit 57 sends a response indicating that fact to the cooperation unit 56b. The cooperation unit 56b may display a warning message 115 corresponding to the response on the UI 111 via the drawing unit 63. Thus, when an undefined symbol is input, the warning message 115 is displayed. Instead of displaying the warning message 115, the drawing unit 63 may highlight the setting unit 112b. For example, the color of the frame of the input field of the setting unit 112b may be changed to a color different from the normal color. Thereby, the user will be able to easily notice the input error.

[0104] ● Conversion check before project transfer The transfer unit 55 transfers the project data 70 including both the data created by the PLC development environment 51 and the data created in the WebHMI development environment 61 to the PLC 1. Here, the transfer unit 55 executes an inspection of the project data 70. Here, the inspection includes checking the consistency of settings such as symbols in the entire project data 70. Further, the transfer unit 55 executes the conversion of the display component 73 created in the WebHMI development environment 61 and checks whether there is an error in the conversion result. When the transfer unit 55 finds an error, it may request the WebHMI development environment 61 to display the edit screen of the display component 73 that caused the error. The drawing unit 63 of the WebHMI development environment 61 displays the edit screen of the display component 73 that caused the error in accordance with the request. Thereby, the user can easily eliminate the error.

[0105] ● Saving, opening, transferring, and collating of projects In this embodiment, the display components 73 created by the WebHMI development environment 61 are saved, opened, transferred, and compared together with the control programs 71a created by the PLC development environment 51 and the like. Therefore, compared with the case where projects are managed separately in the PLC development environment 51 and the WebHMI development environment 61, the burden on the user regarding project management is significantly reduced.

[0106] Note that the transfer unit 55 may display a dialog for allowing the user to select the data to be transferred among the project data 70 on the display unit 7 and accept the selection by the user. Here, in the dialog, the data created by the WebHMI development environment 61 and the data created by the PLC development environment 51 are displayed as a list of transfer candidates. These data are each displayed so as to be individually selectable by a check box or the like. That is, the user can specify or cancel the data to be transferred on one selection screen.

[0107] ● Import / Export FIG. 18 is a diagram for explaining the import and export functions of the project data 70. The project management unit 54 designates and executes import or export for some or all of the plurality of data constituting the project data 70. For example, when export is instructed, the project management unit 54 may display a selection screen for the data to be exported on the display unit 7. In FIG. 18, the project data 70 includes PLC programs 71c, 71d, 71e, display components 73a, 73b, 73c, and symbol definitions 72. The project management unit 54 creates an export unit 140a including the PLC program 71c, the display components 73a, 73b, and the symbol definition 72 according to the selection by the user. Further, the project management unit 54 creates an export unit 140b including the PLC programs 71c, 71d, 71e, the display component 73a, and the symbol definition 72 according to the selection by the user.

[0108] Note that the export units 140a and 140b in FIG. 18 may be understood as import units. That is, the project management unit 54 may open the project data 70 to be imported, and set an import unit consisting of programs and data groups to be imported from the project data 70 into other project data.

[0109] As a result, the programs and display components 73 related to the PLC1 can be reused in other projects, so the development efficiency of the project data will be improved.

[0110] ● Linkage of editing operations There may be cases where the same symbol is referenced in the WebHMI development environment 61 and the PLC development environment 51. Furthermore, in one of the WebHMI development environment 61 and the PLC development environment 51, the symbol to be referenced may be changed. In this case, if the change of the symbol in one environment is automatically reflected in the other environment of the WebHMI development environment 61 and the PLC development environment 51, the editing burden on the user will be reduced.

[0111] For example, in the WebHMI development environment 61, the buffer memory of the expansion unit 4a may be set as the reference destination of a certain display component 73. Usually, a unique unit number is assigned to each of the plurality of expansion units 4, and the buffer memory is also associated with the unit number of the expansion unit 4. For example, the buffer memory is identified by the unit number and the buffer memory number. Here, when the configuration of the PLC 1 is changed, the unit number is reassigned. For example, when the expansion unit 4a is connected adjacent to the basic unit 3, "0" is set as the unit number of the basic unit 3, and "1" is set as the unit number of the expansion unit 4a. When the expansion unit 4b is additionally connected between the basic unit 3 and the expansion unit 4a, "1" is set as the unit number of the expansion unit 4b, and "2" is set as the unit number of the expansion unit 4a. Thus, when the unit configuration of the PLC 1 is changed, the unit number of the expansion unit 4a is changed. Therefore, when the buffer memory (buffer memory number = 16) of the expansion unit 4a (unit number = 1) is specified as the reference destination of a certain display component, it is necessary to change the reference destination of the certain display component to the buffer memory (buffer memory number = 16) of the expansion unit 4a (unit number = 2).

[0112] The PLC development environment 51 holds the unit numbers of the basic unit 3, and the expansion units 4a and 4b in the configuration information 74. Also, when the connection position of the expansion unit 4a is changed or another expansion unit 4 is added in the editor section 52a of the PLC development environment 51, the unit numbers are reassigned. The search section 57 searches for symbols associated with the unit numbers before the change, and changes the unit numbers of the extracted symbols to the unit numbers after the change. Also, when the search section 57 extracts a symbol with which the display component 73 generated by the WebHMI development environment 61 is associated with the unit number before the change, it notifies the cooperation section 56b of the WebHMI development environment 61 through the cooperation section 56a that the unit number of the extracted symbol has been changed. The cooperation section 56b searches for and extracts a symbol associated with the unit number before the change from the reference information 76b of the symbols in the in-editing display component 75, and rewrites the unit number of the extracted symbol to the unit number after the change. This reduces the burden on the user.

[0113] ● When the configuration of the PLC on the export side is different from the configuration of the PLC on the import side The PLC1 on the export side attempting to export the project data 70 may be composed of the basic unit 3 and three expansion units 4, and the PLC1 on the import side attempting to import the project data 70 may be composed of the basic unit 3 and four expansion units 4. In such a case, the user must appropriately edit the imported project data 70 according to the configuration of the PLC1 on the import side. The project management section 54 may display a dialog for querying the user about the relationship between the expansion units in the PLC1 on the export side and the expansion units in the PLC1 on the import side on the display section 7.

[0114] FIG. 19 shows a dialog 150 for unit assignment. The dialog 150 has a unit assignment section 151 that accepts a user's specification regarding the correspondence between the export-side expansion unit and the import-side expansion unit. In this example, the user has specified that the expansion unit with unit number 2 in PLC1 on the export side is assigned unit number 3 in PLC1 on the import side. Based on this unit assignment, the project management section 54 searches for the project data 70 to be imported, extracts all symbols associated with the unit number before the change (= 2), and rewrites the extracted symbols with the unit number after the change (= 3). At this time, in addition to the unit number, if there is a symbol name based on the configuration information, it is rewritten. For example, if the WebHMI development environment refers to a relay assigned a consecutive number starting from unit number 0, the symbol name is also changed. Also, the buffer memory number associated with the symbol is not changed, but the symbol name is changed. For example, when the unit number is changed, the symbol name may be changed from R35000 to R39000. The project management section 54 changes the symbol name based on the change in the unit number.

[0115] ● When a display component with image data is imported in the PLC development environment The WebHMI development environment 61 manages by attaching identification information to the image data for the Web page that realizes the WebHMI. Since the image data is stored as an image file, identification information (e.g., identification number) is associated with the file name. The project management unit 54 can import a part of the project data 70 for a certain PLC1 into the project data 70 of another PLC1 by the import / export function described above. At this time, the identification information of the image data included in the project data 70 on the export side (source) may already be used in the project data 70 of another PLC1 on the import side (destination). For example, for the image data with the file name "AAA.png" in the project data 70 on the export side, "0" is assigned as the identification number, and for the image data with the file name "BBB.png" in the project data 70 on the import side, "0" may be assigned as the identification number. That is, the identification numbers overlap.

[0116] Therefore, the project management department 54 determines whether the identification number assigned to the image data in the source project data 70 duplicates the identification number assigned to the image data in the destination project data 70. When a duplicate identification number is found, the project management department 54 replaces the identification number of the image data in the source project data 70 with an unused identification number in the destination project data 70. Further, the project management department 54 searches for the display component 73 that refers to the identification number before replacement in the source project data 70, and replaces the identification number of the image data in the extracted display component 73 with the unused identification number. As a result, duplication of the identification information of the image data is automatically avoided, and the burden on the user to change the identification information is reduced. Here, the identification number is exemplified as the identification information, but the identification information may be any character string such as a file name. Also in this case, the project management department 54 replaces the duplicate identification information in the source with the unused identification information in the destination. Further, the image data may be video data in addition to still images. Instead of or in addition to the image data, audio data may be used. Thereafter, the project management department 54 merges or incorporates the source project data 70 into the destination project data 70.

[0117] ● UI of WebHMI Development Environment FIGS. 20 and 21 show the UI 160 of the drawing tool of the WebHMI development environment 61. The mode switch 161 is a switch for switching the operation mode (e.g., edit mode, online edit mode) of the WebHMI development environment 61. The mode switching unit 53b receives an instruction for mode switching by the user via the mode switch 161. The edit mode is selected in FIG. 20.

[0118] The drawing area 162 is a display area where one or more display components constituting the WebHMI are arranged. The user can arrange the display components at any position in the drawing area 162 by dragging and dropping the display components displayed in the component list display section 164 with the pointer 103. Various display components are selectively displayed in the component list display section 164. The text display component is a display component that displays predetermined solid text (e.g., characters and numbers). The character display component is a display component that displays characters held in a predetermined symbol. The type of symbol referred to by the character display component is limited to a character string. The numerical value display component is a display component that displays a numerical value held in a predetermined symbol. The type of symbol referred to by the numerical value display component is limited to a numerical value. The lamp display component is a display component that indicates a binary value (on / off) held in a symbol such as a bit device. The N-state lamp display component is a display component that indicates which of the N states held in a predetermined symbol by a difference in color. The chart display component is a display component that graphically displays a numerical value held in a predetermined symbol. The chart display component may include a line graph, a bar graph, a sector meter, a bar-type meter, a pie chart, etc. Also, a display component that displays a list of alarm history data, a display component that displays a histogram, a display component that displays a Pareto chart, a display component of a statistical chart such as a Gantt chart, etc. may be presented as selectable candidates. Also, a control component that rewrites the value of the referred symbol may be selectively presented. Further, a display component that displays media data such as image data, camera data, and drawing graphics may be selectively displayed.

[0119] In the drawing area 162 of FIG. 20, components such as a lamp display component 165, a character display component 166, a text display component 167, a numerical value display component 168, and a chart display component 169 are already arranged. In FIG. 20, since the numerical value display component 168 is selected by the pointer 103, the property setting window 163 for the numerical value display component is also displayed. The property setting window 163 accepts various settings required for displaying numerical values. For example, the name of the symbol to be referenced, the number of display digits, the enable / disable of zero suppression display, the number of digits after the decimal point, etc. are presented as setting items in the property setting window 163. The property setting window 163 for the chart component has setting items for symbols that can handle time series data as the symbol to be referenced.

[0120] FIG. 21 shows the UI 160 in which the operation mode is switched to the online edit mode by the mode switch 161. As described above, in the online edit mode, the communication processing unit 58b acquires the value of the symbol referenced by the display component arranged in the drawing area 162 from the PLC 1 in real time. The drawing unit 63 displays the acquired value on the display component. In the online edit mode, since the value is acquired from the PLC 1 periodically, the information displayed on the display component is also updated periodically. The update timing of the value does not have to be periodic, and it may be when a predetermined condition is satisfied.

[0121] ● Linkage of numerical value display format In the PLC system, there are fixed-point and floating-point decimal display formats. The fixed-point decimal refers to a method of expressing a number by fixing the digit where the decimal point is placed. For example, when defining in decimal that "the first digit from the bottom is the decimal part", "123" means "12.3", and "-12345" means "-1234.5". The floating-point decimal refers to a method of expressing a number by a sign part, a fixed-length mantissa part, and a fixed-length exponent part. In the C language, floating-point numbers are treated as variables of the float type or double type. In the PLC system, floating-point numbers are treated in the form of REAL type or LREAL type.

[0122] The linking unit 56b inquires of the linking unit 56a about the definition of the symbol designated as the display target of the numerical display component 168 shown in FIG. 20. That is, a request for acquiring the definition is transmitted. The linking unit 56a searches for and acquires the definition (data format (data type), etc.) of the designated symbol, and transmits the acquired definition to the linking unit 56b as a response. When the symbol is a floating-point type variable, the linking unit 56b sets the display format of the variable to a floating-point number. When the symbol is an integer type variable, the linking unit 56b sets the display format of the variable to a fixed-point number. The editor unit 52b accepts the user's designation regarding the number of digits after the decimal point (e.g., 2) in the property file setting window 163 and passes it to the linking unit 56b. When the symbol is a floating-point type variable and its representation format is a floating-point number, the linking unit 56b rounds or truncates the value of the symbol according to the number of digits after the decimal point designated by the user, and displays the value on the numerical display component 168. For example, when the value of the symbol is 123.45678, truncation is performed according to the designated number of digits after the decimal point (=2), and 123.45 is displayed on the numerical display component 168. On the other hand, when the symbol is an integer type and the representation format is a fixed-point number, the linking unit 56b assigns a decimal point to the value according to the designated number of digits after the decimal point. For example, when the value of the symbol is 54321 and the number of digits after the decimal point is 2, 543.21 is displayed on the numerical display component 168. In this way, the linking unit 56b acquires the data format of the symbol referred to by the numerical display component 168 from the PLC development environment 51, and automatically adjusts the display format of the symbol according to the display format designated by the user. Also, the WebHMI development environment 61 may handle the value of a floating-point type symbol as a floating-point number and an integer type symbol as a fixed-point number. In the former case, rounding or truncation is applied according to the number of digits after the decimal point designated by the user. In the latter case, a decimal point is applied according to the number of digits after the decimal point designated by the user.

[0123] In this way, the WebHMI development environment 61 can automatically set the display format in the WebHMI by referring to the variable types in the PLC development environment 51. Therefore, the user does not need to search for type information in the PLC development environment 51, understand the search results, and manually set the display format (representation format) in the WebHMI development environment 61. At most, the user only needs to specify the number of digits after the decimal point. Also, in the arithmetic functions in the WebHMI, such as the conditional formatting function, the user can mix floating-point numbers and fixed-point numbers without making additional settings. The conditional formatting function is a function that changes the display color or font of the display component based on the comparison between a symbol and a reference value. Also in the conditional formatting function, since the data format in the conditional expression is automatically determined according to the type of the symbol to be displayed, the user does not need to manually change the data format. In particular, even if floating-point numbers and fixed-point numbers are mixed, since the data formats are unified respectively, the user does not need to manually set the data formats respectively.

[0124] Even if the data format of the symbol is changed from the floating-point type to the integer type or from the integer type to the floating-point type in the PLC development environment 51, the user can only change the number of digits after the decimal point and make the symbol display follow the type change.

[0125] <Summary> [Viewpoint 1] The communication unit 13 is an example of a communication means for communicating with the PLC1. The CPU 11 functions as a providing means for providing the integrated development environment 50. The integrated development environment 50 includes a first development environment (e.g., the PLC development environment 51) and a second development environment (e.g., the WebHMI development environment 61). The first development environment is a non-Web application-based development environment that supports the development of user programs (e.g., the control program 71a, the data utilization program 71b) that are transferred to and executed on the PLC1 via the communication means. A non-Web application is a term that is distinguished from a Web application and may be referred to as a PC application or an OS-dependent application. An OS-dependent application is an application whose execution code also differs depending on the OS. The second development environment is a Web application-based development environment that supports the development of a display screen (e.g., the WebHMI) that displays symbol values collected from symbols (e.g., devices and variables) used according to the user program in the PLC1. The display screen is generated, for example, as a Web page described by data for describing the structure, data for describing the decoration, and code for describing the dynamic process. A Web application is an application that is executed or displayed by a Web browser and may be an application that is not dependent on the OS. Although the Web browser is an OS-dependent application, the Web application executed by the Web browser may be an application that is not dependent on the OS. The display screen may be, for example, a Web page described by HTML and CSS. Thereby, a program creation support device is provided that includes an integrated development environment that integrates the development environment for developing the user program executed on the PLC1 and the development environment for the display screen. Thereby, the user can seamlessly use the development environment for the user program and the development environment for the display screen. Since a Web application-based development environment is provided, the development efficiency and future functionality expandability of the display screen will be improved for the user. For example, since it becomes possible to divert the Web framework (skeleton) in the world, the user will not need to prepare a development base from scratch.In addition, the user will not need to develop the rendering logic of the display screen independently. For example, as each display component such as text, switches, graphs, etc. arranged on the display screen, popular Web technologies in the world may be reused. Thereby, it will be possible for the user to easily create a rich UI / UX (user experience). Furthermore, it will be possible to reuse the Web elements (components) created for one display screen for other display screens. Also, it will be easy to reuse components popular in the world for the display screen. Not only the structure and appearance of the Web page, but also the behavior (such as the actions when clicked and the interpretation of data) will be easy to reuse for the display screen. Also, by componentizing the display components on the display screen, it will be less likely for style and behavior interference to occur between one component and other components. Also, since development and maintenance for each component will be possible, development efficiency and maintenance efficiency will be improved.

[0126] [Viewpoint 2] The CPU 11 (providing means) may be configured to manage the user program and the display components for rendering the display screen as a single project. Conventionally, the project of the user program and the project of the display screen of the WebHMI were separated, and the management burden on the user was heavy. In this embodiment, since these can be managed by a single project, the burden on the user is reduced.

[0127] [Viewpoint 3] The project may include a user program created through the first development environment, symbol definition information (e.g., symbol definition 72), and programmable logic controller configuration information (configuration information 74). Furthermore, the project may include display components (e.g., display component 73) of the display screen created through the second development environment. Here, the display component may include reference information for referring to symbols holding information displayed on the display screen.

[0128] [Viewpoint 4] The search unit 57 may be called from the first development environment and the second development environment and function as common search means for performing a search across the entire project. As a result, the user can perform a search using a single search function across the entire project. As a result, the user can use the development environment of the user program and the development environment of the display screen more seamlessly.

[0129] [Aspect 5] The first development environment and the second development environment may perform auxiliary input of user input (e.g., input assistance for the name of a symbol) or error checking of information input by the user (e.g., the name of a symbol) using the search results by the common search means. As a result, the burden on the user regarding input such as symbols will be reduced. Also, as a result, the user can use the development environment of the user program and the development environment of the display screen more seamlessly.

[0130] [Aspect 6] The CPU 11 (providing means) may acquire a symbol value from a programmable logic controller via the communication means and display the symbol value in association with the user program in the first development environment. For example, when the operation mode is set to the monitor mode, the PLC development environment 51 may display the device value (e.g., on / off, analog value) acquired from the PLC 1 for the devices described in the ladder program. The CPU 11 (providing means) may display the symbol value on the display screen. For example, the CPU 11 may acquire the symbol value of the symbol referred to by the display component of the WebHMI from the PLC 1 and display the device value by the display component of the WebHMI. In this way, the user can immediately confirm how the display screen will look during actual operation during the development of the display screen. For example, during the debugging of the WebHMI, the user can confirm how the WebHMI looks as it is in the WebHMI development environment without having to start a general-purpose web browser each time.

[0131] [Aspect 7] The first development environment may have a first web server (e.g., web server 60a) that communicates with the second development environment according to a web API. The second development environment may obtain definition information of symbols associated with display components constituting a display screen, which is definition information created in the first development environment, via the first web server. Further, the second development environment may reflect the definition information on the display components for drawing the display screen. For example, when a device comment of a certain device has been created in the PLC development environment 51 and the WebHMI development environment 61 refers to the device by a display component, the WebHMI development environment 61 may obtain the device comment from the PLC development environment 51 and display it in association with the display component. Thereby, the user can use the development environment of the user program and the development environment of the display screen more seamlessly.

[0132] [Viewpoint 8] PLC1 may have a second web server (e.g., web server 60b) that provides the information stored in the symbol on the display screen created by the second development environment. The second development environment includes a web browser (e.g., embedded browser 62, web browser 64) that accesses the second web server via the first web server and displays the display screen. Thereby, the user can immediately confirm how the display screen looks during actual operation while developing the display screen.

[0133] [Viewpoint 9] The first development environment and PLC1 may provide TCP transparent communication to the web browser and the second web server. The TCP transparent communication is realized, for example, by encapsulation of communication frames by protocol conversion units 59a, 59b and communication processing units 58a, 58b, 58c.

[0134] [Viewpoint 10] The integrated development environment 50 may have an editor mode that accepts the editing of user programs in the first development environment and accepts the editing of display screens in the second development environment. The integrated development environment 50 may have a monitor mode that obtains and displays symbol values from a programmable logic controller from symbols associated with a user program in the first development environment, and obtains and displays the symbol values of symbols associated with a display screen from a programmable logic controller on the display screen in the second development environment. Each of the first development environment and the second development environment may have an instruction means for instructing the switching between the editor mode and the monitor mode. For example, the mode selection menu 101 is an example of the instruction means. Thereby, the user can use the development environment of the user program and the development environment of the display screen more seamlessly. In addition, the user can immediately confirm the appearance of the display screen during actual operation during the development of the display screen.

[0135] [Viewpoint 11] The Web server provided in the first development environment and the Web application executed in the embedded browser provided in the second development environment may communicate via a Web API. Thereby, the first development environment and the second development environment may cooperate with each other in creating or managing a project including a user program and display components of a display screen. Thereby, the user can use the development environment of the user program and the development environment of the display screen more seamlessly.

[0136] [Viewpoint 12] The first development environment and the second development environment may match the operation mode of the first development environment and the operation mode of the second development environment by cooperation via a Web API. For example, when the operation mode of the Web HMI development environment 61 is switched from the editor mode to the monitor mode, the operation mode of the PLC development environment 51 is also switched from the editor mode to the monitor mode. Thereby, the user is relieved of the burden related to the switching of the operation mode.

[0137] [Viewpoint 13] As described with reference to FIGS. 8 to 11, when switching the operation mode, the user operations on the first development environment and the user operations on the second development environment may be prohibited. This enables the user to safely switch the operation mode.

[0138] [Aspect 14] When an instruction to switch the operation mode is given, the first development environment and the second development environment may prohibit the switching of the operation mode when at least one of the first development environment and the second development environment is in a busy state or displaying a dialog. This enables the user to safely switch the operation mode.

[0139] [Aspect 15] As described in connection with FIG. 12, the first development environment may be configured to receive an instruction to start the second development environment and start the second development environment. This will enable the user to further enjoy the advantages of the integrated development environment.

[0140] [Aspects 16, 17] The first development environment and the second development environment may match the language settings of the first development environment and the language settings of the second development environment through cooperation via a Web API. The first development environment and the second development environment may match the comment set of the first development environment and the comment set of the second development environment through cooperation via a Web API. The language setting means the setting of the display language (Japanese, English, French, Chinese...) of the integrated development environment 50. The comment set is, for example, a collection (set) of comments of a plurality of display components applied to the Web HMI. For example, different comment sets may be prepared for each language, such as an English comment set and a Japanese comment set. If different display languages are applied in the first development environment and the second development environment, or different comment sets are applied, the user will be confused. Therefore, by matching these, the burden on the user of switching the language setting or the comment set is reduced.

[0141] [Viewpoint 18] The transfer unit 55 is an example of transfer means for transferring a project created in the integrated development environment to a programmable logic controller. The transfer unit 55 may execute a check on the consistency between the symbols described in the user program included in the project and the symbols referred to by the display components on the display screen. Note that the conversion function and the check function of the project data 70 may be provided inside the transfer unit 55 or may be provided outside the transfer unit 55.

[0142] [Viewpoints 19 - 23] The project management unit 54 may function as import means for executing the import of a project. When importing the first project into the second project, the project management unit 54 may update the first project so that the descriptions dependent on the unit configuration in the first project are consistent with the unit configuration of the second project, and may be configured to import the updated first project into the second project. Here, the descriptions dependent on the unit configuration may include the description of the identification information (e.g., buffer memory number) of the symbols that change depending on the unit configuration.

[0143] Here, in relation to import, the automatic correction of the project due to differences in unit configuration is explained. However, this is also effective in other scenarios. For example, when the configuration information 74 that defines the unit configuration in the PLC development environment 51 is changed, in the WebHMI development environment 61, it is necessary to correct the reference information 76a, 76b of the symbols dependent on the unit configuration. Also in this case, by the PLC development environment 51 correcting the reference information 76a of the symbols and sending a change request for the reference information 76b of the symbols to the WebHMI development environment 61, the WebHMI development environment 61 can appropriately correct the reference information 76b of the symbols. Here, the change request may indicate the unit number before the change and the unit number after the change. Thereby, the WebHMI development environment 61 will be able to easily correct the reference information 76b of the symbols.

[0144] As described in relation to FIG. 19, the project management unit 54 may associate the description of the symbol linked to the first identification information in the first project with the second identification information according to the user input indicating the correspondence between the first identification information of the extended unit included in the unit configuration of the first project and the second identification information of the extended unit included in the unit configuration of the second project. Thereby, the user will have a reduced burden regarding the work of modifying the identification information.

[0145] When the identification information of the centrally managed data such as image data, video data, audio data, etc. included in the first project has already been used in the second project, the project management unit 54 may change the identification information of the image data to the unused identification information in the second project. Thereby, the user will have a reduced burden regarding the work of modifying the identification information.

[0146] [Viewpoints 24 - 26] The second development environment (e.g., the WebHMI development environment 61) may obtain the type of symbol associated with the display components constituting the display screen from the first development environment. The second development environment may set the display format of the symbol value in the display component according to the type. For example, when the type of the symbol is a floating-point type, the second development environment may set the display format of the symbol value in the display component to a floating-point number. When the type of the symbol is an integer type, the second development environment may set the display format of the symbol value in the display component to a fixed-point number. The second development environment may accept a specification of the number of digits after the decimal point for the symbol value, and add a decimal point according to the number of digits after the decimal point to display the symbol value in the display component. When the first development environment and the second development environment are independent, the user has to define or declare the type of the symbol in the first development environment and manually set the display format for that symbol in the second development environment, which is very cumbersome. In contrast, in this embodiment, the first development environment and the second development environment are integrated and can cooperate with each other. Therefore, the second development environment can request the type of the symbol from the first development environment and set the display format according to this type. Therefore, the burden on the user is reduced.

[0147] The invention is not limited to the above embodiments, and various modifications and changes are possible within the scope of the gist of the invention.< / plc>

Claims

1. An execution engine that uses symbols, which are devices or variables, according to a control program that is a user program, and a Web server that provides the display component to the browser in order to implement a Web HMI on an external display device having a browser according to the display component that is drawing data. A program creation support device for a programmable logic controller, comprising: communication means for communicating with the programmable logic controller; a non-Web application-based first development environment that supports the development of the user program transferred to and executed by the programmable logic controller via the communication means; and a Web application-based second development environment that supports the development of the display screen by generating, as a Web page described by data for describing the structure, data for describing the decoration, and code for describing dynamic processing, a display screen of the Web HMI that displays symbol values collected from symbols used according to the user program in the programmable logic controller according to the display component transferred as drawing data to the programmable logic controller via the communication means and provided from the Web server to the browser. Providing means for providing an integrated development environment integrating the above. A program creation support device characterized by comprising:

2. The program creation support device according to claim 1, wherein the providing means is configured to manage the user program and the display component for drawing the display screen as a single project.

3. The project includes: the user program created through the first development environment, symbol definition information, and configuration information of the programmable logic controller; the display component of the display screen created through the second development environment, and the display component includes reference information for referring to symbols that hold information displayed on the display screen. The program creation support device according to claim 2.

4. The program creation support device according to claim 2 or 3, further comprising common search means that is called from the first development environment and the second development environment and performs a search over the entire project.

5. The program creation support apparatus according to claim 4, wherein the first development environment and the second development environment execute assistance for user input or error checking of information input by the user using the search result by the common search means.

6. The program creation support apparatus according to any one of claims 1 to 5, wherein the providing means acquires the symbol value from the programmable logic controller via the communication means and displays the symbol value in association with the user program in the first development environment or displays the symbol value on the display screen.

7. The first development environment has a first Web server that communicates with the second development environment according to a Web API, The program creation support apparatus according to any one of claims 1 to 6, wherein the second development environment acquires definition information of a symbol associated with a display component constituting the display screen, the definition information created in the first development environment, via the first Web server, and reflects it on the display component for drawing the display screen.

8. The programmable logic controller has a second Web server that provides information stored in the symbol on the display screen created by the second development environment, The program creation support apparatus according to claim 7, wherein the second development environment accesses the second Web server via the first Web server and includes a Web browser that displays the display screen.

9. The program creation support apparatus according to claim 8, wherein the first development environment and the programmable logic controller are configured to provide TCP transparent communication to the Web browser and the second Web server.

10. The integrated development environment includes an editor mode that accepts editing of the user program in the first development environment and accepts editing of the display screen in the second development environment, and acquires and displays a symbol value from a symbol associated with the user program in the first development environment, and in the second development environment, acquires a symbol value of a symbol associated with the display screen from the programmable logic controller and displays it on the display screen. The program creation support device according to any one of claims 1 to 8, wherein the first development environment and the second development environment each have instruction means for instructing switching between the editor mode and the monitor mode.

11. The Web server provided in the first development environment and the Web application executed in the embedded browser provided in the second development environment communicate via a Web API, so that the first development environment and the second development environment cooperate in creating or managing a project including the user program and the display components of the display screen. The program creation support device according to any one of claims 1 to 6.

12. The program creation support device according to claim 11, wherein the first development environment and the second development environment match the operation mode of the first development environment and the operation mode of the second development environment by cooperation via the Web API.

13. The program creation support device according to claim 12, wherein when switching the operation mode, the first development environment and the second development environment prohibit user operations on the first development environment and user operations on the second development environment.

14. The program creation support device according to any one of claims 12 or 13, wherein when the switching of the operation mode is instructed, if at least one of the first development environment and the second development environment is in a busy state or displaying a dialog, the switching of the operation mode is prohibited.

15. The program creation support device according to any one of claims 1 to 14, wherein the first development environment is configured to receive an activation instruction for the second development environment and activate the second development environment.

16. The program creation support device according to claim 11, wherein the first development environment and the second development environment match the language setting of the first development environment and the language setting of the second development environment by cooperation via the Web API.

17. The program creation support device according to claim 11, wherein the first development environment and the second development environment match the comment set of the first development environment and the comment set of the second development environment by cooperation via the Web API.

18. It further has transfer means for transferring the project created in the integrated development environment to the programmable logic controller, The transfer means is characterized in that it executes an inspection of the consistency between the symbols described in the user program included in the project and the symbols referred to by the display components of the display screen, and is the program creation support device according to any one of claims 1 to 17.

19. The program creation support device according to claim 18, further comprising import means for executing import of the project.

20. When importing the first project into the second project, the import means updates the first project so that the description depending on the unit configuration in the first project matches the unit configuration of the second project, and is configured to import the updated first project into the second project. The program creation support device according to claim 19.

21. The description depending on the unit configuration includes a description of identification information of symbols that change depending on the unit configuration. The program creation support device according to claim 20.

22. The import means associates the description of the symbol linked to the first identification information in the first project with the second identification information according to user input indicating the correspondence between the first identification information of the expansion unit included in the unit configuration of the first project and the second identification information of the expansion unit included in the unit configuration of the second project. The program creation support device according to claim 21.

23. When the identification information of the image data included in the first project has already been used in the second project, the import means changes the identification information of the image data to unused identification information in the second project. The program creation support device according to claim 20.

24. The second development environment acquires the type of symbol linked to the display components constituting the display screen from the first development environment, and sets the display format of the symbol value in the display components according to the type. The program creation support device according to any one of claims 1 to 6.

25. The second development environment sets the display format of the symbol value in the display component to a floating-point number when the type of the symbol is a floating-point type, and sets the display format of the symbol value in the display component to a fixed-point number when the type of the symbol is an integer type. The program creation support device according to claim 24, characterized in that.

26. The second development environment accepts a specification of the number of digits after the decimal point for the symbol value, adds a decimal point according to the number of digits after the decimal point, and displays the symbol value on the display component. The program creation support device according to claim 25, characterized in that.

Citation Information

Patent Citations

  • Programmable indicator, program for programmable indicator, recording medium recording the same, control system, program for control system, and recording medium recording the same

    JP2008033575A

  • Program development support device, program development support system, program development support method, and program development support program

    JP2018205826A

  • Control system, and common platform

    JP2019016215A

  • Method for providing engineering tool services

    US20030061311A1

  • Method and apparatus for programming

    WO2002042853A1