Program creation support device

JP7915325B2Active Publication Date: 2026-09-03KEYENCE CORP
View PDF 6 Cites 0 Cited by

Patent Information

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

Smart Images

  • Figure 0007915325000001
    Figure 0007915325000001
  • Figure 0007915325000002
    Figure 0007915325000002
  • Figure 0007915325000003
    Figure 0007915325000003
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 machinery such as manufacturing equipment, conveying devices, and inspection devices in factory automation. A PLC controls various extension units and controlled devices by executing user programs such as ladder programs created by programmers. In order to monitor the operation of a PLC, it has been proposed to collect 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 Literature]] [[Patent Literature]]

[0003] [[Patent Document 1]] Japanese Unexamined Patent Application Publication No. 2020-166827 [[Summary of the Invention]] [[Problem to be Solved by the Invention]]

[0004] Incidentally, the HMI of a PLC is configured to display bitmap data, and a display program for the HMI and display settings have been created on a program creation support device using dedicated software. The program creation support device is implemented by a personal computer (PC) or an industrial computer (IPC). On the other hand, it would be convenient if a PC located remotely from the PLC could access the PLC to monitor PLC data in real time, instead of using an HMI installed near the PLC. In particular, if PLC data can be displayed using 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 is referred to as WebHMI herein.

[0005] Incidentally, program creation support devices have a PC application-based software development environment for creating user programs such as ladder programs executed on a PLC. In addition, program creation support devices may have a separate software development environment for HMI or WebHMI installed. Traditionally, these two software development environments were independent, and users had to launch them individually to develop software for PLCs and WebHMIs, which resulted in poor development efficiency. Therefore, the present invention aims to provide a program creation support device equipped with an integrated development environment that combines a development environment for developing user programs executed on a PLC and a development environment for display screens. [Means for solving the problem]

