Software design support method and software design support device

By linking physical and virtual environments through networked controllers, the method simplifies software design by reducing modeling complexity and enabling direct control of physical targets using virtual controllers, thus enhancing design efficiency.

JP7723882B2Active Publication Date: 2025-08-15INT LAB
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
JP2023040855
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2023-03-15
Publication Date
2025-08-15
Estimated Expiration
2043-03-15

AI Technical Summary

Technical Problem

The conventional software design methods in virtual environments require excessive work due to the need to model controllers and controlled objects at different levels of abstraction, leading to increased modeling complexity.

Method used

A method and device that connect a physical environment with a virtual environment via a network, allowing controllers and controlled objects with different abstraction levels to share control information, enabling controllers in the virtual environment to directly control targets in the physical environment.

Benefits of technology

This approach reduces the amount of work required for modeling by allowing controllers in the virtual environment to control physical targets directly, simplifying the design process and facilitating the reproduction of complex scenarios without needing detailed physical models.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007723882000001
    Figure 0007723882000001
  • Figure 0007723882000002
    Figure 0007723882000002
  • Figure 0007723882000003
    Figure 0007723882000003
Patent Text Reader

Abstract

To enable linking a virtual environment and a physical environment and reducing work involved in modeling.SOLUTION: In software design for a controller 103b, which is configured by network-connecting a controller 103a to which a control target 102a is connected and the controller 103b to which a control target 102b is connected, for example, the control target 102a and the controller 103a are configured in a physical environment system, and the control target 102b and the controller 103b are configured in a modeled virtual environment. The controller 103a of the physical environment and the controller 103b of the virtual environment share control information with each other via a network connection. Software is then designed to control the control target 102a of the physical environment using the controller 103b of the virtual environment.SELECTED DRAWING: Figure 1
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The present invention is a software design support Methods and Software Design support Regarding the device. [Background technology]

[0002] Traditionally, development has focused on designing and evaluating software in a physical environment, but in recent years, model-based design methods that model and design the physical environment in a virtual environment have been attracting attention.

[0003] When designing software in a virtual environment, it is necessary to model the controller and the controlled object in the physical environment. When modeling the controller and controlled object in the physical environment in a virtual development environment and designing software, modeling is considered according to the level of abstraction. For example, there is MILS (Model In the Loop Simulation), in which both the controlled object and the controller are designed using highly abstract models. There is also SILS (Software In the Loop Simulation), in which the controller and controlled object are designed by writing them in a programming language such as C code. There are also other methods such as PILS (Program In the Simulation), in which the controller is designed using an instruction set simulator (ISS) for an actual microcontroller, and a model corresponding to the control and a program such as C code for the actual microcontroller.

[0004] As a prior art, for example, there is a technology in SILS that improves simulation speed by redoing the simulation at a relatively low cost when the speculative input differs from the actual input (see, for example, Patent Document 1 below). [Prior art documents] [Patent documents]

[0005] [Patent Document 1] Japanese Patent Application Laid-Open No. 2010-282291 Summary of the Invention [Problem to be solved by the invention]

[0006] However, when designing software, it became necessary to consider and design the control target model in accordance with the different levels of abstraction of the controller for MILS, SILS, and PILS. For this reason, with conventional technology, the amount of work involved in modeling when designing software in a virtual environment increased.

[0007] In one aspect, the present invention aims to link a virtual environment with a physical environment, thereby reducing the amount of work involved in modeling. Another object of the present invention is to reduce the amount of work involved in modeling a controlled object by combining controllers and controlled object models with different levels of abstraction within a virtual environment. [Means for solving the problem]

[0008] According to one aspect of the present invention, a software design for a controller in which controllers to which control targets are connected are connected via a network is provided. support In the method, one of the controlled objects and the controller is configured in a system of a physical environment, and the other of the controlled objects and the controller is configured in a modeled virtual environment, and the controller in the physical environment Computer and the controller of the virtual environment. Computer and share control information with each other via a network connection, and the controller in one environment The computer , and controls the control object in the other environment. R According to another aspect of the present invention, controllers of different abstraction levels can be used in a virtual environment. Computer The control information is shared between the control model and the control object model via a network connection. Computer This allows for controllers with different levels of abstraction. Computer Controlling the control target model connected to R , is a requirement. [Effects of the Invention]

[0009] According to one aspect of the present invention, it is possible to link a virtual environment with a physical environment, thereby reducing the amount of work involved in modeling. [Brief explanation of the drawings]

