Programming support device
By introducing an integrated development environment into the PLC program creation support device, combining non-network applications and network applications, the problem of independent user programs and display screen development environments is solved, and development efficiency and simplicity of project management is improved.
Patent Information
- Application Number
- JP2021062987
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2021-04-01
- Publication Date
- 2025-05-08
- Estimated Expiration
- 2041-04-01
AI Technical Summary
In the prior art, PLC program creation support devices lack an integrated development environment, resulting in the independent development environment of user programs and display screens, which is inefficient.
It provides an integrated development environment, combining non-network applications and network applications, supports the development of user programs and display screens, and realizes the development of display screens by generating structure, decoration and dynamic processing web pages.
It realizes the integration of user programs and display screen development environment, improves development efficiency, simplifies project management, and reduces user operation burden.
Smart Images

Figure 0007672859000001 
Figure 0007672859000002 
Figure 0007672859000003
Abstract
Description
[Technical field]
[0001] The present invention relates to a program creation support device. [Background technology]
[0002] A programmable logic controller (PLC) is a controller that controls industrial machines such as manufacturing equipment, transport devices, and inspection devices in factory automation. PLCs control 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 externally to the PLC (Patent Document 1). [Prior art documents] [Patent documents]
[0003] [Patent Document 1] JP 2020-166827 A 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 the display program and display settings for the HMI are created on a programming support device using dedicated software. The programming support device is realized by a personal computer (PC) or an industrial computer (IPC). On the other hand, it would be convenient if it were possible to access the PLC from a PC located away from the PLC and monitor the PLC data in real time, instead of using the 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 PLC monitoring device. This type of monitoring device or display device will be called WebHMI.
[0005] Incidentally, the program creation support device has a PC application-based software development environment for creating user programs such as ladder programs executed by PLCs. In addition, the program creation support device may have a software development environment for HMI or WebHMI installed separately. Conventionally, these two software development environments are independent, and users have to start them individually to develop software for PLCs or WebHMIs, resulting in poor development efficiency. Therefore, an object of the present invention is to provide a program creation support device equipped with an integrated development environment that integrates a development environment for developing user programs executed by PLCs and a development environment for a display screen. [Means for solving the problem]
[0006] The present invention relates to, for example, A program creation support device for a programmable logic controller, comprising: an execution engine that uses symbols, which are devices or variables, in accordance with a control program, which is a user program; and a web server that provides display components, which are drawing data, to a browser to realize a WebHMI on an external display device having the browser, the display components being the drawing data, the program creation support device comprising: The above A communication means for communicating with the programmable logic controller; The program is transferred to the programmable logic controller via the communication means and executed. The above A first development environment based on a non-Web application that supports the development of user programs; According to the display parts transferred as drawing data to the programmable logic controller via the communication means and provided to the browser from the Web server, Displaying symbol values collected from symbols used in accordance with the user program in the programmable logic controller WebHMI The present invention provides a program creation support device, characterized by having: a providing means for providing an integrated development environment that integrates a Web application-based second development environment that supports the development of a display screen by generating the display screen as a Web page described by data describing a structure, data describing decoration, and code describing dynamic processing. Effect of the Invention
[0007] According to the present invention, there is provided a program creation support device equipped with an integrated development environment that integrates a development environment for developing a user program to be executed on a PLC and a development environment for a display screen. [Brief description of the drawings]
[0008] [Figure 1] Diagram showing a PLC system [Diagram 2] Diagram explaining PC [Diagram 3] Diagram explaining PLC [Figure 4] Functions realized by the CPU of the programming support device [Diagram 5] Functions realized by the PLC CPU [Figure 6] A sequence diagram showing the communication between the PLC development environment and the WebHMI development environment. [Figure 7] A sequence diagram showing the communication between the PLC development environment and the WebHMI development environment. [Figure 8] Flowchart showing a method for switching between operation modes [Figure 9] Flowchart showing a method for switching between operation modes [Figure 10] Flowchart showing a method for switching between operation modes [Figure 11] Flowchart showing a method for switching between operation modes [Figure 12] A diagram explaining how to start the WebHMI development environment [Figure 13] Diagram explaining the UI of the WebHMI development environment [Figure 14] Diagram explaining the UI of the WebHMI development environment [Figure 15] Diagram explaining the UI of the WebHMI development environment [Figure 16] Diagram explaining the search and replace function [Figure 17] Diagram explaining the input assistance function [Figure 18] Diagram explaining project import / export [Figure 19]A diagram explaining how to enter the unit configuration correspondence when importing [Figure 20] Diagram explaining the UI of the WebHMI development environment [Figure 21] Diagram explaining the UI of the WebHMI development environment DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0009] Hereinafter, the embodiments will be described in detail with reference to the accompanying drawings. Note that the following embodiments do not limit the invention according to the claims, and not all combinations of features described in the embodiments are necessarily essential to the invention. Two or more features among the multiple features described in the embodiments may be arbitrarily combined. In addition, the same reference numbers are given to the same or similar configurations, and duplicated descriptions are omitted. Lowercase alphabets may be added to the end of reference numbers indicating the same or similar elements. When matters common to multiple elements are described, the lowercase alphabets are omitted.
[0010] <System configuration> First, in order to allow those skilled in the art to better understand programmable logic controllers (PLCs, which may also be simply called programmable controllers), the configuration and operation of a typical PLC will be described.
[0011] FIG. 1 is a conceptual diagram showing an example of a configuration of a programmable logic controller system according to an embodiment of the present invention. As shown in FIG. 1, this system includes a PC 2a for editing a user program such as a ladder program, and a PLC (Programmable Logic Controller) 1 for comprehensively controlling various control devices installed in a factory or the like. PC is an abbreviation for personal computer. The user program may be created using a graphical programming language such as a motion program in a flow chart format, such as a ladder language or an SFC (Sequential Function Chart), or may be created using a high-level programming language such as the C language. In the following, for convenience of explanation, the user program executed by the basic unit 3 is assumed to be a ladder program. The PLC 1 includes a basic unit 3 with a built-in CPU, and one or more expansion units 4. One or more expansion units 4 are detachable from the basic unit 3.
[0012] The basic unit 3 includes a display unit 5 and an operation unit 6. The display unit 5 is a display device that displays the operating status of each expansion unit 4 attached to the basic unit 3. The display unit 5 switches the display content according to the operation content of the operation unit 6. The display unit 5 usually displays the current value (device value) of the device in the PLC 1 and error information that has occurred in the PLC 1. The device is a name that indicates an area in memory provided to store device values (device data), and may also be called a device memory. The device value is information that indicates the input state from the input device, the output state to the output device, and the state of the internal relay (auxiliary relay), timer, counter, data memory, etc. that are set in the user program. The device value type (symbol type) is a bit type and a word type. A bit device stores a device value of 1 bit. A word device stores a device value of 1 word. The operation unit 6 includes a button, a switch, etc. for inputting a user's instruction to the basic unit 3. The PLC 1 may be configured to handle variables in addition to devices. Devices and variables are called symbols, and the current value of a symbol is called a symbol value.
[0013] The expansion unit 4 is provided to expand the functions of the PLC 1. A field device (controlled device) 10 corresponding to the function of the expansion unit 4 may be connected to each expansion unit 4, and each field device 10 is connected to the basic unit 3 via the expansion unit 4. The field device 10 may be an input device such as a sensor or a camera, or an output device such as an actuator. In addition, multiple field devices may be connected to one expansion unit 4.
[0014] For example, the extension unit 4b may be a positioning unit that drives a motor (field device 10) to position a workpiece, or may be a counter unit that counts signals from an encoder (field device 10) such as a manual pulsar.
[0015] The expansion unit 4a is a data collection unit that executes a data utilization program, which is a user program, to collect data to be collected from the basic unit 3 and the expansion unit 4b, processes the collected data to create data to be displayed, and creates display data for displaying a dashboard on the display unit 7 or the PC 2. The basic unit 3 is sometimes called a CPU unit. Note that a system including the PLC 1 and the PC 2 may be called a programmable logic controller system.
[0016] The PC2a is a computer operated mainly by a programmer. On the other hand, the PC2b is a computer operated by a field staff member or the like. The PC2a may be called a program creation support device (setting device). The PC2 is, for example, a portable notebook type or tablet type personal computer or a smartphone, and is an external computer equipped with a display unit 7 and an operation unit 8. The external computer is a computer outside the PLC1. A ladder program, which is an example of a user program for controlling the PLC1, is created using the PC2a. The created ladder program is converted into a mnemonic code in the PC2a. The PC2 is connected to the basic unit 3 of the PLC1 via a communication cable 9 such as a USB (Universal Serial Bus) cable. For example, the PC2a sends the ladder program converted into the mnemonic code to the basic unit 3. The basic unit 3 converts the ladder program into a machine code and stores it in a memory provided in the basic unit 3. Note that the mnemonic code is transmitted to the basic unit 3 here, but the present invention is not limited to this. For example, the PC2a may convert the mnemonic code into an intermediate code and transmit the intermediate code to the basic unit 3.
[0017] 1, the operation unit 8 of the PC 2 may include a pointing device such as a mouse connected to the PC 2. The PC 2 may be configured to be detachably connected to the base unit 3 of the PLC 1 via a communication cable 9 other than a USB cable. The PC 2 may be connected to the base unit 3 of the PLC 1 by wireless communication without using the communication cable 9.
[0018] The HMI (human machine interface) 16 is a display device that reads and displays information stored in a device or buffer of the PLC 1. The HMI 16 may have, for example, a touch panel type input device. When the HMI 16 is equipped with a Web browser, the HMI 16 functions as a WebHMI.
[0019] <Program creation support device> FIG. 2 is a block diagram for explaining the electrical configuration of the PC 2. As shown in FIG. 2, the PC 2 includes a CPU 11, a display unit 7, an operation unit 8, a storage device 12, and a communication unit 13. The display unit 7, the operation unit 8, the storage device 12, and the communication unit 13 are each electrically connected to the CPU 11. The storage device 12 includes a RAM, a ROM, an HDD, and an SSD, and may further 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 an integrated development environment program 14a and a Web browser program 14d. The integrated development environment program 14a is software that provides an integrated development environment that integrates a PLC development environment that supports the development of a user program (e.g., ladder program) that is transferred to the PLC 1 and executed, 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 the user program in the PLC 1. The integrated development environment is realized by a user of the PC 2a having the CPU 11 execute the integrated development environment program 14a. The PLC development environment is realized by a PC application program 14b. The PC application program 14b is a program that depends on the operating system (OS) of the PC, such as win32. The PC application program 14b may be any program other than a Web application-based program, and may be, for example, an OS-independent program. The WebHMI development environment is realized by a Web application program 14c. The Web application program 14c is a Web application-based program, and is therefore an OS-independent program. Therefore, the Web application program 14c can be executed by either a built-in 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 causes the CPU 11 to function as a Web browser.
[0021] A user edits the project data 70 by operating the operation unit 8 in the integrated development environment 50. The project data 70 includes one or more user programs (e.g., ladder program), configuration information of the base unit 3 and the extension unit 4, drawing data of the WebHMI, a data utilization program executed by the extension unit 4a, and definition information of symbols. The configuration information is information indicating the connection positions of the multiple extension units 4 relative to the base unit 3, functions provided in the base unit 3 (e.g., communication function and positioning function), and information indicating the functions of the extension unit 4 (e.g., shooting function). The drawing data is a group of display components for realizing the WebHMI, and is realized by markup data (e.g., HTML data) describing the structure of the front end, style sheet data (e.g., CSS data) describing decoration, and code (e.g., JavaScript (registered trademark) code) describing dynamic processing. The front end refers to the part of a Web page, a Web service, and a Web application that is directly visible to the user. The style sheet data describing decoration may be provided in a file format, for example. In this case, the style sheet data may be called by a description in the markup data describing the structure that calls an external style sheet data file. The code describing the dynamic processing may be provided, for example, in a file format. In this case, the code describing the dynamic processing may be called by a description in the markup data describing the structure that calls an external code file. A front-end in a format that can be used by calling an external style sheet data file or an external code file is highly reusable and maintainable, and can use, for example, a general-purpose front-end component. By adopting such a general-purpose and highly reusable Web drawing technology, components can be reused in the development of a WebHMI, etc., and the maintainability of the WebHMI, etc. is improved. In the following, the drawing data is referred to as a display component. The data utilization program includes a program for collecting control data (such as device values) in the PLC 1, processing the data, and creating data to be passed to the WebHMI.
[0022] Editing the project data 70 includes creating and modifying (re-editing) the project data 70. The user reads out the project data 70 stored in the storage device 12 as necessary, and modifies the project data 70 using the integrated development environment program 14a.
[0023] The communication unit 13 communicates with the basic unit 3 via the communication cable 9a. The CPU 11 transfers the project data 70 to the basic unit 3 via the communication unit 13. The communication unit 13 communicates with the 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. The basic unit 3 may transfer data of the project data 70 that is required by the expansion unit 4a to the expansion unit 4a.
[0024] <plc> FIG. 3 is a block diagram for explaining the electrical configuration of the PLC 1. As shown in FIG. 3, the basic unit 3 includes a CPU 31, a display unit 5, an operation unit 6, a storage device 32, and a communication unit 33. The display unit 5, the operation unit 6, the storage device 32, and the communication unit 33 are each electrically connected to the CPU 31. The storage device 32 may include a RAM, a ROM, a memory card, and the like. The storage device 32 has a plurality of storage areas such as a device unit 34 and a project storage unit 35. The device unit 34 has a bit device, a word device, and the like, and each device stores a device value. The project storage unit 35 stores project data 70 input from the PC 2a. As shown in FIG. 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. Note that a communication function related to the unit internal bus 19 is implemented in the CPU 31, but may be implemented as a part of the communication unit 33. The communication unit 33 may have a network communication circuit. The CPU 31 receives the project data 70 from the PC 2a via the communication unit 33.
[0025] Here, a supplementary explanation will be given about the unit internal bus 19. This unit internal bus 19 is a communication bus used for input / output refresh. Input / output refresh is a process for updating device values between the basic unit 3 and the expansion unit 4. Input / output refresh is performed each time a ladder program is executed (i.e., each scan).
[0026] The expansion unit 4 includes a CPU 41 and a memory 42. The CPU 41b of the expansion unit 4b controls the field device 10 according to instructions (device values) from the basic unit 3 stored in the device. The CPU 41b also stores the control results of the field device 10 in a device called a buffer memory. The control results stored in the device are transferred to the basic unit 3 by input / output refresh. The control results stored in the device are also transferred to the basic unit 3 in accordance with a read command from the basic unit 3, even at a timing different from the input / output refresh. The memory 42 includes a RAM, a ROM, and the like. In particular, a storage area used as a buffer memory is secured in the RAM. The memory 42 may have a buffer that temporarily holds data (e.g., still image data or video data) acquired by the field device 10.
[0027] The CPU 41a of the expansion unit 4a, which functions as a data utilization unit, communicates with the PC 2a via the communication unit 43 and the cable 9b. The data utilization unit is an expansion unit that executes a data utilization program. The CPU 41a stores the data utilization program and its setting data received from the PC 2a in the memory 42a. The CPU 41a executes the data utilization program according to the setting data, collects device values, and creates display data to be displayed on the WebHMI. The CPU 41a communicates with the PC 2b via the communication unit 43 and the cable 9b. The CPU 41a transmits the display data for the WebHMI to the PC 2b. As a result, the PC 2b displays the WebHMI including various data related to the PLC 1.
[0028] The HMI 16 may also be connected to the communication unit 43 and communicate with the CPU 41a via the communication unit 43. The HMI 16 receives display data from the CPU 41a and displays the display data as a WebHMI.
[0029] FIG. 4 is a diagram for explaining functions realized by the CPU 11 of the PC 2a. The integrated development environment 50 is a function realized by the CPU 11 executing the integrated development environment program 14a. The integrated development environment 50 has a PLC development environment 51 and a 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 environments for HTML, CSS, and JavaScript®) required to execute the Web application program 14b. The Web application program 14b is transmitted from a Web server to a Web browser, and is a collection of display components required to display a Web page on the Web browser.
[0030] The PLC development environment 51 has an editor unit 52a that supports the creation of a control program 71a executed by the base unit 3 and the extension unit 4b, a data utilization program 71b executed by the extension unit 4a, a symbol definition 72, a display component 73 that realizes WebHMI, configuration information 74 of the PLC 1, and the like. The mode switching unit 53a switches the operation mode of the integrated development environment 50 (e.g., editor mode, monitor mode, online edit mode, simulator mode, simulator edit mode) according to a user instruction from the operation unit 8. In particular, the mode switching unit 53a manages the operation mode of the PLC development environment 51. The mode switching unit 53a switches the operation mode of the PLC development environment 51 based on a user operation, and requests the WebHMI development environment 61 to synchronize the operation mode (mode transition request). In addition, when the mode switching unit 53a receives a request for synchronization (mode transition request) for the operation mode of the WebHMI development environment 61 from the mode switching unit 53b of the WebHMI development environment 61, the mode switching unit 53a switches the operation mode of the PLC development environment 51 according to this request. This synchronizes the operation mode of the PLC development environment 51 and the operation mode of the WebHMI development environment 61. The editor mode is a mode in which the project data 70 of the PLC 1 is edited without connecting the PC 2a to the PLC 1. The monitor mode is a mode in which the state of the PLC 1 can be monitored in real time while the PC 2a is connected to the PLC 1. The online edit mode is a mode in which the state of the PLC 1 can be monitored in real time while the PC 2a is connected to the PLC 1, and further the project data 70 can be edited and updated, and the updated project data 70 can be transferred to the PLC 1. The simulator mode is a mode in which the operation of the WebHMI by the control program 71a, the data utilization program 71b, and the display components 73 can be simulated without connecting the PC 2a to the PLC 1. The simulator edit mode is a mode in which the project data 70 can be edited while simulating the operation of the WebHMI by the control program 71a, the data utilization program 71b, and the display components 73.The project management unit 54 saves the project data 70 edited by the editor unit 52a or the like in the storage device 12, exports the project data 70 from the storage device 12, or imports the project data 70. In a plurality of manufacturing lines set in a factory that manufactures products, a plurality of PLCs 1 having the same or similar configurations may be operating. In order to reuse the project data 70 between these plurality of PLCs 1, export and import are used. The transfer unit 55 transfers the project data 70 to the PLC 1 according to a user instruction input through the operation unit 8. The linking unit 56a communicates with the linking 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 links with each other regarding the editing process of the project data 70. In the following description, the PLC development environment 51 and the WebHMI development environment 61 also 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 a character or a part of a word inputted by the editor unit 52b to the linking unit 56a. At this time, the linking unit 56b may transmit a request for acquiring candidates for words to be inputted to the linking unit 56a, or may transmit the request for acquiring candidates for words to be inputted by transmitting the inputted character or a part of a word. The linking unit 56a searches the symbol definition 72 for the part of the received word by the search unit 57, and transmits candidates for words to be inputted to the linking unit 56b. The linking unit 56b passes the candidates for words to the editor unit 52b, and the editor unit 52b displays a list of the candidates for words. The search unit 57 executes a search request or a replacement request for a character string 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 a function of communicating with the PLC 1 via the communication unit 13, and transmits and receives communication frames in accordance with a predetermined communication protocol.The protocol conversion unit 59a converts information passed from the Web server 60a into a communication frame conforming to the communication protocol of the communication processing unit 58a, or converts the communication frame passed from the communication processing unit 58a and transfers it to the Web server 60a. In this way, the protocol conversion unit 59a executes encapsulation and decapsulation of information. When the Web server of the expansion unit 4a of the PLC1 provides the WebHMI, the Web browser 64 accesses the Web server of the PLC1 via the communication unit 13. For example, the Web browser 64 communicates with the Web server of the expansion unit 4a via the communication cable 9b connecting the communication unit 13 and the communication unit 43. The Web browser 64 accesses the Web server of the PLC1 to obtain a display component 73 of the WebHMI, and draws the WebHMI according to the display component 73 and displays it on the display unit 7. The Web browser 64 may be provided in the PC 2b. The embedded browser 62 embedded in the integrated development environment 50 accesses the Web server 60a. For example, the embedded browser 62 accesses the Web server 60a via the communication processing unit 58b. The Web server 60a accesses the Web server of PLC1 via the protocol conversion unit 59a and the communication processing unit 58a to obtain the display component 73 of the WebHMI and pass it to the embedded browser 62. For example, the Web server 60a communicates with the Web server of PLC1 via a communication cable 9a that connects the communication unit 13 and the communication unit 33. The embedded browser 62 renders 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 symbol displayed on the display component 73, etc.
[0031] In the WebHMI development environment 61, the editor unit 52b edits a display component 73 of the WebHMI according to a user instruction input from the operation unit 8. The editor unit 52b holds an edited display component 75, which is data of the display component 73 being edited, in the storage device 12. When the editor unit 52b completes editing related to the WebHMI, the linking unit 56b uploads the edited display component 75 via the communication processing unit 58b and the Web server 60a. The Web server 60a passes the edited display component 75 and a save request to the linking unit 56a, which passes them to the project management unit 54. In response to the save request, the project management unit 54 writes the edited display component 75 into the project data 70 as the display component 73. The edited display component 75 also has symbol reference information 76b. The linking unit 56b links with the linking unit 56a to switch operation modes and execute editing processes (search processes, replacement processes, input assistance processes, input inspection processes), etc. The mode switching unit 53b manages the operation mode of the WebHMI development environment 61. The mode switching unit 53b switches the operation mode of the WebHMI development environment 61 based on a user operation, and requests the PLC development environment 51 to synchronize the operation mode through the linking unit 56b (mode transition request). When the mode switching unit 53b receives a request for synchronization (mode transition request) for the operation mode of the PLC development environment 51 from the mode switching unit 53a via the linking units 56a and 56b, the mode switching unit 53b switches the operation mode of the WebHMI development environment 61 according to the request. As a result, the operation mode of the PLC development environment 51 and the operation mode of the WebHMI development environment 61 are synchronized. The communication processing unit 58b communicates with the Web server 60a. The drawing unit 63 draws a Web page according to a Web application program 14c composed of markup data describing the structure of the front end, style sheet data describing decoration, and code describing dynamic processing, such as HTML, CSS, and JavaScript(R) code, and displays the Web page 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 merely one example. The WebHMI development environment 61 may be realized by accessing the expansion unit 4a from the Web browser 64 of the PC 2b, and executing the Web application program 14c stored in the memory 42a of the expansion unit 4a on the Web browser 64.
[0033] FIG. 5 shows functions realized by the PLC 1. The execution engine 80 is the CPU 31, the CPU 41, etc., and executes the control program 71a. The data utilization unit 81 is realized by the CPU 31 or the CPU 41 executing the data utilization program 71b. The data utilization unit 81 collects symbol values, performs statistical processing on the symbol values, generates analysis results of the symbol values, etc. The Web server 60b is realized by the CPU 31 or the CPU 41 executing a Web server program. The communication processing unit 58c is a function of communicating with the PC 2a via the communication unit 33, and transmits and receives communication frames according to a predetermined communication protocol. The protocol conversion unit 59b converts information passed from the Web server 60b into a communication frame according to the communication protocol of the communication processing unit 58c, and converts the communication frame passed from the communication processing unit 58c and transfers it to the Web server 60b. In this way, the protocol conversion unit 59b performs encapsulation and decapsulation of information. The Web server 60b 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 the editor mode, the PLC development environment 51 and the WebHMI development environment 61 cooperate with each other by communicating as follows.
[0035] 6 shows an example in which the PLC development environment 51 transmits a request for cooperation to the WebHMI development environment 61. Since the PLC development environment 51 is on the server side, it executes push communication by using Server Sent Events (SSE).
[0036] In S1, the linking unit 56b of the WebHMI development environment 61 transmits an SSE connection request via the communication processing unit 58b to the Web server 60a of the PLC development environment 51. The Web server 60a receives the SSE connection request.
[0037] In S2, the Web server 60a sends a message indicating completion of the SSE connection. The linking unit 56b receives this message via the communication processing unit 58b. This enables the linking unit 56a to send a linking request to the WebHMI development environment 61 via the Web server 60a at any time.
[0038] In S3, the linking unit 56a transmits various requests by SSE through the Web server 60a. The linking unit 56b receives various requests by the communication processing unit 58b. Here, the various requests include, for example, a request to switch the operation mode, a request to switch the Web page displayed by the WebHMI development environment 61, a request to acquire the operation status of the WebHMI development environment 61, a request to upload the editing display component 75 to the Web server 60a, a request to display a message (e.g., a dialog) on the user interface (UI) of the WebHMI development environment 61, a request to create a new page or window, a request to acquire information indicating a page, a request to prohibit UI operation, a request to lift the prohibition of UI operation, and a request to switch comment sets / languages.
[0039] In S4, the linking unit 56b creates a response to the request and transmits it to the Web server 60a via the communication processing unit 58b. The Web server 60a receives the response and passes it to the linking unit 56a. The linking unit 56a executes processing according to the contents of the response. Below, S3 and S4 are executed repeatedly.
[0040] 7 shows an example in which the WebHMI development environment 61 sends a request for cooperation to the PLC development environment 51. Note that the WebHMI development environment 61 is on the browser side, that is, a Web client, and therefore can freely send requests to the PLC development environment 51.
[0041] In S5, the linking unit 56b of the WebHMI development environment 61 sends various requests to the Web server 60a via the communication processing unit 58b. The Web server 60a transfers the requests to the linking unit 56a. The linking unit 56a creates a response in response to the request and passes the response to the Web server 60a.
[0042] In S6, the Web server 60a transmits a response to the request to the WebHMI development environment 61. The linking unit 56b receives the response via the communication processing unit 58b.
[0043] Here, the requests sent from the WebHMI development environment 61 to the PLC development environment 51 include a request to switch operating modes, a request to launch editing functions (e.g., search dialog, replace dialog) within the PLC development environment 51, a request to display a dialog in the PLC development environment 51, a request to obtain a list of input string candidates, a request to obtain setting information managed by the PLC development environment 51, a request to update the setting information, and a request for syntax analysis of the input string (input error check).
[0044] Flowchart 8 shows a method for requesting the WebHMI development environment 61 to switch modes from the PLC development environment 51. Specifically, it shows a method for requesting switching from editor mode to monitor mode. Here, it is assumed that a mode switching button provided on the UI of the PLC development environment 51 has been pressed by the user. It is also assumed that the above-mentioned SSE is used, and a request can be sent from the PLC development environment 51 to the WebHMI development environment 61.
[0045] In S11, the CPU 11 (PLC development environment 51) requests the WebHMI development environment 61 to prohibit operation. Here, the operation prohibition request is sent by SSE. When the WebHMI development environment 61 receives the operation prohibition request, it transitions to an operation prohibited state.
[0046] In S12, the CPU 11 (PLC development environment 51) acquires the status of the WebHMI development environment 61 from the WebHMI development environment 61. The WebHMI development environment 61 transmits status information indicating its own status to the PLC development environment 51 as a response.
[0047] In S13, the CPU 11 (PLC development environment 51) determines whether the state of the WebHMI development environment 61 received as a response from the WebHMI development environment 61 is displaying a dialog. That is, the CPU 11 (PLC development environment 51) determines whether the state of the WebHMI development environment 61 is displaying a dialog based on the state information indicating the state of the WebHMI development environment 61. If a dialog is being displayed, the CPU 11 proceeds to S14. If a dialog is not being displayed, the CPU 11 proceeds to S16.
[0048] In S14, the CPU 11 (PLC development environment 51) displays an error dialog on the display unit 7. The error dialog includes a message indicating that mode switching cannot be performed because a dialog is being displayed in the WebHMI development environment 61.
[0049] In S15, the CPU 11 (PLC development environment 51) requests the WebHMI development environment 61 to release the operation prohibition. For example, the operation prohibition release request is sent by SSE. The WebHMI development environment 61 releases the operation prohibition in accordance with the operation prohibition release request and sends a response indicating the release completion. This ends the method.
[0050] At S16, the CPU 11 (PLC development environment 51) determines whether there is data being edited in the WebHMI development environment 61. The PLC development environment 51 (interworking unit 56a) requests the WebHMI development environment 61 to respond as to whether there is data being edited. The WebHMI development environment 61 (interworking unit 56b) sends a response indicating whether there is data being edited to the PLC development environment 51. This causes the interworking unit 56a to determine whether there is data being edited in the WebHMI development environment 61. If there is data being edited, the CPU 11 proceeds to S17. If there is no data being edited, the CPU 11 proceeds to S19.
[0051] In S17, the CPU 11 (PLC development environment 51) requests the WebHMI development environment 61 to upload the data being edited. The linking unit 56 of the WebHMI development environment 61 uploads the data being edited (e.g., the edit display component 75) to the PLC development environment 51. The project management unit 54 of the PLC development environment 51 saves the edit display component 75 in the project data 70.
[0052] In S18, the CPU 11 (PLC development environment 51) transfers the project data 70 to the PLC 1.
[0053] At S19, the CPU 11 (mode switching unit 53a of the PLC development environment 51) switches the operation mode of the PLC development environment 51 in accordance with a user instruction. As described above, the mode switching unit 53a requests the mode switching unit 53b of the WebHMI development environment 61 to switch modes via the linking units 56a and 56b. The mode switching unit 53b switches the operation mode of the WebHMI development environment 61 in accordance with the mode switching request. The mode switching unit 53b transmits a response indicating completion of the mode switching to the mode switching unit 53a via the linking units 56b and 56a.
[0054] In S20, the CPU 11 (PLC development environment 51) requests the WebHMI development environment 61 to release the operation prohibition. The linking unit 56b releases the operation prohibition in accordance with the release request, and transmits a response to the WebHMI development environment 61 indicating completion of the release.
[0055] FIG. 9 shows a method executed in the WebHMI development environment 61 among methods for requesting the WebHMI development environment 61 to switch modes from the PLC development environment 51.
[0056] In S21, the CPU 11 (the linking unit 56b of the WebHMI development environment 61) transitions to the operation prohibited state in response to the operation prohibition request. When the transition to the operation prohibited state is completed, the CPU 11 transmits a response indicating the completion to the PLC development environment 51.
[0057] In S22, the CPU 11 (the linking unit 56b) transmits state information indicating the state of the WebHMI development environment 61 to the PLC development environment 51. The linking unit 56b transmits the state information as a response to the state acquisition request.
[0058] In S23, the CPU 11 (the linking unit 56b) judges whether or not a request to release the operation prohibition has been received. The request to release the operation prohibition is received when the WebHMI development environment 61 is in a state in which the operation mode cannot be switched. If a request to release the operation prohibition has been received, the CPU 11 proceeds to S24. If a request to release the operation prohibition has not been received, the CPU 11 proceeds to S25.
[0059] In S24, the CPU 11 (the cooperation unit 56b) releases the prohibition of the operation. The cooperation unit 56b transmits a response to the PLC development environment 51 indicating that the prohibition of the operation has been released.
[0060] In S25, the CPU 11 (the cooperation unit 56b) reports the presence or absence of data being edited to the PLC development environment 51. Upon receiving a request for an inquiry about the presence or absence from the PLC development environment 51, the cooperation unit 56b transmits a response indicating the presence or absence to the PLC development environment 51.
[0061] In S26, the CPU 11 (the linking unit 56b) determines whether or not an upload request for the data being edited has been received. If an upload request for the data being edited has been received, the CPU 11 proceeds to S27. If an upload request for the data being edited has not been received, the CPU 11 proceeds to S28.
[0062] In S27, the CPU 11 (the linking unit 56b) uploads the data being edited (for example, the edit display component 75) to the PLC development environment 51.
[0063] In S28, the CPU 11 (the collaboration unit 56b) determines whether or not a mode switching request has been received from the PLC development environment 51. If a mode switching request has been received, the collaboration unit 56b passes the mode switching request to the mode switching unit 53b. After that, the CPU 11 proceeds to S29. If a mode switching request has not been received, the CPU 11 proceeds to S30.
[0064] In S29, the CPU 11 (mode switching unit 53b) switches the operation mode in accordance with the mode switching request. The mode switching unit 53b transmits a response indicating that the operation mode switching has been completed to the PLC development environment 51 through the link unit 56b. This response is transferred to the mode switching unit 53a through the link unit 56a.
[0065] In S30, the CPU 11 (the cooperation unit 56b) releases the operation prohibition. The cooperation unit 56b releases the operation prohibition state in accordance with the operation prohibition release request, and transmits a response indicating the completion of the release to the PLC development environment 51.
[0066] 10 shows a method for requesting mode switching from the WebHMI development environment 61 to the PLC development environment 51. It is assumed here that a mode switching 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 the PLC development environment 51 to switch modes via the linking unit 56b. Here, the linking unit 56a of the PLC development environment 51 determines whether the PLC development environment 51 is busy. If the PLC development environment 51 is busy, the linking unit 56a cannot switch modes, and so transmits a response indicating a failure to switch modes to the WebHMI development environment 61.
[0068] In S32, the CPU 11 (the linking unit 56b) determines whether or not the mode switching in the PLC development environment 51 has failed, based on a response from the PLC development environment 51. If the switching has failed, the CPU 11 proceeds to S45 and displays a failure message on the display unit 7. If the switching has not failed, the CPU 11 proceeds to S33.
[0069] In S33, the CPU 11 (the linking unit 56b) determines whether there is data being edited (for example, the edit display component 75). If there is data being edited, the CPU 11 proceeds to S34. If there is no data being edited, the CPU 11 proceeds to S35.
[0070] In S34, the CPU 11 (the cooperation unit 56b) displays a confirmation dialog on the display unit 7. The confirmation dialog includes, for example, a message indicating that the project data 70 including the editing display component 75 will be transferred to the PLC 1.
[0071] In S35, the CPU 11 (the cooperation unit 56b) prohibits the user from operating the WebHMI development environment 61.
[0072] In S36, the CPU 11 (the cooperation unit 56b) transmits state information indicating the operation state of the WebHMI development environment 61 to the PLC development environment 51.
[0073] In S37, the CPU 11 (the cooperation unit 56b) determines whether or not a request to release the operation prohibition has been received. If a request to release the operation prohibition has been received, the CPU 11 proceeds to S47 and releases the operation prohibition. On the other hand, if a request to release the operation prohibition has not been received, the CPU 11 proceeds to S38.
[0074] In S38, the CPU 11 (the linking unit 56b) uploads the data being edited (for example, the edit display component 75) to the PLC development environment 51.
[0075] In S39, the CPU 11 (cooperation unit 56b) determines whether or not the switching of the operation mode has failed in the PLC development environment 51 based on information (e.g., a mode switching failure notification) received from the PLC development environment 51. If the switching of the operation mode has failed in the PLC development environment 51, the CPU 11 proceeds to S49 and displays a failure message on the display unit 7. The coordination unit 56b transmits a response indicating that confirmation of the mode switching failure has been completed to the PLC development environment 51. On the other hand, if the CPU 11 (cooperation unit 56b) determines that the switching of the operation mode has not failed in the PLC development environment 51, the CPU 11 proceeds to S40.
[0076] In S40, the CPU 11 (the collaboration unit 56b) determines whether or not a mode switching request has been received from the PLC development environment 51. If a mode switching request has been received from the PLC development environment 51, the CPU 11 proceeds to S41. The collaboration unit 56b transfers the mode switching request to the mode switching unit 53b. If a mode switching request has not been received from the PLC development environment 51, the CPU 11 proceeds to S42.
[0077] In S41, the CPU 11 (mode switching unit 53b) switches the operation mode of the WebHMI development environment 61 in accordance with the mode switching request. Here, the received mode switching request functions as an authorization signal for the mode switching request sent in S31. When the mode switching is completed, the mode switching unit 53b sends a response indicating the completion to the PLC development environment 51 via the link unit 56b.
[0078] In S42, the CPU 11 (the cooperation unit 56b) releases the prohibition on operation of the WebHMI development environment 61. When the prohibition is completed, the cooperation unit 56b transmits a response indicating the completion of the prohibition to the PLC development environment 51.
[0079] FIG. 11 shows a method executed in the PLC development environment 51 among methods for requesting the PLC development environment 51 to switch modes from the WebHMI development environment 61.
[0080] In S51, the CPU 11 (the linking unit 56a) determines whether the PLC development environment 51 is in a busy state. For example, if a modal window of the PLC development environment 51 is open, the PLC development environment 51 is determined to be in a busy state. If the PLC development environment 51 is in a busy state, the CPU 11 proceeds to S63 and transmits a failure message indicating that the mode switching has failed to the WebHMI development environment 61. The linking 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 (the linking unit 56a) determines whether or not there is data being edited in the PLC development environment 51 or the WebHMI development environment 61. If there is no data being edited, the CPU 11 proceeds to S54. If there is data being edited, the CPU 11 proceeds to S53.
[0082] In S53, the CPU 11 (the linking 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 that the project data 70 needs to be transferred to the PLC 1. 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 (cooperation 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 (the linking unit 56a) acquires the status of the WebHMI development environment 61. As described above, a status acquisition request is sent to the WebHMI development environment 61, and a response including the status information is returned.
[0085] At S56, the CPU 11 (cooperation unit 56a) determines whether or not a dialog is being displayed in the WebHMI development environment 61 based on the state information. If a dialog is being displayed, the CPU 11 proceeds to S65, where it displays an error dialog in the PLC development environment 51. Furthermore, the CPU 11 cancels the operation prohibition on the WebHMI development environment 61 by sending an operation prohibition release request to the WebHMI development environment 61. On the other hand, if a dialog is not being displayed, the CPU 11 proceeds to S57.
[0086] In S57, the CPU 11 (cooperation unit 56a) requests the WebHMI development environment 61 to upload the data being edited by sending an upload request to the WebHMI development environment 61. In response, the WebHMI development environment 61 uploads the data being edited to the PLC development environment 51 and sends an upload completion response.
[0087] At S58, the CPU 11 (editor unit 52a) converts a portion of the project data 70 that requires conversion, and determines whether the conversion is successful. The conversion rules used for this conversion are implemented in the editor unit 52a, but the conversion unit may be provided outside the editor unit 52a. If the conversion fails, the CPU 11 proceeds to S67, where it causes the WebHMI development environment 61 to display a failure message indicating that the mode switching has failed, and releases the operation prohibition in the WebHMI development environment 61. For example, the CPU 11 (editor unit 52a) transmits an operation prohibition release request to the WebHMI development environment 61. The WebHMI development environment 61 that has received the operation prohibition release request releases the operation prohibition. On the other hand, if the conversion is successful, the CPU 11 proceeds to S59.
[0088] In S59, the CPU 11 (transfer unit 55) transfers the project data 70 to the PLC 1.
[0089] In S60, the CPU 11 (mode switching unit 53a) executes mode switching. That is, the mode switching unit 53a switches the operation mode of the PLC development environment 51 to another operation mode designated by the WebHMI development environment 61. For example, the mode switching unit 53a switches the operation mode of the PLC development environment 51 from the editor mode to the monitor mode.
[0090] In S61, the CPU 11 (interworking unit 56a) requests the WebHMI development environment 61 to switch modes and lifts the prohibition on operation in the WebHMI development environment 61. For example, the CPU 11 (interworking unit 56a) sends a request to lift the prohibition on operation to the WebHMI development environment 61, and the WebHMI development environment 61 lifts the prohibition on operation in accordance with the received request to lift the prohibition on operation. When the WebHMI development environment 61 receives the request to switch modes, it executes mode switching and returns a mode switching completion response. Also, when the WebHMI development environment 61 receives a request to lift the prohibition on operation, it lifts the prohibition on operation and returns a response indicating the lifting completion.
[0091] Monitor mode In the monitor mode, the WebHMI development environment 61 receives HTML data, CSS data, and JavaScript® scripts for displaying the UI of the WebHMI from the Web server 60b of the PLC1 via the PLC development environment 51, and displays the UI of the WebHMI on the display unit 7. As described above, the communication route here is the route of communication processing unit 58b<=>Web server 60a<=>protocol conversion unit 59a<=>communication processing unit 58a<=>communication processing unit 58c<=>protocol conversion unit 59b<=>Web server 60b. Here, the physical layer interface between the PLC1 and the PC2a is Ethernet®, USB (Universal Serial Bus) IF (interface), serial communication IF, etc. Also, the communication protocol of a higher layer may be a unique protocol of the manufacturer that manufactured the PLC1. Therefore, the 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 emulating Ethernet(R) in communication via a physical layer different from Ethernet(R) and handling TCP transparently. In short, the Web server 60a operates to pass communication from the communication processing unit 58b to the protocol conversion unit 59a. For example, the protocol conversion unit 59a encapsulates a frame by adding a header of a unique protocol to a frame by WebAPI received from the Web server 60a. Furthermore, the communication processing unit 58a creates a communication frame by adding a header such as USB, and transmits it to the communication processing unit 58c. The communication processing unit 58c removes the header such as USB from the received communication frame and passes it to the protocol conversion unit 59b. The protocol conversion unit 59b removes the header of the unique protocol and passes it to the Web server 60b. The communication procedure from the Web server 60b to the Web server 60a is the reverse procedure.
[0092] In this way, since the protocol conversion units 59a and 59b are provided, the communication interface between the PC 2a and the PLC 1 is not limited to a wired LAN such as Ethernet® or a wireless LAN. In other words, the communication interface between the PC 2a and the PLC 1 may be realized by a communication circuit to which an IP address cannot be assigned, such as a USB IF.
[0093] <Development support functions> ●Starting the WebHMI development environment 12 shows the UI 100 of the PLC development environment 51. A mode selection menu 101 displays the operation modes of the integrated development environment 50 in a selectable manner. A program display area 104 displays the ladder program to be edited in an editable manner. A project display area 102 displays information constituting the project. This information includes specification information and setting information of the basic unit 3 and the expansion unit 4 constituting the PLC 1, 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 a menu 105. When the user selects “New” from the menu 105, the PLC development environment 51 displays a menu 106. When the user selects “Screen” from the menu 106 with the pointer 103, the PLC development environment 51 starts up the WebHMI development environment 61.
[0095] 13 shows a UI 110 for creating a new screen in the WebHMI development environment 61. The UI 110 is displayed by the built-in browser 62 of the WebHMI development environment 61. The UI 110 accepts settings such as an identification number for identifying each screen, a name, a URL, and a screen size.
[0096] The UI 110 for editing the display screen in this manner can be seamlessly launched from the UI 100 of the PLC development environment 51, which is a PC application. Therefore, the user can use the PLC development environment 51 and the WebHMI development environment 61 within the integrated development environment 50 without recognizing the PLC development environment 51 and the WebHMI development environment 61 as separate applications.
[0097] Symbol Metadata FIG. 14 shows a reference symbol setting UI 111 that stores a symbol value and the like to be displayed in a display component in the WebHMI development environment 61. The reference symbol is a symbol whose value is referenced by a display component. The setting UI 111 has a symbol type setting section 112a, a symbol name setting section 112b, a comment display area 113a, and a data format display area 113b. The linking section 56b queries the linking section 56a of the PLC development environment 51 about the symbol (device, variable) input to the symbol name setting section 112b. The linking section 56a causes the search section 57 to execute a search, extracts meta information such as a comment and a data format corresponding to the symbol name, and transmits the extracted meta information to the linking section 56b via the linking section 56a. The linking section 56b passes the comment and the data format to the drawing section 63, and the drawing section 63 displays the comment in the comment display area 113a and displays the data format in the data format display area 113b.
[0098] Since the symbol definition 72 is input and set in the PLC development environment 51, the PLC development environment 51 can display the symbol definition 72. However, when setting a reference symbol for a display component in the WebHMI development environment 61, returning to the PLC development environment 51 to display the symbol definition 72 would reduce user convenience. In this embodiment, the WebHMI development environment 61 can display the symbol definition 72 on the UI 111, so the user can easily check the symbol definition 72 without returning to the PLC development environment 51.
[0099] ● Symbol input assistance FIG. 15 is a diagram for explaining the symbol input assistance. As described above, the linking 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. FIG. 15 illustrates a candidate selection unit 114 that displays the search results based on the character string "DM" input to the symbol name setting unit 112b and the symbol type information. When the linking unit 56b passes the search results to the drawing unit 63, the drawing unit 63 displays the candidate selection unit 114 that lists the search results. The candidate selection unit 114 displays device candidates including DM and meta information such as comments set or defined for the device. When the user selects one of the candidates from the candidate selection unit 114, the editor unit 52b inputs the selected candidate to the setting unit 112b. The drawing unit 63 displays the input candidate in the setting unit 112b. Note that such a candidate search and selection function (search unit 57) is installed in the PLC development environment 51, and the WebHMI development environment 61 uses the functions of the PLC development environment 51 through the linking unit 56b.
[0100] In this way, the WebHMI development environment 61 can use the functions of the PLC development environment 51 by sending requests via the WebAPI, eliminating the need to separately implement the same functions in the WebHMI development environment 61 and the PLC development environment 51. Also, since the WebHMI development environment 61 can refer to the symbol definitions 72 managed by the PLC development environment 51, the WebHMI development environment 61 does not need to separately create and hold the symbol definitions 72. Also, there is no risk of multiple different symbol definitions 72 competing with each other or becoming disorganized.
[0101] ● Search and replace function FIG. 16 shows a dialog 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 execute search and replacement across the entire integrated development environment 50. Therefore, the user can execute search and replacement across the PLC development environment 51 and the WebHMI development environment 61. The dialog 120 has a plurality of tabs 121 for limiting the search target. The search target setting unit 122 accepts input of a character string to be searched. The range setting unit 123 accepts setting of the search range. Here, either the entire project or the current window is set as the search range. In this way, the search unit 57 does not always execute a search across the entire integrated development environment 50, but may execute a search limited to the PLC development environment 51 or the WebHMI development environment 61 (i.e., the current window) from which the dialog 120 was invoked. This will have the effect of shortening the time required for the search.
[0102] ●Switch display language and comment set all at once When the display language setting is changed in either the PLC development environment 51 or the WebHMI development environment 61, the display language setting in the other of the PLC development environment 51 or the WebHMI development environment 61 is also changed. When a user instructs the PLC development environment 51 to change the display language setting, the linking unit 56a instructs the linking unit 56b to change the display language setting. The linking unit 56b changes the display language setting in the WebHMI development environment 61 in accordance with this instruction. Conversely, when a user instructs the WebHMI development environment 61 to change the display language setting, the linking unit 56b requests the linking unit 56a to change the display language setting. The linking unit 56a changes the display language setting in the PLC development environment 51 in accordance with this request. Changing a comment set is also performed in a similar procedure to changing the display language.
[0103] - Detect and notify errors in input strings FIG. 17 is a diagram for explaining error detection and notification of a character string input in the WebHMI development environment 61. As described above, the linking unit 56b of the WebHMI development environment 61 can obtain the search result of the character string (e.g., varHoge) input in the setting unit 112b from the search unit 57. When the search unit 57 cannot find the character string input in the setting unit 112b, or when the character string input in the setting unit 112b exists but is a symbol of a data format that cannot be specified as a reference source, the linking unit 56b transmits a response indicating this to the linking unit 56b. The linking unit 56b may display a warning message 115 according to the response on the UI 111 via the drawing unit 63. When an undefined symbol is input in this way, the warning message 115 is displayed. Instead of displaying the warning message 115, the drawing unit 63 may highlight the setting unit 112b. For example, the color of the frame of the input field of the setting unit 112b may be changed to a color different from the normal color. This will allow the user to easily notice the input error.
[0104] ●Conversion check before transferring project The transfer unit 55 transfers the 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 PLC 1. Here, the transfer unit 55 executes an inspection of the project data 70. Here, the inspection includes checking the consistency of the settings such as symbols in the entire project data 70. Furthermore, the transfer unit 55 executes conversion of the display component 73 created in the WebHMI development environment 61 and checks whether there is an error in the conversion result. When the transfer unit 55 finds an error, it may request the WebHMI development environment 61 to display an 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 allows the user to easily resolve the error.
[0105] ● Saving, opening, transferring and collating projects In this embodiment, the display components 73 created in the WebHMI development environment 61 are saved, opened, transferred, and compared together with the control programs 71a and the like created in the PLC development environment 51. This significantly reduces the burden on the user in managing projects compared to managing projects separately in the PLC development environment 51 and the WebHMI development environment 61.
[0106] The transfer unit 55 may display a dialog on the display unit 7 to allow the user to select data to be transferred from the project data 70, and accept the user's selection. In this case, the dialog displays a list of transfer candidates, including data created by the WebHMI development environment 61 and data created by the PLC development environment 51. These data are displayed so that they can be individually selected, for example, by check boxes. In other words, the user can specify or cancel the data to be transferred on a single selection screen.
[0107] Import / Export FIG. 18 is a diagram for explaining the import and export functions of the project data 70. The project management unit 54 executes import and export by specifying a part or all of the multiple data constituting the project data 70. For example, when an export is instructed, the project management unit 54 may display a selection screen for data to be exported on the display unit 7. In FIG. 18, the project data 70 includes PLC programs 71c, 71d, and 71e, display components 73a, 73b, and 73c, and a symbol definition 72. The project management unit 54 creates an export unit 140a to include the PLC program 71c, the display components 73a and 73b, and the symbol definition 72 according to the user's selection. Furthermore, the project management unit 54 creates an export unit 140b to include the PLC programs 71c, 71d, and 71e, the display components 73a, and the symbol definition 72 according to the user's selection.
[0108] 18 may 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 a program or a data group to be imported from the project data 70 to other project data.
[0109] This allows the programs and display parts 73 related to the PLC 1 to be reused in other projects, which will improve the efficiency of developing project data.
[0110] ● Linking editing tasks There are cases where the same symbol is referenced in the WebHMI development environment 61 and the PLC development environment 51. Furthermore, the referenced symbol may be changed in one of the WebHMI development environment 61 and the PLC development environment 51. In this case, if the change in the symbol in one environment is automatically reflected in the other of the WebHMI development environment 61 and the PLC development environment 51, the editing burden on the user would be reduced.
[0111] For example, in the WebHMI development environment 61, a buffer memory of the expansion unit 4a may be set as a reference destination of a certain display component 73. Usually, each of the multiple expansion units 4 is 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, when the configuration of the PLC1 is changed, the unit numbers are reassigned. For example, when the expansion unit 4a is connected next to the basic unit 3, the unit number of the basic unit 3 is set to "0" and the unit number of the expansion unit 4a is set to "1". When the expansion unit 4b is additionally connected between the basic unit 3 and the expansion unit 4a, the unit number of the expansion unit 4b is set to "1" and the unit number of the expansion unit 4a is set to "2". In this way, when the unit configuration of the PLC1 is changed, the unit number of the expansion unit 4a is changed. Therefore, if the buffer memory (buffer memory number = 16) of expansion unit 4a (unit number = 1) is specified as the reference for a certain display component, the reference for the certain display component must be changed to the buffer memory (buffer memory number = 16) of expansion unit 4a (unit number = 2).
[0112] The PLC development environment 51 holds the unit number of the basic unit 3 and the unit numbers of the extension units 4a and 4b in the configuration information 74. In addition, the editor unit 52a of the PLC development environment 51 reassigns the unit numbers when the connection position of the extension unit 4a is changed or another extension unit 4 is added. The search unit 57 searches for a symbol linked to the unit number before the change, and changes the unit number of the extracted symbol to the unit number after the change. In addition, when the display component 73 generated by the WebHMI development environment 61 extracts a symbol linked to the unit number before the change, the search unit 57 notifies the linking unit 56b of the WebHMI development environment 61 through the linking unit 56a of a notification indicating that the unit number of the extracted symbol has been changed. The linking unit 56b searches for and extracts the symbol linked to the unit number before the change from the symbol reference information 76b in the editing display component 75, and rewrites the unit number of the extracted symbol to the unit number after the change. This reduces the burden on the user.
[0113] When the PLC configuration on the export side differs from the PLC configuration on the import side The exporting PLC 1, which is about to export the project data 70, may be configured with a basic unit 3 and three expansion units 4, and the importing PLC 1, which is about to import the project data 70, may be configured with a basic unit 3 and four expansion units 4. In such a case, the user must edit the imported project data 70 appropriately in accordance with the configuration of the importing PLC 1. The project management unit 54 may display on the display unit 7 a dialog box for inquiring of the user about the relationship between the expansion units in the exporting PLC 1 and the expansion units in the importing PLC 1.
[0114] FIG. 19 shows a dialogue 150 for unit allocation. The dialogue 150 has a unit allocation section 151 that accepts user designation of the correspondence between the export-side extension unit and the import-side extension unit. In this example, the user designates that the extension unit with unit number 2 in the export-side PLC 1 is assigned with unit number 3 in the import-side PLC 1. The project management section 54 searches the project data 70 to be imported based on this unit allocation, extracts all symbols linked to the unit number before the change (=2), and rewrites the extracted symbols to the unit number after the change (=3). At this time, in addition to the unit number, if there is a symbol name based on the configuration information, it is rewritten. For example, if the WebHMI development environment refers to a relay assigned with a consecutive number starting from unit number 0, the symbol name is also changed. Also, the buffer memory number linked to the symbol is not changed, but the symbol name is changed. For example, when the unit number is changed, the symbol name may be changed from R35000 to R39000. The project management unit 54 changes the symbol name based on the change in the unit number.
[0115] When importing a display part with image data in a PLC development environment The WebHMI development environment 61 assigns identification information to image data for a Web page that realizes the WebHMI and manages it. Since the image data is stored as an image file, the identification information (e.g., an identification number) is associated with the file name. The above-mentioned import / export function allows the project management unit 54 to import part of the project data 70 for a certain PLC 1 into the project data 70 of another PLC 1. At this time, the identification information of the image data included in the project data 70 on the export side (source) may already be used in the project data 70 of the other PLC 1 on the import side (destination). For example, the identification number "0" may be assigned to image data with a file name "AAA.png" in the project data 70 on the export side, and the identification number "0" may be assigned to image data with a file name "BBB.png" in the project data 70 on the import side. In other words, the identification numbers are duplicated.
[0116] Therefore, the project management unit 54 judges whether the identification number assigned to the image data in the source project data 70 is duplicated with the identification number assigned to the image data in the destination project data 70. When 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 a display component 73 that refers to the identification number before replacement in the source project data 70, and replaces the identification number of the image data in the extracted display component 73 with the unused identification number. This automatically avoids duplication of the identification information of the image data, and reduces the burden on the user of changing the identification information. Here, the identification number is exemplified as the identification information, but the identification information may be any character string such as a file name. In this case, the project management unit 54 also replaces the duplicated identification information in the source with unused identification information in the destination. In addition to a still image, the image data may be video data. Instead of or in addition to the image data, the image data may be audio data. The project manager 54 then merges or incorporates the source project data 70 into the destination project data 70 .
[0117] ●WebHMI development environment UI 20 and 21 show the UI 160 of the drawing tool of the WebHMI development environment 61. The mode change switch 161 is a switch for switching the operation mode (e.g., edit mode, online edit mode) of the WebHMI development environment 61. The mode change unit 53b accepts a mode change instruction from the user via the mode change switch 161. In FIG. 20, the edit mode is selected.
[0118] The drawing area 162 is a display area in which one or more display components constituting the WebHMI are arranged. The user places a display component at any position in the drawing area 162 by dragging and dropping a display component displayed in the component list display section 164 with the pointer 103. Various display components are displayed in a selectable manner in the component list display section 164. The text display component is a display component that displays a predetermined fixed text (e.g., letters and numbers). The character display component is a display component that references and displays a character held in a specified symbol. The type of symbol referenced by the character display component is limited to a character string. The numeric display component is a display component that displays a numeric value held in a specified symbol. The type of symbol referenced by the numeric display component is limited to a numeric value. The lamp display component is a display component that indicates a binary value (on / off) held in a symbol such as a bit device. The N-state lamp display component is a display component that indicates which of N states held in a specified symbol is in a different color. The chart display component is a display component that graphs and displays the numeric value held in a specified symbol. The chart display components may include line graphs, bar graphs, fan meters, bar meters, pie charts, etc. Also, display components for displaying a list of alarm history data, display components for displaying histograms, display components for displaying Pareto charts, and display components for displaying statistical charts such as Gantt charts may be presented as selectable candidates. Also, control components for rewriting the value of a referenced symbol may be presented selectably. Furthermore, display components for displaying media data such as image data, camera data, and drawn graphics may be displayed selectably.
[0119] A lamp display component 165, a character display component 166, a text display component 167, a numeric display component 168, and a chart display component 169 are already arranged in the drawing area 162 in Fig. 20. In Fig. 20, the numeric display component 168 is selected by the pointer 103, so a property setting window 163 for the numeric display component is also displayed. The property setting window 163 accepts various settings required for displaying numeric values. For example, the name of the referenced symbol, the number of display digits, whether to enable or disable zero suppression display, the number of decimal places, and the like are presented as setting items in the property setting window 163. The property setting window 163 for the chart component has setting items for a symbol that can handle time series data as a referenced symbol.
[0120] 21 shows a UI 160 in which the operation mode has been switched to the online edit mode by the mode change switch 161. As described above, in the online edit mode, the communication processing unit 58b acquires in real time from the PLC 1 the values of the symbols referenced by the display components arranged in the drawing area 162. The drawing unit 63 displays the acquired values in the display components. In the online edit mode, values are acquired periodically from the PLC 1, so that the information displayed in the display components is also updated periodically. The timing of updating the values does not necessarily have to be periodic, and may be such that a predetermined condition is satisfied.
[0121] ● Linking the number display format In PLC systems, decimals can be displayed in two formats: fixed-point numbers and floating-point numbers. Fixed-point numbers are a method of expressing numbers by fixing the digit where the decimal point is placed. For example, if you define the first digit from the bottom as the decimal point in decimal notation, then "123" means "12.3" and "-12345" means "-1234.5". Floating-point numbers are a method of expressing numbers using a sign part, a fixed-length mantissa, and a fixed-length exponent. In the C language, floating points are handled as float or double type variables. In PLC systems, floating points are handled in REAL or LREAL format.
[0122] The linking unit 56b inquires of the linking unit 56a about the definition of the symbol specified as the display target of the numeric display component 168 shown in FIG. 20. That is, a request to obtain the definition is transmitted. The linking unit 56a searches for and obtains the definition (such as the data format (data type)) of the specified symbol, and transmits the obtained definition to the linking unit 56b as a response. If the symbol is a floating-point variable, the linking unit 56b sets the display format of the variable to a floating-point number. If the symbol is an integer variable, the linking unit 56b sets the display format of the variable to a fixed-point number. The editor unit 52b accepts a user's specification of the number of decimal places (e.g., 2) in the property file setting window 163, and passes it to the linking unit 56b. When the symbol is a floating-point variable and its representation format is a floating-point number, the linking unit 56b rounds or truncates the value of the symbol according to the number of decimal places specified by the user, and displays the value in the numeric display component 168. For example, when the value of the symbol is 123.45678, the value is truncated according to the specified number of decimal places (=2), and 123.45 is displayed in the numeric display component 168. On the other hand, when the symbol is an integer type and its representation format is a fixed-point number, the linking unit 56b adds a decimal point to the value according to the specified number of decimal places. For example, when the value of the symbol is 54321 and the number of decimal places is 2, 543.21 is displayed in the numeric display component 168. In this way, the linking unit 56b acquires the data format of the symbol referred to 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. The WebHMI development environment 61 may also treat floating-point symbol values as floating-point numbers and integer symbol values 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, a decimal point is applied according to the number of decimal places specified by the user.
[0123] In this way, the WebHMI development environment 61 can automatically set the expression format in the WebHMI by referring to the type of the variable in the PLC development environment 51. Therefore, the user does not need to search for type information in the PLC development environment 51, understand the search results, and manually set the display format (expression format) in the WebHMI development environment 61. At most, the user needs to specify the number of decimal places. In addition, with the calculation function in the WebHMI, such as the conditional formatting function, the user can mix floating-point numbers and fixed-point numbers without additional settings. The conditional formatting function is a function that changes the display color or font of a display part based on a comparison between a symbol and a reference value. In the conditional formatting function, the data format in the conditional expression is automatically determined according to the type of the symbol to be displayed, so the user does not need to manually change the data format. In particular, even if floating-point numbers and fixed-point numbers are mixed, the data formats are unified, so the user does not need to manually set each data format.
[0124] Even if the data format of a symbol is changed from floating-point type to integer type or from integer type to floating-point type in the PLC development environment 51, the user can make the symbol display follow the type change simply by changing the number of decimal places.
[0125] <Summary> [Point 1] The communication unit 13 is an example of a communication means for communicating with the PLC 1. The CPU 11 functions as a providing means for providing an integrated development environment 50. The integrated development environment 50 includes a first development environment (e.g., a PLC development environment 51) and a second development environment (e.g., a WebHMI development environment 61). The first development environment is a non-Web application-based development environment that supports the development of a user program (e.g., a control program 71a, a data utilization program 71b) that is transferred to the PLC 1 via a communication means and executed. The non-Web application is a term that is distinguished from a Web application, and may be called a PC application or an OS-dependent application. An OS-dependent application is an application whose execution 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., a WebHMI) that displays symbol values collected from symbols (e.g., devices and variables) used according to a user program in the PLC 1. The display screen is generated as a Web page described, for example, by data describing a structure, data describing decoration, and code describing dynamic processing. A Web application is an application executed or displayed by a Web browser, and may be an OS-independent application. 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 described in HTML and CSS. This provides a program creation support device equipped with an integrated development environment that integrates a development environment for developing a user program executed by PLC1 and a development environment for a display screen. This allows a user to seamlessly use the development environment for the user program and the development environment for the display screen. Since a Web application-based development environment is provided, the development efficiency of the display screen and future functional expandability will be improved for the user. For example, since it will be possible to reuse a framework (skeleton) of a Web available in the world, the user will no longer need to prepare a development platform from scratch.In addition, users will no longer need to independently develop drawing logic for display screens. For example, popular web technologies may be used for display components such as text, switches, and graphs to be placed on the display screen. This will allow users to easily create rich UI / UX (user experience). Furthermore, it will be possible to reuse web elements (components) created for a display screen for other display screens. It will also be easy to use popular components for display screens. It will be easier to reuse not only the structure and appearance of web pages, but also their behavior (such as click behavior and data interpretation) for display screens. Furthermore, componentization of display components on a display screen will make it less likely that style or behavior will interfere with one component and another. Furthermore, development and maintenance will be possible for each component, improving development and maintenance efficiency.
[0126] [Point 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 separated, which imposed a heavy management burden on the user. In this embodiment, these can be managed as a single project, reducing the burden on the user.
[0127] [Point 3] The project may include a user program created through the first development environment, definition information of a symbol (e.g., symbol definition 72), and configuration information of a programmable logic controller (configuration information 74). Furthermore, the project may include a display component of a display screen (e.g., display component 73) created through the second development environment. Here, the display component may include reference information for referencing a symbol holding information to be displayed on the display screen.
[0128] [Point 4] The search unit 57 may function as a common search means that is called from the first development environment and the second development environment and executes a search across the entire project. This allows the user to execute a search across the entire project using a single search function. This allows the user to use the development environment for the user program and the development environment for the display screen more seamlessly.
[0129] [Point 5] The first development environment and the second development environment may use the search results from the common search means to assist user input (e.g., assist in input of symbol names) or to perform error checking of information entered by the user (e.g., symbol names). This will reduce the burden on the user in inputting symbols and the like. This will also enable the user to use the user program development environment and the display screen development environment more seamlessly.
[0130] [Point 6] The CPU 11 (providing means) may obtain a symbol value from the programmable logic controller via the communication means, and may display the symbol value in association with the user program in the first development environment. For example, when the operation mode is set to the monitor mode, the PLC development environment 51 may display the device value (e.g., on / off, analog value) obtained from the PLC 1 for the device described in the ladder program. The CPU 11 (providing means) may display the symbol value on the display screen. For example, the CPU 11 may obtain a symbol value of a symbol referenced by a display component of the WebHMI from the PLC 1, and display the device value by the display component of the WebHMI. In this way, the user can immediately check how the display screen will look in actual operation while developing the display screen. For example, while debugging the WebHMI, the user can check how the WebHMI will look in the development environment for the WebHMI without having to start a general-purpose Web browser each time.
[0131] [Point 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 the WebAPI. The second development environment may acquire definition information of symbols associated with display components that constitute a display screen, which definition information is created in the first development environment, via the first Web server. Furthermore, the second development environment may reflect the definition information in a display component for drawing a display screen. For example, when a device comment of a certain device has already been created in the PLC development environment 51 and the WebHMI development environment 61 refers to the device by a display component, the WebHMI development environment 61 may acquire 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 development environment for the user program and the development environment for the display screen more seamlessly.
[0132] [Point 8] PLC1 may have a second Web server (e.g., Web server 60b) that reflects and provides information stored in symbols on a display screen created by the second development environment. The second development environment includes a Web browser (e.g., built-in browser 62, Web browser 64) that accesses the second Web server via the first Web server and displays a display screen. This allows the user to immediately check how the display screen will look in actual operation while developing the display screen.
[0133] [Point 9] The first development environment and PLC 1 may provide TCP transparent communication between the Web browser and the second Web server. The TCP transparent communication is realized, for example, by encapsulating communication frames by protocol conversion units 59a and 59b and communication processing units 58a, 58b, and 58c.
[0134] [Point 10] The integrated development environment 50 may have an editor mode in which editing of a user program is accepted in the first development environment, and editing of a display screen is accepted in the second development environment. The integrated development environment 50 may have a monitor mode in which a symbol value of a symbol linked to a user program is acquired from a programmable logic controller in the first development environment and displayed, and a symbol value of a symbol linked to a display screen is acquired from the programmable logic controller in the second development environment and displayed on the display screen. Each of the first development environment and the second development environment may have an instruction means for instructing switching between the editor mode and the monitor mode. For example, the mode selection menu 101 is an example of the instruction means. This allows the user to use the development environment of the user program and the development environment of the display screen more seamlessly. In addition, the user can immediately check how the display screen will look in actual operation while developing the display screen.
[0135] [Point 11] A Web server provided in the first development environment and a Web application executed in an embedded browser provided in the second development environment may communicate via a WebAPI. This allows the first development environment and the second development environment to cooperate in creating or managing projects including user programs and display components of a display screen. This allows the user to use the development environment for the user program and the development environment for the display screen more seamlessly.
[0136] [Point 12] The first development environment and the second development environment may be linked via a WebAPI to make the operation mode of the first development environment coincide with that of the second development environment. For example, when the operation mode of the WebHMI development environment 61 is switched from the editor mode to the monitor mode, the operation mode of the PLC development environment 51 is also switched from the editor mode to the monitor mode. This reduces the burden on the user in switching the operation mode.
[0137] [Point 13] 8 to 11, when switching between the operation modes of the first and second development environments, user operations for the first and second development environments may be prohibited, allowing the user to switch between operation modes safely.
[0138] [Point 14] The first and second development environments may prohibit switching of the operation mode if at least one of the first and second development environments is in a busy state or displaying a dialog when an instruction to switch the operation mode is given, thereby enabling the user to switch the operation mode safely.
[0139] [Point 15] As described in relation to Fig. 12, the first development environment may be configured to accept an instruction to start the second development environment and start the second development environment, which will allow the user to further enjoy the benefits of the integrated development environment.
[0140] [Points 16, 17] The first development environment and the second development environment may be linked via a WebAPI to match the language setting of the first development environment with the language setting of the second development environment. The first development environment and the second development environment may be linked via a WebAPI to match the comment set of the first development environment with the comment set of the second development environment. The language setting means the setting of the display language (Japanese, English, French, Chinese, etc.) of the integrated development environment 50. The comment set is, for example, a group (set) of comments of a plurality of display components applied to the WebHMI. For example, a different comment set may be prepared for each language, such as an English comment set and a Japanese comment set. If different display languages or different comment sets are applied in the first development environment and the second development environment, the user will be confused. Therefore, by matching these, the burden on the user to switch the language setting or comment set is reduced.
[0141] [Point 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 check the consistency between a symbol described in a user program included in the project and a symbol referenced by a display component on a display screen. The conversion function and the check function of the project data 70 may be provided inside the transfer unit 55 or outside the transfer unit 55.
[0142] [Points 19-23] The project management unit 54 may function as an import means for executing import of a project. When importing a first project into a second project, the project management unit 54 may be configured to update the first project so that a description dependent on a unit configuration in the first project is consistent with the unit configuration of the second project, and to import the updated first project into the second project. Here, the description dependent on the unit configuration may include a description of identification information (e.g., a buffer memory number) of a symbol that changes depending on the unit configuration.
[0143] Here, the automatic correction of the project according to the difference in the unit configuration is described in relation to the import. However, this is also effective in other situations. For example, when the configuration information 74 that defines the unit configuration is changed in the PLC development environment 51, it is necessary to correct the symbol reference information 76a, 76b that depends on the unit configuration in the WebHMI development environment 61. In this case, the PLC development environment 51 corrects the symbol reference information 76a and transmits a change request for the symbol reference information 76b to the WebHMI development environment 61, so that the WebHMI development environment 61 can appropriately correct the symbol reference information 76b. Here, the change request may indicate the unit number before the change and the unit number after the change. This will allow the WebHMI development environment 61 to easily correct the symbol reference information 76b.
[0144] 19, the project management unit 54 may link the description of the symbol linked to the first identification information in the first project to the second identification information in accordance with a user input indicating a 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 extension unit included in the unit configuration of the second project. This will reduce the burden on the user in terms of the work of correcting the identification information.
[0145] When the identification information of the centrally managed data such as image data, video data, and audio data included in the first project is already used in the second project, the project management unit 54 may change the identification information of the image data to identification information that is unused in the second project. This will reduce the burden on the user in terms of correcting the identification information.
[0146] [Points 24-26] The second development environment (e.g., WebHMI development environment 61) may obtain the type of the symbol associated with the display component constituting the display screen from the first development environment. The second development environment may set the display format of the symbol value in the display component according to the type. For example, the second development environment may set the display format of the symbol value in the display component to a floating point number when the type of the symbol is a floating point type. The second development environment may set the display format of the symbol value in the display component to a fixed point number when the type of the symbol is an integer type. The second development environment may accept a designation of the number of decimal places for the symbol value, and may add a decimal point according to the number of decimal places to display the symbol value in the display component. If the first development environment and the second development environment are independent, the user must define or declare the type of the symbol in the first development environment and manually set the display format for the symbol in the second development environment, which is very troublesome. In contrast, in this embodiment, the first development environment and the second development environment are integrated and can cooperate with each other. Therefore, the second development environment can request the type of symbol from the first development environment and set the display format according to this type, thereby reducing the burden on the user.
[0147] The invention is not limited to the above-described embodiment, and various modifications and variations 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, in accordance with a control program, which is a user program; and a web server that provides display parts, which are drawing data, to a browser in order to realize a WebHMI on an external display device having a browser, said program creation support device comprising: communication means for communicating with the programmable logic controller; a providing means for providing an integrated development environment that integrates a first non-Web application based development environment that supports development of the user program that is transferred to the programmable logic controller via the communication means and executed, and a second Web application based development environment that supports development of the display screen by generating a Web page described by data describing a structure, data describing an ornament, and code describing dynamic processing, the display screen being a WebHMI display screen that displays symbol values collected from symbols used in accordance with the user program in the programmable logic controller in accordance with display components that are transferred as drawing data to the programmable logic controller via the communication means and provided to the browser from the Web server.
2. 2. The program creation support device according to claim 1, wherein said providing means is configured to manage said user program and display parts for drawing said display screen as a single project.
3. The project is the user program, symbol definition information, and configuration information of the programmable logic controller, which are created through the first development environment; A display component of the display screen created through the second development environment; 3. The program creation support device according to claim 2, wherein the display part includes reference information for referencing a symbol holding information to be displayed on the display screen.
4. 4. The program creation support device according to claim 2, further comprising a common search means which is called from said first development environment and said second development environment and which executes a search across said entire project.
5. 5. The program creation support device according to claim 4, wherein the first development environment and the second development environment use the search results by the common search means to assist user input or to perform error checking on information entered by the user.
6. The program creation support device according to any one of claims 1 to 5, characterized in that the providing means acquires the symbol value from the programmable logic controller via the communication means, and displays the symbol value in association with a user program in the first development environment, or displays the symbol value on the display screen.
7. the first development environment has a first web server that communicates with the second development environment according to a web API; The program creation support device according to any one of claims 1 to 6, characterized in that the second development environment is definition information of symbols linked to display components that constitute the display screen, and definition information created in the first development environment is acquired via the first Web server and reflected in the display components for drawing the display screen.
8. the programmable logic controller has a second Web server that reflects information stored in the symbols on the display screen created by the second development environment and provides the display screen; 8. The program creation support device according to claim 7, wherein the second development environment includes a Web browser that accesses the second Web server via the first Web server and displays the display screen.
9. 9. The program creation support device according to claim 8, wherein the first development environment and the programmable logic controller are configured to provide TCP transparent communication between the Web browser and the second Web server.
10. the integrated development environment includes an editor mode that accepts editing of the user program in the first development environment and accepts editing of the display screen in the second development environment, and a monitor mode that acquires and displays symbol values from symbols linked to the user program in the first development environment and acquires, from the programmable logic controller, symbol values of symbols linked to the display screen in the second development environment and displays them on the display screen; 9. The program creation support device according to claim 1, wherein each of the first and second development environments has an instruction unit for instructing switching between the editor mode and the monitor mode.
11. A program creation support device as described in any one of claims 1 to 6, characterized in that a Web server provided in the first development environment and a Web application executed in an embedded browser provided in the second development environment communicate via a Web API, thereby allowing the first development environment and the second development environment to cooperate in creating or managing a project including the user program and display components of the display screen.
12. The program creation support device according to claim 11, characterized in that the first development environment and the second development environment cooperate with each other via the Web API to match the operating mode of the first development environment with the operating mode of the second development environment.
13. 13. The program creation support device according to claim 12, characterized in that, when switching between the operating modes, the first development environment and the second development environment prohibit user operations on the first development environment and user operations on the second development environment.
14. The program creation support device according to any one of claims 12 and 13, characterized in that the first development environment and the second development environment prohibit switching of the operating mode when at least one of the first development environment and the second development environment is in a busy state or displaying a dialog when the switching of the operating mode is instructed.
15. 15. The program creation support device according to claim 1, wherein the first development environment is configured to accept an instruction to start the second development environment and start the second development environment.
16. The program creation support device according to claim 11, characterized in that the first development environment and the second development environment are linked via the Web API to match the language settings of the first development environment with the language settings of the second development environment.
17. The program creation support device according to claim 11, characterized in that the first development environment and the second development environment cooperate via the Web API to match the comment set of the first development environment with the comment set of the second development environment.
18. a transfer means for transferring a project created in the integrated development environment to the programmable logic controller; The program creation support device according to any one of claims 1 to 17, characterized in that the transfer means performs a check of consistency between symbols described in the user program included in the project and symbols referenced by display components on the display screen.
19. 20. The program creation support apparatus according to claim 18, further comprising an import unit for importing the project.
20. 20. The program creation support device according to claim 19, wherein the import means is configured, when importing a first project into a second project, to update the first project so that a description dependent on a unit configuration in the first project is consistent with the unit configuration of the second project, and to import the updated first project into the second project.
21. 21. The program creation support apparatus according to claim 20, wherein the description dependent on the unit configuration includes a description of identification information of a symbol that changes depending on the unit configuration.
22. The program creation support device of claim 21, characterized in that the import means links a description of a symbol linked to the first identification information in the first project to the second identification information in accordance with user input indicating a correspondence between first identification information of an expansion unit included in the unit configuration of the first project and second identification information of the expansion unit included in the unit configuration of the second project.
23. The program creation support device according to claim 20, characterized in that, when identification information of image data included in the first project is already in use in the second project, the import means changes the identification information of the image data to identification information unused in the second project.
24. The program creation support device according to any one of claims 1 to 6, characterized in that the second development environment obtains from the first development environment the type of symbol associated with a display component that constitutes the display screen, and sets a display format of the symbol value in the display component according to the type.
25. The program creation support device according to claim 24, characterized in that the second development environment sets the display format of the symbol value in the display component to a floating point number when the type of the symbol is a floating point type, and sets the display format of the symbol value in the display component to a fixed point number when the type of the symbol is an integer type.
26. The program creation support device according to claim 25, characterized in that the second development environment accepts a specification of the number of decimal places for the symbol value, and displays the symbol value on the display component by adding a decimal point according to the number of decimal places.
Citation Information
Patent Citations
Sequence control method, program for allowing computer to execute the method, method for manufacturing sequence control circuit, and program for allowing computer to execute the method
JP2003015708A
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
Programmable display device and programmable logic controller system including the same
JP2020166827A
Method for providing engineering tool services
US20030061311A1