[0006] The present invention, for example, A program creation support device for a programmable logic controller, comprising: an execution engine that uses symbols, which are devices or variables, according to a control program, which is a user program; and a web server that provides display components, which are drawing data, to a browser in order to realize WebHMI on an external display device having a browser; It has a primary web server, A non-web application-based support for the development of the aforementioned user program. PLC development environment and A web application-based WebHMI development environment that supports the development of the display screen for the aforementioned WebHMI, It includes an integrated development environment for editing project data, including the user program and the display component, which integrates the above. The aforementioned integrated development environment has an embedded browser that implements the WebHMI development environment by executing a Web application program. The aforementioned WebHMI development environment is An editor section for editing WebHMI display components according to user instructions, A communication processing unit that communicates with the first web server in order to cooperate with the PLC development environment, A program creation support device having a rendering unit that renders a web page described by data describing the structure, data describing the decoration, and code describing the dynamic processing according to a web application program. To provide. [Effects 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 showing a PLC system [Figure 2] Figure illustrating a PC [Figure 3] Figure illustrating a PLC [Figure 4] Functions implemented by the CPU of the program creation support device [Figure 5] Functions implemented by the CPU of the PLC [Figure 6] Sequence diagram showing communication executed between a PLC development environment and a WebHMI development environment [Figure 7] Sequence diagram showing communication executed between a PLC development environment and a WebHMI development environment [Figure 8] Flowchart showing a method for switching operation modes [Figure 9] Flowchart showing a method for switching operation modes [Figure 10] Flowchart showing a method for switching operation modes [Figure 11] Flowchart showing a method for switching operation modes [Figure 12] Figure illustrating a startup method for a WebHMI development environment [Figure 13] Figure illustrating a UI of a WebHMI development environment [Figure 14] Figure illustrating a UI of a WebHMI development environment [Figure 15] Figure illustrating a UI of a WebHMI development environment [Figure 16] Figure illustrating a search and replace function [Figure 17] Figure illustrating an input assistance function [Figure 18] Figure illustrating project import / export [Figure 19]A diagram illustrating the input of the corresponding unit configurations during import. [Figure 20] Diagram illustrating the UI of the WebHMI development environment. [Figure 21] Diagram illustrating the UI of the WebHMI development environment. [Modes for carrying out the invention]

[0009] Embodiments will be described in detail below with reference to the attached drawings. Note that the following embodiments do not limit the invention as defined in the claims, and not all combinations of features described in the embodiments are essential to the invention. Two or more features from the multiple features described in the embodiments may be arbitrarily combined. Also, identical or similar configurations are assigned the same reference numeral, and redundant descriptions are omitted. Reference numerals indicating identical or similar elements may be appended with lowercase letters. When matters common to multiple elements are described, lowercase letters are omitted.

[0010] <System Configuration> To begin, in order to help those skilled in the art better understand programmable logic controllers (PLCs, which may also be simply called programmable controllers), we will first describe the general configuration and operation of a PLC.

[0011] Figure 1 is a conceptual diagram showing an example configuration of a programmable logic controller system according to an embodiment of the present invention. As shown in Figure 1, this system includes a PC 2a for editing user programs such as ladder programs, and a PLC (Programmable Logic Controller) 1 for comprehensively controlling various control devices installed in factories, etc. PC is an abbreviation for personal computer. User programs may be created using graphical programming languages ​​such as ladder language or flowchart-type motion programs such as SFC (Sequential Function Chart), or they may be created using high-level programming languages ​​such as C language. In the following explanation, for convenience, the user program executed in the basic unit 3 will be 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 includes a display unit 5 and an operation unit 6. The display unit 5 is a display device that shows the operating status of each expansion unit 4 attached to the basic unit 3. The display unit 5 switches the displayed content according to the operation of the operation unit 6. The display unit 5 usually displays the current value (device value) of devices in the PLC1 and error information that has occurred in the PLC1. A device is a name that refers to an area on the memory provided for storing device values ​​(device data), and may also be called device memory. A device value is information that indicates the input status from an input device, the output status to an output device, and the status of internal relays (auxiliary relays), timers, counters, data memory, etc. set in the user program. There are bit type and word type for device values ​​(symbol 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 PLC1 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 the symbol value.

[0013] The expansion unit 4 is provided to extend the functionality of the PLC1. Each expansion unit 4 may be connected to a field device (controlled device) 10 corresponding to the function of that expansion unit 4, thereby connecting each field device 10 to the base unit 3 via the expansion unit 4. The field device 10 may be an input device such as a sensor or camera, or an output device such as an actuator. Furthermore, multiple field devices may be connected to a single expansion unit 4.

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

[0015] The expansion unit 4a is a data acquisition unit that collects data to be collected from the basic unit 3 and expansion unit 4b by executing a user program called a data utilization program, processes the collected data to create data to be displayed, and creates display data for displaying the dashboard on the display unit 7 or PC2. The basic unit 3 is sometimes called the CPU unit. The system including PLC1 and PC2 may also be called a programmable logic controller system.

[0016] PC2a is a computer primarily operated by programmers. PC2b, on the other hand, is a computer operated by field personnel, etc. PC2a may also be called a program creation support device (setting device). PC2 is an external computer, such as a portable notebook or tablet type personal computer or smartphone, equipped with a display unit 7 and an operation unit 8. An external computer is a computer located outside of PLC1. A ladder program, which is an example of a user program for controlling PLC1, is created using PC2a. The created ladder program is converted into mnemonic code within PC2a. PC2 is connected to the basic unit 3 of PLC1 via a communication cable 9, such as a USB (Universal Serial Bus) cable. For example, PC2a sends the ladder program converted into mnemonic code to the basic unit 3. The basic unit 3 converts the ladder program into machine code and stores it in the memory provided in the basic unit 3. Note that, although mnemonic code is sent to the basic unit 3 here, the present invention is not limited to this. For example, PC2a may convert the mnemonic code into intermediate code and send the intermediate code to the basic unit 3.

[0017] Although not shown in Figure 1, the control panel 8 of the PC2 may include a pointing device such as a mouse connected to the PC2. Furthermore, the PC2 may be configured to be detachably connected to the PLC1's basic unit 3 via a communication cable other than a USB cable 9. Alternatively, the PC2 may be connected to the PLC1's basic unit 3 wirelessly 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 input device. If the HMI 16 is equipped with a web browser, it functions as a WebHMI.

[0019] <Program creation support device> Figure 2 is a block diagram illustrating the electrical configuration of PC2. As shown in Figure 2, PC2 comprises 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 RAM, ROM, HDD, SSD, and may also include a removable memory card. CPU is an abbreviation for Central Processing Unit. ROM is an abbreviation for Read-Only Memory. RAM is an abbreviation for Random Access Memory. HDD is an abbreviation for Hard Disk Drive. SSD is an abbreviation for Solid State Drive.

[0020] The storage device 12 stores the integrated development environment program 14a and the web browser program 14d. The integrated development environment program 14a is software that provides an integrated development environment, which integrates a PLC development environment that supports the development of user programs (e.g., ladder programs) that are transferred to and executed on PLC1, and a WebHMI development environment that supports the development of a display screen that displays symbol values ​​collected from symbols (e.g., devices, variables) used when executing user programs on PLC1. The integrated development environment is realized when the user of PC2a has the CPU 11 execute the integrated development environment program 14a. The PLC development environment is realized by the PC application program 14b. The PC application program 14b is a program that depends on the PC's operating system (OS), such as win32. The PC application program 14b can be any program other than a web application-based program, for example, an OS-independent program. The WebHMI development environment is realized by the web application program 14c. Since the web application program 14c is a web application-based program, it is an OS-independent program. Therefore, the web application program 14c can be executed using either the 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 that enables the CPU 11 to function as a web browser.

[0021] The user edits project data 70 by operating the control unit 8 in the integrated development environment 50. Project data 70 includes one or more user programs (e.g., ladder programs), configuration information for the basic unit 3 and extension unit 4, WebHMI drawing data, a data utilization program executed by extension unit 4a, and symbol definition information. The configuration information includes information indicating the connection positions of multiple extension units 4 to the basic unit 3, the functions provided in the basic unit 3 (e.g., communication function and positioning function), and the functions of the extension unit 4 (e.g., shooting function). The drawing data is a group of display components for realizing WebHMI, and is implemented using markup data describing the front-end structure (e.g., HTML data), stylesheet data describing decorations (e.g., CSS data), and code describing dynamic processing (e.g., JavaScript® code). The front-end refers to the part of a web page, web service, and web application that is directly visible to the user. Stylesheet data describing decorations may be provided, for example, in a file format. In this case, the stylesheet data may be called by a description that calls an external stylesheet data file within the markup data describing the structure. The code describing dynamic processing may be provided, for example, in file format. In this case, the code describing dynamic processing may be called by a description that calls an external code file within the markup data describing the structure. A front-end format that can call and use external stylesheet data files and external code files offers high reusability and maintainability, and can utilize, for example, general-purpose front-end components. By adopting such general-purpose and highly reusable web rendering technology, components can be reused in the development of WebHMIs, and the maintainability of WebHMIs is also improved. Hereinafter, drawing data will be referred to as display components. The data utilization program includes programs for collecting control data (device values, etc.) in PLC1, processing data, and creating data to pass to WebHMI.

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

[0023] The communication unit 13 communicates with the base unit 3 via the communication cable 9a. The CPU 11 transfers the project data 70 to the base unit 3 via the communication unit 13. The communication unit 13 communicates with the expansion unit 4a via the communication cable 9b. The CPU 11 transfers the project data 70 to the expansion unit 4a via the communication unit 13. Alternatively, the base unit 3 may transfer the data from the project data 70 that is required by the expansion unit 4a to the expansion unit 4a.

[0024] <plc> Figure 3 is a block diagram illustrating the electrical configuration of PLC1. As shown in Figure 3, the basic unit 3 comprises 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 RAM, ROM, a memory card, etc. The storage device 32 has multiple 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 device values. The project storage unit 35 stores project data 70 input from PC2a. As shown in Figure 3, the basic unit 3 and the expansion unit 4 are connected via a unit internal bus 19, which is a type of expansion bus. The communication function related to the unit internal bus 19 is implemented in the CPU 31, but may also be implemented as part of the communication unit 33. The communication unit 33 may have a network communication circuit. The CPU 31 receives project data 70 from PC2a via the communication unit 33.

[0025] Here, we will provide some additional explanation about the internal unit bus 19. This internal unit bus 19 is a communication bus used for I / O refresh. I / O refresh is the process of updating device values ​​between the basic unit 3 and the expansion unit 4. I / O refresh is performed each time the ladder program is executed (i.e., each scan).

[0026] The expansion unit 4 includes a CPU 41 and memory 42. The CPU 41b of the expansion unit 4b controls the field device 10 according to instructions (device values) from the base unit 3 stored in the device. The CPU 41b also stores the control results of the field device 10 in a device called buffer memory. The control results stored in the device are transferred to the base unit 3 by I / O refresh. In addition, the control results stored in the device are also transferred to the base unit 3 according to a read command from the base unit 3, even at a timing different from I / O refresh. Memory 42 includes RAM and ROM. In particular, the RAM has a storage area reserved for use as buffer memory. Memory 42 may have a buffer that temporarily holds data acquired by the field device 10 (e.g., still image data or video data).

[0027] The CPU 41a of the expansion unit 4a, which functions as a data utilization unit, communicates with PC2a via the communication unit 43 and cable 9b. The data utilization unit is an expansion unit that executes a data utilization program. The CPU 41a stores the data utilization program and its configuration data received from PC2a in memory 42a. The CPU 41a executes the data utilization program according to the configuration data, collects device values, and creates display data for display on WebHMI. The CPU 41a communicates with PC2b via the communication unit 43 and cable 9b. The CPU 41a sends WebHMI display data to PC2b. As a result, PC2b displays WebHMI containing various data related to PLC1.

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

[0029] Figure 4 is a diagram illustrating the functions realized by the CPU 11 of PC2a. 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 includes a PLC development environment 51 and a WebHMI development environment 61. The PLC development environment 51 is realized by the CPU 11 executing the PC application program 14b. The WebHMI 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 environment for HTML, CSS, and JavaScript(R)) necessary to execute the Web application program 14b. The Web application program 14b is a collection of display components that are sent from the Web server to the Web browser and are necessary to display a Web page in the Web browser.

[0030] The PLC development environment 51 has an editor unit 52a that supports the creation of control programs 71a executed by the basic unit 3 and expansion unit 4b, data utilization programs 71b executed by the expansion unit 4a, symbol definitions 72, display components 73 that realize WebHMI, and configuration information 74 of PLC1. The mode switching unit 53a switches the operating mode of the integrated development environment 50 (e.g., editor mode, monitor mode, online edit mode, simulator mode, simulator edit mode) according to user instructions from the operation unit 8. In particular, the mode switching unit 53a manages the operating mode of the PLC development environment 51. Based on user operations, the mode switching unit 53a switches the operating mode of the PLC development environment 51 and requests the WebHMI development environment 61 to synchronize its operating mode (mode transition request). Also, when the mode switching unit 53a receives a synchronization request (mode transition request) for the operating mode of the WebHMI development environment 61 from the mode switching unit 53b of the WebHMI development environment 61, it switches the operating mode of the PLC development environment 51 according to this request. This synchronizes the operating modes of the PLC development environment 51 and the WebHMI development environment 61. Editor mode is a mode in which the project data 70 of PLC1 can be edited without connecting PC2a to PLC1. Monitor mode is a mode in which the status of PLC1 can be monitored in real time while PC2a is connected to PLC1. Online edit mode is a mode in which the status of PLC1 can be monitored in real time while PC2a is connected to PLC1, and the project data 70 can be edited and updated, and the updated project data 70 can be transferred to PLC1. Simulator mode is a mode in which the operation of WebHMI using the control program 71a, data utilization program 71b, and display component 73 can be simulated without connecting PC2a to PLC1. Simulator edit mode is a mode in which the project data 70 can be edited while the operation of WebHMI using the control program 71a, data utilization program 71b, and display component 73 is being simulated.The project management unit 54 saves project data 70 edited by the editor unit 52a, etc., to the storage device 12, exports project data 70 from the storage device 12, or imports project data 70. In a factory that manufactures products, multiple production lines may be set up with multiple PLCs 1 that have the same or similar configurations. Export and import are used to reuse project data 70 among these multiple PLCs 1. The transfer unit 55 transfers project data 70 to the PLCs 1 according to user instructions input through the operation unit 8. The cooperation unit 56a communicates with the cooperation unit 56b of the WebHMI development environment 61 through the Web server 60a and the communication processing unit 58b of the WebHMI development environment 61, and cooperates regarding the editing process of project data 70. Hereafter, 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 interface of the Web server 60a and the communication processing unit 58b is WebAPI (Web Application Programming Interface). The linking unit 56b transmits the characters or part of a word entered in the editor unit 52b to the linking unit 56a. At this time, the linking unit 56b may send a request to the linking unit 56a to obtain candidate words to be entered, or it may send the input characters or part of a word as a request to obtain candidate words to be entered. The linking unit 56a searches the symbol definition 72 for the received part of the word using the search unit 57 and transmits the candidate words to be entered to the linking unit 56b. The linking unit 56b passes the candidate words to the editor unit 52b, and the editor unit 52b displays a list of candidate words. The search unit 57 executes string search and replacement requests from the editor units 52a and 52b. The integrated development environment 50 is provided with one search unit 57, which is used in common by the PLC development environment 51 and the WebHMI development environment 61. The communication processing unit 58a has the function of communicating with the PLC1 via the communication unit 13, and transmits and receives communication frames according to a predetermined communication protocol.The protocol conversion unit 59a converts information received from the Web server 60a into communication frames according to the communication protocol of the communication processing unit 58a, and converts communication frames received from the communication processing unit 58a and forwards them to the Web server 60a. In this way, the protocol conversion unit 59a performs information encapsulation and decapsulation. If the Web server of the PLC1's expansion unit 4a provides WebHMI, the Web browser 64 accesses the PLC1's Web server via the communication unit 13. For example, the Web browser 64 communicates with the expansion unit 4a's Web server via the communication cable 9b connecting the communication unit 13 and the communication unit 43. The Web browser 64 accesses the PLC1's Web server, obtains the WebHMI display component 73, renders the WebHMI according to the display component 73, and displays it on the display unit 7. Note that the Web browser 64 may be provided on PC2b. The embedded browser 62 incorporated into 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 PLC1's web server via the protocol conversion unit 59a and the communication processing unit 58a to obtain the WebHMI display component 73 and pass it to the embedded browser 62. For example, the web server 60a communicates with the PLC1's web server via the communication cable 9a connecting the communication unit 13 and the communication unit 33. The embedded browser 62 draws the WebHMI according to the display component 73 and displays it on the display unit 7. The display component 73 has symbol reference information 76a. The symbol reference information 76a holds identification information of the symbols displayed on the display component 73, etc.

[0031] In the WebHMI development environment 61, the editor unit 52b edits the WebHMI display component 73 according to user instructions input from the operation unit 8. The editor unit 52b also stores the data being edited, the display component 75, in the storage device 12. When the editor unit 52b completes editing related to the WebHMI, the coordination unit 56b uploads the display component 75 being edited via the communication processing unit 58b and the Web server 60a. The Web server 60a passes the display component 75 being edited and a save request to the coordination unit 56a, which then passes them to the project management unit 54. The project management unit 54 writes the display component 75 being edited as a display component 73 to the project data 70 according to the save request. The display component 75 being edited also has symbol reference information 76b. The coordination unit 56b works in conjunction with the coordination unit 56a to switch operating modes and perform editing processes (search processing, replace processing, input assistance processing, input validation processing), etc. The mode switching unit 53b manages the operating mode of the WebHMI development environment 61. Based on user operation, the mode switching unit 53b switches the operating mode of the WebHMI development environment 61 and requests the PLC development environment 51 to synchronize its operating mode via the linkage unit 56b (mode transition request). When the mode switching unit 53b receives a synchronization request (mode transition request) for the operating mode of the PLC development environment 51 from the mode switching unit 53a via the linkage units 56a and 56b, it switches the operating mode of the WebHMI development environment 61 according to this request. As a result, the operating mode of the PLC development environment 51 and the operating 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, which consists of markup data describing the structure of the front end, stylesheet data describing the decorations, and code describing dynamic processing, such as HTML, CSS, and JavaScript(R) code, and displays it on the display unit 7.

[0032] Here, the WebHMI development environment 61 is realized by the embedded browser 62 executing the web application program 14c, but this is just one example. Alternatively, the WebHMI development environment 61 could be realized by accessing the expansion unit 4a from the web browser 64 of PC2b, and executing the web application program 14c stored in the memory 42a of the expansion unit 4a on the web browser 64.

[0033] Figure 5 shows the functions implemented by PLC1. The execution engine 80 is a CPU 31 or CPU 41, which executes the control program 71a. The data utilization unit 81 is implemented when CPU 31 or CPU 41 executes the data utilization program 71b. The data utilization unit 81 collects symbol values, performs statistical processing on symbol values, and generates analysis results of symbol values. The web server 60b is implemented when CPU 31 or CPU 41 executes the web server program. The communication processing unit 58c has the function of communicating with PC2a via the communication unit 33, and sends and receives communication frames according to a predetermined communication protocol. The protocol conversion unit 59b converts information passed from the web server 60b into communication frames according to the communication protocol of the communication processing unit 58c, or converts the communication frames passed from the communication processing unit 58c and transfers them to the web server 60b. In this way, the protocol conversion unit 59b performs information encapsulation and decapsulation. The web server 60b provides the display components 73 included in the project data 70 to the web browser, thereby realizing a WebHMI on the web browser.

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

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

[0036] In S1, the integration 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 that the SSE connection is complete. The interoperation unit 56b receives this message via the communication processing unit 58b. This allows the interoperation unit 56a to send an interoperation request to the WebHMI development environment 61 via the web server 60a at any time.

[0038] In S3, the interoperation unit 56a sends various requests via SSE through the web server 60a. The interoperation unit 56b receives various requests via the communication processing unit 58b. These various requests include, for example, requests to switch the operating mode, requests to switch the web page displayed by the WebHMI development environment 61, requests to obtain the operating status of the WebHMI development environment 61, requests to upload the editing display component 75 to the web server 60a, requests to display a message (e.g., a dialog) in the user interface (UI) of the WebHMI development environment 61, requests to create a new page or window, requests to obtain information indicating a page, requests to disable UI operations, requests to release the UI operation ban, and requests to switch comment sets / languages.

[0039] In S4, the integration 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 integration unit 56a. The integration unit 56a executes processing according to the content of the response. Below, S3 and S4 are executed repeatedly.

[0040] Figure 7 shows an example of the WebHMI development environment 61 sending a request for communication to the PLC development environment 51. Since the WebHMI development environment 61 is a browser-side, i.e., a web client, it can freely send requests to the PLC development environment 51.

[0041] In S5, the integration 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 forwards the requests to the integration unit 56a. The integration 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 interoperation unit 56b receives the response via the communication processing unit 58b.

[0043] Requests sent from the WebHMI development environment 61 to the PLC development environment 51 include requests to switch operating modes, requests to activate editing functions within the PLC development environment 51 (e.g., search dialog, replace dialog), requests to display dialogs in the PLC development environment 51, requests to obtain a list of input string candidates, requests to obtain configuration information managed by the PLC development environment 51, requests to update configuration information, and requests to perform syntax analysis (input error checking) of input strings.

[0044] ●Flowchart Figure 8 shows how to request a mode switch from the PLC development environment 51 to the WebHMI development environment 61. Specifically, it shows how to request a switch from editor mode to monitor mode. Here, it is assumed that the user has pressed the mode switch button provided in the UI of the PLC development environment 51. It is also assumed that the aforementioned SSE is used to send a request from the PLC development environment 51 to the WebHMI development environment 61.

[0045] In S11, CPU11 (PLC development environment 51) requests the WebHMI development environment 61 to disable operation. Here, the operation disable request is sent via SSE. Upon receiving the operation disable request, the WebHMI development environment 61 transitions to the operation disable state.

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

[0047] In S13, CPU11 (PLC development environment 51) determines whether the status of WebHMI development environment 61, which it received as a response from WebHMI development environment 61, is displaying a dialog box. In other words, CPU11 (PLC development environment 51) determines whether the status of WebHMI development environment 61 is displaying a dialog box based on the status information indicating the status of WebHMI development environment 61. If the dialog box is displaying, CPU11 proceeds to S14. If the dialog box is not displaying, CPU11 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 currently 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 restriction. For example, the operation restriction release request is sent via SSE. The WebHMI development environment 61 releases the operation restriction in accordance with the operation restriction release request and sends a response indicating that the release is complete. This completes the procedure.

[0050] In 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 (coordination unit 56a) requests the WebHMI development environment 61 to respond regarding the presence or absence of data being edited. The WebHMI development environment 61 (coordination unit 56b) sends a response to the PLC development environment 51 indicating the presence or absence of data being edited. Based on this, the coordination unit 56a determines 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 integration unit 56 of the WebHMI development environment 61 uploads the data being edited (e.g., the editing display component 75) to the PLC development environment 51. The project management unit 54 of the PLC development environment 51 saves the editing display component 75 to the project data 70.

[0052] In S18, CPU11 (PLC development environment 51) transfers project data 70 to PLC1.

[0053] In S19, the CPU 11 (mode switching unit 53a of the PLC development environment 51) switches the operating mode of the PLC development environment 51 according to the user's instructions. As described above, the mode switching unit 53a requests a mode switch from the mode switching unit 53b of the WebHMI development environment 61 via the linkage units 56a and 56b. The mode switching unit 53b switches the operating mode of the WebHMI development environment 61 according to the mode switch request. The mode switching unit 53b sends a response to the mode switching unit 53a via the linkage units 56b and 56a indicating that the mode switch has been completed.

[0054] In S20, the CPU 11 (PLC development environment 51) requests the WebHMI development environment 61 to release the operation restriction. The coordinating unit 56b releases the operation restriction in accordance with the release request and sends a response to the WebHMI development environment 61 indicating that the release is complete.

[0055] Figure 9 shows the method of requesting a mode switch from the PLC development environment 51 to the WebHMI development environment 61, specifically the method executed in the WebHMI development environment 61.

[0056] In S21, the CPU 11 (the integration unit 56b of the WebHMI development environment 61) transitions to the operation prohibition state in accordance with the operation prohibition request. Once the transition to the operation prohibition state is complete, the CPU 11 sends a response indicating completion to the PLC development environment 51.

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

[0058] In S23, the CPU 11 (coordination unit 56b) determines whether it has received a request to release the operation restriction. A request to release the operation restriction is received when the WebHMI development environment 61 is in a state where it cannot switch its operating mode. If a request to release the operation restriction is received, the CPU 11 proceeds to S24. If no request to release the operation restriction is received, the CPU 11 proceeds to S25.

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

[0060] In S25, the CPU 11 (coordination unit 56b) reports to the PLC development environment 51 whether or not there is data being edited. When the coordination unit 56b receives a request from the PLC development environment 51 to inquire about the presence or absence of data, it sends a response indicating the presence or absence to the PLC development environment 51.

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

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

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

[0064] In S29, the CPU 11 (mode switching unit 53b) switches the operating mode according to the mode switching request. The mode switching unit 53b sends a response to the PLC development environment 51 via the linkage unit 56b indicating that the operating mode switching is complete. This response is forwarded to the mode switching unit 53a via the linkage unit 56a.

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

[0066] Figure 10 shows how to request a mode switch from the WebHMI development environment 61 to the PLC development environment 51. Here, it is assumed that the mode switch button provided on the UI of the WebHMI development environment 61 has been pressed by the user.

[0067] In S31, the CPU 11 (mode switching unit 53b) requests a mode switch from the PLC development environment 51 via the communication unit 56b. Here, the communication 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 mode switch cannot be performed, so the communication unit 56a sends a response indicating mode switch failure to the WebHMI development environment 61.

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

[0069] In S33, the CPU 11 (coordination unit 56b) determines whether there is data being edited (e.g., editing 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 (cooperation unit 56b) displays a confirmation dialog on the display unit 7. The confirmation dialog includes, for example, a message indicating that project data 70, including the edited display component 75, will be transferred to the PLC 1.

[0071] In S35, CPU11 (coordination unit 56b) prohibits user operations on the WebHMI development environment 61.

[0072] In S36, the CPU 11 (coordination unit 56b) sends status information indicating the operating status of the WebHMI development environment 61 to the PLC development environment 51.

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

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

[0075] In S39, the CPU 11 (coordination unit 56b) determines whether the operation mode switching failed in the PLC development environment 51 based on the information received from the PLC development environment 51 (e.g., mode switching failure notification). If the operation mode switching 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 to the PLC development environment 51 indicating that the confirmation of the mode switching failure is complete. On the other hand, if the operation mode switching did not fail in the PLC development environment 51, the CPU 11 (coordination unit 56b) proceeds to S40.

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

[0077] In S41, the CPU 11 (mode switching unit 53b) switches the operating mode of the WebHMI development environment 61 according to the mode switching request. Here, the received mode switching request functions as an authorization signal for the mode switching request sent in S31. Once the mode switching is complete, the mode switching unit 53b sends a response indicating completion to the PLC development environment 51 via the interoperation unit 56b.

[0078] In S42, the CPU 11 (coordination unit 56b) releases the restriction on the operation of the WebHMI development environment 61. Once the release is complete, the coordination unit 56b sends a response to the PLC development environment 51 indicating that the release is complete.

[0079] Figure 11 shows the method of requesting a mode switch from the WebHMI development environment 61 to the PLC development environment 51, specifically the method executed in the PLC development environment 51.

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

[0081] In S52, the CPU 11 (coordination unit 56a) determines whether there is any 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 the data being edited needs to be transferred, and therefore the project data 70 needs to be transferred to the PLC1. The user presses the OK button on the confirmation dialog displayed in the WebHMI development environment 61 using the operation unit 8.

[0083] In S54, the CPU 11 (coordination unit 56a) prohibits operations in the WebHMI development environment 61. As described above, an operation prohibition request 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 (coordination unit 56a) obtains 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 containing status information is returned.

[0085] In S56, the CPU 11 (coordination unit 56a) determines, based on the status information, whether a dialog box is currently displayed in the WebHMI development environment 61. If a dialog box is currently displayed, the CPU 11 proceeds to S65 and displays an error dialog box in the PLC development environment 51. Furthermore, the CPU 11 releases the operation restriction on the WebHMI development environment 61 by sending an operation restriction release request to the WebHMI development environment 61. On the other hand, if a dialog box is not currently displayed, the CPU 11 proceeds to S57.

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

[0087] In S58, the CPU 11 (editor unit 52a) converts some of the project data 70 that requires conversion and determines whether the conversion was successful. The conversion rules used for this conversion are implemented in the editor unit 52a, but the conversion unit may be located outside the editor unit 52a. If the conversion fails, the CPU 11 proceeds to S67, displays a failure message indicating that the mode switching failed in the WebHMI development environment 61, and releases the operation restriction in the WebHMI development environment 61. For example, the CPU 11 (editor unit 52a) sends an operation restriction release request to the WebHMI development environment 61. Upon receiving the operation restriction release request, the WebHMI development environment 61 releases the operation restriction. 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 project data 70 to the PLC 1.

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

[0090] In S61, the CPU 11 (coordination unit 56a) requests a mode switch from the WebHMI development environment 61 and releases the operation restriction on the WebHMI development environment 61. For example, the CPU 11 (coordination unit 56a) sends a request to the WebHMI development environment 61 to release the operation restriction, and the WebHMI development environment 61 releases the operation restriction in accordance with the received request. When the WebHMI development environment 61 receives a mode switch request, it performs the mode switch and returns a mode switch completion response. Also, when the WebHMI development environment 61 receives a request to release the operation restriction, it releases the operation restriction and returns a response indicating that the release is complete.

[0091] ● Monitor mode In monitor mode, the WebHMI development environment 61 receives HTML data, CSS data, and JavaScript(R) scripts for displaying the WebHMI UI from the Web server 60b of PLC1 via the PLC development environment 51, and displays the WebHMI UI on the display unit 7. The communication route here is as described above: 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. The physical layer interface between PLC1 and PC2a is Ethernet(R), USB (Universal Serial Bus) IF (interface), serial communication IF, etc. Furthermore, the higher-layer communication protocol may be a proprietary protocol provided by the manufacturer of 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 refers to a method of handling TCP transparently by emulating Ethernet(R) in communication over a physical layer different from Ethernet(R). In short, the Web server 60a operates by passing communication from the communication processing unit 58b to the protocol conversion unit 59a. For example, the protocol conversion unit 59a encapsulates the frame by adding a proprietary protocol header to the Web API frame received from the Web server 60a. Furthermore, the communication processing unit 58a adds headers such as USB to create a communication frame and sends it to the communication processing unit 58c. The communication processing unit 58c removes headers such as USB from the received communication frame and passes it to the protocol conversion unit 59b. The protocol conversion unit 59b removes the proprietary protocol header and passes it to the Web server 60b. The communication procedure from the Web server 60b to the Web server 60a is the reverse procedure.

[0092] As described above, because protocol conversion units 59a and 59b are provided, the communication interface between PC2a and PLC1 is not limited to wired LANs such as Ethernet(R) or wireless LANs. In other words, the communication interface between PC2a and PLC1 may be implemented by a communication circuit that cannot be assigned an IP address, such as a USB interface.

[0093] <Development support functions> ●Starting the WebHMI development environment Figure 12 shows the UI 100 of the PLC development environment 51. The mode selection menu 101 displays the operating mode of the integrated development environment 50, allowing selection. The program display area 104 displays the ladder program to be edited, allowing editing. The project display area 102 displays the information that makes up the project. This information includes specification and setting information for the basic unit 3 and expansion unit 4 that make up PLC1, symbol definitions, data utilization programs, ladder programs, etc.

[0094] When the user operates the pointer 103 to select "WebHMI" from the project display area 102, the PLC development environment 51 displays menu 105. When the user selects "New" from menu 105, the PLC development environment 51 displays menu 106. When the user selects "Screen" from menu 106 using the pointer 103, the PLC development environment 51 launches the WebHMI development environment 61.

[0095] Figure 13 shows the UI 110 for creating a new screen in the WebHMI development environment 61. UI 110 is displayed by the WebHMI development environment 61's built-in browser 62. UI 110 accepts settings such as an identification number, name, URL, and screen size to identify each screen.

[0096] The UI110 for editing the display screen can be seamlessly launched from the UI100 of the PLC development environment 51, which is a PC application. Therefore, users 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] ● Symbol metadata Figure 14 shows the reference symbol setting UI 111 in the WebHMI development environment 61, which stores symbol values ​​and other information displayed in display components. A 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 linkage unit 56b queries the linkage unit 56a of the PLC development environment 51 about the symbol (device, variable) entered in the symbol name setting section 112b. The linkage unit 56a causes the search unit 57 to perform a search, extracts metadata such as comments and data format corresponding to the symbol name, and sends it to the linkage unit 56b via the linkage unit 56a. The linkage unit 56b passes the comments and data format to the drawing unit 63, which displays the comments in the comment display area 113a and the data format in the data format display area 113b.

[0098] Since the symbol definition 72 is entered 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 user convenience. In this embodiment, the WebHMI development environment 61 can display the symbol definition 72 in the UI 111, so the user can easily check the symbol definition 72 without returning to the PLC development environment 51.

[0099] ● Assistance with entering symbols Figure 15 illustrates the symbol input assistance. As described above, the linkage unit 56b can use the search unit 57 of the PLC development environment 51 to search the project data 70 and obtain the search results. Figure 15 illustrates the candidate selection unit 114 which displays the search results based on the string "DM" entered in the symbol name setting unit 112b and the symbol type information. When the linkage unit 56b passes the search results to the drawing unit 63, the drawing unit 63 displays the candidate selection unit 114 which lists the search results. The candidate selection unit 114 displays candidate devices including DM and metadata such as comments that are set or defined for those devices. When the user selects one of the candidates from the candidate selection unit 114, the editor unit 52b inputs the selected candidate into the setting unit 112b. The drawing unit 63 displays the input candidate in the setting unit 112b. Note that such candidate search and selection functions (search unit 57) are installed in the PLC development environment 51, and the WebHMI development environment 61 utilizes the functions of the PLC development environment 51 through the linkage unit 56b.

[0100] Thus, the WebHMI development environment 61 can utilize the functions of the PLC development environment 51 by sending requests via the Web API, eliminating the need to individually implement the same functions in both the WebHMI development environment 61 and the PLC development environment 51. Furthermore, since the WebHMI development environment 61 can reference the symbol definitions 72 managed by the PLC development environment 51, the WebHMI development environment 61 does not need to individually create and maintain symbol definitions 72. In addition, there is no conflict or proliferation of multiple different symbol definitions 72.

[0101] ● Search and replace function Figure 16 shows the dialog box 120 of the search unit 57. The search unit 57 can be called from either the PLC development environment 51 or the WebHMI development environment 61. The search unit 57 can perform search and replace operations throughout the entire integrated development environment 50. Therefore, users can perform search and replace operations across the PLC development environment 51 and the WebHMI development environment 61. The dialog box 120 has multiple tabs 121 for limiting the search target. The search target setting unit 122 accepts input of the string to be searched. The range setting unit 123 accepts the setting of the search range. Here, either the entire project or the current window is set as the search range. Thus, the search unit 57 does not always perform a search throughout the entire integrated development environment 50, but may also perform a search limited to the PLC development environment 51 or WebHMI development environment 61 (i.e., the current window) from which the dialog box 120 was called. This will have the effect of reducing 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 environment is also changed. When the user instructs the PLC development environment 51 to change the display language setting, the linkage unit 56a instructs the linkage unit 56b to change the display language setting. The linkage unit 56b changes the display language setting in the WebHMI development environment 61 according to this instruction. Conversely, when the user instructs the WebHMI development environment 61 to change the display language setting, the linkage unit 56b requests the linkage unit 56a to change the display language setting. The linkage unit 56a changes the display language setting in the PLC development environment 51 according to this request. Changing the comment set is performed using the same procedure as changing the display language.

[0103] ● Error detection and notification for entered strings Figure 17 illustrates error detection and notification for input strings in the WebHMI development environment 61. As described above, the integration unit 56b of the WebHMI development environment 61 can obtain the search result for the string (e.g., varHoge) entered in the setting unit 112b from the search unit 57. If the search unit 57 cannot find the string entered in the setting unit 112b, or if the string entered in the setting unit 112b exists but is a symbol of a data format that cannot be specified as a reference source, it sends a response to the integration unit 56b indicating this. The integration unit 56b may display a warning message 115 corresponding to the response on the UI 111 via the drawing unit 63. In this way, if an undefined symbol is entered, 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 border of the input field in the setting unit 112b may be changed to a different color than the normal color. This will allow the user to easily notice input errors.

[0104] ●Conversion check before project transfer The transfer unit 55 transfers project data 70, which includes both data created by the PLC development environment 51 and data created in the WebHMI development environment 61, to the PLC1. Here, the transfer unit 55 performs an inspection of the project data 70. Here, the inspection includes checking the consistency of settings such as symbols throughout the project data 70. Furthermore, the transfer unit 55 performs a conversion of the display components 73 created in the WebHMI development environment 61 and checks whether there are any errors in the conversion result. If the transfer unit 55 finds an error, it may request the WebHMI development environment 61 to display the editing screen of the display component 73 that caused the error. The drawing unit 63 of the WebHMI development environment 61 displays the editing screen of the display component 73 that caused the error in accordance with the request. This makes it easy for the user to resolve the error.

[0105] ●Saving, opening, transferring, and retrieving 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 program 71a created by the PLC development environment 51. Therefore, compared to managing projects 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] The transfer unit 55 may also display a dialog box on the display unit 7 for the user to select the data to be transferred from the project data 70, and accept the user's selection. In this dialog box, data created by the WebHMI development environment 61 and data created by the PLC development environment 51 are displayed as a list of transfer candidates. Each of these data items is displayed and can be selected individually using checkboxes or the like. In other words, the user can specify or deselect the data to be transferred on a single selection screen.