[0010] [Figure 1] FIG. 1 is a diagram illustrating an example of a configuration of a software design support apparatus according to the first embodiment. [Figure 2] FIG. 2 is a diagram illustrating an example of a hardware configuration of a controller of a physical environment according to the first embodiment. [Figure 3] FIG. 3 is a diagram illustrating an example of a hardware configuration of a controller of a virtual environment according to the first embodiment. [Figure 4] FIG. 4 is a diagram illustrating a specific configuration example of the software design support apparatus according to the first embodiment. [Figure 5] FIG. 5 is a flowchart illustrating an example of processing according to the first embodiment. [Figure 6] FIG. 6 is a diagram illustrating an example of communication access between controllers. [Figure 7] FIG. 7 is a diagram for explaining an outline of access from a PLC to a device. [Figure 8] FIG. 8 is a diagram illustrating an example of a device control program. [Figure 9] FIG. 9 is a diagram illustrating access by a PLC to a device connected to another PLC. [Figure 10] FIG. 10 is a diagram illustrating an example of a configuration of a software design support apparatus according to the second embodiment. [Figure 11] FIG. 11 is a diagram illustrating an example of a hardware configuration of a controller of a virtual environment according to the second embodiment. [Figure 12] FIG. 12 is a diagram illustrating a specific configuration example of the software design support apparatus according to the second embodiment. [Figure 13] FIG. 13 is a flowchart illustrating an example of processing according to the second embodiment. DETAILED DESCRIPTION OF THE INVENTION

[0011] Please refer to the following drawing for software design support Methods and Software Design support The embodiment of the device will be described in detail. Software design described in the embodiment support Methods and Software Design support For example, the device controls a control target in the physical environment by using a controller in the virtual environment instead of a controller in the physical environment. Also, in the virtual environment, controllers and control targets with different levels of abstraction can be freely combined to create software. Design support Make it possible.

[0012] (Embodiment 1) FIG. 1 shows a software design according to the first embodiment. support 1 is a diagram illustrating an example of the configuration of a device. support The device 100 is composed of a physical environment 100a, which is the environment of the actual device, and a virtual environment 100b, which is a model of the actual device. support Software design using the environment Support .

[0013] The physical environment 100a is composed of a control object 102a, such as a motor, and a controller 103a, such as a microcomputer (including software on the microcomputer) that controls the motor. The controller 103a controls the control object 102a via line 104a, and information about the control object 102a is fed back to the controller 103a via line 105a, showing a typical control configuration.

[0014] On the other hand, virtual environment 100b is an example in which controlled object model 102b, which models a motor or the like, and controller 103b, which controls the controlled object, are assumed to be a model simulating a microcomputer at the instruction set level. In virtual environment 100b, controlled object model 102b is controlled by controller 103b, which simulates a microcomputer, via line 104b, and information on controlled object model 102b is fed back to controller 103b via line 105b.

[0015] Since the virtual environment is reproduced on a computer, lines 104b and 105b are shown in FIG. 1 for illustrative purposes, but physical lines are not necessarily required.

[0016] Software design of the first embodiment support The device 100 provides communication means to the controller 103a of the physical environment and the controller 103b of the virtual environment, and creates an environment in which the controller 103a of the physical environment and the controller 103b of the virtual environment can communicate with each other via a communication line 110 on a network.

[0017] As a result, software for controlling the control target 102a in the physical space 100a from the controller 103b in the virtual environment 100b is designed on the controller 103b that simulates the microcomputer in the virtual environment 100b. support This makes it possible.

[0018] In Figure 1, the dashed lines indicate the control software design in a conventional physical environment 100a or a virtual environment 100b. support This is the part that was necessary for the software design of the first embodiment. support Parts not directly required for the device 100 are shown.

[0019] According to the first embodiment, the control target 102a in the physical environment 100a is directly controlled by the controller 103b in the virtual environment 100b, which reduces the work of creating the control target model 102b in the virtual environment 100b.

[0020] The software design shown in Figure 1 support According to the device 100, it is also possible to use the microcomputer of the actual controller 103a in the physical environment 100a. In this case, the control object 102a in the physical space 100a is not used, but the control object model 102b in the virtual environment 100b is used to execute the software. Design support It is also possible to do this.

[0021] Software design of the first embodiment supportAccording to the device 100, even a case that is difficult to reproduce using the actual controlled object 102a in the physical space 100a can be easily reproduced by using the controlled object model 102b in the virtual environment 100b.

[0022] 2 is a diagram illustrating an example of the hardware configuration of a controller of a physical environment in embodiment 1. The diagram illustrates an example of the configuration of controller 103a of physical environment 100a. Controller 103a includes a microcomputer 201, a ROM 202 in which control software and the like are installed, a RAM 203 that serves as a work memory when executing the software, a communication I / F 204, and a control I / F 205.

