Information Processing Method and Information Processing Apparatus

The information processing method allows for the flexible generation of control programs for devices with actuators and heaters by selecting blocks, setting parameters, and applying safety rules, resulting in diverse and safe control programs.

JP7684299B2Active Publication Date: 2025-05-27PANASONIC INTELLECTUAL PROPERTY CORP OF AMERICA
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
JP2022531864
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2020-12-25
Filing Date
2021-06-16
Publication Date
2025-05-27
Estimated Expiration
2041-06-16

AI Technical Summary

Technical Problem

Existing methods for generating control programs for devices with actuators and heaters are inflexible, making it difficult to create diverse and safe control programs.

Method used

An information processing method that allows users to select blocks for driving actuators or heaters, set parameters, and modify blocks based on safety rules to generate customized and safe control programs.

Benefits of technology

Enables the easy generation of diverse and safe control programs, improving the safety and customization options for devices with actuators and heaters.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007684299000001
    Figure 0007684299000001
  • Figure 0007684299000002
    Figure 0007684299000002
  • Figure 0007684299000003
    Figure 0007684299000003
Patent Text Reader

Abstract

This information processing method includes: selecting, as selected blocks, in accordance with an input operation performed by an operator, each of M blocks from among N blocks for driving at least one of an actuator (22) and a heater (23) of an apparatus (20) (step S41); generating an application by setting parameters in accordance with input operations performed by the operator, in each of the M selected blocks (step S42); referring to a rule defining a parameter range in which the driving is not permitted, and modifying the application by modifying at least one of the selected blocks having a parameter contained in the parameter range (steps S44, S45); and outputting the modified application (step S46).
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present disclosure relates to an information processing method for generating a control program for a device including an actuator and / or a heater, and the like.

Background Art

[0002] Conventionally, household electrical appliances and housing equipment are controlled according to operation conditions (control programs) prepared in advance by their 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 the manufacturer of the product or the like must be stored in the product in advance, and it is difficult to generate, customize, and update diverse and safe control programs.

[0005] Therefore, the present disclosure provides an information processing method and the like that can easily generate a 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) selecting, in response to an input operation by an operator, each of M (where M is an integer greater than or equal to 1 and less than or equal to N) blocks from N (where N is an integer greater than or equal to 2) blocks for driving at least one of an actuator and a heater provided in a device to be controlled; (b) generating an application including at least the M selected blocks by setting, in response to an input operation by the operator, a parameter for driving the actuator or the heater for each of the M selected blocks; (c) changing the application by changing at least one of the M selected blocks with reference to a rule defining a parameter range in which driving of at least one of the actuator and the heater is not allowed, wherein at least one of the M selected blocks has a parameter included in the parameter range; and (d) outputting the changed application.

[0007] Note that these general or specific aspects may be implemented in a system, method, integrated circuit, computer program, or recording medium such as a computer-readable CD-ROM, or may be implemented in any combination of a system, method, integrated circuit, computer program, and recording medium.

Advantages of the Invention

[0008] The information processing method according to one aspect of the present disclosure can easily generate a diverse and safe control program.

Brief Description of the Drawings

[0009]

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 28

Figure 29

Figure 30A

Figure 30B

Figure 31

Figure 32

Figure 33

Figure 34

Figure 35

Figure 36

Figure 37

Figure 38

Figure 39

Figure 40

Figure 41

Figure 42

Figure 43A

Figure 43B

Figure 44

Figure 45

Figure 46

Figure 47

Figure 48

MODE FOR CARRYING OUT THE INVENTION

[0010] (Knowledge on which the present disclosure is based) 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, a clothing company can also develop a control program for a washing machine for washing clothes sold by the company itself.

[0011] Therefore, the present inventors constructed an environment in which a control program can be developed while maintaining safety, using functional blocks that abstract the control of actuators and heaters included in a product, and 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 more diverse users. However, in such an environment, there is a possibility that dangerous applications (i.e., applications that cannot safely control the product) may be distributed, resulting in a decrease in the safety of the product.

[0012] For example, programs included in household appliances and the like are incorporated into devices for directly controlling actuators and / or heaters, and are assumed to include a program developed by the 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 information on household appliances and the like including know-how to the third party. For example, the parameters or timings for driving the actuators and heaters are know-how related to the performance of the manufacturer's household appliances and the like. Therefore, since there is a risk of leading to a decrease in competitiveness, the manufacturer is less likely to open the know-how to the third party so that the household appliances and the like can be freely driven.

[0013] Therefore, due to insufficient information on household appliances and the like, the 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 the user is not desirable for the user.

[0014] 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 than those of smartphone programs. However, in an era where on-demand development according to each user's life rather than mass production is required, it is necessary to develop a wide variety of control programs for household appliances and the like, similar to smartphone programs. Therefore, manufacturers must create a wide variety of applications that ensure product safety while reducing a huge amount of man-hours.

[0015] Furthermore, it may be considered that the manufacturer desires to guarantee safe operation even when the household appliance and the like operate using an application provided by a third party. At this time, it is desired to reduce the amount of work for verifying safety by actually driving a wide variety of applications on the household appliance and the like.

[0016] Therefore, the present disclosure provides an information processing method and the like that can easily generate a wide variety of and safe applications defined by a plurality of functional blocks that drive an actuator and / or a heater.

[0017] Hereinafter, embodiments will be specifically described with reference to the drawings.

[0018] 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 examples and are not intended to limit the scope of the claims.

[0019] Also, each figure is not necessarily drawn precisely. In each figure, substantially the same components are denoted by the same reference numerals, and duplicate descriptions are omitted or simplified.