[0107] ● Import / Export Figure 18 illustrates the import and export functions of project data 70. The project management unit 54 imports or exports some or all of the multiple data that constitute the project data 70. For example, when export is instructed, the project management unit 54 may display a screen for selecting the data to be exported on the display unit 7. In Figure 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 that includes the PLC programs 71c, display components 73a, 73b, and symbol definitions 72 according to the user's selection. Furthermore, the project management unit 54 creates an export unit 140b that includes the PLC programs 71c, 71d, 71e, display components 73a, and symbol definitions 72 according to the user's selection.

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

[0109] This will allow the programs and display components 73 related to PLC1 to be reused in other projects, thus improving the efficiency of project data development.

[0110] ● Coordination of editing processes In some cases, the WebHMI development environment 61 and the PLC development environment 51 may reference the same symbols. Furthermore, the referenced symbols may change in one of the environments, WebHMI development environment 61 or PLC development environment 51. In this case, if the symbol changes in one environment were automatically reflected in the other environment, the user's editing burden would be reduced.

[0111] For example, in the WebHMI development environment 61, the buffer memory of expansion unit 4a may be set as the reference destination for a certain display component 73. Normally, multiple expansion units 4 are each assigned a unique unit number, and the buffer memory is also linked to 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, if the configuration of PLC1 is changed, the unit numbers are reassigned. For example, if expansion unit 4a is connected next to the base unit 3, the unit number of the base unit 3 is set to "0" and the unit number of expansion unit 4a is set to "1". If expansion unit 4b is additionally connected between the base unit 3 and expansion unit 4a, the unit number of expansion unit 4b is set to "1" and the unit number of expansion unit 4a is set to "2". In this way, if the unit configuration of PLC1 is changed, the unit number of expansion unit 4a will also be changed. Therefore, if the buffer memory (buffer memory number = 16) of expansion unit 4a (unit number = 1) is specified as the reference destination for a certain display component, it is necessary to change the reference destination of that display component to the buffer memory (buffer memory number = 16) of expansion unit 4a (unit number = 2).