[0023] The ROM 202 is loaded with software such as communication software 211 for communicating with the virtual environment 100b and control software 212. The loaded software includes various other software such as an operating system, drivers, and a user interface, but Fig. 2 shows only the communication and control software involved in the present invention.

[0024] 3 is a diagram showing an example of the hardware configuration of a controller of a virtual environment in embodiment 1. This diagram shows an example of the configuration of controller 103b of virtual environment 100b. Controller 103b includes a microcomputer model 301 which is an instruction set simulator of an actual microcomputer, a ROM model 302 in which control software and the like are embedded, a RAM model 303 which is a work memory model when executing the software, a communication I / F model 304, and a control I / F model 305.

[0025] The ROM model 302 is loaded with software such as communication software 311 for communicating with the physical space 100a and control software 312. The loaded software may include an operating system, a driver, a user interface, and various other software, but Fig. 3 shows only the communication and control software involved in the present invention.

[0026] FIG. 4 shows the software design of the first embodiment. support4 is a diagram showing a specific example of the configuration of the device. In this figure, the controllers 103a and 103b described in FIGS. 2 and 3 are used to execute the software design shown in FIG. support 1 shows an example of an implementation of the configuration of the device 100.

[0027] The physical environment 100a is realized using real devices, and both the controller 103a and the controlled object 102a are configured using real devices. On the other hand, the virtual environment 100b is a virtual space realized on a computer and has no physical existence.

[0028] The controller 103a of the physical environment 100a shares control information with the controller 103b of the virtual environment 100b via the communication software 211 installed in the controller 103a of the physical environment 100a and the communication software 311 installed in the controller 103b of the virtual environment 100b.

[0029] As a result, the control software 312 of the controller 103b of the virtual environment 100b sends the control information executed in the virtual environment 100b to the control I / F 205 of the physical space 100a, and controls the control target 102a via line 104a. Feedback information from the control target 102a is fed back via line 105a and shared with the controller 103b of the virtual environment 100b via the communication line 110.

[0030] 5 is a flowchart showing an example of processing according to the first embodiment. This shows an example of a setting process for controlling the control target 102a in the physical environment 100a by the controller 103b in the virtual environment 100b. First, the communication software 211 is installed in the controller 103a in the physical environment 100a (step S501). Next, the communication software 311 is installed in the controller 103b in the virtual environment 100b (step S502). Next, the control software 312 is installed in the controller 103b in the virtual environment 100b (step S503).

[0031] Next, the control I / F setting of the control software 312 of the controller 103b of the virtual environment 100b is set to the control I / F 205 of the physical environment 100a (step S504). Then, the control software 312 is executed in the virtual environment 100b (step S505).

[0032] This allows the controller 103b in the virtual environment 100b (MILS) to control the controlled object 102a in the physical environment 100a.

[0033] (Example of communication connection between physical and virtual environments) Here, with reference to Figures 6 to 9, examples of communication connections between the physical environment and the virtual environment will be described. According to the following communication connection examples, seamless communication access is possible between the physical environment and the virtual environment, and regardless of their respective physical locations. In the following explanation, it is assumed that the device operates by executing a control program in a PLC (Programmable Logic Controller) installed in the device. The PLC corresponds to the controllers 103a and 103b arranged in the physical environment and the virtual environment, respectively, as explained above.

[0034] 6 is a diagram showing an example of communication access between controllers. Using a pair of PLC1 and PLC2 (600a and 600b) as an example, an example of access between a control target 602a (device A) of PLC1 (600a) and a control target 602b (device B) of PLC2 (600b) will be described.

[0035] PLC1 and PLC2 (600a and 600b) correspond to the controllers 103a and 103b arranged in the physical environment and the virtual environment, respectively, described above. For example, PLC1 (600a) and the control target 602a (device A) correspond to the controller 103b and the control target 102b described above, and PLC2 (600b) and the control target 602b (device B) correspond to the controller 103a and the control target 102a described above.

[0036] Without being limited to this, for example, PLC1 (600a) and controlled object 602a (device A) may correspond to the controller 103a and controlled object 102a described above, and PLC2 (600b) and controlled object 602b (device B) may correspond to the controller 103b and controlled object 102b described above.

[0037] PLC1, PLC2 (600a, 600b) each has an application program 601, a function box 602, a core layer 603, an implementation unit 605 for communication devices that communicate with the outside world and access processing with boards within the device, and a platform (hardware, OS, driver) 606.

[0038] The communication layer 1 (605a) of PLC1 (600a) can access device A (602a) directly connected to PLC1 (600a) and can also access device B (602b) of PLC2 (600b) via the network NW (e.g., the above-mentioned communication line 110). The communication layer 2 (605b) can access port x and the like in PLC1 (600a). Similarly, the communication layer 1 (605a) of PLC2 (600b) can also access device B (602b) connected to PLC2 (600b) and can also access device A (602a) connected to PLC1 (600a) via the network NW (110). The communication layer 2 (605b) can also access port y and the like in PLC2 (600b).

