controller

The controller's integrated development and simulation environments, using WebAssembly and controlled software distribution, streamline the creation and simulation of control software for software PLCs, eliminating the need for individual setup and enabling collaborative development.

JP2025103530APending Publication Date: 2025-07-09HITACHI LTD
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
JP2023220976
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2023-12-27
Publication Date
2025-07-09

AI Technical Summary

Technical Problem

Existing software PLC development environments require significant setup effort due to differences in development environments for each software PLC product, necessitating time-consuming configuration and compatibility adjustments.

Method used

A controller equipped with development software and a software distribution platform that allows for the distribution of development environments to external computers, utilizing WebAssembly for platform-independent execution and enabling simulation environments, with controlled distribution of development software to multiple users.

Benefits of technology

Enables the creation and simulation of control software for software PLCs without the need to construct individual development environments, facilitating efficient and collaborative development across multiple computers.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025103530000001_ABST
    Figure 2025103530000001_ABST
Patent Text Reader

Abstract

To solve a problem of time and effort required to set up development environment, which differs for each software PLC product, since written control logic needs to be converted into a program to be executed by software, and therefore a dedicated development environment is required for each software PLC, in a software PLC.SOLUTION: A controller 100 of the present invention, which has a software PLC 101, is provided with development software 301 for developing control software that transmits a control command to a control target of the software PLC 101, and a software distribution platform 302 for distributing the development software 301 to an external development computer 200.SELECTED DRAWING: Figure 3
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to a controller, and more particularly to a controller for constructing a development environment for system development.

Background Art

[0002] As a technology related to a development environment for system development, for example, there is a technology disclosed in Patent Document 1. Patent Document 1 describes that "a production container is replicated as a debug container. Computer software is executed in the production container and in the debug container. Executing computer software includes replicating a request sent to the computer software running in the production container to the computer software running in the debug container. A request from the computer software running in the production container is stored together with a response to this request. Debug information generated by the computer software running in the debug container is stored."

Prior Art Documents

Patent Documents

[0003]

Patent Document 1

Summary of the Invention

Problems to be Solved by the Invention

[0004] By the way, a dedicated language is used when describing the control logic of a PLC (Programmable Logic Controller). In particular, in a software PLC that realizes the functions of a PLC with software, program conversion is required to execute the described control logic with software, and for this purpose, a dedicated development environment is required for each software PLC. Since the development environment differs for each software PLC product, it takes time to set up the environment.

[0005] The present invention has been made in view of such circumstances, and an object thereof is to provide a controller that enables description of the control logic of a software PLC without taking the trouble of constructing a development environment (environment construction).

Means for Solving the Problems

[0006] To solve the above problems, for example, the configuration described in the claims is adopted. This application includes a plurality of means for solving the above problems. If an example is given, it is characterized by "a controller having a software PLC, including development software for developing control software that transmits a control command to a control target of the software PLC, and a software distribution platform for distributing the development software to an external development computer".

Effects of the Invention

[0007] According to the present invention, it is possible to create control software that transmits a control command to a control target of a software PLC without taking the trouble of constructing a development environment (environment construction).

[0008] Problems, configurations, and effects other than those described above will be clarified by the description of the following embodiments for carrying out the invention (hereinafter referred to as embodiments).

Brief Description of the Drawings

[0009]

Figure 1

Figure 2

Figure 3

Figure 4

Figure 5

Figure 6

Embodiments for Carrying Out the Invention

[0010] Hereinafter, embodiments (embodiments) for carrying out the present invention will be described with reference to the accompanying drawings. In this specification and the drawings, for components having substantially the same function or configuration, the same reference numerals are given and redundant explanations are omitted. Also, when there are a plurality of elements having the same or similar functions, they may be described with different subscripts attached to the same reference numeral. However, when it is not necessary to distinguish between a plurality of elements, the subscripts may be omitted in the description.

[0011] <Basic Configuration of a Controller Having a Software PLC> FIG. 1 is a block diagram schematically showing an example of the basic configuration of a controller having a software PLC.

[0012] In FIG. 1, the controller 100 has a software PLC 101 that realizes the functions of a PLC in software. The control software of the software PLC 101 operates on the OS (Operating System) 102 of the controller 100 and sends control commands to the control target 110 of the software PLC 101. The control commands are sent from the I / O (input / output device) 103 provided in the controller 100 to the control target 110 using the functions of the OS 102.

[0013] <Current development environment of software PLC> FIG. 2 is a block diagram schematically showing an example of the development environment of a current (i.e., prior to the present invention) software PLC.

[0014] In a PLC, a dedicated language is used to create a ladder control program, and a development environment unit 201 for creating a program in a similar dedicated language is also provided in the software PLC 101. This development environment unit 201 is software executed on the user's development computer 200. Control software 202 is created using the dedicated language in this development environment unit 201.