[0112] The PLC development environment 51 stores the unit number of the basic unit 3 and the unit numbers of expansion units 4a and 4b in the configuration information 74. Furthermore, the editor unit 52a of the PLC development environment 51 reassigns unit numbers when the connection position of expansion unit 4a is changed or when other expansion units 4 are added. The search unit 57 searches for symbols associated with the previous unit number and changes the unit number of the extracted symbols to the new unit number. Additionally, when a display component 73 generated by the WebHMI development environment 61 extracts a symbol associated with the previous unit number, the search unit 57 notifies the WebHMI development environment 61's linkage unit 56b via the linkage unit 56a that the unit number of the extracted symbol has been changed. The linkage unit 56b searches for and extracts the symbol associated with the previous unit number from the symbol reference information 76b within the display component 75 being edited, and rewrites the unit number of the extracted symbol to the new unit number. This reduces the burden on the user.

[0113] ●When the configuration of the exporting PLC and the importing PLC are different. The exporting PLC1 attempting to export project data 70 may consist of a basic unit 3 and three expansion units 4, while the importing PLC1 attempting to import project data 70 may consist of a basic unit 3 and four expansion units 4. In such cases, the user must appropriately edit the imported project data 70 according to the configuration of the importing PLC1. The project management unit 54 may display a dialog box on the display unit 7 to inquire with the user about the relationship between the expansion units in the exporting PLC1 and the expansion units in the importing PLC1.