[0039] The function box 602 is composed of an editor and a function package (called INTA connection) that allows the user to easily develop and execute control programs for devices A and B (602a and 602b). The function box 602 is, for example, a development tool for developing control programs for devices A and B (602a and 602b) aimed at IoT implementation, and the control programs created with this development tool are executed in the runtime environment (Soft PLC 631 and processing unit 632 in the core layer 603).

[0040] The core layer 603 includes a Soft PLC (Basic Class Library) 631, a processing unit 632, a communication method abstraction layer 1 (633), a communication method abstraction layer 2 (634), a platform abstraction layer 1 (635), and a platform abstraction layer 2 (636). The Soft PLC 631 manages a plurality of objects, such as various objects for I / O processing, real-time monitoring, event monitoring, abnormality monitoring, data collection, and batch setting.

[0041] The processing unit 632 performs the following types 1 to 3 of processing in response to object-related processing called from the Soft PLC 631.

[0042] 1. The processing unit 632 checks whether the object that the application program 601 requests to process exists within the application, on the LAN, or on the WAN.

[0043] 2. The processing unit 632 performs processing to extract the actual state of the Name specified in each processing request called from the application program 601 via the Soft PLC 631. The actual state of this name is set in advance in the network settings.

[0044] 3. If the object exists on the LAN / WAN, the processing unit 632 secures a communication path for the object and transmits and receives a request.

[0045] The communication method abstraction layer 1 (633) is an I / F for abstracting communication processing called from the processing unit 632. Each function of the communication method abstraction layer 1 (633) calls a function of the communication layer 1 (605a) that implements individual communication processing for each access target.

[0046] The platform abstraction layer 1 (635) is an interface for abstracting platform-dependent processing called from the Soft PLC 631. Each function of the platform abstraction layer 1 (635) calls a function of the communication layer 2 (605b) that implements individual access processing for each access target and RTOS processing that is realized by adapting functions provided by the OS.

[0047] The communication layer 1 (605a) is an implementation unit for individual communication processing for each access target called from the communication method abstraction layer 2 (634). The communication layer 1 (605a) identifies the access target based on an argument (handle) passed via the processing unit 632 → communication method abstraction layer 1 (633) → communication method abstraction layer 2 (634), and performs the corresponding implementation processing.

[0048] The communication layer 2 (605b) is an implementation unit that creates individual access processing for each access target called from the platform abstraction layer 2 (636) and RTOS processing that is realized by adapting functions provided by the OS. The communication layer 2 (605b) identifies the access target based on an argument (handle) passed via the processing unit 632 → platform abstraction layer 1 (635) → platform abstraction layer 2 (636) and performs the corresponding implementation processing.

[0049] 7 is a diagram illustrating an overview of access from a PLC to a device. In PLC1 (600a), the microcomputer 201 (microcomputer model 301) executes a communication control program (corresponding to Soft PLC 631) 701. The program 701 performs processing related to obtaining device control information of device B (602b) (in the illustrated example, calls a Read function) (step S701), and issues a Read command (step S702).

[0050] Next, the lower layer (core layer 603) of program 701 interprets the command for device B (602b), references processing table 702 indicating device control information for device B (602b), and issues a command to acquire device control information for device B (602b) (step S703). Processing table 702 is prepared in advance in PLC2 (600b) that controls device B (602b), is created in RAM 203 shown in Fig. 2, and is stored in a non-volatile storage unit (ROM 202, etc.).

[0051] In step S703, PLC1 (600a) refers to the processing table 702 acquired from PLC2 (600b). PLC1 (600a) also transmits the command issued in step S703 to PLC2 (600b) corresponding to the processing table 702 via a general-purpose communication I / F. PLC1 (600a) does not transmit the command itself for controlling device B (602b), but interprets the command by referring to the processing table 702 and transmits a device control request corresponding to this command. PLC2 (600b) has the processing table 702, and can perform device control corresponding to the request transmitted from PLC1 (600a) by referring to the processing table 702.

[0052] Device B (602b) receives the Read command from PLC2 (600b) and outputs detection information corresponding to the Read command (step S704), and PLC2 (600b) sends device control information to PLC1 (600a) (step S705).

[0053] Fig. 8 is a diagram showing an example of a device control program. Using Fig. 8, an example of a program for closed device control of device A directly connected to PLC1 (600a) and device control of external device B connected to a network will be described. Fig. 8(a) is an example of a device control program for device A (602a) directly connected to PLC1 (600a). Fig. 8(b) is an example of a device control program for device B (602b) connected to PLC2 (600b).

