Information processing method and information processing apparatus
The information processing method allows for the flexible generation and customization of control programs for household appliances by arranging functional blocks and ensuring safety compliance, addressing the limitations of existing methods.
Patent Information
- Application Number
- JP2025035112
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2020-12-25
- Filing Date
- 2025-03-06
- Publication Date
- 2025-06-03
- Estimated Expiration
- 2041-06-16
AI Technical Summary
Existing methods for generating control programs for household appliances and similar devices are inflexible, making it difficult to create, customize, and update safe and diverse control programs.
An information processing method that allows for the easy generation of control programs by selecting and arranging functional blocks that drive actuators and heaters, with a system that checks and modifies the application to ensure safety and compliance with predetermined rules.
Enables the rapid development of diverse and secure control programs, ensuring the safety and efficiency of household appliances and other devices.
Smart Images

Figure 2025084994000001_ABST
Abstract
Description
Technical Field
[0001] The present disclosure relates to an information processing method for generating a control program for an apparatus including an actuator and / or a heater, and the like.
Background Art
[0002] Conventionally, household electric appliances and housing equipment are controlled according to operation conditions (control programs) prepared in advance by manufacturers and the like. Patent Document 1 discloses a washing machine capable of setting washing operation conditions desired by a user.
Prior Art Documents
Patent Documents
[0003]
Patent Document 1
Summary of the Invention
Problems to be Solved by the Invention
[0004] However, in the above prior art, a control program developed in advance by a manufacturer or the like of a product must be stored in the product in advance, and it is difficult to generate, customize, and update various and safe control programs.
[0005] Therefore, the present disclosure provides an information processing method and the like that can easily generate a wide variety of and safe control programs.
Means for Solving the Problems
[0006] An information processing method according to one aspect of the present disclosure is an information processing method executed by a computer system, comprising: (a) generating an application including the M blocks (where M is an integer greater than or equal to 1) by setting the order in which each of the M blocks for driving at least one of an actuator and a heater provided in a device to be controlled is executed according to an input operation by an operator; and (b) presenting an error to the operator when the M selected blocks included in the application comply with a rule that prohibits at least one of the remaining blocks of the two or more predetermined blocks from not being executed when one of the two or more predetermined blocks is executed.
[0007] Also, an information processing method according to one aspect of the present disclosure is an information processing method executed by a computer system, comprising: (a) selecting, from N blocks (where N is an integer greater than or equal to 2) for driving at least one of an actuator and a heater provided in a device to be controlled, each of M blocks (where M is an integer greater than or equal to 1 and less than or equal to N) as a selected block according to an input operation by an operator; (b) generating an application including at least the M selected blocks by setting the order in which each of at least the M selected blocks is executed according to an input operation by the operator; (c) modifying the application when the M selected blocks included in the application comply with a rule that prohibits at least one of the remaining blocks of the two or more predetermined blocks from not being executed when one of the two or more predetermined blocks is executed; and (d) outputting the modified application.
[0008] These general or specific aspects may be implemented in a system, a method, an integrated circuit, a computer program, or a recording medium such as a computer-readable CD-ROM, or may be implemented in any combination of a system, a method, an integrated circuit, a computer program, and a recording medium.
Advantages of the Invention
[0009] An information processing method according to an aspect of the present disclosure can easily generate a diverse and secure control program.
Brief Description of the Drawings
[0010]
Figure 1
Figure 2A
Figure 2B
Figure 2C
Figure 3
Figure 4
Figure 5
Figure 6
Figure 7
Figure 8
Figure 9
Figure 10
Figure 11
Figure 12
Figure 13
Figure 14
Figure 15A
Figure 15B
Figure 15C
Figure 15D
Figure 15E
Figure 16
Figure 17
Figure 18
Figure 19
Figure 20
Figure 21
Figure 22
Figure 23
Figure 24
Figure 25
Figure 26
Figure 27
Figure 28A
Figure 28B
Figure 29
Figure 30
Figure 31
Figure 32
Figure 33
MODE FOR CARRYING OUT THE INVENTION
[0011] (Knowledge underlying the present disclosure) The background of the present inventors' arrival at the present disclosure will be described. In a household electrical appliance or the like having an actuator and / or a heater, in order to develop a control program according to the desires of various users, an open development environment is required. That is, an environment is required in which the difficulty of developing a control program is reduced and a third party can easily participate in the development of the control program. In such an environment, for example, it becomes possible for a clothing company to develop a control program for a washing machine for washing clothes sold by the company itself.
[0012] Therefore, the present inventors have constructed an environment in which a control program can be developed while maintaining safety, using functional blocks that abstract the control of actuators and / or heaters included in a product, and have considered a mechanism that packages a control program composed of a combination of a plurality of functional blocks and distributes it as an application. As a result, a wide variety of applications can be distributed, and it becomes possible to customize and update the product according to the wishes of a wider variety of users. However, in such an environment, there is a possibility that a dangerous application (i.e., an application that cannot safely control the product) may be distributed, resulting in a decrease in the safety of the product.
[0013] For example, a program included in a household electrical appliance or the like is incorporated into a device for directly controlling an actuator and / or a heater, and is assumed to include a program developed by a manufacturer and a program developed by a third party in a state where they are intertwined with each other. At this time, it is highly likely that the manufacturer will not disclose all the information on household electrical appliances or the like including know-how to a third party. For example, the parameters or timings for driving an actuator and / or a heater are know-how related to the performance of the manufacturer's household electrical appliances or the like. Therefore, since there is a risk of leading to a decline in competitiveness, the manufacturer is less likely to open the know-how to a third party so that the household electrical appliances or the like can be freely driven.
[0014] Therefore, due to insufficient information on household electrical appliances or the like, a third party may create an application that includes a combination of controls or a parameter range not assumed by the manufacturer, that is, an application whose safety is not guaranteed. Providing such an application to a user is not desirable for the user.
[0015] In addition, manufacturers of household appliances and the like may attempt to update users' lifestyles by providing new control programs. However, developing a wide variety of new control programs requires a huge amount of man-hours for parameter adjustment or hardware performance evaluation. Since household appliances and the like physically drive the hardware of actuators and / or heaters, it is easily anticipated that the man-hours for performance evaluation and the like of the programs for household appliances and the like will be greater compared to the programs for smartphones. However, in an era where on-demand development according to each user's life rather than mass production is required, it is demanded to develop a wide variety of control programs for household appliances and the like, similar to the programs for smartphones. Therefore, manufacturers must create a variety of applications that ensure product safety while reducing a huge amount of man-hours.
[0016] Furthermore, it may be considered that the manufacturer desires to guarantee safe operation even when household appliances and the like operate using applications provided by third parties. At this time, it is desired to reduce the amount of work for verifying safety by actually driving a wide variety of applications on household appliances and the like.
[0017] Therefore, the present disclosure provides an apparatus and the like that can execute a wide variety of applications defined by a plurality of functional blocks that drive an actuator and / or a heater more easily and safely.
[0018] Hereinafter, embodiments will be specifically described with reference to the drawings.
[0019] Note that all of the embodiments described below show comprehensive or specific examples. The numerical values, shapes, materials, components, arrangement positions and connection forms of the components, steps, order of steps, etc. shown in the following embodiments are merely examples and are not intended to limit the scope of the claims.
[0020] Also, each figure is not necessarily drawn precisely. In each figure, substantially the same components are denoted by the same reference numerals, and redundant descriptions are omitted or simplified.
[0021] (Embodiment 1) [1.1 Hardware Configuration] The hardware configuration of the system 1 in this embodiment will be described with reference to FIGS. 1 to 2C. FIG. 1 is a hardware configuration diagram of the system 1 in Embodiment 1. FIG. 2A is a hardware configuration diagram of the cloud server 10 in Embodiment 1. FIG. 2B is a hardware configuration diagram of the device 20 in Embodiment 1. FIG. 2C is a hardware configuration diagram of the terminal 30 in Embodiment 1.
[0022] As shown in FIG. 1, the system 1 in this embodiment includes a cloud server 10, devices 20a to 20h used in facilities 2a to 2d, and terminals 30a to 30d. The facilities 2a to 2d are, for example, houses, but are not limited thereto. The facilities 2a to 2d may be, for example, condominiums, stores, offices, etc.
[0023] The cloud server 10 is a virtual server provided via a computer network (e.g., the Internet). The cloud server 10 is connected to the devices 20a to 20h and the terminals 30a to 30d via a computer network. Note that a physical server may be used instead of the cloud server 10.
[0024] As shown in FIG. 2A, the cloud server 10 virtually includes a processor 11 and a memory 12 connected to the processor 11. The processor 11 functions as a sequence manager and a device manager, which will be described later, when an instruction or a software program stored in the memory 12 is executed.
[0025] Devices 20a to 20h are electromechanical appliances used in facilities 2a to 2d. In FIG. 1, illustrations of devices 20c to 20h used in facilities 2b to 2d are omitted. In the following, when the distinction between devices 20a to 20h is unnecessary, they are described as device 20.
[0026] As device 20, household electrical appliances (home appliances) and housing equipment, etc. can be used. Household electrical appliances (home appliances) and housing equipment, etc. are not limited to devices used in a house, and also include devices used in business. In the present disclosure, household electrical appliances and housing equipment, etc. may be described by omitting them as household electrical appliances, etc. Examples of home appliances include, for example, microwave ovens, rice cookers, blenders, electric ovens, electric toasters, electric pots, hot plates, IH (Induction heating) cookers, roasters, bakeries, electric pressure cookers, electric non-boiling cookers, multi-cookers, coffee makers, refrigerators, washing machines, dishwashers, vacuum cleaners, air conditioners, air purifiers, humidifiers, dryers, fans, and ion generators, etc. Examples of housing equipment include, for example, electric shutters, electronic locks, and electric water heaters for bathtubs, etc. Note that device 20 is not limited to these.
[0027] As shown in FIG. 2B, device 20 includes a housing 21, an actuator 22, a heater 23, and a control unit 24. Note that device 20 only needs to include at least one of actuator 22 and heater 23, and does not necessarily need to include both actuator 22 and heater 23.
[0028] Housing 21 houses actuator 22, heater 23, and control unit 24. Further, housing 21 may have an internal space for processing an object. For example, the washing tub of a washing machine, the heating chamber of a microwave oven, and the inner pot of a rice cooker, etc. correspond to the internal space for processing an object.
[0029] The actuator 22 is a mechanical element that converts input energy into physical motion based on an electrical signal. As the actuator 22, for example, an electric motor, a hydraulic cylinder, a pneumatic actuator, etc. can be used, but it is not limited thereto.
[0030] The heater 23 is an electric heater that converts electrical energy into heat energy. The heater 23 heats an object by, for example, Joule heating, induction heating, dielectric heating, etc. As the heater 23, for example, a nichrome wire, a coil, a magnetron, etc. can be used.
[0031] Here, an example of the reason why the device 20 of the present disclosure includes the actuator 22 and / or the heater 23 will be described. Consider a case where a manufacturer of household appliances or the like provides a third party with a development environment in which parameters for driving the actuator 22 and the heater 23 and combinations of driving can all be freely controlled. At this time, the third party can create a program that can safely drive the actuator 22 and / or the heater 23 within the parameter range assumed by the manufacturer, or that controls deviating from the driving limits of the actuator 22 and / or the heater 23. In particular, driving of the physically moving actuator 22 or the heater 23 that outputs heat energy that is not assumed by the manufacturer poses a major issue in ensuring safety. Examples of driving not assumed by the manufacturer include, for example, high-speed rotation of an electric motor, which is an example of an actuator, and supply of overcurrent to the heater 23. The inventors of the present application aimed not to impede the construction of an environment that can provide users with a variety of applications by overly considering safety. Therefore, the device 20 of the present disclosure is targeted, assuming that safety is ensured, specifically for the physically moving actuator 22 or the heater 23 that outputs heat energy.
[0032] The control unit 24 is a controller that controls the actuator 22 and / or the heater 23 and functions as a device described later. The control unit 24 is composed of, for example, an integrated circuit.
[0033] The terminals 30a to 30d are respectively used in the facilities 2a to 2d and function as user interfaces. In FIG. 1, the illustration of the terminals 30b to 30d used in the facilities 2b to 2d is omitted. In the following, when the distinction between the terminals 30a to 30d is not necessary, they are referred to as the terminal 30.
[0034] The terminal 30 is connected to the cloud server 10 and the device 20 via a computer network and functions as a user interface (UI) described later. As the terminal 30, a portable information terminal such as a smartphone and a tablet computer can be used. Note that the terminal 30 may be a terminal fixed to the wall, floor, or ceiling of the facilities 2a to 2d. Further, the terminal 30 may be included in the device 20. For example, the terminal 30 may be realized as a display terminal having a display or the like built in each of the devices 20a to 20h.
[0035] As shown in FIG. 2C, the terminal 30 includes a display 31 and an input device 32. As the display 31, for example, a liquid crystal display and an organic EL display can be used. As the input device 32, for example, a touch panel, a keyboard, a mouse, and a mechanical button or the like can be used. Further, a voice input device may be used as the input device 32. The display 31 and the input device 32 may be integrally mounted as a touch screen. Alternatively, a gesture input device may be used as the input device 32. The gesture input device has, for example, a camera and a recognition unit. The camera captures an image including a gesture, and the recognition unit recognizes the gesture using the image.
[0036] [1.2 Functional Configuration] Next, the functional configuration of the system 1 in the present embodiment will be described with reference to FIG. 3. FIG. 3 is a functional configuration diagram of the system 1 in the first embodiment.
[0037] The cloud server 10 includes a sequence manager 100 and a device manager 200. The devices 20a to 20h each include a device 300a to 300h. The terminals 30a to 30d each include a UI 400a to 400d.
[0038] Hereinafter, when it is not necessary to distinguish between the devices 300a to 300h, they are referred to as device 300. Also, when it is not necessary to distinguish between the UIs 400a to 400d, they are referred to as UI400.
[0039] The sequence manager 100 manages a plurality of applications. The plurality of applications are downloaded from an application distribution platform to the sequence manager 100, for example, by a user's operation. Alternatively, the applications included in the application distribution platform may not be downloaded to the sequence manager 100. In that case, information indicating that the applications included in the application distribution platform are associated with the database of the sequence manager 100 may be recorded. Details of the applications will be described later.
[0040] The device manager 200 has a database for managing a plurality of facilities 2a to 2d and the devices 300 and UIs 400 used in each of the facilities 2a to 2d. The device manager 200 manages the devices 300 and UIs 400 by recording device information and UI information associated with the facilities 2a to 2d in the database. The device information and UI information include, for example, control functions, drive functions, and operating status. For example, the device manager 200 can manage the operating status of the device 300 and grasp the operation schedule of the device 300. Also, the device manager 200 may manage the log information of the device 300.
[0041] Note that such a database may be possessed by the sequence manager 100 instead of the device manager 200, or may be possessed by both the sequence manager 100 and the device manager 200.
[0042] The device 300 has the control function and the drive function of the apparatus 20. The device 300 can drive the apparatus 20 in accordance with an instruction from the device manager 200.
[0043] The UI 400 provides information to the user and receives input from the user.
[0044] Here, the application will be described. In the present embodiment, an application (hereinafter, may also be abbreviated as an app) means a control program defined by a plurality of functional blocks (hereinafter, abbreviated as blocks) that drive the actuator 22 and / or the heater 23. Each of the plurality of blocks can include parameters for driving the actuator 22 or the heater 23. Specifically, each of the plurality of blocks abstracts the control of the actuator 22 or the heater 23. Note that the application may include blocks that do not drive the actuator 22 and / or the heater 23 in addition to the plurality of blocks that drive the actuator 22 and / or the heater 23. An example of a block that does not drive the actuator 22 and / or the heater 23 includes information display using the interface of the device 300, audio output using the buzzer of the device 300, lighting or extinguishing of the lamp of the device 300, and the like. Also, the block may include a condition for starting the drive of the actuator 22 or the heater 23. For example, an application including a first block and a second block will be described as an example. Here, when switching from the first block to the second block during the execution of the first block, the switch is made from the first block to the second block when the start condition included in the second block is satisfied. Also, the block may include an end condition instead of a start condition. When switching from the first block to the second block during the execution of the first block, the switch is made from the first block to the second block when the end condition included in the first block is satisfied.
[0045] Figure 4 shows an example of a block that defines an application in Embodiment 1. Block 1000 shown in Figure 4 is a block that controls the agitation operation of a washing machine and includes parameters 1001 to 1006. Parameter 1001 includes information indicating the type of agitation (for example, normal, dancing, rocking). Parameter 1001 can also be said to indicate the type of function. Parameter 1002 includes a value indicating the rotation speed of the drum. Parameter 1002 can also be said to indicate the intensity of driving of actuator 22 and / or heater 23. Parameter 1003 includes a value indicating the water supply amount into the drum by the water level after water supply. Parameter 1003 can also be said to indicate the state after driving of actuator 22 and / or heater 23. Parameter 1004 includes a value indicating the on / off of the circulation pump. Parameter 1004 can also be said to indicate whether to drive actuator 22 and / or heater 23. Parameter 1005 includes information indicating the agitation interval stepwise (for example, short, medium, long). Parameter 1006 includes a value indicating the agitation time.
[0046] To define an application, a plurality of such blocks are used. For example, a plurality of blocks as shown in Figures 5 to 7 are used.
[0047] Figure 5 shows a plurality of blocks for a washing machine in Embodiment 1. Figure 6 shows a plurality of blocks for a microwave oven in Embodiment 1. Figure 7 shows a plurality of blocks for a rice cooker in Embodiment 1. Note that the plurality of blocks shown in Figures 5 to 7 are examples, and the blocks for a washing machine, a microwave oven, and a rice cooker are not limited thereto. For example, the plurality of blocks may be hierarchized by the level of abstraction.
[0048] For example, the level of abstraction may be changed between a level for manufacturers and a level for non-manufacturers. Examples of non-manufacturers are levels for other manufacturers and levels for third parties.
[0049] At this time, the layer for manufacturers has a lower level of abstraction than the layer for non-manufacturers. A lower level of abstraction means that the content closer to the parameters for driving the actuator and the heater is controlled.
[0050] On the other hand, the manufacturer enables non-manufacturers to develop applications by providing blocks with the minimum level of abstraction that ensures know-how and safety to non-manufacturers. The manufacturer can enable more people to develop applications by providing blocks with an even higher level of abstraction to general users. An even higher level of abstraction corresponds to, for example, blocks defined in terms that can be understood by general users without specialized knowledge. Terms that can be understood without specialized knowledge correspond to, for example, the functions themselves of household appliances. Specifically, when "plenty" is selected as the parameter regarding the water volume in the "washing" block of a washing machine, in one level of concretization, the water level parameter in the water supply block is increased from 60 mm to 100 mm, and the rotation speed parameter in the agitation block is decreased from 120 rpm to 100 rpm, etc. are changed. From the above, the rearrangement of blocks and parameter changes at a higher level of abstraction can be realized with blocks at a lower level of abstraction. Also, for devices other than washing machines, microwave ovens, and rice cookers, a plurality of blocks can be defined in the same way as in FIGS. 5 to 7. With these blocks, while ensuring the safety and confidentiality regarding the driving of the actuator and the heater, application development can be freely carried out by recombining and adjusting the parameters.
[0051] Note that by the manufacturer providing blocks with the minimum level of abstraction that ensures know-how and safety to other manufacturers, the other manufacturers can independently define and implement blocks with an even higher level of concretization to realize the provided blocks. Thereby, while each manufacturer ensures its own know-how and safety, third parties that only develop applications can freely carry out application development regarding the driving of the actuators and heaters of each manufacturer.
[0052] At this time, other manufacturers do not develop blocks with a higher level of concretization that match the know-how provided by the manufacturer and the blocks with the lowest level of abstraction that ensure safety, but return an error and may present to the app developer and the user that the blocks provided by the manufacturer cannot be used or operate within a limited parameter range. Specifically, as a parameter related to the motor rotation in the "agitation" block in a washing machine, when "high speed" is selected, in the manufacturer's washing machine, a parameter of 150 rpm to achieve "high speed" can be realized, while in the washing machines of other manufacturers, due to the characteristics of the motor, it can only rotate up to 120 rpm. In this case, an error or the fact that it is realized at the limit value of 120 rpm may be presented to the app developer or the user.
[0053] [1.3 Processing] Next, the processing of the system 1 configured as described above will be described with reference to FIG. 8. FIG. 8 is a sequence diagram of the system 1 in the first embodiment.
[0054] [1.3.1 Preparation Phase F100] First, the preparation phase F100 will be described.
[0055] (Step S110) The sequence manager 100 transmits sequence manager information to the device manager 200. The transmission of this sequence manager information is performed, for example, according to an instruction from the system administrator. The device manager 200 registers the received sequence manager information in, for example, a sequence manager database. If the sequence manager information is already registered in the sequence manager database in advance, this step may be skipped.
[0056] The sequence manager information includes, for example, the identifier and / or address of the sequence manager 100 (e.g., URL (Uniform Resource Locator), IP (Internet Protocol) address, etc.). Further, the sequence manager information may include any information.
[0057] (Step S112) Device 300 sends device information 1101 to device manager 200. This transmission of the device information 1101 is performed, for example, when device 300 is connected to a computer network. Device manager 200 registers the received device information 1101 in device database 1100. Note that if the device information 1101 is already registered in the device database 1100 in advance, this step may be skipped.
[0058] Note that the device information 1101 may be registered in the device manager 200 via the UI400 after being sent to the UI400.
[0059] The device information 1101 includes the identifier and / or address of the device 300. Further, the device information 1101 may include any information. FIG. 9 shows an example of the device database in the first embodiment. In the device database 1100 of FIG. 9, a plurality of pieces of device information including the device information 1101 are registered. Each piece of device information includes a device ID, an address, a type, a manufacturer name, a model number, an actuator / heater, and a degradation level. The actuator / heater is identification information of the actuator 22 and / or the heater 23 that constitutes the device 300. The degradation level is an example of degradation information indicating whether the actuator 22 and / or the heater 23 that constitutes the device 300 is degraded. Here, the higher the value of the degradation level, the more degraded it indicates. The device information 1101 may include information on executable blocks. The information regarding the executable blocks may be information in which the blocks included in the database are associated with being executable or non-executable, or may be information only on the executable blocks. Also, whether a block is executable can be prepared in advance based on information such as the actuator / heater included in the device information 1101.
[0060] Note that the device information 1101 may include information capable of specifying the facilities 2a to 2d.
[0061] (Step S114) The UI 400 transmits UI information to the device manager 200. The transmission of this UI information is performed, for example, according to a user's instruction. The device manager 200 registers the received UI information in, for example, the UI database. Note that if the UI information is already registered in the UI database in advance, this step may be skipped.
[0062] The UI information includes, for example, the identifier and / or address of the UI 400. Further, the UI information may include any information.
[0063] Note that the UI information may include information capable of specifying the facilities 2a to 2d.
[0064] Through the above processing, the sequence manager 100, the device manager 200, the device 300, and the UI 400 are associated with each other and can establish connections with each other. Thus, the preparation phase F100 ends.
[0065] [1.3.2 Pre-application execution phase F200] Next, the pre-application execution phase F200 will be described. Before the pre-application execution phase F200, an application has been downloaded from the application distribution platform to the sequence manager 100 according to an instruction from the user via the UI 400. The following processing is performed with the application downloaded to the sequence manager 100 in this way.
[0066] (Step S210) The UI 400 receives an application execution request from the user and sends an application execution request including the identification information of the application to the sequence manager 100. For example, the user selects an application from among a plurality of applications downloaded to the sequence manager 100 via the UI 400 and instructs the execution of the selected application.
[0067] Note that the application execution request sent from the UI 400 to the sequence manager 100 is sent in a set with information that can identify facilities 2a to 2d.
[0068] Note that the application execution request does not necessarily have to be explicitly received from the user. For example, the user's behavior or state may be detected, and an application execution request may be automatically sent to the sequence manager 100 based on the detection result.
[0069] (Step S212) The sequence manager 100 sends a declaration of the execution content of the application identified by the application execution request to the device manager 200. The declaration of the execution content includes information on a plurality of blocks that define the application to be executed and information that can identify the facilities 2a to 2d.
[0070] FIG. 10 is a diagram showing an example of a declaration of execution content in Embodiment 1. FIG. 10 shows a declaration of execution content 1200 for an application defined by combining a plurality of blocks for the washing machine shown in FIG. 5. The declaration of execution content 1200 includes a plurality of blocks 1201, information 1202 on the devices required for the execution of each block 1201, and information 1203 on the order in which each block 1201 is to be executed.
[0071] Note that the declaration of execution content 1200 may not include the information 1202 on the devices. In that case, the device manager 200 needs to search for a device capable of executing the corresponding block at the facility indicated by the received facility information from the information on the plurality of blocks 1201 and perform device allocation.
[0072] Note that in FIG. 10, the information 1202 on the devices indicates the model number of the device 300, but it is not limited to this. The information 1202 on the devices may be any information as long as it can indicate the conditions of the device 300 that can be allocated to the block. For example, the information 1202 on the devices may include a plurality of model numbers, or may include only the type, purpose of use, location of installation, or any arbitrary combination of these of the device.
[0073] (Step S214) The device manager 200 allocates the devices 300 associated with the device manager 200 to each block included in the execution content declaration based on the information that can identify the facilities 2a to 2d. For example, the device manager 200 allocates the device DEV001 with the model number WM-0001, which is registered in the device database 1100 of FIG. 9 as being connected to the facility indicated by the received facility information, to each of the plurality of blocks 1201 shown in FIG. 10. Note that when the operating state of the device 300 or the connection state to the cloud is being managed, the allocation of the operating device 300 may be prohibited.
[0074] Note that, for example, when the plurality of blocks shown in FIG. 10 are not registered as being connected to the facility indicated by the received facility information, that is, when the target device does not exist in the corresponding facility, the device manager 200 notifies the sequence manager 100 that the execution of the application declared for execution is not possible.
[0075] (Step S215) The device manager 200 notifies the device 300 of the result of the device allocation. As a result, the plurality of blocks included in the application are each transmitted to the allocated device 300.
[0076] (Step S216) The device 300 checks the block before executing the block. That is, before executing the block, the device 300 checks whether any problems will occur in the device 300 when the block is executed. For example, the device 300 checks for safety and / or efficiency problems.
[0077] Then, based on the check result, the device 300 changes the block. As a result, the block is modified so that no problems occur.
[0078] The pre-execution confirmation process will be described in more detail with reference to FIG. 11. FIG. 11 shows a flowchart of the pre-execution confirmation process in Embodiment 1.
[0079] (Step S2165) Device 300 acquires a rule corresponding to the application. Here, the rule prohibits at least one of the remaining predetermined two or more blocks from not being executed when one of the predetermined two or more blocks is executed. For example, device 300 refers to a rule database to acquire a combination of predetermined two or more blocks. The rule database may be included in, for example, device 300, or may be included in sequence manager 100 or device manager 200.
[0080] As the rule, for example, a rule that prohibits the first block from not being executed before the second block is executed can be used. More specifically, as the rule, for example, a rule that prohibits the first block from not being executed from the start of the application until before the second block is executed can be used. For such a first block, for example, a block for setting an environment in which the second block can be executed can be used. Specifically, as the first block, a drainage block for realizing a water cutoff environment can be used before the second block (for example, a dehydration block) is executed.
[0081] Also, as a rule, for example, a rule that prohibits the third block from not being executed after the second block is executed can be used. More specifically, as a rule, for example, a rule that prohibits the third block from not being executed from after the second block is executed until the end of the application can be used. For such a third block, for example, a block for returning the environment changed by the execution of the second block to the environment before the execution of the second block can be used. Specifically, as the third block, a blower block for returning the temperature increased by the execution of the second block (for example, a drying block) to the temperature before the execution of the second block can be used.
[0082] FIG. 12 shows an example of a rule database in Embodiment 1. In the rule database 1300 of FIG. 12, rules 1301 and 1302 are registered. Each of rules 1301 and 1302 has information on a combination of two or more predetermined blocks. For example, rule 1301 indicates that it is prohibited that the drainage block is not executed before the dehydration block is executed. Also, for example, rule 1302 indicates that it is prohibited that the blower block is not executed after the drying block.
[0083] As such a combination of two or more predetermined blocks, for example, a combination of blocks for preventing the internal space of the housing 21, the actuator 22, or the heater 23 from reaching the endurance temperature is predetermined. The endurance temperature means the rated temperature and indicates the maximum allowable temperature. Therefore, if the actuator 22 or the heater 23 is driven using a combination of two or more predetermined blocks, the temperature of the internal space of the housing 21, the actuator 22, or the heater 23 will not reach an unacceptable temperature. That is, the rule is a rule for ensuring that two or more predetermined blocks are executed in combination to prevent the internal space of the housing 21, the actuator 22, or the heater 23 from reaching the endurance temperature.
[0084] In addition, in FIG. 12, each of rules 1301 and 1302 shows a combination of two blocks, but is not limited thereto. For example, in addition to the combination of two blocks, the rule may indicate a range of parameters of at least one of the two blocks. Furthermore, the rule is defined so that blocks can be used in a wide range for the development of various applications.
[0085] For example, the rule for safely driving the actuator 22 or the heater 23 may change according to the environment of the device 300 such as the internal space of the housing 21, and the rule may not depend only on the performance of the actuator 22 or the heater 23 itself. Therefore, in order to drive safely in any environment, the rule has a high proportion considering safety, and the room for developing various applications is reduced. Therefore, the rule may be associated with information such as the device 300 independently of the application. By using such a rule, both safety and the development of various applications can be achieved.
[0086] The rule is related to the range in which the actuator 22 or the heater 23 can be safely driven. The range in which it can be safely driven may be a range considering the start condition or end condition of the block. Consider an example of a first block and a second block executed after the first block. Until the start condition of the second block is reached, by executing the first block, a rule can be set assuming a case where a load that affects the safety of the actuator 22 or the heater 23 is applied. That is, the rule depends on the performance of the actuator 22 or the heater 23, the start condition or end condition of the block, and the like.
[0087] Each of rules 1301 and 1302 further has a type and a manufacturer name. Thereby, the device 300 can acquire a rule corresponding to the actuator 22 or the heater 23 driven by the block from the rule database 1300. For example, the device 300 refers to the rule database 1300 in FIG. 12 and acquires rules 1301 and 1302 for WM-0001.
[0088] (Step S2166) Device 300 determines whether a plurality of blocks included in the application comply with the rules.
[0089] For example, when the rule prohibits the first block from not being executed before the second block is executed, if the application includes the second block and does not include the first block before the second block, device 300 determines that the plurality of blocks included in the application comply with the rule. Specifically, when the application includes the second block and does not include the first block, device 300 determines that the plurality of blocks included in the application comply with the rule. Also, when the application includes the second block and includes the first block only after the second block, device 300 determines that the plurality of blocks included in the application comply with the rule. On the other hand, when the application includes the second block and includes the first block before the second block, device 300 determines that the plurality of blocks included in the application do not comply with the rule. Also, when the application does not include either the first block or the second block, device 300 determines that the plurality of blocks included in the application do not comply with the rule. Also, when the application includes the first block and does not include the second block, device 300 determines that the plurality of blocks included in the application do not comply with the rule.
[0090] For example, when the rule prohibits the third block from being executed after the second block is executed, if the application includes the second block and does not include the third block after the second block, the device 300 determines that the plurality of blocks included in the application comply with the rule. Specifically, when the application includes the second block and does not include the third block, the device 300 determines that the plurality of blocks included in the application comply with the rule. Also, when the application includes the second block and includes the third block only before the second block, the device 300 determines that the plurality of blocks included in the application comply with the rule. On the other hand, when the application includes the second block and includes the third block after the second block, the device 300 determines that the plurality of blocks included in the application do not comply with the rule. Also, when the application does not include either the second block or the third block, the device 300 determines that the plurality of blocks included in the application do not comply with the rule. Also, when the application includes the third block and does not include the second block, the device 300 determines that the plurality of blocks included in the application do not comply with the rule.
[0091] Here, when it is determined that the plurality of blocks do not comply with the rule (No in S2166), the device 300 skips the subsequent step S2167 and ends the pre-execution confirmation process. On the other hand, when it is determined that the plurality of blocks comply with the rule (Yes in S2166), the device 300 proceeds to the next step S2167.
[0092] (Step S2167) Device 300 changes the application and ends the pre - execution confirmation process. The change of the application means (i) adding a new block to a plurality of blocks, (ii) changing the order of a plurality of blocks, (iii) deleting any of a plurality of blocks, or (iv) any combination thereof. These methods of changing the application may be defined in the rules.
[0093] A specific example of such an application change will be described with reference to FIGS. 13 and 14.
[0094] FIG. 13 shows an example of an application change in Embodiment 1. In FIG. 13, a drainage block (the first block) is added before the dehydration block (the second block). Thereby, water can be discharged from the washing machine before the dehydration block is executed, and safe driving of the actuator 22 during dehydration can be realized.
[0095] FIG. 14 shows an example of an application change in Embodiment 1. In FIG. 14, a blowing block (the third block) is added after the drying block (the second block). Thereby, after the temperature of the washing machine has risen due to drying, the temperature of the washing machine can be lowered by blowing, the user can be prevented from being scalded by the washing machine, and the safety of the washing machine can be improved.
[0096] Here, although the change of the application for the washing machine has been described, the application can be changed in the same way for other devices.
[0097] For example, in an application for a rice cooker, if a steaming block (second block) that utilizes a steam function is included and a steam preheating block (first block) is not included before the steaming block, a steam preheating block may be added before the corresponding block 10 minutes before the steaming block is executed. This enables the steam heater to be warmed before the execution of the steaming block, and allows for smooth steam irradiation during the execution of the steaming block.
[0098] Also for example, in an application for a microwave oven, if a steaming block (second block) is included and a steam preheating block (first block) is not included before the steaming block, a steam preheating block may be added before the corresponding block 10 minutes before the steaming block is executed. This enables the steam heater to be warmed before the execution of the steaming block, and allows for smooth steam irradiation during the execution of the steaming block. Further, in an application for a microwave oven, if an oven block (second block) is included and a blowing block (third block) is not included after the oven block, a blowing block may be added after the oven block. This enables the interior of the oven, which has become very hot due to the execution of the oven block, to be cooled by the execution of the blowing block, and allows for earlier execution of the next block.
[0099] (Step S217) Device 300 transmits the result of the pre-execution check to device manager 200. If a block has been changed, the changed block may be transmitted to device manager 200.
[0100] (Step S218) Device manager 200 replies to sequence manager 100 with the result of the device allocation. Also, if a block has been changed in the pre-execution check, the application including the changed block may be transmitted to sequence manager 100.
[0101] (Step S220) Upon receiving the allocation result notification from the device manager 200, the sequence manager 100 notifies the user via the UI 400 that the preparation for execution is complete.
[0102] (Step S222) The UI 400 displays a list of devices on which the application will be executed and presents a graphical user interface (GUI) for receiving confirmation input of application execution from the user. Note that the UI 400 may receive a change in device allocation from the user. Also, the UI 400 may not display the list of devices.
[0103] (Step S224) Upon receiving the execution confirmation input from the user, the UI 400 sends an application start instruction to the device manager 200. The device manager 200 transfers the application start instruction to the sequence manager 100.
[0104] Although steps S220, S222, and S224 provide information to the user again before the application is executed, they may be omitted because they may increase the user's workload.
[0105] Thus, the pre-application execution phase F200 ends.
[0106] [1.3.3 Application Execution Phase F300] Next, the application execution phase F300 will be described.
[0107] (Step S310) Upon receiving the application start instruction, the sequence manager 100 selects the first block (the first block) from among the plurality of blocks included in the application. Then, the sequence manager 100 sends an execution instruction for the selected first block to the device manager 200.
[0108] In addition, when a plurality of blocks are operated continuously, the sequence manager 100 may collectively send execution instructions for the plurality of blocks to the device manager 200.
[0109] Based on the execution instruction for the first block received from the sequence manager 100, the device manager 200 sends the execution instruction for the first block to the device 300 assigned to the first block.
[0110] (Step S312) Upon receiving the execution instruction for the first block, the device manager 200 updates the schedule (scheduled usage time) of each device.
[0111] (Step S314) Upon receiving the execution instruction for the first block, the device 300 executes the first block.
[0112] (Step S316) When the execution of the first block is completed, the device 300 sends a completion notification to the device manager 200. In addition, when an error occurs during the execution of the first block, the device 300 may send error information to the device manager 200. Further, the device 300 may send event information to the device manager 200 during the execution of the first block. As the event information, for example, the output value of a sensor or device operation, etc. can be used, but it is not limited thereto. The device manager 200 transfers the completion notification and / or various information received from the device 300 to the sequence manager 100.
[0113] (Step S318) Upon receiving the completion notice of the first block, the sequence manager 100 updates the progress of the application and selects the next block (the second block). Also, when the sequence manager 100 receives error information, it executes processing corresponding to the error information (for example, returning to the previous block, returning to the first block, waiting, etc.). Information on the processing corresponding to the error information may be, for example, pre-held by the sequence manager 100 in advance, or may be received from the user via the UI 400. Further, when the sequence manager 100 receives event information, it executes processing corresponding to the event information. For example, when the output value of the water level sensor is included in the event information, the sequence manager 100 updates the water level parameter for displaying the water level included in the currently executing block.
[0114] (Step S320) The sequence manager 100 sends an execution instruction for the selected second block to the device manager 200.
[0115] Note that the execution instruction for the second block may be an instruction for the same device as the execution instruction for the first block (S310), or may be an instruction for a different device.
[0116] Note that, similar to the execution instruction for the first block, the execution instruction for the second block may be sent to the device manager 200 by grouping the execution instructions for a plurality of blocks.
[0117] Since the subsequent processing is the same as the processing for the first block (S312 to S318), the illustration and description are omitted. When the blocks included in the application are executed in order and the execution of the last block is completed, the application execution phase F300 ends.
[0118] Here, although the execution of blocks is instructed one by one in order, it is not limited to this. For example, the execution of a plurality of blocks assigned to the same device may be instructed collectively. In that case, it may be possible to confirm in advance whether each block satisfies the parameter range of function execution, or to download to the device side the blocks corresponding to changes before execution. Also, for example, block execution instructions may be given to a plurality of devices respectively.
[0119] [1.4 Effects, etc.] As described above, the application including blocks and the rule database provide an environment in which various and diverse applications can be developed, and enable safe driving of the actuator 22 that physically moves or the heater 23 that outputs thermal energy for the applications freely developed in that environment. In other words, it is possible to provide an environment in which applications can be freely developed, and to provide a function for ensuring safety independently of the applications. As a result, for example, it becomes possible to create in parallel the development of various and diverse applications with high degrees of freedom and the development of a rule database for ensuring safety, and it becomes possible to develop various and diverse applications at an early stage.
[0120] Also, even after the application is provided, by changing the rule database, it becomes possible to change to an application with more guaranteed safety. Also, even when it becomes necessary to improve a situation not assumed by the manufacturer in advance, without changing the various and diverse applications themselves, by defining the rule database independently of the applications, by updating the rule database, it becomes possible to respond to all applications.
[0121] Another approach is to maintain the error handling rule database by detecting the state when the application is running without modifying the application itself. However, this approach means dealing with errors only after they occur, allowing situations where the home appliance is under load or safety cannot be guaranteed. Therefore, by having a rule database independent of the application and modifying the application content by referring to the rule data, it is possible to ensure safety.
[0122] The apparatus 20 in this embodiment includes at least one of an actuator 22 and a heater 23, and a control unit 24 that controls at least one of the actuator 22 and the heater 23. The control unit 24 acquires an application defined by a plurality of blocks that drive at least one of the actuator 22 and the heater 23, and refers to a rule that prohibits at least one of the remaining predetermined two or more blocks from being executed when one of the predetermined two or more blocks is executed. When a plurality of blocks included in the application comply with the rule, the control unit 24 modifies the application and drives at least one of the actuator 22 and the heater 23 based on the modified application.
[0123] According to this, the actuator 22 and / or the heater 23 can be driven based on an application defined by a plurality of blocks. Therefore, it becomes possible to develop an application using blocks that abstract the control of the device 20, and a wide variety of applications can be developed not only by manufacturers but also by third parties, and these applications can be easily executed on the device 20. Further, when the application corresponds to a rule that prohibits at least one of the remaining predetermined two or more blocks from being executed when one of the predetermined two or more blocks is executed, the application can be changed before the actuator 22 and / or the heater 23 are driven based on the application. Therefore, it is possible to ensure that one of the predetermined two or more blocks is executed in combination with at least one of the remaining predetermined two or more blocks. That is, even if the application developer erroneously instructs to execute a block that is not allowed to be executed alone, it is possible to suppress the execution of an application that cannot safely control the device 20. Therefore, even when the application developer creates an application that emphasizes user suitability rather than ensuring the safety of the actuator 22 and / or the heater 23, the safety of the device 20 controlled by the application can be improved.
[0124] Also, for example, in the device 20 in the present embodiment, the control unit 24 may change the application by (a) adding a new block to the plurality of blocks, (b) changing the order of the plurality of blocks, or (c) deleting any one of the plurality of blocks.
[0125] More specifically, for example, in the apparatus 20 in the present embodiment, the application includes information on the order in which each of a plurality of blocks is executed. Two or more predetermined blocks include a first block and a second block. The rule prohibits the first block from not being executed before the second block is executed. When the application includes the second block and does not include the first block before the second block, the control unit 24 may change the application by adding the first block before the second block.
[0126] Also, for example, in the apparatus 20 in the present embodiment, the application includes information on the order in which each of a plurality of blocks is executed. Two or more predetermined blocks include a first block and a second block. The rule prohibits the first block from not being executed before the second block is executed. When the application includes the first block and the second block and does not include the first block before the second block, the control unit 24 may change the application by changing the order of the first block to be before the order of the second block.
[0127] Also, for example, in the apparatus 20 in the present embodiment, the application includes information on the order in which each of a plurality of blocks is executed. Two or more predetermined blocks include a first block and a second block. The rule prohibits the first block from not being executed before the second block is executed. When the application includes the second block and does not include the first block before the second block, the control unit 24 may change the application by deleting the second block.
[0128] According to these, before the application is executed, by adding a new block, changing the order of the blocks, or deleting a block, it is possible to ensure that the first block is executed before the second block. Therefore, the developer of the application can freely develop the application with a reduced priority of considering the safe driving of the actuator 22 and the heater 23. Furthermore, the developer of the software incorporated in the device 20 that controls the actuator 22 and the heater 23 can permit the execution of the blocks without checking the safety of each application every time.
[0129] Also, for example, in the device 20 according to the present embodiment, the application includes information on the order in which each of the plurality of blocks is executed, the predetermined two or more blocks include the second block and the third block, the rule prohibits the third block from not being executed after the second block is executed, and the control unit 24 may change the application by adding the third block after the second block when the application includes the second block and does not include the third block after the second block.
[0130] Also, for example, in the device 20 according to the present embodiment, the application includes information on the order in which each of the plurality of blocks is executed, the predetermined two or more blocks include the second block and the third block, the rule prohibits the third block from not being executed after the second block is executed, and the control unit 24 may change the application by changing the order of the third block to be after the order of the second block when the application includes the second block and the third block and does not include the third block after the second block.
[0131] For example, in the apparatus 20 according to the present embodiment, the application includes information on the order in which each of a plurality of blocks is to be executed. Two or more predetermined blocks include a second block and a third block. The rule prohibits the third block from not being executed after the second block is executed. When the application includes the second block and does not include the third block after the second block, the control unit 24 may modify the application by deleting the second block.
[0132] For example, in the apparatus 20 according to the present embodiment, the application includes information on a plurality of blocks and information on the order in which each is to be executed. When the rule includes information indicating that at least one of the plurality of blocks cannot be executed, as error information, it may be presented to the developer that this application cannot be developed or information on the block that cannot be executed.
[0133] According to these, before the application is executed, by adding a new block, changing the order of the blocks, or deleting a block, it is possible to ensure that the third block is executed after the second block. Therefore, the developer of the application can freely develop the application with a lower priority considering the safe driving of the actuator 22 and the heater 23. Further, the developer of the software incorporated in the apparatus 20 that controls the actuator 22 and the heater 23 can permit the execution of the blocks without checking the safety of each application every time.
[0134] For example, in the apparatus 20 according to the present embodiment, the rule may be a rule for ensuring that at least one of the actuator 22 and the heater 23 is not brought to the endurance temperature by the combined execution of two or more predetermined blocks.
[0135] According to this, when the application is executed, it is possible to suppress the actuator 22 and / or the heater 23 from reaching the endurance temperature, and it is possible to improve the safety of the device 20 controlled by the application.
[0136] Also, for example, the device 20 in the present embodiment may include a housing 21 having an internal space, and the first rule may be a rule for ensuring that two or more predetermined blocks are combined and executed so that the internal space does not reach the endurance temperature.
[0137] According to this, when the application is executed, it is possible to suppress the internal space of the housing 21 from reaching the endurance temperature, and it is possible to improve the safety of the device 20 controlled by the application.
[0138] (Modification Example of Embodiment 1) In the above Embodiment 1, the processing of the system 1 has been described with reference to FIG. 8, but the flow of the processing is not limited to this. In particular, regarding the pre-execution confirmation (S216) described in detail, the timing and the main module for which the pre-execution confirmation is performed are not limited to this. Therefore, some modification examples of the sequence diagram of the system 1 will be specifically described with reference to FIGS. 15A to 15E.
[0139] FIG. 15A is a sequence diagram of the system 1 in Modification Example 1 of Embodiment 1. In FIG. 15A, the pre-execution confirmation (S216) is performed by the device 300 immediately before the device 300 receives an execution instruction (S310) and executes a block (S314).
[0140] As a result, the software incorporated in device 300 can have a simple configuration in which pre-execution confirmation is performed immediately before the execution of a block. That is, steps S215 and S217 can be omitted. As a result, there is no need to incorporate into device 300 the functions and communication APIs for performing those processes, and it becomes possible to reduce the memory used by the microcomputer mounted on device 300 and the like.
[0141] Note that the result of the pre-execution confirmation may be notified to device manager 200 and / or UI 400. For example, when a parameter change or a block execution stop instruction is given as a result of the pre-execution confirmation, the confirmation result may be notified to device manager 200 or UI 400.
[0142] FIG. 15B is a sequence diagram of system 1 in modification 2 of embodiment 1. In FIG. 15B, the pre-execution confirmation (S216) is directly performed by device manager 200 when device manager 200 issues an allocation result notification (S218).
[0143] As a result, the software incorporated in device 300 does not have to include the function of the pre-execution confirmation (S216). Therefore, the use of the memory of device 300 can be suppressed, leading to a cost reduction of device 300.
[0144] In addition, in the above-described embodiment 1, the flow of the process in which block execution (S314) by device 300 is performed according to an instruction from sequence manager 100 implemented in cloud server 10 has been described. However, the form in which block execution (S314) is performed is not limited to this.
[0145] For example, the notification content from the sequence manager 100 may be saved in the memory within the device 300, and the block may be executed based on a direct instruction from the user through the UI of the device 20 or the UI 400 of the terminal 30. That is, an application may be downloaded into the device in advance, and the user may execute the application at any timing.
[0146] FIG. 15C is a sequence diagram of the system 1 in Modification 3 of Embodiment 1. In FIG. 15C, in the application execution phase F300, one or more blocks to be executed in the device 300 are notified from the sequence manager 100 to the device 300 (S310C). Then, the device 300 saves the one or more notified blocks in the memory (S311C).
[0147] Thereafter, the device 300 receives an instruction to execute the one or more saved blocks from the user (S312C), and executes the one or more blocks in order from the first block (S314).
[0148] As described above, by saving the block in the device 300, the device 300 can be controlled without communicating through the device manager 200, thus reducing the risk that the operation of the device 300 stops or is delayed due to unstable communication between the cloud server 10 and the device 20. Therefore, this modification is more effective in an environment where the reliability of communication with the cloud server 10 is low and / or in the device 300 where operation stops or delays during application execution are not allowed.
[0149] Note that also in Modification 3, similar to Embodiment 1, the pre-execution confirmation (S216) has an important meaning, but the timing and the module that is the subject of the pre-execution confirmation (S216) are not limited to FIG. 15C. That is, Modification 3 may be combined with Modification 1 or 2.
[0150] FIG. 15D is a sequence diagram of the system 1 in Modification Example 4 of Embodiment 1. Modification Example 4 corresponds to a combination of Modification Example 1 and Modification Example 3. In Modification Example 4, as shown in FIG. 15D, the pre-execution check (S216) is performed by the device 300 immediately before the device 300 executes a block (S314) after receiving an execution instruction (S312C).
[0151] If the block is downloaded to the device 300 and the user executes the block at an arbitrary timing, the possibility that the timing of downloading the block and the timing of execution deviate greatly increases. That is, it is conceivable that the block is executed several days, months, or years after the block is downloaded to the device 300. In that case, there is also a risk that the degradation level of the device 300 changes between the time when the block is downloaded and the time when the block is executed. Therefore, in the device 300 in which the execution of the block is affected by the degradation level, the pre-execution check is performed by the device 300 immediately before the block is executed, so that the pre-execution check according to the degradation level becomes possible.
[0152] FIG. 15E is a sequence diagram of the system 1 in Modification Example 5 of Embodiment 1. Modification Example 5 corresponds to a combination of Modification Example 2 and Modification Example 3. In Modification Example 5, as shown in FIG. 15E, the pre-execution check (S216) is performed by the device manager 200 as it is when the device manager 200 performs the allocation result notification (S218).
[0153] (Embodiment 2) Next, Embodiment 2 will be described. The main difference between this embodiment and Embodiment 1 above is that the pre-execution check is skipped when the application is authenticated. Hereinafter, this embodiment will be described centering on the points different from Embodiment 1 above.
[0154] Note that since the hardware configuration and functional configuration of the system 1 in this embodiment are the same as those in Embodiment 1 above, the illustration and description are omitted.
[0155] [2.1 Processing] In the present embodiment, the processing is the same as that of the above-described Embodiment 1, except that the pre-execution confirmation step S216 in the above-described Embodiment 1 is replaced with step S216A. Therefore, step S216A of the pre-execution confirmation process will be described with reference to FIG. 16.
[0156] FIG. 16 shows a flowchart of the pre-execution confirmation process in Embodiment 2.
[0157] (Step S2161A) Device 300 acquires application authentication information. The application authentication information includes information indicating that the application is authenticated when the application has been authenticated.
[0158] The authentication of the application is, for example, a mechanism for ensuring the quality of the application, and enables confirmation of the security and / or identity (not being tampered with) of the application. An example of an application with authentication information will be described. When the change history of the application code indicates that no change in the parameter range has been made, information indicating that the application has been authenticated is associated with the application.
[0159] (Step S2162A) Based on the acquired application information, device 300 determines whether the application has been authenticated. Here, when it is determined that the application has been authenticated (Yes in S2162A), device 300 skips the subsequent steps S2165 to S2167 and ends the pre-execution confirmation process. On the other hand, when it is determined that the application has not been authenticated (No in S2162A), device 300 proceeds to the next step S2165.
[0160] [2.2 Effects, etc.] As described above, the apparatus 20 in the present embodiment includes at least one of an actuator 22 and a heater 23, and a control unit 24 that controls at least one of the actuator 22 and the heater 23. The control unit 24 is defined by a plurality of blocks that drive at least one of the actuator 22 and the heater 23, and acquires an application including information indicating whether or not it has been authenticated. When the application does not include information indicating that it has been authenticated, with reference to a rule indicating that a predetermined two or more blocks are to be executed in combination, if the plurality of blocks included in the application do not conform to the rule, the application is changed, and based on the changed application, at least one of the actuator 22 and the heater 23 is driven.
[0161] According to this, the same effects as those of the first embodiment can be achieved. Further, when the application has not been authenticated, processing involving changing the application can be performed, and when the application has been authenticated, the processing load can be reduced. Therefore, it is not necessary to perform determination processing for combinations of blocks for all applications, and by performing management through authentication, the processing load can be reduced, and design criteria regarding combinations of blocks can be established, making it easier and safer for application developers to design.
[0162] Also, for example, in the apparatus 20 in the present embodiment, when the application has information indicating that it has been authenticated, it is not necessary to change the application without referring to the first rule.
[0163] According to this, when the application has been authenticated, the processing for changing the blocks can be skipped, and the processing load can be reduced.
[0164] (Embodiment 3) Next, Embodiment 3 will be described. In this embodiment, it is mainly different from the above Embodiment 1 in that the pre-execution confirmation is skipped when the application producer and the device manufacturer are the same. Hereinafter, this embodiment will be described centering on the points different from the above Embodiment 1.
[0165] Note that since the hardware configuration and functional configuration of the system 1 in this embodiment are the same as those in the above Embodiment 1, the illustration and description thereof are omitted.
[0166] [3.1 Processing] In this embodiment, the processing is the same as that in the above Embodiment 1 except that the pre-execution confirmation step S216 in the above Embodiment 1 is replaced by step S216B. Therefore, step S216B of the pre-execution confirmation process will be described with reference to FIG. 17.
[0167] FIG. 17 shows a flowchart of the pre-execution confirmation process in Embodiment 3.
[0168] (Step S2161B) The device 300 acquires application producer information. The application producer information indicates the producer of the application. The producer means a company, individual, group, etc. that produced the application, and may also be called a developer or an author.
[0169] (Step S2163B) The device 300 acquires device manufacturer information. The device manufacturer information indicates the manufacturer of the device. The manufacturer means a company, individual, group, etc. that produced the device 300 (that is, the device 20), and may also be called a manufacturer.
[0170] (Step S2164B) Device 300 determines whether the application maker is different from the device 300 maker. If the application maker is an individual and the device 300 maker is a company, device 300 may determine that the application maker and the device 300 maker are the same if the company to which the application maker belongs matches the device 300 maker. Also, device 300 may determine that the application maker and the device 300 maker are the same if the application maker is the consignor for the development of the device 300 maker.
[0171] Here, if the application maker and the device 300 maker are the same (No in S2164B), device 300 skips the subsequent steps S2165 to S2167 and ends the pre-execution confirmation process. On the other hand, if the application maker and the device 300 maker are different (Yes in S2164B), device 300 proceeds to the next step S2165.
[0172] [3.2 Effects, etc.] As described above, the device 20 in the present embodiment includes at least one of the actuator 22 and the heater 23, and a control unit 24 that controls at least one of the actuator 22 and the heater 23. The control unit 24 is defined by a plurality of blocks that drive at least one of the actuator 22 and the heater 23, and acquires an application including information indicating the maker, acquires information indicating the maker of the device 20, and when the application maker and the device 20 maker are different, refers to a rule indicating that a predetermined two or more blocks are executed in combination, and if a plurality of blocks included in the application do not conform to the rule, changes the application, and based on the changed application, drives at least one of the actuator 22 and the heater 23.
[0173] According to this, the same effects as those in Embodiment 1 can be achieved. Furthermore, when the application producer and the manufacturer of the device 20 are different, processing involving changes to the application can be performed, and when the application producer and the manufacturer of the device 20 are the same, the processing load can be reduced.
[0174] (Embodiment 4) Next, Embodiment 4 will be described. The main difference from Embodiment 1 above is that pre-execution confirmation is performed using rules corresponding to the degradation level of the device. Below, this embodiment will be described centering on the differences from Embodiment 1 above.
[0175] Note that since the hardware configuration and functional configuration of the system 1 in this embodiment are the same as those in Embodiment 1 above, illustration and description thereof are omitted.
[0176] [4.1 Processing] In this embodiment, the processing is the same as that in Embodiment 1 above, except that step S216 of the pre-execution confirmation in Embodiment 1 above is replaced by step S216C. Therefore, step S216C of the pre-execution confirmation process will be described with reference to FIG. 18.
[0177] FIG. 18 shows a flowchart of the pre-execution confirmation process in Embodiment 4.
[0178] (Step S2163C) The device 300 acquires device degradation information. The device degradation information indicates the degradation level of the actuator 22 and / or the heater 23 included in the device 20. The method for detecting the degradation level is not particularly limited, and for example, it may be detected by a sensor.
[0179] (Step S2165C) The device 300 acquires rules corresponding to the degradation level. For example, the device 300 refers to a rule database to acquire rules corresponding to the degradation level of the actuator 22 or the heater 23 driven by the block.
[0180] Note that the items for determining the degradation level are, for example, the number of times of use, the usage time, or the number of days of use from the start of operation to the present of the actuator 22 and / or the heater 23 included in the device 300. These items are assumed to increase in approximately a proportional relationship with the user's use. Therefore, rules are determined such that the degradation level increases as the value corresponding to the item increases.
[0181] Also, the items for determining the degradation level are, for example, the added value of the temperature of the heater 23, or the degree of reproducibility of the input and output of the actuator 22 and / or the heater 23. The added value of the temperature of the heater 23 is a value obtained by adding the temperature when the heater 23 is driven. For example, the average temperature, the intermediate temperature, or the maximum temperature of the heater 23 during block execution is used. The temperature of the heater 23 may be the ratio of the execution temperature to the limit temperature of the heater 23, or the difference between the execution temperature and the limit temperature of the heater 23.
[0182] The degree of reproducibility of the input and output of the actuator 22 and / or the heater 23 is obtained by referring to the relationship between the input value for driving the actuator 22 and / or the heater 23 and the output of the actuator 22 and / or the heater 23. The ratio between the actual output value for a predetermined input and the output value defined in the relationship is used.
[0183] [4.2 Effects, etc.] As described above, the apparatus 20 in the present embodiment includes at least one of an actuator 22 and a heater 23, and a control unit 24 that controls at least one of the actuator 22 and the heater 23. The control unit 24 acquires an application defined by a plurality of blocks that drive at least one of the actuator 22 and the heater 23, acquires deterioration information indicating whether at least one of the actuator 22 and the heater 23 is deteriorated, and refers to a rule corresponding to the deterioration information and indicating that a predetermined two or more blocks are to be executed in combination. When a plurality of blocks included in the application do not conform to the rule, the application is changed, and based on the changed application, at least one of the actuator 22 and the heater 23 is driven.
[0184] According to this, the same effects as those in the first embodiment can be realized. Further, rules corresponding to the deterioration information of the apparatus 20 can be used, and by using the blocks, while considering the performance of the device that deteriorates over time, a drive instruction from the application side to the actuator 22 and / or the heater 23 is executed, and the safety of the apparatus 20 controlled by the application can be further improved.
[0185] (Embodiment 5) In the above-described first to fourth embodiments, the blocks included in an already distributed application are changed before the application is executed. In the present embodiment, the timing at which the application is changed is before the application is distributed, that is, at the stage where the application is developed or produced, and in this regard, the present embodiment is different from the above-described first to fourth embodiments. Hereinafter, the present embodiment will be described in detail centering on the points different from the above-described first to fourth embodiments. Note that the present embodiment may be the same as the above-described first to fourth embodiments except for the timing of changing the application. Also, among the components in the present embodiment, the same components as those in the first to fourth embodiments are denoted by the same reference numerals as those in the first to fourth embodiments, and detailed descriptions thereof are omitted.
[0186] [5.1 Configuration] FIG. 19 is a diagram showing a configuration example of an information processing system used for application development.
[0187] The information processing system 2000 includes a block database 41, a rule database 42, a development tool 50, a plurality of devices 20 and a plurality of terminals 30, an app providing server 60, and a sequence manager 100. For example, these components included in the information processing system 2000 are connected via a communication network such as the Internet.
[0188] The block database 41, also called the block DB, is a recording medium that stores a list of blocks including a plurality of functional blocks. Note that these functional blocks are also called blocks as in Embodiments 1 to 4. The rule database 42, also called the rule DB, is a recording medium that stores a plurality of rules. Note that the rule database 42 may be the same as, for example, the rule database 1300 shown in FIG. 12. Also, these recording media are a hard disk, a RAM (Random Access Memory), a ROM (Read Only Memory), or a semiconductor memory, etc. Note that such a recording medium may be volatile or non-volatile.
[0189] The development tool 50 is a computer system including, for example, a processor 51, a memory 52, a display 53, and an input unit 54. The processor 51 executes each of the processes described below by executing instructions or software programs stored in the memory 52, for example, and displays characters, images, etc. on the display 53. The display 53 is, for example, a liquid crystal display, a plasma display, an organic EL (Electro-Luminescence) display, etc., but is not limited thereto. The input unit 54 is configured as, for example, a keyboard, a touch sensor, a touch pad, or a mouse. Such a development tool 50 is used, for example, by application developers and generates a sequence or application including a plurality of functional blocks. Note that, in the present embodiment, this development tool 50 is an example of an information processing apparatus.
[0190] The app providing server 60 acquires and holds the application generated by the development tool 50 from the development tool 50 via a communication network. Then, the app providing server 60 downloads the held application to the sequence manager 100 in response to an instruction from the UI 400 provided in the terminal 30.
[0191] FIG. 20 is a diagram showing an example of information stored in each of the block database 41 and the rule database 42.
[0192] As shown in FIG. 20(a), the block database 41 stores, as the above-described block list, a list of functional blocks for driving each of a plurality of types of devices 20 for each type of the device 20. For example, block lists 41a to 41e are stored. The block list 41a includes functional blocks FB11 to FB14 for driving an oven range, etc. The block list 41b includes functional blocks FB21 to FB24 for driving a multicooker, etc. These functional blocks may be the same as or similar to the blocks of the first to fourth embodiments described above.
[0193] As shown in FIG. 20(b), the rule database 42 stores, for each of a plurality of types of apparatuses 20, a rule group including at least one rule applicable to the type of apparatus 20. For example, rule groups 42a to 42e are stored. The rule group 42a includes rules R100 and R11 to R13 applicable to an oven range. The rule group 42b includes rules R200 and R21 to R23 applicable to a multicooker. Also, the rule group 42d includes rules R400 and R41 to R43 applicable to a washing machine. These rules may be the same as or similar to the rules of the first to fourth embodiments described above.
[0194] Here, each of the rules R11 to R13 of the oven range is, for example, a dedicated rule applicable to a predetermined model of oven range manufactured by a predetermined manufacturer. Similarly, each of the rules R21 to R23 of the multicooker is, for example, a dedicated rule applicable to a predetermined model of multicooker manufactured by a predetermined manufacturer. Similarly, each of the rules R41 to R43 of the washing machine is a dedicated rule applicable to a predetermined model of washing machine manufactured by a predetermined manufacturer. Specifically, each of the dedicated rules R41 to R43 may be, for example, rule 1301 or 1302 shown in FIG. 12.
[0195] On the other hand, the rule R100 of the oven range is, for example, a general rule of the oven range applicable to each of a plurality of types of oven ranges. Similarly, the rule R200 of the multicooker is, for example, a general rule of the multicooker applicable to each of a plurality of types of multicookers.
[0196] FIG. 21 is a diagram showing an example of a general rule included in the rule database 42.
[0197] The rule group 42d of the washing machine stored in the rule database 42 includes, for example, the general rule R400 shown in Fig. 21(a). This general rule R400 is a rule applicable to each of a plurality of types of washing machines, and prohibits that when one of a predetermined two or more blocks is executed, at least one of the remaining blocks of the predetermined two or more blocks is not executed. That is, the rule indicates requirements regarding combinations of a predetermined two or more blocks, similar to those in the first to fourth embodiments described above. Hereinafter, combinations of a predetermined two or more blocks are simply referred to as combinations, and the requirements regarding the combinations are also referred to as combination rules. The general rule R400 may indicate a plurality of combination rules. For example, the general rule R400 indicates a first combination rule and a second combination rule. The first combination rule is a requirement for the drainage function block, which is the first block, and the dehydration function block, which is the second block. That is, the first combination rule indicates that it is prohibited that the drainage block is not executed before the dehydration block is executed. The second combination rule is a requirement for the drying function block, which is the second block, and the air blowing function block, which is the third block. That is, the second combination rule indicates that it is prohibited that the air blowing block is not executed after the drying block.
[0198] Note that the drainage block is a function block that causes the washing machine to perform drainage as a function, and the dehydration block is a function block that causes the washing machine to perform dehydration as a function. Similarly, the drying block is a function block that causes the washing machine to perform drying as a function, and the air blowing block is a function block that causes the washing machine to perform air blowing as a function.
[0199] In addition, the plurality of types of washing machines to which the general rule R400 is applied include washing machines provided by a plurality of manufacturers. Also, if each manufacturer provides a plurality of models of washing machines, the plurality of types of washing machines include the plurality of models of washing machines. That is, the combinations shown in the general rule R400 are applicable to any washing machine regardless of the manufacturer and model.
[0200] Also, as shown in FIG. 21(b), the general rule R400 of the washing machine may indicate a combination rule applied to each washing machine of a plurality of manufacturers. For example, the general rule R400 indicates a combination rule applied to a plurality of models of washing machines provided by manufacturer "Company A" and a combination rule applied to a plurality of models of washing machines provided by manufacturer "Company B".
[0201] Thus, similar to Embodiments 1 to 4, the rule in this embodiment is a rule that prohibits at least one of the remaining predetermined two or more blocks from not being executed when one of the predetermined two or more blocks is executed. And the predetermined two or more blocks include a first block and a second block, and the rule prohibits the first block from not being executed before the second block is executed. That is, the rule prohibits the first block from not being executed from the start of the application until before the second block is executed. Such a first block is, similar to Embodiments 1 to 4, a block for setting an environment in which the second block can be executed.
[0202] Alternatively, the predetermined two or more blocks include a second block and a third block, and the rule prohibits the third block from not being executed after the second block is executed. That is, the rule prohibits the third block from not being executed from after the second block is executed until the end of the application. Such a third block is, similar to Embodiments 1 to 4, a block for returning the environment changed by the execution of the second block to the environment before the execution of the second block.
[0203] Note that, similar to Embodiments 1 to 4, the rule in this embodiment may be a rule for ensuring that a predetermined two or more blocks are executed in combination in order not to reach the endurance temperature of, for example, the internal space of the housing 21, the actuator 22, or the heater 23.
[0204] [5.2 Processing] FIG. 22 is a sequence diagram of the information processing system 2000.
[0205] (Step S11) First, the development tool 50 installs one or more function blocks. Specifically, the development tool 50 obtains one or more function blocks from the block database 41 by download. For example, the development tool 50 may obtain the block list 41a of the oven range, or may obtain only some of the function blocks in the block list 41a. Then, the development tool 50 makes the obtained one or more function blocks available for sequence generation.
[0206] Here, device information corresponding to each function block stored in the block database 41 may be added to the function block. This device information indicates, for example, the manufacturer, type, model, or model number of the device 20 that drives according to the function block corresponding to the device information. Therefore, the development tool 50 may download one or more function blocks based on the device information. For example, the development tool 50 may download one or more function blocks for driving each device 20 provided by the same manufacturer, or may download one or more function blocks for driving each device 20 used for warming during cooking.
[0207] (Step S12) Next, the development tool 50 generates a sequence. Specifically, the development tool 50 generates a sequence using the one or more downloaded function blocks in response to an input operation by the operator to the input unit 54. Note that the operator may be the developer of the application that is the sequence. In the present embodiment, in this step S12, the development tool 50 refers to the above rules and changes the application based on the rules.
[0208] (Step S13) Next, the development tool 50 uploads the generated sequence. Specifically, the development tool 50 generates transmission information for transmitting the generated sequence to the app providing server 60 based on the content of the sequence in response to an input operation by the operator to the input unit 54, and transmits the transmission information to the app providing server 60. This transmission information may be, for example, JSON (JavaScript Object Notation). As a result, the sequence is transmitted to the app providing server 60 and stored in the app providing server 60 as an application.
[0209] (Step S14) Next, the user of the terminal 30 accesses the app providing server 60 by operating the UI 400 of the terminal 30 and views a list of applications stored in the app providing server 60. Then, the UI 400 selects an application from the list according to the operation by the user and requests the app providing server 60 to download the application.
[0210] (Step S15) When the app providing server 60 receives a download request from the UI 400, it downloads the selected application to the sequence manager 100 associated with the user.
[0211] FIG. 23 is a flowchart showing the overall processing operation of the development tool 50. Specifically, the flowchart shown in FIG. 23 shows the detailed processing operations of steps S11 and S12 in the sequence of FIG. 22.
[0212] (Step S21) The development tool 50 first installs a plurality of function blocks for driving the device 20 such as a washing machine.
[0213] (Step S22) Next, the development tool 50 performs an arrangement process of function blocks in response to an input operation on the input unit 54 by the operator. That is, the development tool 50 displays the plurality of function blocks installed in step S21 on the display 53, and selects one function block from the plurality of displayed function blocks in response to an input operation on the input unit 54 by the operator. Then, the development tool 50 arranges the function block in the selection block area on the sequence generation screen on the display 53 in response to an input operation on the input unit 54 by the operator. The sequence generation screen will be described later with reference to FIG. 26. That is, the operator drags and drops one function block among the plurality of function blocks into the selection block area.
[0214] (Step S23) Next, the development tool 50 performs a parameter setting process of the function block arranged in step S22 in response to an input operation on the input unit 54 by the operator. That is, the development tool 50 displays a reception image for receiving the content of the parameters used for the function block in the parameter setting area on the above-described sequence generation screen. Then, the development tool 50 receives the content of the parameters in response to an input operation on the input unit 54 by the operator, and displays the content of the parameters in the parameter setting area. Thereby, parameters are set for the function block.
[0215] (Step S24) Next, the development tool 50 refers to the parameter rules applied to the device 20 such as a washing machine, and determines whether the parameters set in step S23 are outside the parameter range shown in the parameter rules, that is, outside the allowable range.
[0216] (Step S25) When the development tool 50 determines in step S24 that the parameter is not outside the unacceptable range (No in step S24), it performs parameter setting support processing. In this parameter setting support processing, the development tool 50 performs error presentation processing for presenting an error to the operator or automatic correction processing of the parameter. In the automatic correction processing of the parameter, the development tool 50 changes the function block by changing the parameter outside the unacceptable range to a parameter within the acceptable range. In the error presentation processing, the development tool 50 displays, for example, as an error, a message indicating that the parameter set in the immediately preceding step S23 is within the unacceptable range on the display 53, and prompts the operator to change the parameter. Then, after the processing of step S25 is performed, the development tool 50 repeats the processing from step S23.
[0217] Note that when the processing of step S23 is performed after the automatic correction processing of the parameter is performed in step S25, in that step S23, the development tool 50 displays the parameter after being changed by the automatic correction processing in the parameter setting area. On the other hand, when the processing of step S23 is performed after the error presentation processing is performed in step S25, in that step S23, the development tool 50, as described above, again accepts the content of the parameter in response to an input operation to the input unit 54 by the operator. Thereby, the parameter is changed for the function block. That is, the function block is changed.
[0218] (Step S26) When the development tool 50 determines in step S24 that the parameter is outside the allowable range (Yes in step S24), it further determines whether the connection of the function block arranged in step S22 is permitted. For example, in step S22, the function block is arranged immediately before or after an existing block, which is another function block already arranged in the selection block area. As a result, the function block is arranged in a state of being connected to the existing block. That is, the function block is arranged so that the processing of the apparatus 20 by the function block and the processing of the apparatus 20 by the existing block are continuously executed. In this case, the development tool 50 determines whether the connection between the function block and the existing block is permitted by referring to the connection rules applied to the apparatus 20 such as a washing machine.
[0219] (Step S27) When the development tool 50 determines in step S26 that the connection is not permitted (No in step S26), it performs connection support processing. In this connection support processing, the development tool 50 performs error presentation processing for presenting an error to the operator or automatic correction processing for the connection. Then, the development tool 50 repeats the processing from step S22.
[0220] Note that when the processing of step S22 is performed after the automatic correction processing for the connection is performed in step S27, in step S22, the development tool 50 displays two or more function blocks reconnected by the automatic correction processing in the selection block area. On the other hand, when the processing of step S22 is performed after the error presentation processing is performed in step S27, in step S22, the development tool 50 rearranges the function blocks according to the input operation to the input unit 54 by the operator again as described above. Also, when the processing from step S27 to step S22 is repeated, since the parameters of the function block are already set within the allowable range, the development tool 50 may skip the processing of steps S23 to S25 after step S22.
[0221] (Step S28) When the development tool 50 determines that the connection is permitted in step S26 (Yes in step S26), it further determines whether the generation of the sequence is completed according to the input operation by the operator on the input unit 54. Here, when the development tool 50 determines that the generation of the sequence is not completed (No in step S28), it repeats the process from step S22. At this time, the development tool 50 selects a new block from the plurality of blocks installed in step S21 according to the input operation by the operator on the input unit 54 and arranges it in the above-mentioned selected block area.
[0222] (Step S29) When the development tool 50 determines that the generation of the sequence is completed in step S28 (Yes in step S28), it further determines whether the flow of the entire generated sequence is permitted. For example, in that sequence, a second functional block is arranged before or after the first functional block. On the other hand, in the combination rules applied to the device 20 such as a washing machine, the combination of the first functional block and the second functional block is not permitted. In such a case, the development tool 50 determines that the flow of the entire generated sequence is not permitted. Or, in the combination rules applied to the device 20 such as a washing machine, it is required that a second functional block be arranged before or after the first functional block. In such a case, the development tool 50 determines that the flow of the entire generated sequence is permitted.
[0223] That is, the development tool 50 refers to the rules applied to the device 20 such as a washing machine, and determines whether the sequence generated in step S28, that is, a plurality of functional blocks included in the application, conforms to the rules. Then, if the plurality of functional blocks conform to the rules, the development tool 50 determines that the flow of the entire sequence generated in step S28 is not permitted. On the other hand, if the plurality of functional blocks do not conform to the rules, the development tool 50 determines that the flow of the entire sequence generated in step S28 is permitted. Note that the rules referred to in step S29 are the above-mentioned general rules or dedicated rules applied to the device 20, and more specifically, the combination rules included in the rules. Also, the method for determining whether or not it conforms to the rules is the same as in the first to fourth embodiments above.
[0224] (Step S30) When the development tool 50 determines in step S29 that the flow of the entire sequence is not permitted (No in step S29), it performs placement support processing. In this placement support processing, the development tool 50 performs placement error presentation processing for presenting an error to the operator, or automatic correction processing for the placement of functional blocks. Then, the development tool 50 repeats the processing from step S22.
[0225] Note that when the processing of step S22 is performed after the automatic correction processing of placement is performed in step S30, in step S22, the development tool 50 displays two or more functional blocks rearranged by the automatic correction processing in the selection block area. Also, when the processing from step S30 to step S22 is repeated, since the parameters of the functional blocks have already been set within the allowable range, the development tool 50 may skip the processing of steps S23 to S25 after step S22. Also, since the connection of the functional blocks has already been permitted, the development tool 50 may skip the processing of steps S26 and S27. Furthermore, the development tool 50 may also skip the processing of step S28.
[0226] FIG. 24 is a flowchart showing an example of the automatic correction process of the arrangement.
[0227] (Step S41) In response to an input operation by the operator to the input unit 54, the development tool 50 selects M (M is an integer of 2 or more and N or less) function blocks from N (N is an integer of 2 or more) function blocks for driving the device 20 such as a washing machine. That is, the development tool 50 selects each of the M function blocks as a selection block from the N function blocks for driving at least one of the actuator 22 and the heater 23 provided in the device 20 which is the device to be controlled, in response to an input operation by the operator to the input unit 54.
[0228] (Step S42) Next, the development tool 50 generates a sequence, that is, an application, by arranging each of the selected M function blocks in order in the above-mentioned selection block area. That is, the development tool 50 generates an application including at least M selection blocks by setting the order in which each of at least M selection blocks is executed, in response to an input operation by the operator to the input unit 54. Each of the M selection blocks included in this application may include parameters for driving at least one of the actuator 22 and the heater 23.
[0229] (Step S43) Next, if each of the M functional blocks is a block for driving a washing machine, the development tool 50 refers to the rules applicable to the washing machine. For example, when the application generated in step S42 is applicable to multiple types of washing machines, the development tool 50 refers to the general rule R400. Also, when the application generated in step S42 is applicable to a washing machine of a predetermined type, the development tool 50 refers to the rule associated with the washing machine of that type among the dedicated rules R41 to R43. That is, the development tool 50 determines whether the application generated in step S42 is an application dedicated to the controlled device or a general application applicable to the controlled device and devices other than the controlled device. Then, the development tool 50 refers to the rule candidate corresponding to the determination result of the application among the plurality of rule candidates that prohibit at least one of the remaining of the predetermined two or more blocks from being executed when one of the predetermined two or more blocks is executed, as the above-described rule.
[0230] (Step S44) Then, the development tool 50 determines whether the M functional blocks set in step S42 comply with the above-described rules. That is, the development tool 50 determines whether the M functional blocks included in the application comply with the combination rules included in the rule.
[0231] (Step S45) Here, when the development tool 50 determines that its M functional blocks comply with the rules (Yes in step S44), it changes the application. That is, the development tool 50 refers to a rule that prohibits at least one of the remaining predetermined two or more blocks from not being executed when one of the predetermined two or more blocks is executed. When the M selected blocks included in the application comply with that rule, the development tool 50 changes the application. Specifically, the development tool 50 changes the application by (1) adding a new block to the M selected blocks, (2) changing the order of the M selected blocks, or (3) deleting any one of the M selected blocks. These methods of changing the application may be defined in the rules.
[0232] (Step S46) Then, the development tool 50 outputs the changed application.
[0233] FIG. 25 is a flowchart showing an example of the arrangement error presentation process.
[0234] (Steps S41~S44) The development tool 50 executes the processes of steps S41 to S44 in the same manner as the example shown in FIG. 24.
[0235] (Step S51) When the development tool 50 determines in step S44 that the M functional blocks comply with the rules (Yes in step S44), without automatically changing the application, it displays an error on the display 53. As a result, an error is presented to the operator. That is, in the processes of steps S43, S44, and S51, the development tool 50 presents an error by referring to the rules. Specifically, the development tool 50 refers to a rule that prohibits at least one of the remaining predetermined two or more blocks from not being executed when one of the predetermined two or more blocks is executed. When the M selected blocks included in the application comply with that rule, an error is presented to the operator.
[0236] Note that the development tool 50 may present an error, show a plurality of countermeasures to the operator, and prompt the operator to select a countermeasure. At this time, the development tool 50 may present the difference in output performance to the operator for each of the plurality of countermeasures. Also, at this time, the development tool 50 may present at least two or more of the first countermeasure by adding a new function block, the second countermeasure by changing the order of the M selection blocks, and the third countermeasure by deleting any function block. As a result, these countermeasures are presented to the operator, for example, an application developer. As a result, the operator, who is an application developer who has seen these countermeasures, can easily change the application generated in step S42 according to the countermeasure by performing an input operation on the input unit 54 of the development tool 50.
[0237] (Step S52) The operator who has seen the error changes the application generated in step S42 by performing an input operation on the input unit 54 of the development tool 50. Also, when each of a plurality of countermeasures is presented as an option to the operator, the operator selects an arbitrary countermeasure from among those options by performing an input operation. As a result, the development tool 50 changes the application. That is, the development tool 50 changes the application according to the input operation by the operator who has received the error prompt. Then, the development tool 50 repeatedly executes the process from step S43.
[0238] (Step S46) When the development tool 50 determines in step S44 that the M function blocks do not conform to the rules (No in step S44), the development tool 50 outputs the application. At this time, if the application has been changed in step S52, the changed application is output. On the other hand, if the application has not been changed in step S52, the application generated in step S42 is output.
[0239] In addition, when the process of step S51 is repeated, the development tool 50 may present a method for dealing with the error according to the number of repetitions. For example, when the number of times the error is presented is K times or more (K is an integer of 2 or more), the development tool 50 may present a plurality of methods for dealing with the error. That is, when the number of times the error is presented is K times or more, the development tool 50 presents at least two of the above-described first method for dealing with the error, second method for dealing with the error, and third method for dealing with the error to the operator.
[0240] [5.3 Display Example] FIG. 26 is a diagram showing an example of a sequence generation screen.
[0241] The development tool 50 displays the above-described sequence generation screen on the display 53. The sequence generation screen includes a parameter setting area D1, a block list area D2, a target device area D3, and a selected block area D4.
[0242] In the parameter setting area D1, a reception image for receiving the content of the parameter used for the function block is displayed.
[0243] In the block list area D2, block lists of each of a plurality of types of devices 20 are displayed. These block lists include function blocks downloaded from the block database 41 and installed in the development tool 50.
[0244] In the target device area D3, the type name of the device 20 selected from a plurality of types of devices 20 is displayed.
[0245] In the selected block area D4, the function block selected from the block list displayed in the block list area D2 is arranged and displayed. The function block is displayed as an icon, for example.
[0246] For example, the operator determines the type name of the device 20 to which the application is applied by performing an input operation on the input unit 54 of the development tool 50. The development tool 50 displays the determined type name in the target device area D3. For example, the determined type name "rice cooker" is displayed. Subsequently, the operator selects a function block for driving the device 20 with the determined type name "rice cooker" from the block list displayed in the block list area D2 by performing an input operation. Then, the operator places the selected function block, that is, the selected block, in the selected block area D4 by performing an input operation. The selection and placement of this function block may be performed by drag & drop. One or more function blocks placed in this selected block area D4 may be executed in the order in which they are placed. For example, in FIG. 26, from left to right, those function blocks are executed in order. That is, the application includes information on the order in which each of the M selected blocks placed in the selected block area D4 is executed and information on the timing at which each of the M selected blocks is executed.
[0247] When the function block is placed in the selected block area D4, the development tool 50 displays an acceptance image of the parameters used for the function block in the parameter setting area D1.
[0248] FIG. 27 is a diagram showing an example of the display of the block list.
[0249] The operator selects, by performing an input operation on the input unit 54, the type name of the device 20 to which the application to be generated will be applied, from among the type names of the plurality of devices 20 displayed in the block list area D2 shown in FIG. 26. The development tool 50 displays a block list corresponding to the device 20 of the selected type name, as shown in FIGS. 27(a) and (b), for example. For example, as shown in FIG. 27(a), when an oven range is selected, the development tool 50 displays the block list of that oven range. For example, the block list includes function blocks that implement the respective functions of baking, range heating, oven, grill, steaming, preheating, and superheated steam. Also, as shown in FIG. 27(b), when a multicooker is selected, the development tool 50 displays the block list of that multicooker. For example, the block list includes function blocks that implement the respective functions of preheating, keeping warm, stir-frying, pressure cooking, cooking, steaming, stewing, mixing, and boiling.
[0250] The operator selects a function block from the block list thus displayed by performing an input operation on the input unit 54, and arranges the selected function block in the selection block area D4 shown in FIG. 26. That is, the development tool 50 performs the process of step S22 shown in FIG. 23, that is, the function block arrangement process, in response to such an input operation.
[0251] FIG. 28A is a diagram showing an example of the function block arrangement process and the automatic correction process of the arrangement.
[0252] The development tool 50 displays, for example as an icon, the function block that has been dragged and dropped from the block list and arranged in the selection block area D4, as shown in FIG. 28A(a). Specifically, the development tool 50 arranges M function blocks including the dehydration function block FB42 in the selection block area D4 in response to an input operation on the input unit 54 by the operator. In this way, the development tool 50 performs the function block arrangement process of step S22 shown in FIG. 23 in response to the input operation of the operator.
[0253] Also, when an application is generated as a result of the arrangement process of the function blocks, the development tool 50 determines whether the flow of the entire application is permitted as in step S29 of FIG. 23. That is, the development tool 50 makes a determination for the M function blocks arranged in the selection block area D4 using rules. Then, the development tool 50 performs an automatic correction process for the arrangement.
[0254] Specifically, the development tool 50 first refers to the rules of the washing machine corresponding to those M function blocks. For example, the development tool 50 identifies the rule group 42d of the washing machine among the rule databases 42 shown in FIG. 20(b) and refers to any one rule included in the rule group 42d. The rule may be a general rule R400 or a dedicated rule R41, etc. For example, the rule includes a combination rule that prohibits the first block, the drainage function block FB41, from not being executed before the second block, the dehydration function block FB42, is executed.
[0255] When the development tool 50 determines that the M arranged function blocks comply with the rule, it changes the application. For example, as shown in FIG. 28A(b), the development tool 50 changes the washing machine application by adding the drainage function block FB41 before the function block FB42.
[0256] As described above, in this embodiment, when the application includes a second block and does not include a first block before the second block, the development tool 50 changes the application by adding the first block before the second block. By such a change, the M function blocks are in a state where they do not comply with the rule.
[0257] Also, when the drainage function block FB41, which is the first block, is arranged after the dehydration function block FB42, which is the second block, due to the arrangement process of the function blocks, the development tool 50 may move the drainage function block FB41 forward. That is, when the application includes the first block and the second block and does not include the first block before the second block, the development tool 50 changes the order of the first block to be before the order of the second block to change the application. Even with such a change, the M function blocks do not conform to the rules.
[0258] Also, the development tool 50 may delete the dehydration function block FB42, which is the second block. That is, when the application includes the second block and does not include the first block before the second block, the development tool 50 deletes the second block to change the application. Even with such a change, the M function blocks do not conform to the rules.
[0259] FIG. 28B is a diagram showing another example of the arrangement process of function blocks and the automatic correction process of the arrangement.
[0260] The development tool 50 displays, for example, as an icon, the function blocks arranged in the selection block area D4 that are dragged and dropped from the block list as shown in FIG. 28B(a). Specifically, the development tool 50 arranges M function blocks including the drying function block FB44 in the selection block area D4 in response to an input operation on the input unit 54 by the operator. In this way, the development tool 50 performs the arrangement process of the function blocks in step S22 shown in FIG. 23 in response to the input operation of the operator.
[0261] In addition, when an application is generated as a result of the arrangement process of the functional blocks, the development tool 50 determines whether the overall flow of the application is permitted as in step S29 of FIG. 23. That is, the development tool 50 makes a determination on the M functional blocks arranged in the selection block area D4 using rules. Then, the development tool 50 performs an automatic correction process for the arrangement.
[0262] Specifically, the development tool 50 first refers to the rules of the washing machine corresponding to those M functional blocks. For example, the development tool 50 identifies the rule group 42d of the washing machine among the rule databases 42 shown in FIG. 20(b) and refers to any one rule included in the rule group 42d. The rule may be a general rule R400 or a dedicated rule R41, etc. For example, the rule includes a combination rule that prohibits the third functional block FB45 of blowing from being executed after the second functional block FB44 of drying is executed.
[0263] When the development tool 50 determines that the M arranged functional blocks comply with the rule, it changes the application. For example, as shown in FIG. 28B(b), the development tool 50 changes the application of the washing machine by adding the blowing functional block FB45 after the functional block FB44.
[0264] In this way, in the present embodiment, when the application includes the second block and does not include the third block after the second block, the development tool 50 changes the application by adding the third block after the second block. By such a change, the M functional blocks are in a state where they do not comply with the rule.
[0265] Also, when the blower function block FB45, which is the third block, is arranged in front of the drying function block FB44, which is the second block, by the arrangement process of the function blocks, the development tool 50 may move the blower function block FB45 backward. That is, when the application includes the second block and the third block and does not include the third block after the second block, the development tool 50 changes the order of the third block to be after the order of the second block to change the application. Even with such a change, the M function blocks will not conform to the rules.
[0266] Also, the development tool 50 may delete the drying function block FB44, which is the second block. That is, when the application includes the second block and does not include the third block after the second block, the development tool 50 deletes the second block to change the application. Even with such a change, the M function blocks will not conform to the rules.
[0267] As shown in FIGS. 28A and 28B, in this embodiment, the automatic arrangement correction process is performed. Therefore, even if the operator, who is the application developer, arranges the M function blocks incorrectly so as to conform to the rules, the M function blocks are automatically rearranged so as not to conform to the rules. Therefore, the safety of the washing machine can be ensured.
[0268] FIG. 29 is a diagram showing an example of the error prompt process for the arrangement.
[0269] As with the example of FIG. 28A, the development tool 50 arranges M functional blocks including the dehydration functional block FB42 in the selection block area D4 as shown in FIG. 29. Further, as a result of the arrangement, when an application is generated, the development tool 50 determines whether the flow of the entire application is permitted as in step S29 of FIG. 23. That is, the development tool 50 makes a determination on the M functional blocks arranged in the selection block area D4 using rules. For example, the rules include combination rules that prohibit the drainage functional block FB41, which is the first block, from not being executed before the dehydration functional block FB42, which is the second block, is executed.
[0270] When the development tool 50 determines that the M functional blocks comply with the rules, it performs error prompt processing. Specifically, as shown in FIG. 29, the development tool 50 displays the error message E1 as an error. This error message E1 states that the functional block corresponding to the dehydration functional block FB42 is not arranged in front. That is, this error message E1 notifies that the M functional blocks comply with the rule that prohibits the drainage functional block FB41, which is the first block, from not being executed before the dehydration functional block FB42, which is the second block, is executed. Such error prompt processing is performed, for example, in step S51 of FIG. 25.
[0271] In this way, in the present embodiment, when one of the predetermined two or more blocks is executed, the development tool 50 refers to the rule that prohibits at least one of the remaining of the predetermined two or more blocks from not being executed, and when the M selected blocks included in the application comply with the rule, an error is presented to the operator. Then, the development tool 50 changes the application by changing the order in which each of the M selected blocks is executed according to the input operation by the operator who has received the error prompt.
[0272] When such an error is presented, the operator, who is an application developer, can easily rearrange the M functional blocks that comply with the rule so that they no longer comply with the rule. Therefore, the safety of the washing machine can be ensured.
[0273] Also, in the error presentation process, the development tool 50 may further display countermeasures C1 and C2 for dealing with the error indicated by the error message E1. In this countermeasure C1, it is described that the error is resolved by adding a drainage function block before the dehydration function block. That is, the countermeasure C1 is the above-mentioned first countermeasure of adding a new block to the M selection blocks. Further, the development tool 50 may display the influence received by performing the countermeasure C1 together with the countermeasure C1. For example, the development tool 50 may display as an influence that the processing time for the entire washing process becomes longer, but dehydration is properly performed.
[0274] Also, in the countermeasure C2, it is described that the error is resolved by deleting the dehydration function block. That is, the countermeasure C2 is the third countermeasure of deleting one of the M selection blocks. Further, the development tool 50 may display the influence received by performing the countermeasure C2 together with the countermeasure C2. For example, the development tool 50 may display as an influence that dehydration cannot be performed, but the safety of the washing machine can be ensured.
[0275] FIG. 30 is a diagram showing another example of the connection error presentation process.
[0276] Similar to the example of FIG. 28B, as shown in FIG. 30, the development tool 50 arranges M functional blocks including the drying functional block FB44 in the selection block area D4. Also, as a result of the arrangement, when the application is generated, the development tool 50 determines whether the flow of the entire application is permitted, as in step S29 of FIG. 23. That is, the development tool 50 makes a determination for the M functional blocks arranged in the selection block area D4 using rules. For example, the rules include combination rules that prohibit the blowing functional block FB45, which is the third block, from not being executed after the drying functional block FB44, which is the second block, is executed.
[0277] And when the development tool 50 determines that the M functional blocks comply with the rules, it performs an error prompt process. Specifically, as shown in FIG. 30, the development tool 50 displays the error message E2 as an error. This error message E2 states that the functional block corresponding to the drying functional block FB44 is not arranged later. That is, this error message E2 notifies that the M functional blocks comply with the rule that prohibits the blowing functional block FB45, which is the third block, from not being executed after the drying functional block FB44, which is the second block, is executed. Such an error prompt process is performed, for example, in step S51 of FIG. 25.
[0278] By presenting such an error, the operator, who is the application developer, can easily rearrange the M functional blocks that comply with the rules so that they do not comply with the rules. Therefore, the safety of the washing machine can be ensured.
[0279] In addition, in the error display process, the development tool 50 may further display countermeasures C3 to C5 for dealing with the error indicated by the error message E2. It is described in this countermeasure C3 that the error can be eliminated by adding a blowing function block after the drying function block. That is, the countermeasure C3 is the above-described first countermeasure of adding a new block to the M selection blocks. Further, the development tool 50 may display the influence received by performing the countermeasure C3 together with the countermeasure C3. For example, the development tool 50 may display as an influence that the processing time required for all the washing processes becomes longer, but the safety of the washing machine can be ensured.
[0280] In addition, it is described in the countermeasure C4 that the error can be eliminated by moving the blowing function block arranged in front of the drying function block to the rear of the drying function block. That is, the countermeasure C4 is the above-described second countermeasure of changing the order of the M selection blocks. Further, the development tool 50 may display the influence received by performing the countermeasure C4 together with the countermeasure C4. For example, the development tool 50 may display as an influence that the safety of the washing machine can be ensured.
[0281] In addition, it is described in the countermeasure C5 that the error can be eliminated by deleting the drying function block. That is, the countermeasure C5 is the third countermeasure of deleting any one of the M selection blocks. Further, the development tool 50 may display the influence received by performing the countermeasure C5 together with the countermeasure C5. For example, the development tool 50 may display as an influence that drying cannot be performed, but the safety of the washing machine can be ensured.
[0282] As described above, in this embodiment, the development tool 50 presents a plurality of countermeasures for the error. Then, the development tool 50 changes the application according to the input operation by the operator who has received the presentation of the error and the plurality of countermeasures.
[0283] For example, the plurality of countermeasures includes at least two of the above-described first countermeasure, second countermeasure, and third countermeasure. Further, in the present embodiment, the development tool 50 presents the influence on the object acted on by the driving of the actuator 22 or the heater 23, or the influence on the application when each of the plurality of countermeasures is performed.
[0284] By presenting such a plurality of countermeasures and the influence by those countermeasures, the operator who is the application developer can more easily rearrange the M functional blocks that conform to the rule so as not to conform to the rule. Therefore, the safety of the washing machine can be ensured.
[0285] Note that the error messages E1 and E2 and the countermeasures C1 to C5 may be displayed in any area of the sequence generation screen. Further, each of these error messages E1 and E2 and the countermeasures C1 to C5 may be shown in association with the combination rule. Also, in the above example, the error messages E1 and E2 and the countermeasures C1 to C5 are displayed, but the presentation forms thereof are not limited to these examples and may be in any form. For example, an error or the like may be presented by voice.
[0286] Further, when the number of times the error is presented is K times (K is an integer of 2 or more) or more, the development tool 50 may present a plurality of countermeasures for the error to the operator. That is, when the process of step S51 shown in FIG. 25 is repeated, the development tool 50 may change the presentation form of the error according to the number of repetitions. Specifically, when the number of times the error is presented is less than K times, the development tool 50 presents the error and does not present the countermeasure, and when the number of times the error is presented is K times or more, the development tool 50 also displays the countermeasure together with the error.
[0287] FIG. 31 is a diagram showing another presentation example of the countermeasure.
[0288] In the above example, the countermeasure is presented as a message, but the development tool 50 may present the countermeasure in other ways as shown in FIG. 31. For example, the development tool 50 presents the countermeasure in such a manner that the functional block to be added to avoid an error can be easily selected from the block list. That is, when the development tool 50 determines that the first block is not arranged before the second block shown in the combination rule, it displays the block list as shown in FIG. 32. In this block list, only the functional block, which is the first block to be arranged before the second block, is displayed in a different manner from the other functional blocks included in the block list. Specifically, among the block list of the washing machine, only the drainage functional block to be added before the dehydration functional block is brightly displayed, and the other functional blocks are dimly displayed. Thereby, the operator who is the application developer can easily select the drainage functional block and add it to the selection block area D4, and the operability of changing the application can be enhanced.
[0289] FIG. 32 is a diagram showing still another presentation example of the countermeasure.
[0290] In the above example, the countermeasure is presented only as a message, but the development tool 50 may present the countermeasure using an object such as an arrow as shown in FIG. 32. For example, when the development tool 50 determines that the functional block FB34 and the functional block FB37 comply with the rule, it presents a second countermeasure of reversing the order of those functional blocks with a message and an arrow. Thereby, the operator who is the application developer can easily avoid the error by reversing the order of those functional blocks, and the operability of changing the application can be enhanced.
[0291] [5.4 Effects, etc.] As described above, in this embodiment, an environment in which various and safe applications can be developed can be provided by an application including blocks and a rule database. Therefore, it is possible to safely drive the actuator 22 that physically moves or the heater 23 that outputs thermal energy with respect to an application freely developed in that environment. As a result, for example, it becomes possible to create in parallel the development of various applications with a high degree of freedom and the development of a rule database for ensuring safety, and it becomes possible to develop various and safe applications at an early stage.
[0292] In addition, if this embodiment is combined with any one of Embodiments 1 to 4, even after the application is provided, by changing the rule database, it becomes possible to change to an application with more guaranteed safety. Also, even when it becomes necessary to improve a situation not anticipated by the manufacturer in advance, since the rule database is defined independently of the application without changing the various applications themselves, by updating the rule database, it becomes possible to handle all applications.
[0293] Specifically, the information processing method in this embodiment is an information processing method executed by a computer system such as the development tool 50. In this information processing method, (a) from N (N is an integer of 2 or more) blocks for driving at least one of the actuator 22 and the heater 23 provided in the device 20 which is a control target device, according to an input operation by an operator, each of M (M is an integer of 1 or more and N or less) blocks is selected as a selection block, (b) by setting the order in which at least each of the M selection blocks is executed according to an input operation by an operator, an application including at least the M selection blocks is generated, (c) referring to a rule that prohibits at least one of the remaining blocks of the predetermined two or more blocks from not being executed when one of the predetermined two or more blocks is executed, when the M selection blocks included in the application comply with the above rule, the application is changed, and (d) the changed application is output.
[0294] According to this, the actuator 22 and / or the heater 23 can be driven based on an application defined by M blocks. Therefore, it becomes possible to develop an application using blocks that abstract the control of the device 20, and various applications can be developed not only by the manufacturer but also by third parties, and these applications can be easily executed on the device 20. Further, at the time of this development, the application including M selectable blocks corresponding to the above rules is automatically changed. As a result, the application can be automatically changed to an application including M selectable blocks that do not conform to the rules. Therefore, it is possible to ensure that one of the predetermined two or more blocks is executed in combination with at least one of the remaining blocks. That is, even if an operator who is an application developer accidentally generates an application so that a block that is not allowed to be executed alone is executed alone, it is possible to suppress the generation of an application that cannot safely control the device 20. Therefore, even when an application developer creates or generates an application that emphasizes suitability for users of the actuator 22 and / or the heater 23, the safety of the device 20 controlled by the application can be ensured and the safety can be improved.
[0295] Also, in the above (c), the application may be changed by (1) adding a new block to the M selectable blocks, (2) changing the order of the M selectable blocks, or (3) deleting any one of the M selectable blocks.
[0296] More specifically, the predetermined two or more blocks include a first block and a second block, and the rule prohibits the first block from not being executed before the second block is executed. And in the above (c), when the application includes the second block and does not include the first block before the second block, the application may be changed by adding the first block before the second block.
[0297] Also, in the above (c), when the application includes a first block and a second block and does not include the first block before the second block, the application may be modified by changing the order of the first block to be before the order of the second block.
[0298] Also, in the above (c), when the application includes a second block and does not include the first block before the second block, the application may be modified by deleting the second block.
[0299] According to these, at the time of developing the application, by adding a new block, changing the order of the blocks, or deleting a block, it is possible to ensure that the first block is executed before the second block. Therefore, the developer of the application or the developer of the software incorporated in the device 20 that controls the actuator 22 and the heater 23 can ensure the safety of the device 20 without checking the safety of each application every time.
[0300] Also, specifically, the above rule may prohibit the first block from not being executed from the start of the application until before the second block is executed. Further, the first block may be a block for setting an environment in which the second block can be executed.
[0301] Also, the above-mentioned two or more predetermined blocks include a second block and a third block, and the rule may prohibit the third block from not being executed after the second block is executed. In this case, in the above (c), when the application includes a second block and does not include the third block after the second block, the application may be modified by adding the third block after the second block.
[0302] Also, in the above (c), when the application includes the second block and does not include the third block after the second block, the application may be changed by changing the order of the third block to be after the order of the second block.
[0303] Also, in the above (c), when the application includes the second block and does not include the third block after the second block, the application is changed by deleting the second block.
[0304] According to these, at the time of developing the application, by adding a new block, changing the order of the blocks, or deleting a block, it is possible to ensure that the third block is executed after the second block. Therefore, the developer of the application or the developer of the software incorporated in the device 20 that controls the actuator 22 and the heater 23 can ensure the safety of the device 20 without checking the safety of each application every time.
[0305] Specifically, the above rule may prohibit the third block from being executed from after the second block is executed until the end of the application. Also, the third block may be a block for returning the environment changed by the execution of the second block to the environment before the execution of the second block.
[0306] Also, the rule may be a rule for ensuring that at least one of the actuator 22 and the heater 23 does not reach the endurance temperature by the combined execution of the above two or more blocks.
[0307] According to this, it is possible to suppress the actuator 22 and / or the heater 23 from reaching the endurance temperature when the application is executed, and improve the safety of the device 20 controlled by the application.
[0308] Also, the device 20, which is a device to be controlled, includes a housing 21 having an internal space, and the rule may be a rule for ensuring that the above-mentioned two or more blocks are combined and executed so as not to reach the endurance temperature in the internal space.
[0309] According to this, when the application is executed, it is possible to suppress the internal space of the housing 21 from reaching the endurance temperature, and the safety of the device 20 controlled by the application can be improved.
[0310] Also, in the above (c), it is determined whether the generated application is an application dedicated to the device to be controlled or a general-purpose application applied to the device to be controlled and devices other than the device to be controlled, and when one of the two or more predetermined blocks is executed, at least one of the remaining two or more predetermined blocks is prohibited from being executed. Among the plurality of rule candidates, a rule candidate corresponding to the determination result of the application may be referred to as a rule.
[0311] According to this, it is possible to increase the variations of the application, such as a dedicated application and a general-purpose application. Furthermore, since rules suitable for those variations are referred to, for each of those variations, the application of that variation can be appropriately changed.
[0312] Also, the information processing method in the present embodiment is an information processing method executed by a computer system such as the development tool 50, and may present an error. That is, the information processing method: (a) selects, from N (N is an integer of 2 or more) blocks for driving at least one of the actuator 22 and the heater 23 provided in the device 20 which is a control target device, each of M (M is an integer of 2 or more and N or less) blocks as a selection block according to an input operation by an operator; (b) generates an application including at least the M selection blocks by setting the order in which each of at least the M selection blocks is executed according to an input operation by the operator; (c) refers to a rule that prohibits at least one of the remaining blocks of the two or more predetermined blocks from not being executed when one of the two or more predetermined blocks is executed, and presents an error to the operator when the M selection blocks included in the application comply with the rule; (d) changes the application according to an input operation by the operator who has received the presentation of the error; and (e) outputs the changed application.
[0313] According to this, when an operator who is an application developer erroneously generates an application such that a block that is not allowed to be executed alone is executed alone, an error is presented, so that it is possible to suppress the generation of an application that cannot safely control the device 20. That is, the same effect as when the application is automatically changed as described above can be achieved.
[0314] Also, in (c) above, further, a plurality of countermeasures against the error are presented, and in (d) above, the application may be changed by changing the order in which each of the M selection blocks is executed according to an input operation by the operator who has received the presentation of the error and the plurality of countermeasures. That is, the information processing method in the present embodiment is an information processing method executed by a computer system such as the development tool 50, and may present a plurality of countermeasures at the same time as presenting an error.
[0315] According to this, the operator who has confirmed the error prompt can reduce the trouble of changing the application.
[0316] In addition, the plurality of countermeasures may include at least two of a first countermeasure of adding a new block to the M selection blocks, a second countermeasure of changing the order of the M selection blocks, and a third countermeasure of deleting any one of the M selection blocks.
[0317] Thereby, the operator can change the application while appropriately avoiding the error according to any one of the plurality of countermeasures. In addition, when the operator selects a countermeasure, the operator can select an option (that is, a countermeasure) that satisfies the intention of creating the application.
[0318] In addition, in (c) above, further, the influence on the object acted on by the driving of the actuator 22 or the heater 23, or the influence on the application when each of the plurality of countermeasures is performed may be presented. That is, the information processing method in the present embodiment is an information processing method executed by a computer system such as the development tool 50, which presents a countermeasure against an error and may simultaneously present the influence on the application by implementing the countermeasure.
[0319] According to this, when the operator selects a countermeasure, the operator can intuitively select it in line with the intention of creating the application.
[0320] In addition, in this information processing method, after (d) above, (c) and (d) are repeatedly executed, and when the number of times of error presentation is K times (K is an integer of 2 or more) or more, a plurality of countermeasures against the error may be presented to the operator.
[0321] According to this, when the error presentation is repeated, a plurality of countermeasures are presented. Therefore, the operator can easily change the order in which each of the M selection blocks is executed according to those countermeasures, and can more easily generate a safe application.
[0322] (Modification Example of Embodiment 5) Whether the hardware of the device 20 can operate safely by an application depends on the environmental conditions of the hardware. Therefore, the rules of the application should be determined according to the most severe environmental conditions. For this reason, under certain environmental conditions, it may not be possible to make the most of the functions of the hardware.
[0323] Therefore, when the application producer in this modification example is the device manufacturer, the development and production of the application used in the device 20 manufactured by the application producer are performed without using the rules. The reason is that as an application producer, the application producer understands the environmental conditions for safely operating the device 20 manufactured by the application producer. Note that the application producer is a person, group, or company that develops or produces an application, and is also called an application developer. Also, the device manufacturer is a person, group, or company that manufactures or produces devices such as the device 20, and is also called the manufacturer or producer of the device 20.
[0324] That is, the development tool 50 in this modification example performs the development of the application using the rules when the application producer and the device manufacturer are different, and performs the development of the application without using the rules when the application producer and the device manufacturer are the same.
[0325] More specifically, in Embodiment 5, as described above, at the stage where an application is developed or produced, the application is changed according to rules. In this modification, even at this stage, when the application maker and the device manufacturer are the same as in Embodiment 3, the change of the application is skipped.
[0326] FIG. 33 is a flowchart showing the processing operation of the development tool 50 in this modification.
[0327] (Step S51) First, the development tool 50 generates an application by performing the arrangement process of functional blocks and the parameter setting process. That is, the development tool 50 generates an application including one or more functional blocks for driving at least one of the actuator and the heater provided in the device 20 which is the device to be controlled. For example, in this step S51, the development tool 50 executes the processes of steps S21 to S23 in FIG. 23.
[0328] Thereafter, the development tool 50 executes steps S2161B, S2163B, S2164B, S2165, S2166, and S2167 in the same manner as in Embodiment 3. Specifically, the development tool 50 operates as follows.
[0329] (Step S2161B) The development tool 50 identifies the maker of the application (i.e., the application maker) by acquiring the application maker information.
[0330] (Step S2163B) The development tool 50 identifies the manufacturer of the device 20 which is the device to be controlled (i.e., the device manufacturer) by acquiring the device manufacturer information.
[0331] (Step S2164B) The development tool 50 determines whether the app maker and the device manufacturer are different. In other words, the development tool 50 determines whether the maker of the application and the manufacturer of the above-described device to be controlled match.
[0332] (Step S2165) When the app maker and the device manufacturer do not match (Yes in step S2164B), the development tool 50 acquires rules regarding one or more blocks included in the application.
[0333] (Step S2166) The development tool 50 determines whether one or more functional blocks included in the application comply with the rules.
[0334] (Step S2167) When the development tool 50 determines that those one or more functional blocks comply with the rules (Yes in step S2166), it changes the application according to the rules.
[0335] (Step S52) When the app maker and the device manufacturer match (No in step S2164B), the development tool 50 performs an addition process of adding information to the application. In the addition process, the development tool 50 adds the first addition information and at least one of the second addition information and the third addition information to the application. The first addition information is information indicating that no rules are applied to the application. The second addition information is information indicating the time when the application was generated. For example, the second addition information indicates the date when the application was generated. That date is hereinafter also referred to as the app creation date. The third addition information is manufacturer identification information for identifying the manufacturer when the app maker is the manufacturer of the device.
[0336] (Step S53) After the process of step S2167, the development tool 50 outputs the modified application. On the other hand, after the process of step S52, the development tool 50 outputs the application with additional processing completed. That is, when the app maker and the device manufacturer match (No in step S2164B), the development tool 50 outputs the application with information added without applying the rules to the application.
[0337] As described above, the information processing method in this modified example is an information processing method executed by a computer system such as the development tool 50. In this information processing method, an application including one or more blocks for driving at least one of the actuator and the heater provided in the control target device is generated, the maker of the application is identified, the manufacturer of the control target device is identified, and it is determined whether the maker of the application and the manufacturer of the control target device match. (a) When the maker of the application and the manufacturer of the control target device do not match, rules regarding one or more blocks included in the application are acquired, the application is modified according to the rules, and the modified application is output. (b) When the maker of the application and the manufacturer of the control target device match, the application is output without applying the rules to the application.
[0338] Therefore, in this modified example, when the app maker and the device manufacturer are different, the application is modified by applying the rules to the application, so the same effect as in Embodiment 5 can be achieved. Further, when the app maker and the device manufacturer are the same, similar to Embodiment 3, the application of the rules and the modification of the application are omitted, so the processing load can be reduced. Further, in that case, since the hardware of the device 20, which is the control target device, operates by the application to which the rules are not applied, the functions of the hardware can be effectively utilized.
[0339] Further, in the above (b) of the information processing method in this modified example, an additional process is performed to add the first additional information and at least one of the second additional information and the third additional information to the application. In the output of the application, the application with the additional process is output. Here, the first additional information is information indicating that no rule is applied to the application, the second additional information is information indicating the time when the application was generated, and the third additional information is information for identifying the manufacturer when the manufacturer of the application is the manufacturer of the device.
[0340] Therefore, in this modified example, when no rule is applied to the application, the device 300 of the device 20 that is the control target device acquires the application with the information added.
[0341] For example, when the first additional information and the second additional information are added to the application, since the first additional information is added to the application, the device 300 can determine whether to apply a rule to the application. Specifically, the device 300 can appropriately determine whether to apply a rule based on the second additional information added to the application. For example, the device 300 can specify the update date of the rule, and if the update date is before the application creation date indicated by the second additional information, it can be determined not to apply the rule to the application. As a result, the device 300 can omit the application of the rule and the change of the application. That is, similar to the development tool 50, the device 300 can also reduce the processing load.
[0342] On the one hand, if the update date of the device 300 is later than the application creation date, it can be determined that the updated rules are applied to the application. That is, when the generated application is old, if the device 20 operates according to the old application, it may be difficult to ensure the safety of the device 20. However, in such a case, the rules are applied to the old application by the second additional information, and the application is changed. Therefore, the safety of the device 20 can be easily ensured.
[0343] Also, for example, even when the first additional information and the third additional information are added to the application, the device 300 can determine whether to apply the rules to the application because the first additional information is added to the application. Specifically, the device 300 can appropriately determine whether to apply the rules based on the third additional information added to the application. For example, the device 300 determines whether the manufacturer of the device 20 including the device 300 matches the manufacturer identified by the manufacturer identification information, which is the third additional information. And when the device 300 determines that those manufacturers match, it can be determined not to apply the rules to the application. As a result, the device 300 can omit the application of the rules and the change of the application. That is, similar to the development tool 50, the device 300 can also reduce the processing load.
[0344] On the one hand, when the device 300 determines that their manufacturers do not match, it can determine to apply rules to the application. For example, the generated application may be used not only in the device 20 which is the device to be controlled manufactured by the app maker, but also in the device 20 manufactured by other device manufacturers. When the device 20 manufactured by other device manufacturers operates according to the application, it may be difficult to ensure the safety of the device 20. However, in such a case, rules are applied to the application by the third additional information, and the application is changed. Therefore, the safety of the device 20 manufactured by other device manufacturers can be easily ensured.
[0345] Note that in the above example, the device 300 applies rules and changes the application based on the information added to the application. However, similar to Embodiments 1 to 4, instead of the device 300, the device manager 200 or the like may apply rules and change the application based on the information added to the application.
[0346] (Other Embodiments) As described above, the system according to one or more aspects of the present disclosure has been described based on the embodiments. However, the present disclosure is not limited to this embodiment. As long as it does not deviate from the gist of the present disclosure, various modifications conceived by those skilled in the art applied to this embodiment or forms constructed by combining components in different embodiments may also be included within the scope of one or more aspects of the present disclosure.
[0347] Also, in each of the above embodiments, the sequence manager 100 and the device manager 200 were included in the cloud server 10, but it is not limited thereto. The sequence manager 100 and / or the device manager 200 may be included in the device 20. Also, the UI 400 was included in the terminal 30, but it may be included in the device 20.
[0348] Also, in each of the above embodiments, the application may be changed based on the deterioration information. For example, the device 300 may refer to parameter conversion information in which a plurality of deterioration levels are associated with a plurality of parameter conversion methods, obtain a conversion method corresponding to the deterioration level, and convert the parameters included in the block using the obtained conversion method. As the conversion method, for example, it may be defined by the value after conversion, or may be defined by a coefficient applied to the value before conversion.
[0349] Also, in each of the above embodiments, the application was changed during the pre-execution check and then the application was executed, but this is not restrictive. For example, when the state of the device 300 is different from the assumption, the application may not be changed, and the device manager 200 and / or the sequence manager 100 may be notified of the execution stop (error).
Industrial Applicability
[0350] It can be used for household electrical appliances that can execute an application defined by a plurality of functional blocks, and devices that generate such an application.
Explanation of Signs
[0351] 1 System 2a, 2b, 2c, 2d Facilities 10 Cloud Server 11 Processor 12 Memory 20, 20a, 20b, 20c, 20d, 20e, 20f, 20g, 20h Devices 21 Housing 22 Actuator 23 Heater 24 Control Unit 30, 30a, 30b, 30c, 30d Terminals 31 Display 32 Input Device 41 Block Database 42, 1300 Rule Database 50 Development Tools 51 Processor 52 Memory 53 Display 54 Input Section 60 Application Provision Server 100 Sequence Manager 200 Device Manager 300, 300a, 300b, 300c, 300d, 300e, 300f, 300g, 300h Devices 400, 400a, 400b, 400c, 400d UI 1000, 1201 Blocks 1001, 1002, 1003, 1004, 1005, 1006 Parameters 1100 Device Database 1101 Device Information 1200 Execution Content Declaration 1202 Information Regarding Devices 1203 Order Information 1301, 1302 Rules 2000 Information Processing System C1 - C5 Countermeasures D1 Parameter Setting Area D2 Block List Area D3 Target Device Area D4 Selected Block Area E1, E2 Error Messages F100 Preparation Phase F200 Phase Before Application Execution F300 Application Execution Phase R11 - R13, R21 - R23, R31 - R33, R41 - R43 Dedicated Rules R100, R200, R300, R400 General Rules
Claims
1. 1. An information processing method executed by a computer system, comprising: (a) generating an application including M blocks (M is an integer equal to or greater than 1) for driving at least one of an actuator and a heater provided in a controlled device, by setting an order in which each of the M blocks is executed in response to an input operation by an operator; (b) referring to a rule that prohibits at least one of the remaining two or more blocks from being executed when one of the two or more predetermined blocks is executed, and presenting an error to the operator if the M selected blocks included in the application fall under the rule; Information processing methods.
2. The information processing method further comprises: (c) changing the application in response to an input operation by the operator who has received the error; The information processing method according to claim 1 .
3. In the above (b), presenting at least one remaining of the two or more predetermined blocks as a solution to the error; The information processing method according to claim 1 .
4. performing the process of (b) each time the order of one of the M blocks is selected in response to the input operation by the operator in (a); The information processing method according to claim 1 .
5. A processor; a memory coupled to the processor; The processor uses the memory to: (a) generating an application including M selection blocks (M is an integer equal to or greater than 1) for driving at least one of an actuator and a heater provided in a control target device, by setting an order in which each of the M selection blocks is executed in response to an input operation by an operator; (b) referring to a rule that prohibits at least one of the remaining two or more blocks from being executed when one of the two or more predetermined blocks is executed, and presenting an error to the operator if the M selected blocks included in the application fall under the rule; Information processing device.
Citation Information
Patent Citations
System for preparing operational procedure of device, recording medium with its operational procedure and control system recorded thereon
JP2001147704A
Software development support system, development support method, and program
JP2010102362A
Device and method for supporting creation of flow using visual programming tool
JP2020042679A
Program, method, and apparatus for assisting creation of business model chart
WO2006033159A1
Washing machine
JP2003284889A