[0114] Figure 19 shows a dialog box 150 for unit assignment. The dialog box 150 has a unit assignment unit 151 that accepts user specifications regarding the correspondence between the export-side expansion unit and the import-side expansion unit. In this example, the user specifies that the expansion unit with unit number 2 on the export-side PLC1 should be assigned unit number 3 on the import-side PLC1. Based on this unit assignment, the project management unit 54 searches the project data 70 to be imported, extracts all symbols associated with the original unit number (=2), and rewrites the extracted symbols with the new unit number (=3). At this time, in addition to the unit number, symbol names based on configuration information are also rewritten. For example, if the WebHMI development environment references relays assigned sequentially from unit number 0, their symbol names will also be 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. Project Management Department 54 will change the symbol name based on the change in the unit number.

[0115] ●When importing display components with image data into the PLC development environment The WebHMI development environment 61 manages image data for Web pages that implement WebHMI by assigning identification information to it. Since the image data is stored as image files, identification information (e.g., identification number) is associated with the file name. The import / export function described above allows the project management unit 54 to import a portion of project data 70 for one PLC1 into project data 70 for another PLC1. At this time, the identification information of the image data contained in the exporting (source) project data 70 may already be used in the importing (destination) project data 70 of the other PLC1. For example, in the exporting project data 70, the image data with the file name "AAA.png" may be assigned the identification number "0", and in the importing project data 70, the image data with the file name "BBB.png" may be assigned the identification number "0". In other words, the identification numbers are duplicated.