[0054] The device control contents shown by the programs in Figures 8(a) and 8(b) are the same. In this way, the program contents are the same regardless of whether the controlled devices A and B (120) are connected to PLC1 (600a) itself or not. Therefore, when creating a program for PLC1 (600a), a programmer can create a program for devices A and B (120) without being aware of the processing involved in communication between PLC1 (600a) and PLC2 (600b).

[0055] Furthermore, even if hardware changes occur due to failures or function changes in devices A and B (120) of PLC1 (600a) and PLC2 (600b), only the processing table 502 needs to be changed, and no changes are required to the program 701 (application layer software) shown in FIG. 7.

[0056] 9 is a diagram illustrating access by a PLC to a device connected to another PLC. In this example, when PLC2 (600b) to which device B (602b) is connected is started, program 701 creates a function call table 902 as the processing table 502. Note that the function call table 902 may be created at any time, not just when program 901 is started, or may be created manually and input from outside.

[0057] This program 901 describes (sets) the process of creating a function call table 902 at startup, the process of acquiring device control information of device B (602b) (readPort), and the process of performing predetermined function calculations on the read device control information.

[0058] The function call table 902 consists of the ID (ID1) of device B (602b) and the address of the port of PLC2 (600b) to which device B (602b) is connected. In this example, ID1 is set to the address of the readPort for reading device control information from device B (602b). In addition, device control functions such as write, start, and stop can be set for each ID.

[0059] The setting in the function call table 902 is not limited to a character string such as "readPort," but may be a numeric string such as "1001" indicating that the port is to be read.

[0060] The communication processing task 903 executes communication processing (receiving and transmitting) with the PLC1 (600a) via the network NW (110), and when a request is made from the PLC1 (600a) to the device B (602b), it searches the function call table 902 using the corresponding ID and executes the function operation of the program 901 corresponding to the request.

[0061] The procedure for accessing device B (602b) from PLC1 (600a) will be described below: First, when program 901 of PLC2 (600b) is started, a function call table 902 is created (step S901).

[0062] At this time, the program 901 detects the connection port of device B (602b) connected to PLC2 (600b), and creates a setting in the function call table 902 in which the address of the readPort is associated with the ID of the function that reads device control information. Similarly, a predetermined ID (ID2 in the illustrated example) is set in the function call table 902 for the device control function (function calculation, etc.) that can be executed by PLC2 (600b).

[0063] PLC1 (600a) then acquires the function call table 902 created by PLC2 (600b) at any timing. When PLC1 (600a) knows the functions of device B (602b) and the location of PLC2 (600b) to which device B (602b) is connected, PLC1 (600a) directly accesses PLC2 (600b) to acquire the function call table 902.

[0064] Alternatively, if PLC2 (600b) publishes the function call table 902 on the network NW (110), among PLC1 (600a) that has referenced this published function call table 902, PLC1 (600a) that desires to control device B (602b) (requests to acquire device control information) can access PLC2 (600b) to acquire the information.

[0065] After that, it is assumed that PLC1 (600a) performs device control to PLC2 (600b) to acquire device control information of Device B (602b) (step S902). For example, program 901 of PLC1 (600a) executes a process (ObjY.readData()) for acquiring the device control information of Device B (602b).

[0066] In this case, the program 901 of PLC1 (600a) issues a Read command (readData()) to the device B (602b) (step S903). Then, a lower layer of the program 901 interprets the command to the device B (602b), refers to the function call table 902 acquired from the PLC2 (600b), specifies the identifier ID1 corresponding to the acquisition of the device control information of the device B (602b), and sends the request ID1 corresponding to the command (readPort(et al.)) to acquire the device control information of the device B (602b) to the PLC2 (600b) (step S904).

[0067] Here, PLC1 (600a) does not send the device control command of device B (602b) itself to PLC2 (600b), but rather only sends an identifier ID including the device control content by referring to the function call table 902, thereby reducing the amount of data to be transmitted.

[0068] Here, the devices 602a and 602b function as devices for specific purposes, such as a human sensor, an intrusion detector, a remote control, a digital camera, an IC recorder, an in-vehicle device, or a medical device.

[0069] Then, upon receiving request ID1 from PLC1 (600a) (step S905), the communication processing task 903 of PLC2 (600b) refers to the function call table 902 (step S906) and causes the program 901 to execute the function (readPort) corresponding to identifier ID1 (step S907).

[0070] Thereafter, in PLC2 (600b), the program 901 performs I / O port read processing in response to ID1, reads out information of the corresponding device B (602b) (readPort), and returns it to the communication processing task 903 (step S908).

[0071] Then, PLC2 (600b) transmits the information about device B (602b) that the communication processing task 903 reads as a result of readPort to PLC1 (600a) (step S909).

