Information processing method and information processing device

The information processing method allows users to create customized control programs by selecting and combining functional blocks, addressing the inflexibility of existing methods and ensuring safety through a rule-based system.

JP7648623B2Active Publication Date: 2025-03-18PANASONIC INTELLECTUAL PROPERTY CORP OF AMERICA
View PDF 4 Cites 0 Cited by

Patent Information

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

AI Technical Summary

Technical Problem

Existing methods for generating control programs for devices with actuators and/or heaters are inflexible and difficult to customize, making it challenging to create safe and varied control programs.

Method used

An information processing method that allows users to select and combine functional blocks to create customized control programs, with a rule-based system to ensure safety by preventing unsafe combinations of blocks.

Benefits of technology

Enables the easy generation of a wide variety of safe control programs, allowing for customization and updates while ensuring the safety of the devices.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007648623000001
    Figure 0007648623000001
  • Figure 0007648623000002
    Figure 0007648623000002
  • Figure 0007648623000003
    Figure 0007648623000003
Patent Text Reader

Abstract

In this information processing method, a number M of blocks are selected as selection blocks in accordance with an input operation by an operator from a number N of blocks for driving at least one of an actuator (22) and a heater (23) of a device (20) (step S41); an application is generated by setting a sequential order for the number M of selection blocks in accordance with an input operation by the operator (step S42); the application is modified when, if one of two or more prescribed blocks is executed, a rule for prohibiting the execution of at least one of the remaining from among the two or more prescribed blocks is referenced and the number M of selection blocks included in the application fall under said rule (steps S44, S45); and the modified application is output (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 an apparatus including an actuator and / or a heater. [Background technology]

[0002] Conventionally, household electrical appliances and housing facilities are controlled according to operating conditions (control programs) prepared in advance by their manufacturers, etc. Patent Document 1 discloses a washing machine that allows a user to set operating conditions for washing that he or she desires to carry out. [Prior art documents] [Patent documents]

[0003] [Patent Document 1] JP 2003-284889 A Summary of the Invention [Problem to be solved by the invention]

[0004] However, in the above-mentioned conventional technology, a control program developed in advance by the product manufacturer or the like must be stored in the product in advance, and it is difficult to generate, customize, and update a diverse and safe control program.

[0005] Therefore, the present disclosure provides an information processing method and the like that can easily generate diverse and safe control programs. [Means for solving the problem]

[0006] An information processing method according to one embodiment of the present disclosure is an information processing method executed by a computer system, which (a) selects, in response to an input operation by an operator, M blocks (M is an integer greater than or equal to 1 and less than or equal to N) from N blocks (N is an integer greater than or equal to 2) for driving at least one of an actuator and a heater provided in a controlled device, as selected blocks; (b) generates an application including at least the M selected blocks by setting an order in which at least the M selected blocks are executed in response to the input operation by the operator; (c) modifies the application if the M selected blocks included in the application satisfy a rule that prohibits at least one of the two or more specified blocks from being executed when one of the two or more specified blocks is executed; and (d) outputs the modified application.

[0007] Furthermore, these comprehensive or specific aspects may be realized by a system, a method, an integrated circuit, a computer program, or a recording medium such as a computer-readable CD-ROM, or may be realized by any combination of the system, the method, the integrated circuit, the computer program, and the recording medium. Effect of the Invention

[0008] An information processing method according to an aspect of the present disclosure makes it possible to easily generate a wide variety of safe control programs. [Brief description of the drawings]

[0009] [Figure 1] FIG. 1 is a hardware configuration diagram of the system according to the first embodiment. [Figure 2A] FIG. 2A is a hardware configuration diagram of the cloud server according to the first embodiment. [Figure 2B] FIG. 2B is a hardware configuration diagram of the device according to the first embodiment. [Figure 2C] FIG. 2C is a hardware configuration diagram of the terminal in the first embodiment. [Diagram 3] FIG. 3 is a functional configuration diagram of the system according to the first embodiment. [Figure 4] FIG. 4 shows an example of a block defining an application in the first embodiment. [Diagram 5] FIG. 5 shows a number of blocks for the washing machine in the first embodiment. [Figure 6] FIG. 6 shows a number of blocks for the microwave oven in the first embodiment. [Figure 7] FIG. 7 shows a number of blocks for the rice cooker in the first embodiment. [Figure 8] FIG. 8 is a sequence diagram of the system in the first embodiment. [Figure 9] FIG. 9 shows an example of the device database according to the first embodiment. [Figure 10] FIG. 10 shows an example of an execution content declaration in the first embodiment. [Figure 11] FIG. 11 shows a flowchart of the pre-execution confirmation process in the first embodiment. [Figure 12] FIG. 12 shows an example of the rule database in the first embodiment. [Figure 13] FIG. 13 shows an example of a change in an application in the first embodiment. [Figure 14] FIG. 14 shows an example of a change in an application in the first embodiment. [Figure 15A] FIG. 15A is a sequence diagram of a system according to the first modification of the first embodiment. [Figure 15B] FIG. 15B is a sequence diagram of the system in the second modification of the first embodiment. [Figure 15C] FIG. 15C is a sequence diagram of the system in the third modification of the first embodiment. [Figure 15D] FIG. 15D is a sequence diagram of the system in the fourth modification of the first embodiment. [Figure 15E]FIG. 15E is a sequence diagram of the system in the fifth modification of the first embodiment. [Figure 16] FIG. 16 shows a flowchart of the pre-execution confirmation process in the second embodiment. [Figure 17] FIG. 17 shows a flowchart of the pre-execution confirmation process in the third embodiment. [Figure 18] FIG. 18 shows a flowchart of the pre-execution confirmation process in the fourth embodiment. [Figure 19] FIG. 19 is a diagram illustrating an example of a configuration of an information processing system according to the fifth embodiment. [Figure 20] FIG. 20 is a diagram showing an example of information stored in each of the block database and the rule database in the fifth embodiment. [Figure 21] FIG. 21 is a diagram showing an example of a general rule included in the rule database in the fifth embodiment. [Figure 22] FIG. 22 is a sequence diagram of the information processing system according to the fifth embodiment. [Diagram 23] FIG. 23 is a flowchart showing the overall processing operation of the development tool in the fifth embodiment. [Figure 24] FIG. 24 is a flowchart showing an example of the automatic layout correction process according to the fifth embodiment. [Diagram 25] FIG. 25 is a flowchart showing an example of the arrangement error presentation process according to the fifth embodiment. [Figure 26] FIG. 26 is a diagram showing an example of a sequence generation screen according to the fifth embodiment. [Figure 27] FIG. 27 is a diagram showing an example of display of a block list according to the fifth embodiment. [Figure 28A] FIG. 28A is a diagram showing an example of the placement process of functional blocks and the automatic correction process of the placement according to the fifth embodiment. [Figure 28B] FIG. 28B is a diagram showing another example of the processing for placing functional blocks and the processing for automatically correcting the placement according to the fifth embodiment. [Figure 29]FIG. 29 is a diagram showing an example of the arrangement error presentation process according to the fifth embodiment. [Diagram 30] FIG. 30 is a diagram showing another example of the connection error presentation process according to the fifth embodiment. [Diagram 31] FIG. 31 is a diagram showing another example of how to present a solution in the fifth embodiment. [Diagram 32] FIG. 32 is a diagram showing yet another example of how to present a countermeasure in the fifth embodiment. [Diagram 33] FIG. 33 is a flowchart showing the processing operation of the development tool in the modification of the fifth embodiment. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0010] (Findings on which this disclosure is based) The inventors of the present application will now explain how they arrived at this disclosure. In order to develop control programs for household electrical appliances having actuators and / or heaters that meet the desires of a wide variety of users, an open development environment is required. In other words, an environment is required in which the difficulty of developing control programs can be reduced and third parties can easily participate in the development of control programs. In such an environment, for example, an apparel company can develop a control program for a washing machine that washes the clothes it sells.

[0011] Therefore, the inventors have investigated a mechanism for constructing an environment in which control programs can be developed while maintaining safety by using functional blocks that abstract the control of actuators and / or heaters included in a product, and for packaging and distributing control programs consisting of combinations of multiple functional blocks as applications. This makes it possible to distribute a wide variety of applications, and to customize and update products in response to the desires of a wider variety of 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, reducing the safety of the product.

[0012] For example, it is assumed that the programs included in household appliances, etc. are incorporated in devices for directly controlling actuators and / or heaters, and include a mixture of programs developed by the manufacturer and programs developed by third parties. In this case, it is highly likely that the manufacturer will not disclose all information about the household appliances, etc., including know-how, to the third party. For example, the parameters or timing for driving the actuators and / or heaters are know-how related to the performance of the manufacturer's household appliances, etc. Therefore, since it may lead to a decrease in competitiveness, the manufacturer is unlikely to open up its know-how to third parties so that they can freely drive the household appliances, etc.

[0013] Therefore, a third party may create an application that includes a combination of controls or a parameter range that the manufacturer did not anticipate, that is, an application whose safety is not guaranteed, due to a lack of information about the home appliance, etc. It is undesirable for users to be provided with such an application.

[0014] In addition, manufacturers of household electrical appliances and the like may attempt to update users' lives by providing new control programs. However, the development of a wide variety of new control programs requires a huge amount of work, such as parameter adjustment or hardware performance evaluation. Since household electrical appliances and the like are physically driven by the hardware of actuators and / or heaters, it is easily expected that the number of work steps required for performance evaluation and the like for programs of household electrical appliances and the like will be greater than that required for programs of smartphones. However, in an era in which on-demand development according to the lifestyle of each individual user is required rather than mass production, it is required to develop a wide variety of control programs for household electrical appliances and the like, just like programs for smartphones. Therefore, manufacturers must create a wide variety of applications that ensure the safety of their products while reducing the huge amount of work.

[0015] Furthermore, manufacturers may wish to ensure that household electrical appliances and the like operate safely even when they are operated using applications provided by third parties. In this case, it is desirable to reduce the amount of work required to actually run a wide variety of applications on the household electrical appliances and the like and verify their safety.

[0016] Therefore, the present disclosure provides an apparatus etc. that can more easily and safely execute a wide variety of applications defined by a plurality of functional blocks that drive actuators and / or heaters.

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

[0018] The embodiments described below are all comprehensive or specific examples. The numerical values, shapes, materials, components, the arrangement and connection of the components, steps, and the order of steps shown in the following embodiments are merely examples and are not intended to limit the scope of the claims.

[0019] In addition, the drawings are not necessarily strict illustrations. In the drawings, the same reference numerals are used for substantially the same configurations, and duplicated explanations are omitted or simplified.

[0020] (Embodiment 1) [1.1 Hardware configuration] The hardware configuration of system 1 in this embodiment will be described with reference to Figs. 1 to 2C. Fig. 1 is a hardware configuration diagram of system 1 in embodiment 1. Fig. 2A is a hardware configuration diagram of cloud server 10 in embodiment 1. Fig. 2B is a hardware configuration diagram of device 20 in embodiment 1. Fig. 2C is a hardware configuration diagram of terminal 30 in embodiment 1.

[0021] 1, the system 1 according to the present embodiment includes a cloud server 10, devices 20a-20h used in facilities 2a-2d, and terminals 30a-30d. The facilities 2a-2d are, for example, but are not limited to, houses. The facilities 2a-2d may be, for example, apartments, stores, offices, etc.

[0022] Cloud server 10 is a virtual server provided via a computer network (e.g., the Internet). Cloud server 10 is connected to devices 20a-20h and terminals 30a-30d via the computer network. Note that a physical server may be used instead of cloud server 10.

[0023] 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 instructions or software programs stored in the memory 12 are executed.

[0024] The devices 20a to 20h are electric machines and devices used in the facilities 2a to 2d. Note that the devices 20c to 20h used in the facilities 2b to 2d are omitted from Fig. 1. In the following, when it is not necessary to distinguish between the devices 20a to 20h, they will be referred to as device 20.

[0025] As the device 20, household electrical appliances (home appliances) and housing equipment can be used. The household electrical appliances (home appliances) and housing equipment are not limited to devices used in a home, but also include devices used in a business. In this disclosure, the household electrical appliances and housing equipment may be abbreviated to household electrical appliances. As the household appliances, for example, a microwave oven, a rice cooker, a blender, an electric oven, an electric toaster, an electric pot, a hot plate, an induction heating (IH) cooker, a roaster, a bakery, an electric pressure cooker, an electric waterless cooker, a multi-cooker, a coffee maker, a refrigerator, a washing machine, a dishwasher, a vacuum cleaner, an air conditioner, an air purifier, a humidifier, a hair dryer, an electric fan, and an ion generator can be used. As the housing equipment, for example, an electric shutter, an electronic lock, and an electric water heater for a bathtub can be used. The device 20 is not limited to this.

[0026] 2B, the device 20 includes a housing 21, an actuator 22, a heater 23, and a control unit 24. Note that the device 20 may 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] Housing 21 houses actuator 22, heater 23, and control unit 24. Housing 21 may also 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 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, and may be, for example, an electric motor, a hydraulic cylinder, or a pneumatic actuator, but is not limited to these.

[0029] The heater 23 is an electric heater that converts electric energy into thermal energy. The heater 23 heats the 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 a household electrical appliance or the like provides a third party with a development environment in which all of the parameters and combinations of driving the actuator 22 and the heater 23 can be freely controlled. In this case, the third party can create a program that controls the actuator 22 and / or the heater 23 outside of the parameter range that the manufacturer expects to safely drive, or the driving limit of the actuator 22 and / or the heater 23. In particular, driving of the actuator 22 that physically moves or the heater 23 that outputs thermal energy that is not expected by the manufacturer is a major issue in ensuring safety. Examples of driving that the manufacturer does not expect include high-speed rotation of an electric motor, which is an example of an actuator, and supply of an overcurrent to the heater 23. The present inventors aimed to avoid hindering the creation of an environment in which a wide variety of applications can be provided to users by excessively considering safety aspects. Therefore, the device 20 of the present disclosure is intended to specialize in the actuator 22 that physically moves or the heater 23 that outputs thermal energy, and is intended to ensure safety.