[0020] (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.

[0021] 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.

[0022] 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.

[0023] 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.

[0024] The devices 20a to 20h are electromechanical appliances used in the facilities 2a to 2d. In FIG. 1, the illustration of the devices 20c to 20h used in the facilities 2b to 2d is omitted. In the following, when the distinction between the devices 20a to 20h is not necessary, they are described as the device 20.

[0025] As the device 20, household electrical appliances (home appliances) and housing equipment etc. can be used. The household electrical appliances (home appliances) and housing equipment etc. are not limited to the devices used in the house, and also include the devices used for business. In the present disclosure, the 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, mixers (Blenders), electric ovens, electric toasters, electric pots, hot plates, IH (Induction heating) cookers, roasters, bakeries, electric pressure cookers, electric non-boiling cookers, multicookers, 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 the device 20 is not limited to this.

[0026] As shown in FIG. 2B, the device 20 includes a housing 21, an actuator 22, a heater 23, and a control unit 24. Note that the device 20 only needs to include at least one of the actuator 22 and the heater 23, and does not necessarily need to include both the actuator 22 and the heater 23.

[0027] The housing 21 houses the actuator 22, the heater 23, and the control unit 24. Further, the 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.

[0028] 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.

[0029] The heater 23 is an electric heater that converts electrical energy into thermal 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.

[0030] 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, etc. provides a third party with a development environment in which all parameters and combinations of driving for driving the actuator 22 and the heater 23 can be freely controlled. At this time, the third party can create a program that controls the actuator 22 and / or the heater 23 outside the parameter range that can safely drive the actuator 22 and / or the heater 23 assumed by the manufacturer, or deviates from the driving limit of the actuator 22 and / or the heater 23. In particular, driving of the physically moving actuator 22 or the heater 23 that outputs thermal energy, which is not assumed by the manufacturer, has 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 hinder 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 thermal energy.

[0031] 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.

[0032] 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 terminal 30.

[0033] 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.

[0034] 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, 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.

[0035] [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.

[0036] 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.

[0037] 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.

[0038] The sequence manager 100 manages a plurality of applications. The plurality of applications are downloaded from an application delivery platform to the sequence manager 100, for example, by a user's operation. Alternatively, the applications included in the application delivery platform may not be downloaded to the sequence manager 100. In that case, information indicating that the applications included in the application delivery platform are associated with the database of the sequence manager 100 may be recorded. Details of the applications will be described later.

[0039] 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.

[0040] 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.

[0041] The device 300 has the control function and the drive function of the device 20. The device 300 can drive the device 20 in accordance with an instruction from the device manager 200.

[0042] The UI 400 provides information to the user and receives input from the user.

[0043] Here, the application will be described. In the present embodiment, an application (hereinafter sometimes 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.

[0044] FIG. 4 shows an example of a block that defines an application in Embodiment 1. Block 1000 shown in FIG. 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 (e.g., normal, dancing, rocking). Parameter 1001 can also be paraphrased as indicating the type of function. Parameter 1002 includes a value indicating the rotational speed of the drum. Parameter 1002 can also be paraphrased as indicating the intensity of driving of actuator 22 and / or heater 23. Parameter 1003 includes a value indicating the water supply amount into the drum in terms of the water level after water supply. Parameter 1003 can also be paraphrased as indicating 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 paraphrased as indicating whether to drive actuator 22 and / or heater 23. Parameter 1005 includes information indicating the agitation interval stepwise (e.g., short, medium, long). Parameter 1006 includes a value indicating the agitation time.

[0045] To define an application, a plurality of such blocks are used. For example, a plurality of blocks as shown in FIGS. 5 to 7 are used.

[0046] FIG. 5 shows a plurality of blocks for a washing machine in Embodiment 1. FIG. 6 shows a plurality of blocks for a microwave oven in Embodiment 1. FIG. 7 shows a plurality of blocks for a rice cooker in Embodiment 1. Note that the plurality of blocks shown in FIGS. 5 to 7 are examples, and the blocks for the washing machine, microwave oven, and rice cooker are not limited thereto. For example, the plurality of blocks may be hierarchized according to the abstraction level.

[0047] For example, the abstraction level 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.

[0048] 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 content closer to the parameters for driving the actuator and the heater is controlled.

[0049] 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 amount parameter in the stirring block is decreased from 120 rpm to 100 rpm, etc. 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 - 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 through their rearrangement and parameter adjustment.

[0050] Also, for example, in the device 20 of 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 that at least one block among the plurality of blocks cannot be executed, as error information, it may be indicated that this application cannot be developed, or information on the non - executable block may be presented to the developer.

[0051] [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.

[0052] [1.3.1 Preparation Phase F100] First, the preparation phase F100 will be described.

[0053] (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.

[0054] The sequence manager information includes, for example, an identifier and / or an address (e.g., URL (Uniform Resource Locator), IP (Internet Protocol) address, etc.) of the sequence manager 100. Further, the sequence manager information may include arbitrary information.

[0055] (Step S112) The device 300 transmits device information 1101 to the device manager 200. The transmission of this device information 1101 is performed, for example, when the device 300 is connected to a computer network. The device manager 200 registers the received device information 1101 in the device database 1100. If the device information 1101 is already registered in the device database 1100 in advance, this step may be skipped.

[0056] Note that the device information 1101 may be transmitted to the UI 400 and then registered in the device manager 200 via the UI 400.

[0057] 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 or not can be prepared in advance based on information such as the actuator / heater included in the device information 1101.

[0058] Note that the device information 1101 may include information that can identify the facilities 2a to 2d.

[0059] (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.

[0060] The UI information includes, for example, the identifier and / or address of the UI 400. Further, the UI information may include any information.

[0061] Note that the UI information may include information that can identify the facilities 2a to 2d.

[0062] 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.

[0063] [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.

[0064] (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.

[0065] Note that the application execution request sent from the UI 400 to the sequence manager 100 is sent in a set with information capable of specifying facilities 2a to 2d.

[0066] 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.

[0067] (Step S212) The sequence manager 100 transmits to the device manager 200 a declaration of the execution content of the application identified by the application execution request. 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.

[0068] 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.

[0069] Note that the declaration of execution content 1200 may not include the information 1202 on the device. 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.

[0070] Note that in FIG. 10, the information 1202 on the device indicates the model number of the device 300, but it is not limited to this. The information 1202 on the device 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 device 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.

[0071] (Step S214) The device manager 200 allocates the device 300 associated with the device manager 200 to each block included in the execution content declaration based on the information capable of identifying 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. In addition, when the operating state of the device 300 or the connection state to the cloud is managed, the allocation of the operating device 300 may be prohibited.

[0072] In addition, 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 impossible.

[0073] (Step S215) The device manager 200 notifies the device 300 of the result of device allocation. As a result, the plurality of blocks included in the application are transmitted to the allocated device 300, respectively.

[0074] (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.

[0075] Then, the device 300 changes the block based on the check result. As a result, the block is modified so that no problems occur.

[0076] Such pre-execution confirmation processing will be described in more detail with reference to FIG. 11. FIG. 11 shows a flowchart of the pre-execution confirmation processing in Embodiment 1.

[0077] (Step S2165) The device 300 acquires a rule corresponding to the block. The rule defines a range of parameters (hereinafter referred to as a non-permissible range) in which at least one of the actuator 22 and the heater 23 is not allowed to be driven. For example, the device 300 refers to a rule database to acquire a parameter range corresponding to the actuator 22 or the heater 23 driven by the block. The rule database may be included in, for example, the device 300, or may be included in the sequence manager 100 or the device manager 200.

[0078] FIG. 12 shows an example of the rule database in Embodiment 1. In the rule database 1300 of FIG. 12, rules 1301 and 1302 are registered. Each of the rules 1301 and 1302 has a parameter range that defines a non-permissible range. For example, rule 1301 has a range greater than 1000 rpm as a non-permissible range.

[0079] As such a non-permissible range, for example, the internal space of the housing 21, and the range of parameters for the actuator 22 or the heater 23 to reach the endurance temperature are 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 parameters within the non-permissible range, the temperature of the internal space of the housing 21, the actuator 22, or the heater 23 will reach an unacceptable temperature.

[0080] In FIG. 12, each of Rule 1301 and Rule 1302 has a non - allowable range as a parameter range, but it is not limited thereto. For example, each of Rule 1301 and Rule 1302 may have, as a parameter range, a range of parameters (hereinafter referred to as an allowable range) within which the driving of the actuator 22 or the heater 23 is allowed. Even in this case, each of Rule 1301 and Rule 1302 can define a range excluding the allowable range as a non - allowable range. This allowable range is defined as a range within which the actuator 22 or the heater 23 can be driven safely. Furthermore, the allowable range is defined so as to enable the use of parameters in a wide range for the development of various applications.

[0081] For example, the parameters for the safe driving of the actuator 22 or the heater 23 change according to the environment of the device 300 such as the internal space of the housing 21, and the allowable range 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 allowable range with a high proportion of safety consideration is obtained, and the room for the development of 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, it is possible to achieve both safety and the development of various applications.

[0082] The rule is related to the range within which the actuator 22 or the heater 23 can be driven safely. The range within which it can be driven safely may be a range in consideration of the start condition or the end condition of the block. Consider, for example, a first block and a second block that is executed after the first block. Until the start condition of the second block is reached, by executing the first block, a rule (allowable range) 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 allowable range depends on the performance of the actuator 22 or the heater 23, the start condition or the end condition of the block, and the like.

[0083] For example, the allowable range or non-allowable range may be defined by a combination of a plurality of parameters. Specifically, the allowable range or non-allowable range may be a range of output values of a function of a plurality of parameters. For example, when the device 300 is a washing machine, the allowable range or non-allowable range may be a range of output values of a function of a first parameter indicating the water level and a second parameter indicating the rotation speed of the motor. The function can be determined in advance empirically and / or experimentally. Note that instead of the function, the allowable range or non-allowable range may be defined by a set of a plurality of combinations of values of a plurality of parameters.

[0084] Each of rules 1301 and 1302 further has a type, a manufacturer name, and an actuator / heater. Thereby, the device 300 can acquire, from the rule database 1300, a rule corresponding to the actuator 22 or the heater 23 driven by a block. For example, the device 300 refers to the rule database 1300 in FIG. 12 and acquires rule 1301 for the dehydration block in FIG. 10.

[0085] (Step S2166) The device 300 determines whether the parameters included in the block are included in the non-allowable range. Here, if it is determined that the parameters are not included in the non-allowable range (No in S2166), the device 300 skips the subsequent step S2167 and ends the pre-execution confirmation process. On the other hand, if it is determined that the parameters are included in the non-allowable range (Yes in S2166), the device 300 proceeds to the next step S2167.

[0086] (Step S2167) The device 300 changes the block and ends the pre-execution confirmation process. Changing the block means modifying the content of the block, deleting the block, adding new blocks before and after the block, or any combination thereof.

[0087] For example, the device 300 can change a block by changing the parameters of the block to parameters within an allowable range. A specific example of such a block change will be described with reference to FIG. 13.

[0088] FIG. 13 shows an example of a block change in Embodiment 1. In FIG. 13, since the rotation speed parameter in the dehydration block is within a non-allowable range, it has been changed to a parameter within the allowable range (1200 rpm → 1000 rpm).

[0089] Also, for example, the device 300 can change a block by changing the parameters of the block to parameters within an allowable range and adding a new block. A specific example of such a block change will be described with reference to FIG. 14.

[0090] FIG. 14 shows an example of a block change in Embodiment 1. In FIG. 14, since the time parameter in the dehydration block is within a non-allowable range, it has been changed to a parameter within the allowable range (600 s → 300 s), and a stop block and a dehydration block have been added after the dehydration block. For example, by continuously rotating the washing tub at a high speed for a long time in the dehydration process, changing the block that causes an unintended load on the device 300 can reduce the load, add a stop, and perform the dehydration block again, thereby providing an application that can safely execute the functions defined in the application before the change.

[0091] Also, for example, the device 300 can change a block by deleting a block.

[0092] Here, the change of the block for the washing machine has been described, but the block can be changed in the same way for other devices.

[0093] For example, in a microwave oven, when a temperature parameter is within a non-permissible range, it may be changed to a temperature parameter within an acceptable range. Also, when an execution time parameter is within a non-permissible range, the execution time parameter may be changed to an execution time parameter within an acceptable range, and a new block may be added.

[0094] In a rice cooker, when a bottom pan temperature parameter is within a non-permissible range, it may be changed to a bottom pan temperature parameter within an acceptable range. Also, when a duration parameter is within a non-permissible range, the duration parameter may be changed to a duration parameter within an acceptable range, and a new block may be added.

[0095] (Step S217) Device 300 sends the result of the pre-execution check to device manager 200. If a block has been changed, the changed block may be sent to device manager 200.

[0096] (Step S218) Device manager 200 answers the device allocation result to sequence manager 100. Also, if a block has been changed in the pre-execution check, the application including the changed block may be sent to sequence manager 100.

[0097] (Step S220) Sequence manager 100 receives the allocation result notification from device manager 200 and notifies the user via UI 400 that the execution preparation is complete.

[0098] (Step S222) UI400 displays a list of devices on which the application will be executed and presents a graphical user interface (GUI) for receiving user confirmation of application execution. Note that UI400 may accept changes to device allocation from the user. Also, UI400 may not display the list of devices.

[0099] (Step S224) Upon receiving the execution confirmation input from the user, UI400 sends an application start instruction to device manager 200. Device manager 200 transfers the application start instruction to sequence manager 100.

[0100] Note that steps S220, S222, and S224 provide the user with information again before the application is executed, but this may increase the user's workload and thus may be omitted.

[0101] Thus, the pre-application execution phase F200 ends.

[0102] [1.3.3 Application Execution Phase F300] Next, the application execution phase F300 will be described.

[0103] (Step S310) Upon receiving the application start instruction, sequence manager 100 selects the first block (the first block) from among the plurality of blocks included in the application. Then, sequence manager 100 sends an execution instruction for the selected first block to device manager 200.

[0104] Note that when a plurality of blocks are to be operated continuously, sequence manager 100 may send the execution instructions for the plurality of blocks to device manager 200 in a batch.

[0105] Based on the execution instruction of the first block received from the sequence manager 100, the device manager 200 sends the execution instruction of the first block to the device 300 assigned to the first block.

[0106] (Step S312) Upon receiving the execution instruction of the first block, the device manager 200 updates the schedule (scheduled usage time) of each device.

[0107] (Step S314) Upon receiving the execution instruction of the first block, the device 300 executes the first block.

[0108] (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, if an error occurs during the execution of the first block, the device 300 may send error information to the device manager 200. Also, 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.

[0109] (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. Also, when the sequence manager 100 receives event information, it executes processing corresponding to the event information. For example, when the event information includes the output value of the water level sensor, the sequence manager 100 updates the water level parameter for displaying the water level included in the currently executing block.

[0110] (Step S320) The sequence manager 100 sends an execution instruction for the selected second block to the device manager 200.

[0111] 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.

[0112] 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.

[0113] Since the subsequent processing is the same as the processing for the first block (S312 to S318), the illustration and description are omitted. The blocks included in the application are executed in order, and when the execution of the last block is completed, the application execution phase F300 ends.

[0114] Here, although the execution of the 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 the function execution, or to download to the device side the blocks corresponding to the changes before execution. Also, for example, instructions for executing each block may be given to a plurality of devices respectively.

[0115] [1.4 Effects, etc.] As described above, the application including blocks and the rule database provide an environment in which various types of applications can be developed, and enable the 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 a wide variety of applications with a high degree of freedom and the development of a rule database for ensuring safety, and it becomes possible to develop a wide variety of applications at an early stage.

[0116] Also, even after the application is provided, by changing the rule database, it is 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 applications themselves, by defining the rule database independently of the applications, by updating the rule database, it becomes possible to respond to all applications.

[0117] A countermeasure method for maintaining a rule - based error handling by detecting the state when the application is executed without changing the application itself can also be considered. However, this countermeasure method always deals with the situation after an error state occurs, which means allowing a situation where a load is applied to the household appliance or a situation where safety cannot be guaranteed. Therefore, by having a rule database independently of the application and changing the content of the application by referring to the rule data, it is possible to ensure safety.

[0118] The device 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. Each of the plurality of blocks has a parameter for driving the actuator 22 or the heater 23. The control unit 24 refers to a first rule that defines a first parameter range in which driving at least one of the actuator 22 and the heater 23 is not allowed, and changes at least one of the plurality of blocks to change the application. At least one of the plurality of blocks has a parameter included in the first parameter range, and based on the changed application, drives at least one of the actuator 22 and the heater 23.

[0119] 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 the manufacturer but also by third parties, and these applications can be easily executed on the device 20. Further, before the actuator 22 and / or the heater 23 are driven based on the application, a block having a parameter included in an unacceptable first parameter range can be changed. Therefore, it is possible to suppress the actuator 22 and / or the heater 23 from being driven with unacceptable parameters. That is, even if an application developer erroneously gives an instruction to drive the actuator 22 and / or the heater 23 with unacceptable parameters, it is possible to suppress the execution of an application that cannot safely control the device 20. Therefore, even when an application developer creates an application that emphasizes suitability for the user rather than ensuring the safety of the actuator 22 and / or the heater 23, it is possible to improve the safety of the device 20 controlled by the application.

[0120] Also, for example, in the device 20 in the present embodiment, the control unit 24 may change the application by referring to the first rule and changing a parameter included in the first parameter range to a parameter included in a range in which at least one of the actuator 22 and the heater 23 is allowed to be driven.

[0121] According to this, parameters included in the unacceptable first parameter range can be changed to parameters included in the acceptable range. For example, the developer of the application can freely develop the application with a lower 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 execute the block without checking the safety of each application every time, and can prevent the actuator 22 and / or the heater 23 from being driven with unacceptable parameters.

[0122] Also, for example, in the device 20 in the present embodiment, the control unit 24 may change the parameters included in the first parameter range to parameters included in a range where at least one of the actuator 22 and the heater 23 is allowed to be driven by referring to the first rule, and may change the application by adding a new block to the plurality of blocks.

[0123] According to this, parameters included in the unacceptable first parameter range can be changed to parameters included in the acceptable range, so that it is possible to prevent the actuator 22 and / or the heater 23 from being driven with unacceptable parameters. Furthermore, since a new block can also be added, it is also possible to complement the function degraded by the parameter change with the new block.

[0124] Also, for example, in the device 20 in the present embodiment, the control unit 24 may change the application by deleting the block having the parameters included in the first parameter range.

[0125] According to this, blocks having parameters included in the unacceptable first parameter range can be deleted, so that it is possible to prevent the actuator 22 and / or the heater 23 from being driven with unacceptable parameters. For example, when the actuator 22 and the heater 23 cannot execute the parameters specified by the application developer in the first place, by performing deletion, the device can be controlled without confusion. On the other hand, the user may be notified that the deletion has been performed.

[0126] Also, for example, in the device 20 according to the present embodiment, the control unit 24 refers to the first rule and determines whether each of the plurality of parameters included in the plurality of blocks is included in the first parameter range. When it is determined that the parameter is included in the first parameter range, the block having the parameter may be changed.

[0127] According to this, it is possible to more reliably change the block having the parameter included in the unacceptable first parameter range.

[0128] Also, for example, in the device 20 according to the present embodiment, the application may include information on the order in which each of the plurality of blocks is executed and information on the timing at which each of the plurality of blocks is executed. The timing information of each block indicates, for example, the time between the start timing of the block and the start or end timing of another block (for example, the first block).

[0129] According to this, the application can include the order and timing information, and can sequentially make a determination and execute while checking the parameter range of each block.

[0130] For example, in the device 20 according to the present embodiment, the application may include 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 indicated that the present application cannot be developed, or information on the block that cannot be executed may be presented to the developer.

[0131] According to this, 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 reduced priority of considering the safe driving of the actuator 22 and the heater 23. Further, 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.

[0132] For example, in the device 20 according to the present embodiment, the first parameter range may be a range of parameters that cause at least one of the actuator 22 and the heater 23 to reach the endurance temperature.

[0133] 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 it is possible to improve the safety of the device 20 controlled by the application.

[0134] For example, the device 20 according to the present embodiment may include a housing 21 having an internal space, and the first parameter range may be a range of parameters that cause the internal space to reach the endurance temperature.

[0135] According to this, it is possible to suppress the internal space of the housing 21 from reaching the endurance temperature when the application is executed, and it is possible to improve the safety of the device 20 controlled by the application.

[0136] (Modification Example 1 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 thereto. In particular, regarding the pre-execution check (S216) described in detail, the timing and the module that is the subject of the pre-execution check are not limited thereto. Therefore, some modification examples of the sequence diagram of the system 1 will be specifically described with reference to FIGS. 15A to 15E.

[0137] FIG. 15A is a sequence diagram of the system 1 in Modification Example 1 of Embodiment 1. In FIG. 15A, the pre-execution check (S216) is performed by the device 300 immediately before the device 300 receives an execution instruction (S310) and executes a block (S314).

[0138] As a result, the software incorporated in the device 300 can have a simple configuration in which the pre-execution check is performed immediately before the execution of the block. That is, steps S215 and S217 can be omitted. As a result, it is not necessary to incorporate the functions and communication APIs for performing those processes into the device 300, and it is possible to reduce the memory used by the microcomputer mounted on the device 300.

[0139] Note that the result of the pre-execution check may be notified to the device manager 200 and / or the UI 400. For example, when a parameter change or a block execution stop instruction is given as a result of the pre-execution check, the confirmation result may be notified to the device manager 200 or the UI 400.

[0140] FIG. 15B is a sequence diagram of the system 1 in Modification Example 2 of Embodiment 1. In FIG. 15B, 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).

[0141] As a result, the software incorporated in the device 300 may not include the pre-execution check (S216) function. Therefore, the use of the memory of the device 300 can be suppressed, leading to a cost reduction of the device 300.

[0142] Also, in the above-described first embodiment, regarding the block execution (S314) by the device 300, the process flow performed according to the instruction from the sequence manager 100 implemented in the cloud server 10 has been described. However, the form in which the block execution (S314) is performed is not limited to this.

[0143] For example, the notification content from the sequence manager 100 may be stored in the memory within the device 300, and the block may be executed according to 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 an arbitrary timing.

[0144] FIG. 15C is a sequence diagram of the system 1 in the third modification of the first embodiment. In FIG. 15C, in the application execution phase F300, one or more blocks to be executed by the device 300 are notified from the sequence manager 100 to the device 300 (S310C). Then, the device 300 stores the one or more notified blocks in the memory (S311C).

[0145] Thereafter, the device 300 receives an instruction to execute the one or more stored blocks from the user (S312C), and executes the one or more blocks in order from the first block (S314).

[0146] As described above, by saving the block in the device 300, the device 300 can be controlled without communicating between the device manager 200 and the device 300. Therefore, it is possible to reduce 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 example 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.

[0147] Note that also in Modification Example 3, similar to Embodiment 1, the pre-execution check (S216) has an important meaning, but the timing and the module that is the subject of the pre-execution check (S216) are not limited to those shown in FIG. 15C. That is, Modification Example 3 may be combined with Modification Example 1 or 2.

[0148] 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 receives an execution instruction (S312C) and executes the block (S314).

[0149] When 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 are greatly deviated increases. That is, it is conceivable that the block is executed several days, several months, or several 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 when the block is downloaded and when the block is executed. Therefore, in the device 300 where the execution of the block is affected by the degradation level, by performing the pre-execution check by the device 300 immediately before the block is executed, it becomes possible to perform the pre-execution check according to the degradation level.

[0150] FIG. 15E is a sequence diagram of the system 1 in Modification 5 of Embodiment 1. Modification 5 corresponds to a combination of Modification 2 and Modification 3. In Modification 5, as shown in FIG. 15E, the pre-execution confirmation (S216) is directly performed by the device manager 200 when the device manager 200 issues the allocation result notification (S218).

[0151] (Embodiment 2) Next, Embodiment 2 will be described. The main difference between this embodiment and Embodiment 1 above is that the pre-execution confirmation is skipped when the application is authenticated. Hereinafter, this embodiment will be described mainly focusing on the differences from Embodiment 1 above.

[0152] 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 thereof are omitted.

[0153] [2.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 S216A. Therefore, step S216A of the pre-execution confirmation process will be described with reference to FIG. 16.

[0154] FIG. 16 shows a flowchart of the pre-execution confirmation process in Embodiment 2.

[0155] (Step S2161A) The device 300 acquires application authentication information. The application authentication information includes information indicating that the application is authenticated when the application is authenticated.

[0156] The authentication of an application is, for example, a mechanism for ensuring the quality of the application, enabling 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 has been made to the parameter range, information indicating that the application has been authenticated is associated with the application.

[0157] (Step S2162A) Based on the acquired application information, the device 300 determines whether the application has been authenticated. Here, if it is determined that the application has been authenticated (Yes in S2162A), the device 300 skips the subsequent steps S2165 to S2167 and ends the pre-execution confirmation process. On the other hand, if it is determined that the application has not been authenticated (No in S2162A), the device 300 proceeds to the next step S2165.

[0158] [2.2 Effects, etc.] As described above, the device 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 it has been authenticated. Each of the plurality of blocks has parameters for driving the actuator 22 or the heater 23. When the application does not include information indicating that it has been authenticated, the control unit 24 refers to a first rule that defines a first parameter range in which driving of at least one of the actuator 22 and the heater 23 is not permitted, and changes at least one of the plurality of blocks to change the application. At least one of the plurality of blocks has parameters included in the first parameter range, and based on the changed application, drives at least one of the actuator 22 and the heater 23.

[0159] 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 it becomes possible to easily execute various applications developed in this way on the device 20. Further, before the actuator 22 and / or the heater 23 are driven based on the application, a block having a parameter included in an unacceptable first parameter range can be changed. Therefore, it is possible to suppress the actuator 22 and / or the heater 23 from being driven with unacceptable parameters. That is, it is possible to suppress the execution of an application that cannot safely control the device 20, and the safety of the device 20 controlled by the application can be improved. Further, when the application is not authenticated, a process involving changing the application can be performed, and when the application is authenticated, the processing load can be reduced. Therefore, it is not necessary to perform determination processing on the parameter range for all applications, and by performing management by authentication, the processing load can be reduced, a standard for designing the parameter range can be established, and for application developers, a simpler and safer design becomes possible.

[0160] Also, for example, in the device 20 in the present embodiment, when having information indicating that the application is authenticated, it is not necessary to refer to the first rule and change the application.

[0161] According to this, when the application is authenticated, the process for changing the block can be skipped, and the processing load can be reduced.

[0162] (Embodiment 3) Next, Embodiment 3 will be described. In this embodiment, it is mainly different from Embodiment 1 above 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 Embodiment 1 above.

[0163] 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.

[0164] [3.1 Processing] In this embodiment, it is the same as the processing in Embodiment 1 above, except that the pre-execution confirmation step S216 in Embodiment 1 above is replaced by step S216B. Therefore, step S216B of the pre-execution confirmation process will be described with reference to FIG. 17.

[0165] FIG. 17 shows a flowchart of the pre-execution confirmation process in Embodiment 3.

[0166] (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.

[0167] (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.

[0168] (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.

[0169] Here, when 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, when the application maker and the device 300 maker are different (Yes in S2164B), device 300 proceeds to the next step S2165.

[0170] [3.2 Effects, etc.] As described above, the device 20 in the present embodiment includes 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. Each of the plurality of blocks has parameters for driving the actuator 22 or the heater 23, acquires information indicating the maker of the device 20, and when the application maker and the device 20 maker are different, refers to a first rule that defines a first parameter range in which driving of at least one of the actuator 22 and the heater 23 is not allowed, and changes at least one of the plurality of blocks to change the application. At least one of the plurality of blocks has parameters included in the first parameter range, and drives at least one of the actuator 22 and the heater 23 based on the changed application.

[0171] According to this, the actuator and / or the heater 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 it becomes possible to easily execute various applications developed in this way on the device 20. Further, before the actuator 22 and / or the heater 23 are driven based on the application, a block having a parameter included in an unacceptable first parameter range can be changed. Therefore, it is possible to suppress the actuator 22 and / or the heater 23 from being driven with unacceptable parameters. That is, it is possible to suppress the execution of an application that cannot safely control the device 20, and it is possible to improve the safety of the device 20 controlled by the application. Further, when the application maker and the manufacturer of the device 20 are different, it is possible to perform a process involving changing the application, and when the application maker and the manufacturer of the device 20 are the same, it is possible to reduce the processing load.

[0172] (Embodiment 4) Next, Embodiment 4 will be described. In this embodiment, it is mainly different from Embodiment 1 above in that pre-execution confirmation is performed using rules corresponding to the degradation level of the device. Hereinafter, this embodiment will be described centering on the points different from Embodiment 1 above.

[0173] Note that since the hardware configuration and the functional configuration of the system 1 in this embodiment are the same as those in Embodiment 1 above, illustration and description thereof are omitted.

[0174] [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 with step S216C. Therefore, step S216C of the pre-execution confirmation process will be described with reference to FIG. 18.

[0175] FIG. 18 shows a flowchart of the pre-execution confirmation process in Embodiment 4.

[0176] (Step S2163C) 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 apparatus 20. The method for detecting the degradation level is not particularly limited, and may be detected by a sensor, for example.

[0177] (Step S2165C) Device 300 acquires a rule corresponding to the degradation level. For example, device 300 refers to the rule database to acquire a parameter range corresponding to the degradation level of the actuator 22 or the heater 23 driven by the block.

[0178] FIG. 19 shows an example of the rule database in Embodiment 4. In the rule database 1300C of FIG. 19, rules 1301C to 1304C are registered. Each of the rules 1301C to 1304C has a parameter range that defines a non-permissible range. For example, rule 1301C has a range greater than 1000 rpm as a non-permissible range for the motor MM0001 with a degradation level of 0. For example, rule 1302C has a range greater than 800 rpm as a non-permissible range for the motor MM0001 with a degradation level of 1. That is, rule 1302C has a wider non-permissible range and a narrower permissible range than rule 1301C.

[0179] Each of the rules 1301C to 1304C further has a type, a manufacturer name, an actuator / heater, and a degradation level. Thereby, device 300 can acquire a rule corresponding to the degradation level of the actuator 22 or the heater 23 driven by the block from the rule database 1300. For example, when the degradation level of the motor MM0001 driven by the dehydration block in FIG. 10 is 0, device 300 acquires rule 1301C by referring to the rule database 1300C in FIG. 19 for the dehydration 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 generally in proportion to 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 the 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. Each of the plurality of blocks has a parameter for driving the actuator 22 or the heater 23. The control unit 24 acquires deterioration information indicating whether at least one of the actuator 22 and the heater 23 is deteriorated. When the deterioration information indicates that at least one of the actuator 22 and the heater 23 is not deteriorated, the control unit 24 refers to a first rule that defines a first parameter range in which driving of at least one of the actuator 22 and the heater 23 is not permitted, and changes at least one first block included in the plurality of blocks to change the application. The at least one first block has a parameter included in the first parameter range. When the deterioration information indicates that at least one of the actuator 22 and the heater 23 is deteriorated, the control unit 24 refers to a second rule that defines a second parameter range different from the first parameter range in which driving of at least one of the actuator 22 and the heater 23 is not permitted, and changes at least one second block included in the plurality of blocks to change the application. The at least one second block has a parameter included in the second parameter range. Based on the changed application, the control unit 24 drives at least one of the actuator 22 and the heater 23.

[0184] 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 it becomes possible to easily execute various applications developed in this way on the device 20. Further, before the actuator 22 and / or the heater 23 are driven based on the application, a block having a parameter included in an unacceptable first parameter range can be changed. Therefore, it is possible to suppress the actuator 22 and / or the heater 23 from being driven with unacceptable parameters. That is, it is possible to suppress the execution of an application that cannot safely control the device 20, and it is possible to improve the safety of the device 20 controlled by the application. Further, different parameter ranges can be used according to the deterioration information of the device 20, and by using blocks, while considering the performance of a 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 device 20 controlled by the application can be further improved.

[0185] (Embodiment 5) In the above-described Embodiments 1 to 4, the blocks included in an already distributed application are changed before the application is executed. In the present embodiment, the timing at which the blocks included in the application are changed is before the application is distributed, that is, at the stage where the application is developed or produced, and in this respect, the present embodiment is different from the above-described Embodiments 1 to 4. Hereinafter, the present embodiment will be described in detail centering on the points different from the above-described Embodiments 1 to 4. Note that the present embodiment may be the same as the above-described Embodiments 1 to 4 except for the timing of changing the blocks. Also, among the components in the present embodiment, components that are the same as those in Embodiments 1 to 4 are denoted by the same reference numerals as in Embodiments 1 to 4, and detailed description thereof is omitted.

[0186] [5.1 Configuration] FIG. 20 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 a block DB, is a recording medium that stores a block list 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 a 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), a semiconductor memory, or the like. 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 an application developer and generates a sequence or an application including a plurality of functional blocks. 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. 21 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. 21(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 example, block lists 41a to 41e are stored. The block list 41a includes functional blocks FB11 to FB14 for driving an oven range. The block list 41b includes functional blocks FB21 to FB24 for driving a multicooker. These functional blocks may be the same as or similar to the blocks in the first to fourth embodiments.

[0193] As shown in FIG. 21(b), the rule database 42 stores, for each of a plurality of types of devices 20, a rule group consisting of at least one rule applicable to the type of device 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. 22 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. 22(a). This general rule R400 indicates a parameter range (500 rpm, +∞) applicable to each of a plurality of types of washing machines. The plurality of types of washing machines 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 parameter range, which is the rule shown in the general rule R400, is applicable to any washing machine regardless of the manufacturer and model. Note that the parameter range defines a non-permissible range as in Embodiments 1 to 4. For example, the general rule R400 indicates a range greater than 500 rpm as the non-permissible range. Also, the non-permissible range may be, as in Embodiments 1 to 4, for example, the internal space of the housing 21, the range of parameters that cause the actuator 22 or the heater 23 to reach the endurance temperature.

[0198] Also, as shown in Fig. 22(b), the general rule R400 of the washing machine may indicate the parameter ranges applicable to the washing machines of each of a plurality of manufacturers. For example, the general rule R400 indicates the parameter range (800 rpm, +∞) applicable to a plurality of models of washing machines provided by the manufacturer "Company A" and the parameter range (600 rpm, +∞) applicable to a plurality of models of washing machines provided by the manufacturer "Company B".

[0199] [5.2 Processing] Fig. 23 is a sequence diagram of the information processing system 2000.

[0200] (Step S11) First, the development tool 50 installs one or more functional blocks. Specifically, the development tool 50 obtains one or more functional blocks by downloading from the block database 41. For example, the development tool 50 may obtain the block list 41a of the oven range, or may obtain only some of the functional blocks in the block list 41a. Then, the development tool 50 makes the obtained one or more functional blocks available for sequence generation.

[0201] Here, device information corresponding to each functional block stored in the block database 41 may be added to the functional block. This device information indicates, for example, the manufacturer, type, model, or serial number of the device 20 that is driven according to the functional block corresponding to the device information. Therefore, the development tool 50 may download one or more functional blocks based on the device information. For example, the development tool 50 may download one or more functional blocks for driving each device 20 provided by the same manufacturer, or may download one or more functional blocks for driving each device 20 used for warming during cooking.

[0202] (Step S12) Next, the development tool 50 generates a sequence. Specifically, the development tool 50 generates a sequence using the one or more downloaded functional blocks in response to an input operation by the operator on 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 modifies the application based on the rules.

[0203] (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 application providing server 60 based on the content of the sequence in response to an input operation by the operator on the input unit 54, and transmits the transmission information to the application providing server 60. This transmission information may be, for example, JSON (JavaScript Object Notation). As a result, the sequence is transmitted to the application providing server 60 and stored in the application providing server 60 as an application.

[0204] (Step S14) Next, the user of the terminal 30 accesses the application providing server 60 by operating the UI 400 of the terminal 30 and views a list of applications stored in the application providing server 60. Then, the UI 400 selects an application from the list according to the operation by the user and requests the application providing server 60 to download the application.

[0205] (Step S15) When the application 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.

[0206] FIG. 24 is a flowchart showing the overall processing operation of the development tool 50. Specifically, the flowchart shown in FIG. 24 shows the detailed processing operations of steps S11 and S12 in the sequence of FIG. 23.

[0207] (Step S21) The development tool 50 first installs a plurality of function blocks for driving the device 20 such as a washing machine.

[0208] (Step S22) Next, the development tool 50 performs arrangement processing 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. 27. That is, the operator drags and drops one function block among the plurality of function blocks into the selection block area.

[0209] (Step S23) Next, the development tool 50 performs parameter setting processing 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.

[0210] (Step S24) Next, the development tool 50 refers to the 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 rules, that is, outside the allowable range.

[0211] (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, for example, displays, 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 in step S25 is performed, the development tool 50 repeats the processing from step S23.

[0212] Note that when the processing in 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 in 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.

[0213] (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.

[0214] (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 connection correction processing. Then, the development tool 50 repeats the processing from step S22.

[0215] Note that when the processing of step S22 is performed after the automatic connection correction processing is performed in step S27, in step S22, the development tool 50 displays two or more function blocks reconnected by the automatic connection 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 in response to an 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.

[0216] (Step S28) When the development tool 50 determines in step S26 that the connection is permitted (Yes in step S26), it further determines whether or not the generation of the sequence is completed according to the input operation by the operator to 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 to the input unit 54, and arranges it in the above-mentioned selected block area.

[0217] (Step S29) When the development tool 50 determines in step S28 that the generation of the sequence is completed (Yes in step S28), it further determines whether or not the flow of the entire generated sequence is permitted. For example, in the sequence, a second functional block is arranged before or after the first functional block. On the other hand, in the combination rule 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 rule applied to the device 20 such as a washing machine, it is required that a second functional block is 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.

[0218] (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 error prompting processing for prompting an error to the operator, or automatic correction processing for the placement of the functional blocks. Then, the development tool 50 repeats the process from step S22.

[0219] In addition, when the process of automatically correcting the arrangement is performed in step S30 and then the process of step S22 is performed, in that step S22, the development tool 50 displays two or more function blocks rearranged by the automatic correction process in the selection block area. Further, when the processes from step S30 to step S22 are repeated, since the parameters of the function blocks have already been set within the allowable range, the development tool 50 may skip the processes of steps S23 to S25 after step S22. Also, since the connection of the function blocks has already been permitted, the development tool 50 may skip the processes of steps S26 and S27. Furthermore, the development tool 50 may also skip the process of step S28.

[0220] FIG. 25 is a flowchart showing an example of the process of automatically correcting parameters.

[0221] In the example shown in FIG. 24, every time one function block is selected and arranged, determination and automatic correction processing for the parameters of the function block are performed. However, in the present disclosure, without being limited to that example, the development tool 50 may perform each process according to the flowchart shown in FIG. 25.

[0222] (Step S41) The development tool 50 selects M (M is an integer greater than or equal to 1 and less than or equal to N) function blocks from N (N is an integer greater than or equal to 2) function blocks for driving the device 20 such as a washing machine in response to an input operation by the operator to the input unit 54. 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.

[0223] (Step S42) Next, the development tool 50 generates a sequence, that is, an application, by setting parameters for each of the selected M function blocks. That is, the development tool 50 sets, for each of the M selection blocks, parameters for driving the actuator 22 or the heater 23 according to an input operation by the operator to the input unit 54, thereby generating an application including at least M selection blocks.

[0224] (Step S43) Next, if each of the M function blocks is a block for driving a washing machine, the development tool 50 refers to the rules applied to the washing machine. For example, when the application generated in step S42 is applied 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 applied to a washing machine of a predetermined type, the development tool 50 refers to the rule associated with that type of washing machine 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 applied to the controlled device and devices other than the controlled device. Then, the development tool 50 refers to a rule candidate corresponding to the determination result of the application among a plurality of rule candidates that respectively define parameter ranges in which driving of at least one of the actuator 22 and the heater 23 is not allowed, as the above-described rule.

[0225] (Step S44) Then, the development tool 50 determines whether the parameters of each of the M function blocks set in step S42 are included in the non-permissible range shown in the above rules.

[0226] (Step S45) Here, when the development tool 50 determines that the parameter is included in the unacceptable range (Yes in step S44), it changes the functional block having the parameter. That is, the development tool 50 changes the application by changing at least one of the M selection blocks with reference to the rule that defines the parameter range in which at least one of the actuator 22 and the heater 23 is not allowed to drive. Here, at least one of the M selection blocks has a parameter included in the parameter range.

[0227] (Step S46) Then, the development tool 50 outputs the changed application.

[0228] FIG. 26 is a flowchart showing an example of the parameter error presentation process.

[0229] In the example shown in FIG. 24, every time one functional block is selected and arranged, the determination of the parameter of the functional block and the error presentation process are performed. However, in the present disclosure, without being limited to the example, the development tool 50 may perform each process according to the flowchart shown in FIG. 26.

[0230] (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. 25.

[0231] (Step S51) When the development tool 50 determines in step S44 that the parameter is within the unacceptable range (Yes in step S44), it displays an error on the display 53 without automatically changing the function block having the parameter. 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 the rule that defines the parameter range in which at least one of the actuators 22 and the heater 23 is not allowed to drive, and when at least one of the M selection blocks has a parameter included in the above-mentioned parameter range, an error is presented to the operator.

[0232] In addition, the development tool 50 may present an error and show a plurality of countermeasures to the operator, prompting the operator to select a countermeasure. At that time, the development tool 50 may present to the operator the difference in output performance for each of the plurality of countermeasures. Also, at that time, the development tool 50 may present at least two or more countermeasures among the countermeasures by changing the parameter, the countermeasure of deleting the selection block, and the countermeasure including adding a block.

[0233] (Step S52) The operator who sees the error changes the parameter set in step S42 by performing an input operation on the input unit 54 of the development tool 50. Also, when each of the 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 function block. That is, the development tool 50 changes the application by changing at least one of the M selection blocks according to the input operation by the operator who has received the error presentation. Then, the development tool 50 repeatedly executes the process from step S43.

[0234] (Step S46) When the development tool 50 determines in step S44 that the parameter is not included in the non-permissible range (No in step S44), it 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.

[0235] Here, when the process of step S51 is repeated, the development tool 50 may change the error presentation form according to the number of repetitions. For example, when the number of error presentations is K times or more (K is an integer of 2 or more), the development tool 50 presents to the operator the parameter not included in the above-mentioned parameter range. That is, when the number of error presentations is K times or more, the development tool 50 displays on the display 53, as candidates for the parameters set in the function block, the parameters not included in the parameter range, that is, the parameters not included in the non-permissible range. Thereby, the candidate is proposed to the operator who is, for example, an application developer. As a result, the operator who is an application developer who has seen the candidate can easily change the parameter set in step S42 to the candidate by performing an input operation on the input unit 54 of the development tool 50.

[0236] Alternatively, when the number of error presentations is K times or more, the development tool 50 may present to the operator the range of the parameter not included in the above-mentioned parameter range. That is, when the number of error presentations is K times or more, the development tool 50 displays on the display 53 the allowable range of the parameter. Thereby, the operator who is an application developer who has seen the allowable range can easily change the parameter set in step S42 to a parameter within the allowable range by performing an input operation on the input unit 54 of the development tool 50.

[0237] [5.3 Display Example] FIG. 27 is a diagram showing an example of a sequence generation screen.

[0238] 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.

[0239] In the parameter setting area D1, a reception image for receiving the content of the parameters used for the function blocks is displayed.

[0240] In the block list area D2, block lists of each of the plurality of types of devices 20 are displayed. These block lists include the function blocks downloaded from the block database 41 and installed in the development tool 50.

[0241] In the target device area D3, the type name of the device 20 selected from the plurality of types of devices 20 is displayed.

[0242] In the selected block area D4, the function block selected from the block lists displayed in the block list area D2 is arranged and displayed. The function block is displayed as an icon, for example.

[0243] 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, by performing an input operation, 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. 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 and 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. 27, 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.

[0244] When the function block is placed in the selected block area D4, the development tool 50 displays, in the parameter setting area D1, an acceptance image of the parameters used for the function block.

[0245] FIG. 28 is a diagram showing an example of the display of the block list.

[0246] 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. 27. The development tool 50 displays the block list corresponding to the device 20 of the selected type name, as shown in FIGS. 28(a) and (b), for example. For example, as shown in FIG. 28(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 realize the respective functions of baking, range heating, oven, grill, steaming, preheating, and superheated steam. Also, as shown in FIG. 28(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 realize the respective functions of preheating, keeping warm, stir-frying, pressure cooking, cooking, steaming, stewing, mixing, and boiling.

[0247] 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. 27. That is, the development tool 50 performs the process of step S22 shown in FIG. 24, that is, the function block arrangement process, in response to such an input operation.

[0248] FIG. 29 is a diagram showing a display example of the parameter setting area D1.

[0249] The development tool 50 displays, in the parameter setting area D1, a reception image for receiving the content of the parameters included in the function block of the oven range which is the device 20, as shown in FIGS. 29(a) and (b), for example. For the oven range, a function block that realizes the function of the oven and a function block that realizes the function of range heating can be applied.

[0250] For example, the reception image of the parameter setting area D1 shown in Fig. 29(a) is an image for receiving the contents of a plurality of parameters included in the function block of the oven. For example, the function block of the oven includes, as parameters, the set temperature of the oven, the duration, the on / off of steam, and the on / off of two-stage cooking. The operator looks at the reception image and performs an input operation on the input unit 54 to input the respective numerical values of the set temperature and the duration as the contents of the parameter of the set temperature and the parameter of the duration. Further, the operator inputs one of on and off for steam and one of on and off for two-stage cooking as the contents of the parameter of steam and the parameter of two-stage cooking, respectively. The development tool 50 sets each parameter used in the function block of the oven by receiving the contents of each input parameter.

[0251] Similarly, the reception image of the parameter setting area D1 shown in Fig. 29(b) is an image for receiving the contents of a plurality of parameters included in the function block of range heating. For example, the function block of range heating includes, as parameters, the set output of power and the duration. The operator looks at the reception image and performs an input operation on the input unit 54 to input the respective numerical values of the set output and the duration as the contents of the parameter of the set output and the parameter of the duration. The development tool 50 sets each parameter used in the function block of range heating by receiving the contents of each input parameter.

[0252] In this way, the development tool 50 performs the parameter setting process of step S23 shown in Fig. 24 according to the input operation of the operator.

[0253] In addition, when each parameter included in the function block is set in this way, the development tool 50 determines whether or not the parameter is outside the non-permissible range by referring to the rules of the device 20 corresponding to the function block as in step S24 of Fig. 24.

[0254] Figure 30A is a diagram showing an example of the automatic correction process of the function block.

[0255] For example, as shown in Fig. 30A(a), the operator inputs the numerical values of the set temperature and the duration included in the function block of the oven by performing an input operation on the input unit 54. Further, the operator inputs one of on and off for steam and one of on and off for two-stage cooking by performing an input operation on the input unit 54. Thereby, each parameter used in the function block of the oven is set.

[0256] When each parameter is set in this way, the development tool 50 performs the automatic correction process of the function block. First, the development tool 50 refers to the rules of the oven range corresponding to the function block. For example, the development tool 50 specifies the rule group 42a of the oven range in the rule database 42 shown in Fig. 21(b) and refers to any one rule included in the rule group 42a. The rule may be a general rule R100 or a dedicated rule R11 or the like.

[0257] Then, when the development tool 50 determines that the numerical value of the set temperature, which is the input parameter, for example, 350 °C, is included in the parameter range shown in the rule, that is, the numerical value is included in the non-permissible range, the numerical value of the parameter is corrected. For example, when the parameter range is a range exceeding 300 °C, the development tool 50 corrects the numerical value of the set temperature from 350 °C to 300 °C as shown in Fig. 30A(b). At this time, the development tool 50 may correct the parameter of the duration so that the duration becomes longer in order to lower the set temperature. By such correction of the parameter, the function block of the oven is changed. That is, the application including the function block is changed. Thereby, the safety of the oven range can be ensured.

[0258] As described above, in this embodiment, the development tool 50 refers to the rules to determine whether each of the plurality of parameters included in the M selection blocks is within the parameter range. When it is determined that the parameter is within the parameter range, the selection block having the parameter is changed. That is, the development tool 50 refers to the rules and changes the parameter within the parameter range to a parameter within the range in which at least one of the actuator 22 and the heater 23 is allowed to drive, thereby changing the application.

[0259] FIG. 30B is a diagram showing another example of the automatic correction process of the function block.

[0260] In addition, in the automatic correction process of the function block, the development tool 50 may not only correct the parameters but also add a new function block. For example, as shown in FIG. 30B(a), the operator inputs the numerical values of the set temperature and the duration included in the function block of the oven by performing an input operation on the input unit 54. Thereby, each parameter used in the function block of the oven is set.

[0261] When the development tool 50 determines that the numerical value of the input parameter, i.e., the duration, is within the parameter range indicated by the rule, it modifies the numerical value of that parameter. In the example of (a) in FIG. 30B, the numerical value of the duration is 120 minutes. That is, when the development tool 50 determines that 120 minutes is within the non - allowable range, it modifies the 120 minutes. Specifically, when the parameter range is greater than 60 minutes, the development tool 50 modifies the numerical value of the duration from 120 minutes to 60 minutes, as shown in (b) of FIG. 30B. At this time, in order to shorten the duration, the development tool 50 adds, for example, a stop function block shown in (c) of FIG. 30B and an oven function block shown in (d) of FIG. 30B. The added stop function block is a block that stops the operation of the oven range for 10 minutes. The added oven function block is a block for compensating for the oven duration that will not be implemented due to the shortening of the duration from 120 minutes to 60 minutes as described above. That is, in this example, the added oven function block includes the set temperature "300 °C" and the duration "60 minutes" as parameters respectively. Thereby, the safety of the oven range can be ensured.

[0262] In this way, in this embodiment, the development tool 50 may modify the application by referring to the rule, changing the parameter within the parameter range to a parameter within the range where at least one of the actuator 22 and the heater 23 is allowed to drive, and adding a new block to the M selection blocks.

[0263] Also, similar to the above - mentioned Embodiments 1 - 4, when a parameter is set as shown in (a) of FIG. 30A and (a) of FIG. 30B, the development tool 50 may delete the oven function block having that parameter. That is, the development tool 50 changes the application by deleting the selection block having the parameter within the parameter range. Thereby, the safety of the oven range can also be ensured.

[0264] FIG. 31 is a diagram showing an example of error presentation processing.

[0265] For example, as shown in FIG. 31(a), the operator inputs numerical values of the set temperature and the duration included in the function block of the oven by performing an input operation on the input unit 54. Thereby, each parameter used in the function block of the oven is set.

[0266] Here, the development tool 50 first refers to the rules of the oven range corresponding to the function block. Then, when the development tool 50 determines that the numerical value of the set temperature, which is the input parameter, is included in the parameter range indicated by the rules, it performs error presentation processing. In the example of FIG. 31, the numerical value of the set temperature is 350°C. That is, when the development tool 50 determines that 350°C is included in the non-permissible range, it performs error presentation processing. Specifically, as shown in FIG. 31(a), the development tool 50 displays an error message E1 in the parameter setting area D1, for example. This error message E1 states that the temperature is too high. Such error presentation processing is performed, for example, in step S51 of FIG. 26.

[0267] Also, when the development tool 50 determines that the numerical value of the set temperature, which is the input parameter, is included in the non-permissible range, it may display an error message E2 in the parameter setting area D1, for example, as shown in FIG. 31(b). This error message E2 states candidates for the set temperature, for example, 300°C. Such error presentation processing may be performed, for example, in step S51 of FIG. 26 when the error is presented K or more times as described above.

[0268] Further, when the development tool 50 determines that the numerical value of the set temperature, which is the input parameter, is included in the unacceptable range, as shown in FIG. 31(c), for example, an error message E3 may be displayed in the parameter setting area D1. This error message E3 indicates the allowable range of the set temperature, for example, 100 to 300°C. This allowable range is the acceptable range of parameters such as the set temperature. Such error prompting processing may be performed, for example, in step S51 of FIG. 26, when the error is repeatedly prompted K or more times as described above.

[0269] By presenting such an error, the operator, who is the application developer, can easily reset the out-of-range parameter to an in-range parameter. Therefore, the safety of the oven range can be ensured.

[0270] In the above example, error messages E1 to E3 are displayed, but the form of presenting the error is not limited to these examples and may be in any form. For example, the error may be presented by voice.

[0271] FIG. 32 is a diagram showing an example of error presentation and presentation of a plurality of countermeasures.

[0272] In the example of Fig. 32(a), the set temperature is 300 °C, and the value of its duration is 120 minutes. When the development tool 50 refers to the rule regarding the upper limit of the duration when the set temperature is 300 °C and determines that 120 minutes is included in the non-permissible range, it presents a countermeasure to correct the 120 minutes. That is, the development tool 50 presents the error E1 shown in Fig. 32(a) and the countermeasures and impacts shown in Figs. 32(b) and 32(c). Specifically, for example, as shown in Fig. 32(b), the development tool 50 presents Countermeasure 1 of correcting the duration value from 120 minutes to 60 minutes, adding a block to stop the operation of the oven range for 10 minutes, and a block to compensate for the duration of the oven that will not be implemented. Also, when the development tool 50 refers to the rule indicating the upper limit value of the set temperature at a duration of 120 minutes and determines that 300 °C is included in the non-permissible range, it presents a countermeasure to correct the 300 °C. Specifically, for example, as shown in Fig. 32(c), the development tool 50 presents Countermeasure 2 of lowering the set temperature value to 200 °C.

[0273] In this way, by presenting multiple countermeasures simultaneously with the error prompt, the operator can be saved the trouble of changing the parameters.

[0274] Also, when presenting a plurality of countermeasures, the development tool 50 may also present the combined effects on the application by those countermeasures. Alternatively, when presenting a plurality of countermeasures, the development tool 50 may present the effects on the food ingredients heated by the oven. For example, as shown in (b) of FIG. 32, when countermeasure 1 is presented, the development tool 50 presents effect 1. As described above, countermeasure 1 is a countermeasure that modifies the numerical value of the duration from 120 minutes to 60 minutes, adds a block for stopping the operation of the oven range for 10 minutes, and a block for compensating for the duration of the oven that will no longer be executed. When such countermeasure 1 is presented, the development tool 50 notifies the event that the total time of the oven (i.e., the baking time) increases while the amount of heat applied to the food ingredients is the same, as the above-mentioned effect 1. Also, as shown in (c) of FIG. 32, when countermeasure 2 of reducing the numerical value of the set temperature to 200 °C is presented, the development tool 50 notifies the possibility that the amount of heat applied to the food ingredients decreases, thereby changing the shape and texture of the food ingredients, as the above-mentioned effect 2. Also, the development tool 50 may present the countermeasure of deleting the function block shown in (a) of FIG. 32, that is, the selection block having parameters included in the non-permissible range, and the effect indicating the event that the oven is not executed on the food ingredients due to the deletion.

[0275] That is, in the present embodiment, the development tool 50 presents a plurality of countermeasures for errors, and changes the application by changing at least one of the above-described M selection blocks according to an input operation by an operator who has received the presentation of the error and the plurality of countermeasures. Specifically, the plurality of countermeasures include at least two of a countermeasure for changing a parameter included in a parameter range, a countermeasure for adding a new block to the M selection blocks, and a countermeasure for deleting a selection block having a parameter included in the parameter range. Further, the development tool 50 presents the influence on an object acted on by driving of the actuator 22 or the heater 23, or the influence on the application, when each of the plurality of countermeasures is performed. Note that the object acted on by driving of the actuator 22 or the heater 23 is, in the example of FIG. 32, food heated by the heater 23. Further, information on the error, the countermeasures, and the influence may be shown in association with the parameter range in the rules.

[0276] In this way, by presenting the plurality of countermeasures and the influence on the application thereby at the same time, when the operator selects a countermeasure, the operator can intuitively select in accordance with the intention of creating the application.

[0277] Note that, in the case of a countermeasure by only changing a parameter or a countermeasure for deleting a selection block, an influence on the performance of the application is likely to occur. On the other hand, a countermeasure by a change including addition of a block can relatively suppress the influence on the performance of the application, but it is assumed that items of influence on the application differ depending on the type of countermeasure, such as an influence on the execution time of the application. On the other hand, it is assumed that the operator has various priorities depending on the situation, such as when the operator wants to minimize the influence on the performance of the application or when the operator wants to change the execution time of the application.

[0278] That is, in order to present appropriate countermeasures for the operator even in various situations, when presenting multiple countermeasures, it is advisable to present at least two or more countermeasures among the countermeasures by changing parameters, the countermeasure of deleting the selection block, and the countermeasure including adding blocks. For example, as shown in the example of FIG. 32, it is advisable to present both the countermeasure by only changing parameters and the countermeasure by the change including adding blocks. By doing so, when the operator selects a countermeasure, the operator can select an option that satisfies the intention of creating an application.

[0279] [5.4 Effects, etc.] As described above, in this embodiment, an environment in which a wide variety of and safe applications can be developed can be provided by the application including blocks and the 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 the application freely developed in that environment. As a result, for example, it becomes possible to create in parallel the development of a wide variety of applications with high degrees of freedom and the development of a rule database for ensuring safety, and it is possible to develop a wide variety of and safe applications at an early stage.

[0280] Also, 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 is also 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 wide variety of applications themselves, by updating the rule database, it becomes possible to respond to all applications.

[0281] 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 device to be controlled, in response 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) for each of the M selection blocks, by setting a parameter for driving the actuator 22 or the heater 23 in response to an input operation by an operator, an application including at least the M selection blocks is generated, (c) referring to a rule defining a parameter range in which driving of at least one of the actuator 22 and the heater 23 is not allowed, the application is changed by changing at least one of the M selection blocks, and at least one of the M selection blocks has a parameter included in the parameter range, (d) the changed application is output.

[0282] 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 by the device 20. Further, at the time of this development, blocks having parameters included in an unacceptable parameter range can be automatically changed. Therefore, it is possible to suppress the actuator 22 and / or the heater 23 from being driven with unacceptable parameters. That is, even if an operator who is an application developer erroneously sets unacceptable parameters for the actuator 22 and / or the heater 23, 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 that application can be ensured and the safety can be improved.

[0283] Also, in the above (c), with reference to the rules, the application may be changed by changing the parameters included in the parameter range to parameters included in a range in which at least one of the actuator 22 and the heater 23 is allowed to be driven.

[0284] According to this, parameters included in an unacceptable parameter range can be automatically changed to parameters included in an acceptable range. Therefore, for example, an operator who is an application developer can relatively freely generate an application in which the actuator 22 and the heater 23 are safely driven without being aware of the acceptable range of the parameters.

[0285] Also, in the above (c), referring to the rule, the parameters included in the parameter range are changed to parameters included in the range where at least one of the actuator 22 and the heater 23 is allowed to be driven, and the application may be changed by adding a new block to the M selection blocks.

[0286] According to this, since the parameters included in the unacceptable parameter range can be changed to parameters included in the acceptable range, it is possible to prevent the actuator 22 and / or the heater 23 from being driven with unacceptable parameters. Furthermore, since a new block can also be added, it is possible to complement the functions degraded by the parameter change with the new block.

[0287] Also, in the above (c), the application may be changed by deleting the selection block having the parameter included in the parameter range.

[0288] According to this, since the block having the parameter included in the unacceptable parameter range can be deleted, it is possible to prevent the actuator 22 and / or the heater 23 from being driven with unacceptable parameters. For example, when the actuator 22 and the heater 23 cannot execute the parameters set by the application developer in the first place, by performing the deletion, the device, which is the control target device, can be controlled without confusion. On the other hand, the operator may be notified that the deletion has been made.

[0289] Also, in the above (c), referring to the rule, it is determined whether each of the plurality of parameters included in the M selection blocks is included in the parameter range, and when it is determined that the parameter is included in the parameter range, the selection block having the parameter may be changed.

[0290] According to this, it is possible to more reliably change the block having the parameter included in the unacceptable parameter range.

[0291] In addition, the application may include information on the order in which each of the M selection blocks is to be executed and information on the timing at which each of the M selection blocks is to be executed. The timing information for each selection block indicates, for example, the time between the start timing of the selection block and the start or end timing of another selection block (e.g., the first selection block).

[0292] According to this, the application can include the order and timing information, and can sequentially make a determination and execute while checking the parameter range of each selection block.

[0293] Moreover, the parameter range is a range of parameters that causes at least one of the actuator 22 and the heater 23 to reach the endurance temperature.

[0294] 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 it is possible to improve the safety of the device 20 controlled by the application.

[0295] In addition, the device 20, which is the device to be controlled, includes a housing 21 having an internal space, and the parameter range may be a range of parameters that causes the internal space to reach the endurance temperature.

[0296] According to this, it is possible to suppress the internal space of the housing 21 from reaching the endurance temperature when the application is executed, and it is possible to improve the safety of the device 20 controlled by the application.

[0297] Further, 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 applicable to the device to be controlled and devices other than the device to be controlled, and among a plurality of rule candidates that respectively define parameter ranges in which driving of at least one of the actuator 22 and the heater 23 is not allowed, a rule candidate corresponding to the determination result of the application may be referred to as a rule.

[0298] According to this, variations of the application, such as a dedicated application and a general-purpose application, can be increased. Further, since rules suitable for those variations are referred to, for each of those variations, the application of that variation can be appropriately changed.

[0299] 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, as selection blocks, each of M (M is an integer of 1 or more and N or less) blocks 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 the device to be controlled, according to an input operation by an operator; (b) generates an application including at least the M selection blocks by setting, according to an input operation by the operator, parameters for driving the actuator 22 or the heater 23 for each of the M selection blocks; (c) refers to a rule that defines a parameter range in which driving of at least one of the actuator 22 and the heater 23 is not allowed, and presents an error to the operator if at least one of the M selection blocks has a parameter included in the parameter range; (d) changes the application by changing at least one of the M selection blocks according to an input operation by the operator who has received the presentation of the error; and (e) outputs the changed application.

[0300] According to this, when an operator who is an application developer accidentally sets unacceptable parameters for the actuator 22 and / or the heater 23, 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.

[0301] In addition, 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 a plurality of countermeasures may be presented simultaneously with the presentation of an error.

[0302] According to this, the operator who has confirmed the error presentation can reduce the trouble of changing the parameters.

[0303] In addition, 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 while presenting a countermeasure against an error, the influence on the application by implementing the countermeasure may be presented simultaneously.

[0304] According to this, when the operator selects a countermeasure, the operator can intuitively select in accordance with the intention of creating the application.

[0305] In addition, 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 when presenting a countermeasure against an error, at least two or more countermeasures among a countermeasure by changing a parameter, a countermeasure by deleting a selection block, and a countermeasure including adding a block are preferably presented.

[0306] According to this, when the operator selects a countermeasure, the operator can select an option that satisfies the intention of creating the application.

[0307] Also, in this information processing method, after the above (d), the above (c) and (d) are repeatedly executed, and (f) when the number of times of error presentation is K times or more (K is an integer of 2 or more), a parameter not included in the parameter range may be presented to the operator.

[0308] According to this, when the error presentation is repeated, a parameter not included in the parameter range can be presented to the operator as a candidate for an appropriate parameter. As a result, the operator can easily change the parameter included in the parameter range to a parameter not included in the parameter range, and can more easily generate a safe application.

[0309] Also, in this information processing method, after the above (d), the above (c) and the above (d) are repeatedly executed, and (f) when the number of times of error presentation is K times or more (K is an integer of 2 or more), the range of parameters not included in the parameter range may be presented to the operator.

[0310] According to this, when the error presentation is repeated, the range of parameters not included in the parameter range is presented to the operator. As a result, the operator can easily change the parameter included in the parameter range to a parameter not included in the parameter range, and can more easily generate a safe application.

[0311] (Embodiment 6) In the above-described Embodiments 1 to 4, blocks (i.e., parameters, etc.) included in the application are changed. In this embodiment, the application is changed by changing the order, combination, etc. of the blocks included in the application. That is, in this embodiment, the mode of change is different from that of Embodiments 1 to 4. Hereinafter, this embodiment will be described in detail focusing on the differences from the above-described Embodiments 1 to 4. Note that this embodiment may be the same as Embodiments 1 to 4 except for the mode of change. Also, among the components in this embodiment, components identical to those in Embodiments 1 to 4 are denoted by the same reference numerals as in Embodiments 1 to 4, and detailed description thereof is omitted.

[0312] The hardware configuration, functional configuration, and basic processing of the system 1 in this embodiment are the same as the configurations and processing shown in FIGS. 1 to 10 in Embodiment 1.

[0313] The pre-execution confirmation process in this embodiment will be described in more detail with reference to FIG. 33. FIG. 33 shows a flowchart of the pre-execution confirmation process in Embodiment 6. Note that the pre-execution confirmation process is the process of step S216 shown in FIG. 8.

[0314] (Step S2165) The 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, the 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, the device 300, or may be included in the sequence manager 100 or the device manager 200.

[0315] As rules, for example, a rule can be used that prohibits the first block from being executed before the second block is executed. More specifically, as a rule, for example, a rule can be used that prohibits the first block from being executed from the start of the application until before the second block is executed. 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.

[0316] Also, as rules, for example, a rule can be used that prohibits the third block from not being executed after the second block is executed. More specifically, as a rule, for example, a rule can be used that prohibits the third block from not being executed from after the second block is executed until the end of the application. 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 ventilation 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.

[0317] FIG. 34 shows an example of a rule database in Embodiment 6. In the rule database 1300 of FIG. 34, 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 ventilation block is not executed after the drying block.

[0318] As such combinations of two or more predetermined blocks, for example, combinations of blocks for preventing the internal space of the housing 21, the actuator 22, or the heater 23 from reaching the endurance temperature are 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 a combination of two or more predetermined blocks is executed to prevent the internal space of the housing 21, the actuator 22, or the heater 23 from reaching the endurance temperature.

[0319] Note that in FIG. 34, each of Rule 1301 and Rule 1302 shows a combination of two blocks, but is not limited thereto. For example, in addition to a combination of two blocks, the rule may indicate the range of at least one parameter of the two blocks. Furthermore, the rule is defined to enable the use of blocks in a wide range for the development of various applications.

[0320] 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 becomes a rule with a high proportion of safety consideration, and the room for development of 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.

[0321] The rules relate to the range within which the actuator 22 or the heater 23 can be safely driven. The range within which it can be safely driven may be a range taking into account the start condition or the end condition of the block. Consider, for example, a first block and a second block executed after the first block. Until the start condition of the second block is reached, rules can be set assuming a case where a load that affects the safety of the actuator 22 or the heater 23 is applied by executing the first block. That is, the rules depend on the performance of the actuator 22 or the heater 23, the start condition or the end condition of the block, and the like.

[0322] Each of Rule 1301 and Rule 1302 further has a type and a manufacturer name. Thereby, the device 300 can acquire, from the rule database 1300, the rule corresponding to the actuator 22 or the heater 23 driven by the block. For example, the device 300 refers to the rule database 1300 in FIG. 34 and acquires Rule 1301 and Rule 1302 for WM-0001.

[0323] (Step S2166) The device 300 determines whether or not a plurality of blocks included in the application comply with the rules.

[0324] 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, 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 first 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 first block only after 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 first block before 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 first block or 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 includes the first 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.

[0325] 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.

[0326] 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.

[0327] (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 the plurality of blocks, or (iv) any combination thereof. These methods of changing the application may be defined in the rules.

[0328] A specific example of such an application change will be described with reference to FIGS. 35 and 36.

[0329] FIG. 35 shows an example of an application change in Embodiment 6. In FIG. 35, a drainage block (the first block) is added before the dehydration block (the second block). Thereby, water can be discharged from inside the washing machine before the dehydration block is executed, and safe driving of the actuator 22 during dehydration can be realized.

[0330] FIG. 36 shows an example of an application change in Embodiment 6. In FIG. 36, 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 burned by the washing machine, and the safety of the washing machine can be improved.

[0331] 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.

[0332] 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 makes it possible to smoothly perform steam irradiation during the execution of the steaming block.

[0333] 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 makes it possible to smoothly perform 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 can accelerate the execution of the next block.

[0334] After the application is changed, the system 1 in the present embodiment executes the processing after step S217 shown in FIG. 8, similar to Embodiment 1.

[0335] [6. Effects, etc.] As described above, the application including blocks and the rule database provide an environment in which various types of 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 a wide variety of applications with a high degree of freedom and the development of a rule database for ensuring safety, and it becomes possible to develop a wide variety of applications at an early stage.

[0336] Also, even after the application is provided, by changing the rule database, it becomes possible to change the application to ensure higher safety. Also, even when it becomes necessary to improve a situation not assumed by the manufacturer in advance, without changing the various applications themselves, by defining the rule database independently of the applications and updating the rule database, it becomes possible to respond to all applications.

[0337] A countermeasure method of holding the error handling rule database by detecting the state when the application is executed without changing the application itself can also be considered. However, this countermeasure method always deals with the situation after an error state occurs, which means allowing a situation where a load is applied to the household appliance or a situation where safety cannot be ensured. Therefore, by having a rule database independently of the application and changing the content of the application by referring to the rule data, it is possible to ensure safety.

[0338] The device 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 not 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 application is changed, and based on the changed application, at least one of the actuator 22 and the heater 23 is driven.

[0339] 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 by the device 20. Furthermore, when the application complies with 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, the application can be changed before the actuator 22 and / or the heater 23 is 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 an 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 an 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.

[0340] Also, for example, in the apparatus 20 in the present embodiment, the control unit 24 may change the application by (a) adding a new block to a plurality of blocks, (b) changing the order of a plurality of blocks, or (c) deleting any one of the plurality of blocks.

[0341] 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 to be executed, a predetermined two or more 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, and 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.

[0342] 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 to be executed, a predetermined two or more 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, and 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.

[0343] 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 to be executed, a predetermined two or more 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, and 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.

[0344] According to these, before the application is executed, by adding a new block, changing the order of 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.

[0345] Also, for example, in the device 20 in 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. When the application includes the second block and does not include the third block after the second block, the control unit 24 may change the application by adding the third block after the second block.

[0346] Also, for example, in the device 20 in 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. When the application includes the second block and the third block and does not include the third block after the second block, 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.

[0347] 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. The control unit 24 may modify the application by deleting the second block when the application includes the second block and does not include the third block after the second block.

[0348] 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 of 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.

[0349] For example, in the apparatus 20 according to the present embodiment, the rule may be a rule for ensuring that two or more predetermined blocks are executed in combination so that at least one of the actuator 22 and the heater 23 does not reach the endurance temperature.

[0350] 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 it is possible to improve the safety of the apparatus 20 controlled by the application.

[0351] For example, the apparatus 20 according to the present embodiment may include a housing 21 having an internal space. The first rule may be a rule for ensuring that two or more predetermined blocks are executed in combination so that the internal space does not reach the endurance temperature.

[0352] 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.

[0353] (Embodiment 7) Next, Embodiment 7 will be described. In this embodiment, it is mainly different from Embodiment 6 above in that the pre-execution confirmation is skipped when the application is authenticated. Hereinafter, this embodiment will be described centering on the points different from Embodiment 6 above.

[0354] Note that since the hardware configuration and functional configuration of the system 1 in this embodiment are the same as those in Embodiment 6 above, the illustration and description thereof are omitted.

[0355] [7.1 Processing] In this embodiment, the processing is the same as that of Embodiment 6 above, except that step S216 of the pre-execution confirmation in Embodiment 6 is replaced by step S216A. Therefore, step S216A of the pre-execution confirmation process will be described with reference to FIG. 37.

[0356] FIG. 37 shows a flowchart of the pre-execution confirmation process in Embodiment 7.

[0357] (Step S2161A) The device 300 acquires application authentication information. The application authentication information includes information indicating that the application is authenticated when the application is authenticated.

[0358] The authentication of an 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 has been made to the parameter range, information indicating that the application has been authenticated is associated with the application.

[0359] (Step S2162A) Based on the acquired application information, the device 300 determines whether the application has been authenticated. Here, if it is determined that the application has been authenticated (Yes in S2162A), the device 300 skips the subsequent steps S2165 to S2167 and ends the pre-execution confirmation process. On the other hand, if it is determined that the application has not been authenticated (No in S2162A), the device 300 proceeds to the next step S2165.

[0360] [7.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 whether it has been authenticated. When the application does not include information indicating that it has been authenticated, referring to a rule indicating that a combination of two or more predetermined blocks is to be executed, 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.

[0361] According to this, the same effects as those in Embodiment 6 can be achieved. Furthermore, when the application is not authenticated, processing involving changes to the application can be performed, and when the application is authenticated, the processing load can be reduced. Therefore, it is not necessary to perform determination processing for all combinations of blocks for an application, and through management by performing authentication, while reducing the processing load, design criteria regarding combinations of blocks can be established, and for application developers, easier and safer design becomes possible.

[0362] Also, for example, in the apparatus 20 in the present embodiment, when having information indicating that the application is authenticated, it is not necessary to refer to the first rule and it is not necessary to change the application.

[0363] According to this, when the application is authenticated, the processing for changing the block can be skipped, and the processing load can be reduced.

[0364] (Embodiment 8) Next, Embodiment 8 will be described. In this embodiment, it is mainly different from Embodiment 6 above in that the pre-execution confirmation is skipped when the application producer and the apparatus producer are the same. Below, this embodiment will be described centering on the points different from Embodiment 6 above.

[0365] Note that since the hardware configuration and functional configuration of the system 1 in this embodiment are the same as those in Embodiment 6 above, illustration and description are omitted.

[0366] [8.1 Processing] In this embodiment, it is the same as the processing in Embodiment 6 above, except that step S216 of the pre-execution confirmation in Embodiment 6 above is replaced with step S216B. Therefore, step S216B of the pre-execution confirmation process will be described with reference to FIG. 38.

[0367] FIG. 38 shows a flowchart of the pre-execution confirmation process in Embodiment 8.

[0368] (Step S2161B) The device 300 acquires application maker information. The application maker information indicates the maker of the application. The maker means a company, an individual, a group, etc. that made the application, and may also be called a developer or an author.

[0369] (Step S2163B) The device 300 acquires device manufacturer information. The device manufacturer information indicates the manufacturer of the device. The manufacturer means a company, an individual, a group, etc. that made the device 300 (i.e., the device 20), and may also be called a manufacturer.

[0370] (Step S2164B) The device 300 determines whether the maker of the application is different from the maker of the device 300. If the maker of the application is an individual and the maker of the device 300 is a company, the device 300 may determine that the maker of the application and the maker of the device 300 are the same if the company to which the maker of the application belongs matches the maker of the device 300. Also, the device 300 may determine that the maker of the application and the maker of the device 300 are the same if the maker of the application is the outsourcing destination of the maker of the device 300.

[0371] Here, if the maker of the application and the maker of the device 300 are the same (No in S2164B), the device 300 skips the subsequent steps S2165 to S2167 and ends the pre-execution confirmation process. On the other hand, if the maker of the application and the maker of the device 300 are different (Yes in S2164B), the device 300 proceeds to the next step S2165.

[0372] [8.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 the manufacturer. The control unit 24 also acquires information indicating the manufacturer of the apparatus 20. When the manufacturer of the application is different from the manufacturer of the apparatus 20, the control unit 24 refers to a rule indicating that a predetermined two or more blocks are to be executed in combination, and when a plurality of blocks included in the application do not conform to the rule, the control unit 24 changes the application and drives at least one of the actuator 22 and the heater 23 based on the changed application.

[0373] According to this, the same effect as in Embodiment 6 can be realized. Further, when the manufacturer of the application is different from the manufacturer of the apparatus 20, processing involving changing the application can be performed, and when the manufacturer of the application is the same as the manufacturer of the apparatus 20, the processing load can be reduced.

[0374] (Embodiment 9) Next, Embodiment 9 will be described. In this embodiment, the main difference from Embodiment 6 described above is that pre-execution confirmation is performed using rules corresponding to the degradation level of the apparatus. Hereinafter, this embodiment will be described centering on the differences from Embodiment 6.

[0375] Note that since the hardware configuration and functional configuration of the system 1 in this embodiment are the same as those in Embodiment 6, illustration and description thereof are omitted.

[0376] [9.1 Processing] In this embodiment, the processing is the same as that in Embodiment 6 except that step S216 of the pre-execution confirmation in Embodiment 6 is replaced with step S216C. Therefore, step S216C of the pre-execution confirmation process will be described with reference to FIG. 39.

[0377] Figure 39 shows a flowchart of the pre-execution confirmation process in Embodiment 9.

[0378] (Step S2163C) 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 apparatus 20. The method for detecting the degradation level is not particularly limited, and for example, it may be detected by a sensor.

[0379] (Step S2165C) Device 300 acquires a rule corresponding to the degradation level. For example, device 300 refers to a rule database to acquire a rule corresponding to the degradation level of the actuator 22 or the heater 23 driven by the block.

[0380] Note that the items for determining the degradation level are, for example, the number of uses, 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, the rule is determined such that the degradation level increases as the value corresponding to the item increases.

[0381] 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 the 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 at the time of 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.

[0382] The degree of reproducibility of the input and output of the actuator 22 and / or the heater 23 is determined with reference 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 given input and the output value defined in the relationship is used.

[0383] [9.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 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.

[0384] According to this, effects similar to those of Embodiment 6 can be achieved. Furthermore, the rule corresponding to the deterioration information of the device 20 can be used, and by using blocks, while considering the performance of the device that deteriorates over time, the driving instruction from the application side to the actuator 22 and / or the heater 23 is executed, and the safety of the device 20 controlled by the application can be further improved.

[0385] (Embodiment 10) In Embodiments 6 to 9 described above, the blocks included in an already distributed application are changed before the application is executed. In this 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, this embodiment is different from Embodiments 6 to 9 described above. Hereinafter, this embodiment will be described in detail centering on the points different from Embodiments 6 to 9 described above. Note that this embodiment may be the same as Embodiments 6 to 9 described above except for the timing of changing the application. Also, among the components in this embodiment, components identical to those in Embodiments 6 to 9 are denoted by the same reference numerals as in Embodiments 6 to 9, and detailed descriptions thereof are omitted.

[0386] The basic configurations such as the hardware, block database, and rule database of the information processing system 2000 in this embodiment are the same as the basic configurations shown in FIGS. 20 and 21 in Embodiment 5.

[0387] FIG. 40 is a diagram showing an example of a general rule included in the rule database 42 in this embodiment.

[0388] The rule group 42d of the washing machine stored in the rule database 42 includes, for example, the general rule R400 shown in Fig. 40(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 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 above-described Embodiments 6 to 9. Hereinafter, a combination of a predetermined two or more blocks is simply referred to as a combination, and the requirements regarding the combination 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.

[0389] 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.

[0390] 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 the model.

[0391] Also, as shown in FIG. 40(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".

[0392] Thus, similar to Embodiments 6 to 9, 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. The predetermined two or more blocks include the first block and the 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 6 to 9, a block for setting an environment in which the second block can be executed.

[0393] Alternatively, the predetermined two or more blocks include the second block and the 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 6 to 9, a block for returning the environment changed by the execution of the second block to the environment before the execution of the second block.

[0394] Note that, similar to Embodiments 6 to 9, the rule in this embodiment may be a rule for ensuring that a predetermined two or more blocks are executed in combination so as not to reach the endurance temperature of, for example, the internal space of the housing 21, the actuator 22, or the heater 23.

[0395] In addition, the sequence of the information processing system 200 and the overall processing operations of the development tool 50 in the present embodiment are the same as the sequence and processing operations shown in FIGS. 23 and 24 of Embodiment 5.

[0396] Note that 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, whether a plurality of functional blocks included in the application comply with the rules. Then, if the plurality of functional blocks comply with 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 comply with 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-described 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 complies with the rules is the same as in Embodiments 6 to 9 described above.

[0397] FIG. 41 is a flowchart showing an example of the automatic correction process of the arrangement in step S30 of FIG. 24.

[0398] (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) functional blocks from N (N is an integer of 2 or more) functional blocks for driving the device 20 such as a washing machine. That is, the development tool 50 selects each of the M functional blocks as a selection block from the N functional blocks for driving at least one of the actuator 22 and the heater 23 provided in the device 20 which is the control target device, in response to the input operation by the operator to the input unit 54.

[0399] (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-described 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 according to an input operation to the input unit 54 by the operator. 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.

[0400] (Step S43) Next, if each of the M function blocks is a block for driving a washing machine, the development tool 50 refers to the rules applied to the washing machine. For example, when the application generated in step S42 is applied to a plurality of types of washing machines, the development tool 50 refers to the general rule R400. Further, when the application generated in step S42 is applied 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 applied 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 a 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.

[0401] (Step S44) Then, the development tool 50 determines whether the M function blocks set in step S42 comply with the above-described rules. That is, the development tool 50 determines whether the M function blocks included in the application comply with the combination rules included in the rules.

[0402] (Step S45) Here, when the development tool 50 determines that its M functional blocks comply with the rule (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 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 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 rule.

[0403] (Step S46) Then, the development tool 50 outputs the changed application.

[0404] FIG. 42 is a flowchart showing an example of the arrangement error prompt process in step S30 of FIG. 24.

[0405] (Steps S41 to S44) The development tool 50 executes the processes of steps S41 to S44 in the same manner as the example shown in FIG. 41.

[0406] (Step S51) When the development tool 50 determines in step S44 that M functional blocks comply with the rules (Yes in step S44), it displays an error on the display 53 without automatically changing the application. As a result, the operator is presented with an error. 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, and when the M selected blocks included in the application comply with that rule, it presents an error to the operator.

[0407] In addition, the development tool 50 may present an error and show the operator a plurality of countermeasures, prompting the operator to select a countermeasure. At that time, the development tool 50 may present to the operator the difference in output performance for each of the plurality of countermeasures. Also, at that time, the development tool 50 may present at least two or more of the first countermeasure by adding a new functional block, the second countermeasure by changing the order of the M selected blocks, and the third countermeasure by deleting any functional block. As a result, those countermeasures are presented to, for example, the operator who is the application developer. As a result, the operator who is the application developer who has seen those countermeasures can easily change the application generated in step S42 according to that countermeasure by performing an input operation on the input unit 54 of the development tool 50.

[0408] (Step S52) The operator who saw 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 in response to an input operation by the operator who received the error prompt. Then, the development tool 50 repeatedly executes the process from step S43.

[0409] (Step S46) In step S44, when the development tool 50 determines that the M functional blocks do not conform to the rules (No in step S44), it 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.

[0410] Note that when the process of step S51 is repeated, the development tool 50 may present countermeasures for 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 countermeasures for 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 countermeasure, second countermeasure, and third countermeasure to the operator.

[0411] FIG. 43A is a diagram showing an example of the arrangement process of functional blocks and the automatic correction process of the arrangement.

[0412] As shown in FIG. 43A(a) for example, the development tool 50 displays, as icons for example, the function blocks that are dragged and dropped from the block list and arranged in the selected block area D4. Specifically, the development tool 50 arranges M function blocks including the dehydration function block FB42 in the selected 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. 24 in response to the input operation of the operator.

[0413] Further, when an application is generated as a result of the function block arrangement process, the development tool 50 determines whether the flow of the entire application is permitted as in step S29 of FIG. 24. That is, the development tool 50 makes a determination on the M function blocks arranged in the selected block area D4 using rules. Then, the development tool 50 performs the automatic correction process of the arrangement.

[0414] 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 washing machine rule group 42d in the rule database 42 shown in FIG. 21(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 or the like. 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.

[0415] When the development tool 50 determines that the arranged M function blocks comply with the rule, it changes the application. For example, as shown in FIG. 43A(b), the development tool 50 changes the washing machine application by adding the drainage function block FB41 before the function block FB42.

[0416] As described above, in this embodiment, when the development tool 50 determines that the application includes a second block and does not include a first block before the second block, the development tool 50 modifies the application by adding a first block before the second block. Such a modification causes the M functional blocks to no longer comply with the rules.

[0417] Also, in the arrangement process of the functional blocks, when the first functional block FB41 for drainage is arranged after the second functional block FB42 for dehydration, the development tool 50 may move the drainage functional block FB41 forward. That is, when the application includes a first block and a second block and does not include the first block before the second block, the development tool 50 modifies the application by changing the order of the first block to be before the order of the second block. Such a modification also causes the M functional blocks to no longer comply with the rules.

[0418] Further, the development tool 50 may delete the dehydration functional block FB42 which is the second block. That is, when the application includes a second block and does not include a first block before the second block, the development tool 50 modifies the application by deleting the second block. Such a modification also causes the M functional blocks to no longer comply with the rules.

[0419] FIG. 43B is a diagram showing another example of the arrangement process of the functional blocks and the automatic correction process of the arrangement.

[0420] As shown in FIG. 43B(a) for example, the development tool 50 displays, for example as icons, the function blocks that are dragged and dropped from the block list and arranged in the selected block area D4. Specifically, the development tool 50 arranges M function blocks including the drying function block FB44 in the selected 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. 24 in response to the input operation of the operator.

[0421] Also, when an application is generated as a result of the function block arrangement process, the development tool 50 determines whether the flow of the entire application is permitted as in step S29 of FIG. 24. That is, the development tool 50 makes a determination on the M function blocks arranged in the selected block area D4 using rules. Then, the development tool 50 performs the automatic correction process of the arrangement.

[0422] 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. 21(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 block, the blowing function block FB45, from not being executed after the second block, the drying function block FB44, is executed.

[0423] 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. 43B(b), the development tool 50 changes the application of the washing machine by adding the blowing function block FB45 after the function block FB44.

[0424] As described above, in this 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. Such a change causes the M functional blocks to not conform to the rules.

[0425] Also, in the case where the blower functional block FB45, which is the third block, is arranged in front of the drying functional block FB44, which is the second block, due to the arrangement process of the functional blocks, the development tool 50 may move the blower functional 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 application by changing the order of the third block to be after the order of the second block. Such a change also causes the M functional blocks to not conform to the rules.

[0426] Further, the development tool 50 may delete the drying functional 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 changes the application by deleting the second block. Such a change also causes the M functional blocks to not conform to the rules.

[0427] As shown in FIGS. 43A and 43B, in this embodiment, the automatic arrangement correction process is performed. Therefore, even if the operator, who is the application developer, arranges the M functional blocks incorrectly so as to conform to the rules, the M functional blocks are automatically rearranged so as not to conform to the rules. Therefore, the safety of the washing machine can be ensured.

[0428] FIG. 44 is a diagram showing an example of the error prompt process for the arrangement.

[0429] Similar to the example of FIG. 43A, as shown in FIG. 44, the development tool 50 arranges M functional blocks including the dehydration functional block FB42 in the selection block area D4. 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. 24. 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 a combination 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.

[0430] 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. 44, 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 an error prompt process is performed, for example, in step S51 of FIG. 42.

[0431] As described above, in this embodiment, when one of the predetermined two or more blocks is executed, 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, 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.

[0432] When such an error is presented, the operator, who is the 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.

[0433] In addition, 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 stated that the error will be 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. Furthermore, the development tool 50 may display the impact it receives by performing the countermeasure C1 together with the countermeasure C1. For example, the development tool 50 may display as an impact that the processing time required for the entire washing process becomes longer, but dehydration is properly performed.

[0434] In addition, in the countermeasure C2, it is stated that the error will be resolved by deleting the dehydration function block. That is, the countermeasure C2 is the third countermeasure of deleting one of the M selection blocks. Furthermore, the development tool 50 may display the impact it receives by performing the countermeasure C2 together with the countermeasure C2. For example, the development tool 50 may display as an impact that dehydration cannot be performed, but the safety of the washing machine can be ensured.

[0435] FIG. 45 is a diagram showing another example of the connection error presentation process.

[0436] Similar to the example of FIG. 43B, as shown in FIG. 45, 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 an application is generated, the development tool 50 determines whether the flow of the entire application is permitted, as in step S29 of FIG. 24. 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.

[0437] Then, when the development tool 50 determines that the M functional blocks comply with the rules, it performs error prompting processing. Specifically, as shown in FIG. 45, 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 error prompting processing is performed, for example, in step S51 of FIG. 42.

[0438] When such an error is presented, 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.

[0439] 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 the entire washing process becomes longer, but the safety of the washing machine can be ensured.

[0440] 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.

[0441] 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.

[0442] 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.

[0443] 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 upon 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.

[0444] By presenting such a plurality of countermeasures and the influences thereof, the operator, who is an application developer, can more easily rearrange the M functional blocks that comply with the rules so as not to comply with the rules. Therefore, the safety of the washing machine can be ensured.

[0445] 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 rules. 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 may be presented by voice.

[0446] 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. 42 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 without presenting 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.

[0447] FIG. 46 is a diagram showing another presentation example of the countermeasure.

[0448] 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. 46. For example, the development tool 50 presents the countermeasure in such a way 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. 47. In this block list, only the functional block, which is the first block to be arranged before the second block, is displayed in a manner different from the other functional blocks included in the block list. Specifically, among the block lists 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 an 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 improved.

[0449] FIG. 47 is a diagram showing still another presentation example of the countermeasure.

[0450] 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. 47. 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 an application developer can easily avoid the error by reversing the order of those functional blocks, and the operability of changing the application can be improved.

[0451] [10. Effects, etc.] As described above, in this embodiment, an environment capable of developing a wide variety of and safe applications 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 a wide variety of applications with a high degree of freedom and the development of a rule database for ensuring safety, and it becomes possible to develop a wide variety of and safe applications at an early stage.

[0452] Also, if this embodiment is combined with any one of Embodiments 6 to 9, even after the provision of the application, by changing the rule database, it becomes possible to change to an application with higher safety. Also, even when it becomes necessary to improve a situation not assumed by the manufacturer in advance, since the rule database is defined independently of the application without changing the wide variety of applications themselves, by updating the rule database, it becomes possible to respond to all applications.

[0453] 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, in response 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 two or more predetermined blocks from not being executed when one of the two or more predetermined blocks is executed, when the M selection blocks included in the application comply with the rule, the application is changed, and (d) the changed application is output.

[0454] 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 by the device 20. Further, at the time of this development, an application including M selection blocks corresponding to the above rules is automatically changed. As a result, the application can be automatically changed to an application including M selection 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 erroneously generates an application so as to execute a block that is not allowed to be 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.

[0455] Also, in the above (c), the application may be changed by (1) adding a new block to the M selection blocks, (2) changing the order of the M selection blocks, or (3) deleting any one of the M selection blocks.

[0456] 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.

[0457] Also, in the above (c), when the application includes the first block and the second block and does not include the first block before the second block, the application may be changed by changing the order of the first block to be before the order of the second block.

[0458] Also, 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 deleting the second block.

[0459] 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.

[0460] 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.

[0461] Also, the above-mentioned two or more predetermined blocks include the second block and the 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 the second block and does not include the third block after the second block, the application may be changed by adding the third block after the second block.

[0462] 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 modified by changing the order of the third block to be after the order of the second block.

[0463] 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 modified by deleting the second block.

[0464] 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.

[0465] Also, 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.

[0466] 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.

[0467] 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 to improve the safety of the device 20 controlled by the application.

[0468] 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.

[0469] 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.

[0470] 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.

[0471] 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.

[0472] 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 selected block according to an input operation by an operator; (b) generates an application including at least the M selected blocks by setting the order in which at least each of the M selected blocks is executed according to an input operation by an operator; (c) refers to a rule that prohibits at least one of the remaining of the predetermined two or more blocks from not being executed when one of the predetermined two or more blocks is executed, and when the M selected blocks included in the application comply with the rule, presents an error to the operator; (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.

[0473] 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.

[0474] Also, in the above (c), further, a plurality of countermeasures against the error are presented, and in the above (d), the application may be changed by changing the order in which each of the M selected 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.

[0475] According to this, the operator who has confirmed the error prompt can reduce the trouble of changing the application.

[0476] Further, 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.

[0477] Thereby, the operator can change the application while appropriately avoiding the error according to any one of the plurality of countermeasures. Further, when the operator selects a countermeasure, the operator can select an option (that is, a countermeasure) that satisfies the intention of creating the application.

[0478] Further, in the above (c), further, the influence on the object acted on by the drive 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.

[0479] According to this, when the operator selects a countermeasure, the operator can intuitively select it in line with the intention of creating the application.

[0480] Further, in this information processing method, after the above (d), the 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.

[0481] According to this, when an error message is repeatedly presented, multiple 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.

[0482] (Modification Example of Embodiment 10) Whether the hardware of device 20 can operate safely by an application depends on the environmental conditions of that hardware. Therefore, the rules of that 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.

[0483] Therefore, when the application developer in this modification example is the device manufacturer, the development and production of the application used in the device 20 manufactured by that application developer are carried out without using the rules. The reason is that as an application developer, they understand the environmental conditions for safely operating the device 20 manufactured by that application developer. Note that an application developer is a person, group, or company that develops or produces an application, and is also called an application developer. Also, a device manufacturer is a person, group, or company that manufactures or produces devices such as device 20, and is also called the manufacturer or producer of device 20.

[0484] That is, the development tool 50 in this modification example performs application development using the rules when the application developer and the device manufacturer are different, and performs application development without using the rules when the application developer and the device manufacturer are the same.

[0485] More specifically, in Embodiment 10, 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 8, the change of the application is skipped.

[0486] FIG. 48 is a flowchart showing the processing operation of the development tool 50 in this modification.

[0487] (Step S51) First, the development tool 50 generates an application by performing function block arrangement processing and parameter setting processing. That is, the development tool 50 generates an application including one or more function blocks for driving at least one of the actuators and heaters provided in the device 20 which is the device to be controlled. For example, in this step S51, the development tool 50 executes the processing of steps S21 to S23 in FIG. 24.

[0488] Thereafter, the development tool 50 executes steps S2161B, S2163B, S2164B, S2165, S2166, and S2167 in the same manner as in Embodiment 8. Specifically, the development tool 50 operates as follows.

[0489] (Step S2161B) The development tool 50 identifies the maker of the application (that is, the application maker) by acquiring application maker information.

[0490] (Step S2163B) The development tool 50 identifies the manufacturer of the device 20 which is the device to be controlled (that is, the device manufacturer) by acquiring device manufacturer information.

[0491] (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 maker of the above-described device to be controlled match.

[0492] (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.

[0493] (Step S2166) The development tool 50 determines whether one or more function blocks included in the application comply with the rules.

[0494] (Step S2167) When the development tool 50 determines that those one or more function blocks comply with the rules (Yes in Step S2166), it changes the application according to the rules.

[0495] (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 rule is 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.

[0496] (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. That is, when the application producer 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.

[0497] 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 producer of the application is identified, the manufacturer of the control target device is identified, and it is determined whether the producer of the application and the manufacturer of the control target device match. (a) When the producer 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 producer of the application and the manufacturer of the control target device match, the application is output without applying the rules to the application.

[0498] Therefore, in this modified example, when the application producer and the device manufacturer are different, the application is modified by applying the rules to the application, so the same effect as in Embodiment 10 can be achieved. Furthermore, when the application producer and the device manufacturer are the same, similar to Embodiment 8, the application of the rules and the modification of the application are omitted, so the processing load can be reduced. Furthermore, 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.

[0499] Also, in the above (b) of the information processing method in this modified example, an additional process is further 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.

[0500] 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 added information.

[0501] For example, when the first additional information and the second additional information are added to the application, the device 300 can determine whether to apply a rule to the application because the first additional information is added to the application. Specifically, the device 300 can appropriately determine whether to apply the 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.

[0502] On the one hand, if the update date of the device 300 is after 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.

[0503] 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. Then, 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.

[0504] 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 application 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.

[0505] 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 6 to 9, 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.

[0506] (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 these embodiments. As long as the gist of the present disclosure is not deviated from, various modifications conceived by those skilled in the art applied to these embodiments 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.

[0507] Also, in each of the above embodiments, the sequence manager 100 and the device manager 200 are included in the cloud server 10, but are not limited thereto. The sequence manager 100 and / or the device manager 200 may be included in the device 20. Also, the UI 400 is included in the terminal 30, but may be included in the device 20.

[0508] 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.

[0509] Also, in the above Embodiments 1-4, when the parameter is included in the unacceptable range in the pre-execution check, the block is changed and then the block is executed, but this is not the only case. For example, when the parameter is included in the unacceptable range and the state of the device 300 is different from the assumption, the block may not be executed, and the device manager 200 and / or the sequence manager 100 may be notified of the execution stop (error).

[0510] Also, in the above Embodiments 6-10, the application is changed in the pre-execution check and then the application is executed, but this is not the only case. 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

[0511] It can be used for household electrical appliances that can execute an application defined by a plurality of functional blocks, and devices that generate the application.

Explanation of Signs

[0512] 1 System 2a, 2b, 2c, 2d Facilities 10 Cloud Server 11 Processor 12 Memory Devices 20, 20a, 20b, 20c, 20d, 20e, 20f, 20g, 20h 21 Housing 22 Actuator 23 Heater 24 Control Unit Terminals 30, 30a, 30b, 30c, 30d 31 Display 32 Input Device 41 Block Database 42, 1300, 1300C Rule Database 50 Development Tool 51 Processor 52 Memory 53 Display 54 Input Section 60 App Provision Server 100 Sequence Manager 200 Device Manager Devices 300, 300a, 300b, 300c, 300d, 300e, 300f, 300g, 300h 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 Sequence Information Rules 1301, 1301C, 1302, 1302C, 1303C, 1304C 2000 Information Processing System Countermeasures C1~C5 D1 Parameter Setting Area D2 Block List Area D3 Target Device Area D4 Selected Block Area Error Messages E1~E3 F100 Preparation Phase F200 Pre-application phase F300 Application execution phase Exclusive rules for R11~R13, R21~R23, R31~R33, R41~R43 General rules for R100, R200, R300, R400

Claims

1. An information processing method executed by a computer system, comprising: (a) selecting, in response to an input operation by an operator, each of M (where M is an integer greater than or equal to 1 and less than or equal to N) blocks from N (where N is an integer greater than or equal to 2) blocks for driving at least one of an actuator and a heater provided in a device to be controlled; (b) generating an application including at least the M selected blocks by setting, in response to an input operation by the operator, a parameter for driving the actuator or the heater for each of the M selected blocks; (c) changing the application by changing at least one of the M selected blocks, with reference to a rule defining a parameter range in which driving of at least one of the actuator and the heater is not allowed, wherein at least one of the M selected blocks has a parameter included in the parameter range; (d) outputting the changed application. An information processing method.

2. In (c), changing the application by referring to the rule and changing a parameter included in the parameter range to a parameter included in a range in which driving of at least one of the actuator and the heater is allowed. The information processing method according to Claim 1.

3. In (c), changing the application by referring to the rule, changing a parameter included in the parameter range to a parameter included in a range in which driving of at least one of the actuator and the heater is allowed, and adding a new block to the M selected blocks. The information processing method according to Claim 1.

4. In (c), changing the application by deleting a selected block having a parameter included in the parameter range. The information processing method according to Claim 1.

5. In (c), referring to the rule and determining whether each of a plurality of parameters included in the M selected blocks is included in the parameter range; when it is determined that a parameter is included in the parameter range, changing the selected block having the parameter. The information processing method according to any one of Claims 1 to 4.

6. The application includes information on the order in which each of the M selection blocks is to be executed and information on the timing at which each of the M selection blocks is to be executed. The information processing method according to any one of claims 1 to 5.

7. The parameter range is a range of parameters for causing at least one of the actuator and the heater to reach a durable temperature. The information processing method according to any one of claims 1 to 6.

8. The device to be controlled includes a housing having an internal space. The parameter range is a range of parameters for causing the internal space to reach a durable temperature. The information processing method according to any one of claims 1 to 6.

9. In (c), it is determined whether the generated application is an application dedicated to the device to be controlled or a general-purpose application applicable to the device to be controlled and a device other than the device to be controlled, and a rule candidate corresponding to the determination result of the application is referred to as the rule among a plurality of rule candidates that respectively define parameter ranges in which driving of at least one of the actuator and the heater is not allowed. The information processing method according to any one of claims 1 to 8.

10. An information processing method executed by a computer system, (a) From N blocks (N is an integer of 2 or more) for driving at least one of an actuator and a heater provided in a device to be controlled, in response to an input operation by an operator, each of M blocks (M is an integer of 1 or more and N or less) is selected as a selection block, (b) By setting, in response to an input operation by the operator, a parameter for driving the actuator or the heater for each of the M selection blocks, an application including at least the M selection blocks is generated, (c) Referring to a rule that defines a parameter range in which driving of at least one of the actuator and the heater is not allowed, if at least one of the M selection blocks has a parameter included in the parameter range, an error is presented to the operator, (d) The application is changed by changing at least one of the M selection blocks in response to an input operation by the operator who has received the presentation of the error, (e) The changed application is output. Information processing method.

11. In the information processing method, after the step (d), steps (c) and (d) are repeatedly executed, (f) when the number of times the error is presented is K times or more (K is an integer of 2 or more), a parameter not included in the parameter range is presented to the operator. The information processing method according to claim 10.

12. In the information processing method, after the step (d), steps (c) and (d) are repeatedly executed, (f) when the number of times the error is presented is K times or more (K is an integer of 2 or more), a range of parameters not included in the parameter range is presented to the operator. The information processing method according to claim 10.

13. In step (c), further, a plurality of countermeasures for the error are presented, in step (d), in response to an input operation by the operator who has received the presentation of the error and the plurality of countermeasures, the application is changed by changing at least one of the M selection blocks. The information processing method according to claim 10.

14. The plurality of countermeasures include a countermeasure for changing a parameter included in the parameter range, a countermeasure for adding a new block to the M selection blocks, and at least two of a countermeasure for deleting a selection block having a parameter included in the parameter range. The information processing method according to claim 13.

15. In step (c), further, when each of the plurality of countermeasures is performed, the influence on an object acted on by driving the actuator or the heater, or the influence on the application is presented. The information processing method according to claim 13 or 14.

16. A processor and a memory connected to the processor, wherein the processor uses the memory to (a) select, from N blocks (N is an integer of 2 or more) for driving at least one of an actuator and a heater provided in a controlled device, each of M blocks (M is an integer of 1 or more and N or less) as a selection block according to an input operation by an operator, (b) generate an application including at least the M selection blocks by setting, according to an input operation by the operator, a parameter for driving the actuator or the heater for each of the M selection blocks. (c) Referring to a rule that defines a parameter range in which driving of at least one of the actuator and the heater is not allowed, change the application by changing at least one of the M selected blocks, where at least one of the M selected blocks has a parameter included in the parameter range, (d) Output the changed application, An information processing apparatus.

17. A processor, A memory connected to the processor, The processor uses the memory to (a) From N (N is an integer of 2 or more) blocks for driving at least one of an actuator and a heater provided in a device to be controlled, in response to an input operation by an operator, select each of M (M is an integer of 1 or more and N or less) blocks as a selected block, (b) Generate an application including at least the M selected blocks by setting, in response to an input operation by the operator, a parameter for driving the actuator or the heater for each of the M selected blocks, (c) Referring to a rule that defines a parameter range in which driving of at least one of the actuator and the heater is not allowed, if at least one of the M selected blocks has a parameter included in the parameter range, present an error to the operator, (d) Change the application by changing at least one of the M selected blocks in response to an input operation by the operator who has received the presentation of the error, (e) Output the changed application, An information processing apparatus.

Citation Information

Patent Citations

  • Washing machine

    JP2003284889A

  • Actuator for HVAC systems and method for operating the actuator

    US20110153089A1

  • User interface for tool configuration and data capture

    US20160342151A1

  • Systems and methods for controlling operating of an appliance

    WO2019063118A1