[0072] PLC1 (600a) converts the information sent from device B (602b) as a response to the readPort (other) issued by program 901 into readData() (step S910), and acquires the corresponding information of device B (602b) as a result of the process (ObjY.readData()) for acquiring the information of device B (602b) (step S911).

[0073] According to the above process, PLC1 (600a) distinguishes between processing of device A directly connected to itself and processing of external PLC2 (600b) via network NW (110) based on an argument (the name of the device to be accessed) specified by program 901. In this case, for access to external PLC2 (600b), PLC1 (600a) refers to a function call table 902 acquired in advance and accesses the corresponding PLC2 (600b).

[0074] Furthermore, the communication processing task 903 and the function call table 902 of the PLC2 (600b) are not limited to software implementation, but can also be configured using a hardware chip.

[0075] Furthermore, as described above, the function call table 902 is not limited to being acquired by PLC1 (600a), but can also be configured so that devices A and B (602a, 602b) publish it on the network NW (110). The functions (Read, Write, Start, Stop) of device B (602b) indicated in the function call table 902 can be acquired by any device control device (e.g., PLC 600a, 600b) on the network NW (110) to control (use) the device.

[0076] That is, by acquiring the function call table 902, PLC1 (600a) can know the functions of device B (602b) connected to PLC2 (600b), and PLC1 (600a) can control device B (602b) connected to PLC2 (600b) while concealing the communication method (procedure) of the network NW (110).

[0077] This allows PLC1 (600a) to control multiple devices A and B (602a, 602b) even when multiple PLC2 (600b) and devices A and B (602a, 602b) owned by PLC1, 2 (600a, 600b) are installed in the same room or in different locations, and regardless of the physical environment or virtual environment described above.

[0078] On the other hand, calculations that cannot be performed by PLC1 (600a) can be performed by remotely located PLC2 (600b) or device B (602b) through device control by PLC1 (600a).

[0079] Furthermore, the function call table 902 can be stored in a server on the network NW (110), and can be stored as a function call table 902 for each of the multiple PLCs 1 and 2 (600a and 600b). This allows PLC 1 (600a) to easily search for devices A and B with desired functions by accessing the server, and also makes it easy to access PLC 2 (600b) to which device B (602b) is connected.

[0080] PLC1 (600a) can easily control devices A and B that are connected to itself or to other devices, regardless of the network connection topology, without depending on the processors (e.g., microcomputer 201) or OSs of PLC2 (600b) or devices A and B (602a, 602b).

[0081] As a result, PLC1 (600a) can control not only the closed device A (602a) connected to itself, but also the device B (602b) built into the external PLC2 (600b) via the network NW (110) without being aware of the communication (protocol), and programs can be created without being aware of the communication, making it easy to create programs. In other words, PLC1 (600a) can control the sensors of devices without adding a communication program or dedicated I / F for the intervening network.

[0082] Furthermore, the function call table 902 is updated when the device 102 (602a, 602b) connected to the PLC 100 (600a, 600b) is replaced or added due to a failure or change in specifications. As a result, even if the function of the device 102 possessed by the PLC 100 is changed, the PLC 100 can perform device control of the device 102 with the desired function simply by referring to the function call table 902. In addition, even if the device 102 is replaced, there is no need to change the program.

[0083] Thus, even in embedded devices with specific functions, it becomes possible to extend the functionality by controlling other devices. Also, in general-purpose information processing devices, it becomes possible to easily control devices with desired functions. For example, it becomes possible to control any device 102 without being bound by standards such as ECHONET (registered trademark) or AUTOSAR, and without providing a dedicated I / F or dedicated communication program.

[0084] (Embodiment 2) FIG. 10 shows a software design according to the second embodiment. support 1 is a diagram illustrating an example of the configuration of a device. In the first embodiment, a physical environment and a virtual environment are connected. Ta software Design support In the second embodiment, software design between virtual environments is explained. support Let's look at an example. Designing in a virtual environment support The method is designed according to the abstraction level of the model. support A method is proposed.

[0085] 2, the design environment of virtual environment 100b is a model that uses an instruction set simulator that simulates a real microcomputer for controller 103b, and controlled object model 102b is also an environment with a model level of abstraction that matches it, which is called PILS.On the other hand, the design environment of virtual environment 100c is realized by a model that describes controller 103c in a programming language, and controlled object model 102c is also an environment with a model level of abstraction that matches it, which is called SILS.

[0086] It should be noted that a controller 103c in the virtual environment 100c also controls a control target 102c via a line 104c, and information on the control target 102c is fed back to the controller 103c via a line 105c, showing a general control configuration.