[0031] The control unit 24 is a controller that controls the actuator 22 and / or the heater 23, and functions as a device to be described later. The control unit 24 is formed of, for example, an integrated circuit.

[0032] The terminals 30a to 30d are used in the facilities 2a to 2d, respectively, and function as user interfaces. Note that the terminals 30b to 30d used in the facilities 2b to 2d are omitted from Fig. 1. In the following, when it is not necessary to distinguish between the terminals 30a to 30d, they will be referred to as terminals 30.

[0033] The terminal 30 is connected to the cloud server 10 and the devices 20 via a computer network, and functions as a user interface (UI) described later. A portable information terminal such as a smartphone or a tablet computer can be used as the terminal 30. The terminal 30 may be a terminal fixed to a wall, floor, or ceiling of the facilities 2a to 2d. The terminal 30 may also be included in the devices 20. For example, the terminal 30 may be realized as a display terminal having a display or the like built into 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. For example, a liquid crystal display or an organic EL display can be used as the display 31. For example, a touch panel, a keyboard, a mouse, a mechanical button, or the like can be used as the input device 32. A voice input device may be used as the input device 32. The display 31 and the input device 32 may be integrated as a touch screen. Alternatively, a gesture input device may be used as the input device 32. The gesture input device includes, 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, a 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 apparatuses 20a to 20h include devices 300a to 300h, respectively. The terminals 30a to 30d include UIs 400a to 400d, respectively.

[0037] In the following, when it is unnecessary to distinguish between the devices 300a to 300h, they will be referred to as device 300. When it is unnecessary to distinguish between the UIs 400a to 400d, they will be referred to as UI 400.

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

[0039] The device manager 200 has a database for managing the 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 the 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, a control function, a drive function, and an operating status. For example, the device manager 200 can manage the operating status of the devices 300 and grasp the operating schedule of the devices 300. The device manager 200 may also manage log information of the devices 300.

[0040] Such a database may be included in the sequence manager 100 instead of the device manager 200, or may be included in both the sequence manager 100 and the device manager 200.

[0041] The device 300 has a function of controlling and driving the apparatus 20. The device 300 can drive the apparatus 20 according to instructions from the device manager 200.

[0042] The UI 400 provides information to and accepts input from a user.

[0043] Here, the application will be described. In the present embodiment, the application (hereinafter, sometimes abbreviated as an app) means a control program defined by a plurality of functional blocks (hereinafter, abbreviated as a block) that drive the actuator 22 and / or the heater 23. Each of the plurality of blocks may include parameters for driving the actuator 22 or the heater 23. Specifically, each of the plurality of blocks is an abstraction of the control of the actuator 22 or the heater 23. Note that the application may include a block that does 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. Examples of blocks that do not drive the actuator 22 and / or the heater 23 include information display using an interface of the device 300, audio output using a buzzer of the device 300, turning on or off a lamp of the device 300, and the like. The block may also 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 to the second block during execution of the first block, the first block is switched to the second block when a start condition included in the second block is satisfied. Also, the block may include an end condition instead of a start condition. When switching to the second block during execution of the first block, the first block is switched to the second block when an end condition included in the first block is satisfied.

[0044] FIG. 4 shows an example of a block that defines an application in the first embodiment. Block 1000 shown in FIG. 4 is a block that controls the agitation operation of the washing machine, and includes parameters 1001 to 1006. Parameter 1001 includes information indicating the type of agitation (for example, normal, dancing, rocking). In other words, parameter 1001 indicates the type of function. Parameter 1002 includes a value indicating the number of rotations of the drum. In other words, parameter 1002 indicates the strength of driving actuator 22 and / or heater 23. Parameter 1003 includes a value indicating the amount of water supplied into the drum by the water level after water supply. In other words, parameter 1003 indicates the state after actuator 22 and / or heater 23 are driven. Parameter 1004 includes a value indicating the on / off state of the circulation pump. In other words, parameter 1004 indicates whether actuator 22 and / or heater 23 are driven. The parameter 1005 includes information indicating the agitation interval in stages (for example, short, medium, long), and the parameter 1006 includes a value indicating the agitation time.

[0045] To define an application, a plurality of such blocks are used, for example, as shown in Figs.

[0046] FIG. 5 shows a plurality of blocks for a washing machine in the first embodiment. FIG. 6 shows a plurality of blocks for a microwave oven in the first embodiment. FIG. 7 shows a plurality of blocks for a rice cooker in the first embodiment. Note that the plurality of blocks shown in FIG. 5 to FIG. 7 are merely 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 hierarchically organized according to abstraction levels.

[0047] For example, the abstraction level may be changed between a layer for a manufacturer and a layer for non-manufacturers. Examples of non-manufacturers include layers for other manufacturers and layers for third parties.

[0048] In this case, the layer for the manufacturer has a lower level of abstraction than the layer for other parties, which means that the contents closer to the parameters that drive the actuators and heaters are controlled.

[0049] On the other hand, creators can provide blocks with a minimum abstraction level that ensures know-how and safety to non-manufacturers, thereby enabling non-manufacturers to develop applications. Manufacturers can provide blocks with a higher abstraction level to general users, enabling more people to develop applications. A higher abstraction level corresponds to blocks defined by terms that general users themselves can understand without specialized knowledge. Terms that can be understood without specialized knowledge are, for example, contents that correspond to the functions themselves of household electrical appliances. Specifically, when "plenty" is selected as a parameter related to the amount of water in the "wash" block of a washing machine, in one embodied layer, changes are made such as increasing the water level parameter in the water supply block from 60 mm to 100 mm and decreasing the rotation speed parameter in the stirring block from 120 rpm to 100 rpm. As described above, rearrangement and parameter changes of blocks at a high level of abstraction can be realized with blocks with a lower level of abstraction. In addition, multiple blocks can be defined in devices other than washing machines, microwave ovens, and rice cookers in the same manner as in Figures 5 to 7. These blocks allow for the free development of applications by rearranging and adjusting parameters while ensuring safety and confidentiality regarding the operation of the actuators and heaters.

[0050] In addition, by providing other manufacturers with blocks having a minimum abstraction level that ensures know-how and safety, the other manufacturers can independently define and implement blocks having a higher concrete level in order to realize the provided blocks. This allows each manufacturer to freely develop apps related to driving the actuators and heaters of each manufacturer while ensuring their own know-how and safety, with third parties that develop only apps.

[0051] At this time, the other manufacturer may not develop a block having a higher level of specificity in accordance with the block having the minimum abstraction level that ensures know-how and safety provided by the manufacturer, but may return an error and notify the application developer and user that the block provided by the manufacturer cannot be used or operates within a limited parameter range. Specifically, when "high speed" is selected as a parameter related to motor rotation in the "agitation" block of a washing machine, if a parameter of 150 rpm for realizing "high speed" is realizable in the washing machine of the manufacturer, while a washing machine of another manufacturer can only rotate up to 120 rpm due to the characteristics of the motor, an error or a message that the limit value of 120 rpm will be realized is displayed to the application developer or user.

[0052] [1.3 Processing] Next, the processing of the system 1 configured as above will be described with reference to Fig. 8. Fig. 8 is a sequence diagram of the system 1 in the first embodiment.

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

[0054] (Step S110) The sequence manager 100 transmits sequence manager information to the device manager 200. This transmission of sequence manager information is performed, for example, by an instruction from a system administrator. The device manager 200 registers the received sequence manager information, for example, in a sequence manager database. Note that if the sequence manager information has been registered in advance in the sequence manager database, this step may be skipped.

[0055] The sequence manager information includes, for example, an identifier and / or an address (eg, a Uniform Resource Locator (URL), an Internet Protocol (IP) address, etc.) of the sequence manager 100. Additionally, the sequence manager information may include any information.

[0056] (Step S112) The device 300 transmits device information 1101 to the device manager 200. This device information 1101 is transmitted, 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. Note that if the device information 1101 has been registered in advance in the device database 1100, this step may be skipped.

[0057] The device information 1101 may be sent to the UI 400 and then registered in the device manager 200 via the UI 400 .

[0058] The device information 1101 includes an identifier and / or an address of the device 300. Furthermore, 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 in 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 deterioration level. The actuator / heater is identification information of the actuator 22 and / or the heater 23 constituting the device 300. The deterioration level is an example of deterioration information indicating whether the actuator 22 and / or the heater 23 constituting the device 300 is deteriorated. Here, the deterioration level indicates that the deterioration is greater as the value increases. The device information 1101 may include information on executable blocks. The information on executable blocks may be information in which the blocks included in the database are associated with executable or non-executable blocks, or may be information on only executable blocks. Furthermore, whether or not a block is executable can be prepared in advance based on information about actuators / heaters and the like included in device information 1101.

[0059] The device information 1101 may include information capable of identifying the facilities 2a to 2d.

[0060] (Step S114) The UI 400 transmits UI information to the device manager 200. This transmission of UI information is performed, for example, in response to a user instruction. The device manager 200 registers the received UI information in, for example, a UI database. Note that if the UI information has been registered in the UI database in advance, this step may be skipped.

[0061] The UI information may include, for example, an identifier and / or an address of the UI 400. Furthermore, the UI information may include any information.

[0062] The UI information may include information capable of identifying the facilities 2a to 2d.

[0063] Through the above processing, the sequence manager 100, the device manager 200, the device 300, and the UI 400 are linked to each other and can establish a connection with each other, thereby completing the preparation phase F100.

[0064] [1.3.2 Pre-application execution phase F200] Next, the application pre-execution phase F200 will be described. Note that, before the application pre-execution phase F200, an application is downloaded from the application distribution platform to the sequence manager 100 in accordance with an instruction from a user via the UI 400. In this manner, the following process is performed in a state where the application is downloaded to the sequence manager 100.

[0065] (Step S210) The UI 400 accepts an application execution request from a user and transmits the application execution request including the application identification information to the sequence manager 100. For example, the user selects an application from among multiple applications downloaded to the sequence manager 100 via the UI 400 and instructs execution of the selected application.

[0066] The application execution request transmitted from the UI 400 to the sequence manager 100 is transmitted together with information capable of identifying the facilities 2a to 2d.

[0067] The application execution request does not have to be explicitly received from the user. For example, the application execution request may be automatically sent to the sequence manager 100 based on the detection result by detecting the user's behavior or state.

[0068] (Step S212) The sequence manager 100 transmits an execution content declaration of the application identified by the application execution request to the device manager 200. The execution content declaration includes information on a plurality of blocks that specifies the application to be executed and information capable of identifying the facilities 2a to 2d.

[0069] Fig. 10 is a diagram showing an example of an execution content declaration in the embodiment 1. Fig. 10 shows an execution content declaration 1200 for an application defined by combining a plurality of blocks for the washing machine shown in Fig. 5. The execution content declaration 1200 includes a plurality of blocks 1201, information 1202 relating to devices required for executing each block 1201, and information 1203 relating to the order in which each block 1201 is executed.

[0070] The execution content declaration 1200 does not have to include the device-related information 1202. In that case, the device manager 200 needs to search for a device capable of executing the relevant block in the facility indicated by the received facility information from the information of the multiple blocks 1201, and perform device allocation.

[0071] 10, the device-related information 1202 indicates the model number of the device 300, but is not limited to this. The device-related information 1202 may be any information as long as it can indicate the conditions of the device 300 that can be allocated to a block. For example, the device-related information 1202 may include multiple model numbers, or may include only the type of device, the purpose of use, the location of the device, or any combination of these.

[0072] (Step S214) The device manager 200 allocates a device 300 linked to the device manager 200 to each block included in the execution content declaration based on information capable of identifying the facilities 2a to 2d. For example, the device manager 200 allocates a device DEV001 having a 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 multiple blocks 1201 shown in Fig. 10. Note that when the operating state of the device 300 or the connection state to the cloud is managed, the allocation of an operating device 300 may be prohibited.

[0073] For example, if the multiple blocks shown in Figure 10 are not registered as connected to the facility indicated by the received facility information, that is, if the target device does not exist in the facility, the device manager 200 notifies the sequence manager 100 that the application whose execution content is declared cannot be executed.

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

[0075] (Step S216) The device 300 validates a block before executing the block, i.e., before executing the block, the device 300 checks whether the block will cause problems in the device 300 if executed, e.g., the device 300 checks for safety and / or efficiency issues.

[0076] Then, the device 300 changes the block based on the result of the check, thereby correcting the block so that the problem does not occur.

[0077] Such pre-execution confirmation processing will be described in further detail with reference to Fig. 11. Fig. 11 shows a flowchart of the pre-execution confirmation processing in the first embodiment.

[0078] (Step S2165) The device 300 acquires a rule corresponding to the application. Here, the rule prohibits at least one of the two or more predetermined blocks from being executed when one of the two or more predetermined blocks is executed. For example, the device 300 acquires a combination of the two or more predetermined blocks by referring to a rule database. The rule database may be included in the device 300, the sequence manager 100, or the device manager 200, for example.

[0079] The rule may be, for example, a rule that prohibits the first block from being executed before the second block is executed. More specifically, the rule may be, for example, a rule that prohibits the first block from being executed from the start of an application until the second block is executed. Such a first block may be, for example, a block for setting an environment in which the second block can be executed. Specifically, the first block may be a drain block for realizing a water-free environment before the second block (for example, a dehydration block) is executed.

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

[0081] Fig. 12 shows an example of a rule database in the first embodiment. Rules 1301 and 1302 are registered in the rule database 1300 in Fig. 12. Each of the rules 1301 and 1302 has information on a combination of two or more predetermined blocks. For example, the rule 1301 indicates that a drain block is prohibited from being executed before a spin block is executed. Also, for example, the rule 1302 indicates that a blowing block is prohibited from being executed after a drying block.