[0116] Therefore, the project management unit 54 determines whether the identification number assigned to the image data in the source project data 70 overlaps with the identification number assigned to the image data in the destination project data 70. If a duplicate identification number is found, the project management unit 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. Furthermore, the project management unit 54 searches for display components 73 in the source project data 70 that reference the identification number before replacement, and replaces the identification number of the image data in the extracted display components 73 with the unused identification number. This automatically avoids duplication of identification information for image data, reducing the burden on users to change the identification information. Here, an identification number is given as an example of identification information, but the identification information may be any string such as a file name. In this case as well, the project management unit 54 replaces the duplicate identification information in the source with the unused identification information in the destination. Also, the image data may be video data in addition to still images. Audio data may be used instead of, or in addition to, image data. Subsequently, the project management department 54 merges or incorporates the source project data 70 into the destination project data 70.

[0117] ● UI of the WebHMI development environment Figures 20 and 21 show the UI 160 of the drawing tool in the WebHMI development environment 61. The mode switching switch 161 is used to switch the operating mode of the WebHMI development environment 61 (e.g., edit mode, online edit mode). The mode switching unit 53b receives mode switching instructions from the user via the mode switching switch 161. In Figure 20, edit mode is selected.

[0118] The drawing area 162 is a display area where one or more display components constituting the WebHMI are placed. The user places display components at any position in the drawing area 162 by dragging and dropping the display components displayed in the component list display unit 164 using the pointer 103. Various display components are displayed in the component list display unit 164 for selection. Text display components are display components that display predetermined fixed text (e.g., letters or numbers). Character display components are display components that refer to and display characters held in a predetermined symbol. The type of symbol referenced by character display components is limited to strings. Numerical display components are display components that display numerical values ​​held in a predetermined symbol. The type of symbol referenced by numerical display components is limited to numbers. Lamp display components are display components that indicate binary values ​​(on / off) held in symbols such as bit devices. N-state lamp display components are display components that indicate which of the N states held in a predetermined symbol is in use by the difference in color. Chart display components are display components that graph and display numerical values ​​held in a predetermined symbol. Chart display components may include line graphs, bar graphs, sector meters, bar meters, pie charts, etc. Additionally, display components for displaying alarm history data, histograms, Pareto charts, and statistical charts such as Gantt charts may be presented as selectable options. Control components for rewriting the values ​​of referenced symbols may also be presented as selectable options. Furthermore, display components for displaying media data such as image data, camera data, and drawn shapes may be displayed as selectable options.

[0119] In Figure 20, the drawing area 162 already contains elements such as a lamp display component 165, a character display component 166, a text display component 167, a numerical display component 168, and a chart display component 169. In Figure 20, the numerical display component 168 is selected by the pointer 103, so the property settings window 163 for the numerical display component is also displayed. The property settings window 163 accepts various settings necessary for displaying numerical values. For example, the name of the referenced symbol, the number of display digits, whether to enable or disable zero suppression, and the number of decimal places are presented as setting items in the property settings window 163. The property settings window 163 for the chart component has a setting item for a symbol that can handle time-series data as the referenced symbol.

[0120] Figure 21 shows the UI160 with its operating mode switched to online edit mode by the mode switching switch 161. As described above, in online edit mode, the communication processing unit 58b acquires the values ​​of symbols referenced by display components placed in the drawing area 162 from the PLC1 in real time. The drawing unit 63 displays the acquired values ​​on the display components. In online edit mode, since values ​​are acquired from the PLC1 periodically, the information displayed on the display components is also updated periodically. The timing of value updates is not necessarily periodic; it may be when predetermined conditions are met.

[0121] ● Linkage of numerical display formats In PLC systems, there are two ways to display decimal numbers: fixed-point numbers and floating-point numbers. Fixed-point numbers are a method of representing numbers by fixing the number of digits where the decimal point is placed. For example, if we define "the digit from the bottom to the right as the decimal part" in decimal numbers, then "123" means "12.3" and "-12345" means "-1234.5". Floating-point numbers are a method of representing numbers using a sign part, a fixed-length mantissa, and a fixed-length exponent. In the C language, floating-point numbers are treated as variables of type float or double. In PLC systems, floating-point numbers are treated as types REAL or LREAL.