[0087] In the second embodiment, two virtual environments 100b and 100c in a virtual space are connected by a communication line 110 of a network NW to create an environment in which control information is shared. In the second embodiment as well, communication connection between the virtual environments is established by the above-described communication connection examples (see FIGS. 6 to 9).

[0088] Then, the controller 103b of the virtual environment 600b (PILS) controls the control target model 102c of the virtual environment 100c (SILS) to perform software design. support Generally, a highly abstract virtual environment 100c has a wealth of control target models 102c.

[0089] Therefore, according to the second embodiment, software design can be performed from the controller 103b that simulates the actual processor of the virtual environment 100b by using the virtual environment 100b in which a rich control target model 102c exists. Support Furthermore, it becomes unnecessary to prepare the control target model 102b in accordance with the controller 103b of the virtual environment 100b, and design efficiency can be improved.

[0090] 11 is a diagram illustrating an example of the hardware configuration of a controller of a virtual environment in embodiment 2. Communication software 1101, a control model 1102, a communication I / F model 1104, and a control I / F model 1105 of a controller 103c of a virtual environment 100c are all implemented on a computer in a programming language.

[0091] FIG. 12 shows the software design of the second embodiment. support11 shows a specific example of the configuration of the device. The configuration example uses controller 103b (see FIG. 3) and controller 103c of FIG. 11. Both virtual environment 100b (PILS) and virtual environment 100c (SILS) are realized on a computer in a virtual space and do not have any physical existence.

[0092] The controller 103b of the virtual environment 100b shares control information with the controller 103c of the virtual environment 100c through the communication software 311 installed in the controller 103b of the virtual environment 100b and the communication software 1101 installed in the controller 103c of the virtual environment 100c.

[0093] As a result, the control software 312 of the controller 103b of the virtual environment 100b is executed in the virtual environment 100b, and the control information is sent to the control I / F model 1104 of the virtual environment 100c, and the controlled object model 102c is controlled via line 104c.

[0094] Feedback information from the controlled object model 102c is fed back via line 105c and shared with the controller 103b of the virtual environment 100b via a communication line 110. The controller 103b of the virtual environment 100b is a microcomputer model 301 that simulates an actual microcomputer (PILS environment).

[0095] The virtual environment 100c is an environment (SILS environment) in which both the controller 103c and the controlled object 102c are written in a programming language and use models. According to the second embodiment, the PILS controller 103b uses software to control the SILS controlled object model 102c. Design support It is possible.

[0096] 13 is a flowchart showing an example of processing according to the second embodiment. This shows an example of a setting process for controlling the controlled object 102c of the virtual environment 100c by the controller 103b of the virtual environment 100b. First, the communication software 1101 is installed in the controller 103c of the virtual environment 100c (step S1301). Next, the communication software 311 is installed in the controller 103b of the virtual environment 100b (step S1302). Next, the control software 312 is installed in the controller 103b of the virtual environment 100b (step S1303).

[0097] Next, the control I / F setting of the control software 312 of the controller 103b of the virtual environment 100b is set to the control I / F 1105 of the virtual environment 100c (step S1304). Then, the control software 312 is executed in the virtual environment 100b (step S1305).

[0098] This allows the controller 103b in the virtual environment 100b (MILS) to control the controlled object 102c in the virtual environment 100c (SILS).

[0099] In the embodiment described above, the software design of the controller is performed by connecting the controllers to which the control targets are connected via a network. support In the method, one control object and a controller are configured in a system of a physical environment, and the other control object and a controller are configured in a modeled virtual environment, and the controller in the physical environment and the controller in the virtual environment share control information via a network connection, and the control object in one environment is controlled by the controller in the other environment. So, software Design support For example, software on a controller in a virtual environment can be used to control a control target in a physical environment. R In addition, software on the controller of the physical environment controls the controlled object in the virtual environment. RThis makes it possible to directly control a control object in the physical environment using a controller in the virtual development environment without modeling the control object, thereby reducing the work required to model the control object. Also, cases that are difficult to reproduce using an actual control object in the physical space can be easily reproduced using a control object model in the virtual environment.

[0100] In addition, in the embodiment, one environment and the other environment may both be virtual environments and include controllers and controlled objects with different levels of abstraction. For example, one environment may be a PILS design environment that is configured from a controller that models a microcomputer used in the physical environment and a controlled object model, and the other environment may be SILS that simulates the controlled object and controller of the physical environment with a program in a predetermined language. The PILS controller and the SILS controller share control information with each other via a network connection, and the SILS controlled object is controlled by software on the PILS controller. So, software Design support This allows, for example, software design to be performed using a virtual environment with a wide range of control target models from a controller that simulates an actual processor in the virtual environment. Support This also eliminates the need to prepare a control target model to match the controller in the virtual environment, improving design efficiency.