[0082] As such a combination of two or more predetermined blocks, for example, a combination of blocks for preventing the internal space of the housing 21, the actuator 22, or the heater 23 from reaching a durable temperature is determined in advance. The durable temperature means a rated temperature and indicates a 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 unallowable temperature. In other words, the rule is a rule for ensuring that a combination of two or more predetermined blocks is executed in order to prevent the internal space of the housing 21, the actuator 22, or the heater 23 from reaching a durable temperature.

[0083] 12, each of the rules 1301 and 1302 indicates a combination of two blocks, but is not limited thereto. For example, the rule may indicate a parameter range of at least one of the two blocks in addition to the combination of the two blocks. Furthermore, the rule is defined so that a wide range of blocks can be used for the development of a wide variety of applications.

[0084] For example, the rules for safe operation of the actuator 22 or the heater 23 change depending on the environment of the device 300, such as the internal space of the housing 21, and the rules may not depend only on the performance of the actuator 22 or the heater 23 itself. Therefore, in order to operate safely in any environment, the rules place a high emphasis on safety, which reduces the room for development of a wide variety of applications. Therefore, the rules may be associated with information on the device 300, etc., independent of the application. By using such rules, both safety and development of a wide variety of applications can be achieved.

[0085] The rules relate to the range in which the actuator 22 or the heater 23 can be safely driven. The range in which it can be safely driven may be a range that takes into consideration the start condition or end condition of the block. Consider an example of a first block and a second block that is executed after the first block. A rule can be set that assumes a case in which a load that affects the safety of the actuator 22 or the heater 23 is applied by executing the first block until the start condition of the second block is reached. In other words, the rule depends on the performance of the actuator 22 or the heater 23, the start condition or end condition of the block, etc.

[0086] Each of the rules 1301 and 1302 further includes a type and a manufacturer name. This allows the device 300 to acquire a rule corresponding to the actuator 22 or the heater 23 driven by the block from the rule database 1300. For example, the device 300 acquires the rules 1301 and 1302 for WM-0001 by referring to the rule database 1300 in FIG.

[0087] (Step S2166) The device 300 determines whether or not multiple blocks included in the application correspond to the rules.

[0088] For example, when a rule prohibits a first block from being executed before a second block is executed, if an application includes a second block and does not include a first block before the second block, the device 300 determines that the blocks included in the application meet the rule. Specifically, when an application includes a second block and does not include a first block, the device 300 determines that the blocks included in the application meet the rule. Also, when an application includes a second block and includes a first block only after the second block, the device 300 determines that the blocks included in the application meet the rule. On the other hand, when an application includes a second block and includes a first block before the second block, the device 300 determines that the blocks included in the application do not meet the rule. Also, when an application does not include both a first block and a second block, the device 300 determines that the blocks included in the application do not meet the rule. Furthermore, when the application includes the first block and does not include the second block, the device 300 determines that the multiple blocks included in the application do not satisfy the rule.

[0089] For example, if the rule prohibits the third block from being executed after the second block is executed, and if the application includes the second block and does not include the third block after the second block, the device 300 determines that the multiple blocks included in the application correspond to the rule. Specifically, if the application includes the second block and does not include the third block, the device 300 determines that the multiple blocks included in the application correspond to the rule. If the application includes the second block and includes the third block only before the second block, the device 300 determines that the multiple blocks included in the application correspond to the rule. On the other hand, if the application includes the second block and includes the third block after the second block, the device 300 determines that the multiple blocks included in the application do not correspond to the rule. If the application does not include both the second block and the third block, the device 300 determines that the multiple blocks included in the application do not correspond to the rule. Furthermore, when the application includes the third block and does not include the second block, the device 300 determines that the multiple blocks included in the application do not satisfy the rule.

[0090] If it is determined that multiple blocks do not match the rule (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 multiple blocks match the rule (Yes in S2166), the device 300 proceeds to the next step S2167.

[0091] (Step S2167) The device 300 changes the application and ends the pre-execution confirmation process. The change of the application means (i) adding a new block to the multiple blocks, (ii) changing the order of the multiple blocks, (iii) deleting any of the multiple blocks, or (iv) any combination thereof. These methods of changing the application may be defined in the rules.

[0092] A specific example of such an application change will be described with reference to FIGS.

[0093] Fig. 13 shows an example of a change in the application in the first embodiment. In Fig. 13, a drain block (first block) is added before the spin block (second block). This allows water to be drained from inside the washing machine before the spin block is executed, and enables safe driving of actuator 22 during spinning.

[0094] Fig. 14 shows an example of a change in the application in the first embodiment. In Fig. 14, an air blowing block (third block) is added after a drying block (second block). This makes it possible to lower the temperature of the washing machine by blowing air after the temperature of the washing machine has risen due to drying, thereby preventing users from getting burned by the washing machine and improving the safety of the washing machine.

[0095] Although the change of the application for the washing machine has been described here, the application can be changed in the same manner for other devices.

[0096] For example, if an application for a rice cooker includes a steaming block (second block) that utilizes the steam function, and does not include a steam warming block (first block) before the steaming block, a steam warming block may be added before the corresponding block 10 minutes before the steaming block is executed. This allows the steam heater to be warmed before the steaming block is executed, and allows for smooth steam irradiation when the steaming block is executed.

[0097] Also, for example, if an application for a microwave oven includes a steaming block (second block) and does not include a steam warming block (first block) before the steaming block, a steam warming block may be added before the steaming block 10 minutes before the steaming block is executed. This allows the steam heater to be warmed before the steaming block is executed, and allows for smooth steam irradiation when the steaming block is executed. Also, if an application for a microwave oven includes an oven block (second block) and does not include a blowing block (third block) after the oven block, a blowing block may be added after the oven block. This allows the inside 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 the execution of the next block can be expedited.

[0098] (Step S217) The device 300 transmits the result of the pre-execution check to the device manager 200. If the block has been modified, the modified block may be transmitted to the device manager 200.

[0099] (Step S218) The device manager 200 returns the result of the device allocation to the sequence manager 100. If the block is changed in the pre-execution confirmation, the application including the changed block may be sent to the sequence manager 100.

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

[0101] (Step S222) The UI 400 displays a list of devices on which the application is executed, and also displays a graphical user interface (GUI) for receiving an input from the user to confirm execution of the application. The UI 400 may also receive a change in device allocation from the user. The UI 400 does not have to display a list of devices.

[0102] (Step S224) The UI 400 receives an input of execution confirmation from the user and transmits an application start instruction to the device manager 200. The device manager 200 transfers the application start instruction to the sequence manager 100.

[0103] It should be noted that steps S220, S222, and S224 provide the user with additional information before the application is executed, but may be omitted since this may increase the user's workload.

[0104] With the above, the pre-application execution phase F200 ends.

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

[0106] (Step S310) Upon receiving an instruction to start the application, the sequence manager 100 selects the first block (first block) from among multiple blocks included in the application. Then, the sequence manager 100 transmits an instruction to execute the selected first block to the device manager 200.

[0107] When multiple blocks are operated in succession, the sequence manager 100 may transmit execution instructions for the multiple blocks to the device manager 200 all at once.

[0108] Based on the execution instruction for the first block received from the sequence manager 100, the device manager 200 transmits an execution instruction for the first block to the device 300 allocated to the first block.

[0109] (Step S312) The device manager 200 receives the instruction to execute the first block and updates the schedule (scheduled use time) of each device.

[0110] (Step S314) Upon receiving the instruction to execute the first block, the device 300 executes the first block.

[0111] (Step S316) When the execution of the first block is completed, the device 300 transmits a completion notification to the device manager 200. If an error occurs during the execution of the first block, the device 300 may transmit error information to the device manager 200. Furthermore, the device 300 may transmit event information to the device manager 200 during the execution of the first block. As the event information, for example, a sensor output value or an equipment operation can be used, but is not limited to this. The device manager 200 transfers the completion notification and / or various information received from the device 300 to the sequence manager 100.

[0112] (Step S318) Upon receiving a completion notification of the first block, the sequence manager 100 updates the progress of the application and selects the next block (second block). Furthermore, when the sequence manager 100 receives error information, it executes a process corresponding to the error information (e.g., returning to the previous block, returning to the first block, waiting, etc.). Information on the process corresponding to the error information may be, for example, stored in the sequence manager 100 in advance, or may be received from the user via the UI 400. Furthermore, when the sequence manager 100 receives event information, it executes a process corresponding to the event information. For example, if the event information includes an output value of a water level sensor, the sequence manager 100 updates a water level parameter for displaying the water level included in the block being executed.

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

[0114] The instruction to execute the second block may be directed to the same device as the instruction to execute the first block (S310), or may be directed to a different device.

[0115] Note that, like the execution instruction for the first block, the execution instruction for the second block may be transmitted to the device manager 200 as a set of execution instructions for a plurality of blocks.

[0116] The subsequent processes are the same as those for the first block (S312 to S318), and therefore illustrations and explanations 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.

[0117] In this example, the execution of the blocks is instructed one by one in sequence, but this is not limiting. For example, the execution of multiple blocks to which the same device is assigned may be instructed collectively. In this case, it may be possible to check in advance whether each block satisfies the parameter range for function execution, or to download a block corresponding to a change to the device side before execution. Also, for example, an instruction to execute each block may be given to multiple devices.

[0118] [1.4 Effects, etc.] As described above, an environment in which a wide variety of applications can be developed is provided by using an application including blocks and a rule database, and it is possible to safely drive the actuator 22 that physically moves or the heater 23 that outputs thermal energy for the application freely developed in that environment. In other words, an environment in which applications can be freely developed is provided, and a function for ensuring safety independent of the application can be provided. As a result, for example, it becomes possible to develop a wide variety of applications with a high degree of freedom and a rule database for ensuring safety in parallel, making it possible to develop a wide variety of applications at an early stage.

[0119] Even after an application has been provided, it is possible to change the application to one that ensures greater safety by modifying the rule database. Even if it becomes necessary to improve a situation that the manufacturer did not anticipate in advance, it is possible to support all applications by updating the rule database, without having to modify the diverse and diverse applications themselves, because the rule database is defined independently of the applications.

[0120] It is also possible to consider a method of maintaining a rule database for error handling by detecting the state when the application is executed without modifying the application itself. However, this method of handling always involves dealing with an error after it has occurred, which means allowing situations where the home appliance is overloaded or where safety cannot be guaranteed. Therefore, it is possible to ensure safety by maintaining a rule database independent of the application and modifying the content of the application by referring to the rule data.

[0121] The device 20 in this embodiment includes at least one of the actuator 22 and the heater 23, and a control unit 24 that controls the at least one of the actuator 22 and the heater 23. The control unit 24 obtains an application defined by a plurality of blocks that drive the at least one of the actuator 22 and the heater 23, refers to a rule that prohibits at least one of the remaining two or more specified blocks from being executed when one of the two or more specified blocks is executed, and if the multiple blocks included in the application satisfy the rule, modifies the application and drives the at least one of the actuator 22 and the heater 23 based on the modified application.

[0122] 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 is possible to develop applications using blocks that abstract the control of the device 20, and a wide variety of applications can be developed not only by manufacturers but also by third parties, and these applications can be easily executed on the device 20. Furthermore, if an application corresponds to a rule that prohibits at least one of the remaining two or more blocks from being executed when one of the two or more predetermined blocks is executed, 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 two or more predetermined blocks is executed in combination with at least one of the remaining two or more predetermined blocks. In other words, even if an application developer mistakenly instructs to execute a block that is not allowed to be executed alone, it is possible to prevent an application that cannot safely control the device 20 from being executed. Therefore, even if an application developer creates an application that places more importance on suitability to the user than on 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.

[0123] Also, for example, in device 20 of this embodiment, control unit 24 may modify the application by (a) adding a new block to the multiple blocks, (b) changing the order of the multiple blocks, or (c) deleting any of the multiple blocks.

[0124] More specifically, for example, in device 20 in this embodiment, the application includes information on the order in which each of the multiple blocks is executed, the two or more predetermined blocks include a first block and a second block, the rule prohibits the first block from being executed before the second block is executed, and control unit 24 may modify the application by adding the first block before the second block when the application includes the second block but does not include the first block before the second block.

[0125] For example, in device 20 of this embodiment, the application may include information on the order in which each of the multiple blocks is executed, the two or more predetermined blocks may include a first block and a second block, the rule may prohibit the first block from 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, control unit 24 may change the application by changing the order of the first block to be before the order of the second block.

[0126] For example, in device 20 of this embodiment, the application may include information on the order in which each of the multiple blocks is executed, the two or more predetermined blocks may include a first block and a second block, the rule may prohibit the first block from being executed before the second block is executed, and control unit 24 may modify the application by deleting the second block when the application includes the second block and does not include the first block before the second block.

[0127] According to these, it is possible to ensure that a first block is executed before a second block by adding a new block, changing the order of blocks, or deleting a block before an application is executed. Therefore, application developers can freely develop applications by lowering the priority of considering the safe operation of the actuator 22 and the heater 23. Furthermore, developers of software incorporated in the device 20 that controls the actuator 22 and the heater 23 can allow execution of blocks without checking the safety of each application every time.

[0128] For example, in device 20 of this embodiment, the application may include information on the order in which each of the multiple blocks is executed, the two or more predetermined blocks may include a second block and a third block, the rule may prohibit the third block from being executed after the second block is executed, and control unit 24 may modify the application by adding a third block after the second block when the application includes the second block but does not include the third block after the second block.

[0129] For example, in device 20 of this embodiment, the application includes information on the order in which each of the multiple blocks is executed, the two or more predetermined blocks include a second block and a third block, the rule prohibits the third block from being executed after the second block is executed, and when the application includes the second block and the third block and does not include the third block after the second block, control unit 24 may change the application by changing the order of the third block to be later than the order of the second block.

[0130] Also, for example, in device 20 of this embodiment, the application may include information on the order in which each of the multiple blocks is executed, the two or more predetermined blocks may include a second block and a third block, the rule may prohibit the third block from being executed after the second block is executed, and 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.

[0131] For example, in device 20 of this embodiment, an application includes information on a plurality of blocks and information on the order in which each of the blocks is to be executed, and if a rule includes information that at least one of the plurality of blocks cannot be executed, error information may be presented to the developer indicating that the application cannot be developed or information on the block that cannot be executed.

[0132] According to these, it is possible to ensure that a third block is executed after a second block by adding a new block, changing the order of blocks, or deleting a block before an application is executed. Therefore, application developers can freely develop applications by lowering the priority of considering the safe operation of the actuator 22 and the heater 23. Furthermore, developers of software incorporated in the device 20 that controls the actuator 22 and the heater 23 can allow execution of blocks without checking the safety of each application every time.

[0133] Also, for example, in the device 20 of this embodiment, the rule may be a rule for ensuring that two or more specified blocks are executed in combination to prevent at least one of the actuator 22 and the heater 23 from reaching a durable temperature.

[0134] This makes it possible to prevent the actuator 22 and / or the heater 23 from reaching their durable temperature when the application is executed, thereby improving the safety of the device 20 controlled by the application.

[0135] Also, for example, the device 20 in this embodiment may include a housing 21 having an internal space, and the first rule may be a rule for ensuring that two or more predetermined blocks are executed in combination to prevent the internal space from reaching a durable temperature.

[0136] This makes it possible to prevent the internal space of the housing 21 from reaching a durable temperature when the application is executed, thereby improving the safety of the device 20 controlled by the application.

[0137] (Modification of the first embodiment) In the above-mentioned first embodiment, the processing of the system 1 has been described with reference to Fig. 8, but the processing flow is not limited to this. In particular, for 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 to this. Therefore, some modified examples of the sequence diagram of the system 1 will be specifically described with reference to Figs. 15A to 15E.

[0138] Fig. 15A is a sequence diagram of the system 1 in Variation 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).