[0015] In the software PLC 101, the control software 202 described in this dedicated language cannot be executed as it is. Therefore, it is necessary to convert the control software 202 described in the dedicated language into a form that can be executed by the software PLC 101. This conversion process is performed, for example, by first converting the dedicated language to C language once, and then compiling the converted C language source code into an executable binary that can be executed by the OS 102. The software PLC 101 operates by downloading and executing the generated control software 203 for download inside the controller 100 to the software PLC 101 operating therein.

[0016] In the current software PLC development environment described above, it is necessary to configure a dedicated development environment unit 201 for each PLC on the development computer 200. Therefore, considering the effort required for introduction and compatibility with the development computer 200, it becomes a significant amount of work.

[0017] <Embodiment of the Present Invention> In the present invention, in order to solve the above problems, a controller having a development environment for system development is used. FIG. 3 is a block diagram schematically showing the software PLC development environment in the controller according to an embodiment of the present invention.

[0018] In FIG. 3, a controller 100 having a software PLC 101 includes development software 301 and a software distribution base 302. The development software 301 is software for developing control software that transmits control commands to the control target of the software PLC 101. The software distribution base 302 is a base for distributing the development software 301 to an external development computer 200.

[0019] The development computer 200 includes a software reception base 204. The software reception base 204 receives the development software 301 distributed from the controller 100 through the software distribution base 302. By receiving this development software 301, it becomes possible to create control software that transmits control commands to the control target of the software PLC 101 on the development computer 200.

[0020] In this development environment, the development software 301 is distributed to the development computer 200 through the software distribution base 302. Therefore, the execution of the development software 301 on the development computer 200 does not impose a load on the controller 100.

[0021] As described above, in the development environment of the software PLC in the controller 100 according to the embodiment of the present invention, the development environment is provided on the software PLC 101 side, that is, in the controller 100, and the development environment is distributed from the controller 100 to the development computer 200. Then, control software that accesses the development environment from the development computer 200 side and transmits control commands to the control target of the software PLC 101 is created. As a result, it becomes possible to create control software that transmits control commands to the control target of the software PLC 101 without taking the trouble to construct a development environment.

[0022] Hereinafter, a specific example of the development environment of the software PLC 101 in the controller 100 according to the embodiment of the present invention will be described.

[0023] [Example 1] Example 1 of the present invention is an example in which distribution of a development environment using WebAssembly is performed in a controller 100 having a software PLC 101 that realizes the functions of a PLC with software. FIG. 4 is a block diagram schematically showing the development environment of the software PLC in the controller 100 according to Example 1 of the present invention.

[0024] In the development environment of the software PLC 101 according to Example 1, the development software 301 is provided as WebAssembly 401 that uses binary on a browser. WebAssembly 401 is in the form of a program executable on a web browser and is characterized by low dependence on a platform. Also, a web server 402 is used as the software distribution base 302.

[0025] Since a web browser is often installed as standard on a computer (PC), in this embodiment, it is not necessary to introduce software into the development computer 200. Also, since WebAssembly is supported by many browsers, it can be used without depending on the type of browser installed as standard.

[0026] By accessing the Web server 402 of the controller 100 from the Web browser 403 on the development computer 200, the binary of the Web assembly 401 is delivered from the Web server 402 to the Web browser 403. By executing this on the Web browser 403 of the development computer 200, an environment for developing control software that sends control commands to the control target of the software PLC 101 is constructed.

[0027] The control software created in this development environment is converted into a form executable by the software PLC 101 within the Web browser 403 as it is, and then downloaded to the software PLC 101 via the Web server 402.

[0028] As described above, according to the development environment of the software PLC 101 in the controller 100 according to the first embodiment, by delivering the development environment using the Web assembly 401 as the development software 301, it is possible to develop control software that sends control commands to the control target of the software PLC 101 without taking the trouble to construct the development environment.

[0029] [Embodiment 2] Embodiment 2 of the present invention is an example of realizing simulation without taking the trouble to construct a development environment. FIG. 5 is a block diagram schematically showing the development environment of the software PLC in the controller 100 according to Embodiment 2 of the present invention.

[0030] In the above-described first embodiment, the development environment of the control software is provided in the controller 100, and by delivering the development environment to the development computer 200, it is possible to develop the control software without taking the trouble to construct the development environment.

[0031] In Example 2, similar to Example 1, the controller 100 is equipped with a development environment for control software. In addition to this, in Example 2, the controller 100 is equipped with a simulation environment for the developed control software, and by distributing this to the development computer 200, it is possible to simulate the control software without taking the trouble to construct a development environment.

[0032] Specifically, the software PLC 101 usually holds control information 501, which is information about the control target and control software, as predetermined control information. The control information 501 includes, for example, a transfer function that models the control target and control parameters of the control software. Specific examples of the control parameters can include gain parameters of feedback control such as PID (Proportional Integral Derivative) control and the control period. In addition to the development software 301, the controller 100 is equipped with simulation software 502 that can perform simulations using the control information 501.