[0122] The linking unit 56b queries the linking unit 56a for the definition of the symbol designated as the display target for the numerical display component 168 shown in Figure 20. In other words, a request to obtain the definition is sent. The linking unit 56a searches for and obtains the definition of the specified symbol (data format (data type), etc.) and sends the obtained definition as a response to the linking unit 56b. If the symbol is a floating-point variable, the linking unit 56b sets the display format of that variable to a floating-point number. If the symbol is an integer variable, the linking unit 56b sets the display format of that variable to a fixed-point number. The editor unit 52b accepts the user's specification for the number of decimal places (e.g., 2) in the properties file setting window 163 and passes it to the linking unit 56b. If the symbol is a floating-point variable and its representation format is a floating-point number, the linkage unit 56b rounds or truncates the symbol's value according to the number of decimal places specified by the user and displays the value on the numeric display component 168. For example, if the symbol's value is 123.45678, truncation is performed according to the specified number of decimal places (=2), and 123.45 is displayed on the numeric display component 168. On the other hand, if the symbol is an integer and its representation format is a fixed-point number, the linkage unit 56b adds a decimal point to the value according to the specified number of decimal places. For example, if the symbol's value is 54321 and the number of decimal places is 2, 543.21 is displayed on the numeric display component 168. In this way, the linkage unit 56b obtains the data format of the symbol referenced by the numeric display component 168 from the PLC development environment 51 and automatically adjusts the display format of the symbol according to the display format specified by the user. Furthermore, the WebHMI development environment 61 may treat the values ​​of floating-point symbols as floating-point numbers and integer symbols as fixed-point numbers. In the former case, rounding or truncation is applied according to the number of decimal places specified by the user. In the latter case, decimals are applied according to the number of decimal places specified by the user.

[0123] Thus, the WebHMI development environment 61 can automatically set the representation format in WebHMI by referencing the variable types in the PLC development environment 51. Therefore, users do 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, users only need to specify the number of decimal places. Furthermore, with calculation functions in WebHMI, such as the conditional formatting function, users can mix floating-point and fixed-point numbers without making any additional settings. The conditional formatting function is a function that changes the display color or font of a display component based on a comparison between the symbol and a reference value. In the conditional formatting function as well, the data format in the conditional expression is automatically determined according to the type of the symbol to be displayed, so users do not need to manually change the data format. In particular, even if floating-point and fixed-point numbers are mixed, the data format for each is unified, so users do not need to manually set each data format.

[0124] In the PLC development environment 51, even if the symbol data format is changed from floating-point to integer or vice versa, the user can make the symbol display follow the type change simply by changing the number of decimal places.

[0125] <Summary> [Perspective 1] The communication unit 13 is an example of a communication means for communicating with the PLC1. The CPU 11 functions as a means for providing the integrated development environment 50. The integrated development environment 50 includes a first development environment (e.g., PLC development environment 51) and a second development environment (e.g., 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., control programs 71a, data utilization programs 71b) that are transferred to the PLC1 via the communication means and executed. A non-Web application is a term used to distinguish it from a Web application and may also be called a PC application or OS-dependent application. An OS-dependent application is an application whose executable code 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., WebHMI) that displays symbol values ​​collected from symbols (e.g., devices and variables) used in the PLC1 according to the user program. The display screen is generated as a Web page described by, for example, data describing the structure, data describing the decoration, and code describing the dynamic processing. 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 operating system. Although a web browser is an OS-dependent application, a web application executed by a web browser may be an OS-independent application. The display screen may be, for example, a web page written using HTML and CSS. This provides a program creation support device equipped with an integrated development environment that combines a development environment for developing user programs executed on PLC1 and a development environment for the display screen. This allows users to seamlessly utilize the user program development environment and the display screen development environment. Since a web application-based development environment is provided, users will likely see increased development efficiency and future expandability of the display screen. For example, it will be possible to reuse existing web frameworks, eliminating the need for users to prepare a development platform from scratch.Furthermore, users will no longer need to develop their own rendering logic for display screens. For example, widely used web technologies can be reused as display components such as text, switches, and graphs placed on the display screen. This will make it easier for users to create rich UI / UX (user experience). In addition, web elements (components) created for one display screen can be reused for other display screens. It will also become easier to reuse widely used components in the world for display screens. Not only the structure and appearance of web pages, but also their behavior (such as click actions and data interpretation) will be easier to reuse for display screens. Moreover, by componentizing display components in display screens, interference in style and behavior between components will be less likely to occur. In addition, development and maintenance efficiency will be improved as development and maintenance can be done on a component-by-component basis.

[0126] [Perspective 2] The CPU 11 (providing means) may be configured to manage the user program and the display components for drawing the display screen as a single project. Conventionally, the user program project and the WebHMI display screen project were separate, which placed a heavy management burden on the user. In this embodiment, these can be managed under a single project, thus reducing the burden on the user.

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

[0128] [Perspective 4] The search unit 57 may be called from the first and second development environments and function as a common search means to perform searches across the entire project. This allows users to perform searches across the entire project with a single search function. This allows users to use the user program development environment and the display screen development environment more seamlessly.

[0129] [Perspective 5] The first and second development environments may use search results from a common search mechanism to assist user input (e.g., assist with entering symbol names) or to perform error checking on information entered by the user (e.g., symbol names). This will reduce the burden on the user regarding the input of symbols and other elements. Furthermore, this will allow the user to use the user program development environment and the display screen development environment more seamlessly.

[0130] [Perspective 6] The CPU 11 (providing means) may acquire symbol values ​​from the programmable logic controller via communication means and display the symbol values ​​in association with the user program in the first development environment. For example, when the operating mode is set to monitor mode, the PLC development environment 51 may display device values ​​(e.g., on / off, analog values) acquired from PLC1 for devices described in the ladder program. The CPU 11 (providing means) may also display the symbol values ​​on the display screen. For example, the CPU 11 may acquire the symbol values ​​of symbols referenced by the WebHMI display component from PLC1 and display the device values ​​using the WebHMI display component. In this way, the user can immediately check how the display screen will look in actual operation while developing the display screen. For example, during WebHMI debugging, the user can check how the WebHMI will look directly in the WebHMI development environment without having to launch a general-purpose web browser each time.