[0139] This allows the software built into the device 300 to have a simple configuration in which a pre-execution check is performed immediately before the execution of a block. In other words, steps S215 and S217 can be omitted. As a result, it becomes unnecessary to build functions and communication APIs for performing these processes into the device 300, and it becomes possible to reduce the memory usage of the microcomputer mounted on the device 300.

[0140] 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 is changed or an instruction to stop execution of a block is issued as a result of the pre-execution check, the check result may be notified to the device manager 200 or the UI 400.

[0141] Fig. 15B is a sequence diagram of the system 1 in the second modification of the first embodiment. In Fig. 15B, the pre-execution check (S216) is performed by the device manager 200 when the device manager 200 performs the allocation result notification (S218).

[0142] As a result, the software built into the device 300 does not need to include the function of the pre-execution check (S216). This makes it possible to reduce the use of memory in the device 300, leading to a reduction in the cost of the device 300.

[0143] In addition, in the above embodiment 1, the block execution (S314) by the device 300 is described as being performed based on instructions from the sequence manager 100 implemented in the cloud server 10, but the form in which the block execution (S314) is performed is not limited to this.

[0144] For example, the notification content from the sequence manager 100 may be stored in a memory in the device 300, and a block may be executed in response to a direct instruction from a user via a UI of the apparatus 20 or a UI 400 of the terminal 30. In other words, an application may be downloaded into the device, and the user may execute the application at any timing.

[0145] Fig. 15C is a sequence diagram of the system 1 in Modification 3 of the embodiment 1. In Fig. 15C, in the application execution phase F300, the sequence manager 100 notifies the device 300 of one or more blocks to be executed by the device 300 (S310C). Then, the device 300 stores the notified one or more blocks in a memory (S311C).

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

[0147] As described above, by storing the blocks in the device 300, the device 300 can be controlled without communication between the device manager 200 and the device 300, thereby reducing the risk that the operation of the device 300 will stop or be delayed due to unstable communication between the cloud server 10 and the apparatus 20. Therefore, this modification is more effective in an environment where the reliability of communication with the cloud server 10 is low and / or for a device 300 where a stop or delay in the operation of the device during the execution of an application cannot be tolerated.

[0148] In addition, in the third modification, as in the first embodiment, 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. In other words, the third modification may be combined with the first or second modification.

[0149] Fig. 15D is a sequence diagram of the system 1 in Modification 4 of the embodiment 1. Modification 4 corresponds to a combination of Modification 1 and Modification 3. In Modification 4, as shown in Fig. 15D, the pre-execution confirmation (S216) is performed by the device 300 immediately before the device 300 receives an execution instruction (S312C) and executes a block (S314).

[0150] When a block is downloaded to the device 300 and the user executes the block at a timing of his / her choice, there is a high possibility that the timing of downloading the block and the timing of executing the block will differ significantly. That is, the block may be executed several days, several months, or several years after the block is downloaded to the device 300. In that case, the deterioration level of the device 300 may change between the time the block is downloaded and the time the block is executed. Therefore, in the device 300 in which the execution of the block is affected by the deterioration level, the device 300 performs a pre-execution check immediately before the block is executed, thereby enabling the pre-execution check according to the deterioration level.

[0151] Fig. 15E is a sequence diagram of the system 1 in Modification 5 of the 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 check (S216) is performed by the device manager 200 directly when the device manager 200 performs the allocation result notification (S218).

[0152] (Embodiment 2) Next, a description will be given of embodiment 2. In this embodiment, the main difference between the embodiment and the above embodiment 1 is that the pre-execution confirmation is skipped if the application has already been authenticated. The following description will focus on the differences between the embodiment and the above embodiment 1.

[0153] It should be noted that the hardware configuration and functional configuration of the system 1 in this embodiment are similar to those in the above-described first embodiment, and therefore illustration and description thereof will be omitted.

[0154] [2.1 Processing] In this embodiment, the process is the same as that of the above-mentioned embodiment 1, except that step S216 of the pre-execution confirmation in the above-mentioned embodiment 1 is replaced by step S216A. Therefore, step S216A of the pre-execution confirmation process will be described with reference to FIG.

[0155] FIG. 16 shows a flowchart of the pre-execution confirmation process in the second embodiment.

[0156] (Step S2161A) The device 300 acquires application authentication information. The application authentication information includes information indicating that an application has been authenticated if the application has been authenticated.

[0157] Application authentication is, for example, a mechanism for guaranteeing the quality of an application, and enables confirmation of the safety and / or identity (that the application has not been tampered with), etc. An example of an application to which authentication information is assigned will be described. When the change history of the application's code indicates that no changes have been made to the parameter ranges, information indicating that the application has been authenticated is associated with the application.

[0158] (Step S2162A) The device 300 determines whether the application has been authenticated based on the acquired app information. If it is determined that the application has been authenticated (Yes in S2162A), the device 300 skips the following 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.

[0159] [2.2 Effects, etc.] As described above, the device 20 in this 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 that is defined by a plurality of blocks that drive at least one of the actuator 22 and the heater 23 and includes information indicating whether or not the application has been authenticated. If the application does not include information indicating that it is authenticated, the control unit 24 refers to a rule that indicates that two or more specified blocks are executed in combination, and if the plurality of blocks included in the application do not fall under the rule, the control unit 24 modifies the application and drives at least one of the actuator 22 and the heater 23 based on the modified application.

[0160] This makes it possible to achieve the same effects as in the first embodiment. Furthermore, when an application has not been authenticated, processing involving modification of the application can be performed, and when an application has been authenticated, the processing load can be reduced. Therefore, there is no need to perform a determination process for block combinations for all applications, and management through authentication not only reduces the processing load, but also provides design standards for block combinations, enabling application developers to create easier and safer designs.

[0161] Also, for example, in the device 20 according to the present embodiment, when the device 20 has information indicating that the application has been authenticated, the device 20 does not need to refer to the first rule and does not need to change the application.

[0162] According to this, if the application has been authenticated, the process for changing the block can be skipped, and the processing load can be reduced.

[0163] (Embodiment 3) Next, a description will be given of embodiment 3. In this embodiment, the main difference between the embodiment and the first embodiment is that the pre-execution confirmation is skipped when the creator of the application and the creator of the device are the same. The following description will focus on the differences between the embodiment and the first embodiment.

[0164] It should be noted that the hardware configuration and functional configuration of the system 1 in this embodiment are similar to those in the above-described first embodiment, and therefore illustration and description thereof will be omitted.

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

[0166] FIG. 17 shows a flowchart of the pre-execution confirmation process in the third embodiment.

[0167] (Step S2161B) The device 300 acquires application creator information. The application creator information indicates the creator of the application. The creator means a company, individual, or organization that created the application, and may also be called a developer or author.