[0101] In addition, in an embodiment, one controller controls a control target directly connected to another controller in a predetermined procedure, and when controlling the control target in response to the control, generates an object for controlling the control target connected to the other controller. The process may include the following: referencing communication parameters of the control target included in network information to obtain information for accessing the object, converting the object into a predetermined packet, selecting a port corresponding to the communication method to output the packet, and transmitting the packet to the other controller to which the corresponding control target is connected. This allows one controller to access the control target connected to the other controller connected to the network and directly control the control target connected to the other controller without being restricted by the communication method specific to the controller.

[0102] In an embodiment, one controller generates an object consisting of a name for controlling the control target, a function name, and argument information. The process may also include the following: Referencing the communication method and communication parameters of the control target included in the network information of a preset network to obtain information for accessing the object; converting the object name, function name, and argument information into a predetermined packet; selecting a port corresponding to the communication method; and transmitting the packet to the other controller. This allows one controller to send and receive information to the other controller via the network, enabling direct control of the control target connected to the other controller without being restricted by the controller's specific communication method. [Explanation of symbols]

[0103] 100 Software Design support Device 100a Physical environment 100b Virtual Environment (PILS) 100c Virtual Environment (SILS) 102a~102c Control target 103a~103c Controller 104a~104c, 105a~105c lines 110 Communication lines (NW) 201 Microcomputer 202 ROM 203 RAM 204 Communication I / F 205 Control I / F 211 Communications Software 212 Control Software 301 Microcomputer Model 302 ROM model 303 RAM model 304,1104 Communication I / F model 305,1105 control I / F model 311,1101 Communication Software (Model) 312,1102 Control software (model)

Claims

1. In the software design support method for a controller, the controllers to which control targets are connected are connected via a network, One control target and controller are configured in a physical environment system, and the other control target and controller are configured in a modeled virtual environment. The computer of the controller in the physical environment and the computer of the controller in the virtual environment share control information with each other via a network connection; The computer of the controller in one environment controls the control target in the other environment based on the shared control information. A software design support method comprising:

2. 2. The software design support method according to claim 1, wherein the computer of the controller in the virtual environment controls the control target in the physical environment by executing software.

3. 2. The software design support method according to claim 1, wherein the computer of the controller in the physical environment controls the control target in the virtual environment by executing software.

4. In the software design support method for a controller, the controllers to which control targets are connected are connected via a network, One environment and the other environment are both configured within a virtual environment with the controller and the controlled object having different levels of abstraction, The computer of one of the controllers and the computer of the other controller share control information with each other via a network connection; The computer of the controller in one environment controls the control target in the other environment based on the shared control information. A software design support method comprising:

5. One environment is a PILS (Program In the Simulation) design environment consisting of a controller modeled after a microcomputer used in a physical environment and a control target model. The other environment is a Software in the Loop Simulator (SILS) that simulates the controlled object of the physical environment and the controller using a program in a predetermined language. The computer of the controller of the PILS and the computer of the controller of the SILS share control information with each other via a network connection, 5. The software design support method according to claim 4, wherein the computer of the controller of the PILS controls the control target of the SILS based on the shared control information.

6. The computer of one of the controllers controls the control target directly connected to the computer of the other controller in a predetermined procedure; When controlling the control target in response to the control, an object for controlling the control target connected to another controller is generated; obtaining information for accessing the object by referring to the communication parameters of the object included in the information on the network; converting the object into a predetermined packet, selecting a port corresponding to a communication method, and outputting the packet; transmitting the packet to the other controller to which the corresponding controlled object is connected; 2. The software design support method according to claim 1, further comprising the step of:

7. One of the controller computers generates an object consisting of a name for controlling the control target, a function name, and argument information, obtaining information for accessing the object by referring to the communication method and communication parameters of the object to be controlled, which are included in the network information of the network that has been set in advance; converting the object name, the function name, and the argument information into a predetermined packet, and selecting a port corresponding to the communication method; transmitting the packet to the other controller; 7. The software design support method according to claim 6, further comprising the steps of:

8. A software design support device including controllers connected to control targets and connected to each other via a network, wherein one of the control targets and the controller is configured as a system in a physical environment, and the other of the control targets and the controller is configured as a modeled virtual environment, a computer of the controller in the physical environment and a computer of the controller in the virtual environment share control information with each other via a network connection, and the computer of the controller in one environment controls the control target in the other environment based on the shared control information; A software design support device characterized by:

Citation Information

Patent Citations

  • Simulation system, method, and program

    JP2010282291A

  • Engineering system and engineering method

    JP2020052812A

  • Simulation method and simulation program

    JP2021043749A

  • Program development device and program development system

    JP2022174856A