[0131] [perspective 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 that constitute the display screen, which was created in the first development environment, via the first web server. Furthermore, the second development environment may reflect the definition information in the display components for drawing the display screen. For example, if a device comment for a certain device has been created in the PLC development environment 51, and the WebHMI development environment 61 references that device using 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. This allows the user to use the user program development environment and the display screen development environment even more seamlessly.

[0132] [Perspective 8] PLC1 may have a second web server (e.g., web server 60b) that reflects and provides information stored in symbols to 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. This allows the user to immediately check how the display screen will look in actual operation while developing the display screen.

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

[0134] [Perspective 10] The integrated development environment 50 may have an editor mode that accepts editing of user programs in the first development environment and editing of display screens in the second development environment. The integrated development environment 50 may also have a monitor mode that retrieves and displays symbol values ​​from symbols associated with user programs from a programmable logic controller in the first development environment, and retrieves and displays symbol values ​​from symbols associated with display screens in the second development environment from a programmable logic controller. The first and second development environments may each have an instruction means for instructing the switching between editor mode and monitor mode. For example, a mode selection menu 101 is an example of an instruction means. This allows users to use the user program development environment and the display screen development environment more seamlessly. In addition, users can immediately check how the display screen will look in actual operation while developing the display screen.

[0135] [Perspective 11] The web server in the first development environment and the web application running in the embedded browser in the second development environment may communicate via a Web API. This allows the first and second development environments to cooperate in creating or managing projects that include user programs and display components for the display screen. This enables users to use the user program development environment and the display screen development environment more seamlessly.

[0136] [Perspective 12] The first and second development environments may synchronize their operating modes through communication via a Web API. For example, when the operating mode of the WebHMI development environment 61 is switched from editor mode to monitor mode, the operating mode of the PLC development environment 51 is also switched from editor mode to monitor mode. This reduces the burden on the user regarding switching operating modes.

[0137] [Perspective 13] As explained using Figures 8 to 11, when switching between the operating modes of the first and second development environments, user operations on both the first and second development environments may be prohibited. This allows the user to safely switch between operating modes.

[0138] [Perspective 14] The first and second development environments may prohibit switching operating modes if, when a switch in operating mode is instructed, at least one of the first or second development environments is busy or displaying a dialog box. This allows the user to safely switch operating modes.

[0139] [Perspective 15] As explained in relation to Figure 12, the first development environment may be configured to accept a startup command for the second development environment and start the second development environment. This would allow the user to enjoy even more of the benefits of an integrated development environment.

[0140] [Perspectives 16, 17] The first and second development environments may synchronize their language settings via a Web API. The first and second development environments may also synchronize their comment sets via a Web API. Language settings refer to the display language (Japanese, English, French, Chinese, etc.) of the integrated development environment 50. A comment set is, for example, a group (set) of comments for multiple display components applied to a WebHMI. For example, different comment sets may be provided for each language, such as an English comment set and a Japanese comment set. If different display languages ​​or comment sets are applied in the first and second development environments, users will be confused. Therefore, synchronizing these reduces the burden on users of switching language settings or comment sets.

[0141] [Perspective 18] The transfer unit 55 is an example of a transfer means for transferring a project created in an integrated development environment to a programmable logic controller. The transfer unit 55 may also perform consistency checks between symbols written in user programs included in the project and symbols referenced by display components on the display screen. The conversion and inspection functions for project data 70 may be provided inside the transfer unit 55 or outside the transfer unit 55.

[0142] [Perspectives 19-23] The project management unit 54 may function as an import means for performing project import. The project management unit 54 may be configured to update the first project to align the unit configuration-dependent descriptions in the first project with the unit configuration of the second project when importing the first project into the second project, and then import the updated first project into the second project. Here, the unit configuration-dependent descriptions may include descriptions of symbol identification information (e.g., buffer memory numbers) that changes depending on the unit configuration.

[0143] This section describes the automatic modification of a project in response to differences in unit configurations during import. However, this is also applicable in other situations. For example, when the configuration information 74 defining the unit configuration in the PLC development environment 51 is changed, the WebHMI development environment 61 needs to modify the symbol reference information 76a and 76b, which depend on the unit configuration. In this case as well, the PLC development environment 51 modifies the symbol reference information 76a and sends a request to the WebHMI development environment 61 to change the symbol reference information 76b, allowing the WebHMI development environment 61 to appropriately modify the symbol reference information 76b. Here, the change request may specify the unit number before the change and the unit number after the change. This will allow the WebHMI development environment 61 to easily modify the symbol reference information 76b.

[0144] As explained in relation to Figure 19, the project management unit 54 may link the description of the symbol associated with the first identification information in the first project to the second identification information, in accordance with user input indicating the correspondence between the first identification information of the extension unit included in the unit configuration of the first project and the second identification information of the same extension unit included in the unit configuration of the second project. This will reduce the burden on the user regarding the work of correcting the identification information.

[0145] Project Management Department 54 may change the identification information of centrally managed data such as image data, video data, and audio data included in the first project to identification information not used in the second project if that identification information is already being used in the second project. This will reduce the burden on users regarding the work of correcting identification information.

[0146] [Perspectives 24-26] The second development environment (e.g., WebHMI development environment 61) may obtain the type of symbol associated with the display components that make up 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, if the type of symbol is floating-point, the second development environment may set the display format of the symbol value in the display component to floating-point. If the type of symbol is integer, the second development environment may set the display format of the symbol value in the display component to fixed-point. The second development environment may accept a specification of the number of decimal places for the symbol value and display the symbol value in the display component by adding a decimal point according to the number of decimal places. When the first and second development environments are independent, the user has to define or declare the type of 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 and second development environments are integrated and can cooperate with each other. Therefore, the second development environment can request the symbol type from the first development environment and set the display format according to this type. This reduces the burden on the user.

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

Claims

1. A program creation support device for a programmable logic controller, comprising: an execution engine that uses symbols, which are devices or variables, according to a control program, which is a user program; and a web server that provides display components, which are drawing data, to a browser in order to realize WebHMI on an external display device having a browser; A non-web application-based PLC development environment that has a first web server and supports the development of the user program, A web application-based WebHMI development environment that supports the development of the display screen of the aforementioned WebHMI, It includes an integrated development environment for editing project data, including the user program and the display component, which integrates the above. The aforementioned integrated development environment includes an embedded browser that realizes the WebHMI development environment by executing a Web application program. The aforementioned WebHMI development environment is An editor section for editing WebHMI display components according to user instructions, A communication processing unit that communicates with the first web server in order to cooperate with the PLC development environment, A program creation support device having a rendering unit that renders a web page described by data describing the structure, data describing the decoration, and code describing the dynamic processing, according to a web application program.

2. The WebHMI development environment further includes a linkage unit that uploads the display components edited by the editor unit via the first Web server. The PLC development environment further comprises a project management unit that writes the edited display components to the project data, as described in claim 1.

3. The aforementioned project data is The user program, symbol definition information, and programmable logic controller configuration information created through the PLC development environment, This includes the display components of the display screen created through the WebHMI development environment, The program creation support device according to claim 1, characterized in that the display component includes reference information for referring to a symbol that holds the information displayed on the display screen.

4. The program creation support device according to claim 3, wherein the integrated development environment further comprises a common search means that is called from the PLC development environment and the WebHMI development environment and performs a search across the entire project data.

5. The program creation support device according to claim 4, characterized in that the PLC development environment and the WebHMI development environment perform user input assistance or error checking of information entered by the user using the search results from the common search means.

6. The program creation support device according to any one of claims 1 to 5, characterized in that the integrated development environment obtains the value of the symbol from the programmable logic controller and displays the value of the symbol in association with a user program in the PLC development environment, or displays the value of the symbol on the display screen.

7. The program creation support device according to any one of claims 1 to 6, characterized in that the WebHMI development environment acquires definition information of symbols associated with display components constituting the display screen, which is created in the PLC development environment, via the first Web server, and reflects it in the display components for drawing the display screen.

8. The programmable logic controller has a web server that reflects and provides the information stored in the symbols on the display screen created by the WebHMI development environment. The program creation support device according to claim 7, characterized in that the embedded browser accesses the Web server via the first Web server and displays the display screen.

9. The program creation support device according to claim 8, characterized in that the PLC development environment and the programmable logic controller are configured to provide TCP transparent communication to the embedded browser and the web server.

10. The integrated development environment includes an editor mode that accepts editing of the user program in the PLC development environment and editing of the display screen in the WebHMI development environment, and a monitor mode that retrieves and displays values ​​from symbols associated with the user program in the PLC development environment and retrieves values ​​of symbols associated with the display screen from the programmable logic controller and displays them on the display screen in the WebHMI development environment. The program creation support device according to any one of claims 1 to 9, characterized in that the PLC development environment and the WebHMI development environment each have an instruction means for instructing the switching between the editor mode and the monitor mode.

11. The program creation support device according to claim 1, characterized in that the PLC development environment and the WebHMI development environment are linked via Web API to match the operating mode of the PLC development environment and the operating mode of the WebHMI development environment.

12. The program creation support device according to claim 11, characterized in that when switching the operating mode between the PLC development environment and the WebHMI development environment, user operations on the PLC development environment and user operations on the WebHMI development environment are prohibited.

13. The program creation support device according to any one of claims 11 or 12, characterized in that, when a switch in the operating mode is instructed, the PLC development environment and the WebHMI development environment prohibit the switch in the operating mode if at least one of them is busy or displaying a dialog box.

14. The program creation support device according to any one of claims 1 to 13, characterized in that the PLC development environment is configured to receive a startup instruction for the WebHMI development environment and to start the WebHMI development environment.

15. The program creation support device according to any one of claims 1 to 14, characterized in that the WebHMI development environment obtains the type of symbol associated with the display components constituting the display screen from the PLC development environment and sets the display format of the symbol value in the display component according to the type.

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

  • Programmable display device and programmable logic controller system including the same

    JP2020166827A

  • Method for providing engineering tool services

    US20030061311A1