[0168] (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, or organization that manufactured the device 300 (i.e., the apparatus 20), and may also be called a manufacturer.

[0169] (Step S2164B) The device 300 determines whether the creator of the application is different from the creator of the device 300. When the creator of the application is an individual and the creator of the device 300 is a company, the device 300 may determine that the creator of the application is the same as the creator of the device 300 if the company to which the creator of the application belongs matches the creator of the device 300. Furthermore, the device 300 may determine that the creator of the application is the same as the creator of the device 300 if the creator of the application is a development contractor of the creator of the device 300.

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

[0171] [3.2 Effects, etc.] As described above, the device 20 in this 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 and including information indicating the creator, acquires information indicating the creator of the device 20, and if the creator of the application is different from the creator of the device 20, refers to a rule indicating that two or more specified blocks are executed in combination, and if the plurality of blocks included in the application do not satisfy the rule, modifies the application and drives at least one of the actuator 22 and the heater 23 based on the modified application.

[0172] This makes it possible to achieve the same effects as those of the first embodiment. Furthermore, when the creator of the application is different from the manufacturer of the device 20, processing involving modification of the application can be performed, and when the creator of the application is the same as the manufacturer of the device 20, the processing load can be reduced.

[0173] (Embodiment 4) Next, a fourth embodiment will be described. In this embodiment, the main difference is that a pre-execution check is performed using a rule corresponding to the deterioration level of the device. The following describes this embodiment, focusing on the differences from the first embodiment.

[0174] It should be noted that the hardware configuration and functional configuration of the system 1 in this embodiment are similar to those in the above-described first embodiment, and therefore illustration and description thereof will be omitted.

[0175] [4.1 Processing] In this embodiment, the processing is the same as that in the above-mentioned embodiment 1, except that step S216 of the pre-execution confirmation in the above-mentioned embodiment 1 is replaced by step S216C. Therefore, step S216C of the pre-execution confirmation processing will be described with reference to FIG.

[0176] FIG. 18 shows a flowchart of the pre-execution confirmation process in the fourth embodiment.

[0177] (Step S2163C) The device 300 acquires device deterioration information. The device deterioration information indicates a deterioration level of the actuator 22 and / or the heater 23 included in the apparatus 20. There are no particular limitations on the method for detecting the deterioration level, and the deterioration level may be detected by a sensor, for example.

[0178] (Step S2165C) The device 300 acquires a rule corresponding to the deterioration level. For example, the device 300 refers to a rule database to acquire a rule corresponding to the deterioration level of the actuator 22 or the heater 23 that the block drives.

[0179] The items that determine the deterioration level are, for example, the number of times the actuator 22 and / or heater 23 included in the device 300 have been used, the duration of use, or the number of days of use from the start of operation to the present. These items are expected to increase in a roughly proportional relationship with the user's use. Therefore, a rule is determined such that the deterioration level increases as the value corresponding to the item increases.

[0180] Furthermore, items that determine the deterioration level are, for example, the sum of the temperatures of the heater 23, or the degree of reproduction of the input and output of the actuator 22 and / or the heater 23. The sum of the temperatures of the heater 23 is a value obtained by adding the temperatures 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 a ratio of the execution temperature to the limit temperature of the heater 23, or a difference of the execution temperature to the limit temperature of the heater 23.

[0181] The degree of reproduction 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 of the actual output value for a given input to the output value defined in the relationship is used.

[0182] [4.2 Effects, etc.] As described above, the device 20 in this 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 has deteriorated, and refers to a rule that corresponds to the deterioration information and indicates that two or more specified blocks are executed in combination. If the plurality of blocks included in the application do not fall under 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.

[0183] This makes it possible to achieve the same effects as those of embodiment 1. Furthermore, it is possible to use rules corresponding to the deterioration information of device 20, and by using blocks, it is possible to execute a drive instruction to actuator 22 and / or heater 23 from the application side while taking into consideration the performance of the device that deteriorates over time, thereby further improving the safety of device 20 controlled by the application.

[0184] (Embodiment 5) In the above-mentioned first to fourth embodiments, a block included in an application that has already been distributed is changed before the application is executed. In the present embodiment, the application is changed before the application is distributed, that is, at the stage of developing or producing the application, and in this respect, the present embodiment differs from the above-mentioned first to fourth embodiments. Hereinafter, the present embodiment will be described in detail, focusing on the differences from the above-mentioned first to fourth embodiments. Note that the present embodiment may be the same as the above-mentioned first to fourth embodiments, except for the timing of the change in the application. Furthermore, among the components in the present embodiment, the same components as those in the first to fourth embodiments are denoted by the same reference numerals as those in the first to fourth embodiments, and detailed description thereof will be omitted.

[0185] [5.1 Configuration] FIG. 19 is a diagram illustrating an example of the configuration of an information processing system used for developing an application.

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

[0187] The block database 41 is also called a block DB, and is a recording medium storing a block list including a plurality of functional blocks. These functional blocks are also called blocks, as in the first to fourth embodiments. The rule database 42 is also called a rule DB, and is a recording medium storing a plurality of rules. The rule database 42 may be the same as the rule database 1300 shown in FIG. 12, for example. These recording media are a hard disk, a RAM (Random Access Memory), a ROM (Read Only Memory), a semiconductor memory, or the like. Such recording media may be volatile or non-volatile.

[0188] 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 process described below by executing, for example, instructions or software programs stored in the memory 52, and displays characters or images 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, for example, configured as a keyboard, a touch sensor, a touch pad, or a mouse. Such a development tool 50 is used, for example, by an application developer to generate a sequence or an application including a plurality of function blocks. In this embodiment, the development tool 50 is an example of an information processing device.

[0189] The application providing server 60 acquires the application generated by the development tool 50 from the development tool 50 via a communication network and holds the application. Then, the application 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.

[0190] FIG. 20 is a diagram showing an example of information stored in each of the block database 41 and the rule database 42. As shown in FIG.

[0191] As shown in FIG. 20(a), the block database 41 stores, for each of a plurality of types of apparatus 20, a list of functional blocks for driving that type of apparatus 20 as the above-mentioned block list. 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 multi-cooker. These functional blocks may be the same as or similar to the blocks in the above-mentioned embodiments 1 to 4.

[0192] As shown in FIG. 20(b), the rule database 42 stores, for each of a plurality of types of apparatus 20, a rule group consisting of at least one rule that is applied to the type of apparatus 20. For example, rule groups 42a to 42e are stored. Rule group 42a includes rules R100 and R11 to R13 that are applied to an oven range. Rule group 42b includes rules R200 and R21 to R23 that are applied to a multi-cooker. Rule group 42d includes rules R400 and R41 to R43 that are applied to a washing machine. These rules may be the same as or similar to the rules in the above-mentioned embodiments 1 to 4.

[0193] Here, each of the oven range rules R11 to R13 is a dedicated rule that applies to an oven range of a predetermined model manufactured by a predetermined manufacturer, for example. Similarly, each of the multi-cooker rules R21 to R23 is a dedicated rule that applies to a multi-cooker of a predetermined model manufactured by a predetermined manufacturer, for example. Similarly, each of the washing machine rules R41 to R43 is a dedicated rule that applies to a washing machine of a predetermined model manufactured by a predetermined manufacturer. Specifically, each of the dedicated rules R41 to R43 may be, for example, the rule 1301 or 1302 shown in FIG. 12.

[0194] On the other hand, the rule R100 for the oven range is a general rule for the oven range that can be applied to, for example, each of a plurality of types of oven ranges.Similarly, the rule R200 for the multi-cooker is a general rule for the multi-cooker that can be applied to, for example, each of a plurality of types of multi-cookers.

[0195] FIG. 21 is a diagram showing an example of a general rule contained in the rule database 42. As shown in FIG.

[0196] The group of washing machine rules 42d stored in the rule database 42 includes, for example, a general rule R400 shown in FIG. 21(a). This general rule R400 is a rule applicable to each of a plurality of types of washing machines, and prohibits at least one of the remaining two or more blocks from being executed when one of the two or more blocks is executed. That is, the rule indicates requirements regarding the combination of the two or more blocks, as in the above-mentioned first to fourth embodiments. Hereinafter, the combination of the two or more blocks is simply referred to as a combination, and the requirements regarding the combination are also referred to as a combination rule. 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 functional block, which is the first block, and the spinning functional block, which is the second block. That is, the first combination rule indicates that the drainage block is prohibited from being executed before the spinning block is executed. The second combination rule is a requirement for the drying functional block, which is the second block, and the blowing functional block, which is the third block. That is, the second combination rule indicates that it is prohibited for a drying block not to be executed after a ventilation block.

[0197] The drain block is a functional block that causes the washing machine to drain as a function, and the spin block is a functional block that causes the washing machine to spin water as a function. Similarly, the dry block is a functional block that causes the washing machine to dry as a function, and the air blowing block is a functional block that causes the washing machine to blow air as a function.

[0198] Furthermore, the multiple types of washing machines to which the general rule R400 applies include washing machines provided by multiple manufacturers. If each manufacturer provides multiple models of washing machines, the multiple types of washing machines include those multiple models. In other words, the combinations shown in the general rule R400 apply to any washing machine, regardless of manufacturer and model.

[0199] Furthermore, the general rule R400 for the washing machine may indicate combination rules that are applied to washing machines of multiple manufacturers, as shown in (b) of Fig. 21. For example, the general rule R400 indicates combination rules that are applied to multiple models of washing machines provided by manufacturer "Company A" and combination rules that are applied to multiple models of washing machines provided by manufacturer "Company B".

[0200] In this way, the rule in this embodiment, like the first to fourth embodiments, is a rule that prohibits at least one of the two or more predetermined blocks from being executed when one of the two or more predetermined blocks is executed. The two or more predetermined blocks include a first block and a second block, and the rule prohibits the first block from being executed before the second block is executed. In other words, the rule prohibits the first block from being executed from the start of the application until the second block is executed. Like the first to fourth embodiments, such a first block is a block for setting an environment in which the second block can be executed.

[0201] Alternatively, the two or more predetermined blocks include a second block and a third block, and the rule prohibits the third block from being executed after the second block is executed. That is, the rule prohibits the third block from being executed from the time the second block is executed until the end of the application. As in the first to fourth embodiments, such a third block is a block for returning the environment changed by the execution of the second block to the environment before the execution of the second block.

[0202] In addition, the rule in this embodiment may be, similar to embodiments 1 to 4, a rule for ensuring that two or more specified blocks are executed in combination to prevent the internal space of the housing 21, the actuator 22, or the heater 23 from reaching a durable temperature.

[0203] 5.2 Processing FIG. 22 is a sequence diagram of the information processing system 2000.

[0204] (Step S11) First, the development tool 50 installs one or more function blocks. Specifically, the development tool 50 acquires one or more function blocks from the block database 41 by downloading them. For example, the development tool 50 may acquire a block list 41a of an oven range, or may acquire only some of the function blocks in the block list 41a. Then, the development tool 50 makes the acquired one or more function blocks available for generating a sequence.

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

[0206] (Step S12) Next, the development tool 50 generates a sequence. Specifically, the development tool 50 generates a sequence using one or more downloaded function blocks in response to an input operation by an operator to the input unit 54. The operator may be a developer of an application that is a sequence. In this embodiment, the development tool 50 refers to the above-mentioned rules in step S12 and modifies the application based on the rules.

[0207] (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 contents 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) or the like. As a result, the sequence is transmitted to the application providing server 60 and stored in the application providing server 60 as an application.

[0208] (Step S14) Next, the user of the terminal 30 operates the UI 400 of the terminal 30 to access the application providing server 60 and view a list of applications stored in the application providing server 60. Then, the UI 400 selects an application from the list in response to the user's operation, and requests the application providing server 60 to download the application.

[0209] (Step S15) When the application providing server 60 accepts a download request from the UI 400, it downloads the selected application to the sequence manager 100 associated with that user.

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

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

[0212] (Step S22) Next, the development tool 50 performs a process of arranging the function blocks in response to an input operation by the operator to the input unit 54. That is, the development tool 50 displays the multiple function blocks installed in step S21 on the display 53, and selects one function block from the multiple displayed function blocks in response to an input operation by the operator to the input unit 54. Then, the development tool 50 arranges the function block in a selected block area in a sequence generation screen on the display 53 in response to an input operation by the operator to the input unit 54. The sequence generation screen will be described later with reference to FIG. 26. That is, the operator drags and drops one of the multiple function blocks into the selected block area.

[0213] (Step S23) Next, the development tool 50 performs parameter setting processing for the functional block placed in step S22 in response to an input operation by the operator to the input unit 54. That is, the development tool 50 displays a reception image for receiving the contents of the parameters used for the functional block in the parameter setting area of ​​the above-mentioned sequence generation screen. Then, in response to an input operation by the operator to the input unit 54, the development tool 50 receives the contents of the parameters and displays the contents of the parameters in the parameter setting area. As a result, the parameters are set for the functional block.

[0214] (Step S24) Next, the development tool 50 refers to the parameter rule applied to the device 20, such as the washing machine, and determines whether the parameters set in step S23 are outside the parameter range indicated in the parameter rule, i.e., outside the unacceptable range.

[0215] (Step S25) When the development tool 50 determines in step S24 that the parameter is not outside the unacceptable range (No in step S24), the development tool 50 performs a parameter setting support process. In this parameter setting support process, the development tool 50 performs an error presentation process for presenting an error to the operator, or an automatic parameter correction process. In the automatic parameter correction process, the development tool 50 changes the parameter in the unacceptable range to a parameter within the acceptable range, thereby changing the functional block. In the error presentation process, the development tool 50 displays, for example, a message indicating that the parameter set in the immediately preceding step S23 is within the unacceptable range as an error on the display 53, and prompts the operator to change the parameter. Then, after the process of step S25 is performed, the development tool 50 repeats the process from step S23.

[0216] In addition, when the process of step S23 is performed after the automatic correction process of the parameters is performed in step S25, in that step S23, the development tool 50 displays the parameters changed by the automatic correction process in the parameter setting area. On the other hand, when the process of step S23 is performed after the error presentation process is performed in step S25, in that step S23, the development tool 50 again accepts the contents of the parameters in response to the input operation by the operator to the input unit 54, as described above. As a result, the parameters for that function block are changed. In other words, the function block is changed.

[0217] (Step S26) When the development tool 50 determines in step S24 that the parameter is outside the unacceptable range (Yes in step S24), it further determines whether or not the connection of the function block placed in step S22 is permitted. For example, in step S22, the function block is placed immediately before or after an existing block, which is another function block already placed in the selected block area. As a result, the function block is placed in a state of being connected to the existing block. In other words, the function block is placed so that the processing of the device 20 by the function block and the processing of the device 20 by the existing block are executed consecutively. In this case, the development tool 50 determines whether or not the connection of the function block to the existing block is permitted by referring to the connection rules applied to the device 20, such as a washing machine.

[0218] (Step S27) If the development tool 50 determines in step S26 that the connection is not permitted (No in step S26), the development tool 50 performs a connection support process. In this connection support process, the development tool 50 performs an error presentation process that presents an error to the operator, or an automatic connection correction process. Then, the development tool 50 repeats the process from step S22.

[0219] If the process of step S22 is performed after the automatic connection correction process is performed in step S27, then in step S22 the development tool 50 displays in the selected block area two or more function blocks reconnected by the automatic correction process. On the other hand, if the process of step S22 is performed after the error presentation process is performed in step S27, then in step S22 the development tool 50 again rearranges the function blocks in response to an input operation by the operator to the input unit 54, as described above. If the processes of steps S27 to S22 are repeated, then the development tool 50 may skip the processes of steps S23 to S25 following step S22, since the parameters of the function blocks have already been set within the allowable ranges.

[0220] (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 complete in response to an 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 complete (No in step S28), it repeats the processing from step S22. At this time, the development tool 50 selects a new block from the multiple blocks installed in step S21 in response to an input operation by the operator to the input unit 54, and places the new block in the selected block area described above.

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

[0222] That is, the development tool 50 refers to a rule applied to the device 20 such as a washing machine, and judges whether or not the sequence generated in step S28, i.e., the multiple functional blocks included in the application, corresponds to the rule. If the multiple functional blocks correspond to the rule, the development tool 50 judges that the flow of the entire sequence generated in step S28 is not permitted. On the other hand, if the multiple functional blocks do not correspond to the rule, the development tool 50 judges that the flow of the entire sequence generated in step S28 is permitted. Note that the rule referred to in step S29 is the above-mentioned general rule or dedicated rule applied to the device 20, and more specifically, a combination rule included in the rule. Also, the method of judging whether or not the rule corresponds to the rule is the same as in the above-mentioned first to fourth embodiments.

[0223] (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 a placement support process. In this placement support process, the development tool 50 performs a placement error presentation process that presents an error to the operator, or an automatic correction process for the placement of the functional blocks. Then, the development tool 50 repeats the process from step S22.

[0224] In addition, when the process of step S22 is performed after the automatic correction process of the placement is performed in step S30, in step S22, the development tool 50 displays two or more function blocks rearranged by the automatic correction process in the selected block area. In addition, when the processes of steps S30 to S22 are repeated, the development tool 50 may skip the processes of steps S23 to S25 after step S22, since the parameters of the function blocks have already been set within the allowable ranges. In addition, the development tool 50 may skip the processes of steps S26 and S27, since the connection of the function blocks has already been permitted. Furthermore, the development tool 50 may also skip the process of step S28.

[0225] FIG. 24 is a flowchart showing an example of the automatic layout correction process.

[0226] (Step S41) The development tool 50 selects M (M is an integer not less than 2 and not more than N) functional blocks from N (N is an integer not less than 2) functional 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. In other words, the development tool 50 selects each of the M functional blocks as a selected 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 controlled device, in response to an input operation by the operator to the input unit 54.

[0227] (Step S42) Next, the development tool 50 generates a sequence, i.e., an application, by sequentially arranging each of the selected M functional blocks in the above-mentioned selected block area. That is, the development tool 50 generates an application including at least M selected blocks by setting the order in which each of the at least M selected blocks is executed according to an input operation by an operator to the input unit 54. Each of the M selected blocks included in this application may include a parameter for driving at least one of the actuator 22 and the heater 23.

[0228] (Step S43) Next, if each of the M functional blocks is a block for driving a washing machine, the development tool 50 refers to a rule applied to the washing machine. For example, if the application generated in step S42 is applied to a plurality of types of washing machines, the development tool 50 refers to a general rule R400. Also, if the application generated in step S42 is applied to a washing machine of a specific type, the development tool 50 refers to a rule among the dedicated rules R41 to R43 that is associated with the washing machine of that type. That is, the development tool 50 judges whether the application generated in step S42 is an application dedicated to a controlled device or a general-purpose application that is applied to the controlled device and devices other than the controlled device. Then, the development tool 50 refers to a rule candidate according to the judgment result of the application, among a plurality of rule candidates that prohibit at least one of the remaining two or more predetermined blocks from being executed when one of the two or more predetermined blocks is executed, as the above-mentioned rule.

[0229] (Step S44) Then, the development tool 50 determines whether or not the M function blocks set in step S42 correspond to the above-mentioned rule. That is, the development tool 50 determines whether or not the M function blocks included in the application correspond to the combination rule included in the rule.

[0230] (Step S45) Here, when the development tool 50 determines that the M functional blocks correspond to 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 two or more blocks from being executed when one of the two or more blocks is executed, and changes the application when the M selected blocks included in the application correspond to the rule. 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 of the M selected blocks. These methods of changing the application may be defined in the rule.

[0231] (Step S46) The development tool 50 then outputs the modified application.

[0232] FIG. 25 is a flowchart showing an example of a placement error presentation process.

[0233] (Steps S41 to S44) The development tool 50 executes the processes of steps S41 to S44, similarly to the example shown in FIG.

[0234] (Step S51) When the development tool 50 determines in step S44 that the M functional blocks fall under the rule (Yes in step S44), it displays an error on the display 53 without automatically changing the application. This presents the error to the operator. That is, in the processes of steps S43, S44, and S51, the development tool 50 presents the error by referring to the rule. Specifically, the development tool 50 refers to a rule that prohibits at least one of the remaining two or more predetermined blocks from being executed when one of the two or more predetermined blocks is executed, and presents an error to the operator if the M selected blocks included in the application fall under the rule.

[0235] The development tool 50 may present the error and a plurality of countermeasures to the operator, and prompt the operator to select a countermeasure. In this case, the development tool 50 may present the operator with a difference in output performance for each of the plurality of countermeasures. In addition, in this case, the development tool 50 may present at least two or more of a first countermeasure of adding a new function block, a second countermeasure of changing the order of the M selected blocks, and a third countermeasure of deleting any of the function blocks. In this way, the countermeasures are presented to the operator, who is, for example, an application developer. As a result, the operator, who is the application developer, who has seen the countermeasures, can easily change the application generated in step S42 in accordance with the countermeasures by performing an input operation on the input unit 54 of the development tool 50.

[0236] (Step S52) The operator who sees the error modifies the application generated in step S42 by performing an input operation on the input unit 54 of the development tool 50. Furthermore, if multiple solutions are presented to the operator as options, the operator selects an arbitrary solution from among the options by performing an input operation. As a result, the development tool 50 modifies the application. That is, the development tool 50 modifies the application in response to the input operation by the operator who has been presented with the error. Then, the development tool 50 repeatedly executes the process from step S43.

[0237] (Step S46) When the development tool 50 determines in step S44 that the M function blocks do not fall under the rule (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.

[0238] When the process of step S51 is repeated, the development tool 50 may present a solution to the error according to the number of times the process is repeated. For example, when the number of times the error is presented is K times or more (K is an integer equal to or greater than 2), the development tool 50 may present a plurality of solutions to the error. In other words, 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-mentioned first solution, second solution, and third solution to the operator.

[0239] [5.3 Display example] FIG. 26 is a diagram showing an example of a sequence generation screen.

[0240] The development tool 50 displays the above-mentioned 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.

[0241] In the parameter setting area D1, a reception image for receiving the contents of parameters to be used for the functional block is displayed.

[0242] The block list area D2 displays a block list for each of the multiple types of devices 20. These block lists include function blocks that have been downloaded from the block database 41 and installed in the development tool 50.

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

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

[0245] For example, the operator performs an input operation on the input unit 54 of the development tool 50 to determine the type name of the device 20 to which the application is applied. 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. Next, the operator performs an input operation to select 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 performs an input operation to place the selected function block, i.e., the selection block, in the selection block area D4. The selection and placement of this function block may be performed by drag and drop. One or more function blocks placed in this selection block area D4 may be executed in the order in which they are placed. For example, the function blocks are executed in order from the left side to the right side in FIG. 26. That is, the application includes information on the order in which each of the M selection blocks placed in the selection block area D4 is executed and information on the timing at which each of the M selection blocks is executed.

[0246] When a functional block is placed in the selected block area D4, the development tool 50 displays, in the parameter setting area D1, an image for accepting parameters to be used for the functional block.

[0247] FIG. 27 is a diagram showing an example of a display of a block list.

[0248] The operator selects the type name of the device 20 to which the application to be generated will be applied from among the type names of the multiple devices 20 displayed in the block list area D2 shown in FIG. 26 by performing an input operation on the input unit 54. The development tool 50 displays a block list corresponding to the device 20 of the selected type name, for example, as shown in (a) and (b) of FIG. 27. For example, as shown in (a) of FIG. 27, when an oven range is selected, the development tool 50 displays a block list of the 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 (b) of FIG. 27, when a multi-cooker is selected, the development tool 50 displays a block list of the multi-cooker. For example, the block list includes function blocks that realize the respective functions of preheating, keeping warm, frying, pressure cooking, rice cooking, steaming, stewing, mixing, and boiling.

[0249] The operator selects a functional block from the block list displayed in this way by performing an input operation on the input unit 54, and places the selected functional block in the selected block area D4 shown in Fig. 26. That is, in response to such an input operation, the development tool 50 performs the process of step S22 shown in Fig. 23, that is, the process of placing the functional block.

[0250] FIG. 28A is a diagram showing an example of functional block placement processing and automatic placement correction processing.

[0251] The development tool 50 displays, for example, as an icon, the function block that has been dragged and dropped from the block list and placed in the selected block area D4, as shown in (a) of Fig. 28A. Specifically, the development tool 50 places M function blocks including the dehydration function block FB42 in the selected block area D4 in response to an input operation by the operator on the input unit 54. In this manner, the development tool 50 performs the function block placement process of step S22 shown in Fig. 23 in response to the input operation by the operator.

[0252] Furthermore, when an application is generated as a result of the functional block placement process, the development tool 50 determines whether or not the flow of the entire application is permitted, as in step S29 of Fig. 23. That is, the development tool 50 uses rules to make a determination regarding the M functional blocks placed in the selected block area D4. Then, the development tool 50 performs an automatic correction process for the placement.

[0253] Specifically, the development tool 50 first refers to the washing machine rules corresponding to the M functional blocks. For example, the development tool 50 identifies the washing machine rule group 42d in the rule database 42 shown in FIG. 20(b), and refers to any one of the rules included in the rule group 42d. The rule may be the general-purpose rule R400 or the dedicated rule R41. For example, the rule includes a combination rule that prohibits the drain functional block FB41, which is the first block, from being executed before the spin functional block FB42, which is the second block, is executed.

[0254] Then, when the development tool 50 determines that the M arranged function blocks satisfy the rule, it modifies the application. For example, the development tool 50 modifies the washing machine application by adding a drain function block FB41 before the function block FB42, as shown in (b) of FIG. 28A.

[0255] Thus, in this embodiment, when an 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 the first block before the second block. This modification causes the M function blocks to become non-compliant with the rules.

[0256] Furthermore, if the drainage functional block FB41, which is a first block, is placed after the dehydration functional block FB42, which is a second block, as a result of the functional block placement process, the development tool 50 may move the drainage functional block FB41 forward. In other words, if an application includes a first block and a second block and does not include the first block before the second block, the development tool 50 changes the application by changing the order of the first block to be before the order of the second block. Even with such a change, the M functional blocks will not satisfy the rule.

[0257] Furthermore, the development tool 50 may delete the dehydration function block FB42, which is the second block. That is, when an application includes a second block and does not include a first block before the second block, the development tool 50 changes the application by deleting the second block. Even with such a change, the M function blocks will no longer satisfy the rule.

[0258] FIG. 28B is a diagram showing another example of the functional block placement process and the automatic placement correction process.

[0259] The development tool 50 displays, for example, as an icon, the function block that has been dragged and dropped from the block list and placed in the selected block area D4, as shown in (a) of Fig. 28B. Specifically, the development tool 50 places M function blocks including the drying function block FB44 in the selected block area D4 in response to an input operation by the operator on the input unit 54. In this way, the development tool 50 performs the function block placement process of step S22 shown in Fig. 23 in response to the input operation by the operator.

[0260] Furthermore, when an application is generated as a result of the functional block placement process, the development tool 50 determines whether or not the flow of the entire application is permitted, as in step S29 of Fig. 23. That is, the development tool 50 uses rules to make a determination regarding the M functional blocks placed in the selected block area D4. Then, the development tool 50 performs an automatic correction process for the placement.

[0261] Specifically, the development tool 50 first refers to the rules for the washing machine corresponding to the M functional blocks. For example, the development tool 50 identifies a rule group 42d for the washing machine in the rule database 42 shown in FIG. 20(b), and refers to any one of the rules included in the rule group 42d. The rule may be a general-purpose rule R400 or a dedicated rule R41. For example, the rule includes a combination rule that prohibits the third block, the blowing functional block FB45, from being executed after the second block, the drying functional block FB44, is executed.

[0262] Then, when the development tool 50 determines that the M arranged function blocks satisfy the rule, it modifies the application. For example, the development tool 50 modifies the washing machine application by adding a function block FB45 for blowing air after the function block FB44, as shown in (b) of FIG. 28B.

[0263] In this manner, in the present embodiment, when an application includes a second block and does not include a third block after the second block, the development tool 50 modifies the application by adding a third block after the second block. As a result of such a modification, the M function blocks are no longer subject to the rule.

[0264] Furthermore, if the function block arrangement process places the air blowing function block FB45, which is the third block, before the drying function block FB44, which is the second block, the development tool 50 may move the air blowing function block FB45 later. In other words, if an application includes a second block and a 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 later than the order of the second block. Even with such a change, the M function blocks will not satisfy the rule.

[0265] The development tool 50 may also delete the drying function block FB44, which is the second block. That is, when an application includes the second block and does not include a third block following the second block, the development tool 50 changes the application by deleting the second block. Even with such a change, the M function blocks will no longer satisfy the rule.

[0266] As shown in Fig. 28A and Fig. 28B, in this embodiment, an automatic correction process for the layout is performed. Therefore, even if an operator who is an application developer erroneously arranges M function blocks so that the M function blocks do not conform to the rule, the M function blocks are automatically rearranged so that the M function blocks do not conform to the rule. Therefore, the safety of the washing machine can be guaranteed.

[0267] FIG. 29 is a diagram illustrating an example of a placement error presentation process.

[0268] As in the example of FIG. 28A, the development tool 50 places M function blocks including the dehydration function block FB42 in the selection block area D4 as shown in FIG. 29. When an application is generated as a result of the placement, the development tool 50 determines whether or not the flow of the entire application is permitted as in step S29 of FIG. 23. That is, the development tool 50 uses rules to make a determination regarding the M function blocks placed in the selection block area D4. For example, the rules include a combination rule that prohibits the first block, the drainage function block FB41, from being executed before the second block, the dehydration function block FB42, is executed.

[0269] Then, when the development tool 50 determines that the M functional blocks correspond to the rule, it performs an error presentation process. Specifically, the development tool 50 displays an error message E1 as an error, as shown in FIG. 29. This error message E1 indicates that a functional block corresponding to the spin function block FB42 is not placed before. In other words, this error message E1 notifies that the M functional blocks correspond to a rule that prohibits the first block, the drain function block FB41, from being executed before the second block, the spin function block FB42, is executed. Such an error presentation process is performed, for example, in step S51 in FIG. 25.

[0270] Thus, in this embodiment, the development tool 50 refers to a rule that prohibits at least one of the remaining two or more blocks from being executed when one of the two or more blocks is executed, and presents an error to the operator if the M selected blocks included in the application fall under the rule. Then, the development tool 50 modifies the application by changing the order in which the M selected blocks are executed in response to an input operation by the operator who has received the error.

[0271] By displaying such an error, the operator (application developer) can easily rearrange the M function blocks that fall under the rule so that they do not fall under the rule, thereby ensuring the safety of the washing machine.

[0272] Furthermore, 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. The countermeasure C1 describes that the error is resolved by adding a drain functional block before the spin functional block. In other words, the countermeasure C1 is the above-mentioned first countermeasure of adding a new block to the M selected blocks. Furthermore, the development tool 50 may display an effect of carrying out the countermeasure C1 together with the countermeasure C1. For example, the development tool 50 may display, as an effect, that the processing time required for the entire washing process will be longer, but that spin-drying will be properly performed.

[0273] Moreover, the countermeasure C2 describes that the error is resolved by deleting the spin-drying functional block. In other words, the countermeasure C2 is a third countermeasure of deleting any one of the M selected blocks. Furthermore, the development tool 50 may display the impact of implementing the countermeasure C2 together with the countermeasure C2. For example, the development tool 50 may display, as an impact, that the safety of the washing machine can be ensured, although spin-drying cannot be performed.

[0274] FIG. 30 is a diagram illustrating another example of the connection error presentation process.

[0275] As shown in FIG. 30, the development tool 50 places M function blocks including the drying function block FB44 in the selection block area D4, similar to the example of FIG. 28B. Furthermore, when an application is generated as a result of the placement, the development tool 50 determines whether or not the flow of the entire application is permitted, as in step S29 of FIG. 23. That is, the development tool 50 uses rules to make a determination on the M function blocks placed in the selection block area D4. For example, the rules include a combination rule that prohibits the third block, the air blowing function block FB45, from not being executed after the second block, the drying function block FB44, is executed.

[0276] Then, when the development tool 50 determines that the M functional blocks correspond to the rule, it performs an error presentation process. Specifically, the development tool 50 displays an error message E2 as an error, as shown in FIG. 30. This error message E2 states that a functional block corresponding to the drying functional block FB44 is not arranged after it. In other words, this error message E2 notifies that the M functional blocks correspond to a rule that prohibits the third block, the air blowing functional block FB45, from being executed after the second block, the drying functional block FB44, is executed. Such an error presentation process is performed, for example, in step S51 in FIG. 25.

[0277] By displaying such an error, the operator (application developer) can easily rearrange the M function blocks that fall under the rule so that they do not fall under the rule, thereby ensuring the safety of the washing machine.

[0278] Furthermore, in the error presentation process, the development tool 50 may further display countermeasures C3 to C5 for dealing with the error indicated by the error message E2. The countermeasure C3 describes that the error is resolved by adding a functional block of air blowing after the functional block of drying. In other words, the countermeasure C3 is the above-mentioned first countermeasure of adding a new block to the M selected blocks. Furthermore, the development tool 50 may display an effect of carrying out the countermeasure C3 together with the countermeasure C3. For example, the development tool 50 may display, as an effect, that the processing time required for the entire washing process will be longer, but the safety of the washing machine can be ensured.

[0279] Moreover, the countermeasure C4 describes that the error can be eliminated by moving the air blowing functional block, which is arranged before the drying functional block, to the rear of the drying functional block. In other words, the countermeasure C4 is the above-mentioned second countermeasure of changing the order of the M selected blocks. Furthermore, the development tool 50 may display the influence of carrying out 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.

[0280] Moreover, the countermeasure C5 describes that the error is resolved by deleting the drying functional block. In other words, the countermeasure C5 is a third countermeasure for deleting any of the M selected blocks. Furthermore, the development tool 50 may display the effect of carrying out the countermeasure C5 together with the countermeasure C5. For example, the development tool 50 may display, as an effect, that the drying function cannot be carried out but the safety of the washing machine can be ensured.

[0281] In this manner, in this embodiment, the development tool 50 presents a plurality of ways to deal with an error, and the development tool 50 changes the application in response to an input operation by an operator who has received the presented error and the plurality of ways to deal with the error.

[0282] For example, the plurality of countermeasures includes at least two of the above-described first countermeasure, second countermeasure, and third countermeasure. Furthermore, in this embodiment, the development tool 50 presents an effect on an object that is acted upon by driving the actuator 22 or the heater 23, or an effect on an application, when each of the plurality of countermeasures is performed.

[0283] By presenting multiple countermeasures and their effects, the operator (application developer) can more easily rearrange the M functional blocks that fall under a rule so that they do not fall under that rule, thereby ensuring the safety of the washing machine.

[0284] The error messages E1 and E2 and the countermeasures C1 to C5 may be displayed in any area of ​​the sequence generation screen. Also, these error messages E1 and E2 and the countermeasures C1 to C5 may be displayed 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 form of them is not limited to these examples and may be any form. For example, errors may be presented by voice.

[0285] Furthermore, when the number of times an error is presented is K times or more (K is an integer equal to or greater than 2), the development tool 50 may present a plurality of ways to deal with the error to the operator. That is, when the process of step S51 shown in Fig. 25 is repeated, the development tool 50 may change the way in which the error is presented depending on the number of times the process is repeated. Specifically, when the number of times an error is presented is less than K times, the development tool 50 presents the error without presenting a way to deal with it, and when the number of times an error is presented is K times or more, the development tool 50 displays the error together with a way to deal with it.

[0286] FIG. 31 is a diagram showing another example of a presented solution.

[0287] In the above example, the solution is presented as a message, but the development tool 50 may present the solution in other manners as shown in FIG. 31. For example, the development tool 50 presents the solution in such a manner that the functional block to be added to avoid the error can be easily selected from the block list. That is, when the development tool 50 determines that the first block is not placed before the second block indicated in the combination rule, it displays a block list as shown in FIG. 32. In this block list, only the functional block that is the first block to be placed before the second block is displayed in a manner different from other functional blocks included in the block list. Specifically, in the list of blocks of the washing machine, only the drain functional block to be added before the spin functional block is displayed brightly, and the other functional blocks are displayed darkly. This allows the operator, who is an application developer, to easily select the drain functional block and add it to the selected block area D4, thereby improving the operability of changing the application.

[0288] FIG. 32 is a diagram showing yet another example of a presented solution.

[0289] In the above example, the solution is presented by only a message, but the development tool 50 may present the solution by using an object such as an arrow, as shown in Fig. 32. For example, when the development tool 50 determines that the function blocks FB34 and FB37 correspond to the rule, it presents a second solution of reversing the order of these function blocks by a message and an arrow. This allows the operator, who is the application developer, to easily avoid the error by reversing the order of these function blocks, thereby improving the operability of changing the application.

[0290] [5.4 Effects, etc.] As described above, in this embodiment, an environment in which various, diverse, and safe applications can be developed can be provided by using 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 for an application freely developed in that environment. As a result, for example, it becomes possible to develop various, diverse, and safe applications in parallel with the development of a rule database for ensuring safety, making it possible to develop various, diverse, and safe applications at an early stage.

[0291] Furthermore, by combining this embodiment with any one of the embodiments 1 to 4, it becomes possible to change the application to one that ensures greater safety by changing the rule database even after the application has been provided. Even if it becomes necessary to improve a situation that the manufacturer did not anticipate in advance, it becomes possible to deal with all applications by updating the rule database, without having to change the diverse and varied applications themselves, because the rule database is defined independently of the applications.

[0292] 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) M blocks (M is an integer of 1 or more and N or less) are selected as selected blocks from N blocks (N is an integer of 2 or more) for driving at least one of the actuator 22 and the heater 23 included in the device 20, which is a controlled device, in response to an input operation by an operator, (b) an order in which at least the M selected blocks are executed is set in response to an input operation by the operator to generate an application including at least the M selected blocks, (c) a rule is referred to that prohibits at least one of the remaining two or more blocks from being executed when one of the two or more predetermined blocks is executed, and if the M selected blocks included in the application satisfy the rule, the application is modified, and (d) the modified application is output.

[0293] According to this, the actuator 22 and / or the heater 23 can be driven based on an application defined by the M blocks. Therefore, it is 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, during this development, an application including M selected blocks that correspond to the above-mentioned rule is automatically changed. As a result, the application can be automatically changed to an application including M selected blocks that do not correspond to the rule. Therefore, it is possible to ensure that one block out of two or more predetermined blocks is executed in combination with at least one remaining block. In other words, even if an operator who is an application developer mistakenly generates an application so that a block that is not allowed to be executed alone is executed alone, it is possible to prevent the generation of an application that cannot safely control the device 20. Therefore, even if an application developer creates or generates an application that places importance on suitability for the user of the actuator 22 and / or the heater 23, the safety of the device 20 controlled by the application can be guaranteed and the safety can be improved.

[0294] In addition, in (c) above, the application may be modified by (1) adding a new block to the M selected blocks, (2) changing the order of the M selected blocks, or (3) deleting any of the M selected blocks.

[0295] More specifically, the two or more predetermined blocks include a first block and a second block, and the rule prohibits the first block from being executed before the second block is executed. And, in (c) above, if the application includes the second block and does not include the first block before the second block, the application may be modified by adding the first block before the second block.

[0296] In addition, in the above (c), when the application includes a first block and a second block, but does not include the first block before the second block, the application may be modified by changing the order of the first block to be before the order of the second block.

[0297] Also, in the above (c), if the application includes the second block and does not include the first block before the second block, the application may be modified by deleting the second block.

[0298] According to these, when developing an application, it is possible to ensure that a first block is executed before a second block by adding a new block, changing the order of blocks, or deleting a block. Therefore, a developer of an application or a developer of software to be incorporated into the device 20 that controls the actuator 22 and the heater 23 can ensure the safety of the device 20 without having to check the safety of each application every time.

[0299] Specifically, the rule may prohibit the first block from being executed after the start of the application until the second block is executed. Furthermore, the first block may be a block for setting an environment in which the second block can be executed.

[0300] Furthermore, the two or more predetermined blocks may include a second block and a third block, and the rule may prohibit the third block from being executed after the second block is executed. In this case, in the above (c), if the application includes the second block and does not include the third block after the second block, the application may be modified by adding the third block after the second block.

[0301] In addition, in the above (c), if the application includes a second block and a third block but 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.

[0302] Moreover, in the above (c), if the application includes the second block and does not include a third block following the second block, the application is modified by deleting the second block.

[0303] According to these, when developing an application, it is possible to ensure that a third block is executed after a second block by adding a new block, changing the order of blocks, or deleting a block. Therefore, a developer of an application or a developer of software incorporated into the device 20 that controls the actuator 22 and the heater 23 can ensure the safety of the device 20 without having to check the safety of each application every time.

[0304] More specifically, the rule may prohibit the third block from being executed after the second block is executed until the application is terminated. 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.

[0305] Furthermore, the rule may be a rule for ensuring that the above-mentioned two or more predetermined blocks are executed in combination so as to prevent at least one of the actuator 22 and the heater 23 from reaching a durable temperature.

[0306] This makes it possible to prevent the actuator 22 and / or the heater 23 from reaching their durable temperature when the application is executed, thereby improving the safety of the device 20 controlled by the application.

[0307] In addition, the device 20, which is the controlled device, may have a housing 21 having an internal space, and the rule may be a rule for ensuring that the above-mentioned two or more specified blocks are executed in combination to prevent the internal space from reaching a durable temperature.

[0308] This makes it possible to prevent the internal space of the housing 21 from reaching a durable temperature when the application is executed, thereby improving the safety of the device 20 controlled by the application.

[0309] In addition, in (c) above, it may be possible to determine whether the application to be generated is an application dedicated to the controlled device or a general-purpose application that is applicable to the controlled device and devices other than the controlled device, and to reference as a rule a rule candidate corresponding to the determination result of the application from among a plurality of rule candidates that prohibit at least one of the two or more specified blocks from being executed when one of the two or more specified blocks is executed.

[0310] This makes it possible to increase the variations of applications, such as dedicated applications and general-purpose applications. Furthermore, because rules appropriate for each of these variations are referenced, the application of each variation can be appropriately modified.

[0311] The information processing method in this embodiment may be 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 a selected block, M blocks (M is an integer between 2 and N) from N blocks (N is an integer of 2 or more) 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 the operator, (b) generates an application including at least the M selected blocks by setting an order in which at least the M selected blocks are executed in response to an input operation by the operator, (c) refers to a rule that prohibits at least one of the remaining two or more blocks from being executed when one of the two or more predetermined blocks is executed, and presents an error to the operator if the M selected blocks included in the application fall under the rule, (d) modifies the application in response to an input operation by the operator who has received the error, and (e) outputs the modified application.

[0312] According to this, if an operator who is an application developer mistakenly creates an application so that a block that is not allowed to be executed independently is executed independently, an error is displayed, so that it is possible to prevent the creation of an application that cannot safely control the device 20. In other words, it is possible to achieve the same effect as when an application is automatically changed as described above.

[0313] In addition, in the above (c), a plurality of ways to deal with the error may be presented, and in the above (d), the application may be changed by changing the order in which the M selection blocks are executed in response to an input operation by an operator who has been presented with the error and the plurality of ways to deal with the error. In other words, the information processing method in this embodiment is an information processing method executed by a computer system such as development tool 50, and may present a plurality of ways to deal with the error at the same time.

[0314] This reduces the effort required for an operator who has confirmed an error message to change applications.

[0315] In addition, the multiple solutions may include at least two of a first solution of adding a new block to the M selected blocks, a second solution of changing the order of the M selected blocks, and a third solution of deleting one of the M selected blocks.

[0316] This allows the operator to change the application while appropriately avoiding the error by following any one of the multiple countermeasures. Furthermore, when the operator selects a countermeasure, the operator can select an option (i.e., a countermeasure) that satisfies the operator's intention in creating the application.

[0317] Furthermore, in the above (c), the effect on the object acted upon by driving the actuator 22 or the heater 23, or the effect on the application, when each of the multiple countermeasures is performed may be presented. In other words, the information processing method in this embodiment is an information processing method executed by a computer system such as the development tool 50, and may present a countermeasure for an error and simultaneously present the effect on the application of implementing the countermeasure.

[0318] This allows the operator to intuitively select a countermeasure in accordance with the operator's intention when creating the application.

[0319] In addition, in this information processing method, after (d) above, (c) and (d) above may be repeatedly executed, and if the error has been presented K times or more (K is an integer greater than or equal to 2), multiple ways of dealing with the error may be presented to the operator.

[0320] According to this, if an error is repeatedly displayed, multiple solutions are presented, and the operator can easily change the order in which each of the M selection blocks is executed in accordance with those solutions, making it easier to generate a safe application.

[0321] (Modification of the fifth embodiment) Whether the hardware of the device 20 can operate safely with an application depends on the environmental conditions of the hardware. Therefore, the rules of the application should be determined according to the harshest environmental conditions. Therefore, in some environmental conditions, the hardware functions may not be fully utilized.

[0322] Therefore, in the present modified example, when an application creator is a device manufacturer, the development tool 50 develops and creates an application to be used in the device 20 manufactured by the application creator without using rules. The reason is that the application creator understands the environmental conditions for safely operating the device 20 manufactured by the application creator. Note that the application creator is a person, organization, or company that develops or creates an application, and is also called an application developer. Also, the device manufacturer is a person, organization, or company that produces or manufactures equipment such as the device 20, and is also called a creator or manufacturer of the device 20.

[0323] In other words, in this modified example, when the application creator and the device manufacturer are different, the development tool 50 develops an application using the rules, and when the application creator and the device manufacturer are the same, the development tool 50 develops an application without using the rules.

[0324] More specifically, in the fifth embodiment, as described above, when an application is developed or produced, the application is modified according to the rules. In this modification, even at this stage, as in the third embodiment, if the application creator and the device manufacturer are the same, modification of the application is skipped.

[0325] FIG. 33 is a flowchart showing the processing operation of the development tool 50 in this modified example.

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

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

[0328] (Step S2161B) The development tool 50 acquires the application creator information to identify the creator of the application (that is, the application creator).

[0329] (Step S2163B) The development tool 50 acquires the device manufacturer information to identify the manufacturer of the apparatus 20 that is the controlled device (that is, the device manufacturer).

[0330] (Step S2164B) The development tool 50 determines whether the application creator and the device manufacturer are different. In other words, the development tool 50 determines whether the creator of the application and the manufacturer of the above-mentioned controlled device are the same.

[0331] (Step S2165) If the application creator and the device manufacturer do not match (Yes in step S2164B), the development tool 50 obtains rules related to one or more blocks included in the application.

[0332] (Step S2166) The development tool 50 determines whether or not one or more function blocks included in the application correspond to the rules.

[0333] (Step S2167) If the development tool 50 determines that one or more of the function blocks correspond to a rule (Yes in step S2166), it modifies the application in accordance with the rule.

[0334] (Step S52) When the application creator and the device manufacturer are the same (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 additional information and at least one of the second additional information and the third additional information to the application. 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 created. For example, the second additional information indicates the date when the application was created. This date is also referred to as the application creation date hereinafter. Furthermore, the third additional information is manufacturer identification information for identifying the manufacturer when the application creator is the manufacturer of the device.

[0335] (Step S53) The development tool 50 outputs the changed application after the process of step S2167. On the other hand, the development tool 50 outputs the application to which the addition process has been performed after the process of step S52. That is, when the application creator and the device manufacturer match (No in step S2164B), the development tool 50 outputs the application to which the information has been added without applying the rules to the application.

[0336] Thus, 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 an actuator and a heater provided in a controlled device is generated, a creator of the application is identified, a manufacturer of the controlled device is identified, and it is determined whether or not the creator of the application and the manufacturer of the controlled device match, (a) if the creator of the application and the manufacturer of the controlled device do not match, rules related to one or more blocks included in the application are obtained, the application is modified in accordance with the rules, and the modified application is output, and (b) if the creator of the application and the manufacturer of the controlled device match, the application is output without applying the rules to the application.

[0337] Therefore, in this modification, when the application developer and the device manufacturer are different, the application is changed by applying the rules to the application, so that it is possible to achieve the same effect as in the fifth embodiment. Furthermore, when the application developer and the device manufacturer are the same, the application of the rules and the change of the application are omitted, as in the third embodiment, so that it is possible to reduce the processing load. Furthermore, in that case, the hardware of the device 20, which is the controlled device, is operated by an application to which no rules are applied, so that the functions of the hardware can be effectively utilized.

[0338] Furthermore, in the above-mentioned (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. When the application is output, the application after the additional process is output. Here, the first additional information is information indicating that no rule is applied to the application, and the second additional information is information indicating the time when the application was created. Furthermore, the third additional information is information for identifying the manufacturer of the device when the creator of the application is the manufacturer of the device.

[0339] Therefore, in this modification, when no rule is applied to an application, the device 300 of the apparatus 20 that is the controlled appliance acquires the application to which the information has been added.

[0340] For example, when the first additional information and the second additional information are added to an application, the device 300 can determine whether or not to apply the rule to the application since the first additional information is added to the application. Specifically, the device 300 can appropriately determine whether or not to apply the rule based on the second additional information added to the application. For example, the device 300 can identify the update date of the rule, and if the update date is before the application creation date indicated by the second additional information, determine 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.

[0341] On the other hand, if the update date is later than the application creation date, the device 300 can determine that the updated rule is applied to the application. In other words, if the generated application is old, it may be difficult to ensure the safety of the device 20 if the device 20 operates with the old application. However, in such a case, the second additional information applies the rule to the old application, and the application is changed. Therefore, the safety of the device 20 can be easily ensured.

[0342] Also, for example, even if the first additional information and the third additional information are added to an application, the device 300 can determine whether or not to apply the rule to the application because the first additional information is added to the application. Specifically, the device 300 can appropriately determine whether or not to apply the rule based on the third additional information added to the application. For example, the device 300 determines whether or not the manufacturer of the apparatus 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 the manufacturers match, it can determine that the rule is not to be applied 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.

[0343] On the other hand, when the device 300 determines that the manufacturers do not match, it can determine that the rule is applied to the application. For example, the generated application may be used not only in the device 20, which is a controlled device manufactured by the application creator, but also in devices 20 manufactured by other device manufacturers. When the device 20 manufactured by the other device manufacturer operates using the application, it may be difficult to ensure the safety of the device 20. However, in such a case, the third additional information applies the rule to the application, and the application is changed. Therefore, the safety of the device 20 manufactured by the other device manufacturer can be easily ensured.

[0344] In the above example, the device 300 applies the rule and changes the application based on the information added to the application. However, as in the first to fourth embodiments, the device manager 200 or the like may apply the rule and change the application based on the information added to the application instead of the device 300.

[0345] (Other embodiments) Although the system according to one or more aspects of the present disclosure has been described based on the embodiment, the present disclosure is not limited to this embodiment. As long as it does not deviate from the spirit of the present disclosure, various modifications conceived by a person skilled in the art to this embodiment and forms constructed by combining components in different embodiments may also be included within the scope of one or more aspects of the present disclosure.

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

[0347] In addition, in each of the above embodiments, the application may be changed based on the degradation information. For example, the device 300 may refer to parameter conversion information in which a plurality of degradation levels are associated with a plurality of parameter conversion methods, acquire a conversion method corresponding to the degradation level, and convert the parameters included in the block using the acquired conversion method. The conversion method may be defined, for example, by a value after conversion, or may be defined by a coefficient applied to a value before conversion.

[0348] In addition, in each of the above embodiments, the application is changed in the pre-execution check and then executed, but this is not limited to the above. For example, when the state of the device 300 is different from the expected state, 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]

[0349] The present invention can be used in home electronic appliances that can execute applications defined by multiple functional blocks, and in devices that generate those applications. [Explanation of symbols]

[0350] 1 System 2a, 2b, 2c, 2d facilities 10. Cloud Server 11 Processors 12. Memory 20, 20a, 20b, 20c, 20d, 20e, 20f, 20g, 20h equipment 21 Case 22 Actuator 23 Heater 24 Control Unit 30, 30a, 30b, 30c, 30d terminals 31 Display 32 Input Devices 41 Block Database 42, 1300 rule database 50 Development Tools 51 Processors 52 Memory 53 Display 54 Input section 60 Application provision server 100 Sequence Manager 200 Device Manager 300, 300a, 300b, 300c, 300d, 300e, 300f, 300g, 300h devices 400, 400a, 400b, 400c, 400d UI 1000, 1201 blocks 1001, 1002, 1003, 1004, 1005, 1006 parameters 1100 Device Database 1101 Device Information 1200 Declaration of Action 1202 Device Information 1203 Order Information Rules 1301 and 1302 2000 Information Processing System C1~C5 Solutions D1 Parameter setting area D2 Block List Area D3 Target device area D4 Selection block area E1, E2 Error Messages F100 Preparation Phase F200 Pre-application execution phase F300 App Execution Phase R11~R13, R21~R23, R31~R33, R41~R43 Exclusive rules R100, R200, R300, R400 General Rules

Claims

1. 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 blocks (M is an integer not less than 1 and not more than N) as a selected block from N blocks (N is an integer not less than 2) for driving at least one of an actuator and a heater provided in the controlled device; (b) generating an application including at least the M selection blocks by setting an order in which the at least M selection blocks are executed in response to an input operation by the operator; (c) referring to a rule that prohibits at least one of the two or more blocks from being executed when one of the two or more blocks is executed, and modifying the application if the M selected blocks included in the application fall under the rule; (d) outputting the modified application; Information processing methods.

2. In the above (c), (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 to modify the application. The information processing method according to claim 1 .

3. the two or more predetermined blocks include a first block and a second block, the rule prohibits the first block from being executed before the second block is executed; In the above (c), if the application includes the second block and does not include the first block before the second block, modifying the application by adding the first block before the second block. The information processing method according to claim 2 .

4. the two or more predetermined blocks include a first block and a second block, the rule prohibits the first block from being executed before the second block is executed; 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, modifying the application by changing the order of the first block to be before the order of the second block. The information processing method according to claim 2 .

5. the two or more predetermined blocks include a first block and a second block, the rule prohibits the first block from being executed before the second block is executed; In the above (c), modifying the application by deleting the second block if the application includes the second block and does not include the first block before the second block; The information processing method according to claim 2 .

6. the rule prohibits the first block from being executed after the start of the application and before the second block is executed; The information processing method according to any one of claims 3 to 5.

7. the first block is a block for setting an environment in which the second block can be executed; The information processing method according to claim 6.

8. the 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; In the above (c), if the application includes the second block and does not include the third block after the second block, modifying the application by adding the third block after the second block; The information processing method according to claim 2 .

9. the 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; In the above (c), When the application includes the second block and the third block and does not include the third block after the second block, changing the order of the third block to be later than the order of the second block, thereby changing the application. The information processing method according to claim 2 .

10. the 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; In the above (c), modifying the application by deleting the second block if the application includes the second block and does not include the third block after the second block; The information processing method according to claim 2 .

11. the rule prohibits the third block from being executed after the second block is executed and before the application is terminated. The information processing method according to any one of claims 8 to 10.

12. the third block is a block for restoring an environment changed by the execution of the second block to an environment before the execution of the second block; The information processing method according to claim 11.

13. the rule is a rule for ensuring that the two or more predetermined blocks are executed in combination so as to prevent the at least one of the actuator and the heater from reaching a durability temperature; The information processing method according to any one of claims 1 to 12.

14. the controlled device includes a housing having an internal space, The rule is a rule for ensuring that the two or more predetermined blocks are executed in combination so as to prevent the internal space from reaching a durable temperature. The information processing method according to any one of claims 1 to 12.

15. In the above (c), determining whether the application to be generated is an application dedicated to the control target device or a general-purpose application applicable to the control target device and devices other than the control target device; a rule candidate corresponding to a determination result of the application is referenced as the rule from among a plurality of rule candidates for prohibiting, when one of the two or more predetermined blocks is executed, at least one remaining of the two or more predetermined blocks from being executed; The information processing method according to any one of claims 1 to 14.

16. 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 blocks (M is an integer not less than 1 and not more than N) as a selected block from N blocks (N is an integer not less than 2) for driving at least one of an actuator and a heater provided in the controlled device; (b) generating an application including at least the M selection blocks by setting an order in which the at least M selection blocks are executed in response to an input operation by the operator; (c) referring to a rule that prohibits at least one of the remaining two or more blocks from being executed when one of the two or more predetermined blocks is executed, and presenting an error to the operator if the M selected blocks included in the application fall under the rule; (d) changing the application in response to an input operation by the operator who has received the indication of the error; (e) outputting the modified application; Information processing methods.

17. In the above (c), Suggesting multiple ways to deal with the error; In the above (d), changing the application in response to an input operation by the operator who has received the error and the plurality of solutions; The information processing method according to claim 16.

18. The above-mentioned multiple countermeasures include: A first solution is to add a new block to the M selected blocks; A second solution is to change the order of the M selected blocks; and and a third solution of deleting any of the M selected blocks.

18. The information processing method according to claim 17.

19. In the above (c), presenting an effect on an object actuated by the actuation of the actuator or the heater, or an effect on the application, when each of the plurality of countermeasures is performed; 19. The information processing method according to claim 17 or 18.

20. In the information processing method, After (d), (c) and (d) are repeatedly performed; (f) when the error is presented K times or more (K is an integer equal to or greater than 2), presenting a plurality of ways to deal with the error; The information processing method according to claim 16.

21. 1. An information processing method executed by a computer system, comprising: Generate an application including one or more blocks for driving at least one of an actuator and a heater provided in the controlled device; Identifying the creator of the application; Identifying the manufacturer of the controlled device; determining whether or not the creator of the application matches the manufacturer of the controlled device; (a) if the creator of the application and the manufacturer of the controlled device do not match, Obtaining rules for the one or more blocks included in the application; Modifying the application according to the rules; Outputting the modified application; (b) if the creator of the application and the manufacturer of the controlled device are the same, outputting the application without applying the rules to the application. Information processing methods.

22. In the above (b), performing an addition process of adding 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 that has been subjected to the additional processing is output; the first additional information is information indicating that the rule is not applied to the application, the second additional information is information indicating a time when the application was created, The third additional information is information for identifying a manufacturer of a device when a creator of the application is a manufacturer of the device.

22. The information processing method according to claim 21.

23. A processor; a memory coupled to the processor; The processor uses the memory to: (a) selecting, in response to an input operation by an operator, each of M blocks (M is an integer not less than 1 and not more than N) as a selected block from N blocks (N is an integer not less than 2) for driving at least one of an actuator and a heater provided in the controlled device; (b) generating an application including at least the M selection blocks by setting an order in which the at least M selection blocks are executed in response to an input operation by the operator; (c) referring to a rule that prohibits at least one of the two or more blocks from being executed when one of the two or more blocks is executed, and modifying the application if the M selected blocks included in the application fall under the rule; (d) outputting the modified application; Information processing device.

24. A processor; a memory coupled to the processor; The processor uses the memory to: (a) selecting, in response to an input operation by an operator, each of M blocks (M is an integer not less than 1 and not more than N) as a selected block from N blocks (N is an integer not less than 2) for driving at least one of an actuator and a heater provided in the controlled device; (b) generating an application including at least the M selection blocks by setting an order in which the at least M selection blocks are executed in response to an input operation by the operator; (c) referring to a rule that prohibits at least one of the remaining two or more blocks from being executed when one of the two or more predetermined blocks is executed, and presenting an error to the operator if the M selected blocks included in the application fall under the rule; (d) changing the application in response to an input operation by the operator who has received the indication of the error; (e) outputting the modified application; Information processing device.

25. A processor; a memory coupled to the processor; The processor uses the memory to: Generate an application including one or more blocks for driving at least one of an actuator and a heater provided in the controlled device; Identifying the creator of the application; Identifying the manufacturer of the controlled device; determining whether or not the creator of the application matches the manufacturer of the controlled device; (a) if the creator of the application and the manufacturer of the controlled device do not match, Obtaining rules for the one or more blocks included in the application; Modifying the application according to the rules; Outputting the modified application; (b) if the creator of the application and the manufacturer of the controlled device are the same, outputting the application without applying the rules to the application. Information processing device.

26. In the above (b), performing an addition process of adding 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 that has been subjected to the additional processing is output; the first additional information is information indicating that the rule is not applied to the application, the second additional information is information indicating a time when the application was created, The third additional information is information for identifying a manufacturer of a device when a creator of the application is a manufacturer of the device. The information processing device according to claim 25.

Citation Information

Patent Citations

  • Washing machine

    JP2003284889A

  • Software development support program, recording medium with the program recorded thereon and software development support system

    JP2004355326A

  • Software product line development support device, its method and its program

    JP2012088933A

  • Software developing method, and system for the same

    JP2014071899A