[0033] In Example 2, similar to Example 1, when creating control software on the development computer 200 side and downloading this created control software to the software PLC 101 via the Web server 402, the control parameters included in the control software are also reflected in the control information 501.

[0034] When performing a simulation, access the Web server 402 of the controller 100 from the Web browser 403 installed on the development computer 200 to obtain the simulation software 502. The simulation software 502 is implemented in the form of a Web assembly and is executable on the Web browser 403.

[0035] When the simulation software 502 is distributed, the control information 501 stored in the software PLC 101 can be acquired and reflected in the simulation settings of the control software. By reflecting the control information 501 in the simulation settings of the control software, it becomes possible to immediately start the simulation of the control software designed by the development software 301.

[0036] As described above, according to the development environment of the software PLC 101 in the controller 100 according to the second embodiment, the simulation environment of the developed control software is provided in the controller 100 and distributed to the development computer 200. Therefore, it is possible to execute the simulation of the control software without taking the trouble to construct the development environment.

[0037] [Embodiment 3] Embodiment 3 of the present invention is an example that enables the development of control software by a large number of people without taking the trouble to construct a development environment. FIG. 6 is a block diagram schematically showing the development environment of the software PLC in the controller 100 according to Embodiment 3 of the present invention.

[0038] In Embodiment 1, an example of distributing the development software 301 was shown. When distributing the software, since a binary copy is distributed, it is possible to distribute the development software 301 to each computer without any problem even when a plurality of development computers 200 are connected simultaneously. However, at this time, if each development software 301 freely downloads the control software to the software PLC 101, it will cause problems. Therefore, in Embodiment 3, the development of control software by a large number of people is enabled by restricting this download.

[0039] In Embodiment 3, a plurality of, for example, two development computers 200_1 and 200_2 can access the controller 100. Web browsers 403_1 and 403_2 are installed on the development computers 200_1 and 200_2. The development computers 200_1 and 200_2 access the Web server 402 of the controller 100. In response to this access, the controller 100 distributes the development software 301 to these development computers 200_1 and 200_2. On each of the development computers 200_1 and 200_2, control software is created based on the development software 301.

[0040] The control software created on each of the development computers 200_1 and 200_2 is downloaded to the software PLC 101 of the controller 100 through the Web server 402. At this time, simultaneously with the download of the control software, predetermined identification information 503 is stored in the software PLC 101. This identification information 503 records which control software was downloaded from which development computer. For the former (which development computer), for example, an IP address is used, and for the latter (which control software), for example, a timestamp is used.

[0041] When another development computer accesses the Web server 402 of the controller 100 and attempts to download the control software again, the downloadability is determined after checking this identification information 503. It is necessary to formulate a policy in advance when determining the downloadability. This can be, for example, an overwrite mode where downloading is always possible, or a reject mode where downloading is always not allowed. More complex policies can also be formulated, such as determining that downloading is possible only when the identification information 503 and the IP address match, or querying the IP address of the identification information for the acceptability determination.

[0042] That is, in the third embodiment, when downloading the control software developed by the development computers 200_1 and 200_2 to the software PLC 101, the identification information 503 is saved, and the permission of the download is determined based on the identification information 503 and a pre-established policy.

[0043] As described above, according to the development environment of the software PLC 101 in the controller 100 according to the third embodiment, since a plurality of development computers can access the controller 100, it is possible to develop control software by a large number of people without taking the trouble to construct the development environment.

Explanation of Reference Numerals

[0044] 100... Controller, 101... Software PLC, 102... OS (Operating System), 103... I / O (Input / Output Device), 200... Development Computer, 201... Development Environment Section, 202... Control Software (User-Created), 203... Control Software (For Download), 204... Software Reception Base, 301... Development Software, 302... Software Distribution Base, 401... Web Assembly, 402... Web Server, 403, 403_1, 403_2... Web Browser, 501... Control Information, 502... Simulation Software, 503... Identification Information

Claims

1. A controller having a software PLC, comprising: development software for developing control software that transmits a control command to a control target of the software PLC; a software distribution platform for distributing the development software to an external development computer; The controller is characterized by comprising the above.

2. The controller according to claim 1, further comprising simulation software capable of saving predetermined control information when downloading the control software developed on the development computer to the software PLC and performing simulation using the control information.

3. Formulate a policy for determining whether to download the control software developed on the development computer to the software PLC, and determine the feasibility of downloading based on the predetermined identification information saved during the download and the policy. The controller according to claim 1, characterized by the above.

Citation Information

Patent Citations

  • Method, computer system, and computer program for providing debug information about a production container using a debug container

    JP2019519852A