Information processing method and information processing apparatus

The method allows for easy creation of diverse and safe control programs for household appliances by using functional blocks and parameter rules, addressing the limitations of conventional systems.

JP2025114828AInactive Publication Date: 2025-08-05PANASONIC INTELLECTUAL PROPERTY CORP OF AMERICA
View PDF 8 Cites 0 Cited by

Patent Information

Application Number
JP2025081639
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2020-12-25
Filing Date
2025-05-15
Publication Date
2025-08-05
Estimated Expiration
Not applicable · inactive patent

AI Technical Summary

Technical Problem

Conventional control programs for household appliances and housing facilities are difficult to generate, customize, and update, limiting the variety and safety of applications.

Method used

An information processing method that generates applications by setting parameters for actuators and heaters using functional blocks, referring to rules defining permissible parameter ranges, and presenting errors if unsafe parameters are detected.

Benefits of technology

Enables easy generation of a wide variety of safe control programs, ensuring product safety and reducing the workload for manufacturers.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025114828000001_ABST
    Figure 2025114828000001_ABST
Patent Text Reader

Abstract

To provide an information processing method capable of easily generating a wide variety of safe control programs.SOLUTION: An information processing method includes: generating an application by setting, in accordance with an input operation performed by an operator, a parameter in each of M blocks for driving at least one of an actuator 22 and a heater 23 of a device 20 (Step S42); and consulting a rule defining a parameter range within which the above driving is not permitted, and presenting an error to the operator when at least one of the M blocks includes a parameter that is included in the parameter range (Step S51).SELECTED DRAWING: Figure 26
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 the laundry they want to do. [Prior art documents] [Patent documents]

[0003] [Patent Document 1] Japanese Patent Application Laid-Open No. 2003-284889 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, making it difficult to generate, customize, and update diverse and safe control programs.

[0005] Therefore, the present disclosure provides an information processing method and the like that can easily generate a wide variety of 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) generates an application including at least M blocks (M is an integer greater than or equal to 1) for driving at least one of an actuator and a heater provided in a controlled device by setting parameters for driving the actuator or the heater in each of the M blocks in accordance with input operations by an operator, and (b) refers to a rule defining a parameter range in which driving of at least one of the actuator and the heater is not permitted, and if at least one of the M blocks has a parameter included in the parameter range, presents an error to the operator.

[0007] Furthermore, 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 M (M is an integer greater than or equal to 1 and less than or equal to N) blocks as selected blocks from N (N is an integer greater than or equal to 2) blocks for driving at least one of an actuator and a heater provided in a controlled device in accordance with an input operation by an operator, (b) generates an application including at least the M selected blocks by setting parameters for driving the actuator or the heater in each of the M selected blocks in accordance with the input operation by the operator, (c) modifies the application by modifying at least one of the M selected blocks by referring to a rule defining a parameter range in which driving of at least one of the actuator and the heater is not permitted, so that the at least one of the M selected blocks has a parameter included in the parameter range, and (d) outputs the modified application.

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

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

[0010] [Figure 1] FIG. 1 is a hardware configuration diagram of a 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 according to the first embodiment. [Figure 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 that defines an application in the first embodiment. [Figure 5] FIG. 5 shows a plurality of blocks for a washing machine according to the first embodiment. [Figure 6] FIG. 6 shows a plurality of blocks for the microwave oven according to the first embodiment. [Figure 7] FIG. 7 shows a plurality of blocks for the rice cooker according to the first embodiment. [Figure 8] FIG. 8 is a sequence diagram of the system according to 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 according to the first embodiment. [Figure 12] FIG. 12 shows an example of the rule database according to the first embodiment. [Figure 13] FIG. 13 shows an example of block modification in the first embodiment. [Figure 14] FIG. 14 shows an example of block modification 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 a system according to the second modification of the first embodiment. [Figure 15C] FIG. 15C is a sequence diagram of a system according to the third modification of the first embodiment. [Figure 15D] FIG. 15D is a sequence diagram of the system according to the fourth modification of the first embodiment. [Figure 15E] FIG. 15E is a sequence diagram of a system according to the fifth modification of the first embodiment. [Figure 16] FIG. 16 shows a flowchart of the pre-execution confirmation process according to the second embodiment. [Figure 17] FIG. 17 shows a flowchart of the pre-execution confirmation process according to the third embodiment. [Figure 18] FIG. 18 shows a flowchart of the pre-execution confirmation process according to the fourth embodiment. [Figure 19] FIG. 19 shows an example of the rule database according to the fourth embodiment. [Figure 20] FIG. 20 is a diagram illustrating an example of a configuration of an information processing system according to the fifth embodiment. [Figure 21] FIG. 21 is a diagram showing an example of information stored in each of the block database and the rule database according to the fifth embodiment. [Figure 22] FIG. 22 is a diagram showing an example of a general rule included in the rule database according to the fifth embodiment. [Figure 23] FIG. 23 is a sequence diagram of the information processing system according to the fifth embodiment. [Figure 24] FIG. 24 is a flowchart showing the overall processing operation of the development tool according to the fifth embodiment. [Figure 25] FIG. 25 is a flowchart showing an example of the automatic parameter correction process according to the fifth embodiment. [Figure 26] FIG. 26 is a flowchart showing an example of a parameter error presentation process according to the fifth embodiment. [Figure 27] FIG. 27 is a diagram showing an example of a sequence generation screen according to the fifth embodiment. [Figure 28] FIG. 28 is a diagram showing an example of a block list display according to the fifth embodiment. [Figure 29] FIG. 29 is a diagram showing a display example of a parameter setting area according to the fifth embodiment. [Figure 30A] FIG. 30A is a diagram illustrating an example of automatic correction processing of a functional block according to the fifth embodiment. [Figure 30B] FIG. 30B is a diagram showing another example of the automatic correction process for the functional block according to the fifth embodiment. [Figure 31] FIG. 31 is a diagram illustrating an example of the error presentation process according to the fifth embodiment. [Figure 32] FIG. 32 is a diagram showing an example of an error notification and a plurality of solutions. [Figure 33] FIG. 33 shows a flowchart of the pre-execution confirmation process according to the sixth embodiment. [Figure 34] FIG. 34 shows an example of the rule database according to the sixth embodiment. [Figure 35] FIG. 35 shows an example of a change in an application in the sixth embodiment. [Figure 36] FIG. 36 shows an example of application modification in the sixth embodiment. [Figure 37] FIG. 37 shows a flowchart of the pre-execution confirmation process according to the seventh embodiment. [Figure 38] FIG. 38 shows a flowchart of the pre-execution confirmation process according to the eighth embodiment. [Figure 39] FIG. 39 shows a flowchart of the pre-execution confirmation process according to the ninth embodiment. [Figure 40] FIG. 40 is a diagram showing an example of a general rule included in the rule database according to the tenth embodiment. [Figure 41] FIG. 41 is a flowchart showing an example of the automatic layout correction process according to the tenth embodiment. [Figure 42] FIG. 42 is a flowchart showing an example of the placement error presentation process according to the tenth embodiment. [Figure 43A] FIG. 43A is a diagram showing an example of the processing for arranging functional blocks and the processing for automatically correcting the arrangement according to the tenth embodiment. [Figure 43B] FIG. 43B is a diagram showing another example of the processing for arranging functional blocks and the processing for automatically correcting the arrangement according to the tenth embodiment. [Figure 44] FIG. 44 is a diagram illustrating an example of the placement error presentation process according to the tenth embodiment. [Figure 45] FIG. 45 is a diagram illustrating another example of the connection error display process according to the tenth embodiment. [Figure 46] FIG. 46 is a diagram showing another example of how to present a solution in the tenth embodiment. [Figure 47] FIG. 47 is a diagram showing yet another example of how to present a solution in the tenth embodiment. [Figure 48] FIG. 48 is a flowchart showing the processing operation of the development tool in the modified example of the tenth embodiment. DETAILED DESCRIPTION OF THE INVENTION

[0011] (Findings that formed the basis of this disclosure) The inventors of this application will now explain how they arrived at this disclosure. In order to develop control programs for household electrical appliances and the like that have actuators and / or heaters to meet the needs of a wide variety of users, an open development environment is required. That is, an environment is required that reduces the difficulty of developing control programs and allows third parties to easily participate in the development of control programs. In such an environment, for example, an apparel company could develop a control program for a washing machine that washes the clothes it sells.

[0012] Therefore, the inventors have developed a system that uses functional blocks that abstract the control of actuators and heaters included in products to create an environment in which control programs can be developed while maintaining safety, and package and distribute control programs consisting of combinations of multiple functional blocks as applications. This makes it possible to distribute a wide variety of applications, allowing products to be customized and updated to meet the needs 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.

[0013] For example, a program included in a household appliance may be embedded in a device for directly controlling an actuator and / or a heater, and may contain a mixture of programs developed by the manufacturer and programs developed by a third party. In this case, the manufacturer is unlikely to disclose all information about the appliance, including its know-how, to the third party. For example, the parameters or timing for driving the actuator and the heater are know-how related to the performance of the manufacturer's appliance. Therefore, for fear of losing competitiveness, the manufacturer is unlikely to disclose its know-how to third parties so that they can freely drive the appliance.

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

[0015] Manufacturers of household appliances and other products are also likely to offer new control programs to update users' lifestyles. However, developing a wide variety of new control programs requires a huge amount of work, including parameter adjustment and hardware performance evaluation. Because household appliances and other products are physically driven by actuators and / or heaters, it is easy to imagine that programs for household appliances and other products require more work, including performance evaluation, than smartphone programs. However, in an era where on-demand development tailored to each individual user's lifestyle is required rather than mass production, there is a need to develop a wide variety of control programs for household appliances and other products, just like smartphone programs. Therefore, manufacturers must create a wide variety of applications that ensure product safety while reducing the enormous amount of work required.

[0016] Furthermore, manufacturers may wish to ensure that their home appliances and other devices 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 verify safety by actually running a wide variety of applications on the home appliances and other devices.

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

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

[0019] The embodiments described below are all comprehensive or specific examples, and 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.

[0020] In addition, the drawings are not necessarily strict illustrations, and the same reference numerals are used to designate substantially the same components in the drawings, and redundant explanations are omitted or simplified.

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

[0022] 1, a 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, residences. The facilities 2a-2d may also be, for example, apartments, stores, offices, etc.

[0023] Cloud server 10 is a virtual server provided via a computer network (for example, 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.

[0024] 2A, the cloud server 10 virtually includes a processor 11 and a memory 12 connected to the processor 11. When instructions or software programs stored in the memory 12 are executed, the processor 11 functions as a sequence manager and a device manager, which will be described later.

[0025] The devices 20a to 20h are electrical 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 not shown in Fig. 1. Hereinafter, when it is not necessary to distinguish between the devices 20a to 20h, they will be referred to as device 20.

[0026] The device 20 may be a household electrical appliance (home appliance), a home facility, or the like. The household electrical appliance (home appliance), the home facility, or the like is not limited to appliances used in a home but also includes appliances used in a business. In this disclosure, the household electrical appliance, the home facility, or the like may be abbreviated as "household electrical appliance, etc." Examples of home appliances that may be used include microwave ovens, rice cookers, blenders, electric ovens, electric toasters, electric kettles, hot plates, induction heating (IH) cookers, roasters, bakeries, electric pressure cookers, electric waterless cookers, multi-cookers, coffee makers, refrigerators, washing machines, dishwashers, vacuum cleaners, air conditioners, air purifiers, humidifiers, hair dryers, fans, and ion generators. Examples of home facility that may be used include electric shutters, electronic locks, and electric water heaters for bathtubs. The device 20 is not limited to these.

[0027] 2B, the device 20 includes a housing 21, an actuator 22, a heater 23, and a control unit 24. It is sufficient that the device 20 includes at least one of the actuator 22 and the heater 23, and it is not necessary that the device 20 includes both the actuator 22 and the heater 23.

[0028] 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 internal spaces for processing an object.

[0029] The actuator 22 is a mechanical element that converts input energy into physical movement 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.

[0030] The heater 23 is an electric heater that converts electrical energy into thermal energy. The heater 23 heats the object by, for example, Joule heating, induction heating, or dielectric heating. For example, a nichrome wire, a coil, or a magnetron can be used as the heater 23.

[0031] Here, an example of why the device 20 of the present disclosure includes the actuator 22 and / or heater 23 will be described. Consider a case in which a manufacturer of a household electrical appliance or the like provides a third party with a development environment in which the manufacturer can freely control all of the parameters and drive combinations for the actuator 22 and heater 23. In this case, the third party can create a program that controls the actuator 22 and / or heater 23 within a parameter range or drive limits intended by the manufacturer for safe drive. In particular, driving the physically moving actuator 22 or the heater 23 that outputs thermal energy in a manner not anticipated by the manufacturer poses significant safety challenges. Examples of unexpected drive situations include high-speed rotation of an electric motor, which is an example of an actuator, and the supply of an overcurrent to the heater 23. The present inventors aimed to avoid excessive consideration of safety and thereby hinder the creation of an environment that can provide users with a wide variety of applications. Therefore, the device 20 of the present disclosure is intended to be specific to the actuator 22 that physically moves or the heater 23 that outputs thermal energy, and is intended to ensure safety.

[0032] 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, for example, by an integrated circuit.

[0033] 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 not shown in Fig. 1. Hereinafter, when it is not necessary to distinguish between the terminals 30a to 30d, they will be referred to as terminal 30.

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

[0035] As shown in FIG. 2C , the terminal 30 includes a display 31 and an input device 32. The display 31 may be, for example, a liquid crystal display or an organic EL display. The input device 32 may be, for example, a touch panel, a keyboard, a mouse, or a mechanical button. A voice input device may also be used as the input device 32. The display 31 and the input device 32 may be integrated into 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.

[0036] [1.2 Functional Configuration] Next, the functional configuration of the system 1 according to the present embodiment will be described with reference to Fig. 3. Fig. 3 is a diagram showing the functional configuration of the system 1 according to the first embodiment.

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

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

[0039] The sequence manager 100 manages multiple applications. The multiple applications are downloaded to the sequence manager 100 from an application distribution platform, 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.

[0040] The device manager 200 has a database for managing the multiple facilities 2a to 2d and the devices 300 and UIs 400 used in each of the facilities 2a to 2d. The device manager 200 manages the devices 300 and UIs 400 by recording device information and UI information associated with the facilities 2a to 2d in the database. The device information and UI information include, for example, control functions, drive functions, and operating statuses. For example, the device manager 200 manages the operating statuses of the devices 300 to understand the operating schedules of the devices 300. The device manager 200 may also manage log information for the devices 300.

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

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

[0043] The UI 400 provides information to the user and accepts input from the user.

[0044] Here, the application will be described. In the present embodiment, the application (hereinafter sometimes abbreviated as "app") refers to a control program defined by a plurality of functional blocks (hereinafter abbreviated as "blocks") that drive the actuator 22 and / or the heater 23. Each of the plurality of blocks 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, and turning on or off a lamp of the device 300. Furthermore, the block may include a condition for starting to drive 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 a end condition included in the first block is satisfied.

[0045] 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 (e.g., normal, dancing, rocking). Parameter 1001 can also be said to indicate the type of function. Parameter 1002 includes a value indicating the number of rotations of the drum. Parameter 1002 can also be said to indicate the strength of driving actuator 22 and / or heater 23. Parameter 1003 includes a value indicating the amount of water supplied into the drum as the water level after water supply. Parameter 1003 can also be said to indicate the state of actuator 22 and / or heater 23 after driving. Parameter 1004 includes a value indicating whether the circulation pump is on or off. Parameter 1004 can also be said to indicate 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.

[0046] A plurality of such blocks are used to define an application, for example, a plurality of blocks as shown in FIGS.

[0047] 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 FIGS. 5 to 7 are merely examples, and the blocks for the washing machine, microwave oven, and rice cooker are not limited to these. For example, the plurality of blocks may be hierarchically organized according to abstraction levels.

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

[0049] In this case, the layer for manufacturers has a lower level of abstraction than the layer for non-manufacturers. The lower level of abstraction means that the content that is closer to the parameters that drive the actuators and heaters is controlled.

[0050] On the other hand, developers can enable non-manufacturers to develop applications by providing blocks with a minimum abstraction level that ensures know-how and safety. Manufacturers can enable a wider range of people to develop applications by providing general users with blocks with a higher abstraction level. Higher abstraction levels correspond to blocks defined in terms that general users can understand without specialized knowledge. Terms that can be understood without specialized knowledge correspond to the functions of household appliances, for example. Specifically, if "Plenty" is selected as the water volume parameter in the "Wash" block of a washing machine, changes are made in one concrete layer, 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 agitation block from 120 rpm to 100 rpm. As described above, rearrangement and parameter changes of blocks at higher levels of abstraction can be realized with blocks at lower levels of abstraction. Furthermore, multiple blocks can be defined for devices other than washing machines, microwave ovens, and rice cookers, as shown in Figures 5 to 7. These blocks ensure safety and confidentiality regarding the operation of the actuators and heaters, while allowing for free application development by rearranging them and adjusting parameters.

[0051] For example, in the device 20 of this embodiment, if the application includes information on multiple blocks and the order in which each block is to be executed, and the rule includes information that at least one of the multiple 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.

[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 a command 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 the sequence manager database in advance, this step may be skipped.

[0055] The sequence manager information includes, for example, an identifier and / or an address (for example, a Uniform Resource Locator (URL), an Internet Protocol (IP) address, etc.) of the sequence manager 100. Furthermore, 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 the device database 1100 in advance, 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 address of the device 300. Furthermore, the device information 1101 may include any information. FIG. 9 shows an example of a device database according to the first embodiment. The device database 1100 of FIG. 9 has registered therein a plurality of pieces of device information, including the device information 1101. Each piece of device information includes a device ID, an address, a type, a manufacturer's name, a model number, an actuator / heater, and a deterioration level. The actuator / heater is identification information for 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 has deteriorated. Here, an increase in the deterioration level value indicates greater deterioration. The device information 1101 may also 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 unexecutable blocks, or may be information on executable blocks only. Whether a block is executable or not can be determined in advance based on information about the actuator / heater, etc. included in the device information 1101.

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

[0060] (Step S114) The UI 400 transmits the UI information to the device manager 200. This transmission of the 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 includes, 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 that can identify 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 pre-application execution phase F200 will be described. Before the pre-application execution phase F200, an application is downloaded from the application distribution platform to the sequence manager 100 in accordance with an instruction from the user via the UI 400. With the application thus downloaded to the sequence manager 100, the following processing is performed.

[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 the execution of the selected application.

[0066] The application execution request sent from the UI 400 to the sequence manager 100 is sent 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 user's behavior or state may be detected, and the application execution request may be automatically transmitted to the sequence manager 100 based on the detection result.

[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 defines the application to be executed and information that can identify the facilities 2a to 2d.

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

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

[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 for 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, purpose of use, location of installation, or any combination thereof.

[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 that can identify the facilities 2a to 2d. For example, the device manager 200 allocates a device DEV001 having 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 if the operating status of the device 300 or the connection status to the cloud is managed, 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 device allocation result, whereby multiple blocks included in the application are sent to the devices 300 to which they are respectively allocated.

[0075] (Step S216) The device 300 validates a block before executing it, i.e., before executing the block, the device 300 checks whether the block will cause problems for 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 check result, 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 block. The rule defines a parameter range (hereinafter referred to as an unacceptable range) in which driving of at least one of the actuator 22 and the heater 23 is not permitted. For example, the device 300 refers to a rule database to acquire a parameter range corresponding to the actuator 22 or the heater 23 to be driven by the block. The rule database may be included in the device 300, the sequence manager 100, or the device manager 200, for example.

[0079] Fig. 12 shows an example of a rule database according to the first embodiment. Rules 1301 and 1302 are registered in rule database 1300 in Fig. 12. Each of rules 1301 and 1302 has a parameter range that defines an unacceptable range. For example, rule 1301 has a range greater than 1000 rpm as an unacceptable range.

[0080] For example, the unacceptable range is a predetermined range of parameters that causes the internal space of the housing 21, the actuator 22, or the heater 23 to reach a tolerable temperature. The tolerable temperature means a rated temperature, and indicates the maximum allowable temperature. Therefore, if the actuator 22 or the heater 23 is driven using parameters within the unacceptable range, the temperature of the internal space of the housing 21, the actuator 22, or the heater 23 will reach an unacceptable temperature.

[0081] 12, each of rules 1301 and 1302 has an unacceptable range as the parameter range, but this is not limiting. For example, each of rules 1301 and 1302 may have a parameter range (hereinafter referred to as an acceptable range) within which driving of actuator 22 or heater 23 is permitted as the parameter range. Even in this case, each of rules 1301 and 1302 can define a range excluding the acceptable range as the unacceptable range. This acceptable range is specified as a range within which actuator 22 or heater 23 can be safely driven. Furthermore, the acceptable range is specified so that a wide range of parameters can be used for the development of a wide variety of applications.

[0082] For example, the parameters for the actuator 22 or the heater 23 that can be safely operated may change depending on the environment of the device 300, such as the internal space of the housing 21, and the allowable range may not depend solely on the performance of the actuator 22 or the heater 23 itself. Therefore, in order to operate safely in any environment, the allowable range places a high emphasis on safety, which reduces the room for development of a wide variety of applications. Therefore, rules may be associated with information about the device 300, etc., independently of the application. Use of such rules makes it possible to achieve both safety and development of a wide variety of applications.

[0083] The rule relates to the range within which the actuator 22 or heater 23 can be safely operated. The range within which the actuator 22 or heater 23 can be safely operated may be a range that takes into consideration the start or end conditions of the block. Consider an example of a first block and a second block that is executed after the first block. A rule (tolerance range) can be set that assumes that executing the first block until the start condition of the second block is reached will impose a load that will affect the safety of the actuator 22 or heater 23. In other words, the tolerance range depends on the performance of the actuator 22 or heater 23, the start or end conditions of the block, etc.

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

[0085] Each of the rules 1301 and 1302 further includes a type, a manufacturer name, and an actuator / heater. This allows the device 300 to obtain, from the rule database 1300, a rule corresponding to the actuator 22 or heater 23 driven by the block. For example, the device 300 refers to the rule database 1300 in FIG. 12 to obtain the rule 1301 for the dehydration block in FIG. 10.

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

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

[0088] For example, the device 300 can modify a block by changing the parameters of the block to parameters that fall within the allowable ranges. A specific example of such a modification of a block will be described with reference to FIG.

[0089] Fig. 13 shows an example of a change in blocks in Embodiment 1. In Fig. 13, the rotation speed parameter in the spin block is within the unacceptable range, so it is changed to a parameter within the acceptable range (1200 rpm → 1000 rpm).

[0090] Furthermore, for example, the device 300 can modify a block by changing the parameter of the block to a parameter within the allowable range and adding a new block. A specific example of such a block modification will be described with reference to FIG. 14.

[0091] 14 shows an example of a block change in the first embodiment. In FIG. 14, the time parameter in the spin block is within the unacceptable range, so it is changed to a parameter within the acceptable range (600 s → 300 s), and a stop block and a spin block are added after the spin block. For example, by changing a block that places an unintended load on device 300 by continuing to rotate the washing tub at high speed for a long time during the spin process, the load can be reduced, a stop can be added, and the spin block can be executed again, thereby providing an application that can safely execute the functions defined in the application before the change.

[0092] Device 300 can also modify blocks, for example by deleting them.

[0093] Although the modification of the block for the washing machine has been described here, the block can be modified in the same manner for other devices.

[0094] For example, in a microwave oven, if a temperature parameter falls within an unacceptable range, the temperature parameter may be changed to a temperature parameter within an acceptable range, and if an execution time parameter falls within an unacceptable range, the execution time parameter may be changed to a execution time parameter within an acceptable range and a new block may be added.

[0095] In addition, in the rice cooker, when a pot bottom temperature parameter falls within an unacceptable range, the pot bottom temperature parameter may be changed to a pot bottom temperature parameter within an acceptable range. Furthermore, when a duration parameter falls within an unacceptable range, the duration parameter may be changed to a duration parameter within an acceptable range, and a new block may be added.

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

[0097] (Step S218) The device manager 200 returns the result of the device allocation to the sequence manager 100. If the blocks are changed in the pre-execution check, the application including the changed blocks may be sent to the sequence manager 100.

[0098] (Step S220) Upon receiving the allocation result notification from the device manager 200, the sequence manager 100 notifies the user via the UI 400 that preparation for execution is complete.

[0099] (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 input from the user to confirm application execution. The UI 400 may also receive input from the user to change the device allocation. The UI 400 does not necessarily have to display a list of devices.

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

[0101] Note 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.

[0102] This completes the pre-application execution phase F200.

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

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

[0105] When a plurality of blocks are operated consecutively, the sequence manager 100 may transmit execution instructions for the plurality of blocks to the device manager 200 all at once.

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

[0107] (Step S312) Upon receiving the instruction to execute the first block, the device manager 200 updates the schedule (scheduled use time) of each device.

[0108] (Step S314) The device 300 receives the instruction to execute the first block and executes the first block.

[0109] (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. The device 300 may also transmit event information to the device manager 200 during the execution of the first block. The event information may be, for example, a sensor output value or a device operation, but is not limited to these. The device manager 200 transfers the completion notification and / or various information received from the device 300 to the sequence manager 100.

[0110] (Step S318) Upon receiving notification of the completion 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 processing corresponding to the error information (e.g., returning to the previous block, returning to the first block, waiting, etc.). Information on the processing corresponding to the error information may be 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 processing corresponding to the event information. For example, if the event information includes the 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.

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

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

[0113] Note that, similar to 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.

[0114] The subsequent processing is the same as the processing for the first block (S312 to S318), and therefore will not be illustrated or described again. 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.

[0115] Note that, although the execution of the blocks is instructed one by one in order here, this is not limiting. For example, the execution of multiple blocks assigned to the same device may be instructed together. In this case, it may be possible to check in advance whether each block satisfies the parameter range for function execution, or to download blocks corresponding to changes to the device before execution. Also, for example, it may be possible to instruct multiple devices to execute each block individually.

[0116] [1.4 Effects, etc.] As described above, an environment in which a wide variety of applications can be developed is provided by using applications including blocks and a rule database, and applications freely developed in that environment can safely drive the physically moving actuator 22 or the heater 23 that outputs thermal energy. 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 highly flexible applications and a rule database for ensuring safety in parallel, enabling the rapid development of a wide variety of applications.

[0117] Even after an application has been provided, it is possible to modify the rule database to make the application safer. Also, even if improvements are required to cope with situations that the manufacturer did not anticipate, the rule database is defined independently of the application, so that the rule database can be updated to accommodate all applications without having to modify the diverse applications themselves.

[0118] One possible solution would be to maintain a rule base for error handling by detecting the state when the application is executed without modifying the application itself. However, this solution would always involve dealing with the error after it has occurred, meaning that it would be acceptable for the home appliance to be overloaded or for safety to be compromised. Therefore, by maintaining a rule database independent of the application and modifying the application content by referencing the rule data, it is possible to ensure safety.

[0119] The device 20 in this embodiment includes at least one of an actuator 22 and a heater 23, and a control unit 24 that controls at least one of the actuator 22 and the heater 23. The control unit 24 obtains an application defined by a plurality of blocks that drive at least one of the actuator 22 and the heater 23, each of the plurality of blocks having parameters for driving the actuator 22 or the heater 23, and modifies the application by modifying at least one of the plurality of blocks by referring to a first rule that defines a first parameter range in which driving at least one of the actuator 22 and the heater 23 is not permitted, and at least one of the plurality of blocks has a parameter that falls within the first parameter range. The control unit 24 drives at least one of the actuator 22 and the heater 23 based on the modified application.

[0120] This allows the actuator 22 and / or the heater 23 to be driven based on an application defined by multiple blocks. This enables the development of applications using blocks that abstract the control of the device 20. This allows not only manufacturers but also third parties to develop a wide variety of applications, and these applications can be easily executed on the device 20. Furthermore, before the actuator 22 and / or the heater 23 are driven based on an application, blocks having parameters that fall within the first unacceptable parameter range can be modified. This prevents the actuator 22 and / or the heater 23 from being driven with unacceptable parameters. In other words, even if an application developer mistakenly issues an instruction to drive the actuator 22 and / or the heater 23 with unacceptable parameters, 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 prioritizes user convenience over ensuring the safety of the actuator 22 and / or the heater 23, the application developer can improve the safety of the device 20 controlled by the application.

[0121] For example, in the device 20 of this embodiment, the control unit 24 may change the application by referring to the first rule and changing the parameters included in the first parameter range to parameters included in a range in which driving of at least one of the actuator 22 and the heater 23 is permitted.

[0122] This allows parameters that fall within the first unacceptable parameter range to be changed to parameters that fall within the acceptable range, so that, for example, application developers can freely develop applications by lowering the priority of ensuring that the actuator 22 and heater 23 are operated safely.Furthermore, developers of software to be incorporated into the device 20 that controls the actuator 22 and heater 23 can execute blocks without having to check the safety of each application each time, and can prevent the actuator 22 and / or heater 23 from being operated with unacceptable parameters.

[0123] For example, in the device 20 of this embodiment, the control unit 24 may refer to the first rule, change the parameters included in the first parameter range to parameters included in a range in which driving of at least one of the actuator 22 and the heater 23 is permitted, and change the application by adding a new block to the multiple blocks.

[0124] This allows parameters included in the first unacceptable parameter range to be changed to parameters included in the acceptable range, thereby preventing the actuator 22 and / or the heater 23 from being driven with unacceptable parameters. Furthermore, since a new block can be added, it is possible to supplement with the new block any functionality that has been reduced by changing the parameters.

[0125] Furthermore, for example, in device 20 according to the present embodiment, control unit 24 may change the application by deleting blocks having parameters included in the first parameter range.

[0126] This allows for the deletion of blocks having parameters that fall within the first unacceptable parameter range, thereby preventing the actuator 22 and / or heater 23 from being driven with unacceptable parameters. For example, if the actuator 22 and heater 23 are unable to execute the parameters specified by the application developer, deleting them allows for control without causing confusion in the device. Meanwhile, the user may be notified that the parameters have been deleted.

[0127] For example, in the device 20 of this embodiment, the control unit 24 may refer to a first rule to determine whether each of the multiple parameters included in the multiple blocks is included in a first parameter range, and if it is determined that the parameter is included in the first parameter range, change the block that has the parameter.

[0128] This makes it possible to more reliably change blocks that have parameters that fall within the first unacceptable parameter range.

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

[0130] This allows the application to include information on order and timing, and allows sequential decisions to be made and executed while checking the parameter ranges of each block.

[0131] For example, in the device 20 of this embodiment, if the application includes information on multiple blocks and the order in which each block is to be executed, and the rule includes information that at least one of the multiple 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] This allows a third block to be guaranteed to be 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 ensuring safe operation of the actuator 22 and heater 23. Furthermore, developers of software to be incorporated into the device 20 that controls the actuator 22 and heater 23 can allow execution of blocks without checking the safety of each application every time.

[0133] Furthermore, for example, in the device 20 of the present embodiment, the first parameter range may be a parameter range that allows at least one of the actuator 22 and the heater 23 to reach a durable temperature.

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

[0135] Furthermore, for example, device 20 in this embodiment may include housing 21 having an internal space, and the first parameter range may be a parameter range that allows the internal space to reach 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 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, with regard to the pre-execution check (S216) described in detail, the timing at which the pre-execution check is performed and the module that is the subject of the pre-execution check are not limited to this. Therefore, several modified examples of the sequence diagram of the system 1 will be specifically described with reference to Figs. 15A to 15E.

[0138] 15A is a sequence diagram of the system 1 in Modification 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 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 is no longer necessary to build functions and communication APIs for performing these processes into the device 300, and it is possible to reduce the memory usage, etc., of the microcomputer built into 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, if a parameter change 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 Modification 2 of Embodiment 1. In Fig. 15B, the pre-execution check (S216) is performed by the device manager 200 when the device manager 200 notifies the allocation result (S218).

[0142] This means that the software embedded in the device 300 does not need to include the function of pre-execution confirmation (S216). This makes it possible to reduce the memory usage of the device 300, leading to cost reductions for the device 300.

[0143] Furthermore, in the above embodiment 1, the block execution (S314) by the device 300 was described as a processing flow 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 the block may be executed in response to a direct instruction from the 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] 15C is a sequence diagram of the system 1 in Modification 3 of Embodiment 1. In Fig. 15C, in 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 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 of the device 300 stopping or delaying operation 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 stopping or delay in operation of the device while an application is running is not acceptable.

[0148] In addition, in Modification 3, as in Embodiment 1, the pre-execution check (S216) has an important meaning, but the timing and the module that is the subject of the pre-execution check (S216) are not limited to those shown in Fig. 15C. In other words, Modification 3 may be combined with Modification 1 or 2.

[0149] 15D is a sequence diagram of the system 1 in Modification 4 of the first embodiment. 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 their 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 it is downloaded to the device 300. In this 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 a device 300 whose execution of a block is affected by the deterioration level, the device 300 performs a pre-execution check immediately before the block is executed, thereby enabling a pre-execution check according to the deterioration level.

[0151] Fig. 15E is a sequence diagram of the system 1 in Modification 5 of the first embodiment. Modification 5 corresponds to a combination of Modification 2 and Modification 3. In Modification 5, as shown in Fig. 15E, the pre-execution confirmation (S216) is performed by the device manager 200 when the device manager 200 notifies the allocation result (S218).

[0152] (Embodiment 2) Next, a description will be given of a second embodiment. This embodiment differs from the first embodiment in that the pre-execution confirmation is skipped if the application has already been authenticated. The following description will focus on the differences from the first embodiment.

[0153] The hardware configuration and functional configuration of the system 1 in this embodiment are the same as those in the first embodiment, and therefore illustrations and explanations thereof will be omitted.

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

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

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

[0157] Application authentication is a mechanism for ensuring the quality of an application, for example, and enables confirmation of the safety and / or identity (that the application has not been tampered with) of the application. An example of an application to which authentication information is assigned will be described below. If 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 subsequent steps S2165 to S2167 and ends the pre-execution confirmation process. On the other hand, if it is determined that the application has not been authenticated (No in S2162A), the device 300 proceeds to the next step S2165.

[0159] [2.2 Effects, etc.] As described above, the device 20 in this embodiment comprises 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 that includes information indicating whether the application has been authenticated, and each of the plurality of blocks has parameters for driving the actuator 22 or the heater 23. If the application does not include information indicating that it is authenticated, the control unit 24 modifies the application by modifying at least one of the plurality of blocks by referring to a first rule that defines a first parameter range in which driving at least one of the actuator 22 and the heater 23 is not permitted, and at least one of the plurality of blocks has parameters that fall within the first parameter range. The control unit 24 drives at least one of the actuator 22 and the heater 23 based on the modified application.

[0160] This allows the actuator 22 and / or the heater 23 to be driven based on an application defined by multiple blocks. This enables the development of applications using blocks that abstract the control of the device 20, allowing a wide variety of applications developed in this manner to be easily executed on the device 20. Furthermore, before the actuator 22 and / or the heater 23 are driven based on an application, blocks having parameters falling within the first unacceptable parameter range can be changed. This prevents the actuator 22 and / or the heater 23 from being driven with unacceptable parameters. This prevents the execution of an application that cannot safely control the device 20, thereby improving the safety of the device 20 controlled by the application. Furthermore, when an application is not authenticated, processing involving application changes can be performed, while when the application is authenticated, the processing load can be reduced. This eliminates the need to perform parameter range determination processing for all applications. Management through authentication reduces the processing load and establishes a standard for parameter range design, allowing application developers to design applications more easily and safely.

[0161] Furthermore, for example, in the device 20 according to the present embodiment, if the device 20 has information indicating that the application has been authenticated, the application does not need to be changed without referring to the first rule.

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

[0163] (Embodiment 3) Next, a third embodiment will be described. This embodiment differs from the first embodiment in that the pre-execution confirmation is skipped when the creator of the application and the creator of the device are the same. The following describes this embodiment, focusing on the differences from the first embodiment.

[0164] The hardware configuration and functional configuration of the system 1 in this embodiment are the same as those in the first embodiment, and therefore illustrations and explanations thereof will be omitted.

[0165] 3.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 S216B. Therefore, step S216B of the pre-execution confirmation processing will be described with reference to FIG.

[0166] FIG. 17 shows a flowchart of the pre-execution confirmation process according to 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 refers to the company, individual, or organization that created the application, and may also be called the 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 refers to the company, individual, or organization that produced 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 subsequent 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 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 that includes information indicating the creator, each of the plurality of blocks having parameters for driving the actuator 22 or the heater 23. The control unit 24 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, modifies the application by modifying at least one of the plurality of blocks by referring to a first rule that defines a first parameter range in which driving at least one of the actuator 22 and the heater 23 is not permitted. At least one of the plurality of blocks has a parameter that falls within the first parameter range. The control unit 24 drives at least one of the actuator 22 and the heater 23 based on the modified application.

[0172] This allows the actuator and / or heater to be driven based on an application defined by multiple blocks. This enables the development of applications using blocks that abstract the control of the device 20, and allows the device 20 to easily execute a wide variety of applications developed in this manner. Furthermore, before the actuator 22 and / or the heater 23 are driven based on an application, blocks having parameters falling within the first unacceptable parameter range can be modified. This prevents the actuator 22 and / or the heater 23 from being driven with unacceptable parameters. This means that the execution of an application that cannot safely control the device 20 can be prevented, thereby improving the safety of the device 20 controlled by the application. Furthermore, when the creator of the application and the manufacturer of the device 20 are different, processing involving application modification can be performed. However, when the creator of the application and the manufacturer of the device 20 are the same, the processing load can be reduced.

[0173] (Fourth embodiment) Next, a fourth embodiment will be described. This embodiment differs from the first embodiment in 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] The hardware configuration and functional configuration of the system 1 in this embodiment are the same as those in the first embodiment, and therefore illustrations and explanations 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 according to the fourth embodiment.

[0177] (Step S2163C) The device 300 acquires device deterioration information. The device deterioration information indicates the deterioration level of the actuator 22 and / or the heater 23 included in the apparatus 20. The method for detecting the deterioration level is not particularly limited, and may be detection 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 parameter range corresponding to the deterioration level of the actuator 22 or heater 23 driven by the block.

[0179] FIG. 19 shows an example of a rule database according to the fourth embodiment. Rules 1301C to 1304C are registered in rule database 1300C in FIG. 19. Each of rules 1301C to 1304C has a parameter range that defines an unacceptable range. For example, rule 1301C has an unacceptable range of greater than 1000 rpm for motor MM0001 with deterioration level 0. For example, rule 1302C has an unacceptable range of greater than 800 rpm for motor MM0001 with deterioration level 1. In other words, rule 1302C has a wider unacceptable range and a narrower acceptable range than rule 1301C.

[0180] Each of rules 1301C to 1304C further includes a type, a manufacturer name, an actuator / heater, and a deterioration level. This allows device 300 to acquire a rule corresponding to the deterioration level of actuator 22 or heater 23 driven by a block from rule database 1300. For example, if the deterioration level of motor MM0001 driven by the spinning block in FIG. 10 is 0, device 300 acquires rule 1301C for the spinning block by referring to rule database 1300C in FIG. 19.

[0181] 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 since the start of operation. These items are expected to increase in roughly proportional relationship with the user's use. Therefore, a rule is determined so that the deterioration level increases as the value corresponding to the item increases.

[0182] Furthermore, the item that determines the deterioration level is, 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 the sum of 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 the ratio of the execution temperature to the limit temperature of the heater 23, or the difference between the execution temperature and the limit temperature of the heater 23.

[0183] The degree of reproduction of the input and output of the actuator 22 and / or heater 23 is determined by referring to the relationship between the input value for driving the actuator 22 and / or heater 23 and the output of the actuator 22 and / or heater 23. The ratio of the actual output value for a given input to the output value specified in the relationship is used.

[0184] [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 the control unit 24 that controls at least one of the actuator 22 and the heater 23. The control unit 24 acquires an application defined by a plurality of blocks that drive at least one of the actuator 22 and the heater 23, each of the plurality of blocks having parameters for driving the actuator 22 or the heater 23, acquires deterioration information indicating whether or not at least one of the actuator 22 and the heater 23 has deteriorated, and, if the deterioration information indicates that at least one of the actuator 22 and the heater 23 has not deteriorated, sets a first rule that defines a first parameter range within which driving at least one of the actuator 22 and the heater 23 is not permitted. The application is modified by modifying at least one first block included in the plurality of blocks, the at least one first block having a parameter included in a first parameter range, and if the degradation information indicates that at least one of the actuator 22 and the heater 23 is degraded, driving of at least one of the actuator 22 and the heater 23 is not permitted, with reference to a second rule defining a second parameter range different from the first parameter range, and the application is modified by modifying at least one second block included in the plurality of blocks, the at least one second block having a parameter included in the second parameter range, and driving at least one of the actuator 22 and the heater 23 based on the modified application.

[0185] This allows the actuator 22 and / or the heater 23 to be driven based on an application defined by multiple blocks. This enables the development of applications using blocks that abstract the control of the device 20, allowing a wide variety of applications developed in this manner to be easily executed on the device 20. Furthermore, before the actuator 22 and / or the heater 23 are driven based on an application, blocks having parameters falling within the first unacceptable parameter range can be changed. This prevents the actuator 22 and / or the heater 23 from being driven with unacceptable parameters. This prevents the execution of an application that cannot safely control the device 20, thereby improving the safety of the device 20 controlled by the application. Furthermore, by using different parameter ranges depending on the degradation information of the device 20 and by using blocks, the application can issue a drive command to the actuator 22 and / or the heater 23 while taking into account the performance of the device, which deteriorates over time, thereby further improving the safety of the device 20 controlled by the application.

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

[0187] [5.1 Configuration] FIG. 20 is a diagram illustrating an example of the configuration of an information processing system used for application development.

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

[0189] The block database 41 is also called a block DB and is a recording medium that stores a block list including a plurality of function blocks. These function 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 that stores 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 hard disks, RAMs (Random Access Memory), ROMs (Read Only Memory), semiconductor memories, or the like. Such recording media may be volatile or non-volatile.

[0190] 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 instructions or software programs stored in the memory 52 to perform the processes described below and display characters or images on the display 53. The display 53 may be, for example, a liquid crystal display, a plasma display, or an organic electroluminescence (EL) display, but is not limited to these. The input unit 54 may be, for example, a keyboard, a touch sensor, a touchpad, or a mouse. Such a development tool 50 is used by, for example, an application developer to generate a sequence or an application including multiple function blocks. In this embodiment, the development tool 50 is an example of an information processing device.

[0191] The application providing server 60 acquires and stores the application generated by the development tool 50 from the development tool 50 via a communication network. Then, the application providing server 60 downloads the stored application to the sequence manager 100 in response to an instruction from the UI 400 provided in the terminal 30.

[0192] FIG. 21 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.

[0193] As shown in FIG. 21(a), the block database 41 stores, for each of a plurality of types of devices 20, a list of functional blocks for driving that type of device 20 as the block list described above. 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 first to fourth embodiments.

[0194] As shown in FIG. 21(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 applies to that type of apparatus 20. For example, rule groups 42a to 42e are stored. Rule group 42a includes rules R100 and R11 to R13 that apply to an oven range. Rule group 42b includes rules R200 and R21 to R23 that apply to a multi-cooker. Rule group 42d includes rules R400 and R41 to R43 that apply to a washing machine. These rules may be the same as or similar to the rules in the first to fourth embodiments described above.

[0195] Here, each of the rules R11 to R13 for the microwave oven is a dedicated rule that applies to a microwave oven of a predetermined model manufactured by a predetermined manufacturer, for example. Similarly, each of the rules R21 to R23 for the multi-cooker 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 rules R41 to R43 for the washing machine 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, rule 1301 or 1302 shown in FIG. 12.

[0196] 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, multiple 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, multiple types of multi-cookers.

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

[0198] The set of washing machine rules 42d stored in the rule database 42 includes, for example, a general rule R400 shown in FIG. 22(a). This general rule R400 indicates a parameter range (500 rpm, +∞) applicable to each of multiple types of washing machines. The multiple types of washing machines include washing machines provided by multiple manufacturers. Furthermore, if each manufacturer provides multiple models of washing machines, the multiple types of washing machines include those multiple models. In other words, the parameter range, which is a rule indicated by the general rule R400, applies to any washing machine, regardless of manufacturer or model. Note that, as in the first to fourth embodiments, the parameter range defines an unacceptable range. For example, the general rule R400 indicates a range greater than 500 rpm as an unacceptable range. Furthermore, as in the first to fourth embodiments, the unacceptable range may be, for example, a parameter range that causes the internal space of the housing 21, the actuator 22, or the heater 23 to reach a durable temperature.

[0199] Furthermore, the general rule R400 for the washing machine may indicate parameter ranges that apply to washing machines from multiple manufacturers, as shown in (b) of Fig. 22. For example, the general rule R400 indicates a parameter range (800 rpm, +∞) that applies to multiple models of washing machines provided by manufacturer "Company A" and a parameter range (600 rpm, +∞) that applies to multiple models of washing machines provided by manufacturer "Company B".

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

[0201] (Step S11) First, the development tool 50 installs one or more function blocks. Specifically, the development tool 50 acquires one or more function blocks by downloading them from the block database 41. For example, the development tool 50 may acquire a block list 41a of a microwave oven, 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.

[0202] Here, each function block stored in the block database 41 may be accompanied by device information corresponding to that function block. This device information indicates, for example, the manufacturer, type, model, or model number of the device 20 that is driven in accordance with 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 one or more function blocks for driving each device 20 used for heating food.

[0203] (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 the application that is the sequence. In this embodiment, in step S12, the development tool 50 refers to the above-mentioned rules and modifies the application based on the rules.

[0204] (Step S13) Next, the development tool 50 uploads the generated sequence. Specifically, in response to an input operation by the operator on the input unit 54, the development tool 50 generates transmission information for transmitting the generated sequence to the application providing server 60 based on the content of the sequence, and transmits the transmission information to the application providing server 60. This transmission information may be, for example, JSON (JavaScript Object Notation). As a result, the sequence is transmitted to the application providing server 60 and stored in the application providing server 60 as an application.

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

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

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

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

[0209] (Step S22) Next, the development tool 50 performs a function block placement process 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, in response to an input operation by the operator to the input unit 54, the development tool 50 places the selected function block in a selected block area on a sequence generation screen on the display 53. The sequence generation screen will be described later with reference to FIG. 27. That is, the operator drags and drops one of the multiple function blocks into the selected block area.

[0210] (Step S23) Next, the development tool 50 performs parameter setting processing for the function 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 to be used for that function block in the parameter setting area on the sequence generation screen described above. 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. In this way, the parameters are set for that function block.

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

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

[0213] Note that if the processing of step S23 is performed after the automatic parameter correction processing is performed in step S25, then in step S23 the development tool 50 displays the parameters changed by the automatic correction processing in the parameter setting area. On the other hand, if the processing of step S23 is performed after the error presentation processing is performed in step S25, then in step S23 the development tool 50 again accepts the content of the parameters in response to an input operation by the operator on the input unit 54, as described above. This changes the parameters for the function block. That is, the function block is changed.

[0214] (Step S26) If the development tool 50 determines in step S24 that the parameter is outside the unacceptable range (Yes in step S24), it further determines whether 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 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 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.

[0215] (Step S27) If the development tool 50 determines in step S26 that the connection is not permitted (No in step S26), it performs connection support processing. In this connection support processing, the development tool 50 performs error notification processing to notify the operator of an error, or automatic connection correction processing. Then, the development tool 50 repeatedly performs the processing from step S22.

[0216] Note that if the processing of step S22 is performed after the automatic connection correction processing is performed in step S27, then in step S22 the development tool 50 displays, in the selected block area, two or more function blocks that have been reconnected by the automatic correction processing. On the other hand, if the processing of step S22 is performed after the error presentation processing 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. Furthermore, if the processing of steps S27 to S22 is repeated, then the development tool 50 may skip the processing of steps S23 to S25 that follow step S22, because the parameters of the function blocks have already been set within the allowable ranges.

[0217] (Step S28) If 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. If 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. In this case, 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.

[0218] (Step S29) When the development tool 50 determines in step S28 that the generation of the sequence is complete (Yes in step S28), it further determines whether the flow of the entire generated sequence is permitted. For example, in the sequence, a second function block is placed before or after a first function 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 function block and the second function 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 function block be placed before or after the first function block. In such a case, the development tool 50 determines that the flow of the entire generated sequence is permitted.

[0219] (Step S30) If the development tool 50 determines in step S29 that the flow of the entire sequence is not permitted (No in step S29), it performs placement support processing. In this placement support processing, the development tool 50 performs error notification processing to notify the operator of an error, or automatic correction processing for the placement of functional blocks. Then, the development tool 50 repeatedly performs the processing from step S22.

[0220] If the processing of step S22 is performed after the automatic correction processing of the placement is performed in step S30, the development tool 50 displays, in step S22, two or more function blocks that have been rearranged by the automatic correction processing in the selected block area. Furthermore, if the processing of steps S30 to S22 is repeated, the development tool 50 may skip the processing of steps S23 to S25 after step S22 because the parameters of the function blocks have already been set within the allowable ranges. Furthermore, the development tool 50 may skip the processing of steps S26 and S27 because connection of the function blocks has already been permitted. Furthermore, the development tool 50 may also skip the processing of step S28.

[0221] FIG. 25 is a flowchart showing an example of the automatic parameter correction process.

[0222] 24, each time a functional block is selected and placed, a determination and automatic correction process is performed on the parameters of the functional block. However, the present disclosure is not limited to this example, and the development tool 50 may perform each process according to the flowchart shown in FIG.

[0223] (Step S41) The development tool 50 selects M (M is an integer greater than or equal to 1 and less than or equal to N) function blocks from N (N is an integer greater than or equal to 2) function blocks for driving the device 20, such as a washing machine, in response to an input operation by the operator to the input unit 54. In other words, the development tool 50 selects each of the M function blocks as a selected block from the N function blocks for driving at least one of the actuator 22 and the heater 23 provided in the device 20, which is the equipment to be controlled, in response to an input operation by the operator to the input unit 54.

[0224] (Step S42) Next, the development tool 50 generates a sequence, i.e., an application, by setting parameters for each of the selected M functional blocks. That is, the development tool 50 sets parameters for driving the actuator 22 or the heater 23 for each of the M selected blocks in accordance with an input operation by an operator to the input unit 54, thereby generating an application including at least the M selected blocks.

[0225] (Step S43) Next, if each of the M functional blocks is a block for operating a washing machine, the development tool 50 refers to the rule applied to the washing machine. For example, if the application generated in step S42 is applicable to multiple types of washing machines, the development tool 50 refers to the general-purpose rule R400. Furthermore, if the application generated in step S42 is applicable to a specific model of washing machine, the development tool 50 refers to a rule from among the dedicated rules R41 to R43 that is associated with that model of washing machine. In other words, the development tool 50 determines whether the application generated in step S42 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. Then, the development tool 50 refers to a rule candidate corresponding to the determination result of the application from among a plurality of rule candidates that respectively define parameter ranges within which operation of at least one of the actuator 22 and the heater 23 is not permitted, as the above-mentioned rule.

[0226] (Step S44) Then, the development tool 50 determines whether or not the parameters of each of the M function blocks set in step S42 are within the unacceptable range indicated by the above-mentioned rule.

[0227] (Step S45) If the development tool 50 determines that the parameter is within the unacceptable range (Yes in step S44), it modifies the function block having the parameter. That is, the development tool 50 modifies the application by modifying at least one of the M selected blocks, with reference to a rule that defines a parameter range in which driving of at least one of the actuator 22 and the heater 23 is not permitted. Here, at least one of the M selected blocks has a parameter that is within the parameter range.

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

[0229] FIG. 26 is a flowchart illustrating an example of a parameter error presentation process.

[0230] 24, each time a functional block is selected and placed, a determination is made on the parameters of the functional block and an error notification process is performed. However, the present disclosure is not limited to this example, and the development tool 50 may perform each process according to the flowchart shown in FIG.

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

[0232] (Step S51) If the development tool 50 determines in step S44 that the parameter is within the unacceptable range (Yes in step S44), it displays an error on the display 53 without automatically changing the function block having that parameter. This notifies the operator of the error. That is, in the processing of steps S43, S44, and S51, the development tool 50 notifies the operator of the error by referring to the rule. Specifically, the development tool 50 refers to the rule that defines the parameter range in which driving of at least one of the actuator 22 and the heater 23 is not permitted, and if at least one of the M selected blocks has a parameter that is within the above-mentioned parameter range, it notifies the operator of the error.

[0233] The development tool 50 may present the error and multiple solutions to the operator, prompting the operator to select one. In this case, the development tool 50 may present the operator with differences in output performance for each of the multiple solutions. In addition, the development tool 50 may present at least two solutions from among a solution involving changing parameters, a solution involving deleting the selected block, and a solution involving adding a block.

[0234] (Step S52) The operator, upon seeing the error, changes the parameters set in step S42 by performing an input operation on the input unit 54 of the development tool 50. If multiple solutions are presented to the operator as options, the operator selects any solution from the options by performing an input operation. As a result, the development tool 50 changes the function blocks. That is, the development tool 50 changes the application by changing at least one of the M selected blocks in response to the input operation by the operator who has received the error. Then, the development tool 50 repeatedly executes the process from step S43.

[0235] (Step S46) If the development tool 50 determines in step S44 that the parameters are not within the unacceptable range (No in step S44), it outputs the application. At this time, if the application has been changed in step S52, the changed application is output. On the other hand, if the application has not been changed in step S52, the application generated in step S42 is output.

[0236] Here, when the process of step S51 is repeated, the development tool 50 may change the presentation format of the error depending on the number of repetitions. 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 presents parameters that are not included in the above-mentioned parameter range to the operator. That is, when the number of times the error is presented is K times or more, the development tool 50 displays parameters that are not included in the parameter range, i.e., parameters that are not included in the unacceptable range, on the display 53 as candidates for parameters to be set in the functional block. This allows the candidate to be proposed to the operator, for example, an application developer. As a result, the operator, who is an application developer, who sees the candidate can easily change the parameter set in step S42 to the candidate by performing an input operation on the input unit 54 of the development tool 50.

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

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

[0239] The development tool 50 displays the above-described sequence generation screen on the display 53. The sequence generation screen includes a parameter setting area D1, a block list area D2, a target device area D3, and a selected block area D4.

[0240] In the parameter setting area D1, a reception image for receiving the contents of the parameters used in the function block is displayed.

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

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

[0243] The selected block area D4 displays functional blocks selected from the block list displayed in the block list area D2, and the functional blocks are displayed as icons, for example.

[0244] For example, an operator determines the type name of the device 20 to which the application is applied by performing an input operation on the input unit 54 of the development tool 50. The development tool 50 displays the determined type name in the target device area D3. For example, the determined type name "rice cooker" is displayed. 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 the selection block area D4 may be executed in the order in which they are placed. For example, the function blocks are executed sequentially from left to right in FIG. 27 . In other words, the application includes information on the order in which each of the M selection blocks placed in the selection block area D4 will be executed and information on the timing at which each of the M selection blocks will be executed.

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

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

[0247] 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. 27 by performing an input operation on the input unit 54. The development tool 50 displays a block list corresponding to the device 20 with the selected type name, as shown in, for example, FIGS. 28(a) and 28(b). For example, when an oven range is selected as shown in FIG. 28(a), the development tool 50 displays a block list for the oven range. For example, the block list includes functional blocks that realize the respective functions of baking, microwave heating, oven, grill, steaming, preheating, and superheated steam. Furthermore, when a multi-cooker is selected as shown in FIG. 28(b), the development tool 50 displays a block list for the multi-cooker. For example, the block list includes functional blocks that realize the respective functions of preheating, keeping warm, frying, pressure cooking, rice cooking, steaming, stewing, mixing, and boiling.

[0248] 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. 27. That is, in response to such an input operation, the development tool 50 performs the process of step S22 shown in Fig. 24, i.e., the process of placing the functional block.

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

[0250] 29(a) and 29(b), the development tool 50 displays in the parameter setting area D1 a reception image for receiving the contents of the parameters included in the function block of the microwave oven, which is the device 20. A function block that realizes the oven function and a function block that realizes the microwave heating function can be applied to the microwave oven.

[0251] For example, the reception image of the parameter setting area D1 shown in FIG. 29(a) is an image for receiving the contents of multiple parameters included in the oven's functional block. For example, the oven's functional block includes the oven's set temperature, duration, steam on / off, and two-stage cooking on / off as parameters. The operator looks at the reception image and performs an input operation on the input unit 54 to input the values of the set temperature and duration as the contents of the set temperature parameter and the duration parameter, respectively. Furthermore, the operator inputs either on or off for steam and either on or off for two-stage cooking as the contents of the steam parameter and the two-stage cooking parameter, respectively. The development tool 50 sets the parameters used in the oven's functional block by receiving the contents of each input parameter.

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

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

[0254] Furthermore, when each parameter included in the functional block is set in this manner, the development tool 50 determines whether the parameter is outside the unacceptable range by referring to the rules of the device 20 corresponding to that functional block, as in step S24 of Figure 24.

[0255] FIG. 30A is a diagram illustrating an example of automatic correction processing of a functional block.

[0256] For example, as shown in (a) of Fig. 30A, the operator inputs the respective values of the set temperature and duration included in the oven's functional blocks by performing an input operation on input unit 54. Furthermore, the operator inputs either on or off for steam and either on or off for two-stage cooking by performing an input operation on input unit 54. In this way, the parameters used in the oven's functional blocks are set.

[0257] Once the parameters are set in this manner, the development tool 50 performs an automatic correction process for the functional block. First, the development tool 50 references the rule for the microwave oven corresponding to the functional block. For example, the development tool 50 identifies the rule group 42a for the microwave oven in the rule database 42 shown in FIG. 21(b), and references any one of the rules included in the rule group 42a. The rule may be the general-purpose rule R100 or the dedicated rule R11, for example.

[0258] If the development tool 50 determines that the input parameter, for example, 350°C, falls within the parameter range specified by the rule, i.e., that the value falls within the unacceptable range, it modifies the parameter value. For example, if the parameter range exceeds 300°C, the development tool 50 modifies the set temperature value from 350°C to 300°C, as shown in FIG. 30A (b). At this time, the development tool 50 may modify the duration parameter to increase the duration in order to lower the set temperature. Such parameter modification changes the oven's functional blocks. In other words, the application including the functional blocks is modified. This ensures the safety of the microwave oven.

[0259] As described above, in this embodiment, the development tool 50 refers to the rules to determine whether each of the multiple parameters included in the M selection blocks is included in the parameter range, and if it is determined that the parameter is included in the parameter range, changes the selection block having that parameter. In other words, the development tool 50 refers to the rules to change the parameter included in the parameter range to a parameter included in a range in which driving of at least one of the actuator 22 and the heater 23 is permitted, thereby changing the application.

[0260] FIG. 30B is a diagram showing another example of the automatic correction process for a functional block.

[0261] Furthermore, in the automatic correction process for the function blocks, the development tool 50 may not only correct parameters but also add new function blocks. For example, as shown in (a) of FIG. 30B, the operator inputs the values of the set temperature and duration included in the function block of the oven by performing an input operation on the input unit 54. This sets the parameters used in the function block of the oven.

[0262] If the development tool 50 determines that the input parameter, the duration value, falls within the parameter range specified by the rule, it modifies the parameter value. In the example of FIG. 30B (a), the duration value is 120 minutes. That is, if the development tool 50 determines that 120 minutes falls within the unacceptable range, it modifies the 120 minutes. Specifically, if the parameter range exceeds 60 minutes, the development tool 50 modifies the duration value from 120 minutes to 60 minutes, as shown in FIG. 30B (b). At this time, in order to shorten the duration, the development tool 50 adds, for example, a stop function block shown in FIG. 30B (c) and an oven function block shown in FIG. 30B (d). The added stop function block is a block that stops the operation of the oven range for 10 minutes. The added oven function block is a block that compensates for the oven duration that will no longer be performed due to the duration being shortened from 120 minutes to 60 minutes as described above. In this example, the added oven function block includes the set temperature of "300°C" and the duration of "60 minutes" as parameters. This ensures the safety of the oven range.

[0263] Thus, in this embodiment, the development tool 50 may refer to the rules, change the parameters included in the parameter range to parameters included in a range in which driving of at least one of the actuator 22 and the heater 23 is permitted, and change the application by adding a new block to the M selected blocks.

[0264] Furthermore, as in the above-described first to fourth embodiments, when parameters are set as shown in (a) of FIG. 30A and (a) of FIG. 30B, development tool 50 may delete the oven's functional block having the parameter. In other words, development tool 50 changes the application by deleting the selected block having the parameter included in the parameter range. This also ensures the safety of the microwave oven.

[0265] FIG. 31 is a diagram illustrating an example of the error presentation process.

[0266] For example, as shown in (a) of Fig. 31, the operator inputs the values of the set temperature and duration included in the oven's functional block by performing an input operation on the input unit 54. This sets the parameters used in the oven's functional block.

[0267] Here, the development tool 50 first refers to the rule for the microwave oven corresponding to the functional block. If the development tool 50 determines that the input parameter, the set temperature, falls within the parameter range specified in the rule, it performs an error notification process. In the example of FIG. 31, the set temperature is 350°C. That is, if the development tool 50 determines that 350°C falls within the unacceptable range, it performs an error notification process. Specifically, the development tool 50 displays an error message E1 in the parameter setting area D1, for example, as shown in FIG. 31(a). This error message E1 indicates that the temperature is too high. This error notification process is performed, for example, in step S51 of FIG. 26.

[0268] Furthermore, when the development tool 50 determines that the input parameter, the set temperature, falls within the unacceptable range, it may display, for example, an error message E2 in the parameter setting area D1, as shown in (b) of FIG. 31. This error message E2 lists a possible set temperature, for example, 300°C. Such an error presentation process may be performed, for example, in step S51 of FIG. 26, when an error is repeatedly presented K times or more as described above.

[0269] Furthermore, when the development tool 50 determines that the input parameter, the set temperature, falls within the unacceptable range, it may display an error message E3 in the parameter setting area D1, for example, as shown in (c) of FIG. 31. This error message E3 indicates the settable range of the set temperature, for example, 100 to 300°C. This settable range is the allowable range for parameters such as the set temperature. Such an error presentation process may be performed, for example, in step S51 of FIG. 26, when an error is repeatedly presented K times or more as described above.

[0270] By displaying such an error, the operator (application developer) can easily reset the unacceptable parameters to the acceptable ranges, thereby ensuring the safety of the microwave oven.

[0271] In the above example, the error messages E1 to E3 are displayed, but the manner in which the errors are presented is not limited to these examples and may be presented in any manner, for example, by sound.

[0272] FIG. 32 is a diagram showing an example of an error notification and a plurality of solutions.

[0273] In the example of FIG. 32(a), the set temperature is 300°C and the duration is 120 minutes. The development tool 50 refers to the rules regarding the upper limit of the duration when the set temperature is 300°C. If it determines that 120 minutes falls within the unacceptable range, it presents a solution to correct the 120 minutes. That is, the development tool 50 presents error E1 shown in FIG. 32(a) and the solutions and effects shown in FIG. 32(b) and (c). Specifically, as shown in FIG. 32(b), for example, the development tool 50 presents solution 1, which corrects the duration from 120 minutes to 60 minutes and adds a block to stop the operation of the oven range for 10 minutes and a block to compensate for the duration of the oven that will no longer be operated. Furthermore, the development tool 50 refers to the rules regarding the upper limit of the set temperature for a duration of 120 minutes. If it determines that 300°C falls within the unacceptable range, it presents a solution to correct the 300°C. Specifically, for example, as shown in FIG. 32(c), the development tool 50 presents a solution 2 for lowering the set temperature to 200°C.

[0274] In this way, by presenting multiple solutions to an error at the same time, the operator can reduce the effort required to change parameters.

[0275] Furthermore, when presenting multiple solutions, the development tool 50 may also present the impact of each solution on the application. Alternatively, when presenting multiple solutions, the development tool 50 may present the impact on food heated by the oven. For example, as shown in (b) of FIG. 32, when solution 1 is presented, the development tool 50 presents impact 1. As described above, solution 1 is a solution that modifies the duration value from 120 minutes to 60 minutes, stops the operation of the oven range for 10 minutes, and adds a block to compensate for the duration of the oven that will no longer be performed. When solution 1 is presented, the development tool 50 notifies, as impact 1, an event in which the amount of heat applied to the food remains the same but the total oven time (i.e., the baking time) is extended. Furthermore, as shown in (c) of FIG. 32, when solution 2 is presented, in which the set temperature is lowered to 200°C, the development tool 50 notifies, as impact 2, an event in which the amount of heat applied to the food decreases, which may result in a change in the shape and texture of the food. The development tool 50 may also present a solution for deleting the functional block shown in (a) of Figure 32, i.e., the selected block having parameters that fall within the unacceptable range, and an impact indicating that the deletion will result in the oven not being operated on the food material.

[0276] That is, in this embodiment, the development tool 50 presents multiple solutions to the error and modifies the application by changing at least one of the M selected blocks in response to an input operation by an operator who has received the error and the multiple solutions. Specifically, the multiple solutions include at least two of the following solutions: a solution for changing a parameter included in a parameter range, a solution for adding a new block to the M selected blocks, and a solution for deleting a selected block having a parameter included in the parameter range. Furthermore, the development tool 50 presents the effect on the object acted upon by the activation of the actuator 22 or heater 23, or the effect on the application, when each of the multiple solutions is implemented. In the example of FIG. 32, the object acted upon by the activation of the actuator 22 or heater 23 is food heated by the heater 23. Information regarding the error, the solution, and the effect may be displayed in association with the parameter range in the rule.

[0277] In this way, by presenting multiple countermeasures together with the impact they will have on the application, the operator can intuitively select a countermeasure in line with the operator's intention in creating the application.

[0278] It is to be noted that while countermeasures that involve only changing parameters or deleting selected blocks are likely to have a significant impact on application performance, countermeasures that involve making changes that include adding blocks can keep the impact on application performance relatively small, but may affect the application's execution time, and so on, it is expected that the impact on the application will vary depending on the type of countermeasure. On the other hand, it is expected that operators have various priorities depending on the situation, such as wanting to minimize the impact on application performance or wanting to change the application's execution time.

[0279] That is, in order to present the operator with a solution that is appropriate for a variety of situations, when presenting multiple solutions, it is advisable to present at least two of the solution that involves changing parameters, the solution that involves deleting the selected block, and the solution that involves adding a block. For example, as shown in the example of Figure 32, it is advisable to present both a solution that involves changing parameters only and a solution that involves changes that include adding a block. This allows the operator, when selecting a solution, to choose an option that satisfies the operator's intention in creating the application.

[0280] [5.4 Effects, etc.] As described above, in this embodiment, an environment in which a wide variety of 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 physically moving actuator 22 or the heater 23 that outputs thermal energy for applications freely developed in this environment. As a result, for example, it becomes possible to develop a wide variety of highly flexible applications and a rule database for ensuring safety in parallel, thereby enabling the early development of a wide variety of safe applications.

[0281] Furthermore, by combining this embodiment with any 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. Furthermore, even when it becomes necessary to improve a situation that the manufacturer did not anticipate in advance, it becomes possible to support all applications by updating the rule database, without having to change the diverse applications themselves, because the rule database is defined independently of the applications.

[0282] Specifically, the information processing method in this embodiment is an information processing method executed by a computer system such as development tool 50. This information processing method includes: (a) selecting, as selected blocks, M blocks (M is an integer of 1 or more and N or less) from N blocks (N is an integer of 2 or more) for driving at least one of actuator 22 and heater 23 provided in device 20, which is a control target device, in response to an input operation by an operator; (b) setting parameters for driving actuator 22 or heater 23 in each of the M selected blocks in response to the input operation by the operator, thereby generating an application including at least the M selected blocks; (c) modifying the application by modifying at least one of the M selected blocks with reference to a rule that defines a parameter range in which driving at least one of actuator 22 and heater 23 is not permitted, so that at least one of the M selected blocks has a parameter included in the parameter range; and (d) outputting the modified application.

[0283] This allows the actuator 22 and / or the heater 23 to be driven based on an application defined by M blocks. This enables the development of applications using blocks that abstract the control of the device 20. This allows not only manufacturers but also third parties to develop a wide variety of applications, and these applications can be easily executed on the device 20. Furthermore, during development, blocks having parameters falling within the unacceptable parameter range can be automatically modified. This prevents the actuator 22 and / or the heater 23 from being driven with unacceptable parameters. In other words, even if an operator who is an application developer erroneously sets unacceptable parameters for the actuator 22 and / or the heater 23, it is possible to prevent the creation of an application that cannot safely control the device 20. Therefore, even if an application developer creates or generates an application that prioritizes 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 improved.

[0284] In addition, in (c) above, the application may be changed by referring to the rules and changing the parameters included in the parameter range to parameters included in a range in which driving of at least one of the actuator 22 and the heater 23 is permitted.

[0285] This allows a parameter that falls within an unacceptable parameter range to be automatically changed to a parameter that falls within an acceptable range, so that, for example, an operator who is an application developer can relatively freely create an application that safely operates the actuator 22 and the heater 23 without being aware of the acceptable range of the parameter.

[0286] In addition, in (c) above, the application may be changed by referring to the rule, changing the parameters included in the parameter range to parameters included in a range in which driving of at least one of the actuator 22 and the heater 23 is permitted, and adding a new block to the M selected blocks.

[0287] This allows parameters included in an unacceptable parameter range to be changed to parameters included in an acceptable range, thereby preventing the actuator 22 and / or the heater 23 from being driven with unacceptable parameters. Furthermore, since a new block can be added, it is possible to supplement with the new block any functionality that has been reduced by changing the parameters.

[0288] In addition, in (c) above, the application may be changed by deleting selected blocks having parameters included in the parameter range.

[0289] This allows for the deletion of blocks having parameters that fall within an unacceptable parameter range, thereby preventing the actuator 22 and / or heater 23 from being driven with unacceptable parameters. For example, if the actuator 22 and heater 23 cannot execute the parameters set by the application developer in the first place, deleting the blocks allows for control to be performed without causing confusion in the device that is the controlled equipment. Meanwhile, the operator may be notified that the blocks have been deleted.

[0290] In addition, (c) above may refer to the rule to determine whether each of the multiple parameters included in the M selection blocks is included in the parameter range, and if it is determined that the parameter is included in the parameter range, change the selection block having that parameter.

[0291] This makes it possible to more reliably change blocks that have parameters that fall within the unacceptable parameter range.

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

[0293] This allows the application to include information on order and timing, and allows sequential decisions to be made and executed while checking the parameter ranges of each selected block.

[0294] The parameter range is a parameter range that allows at least one of the actuator 22 and the heater 23 to reach a durable temperature.

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

[0296] Furthermore, the device 20, which is the equipment to be controlled, may include a housing 21 having an internal space, and the parameter range may be a parameter range that allows the internal space to reach a durable temperature.

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

[0298] In addition, in (c) above, it may be determined 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 a rule candidate corresponding to the determination result of the application may be referenced as a rule from among a plurality of rule candidates that respectively define parameter ranges in which operation of at least one of the actuator 22 and the heater 23 is not permitted.

[0299] This allows for an increase in the number of variations in applications, such as dedicated applications and general-purpose applications. Furthermore, because rules appropriate for each variation are referenced, the application for that variation can be modified appropriately for each variation.

[0300] Furthermore, 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 an error. That is, the information processing method (a) selects, as selected blocks, M blocks (M is an integer of 1 or more and N or less) from N blocks (N is an integer of 2 or more) for driving at least one of actuator 22 and heater 23 provided in device 20, which is a control target device, in response to an input operation by an operator, (b) generates an application including at least M selected blocks by setting parameters for driving actuator 22 or heater 23 in each of the M selected blocks in response to the input operation by the operator, (c) refers to a rule defining a parameter range in which driving at least one of actuator 22 and heater 23 is not permitted, and presents an error to the operator if at least one of the M selected blocks has a parameter included in the parameter range, (d) modifies the application by changing at least one of the M selected blocks in response to the input operation by the operator who received the error notification, and (e) outputs the modified application.

[0301] According to this, if the operator who is the application developer erroneously sets an inadmissible parameter for the actuator 22 and / or the heater 23, an error is displayed, thereby making it 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 the application is automatically changed as described above.

[0302] Furthermore, the information processing method according to this embodiment is an information processing method executed by a computer system such as the development tool 50, and may present an error and multiple solutions at the same time.

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

[0304] Furthermore, 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 solution to an error while simultaneously presenting the impact that implementing the solution will have on the application.

[0305] This allows the operator to intuitively select a solution in line with the operator's intention when creating the application.

[0306] Furthermore, the information processing method in this embodiment is an information processing method executed by a computer system such as development tool 50, and when presenting solutions to errors, it is preferable to present at least two of solutions involving changing parameters, solutions involving deleting selected blocks, and solutions involving adding blocks.

[0307] This allows the operator, when selecting a solution, to select an option that satisfies the operator's intention in creating the application.

[0308] In addition, in this information processing method, after (d) above, (c) and (d) above are repeatedly executed, and (f) if the number of times the error is presented is K times or more (K is an integer greater than or equal to 2), a parameter that is not included in the parameter range may be presented to the operator.

[0309] According to this, if an error is repeatedly displayed, parameters that are not included in the parameter range can be displayed to the operator as suitable parameter candidates, allowing the operator to easily change parameters that are included in the parameter range to parameters that are not included in the parameter range, making it easier to create safe applications.

[0310] In addition, in this information processing method, after (d) above, (c) and (d) are repeatedly executed, and (f) if the number of times the error is presented is K times or more (K is an integer greater than or equal to 2), a range of parameters that is not included in the parameter range may be presented to the operator.

[0311] According to this, if the error is repeatedly displayed, a parameter range that is not included in the parameter range is displayed to the operator, so that the operator can easily change the parameter that is included in the parameter range to a parameter that is not included in the parameter range, making it easier to create a safe application.

[0312] (Embodiment 6) In the above-described first to fourth embodiments, blocks (i.e., parameters, etc.) included in an application are changed. In the present embodiment, the application is changed by changing the order, combination, etc. of blocks included in the application. In other words, the manner of change in the present embodiment is different from that in the first to fourth embodiments. Hereinafter, the present embodiment will be described in detail, focusing on the differences from the above-described first to fourth embodiments. Note that the present embodiment may be similar to the above-described first to fourth embodiments except for the manner of change. Furthermore, among the components in the present embodiment, the same components as those in the first to fourth embodiments are assigned the same reference numerals as those in the first to fourth embodiments, and detailed description thereof will be omitted.

[0313] The hardware configuration, functional configuration, and basic processing of the system 1 in this embodiment are the same as those in the first embodiment shown in FIGS.

[0314] The pre-execution confirmation process in this embodiment will be described in further detail with reference to Fig. 33. Fig. 33 shows a flowchart of the pre-execution confirmation process in embodiment 6. The pre-execution confirmation process is the process of step S216 shown in Fig. 8.

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

[0316] 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 between the start of an application and the execution of the second block. Such a first block may be, for example, a block that sets an environment in which the second block can be executed. Specifically, the first block may be a drain block that creates a no-water environment before the execution of a second block (e.g., a spin block).

[0317] Furthermore, the rule may be, for example, a rule that prohibits the third block from not being executed after the second block is executed. More specifically, the rule may be, for example, a rule that prohibits the third block from not being executed after the second block is executed and before the application is terminated. Such a third block may be, for example, a block that returns the environment changed by the execution of the second block to the environment before the execution of the second block. Specifically, the third block may be a ventilation block that returns the temperature that has risen due to the execution of the second block (e.g., a drying block) to the temperature before the execution of the second block.

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

[0319] As such a combination of two or more predetermined blocks, for example, a combination of blocks that prevents the internal space of the housing 21, the actuator 22, or the heater 23 from reaching a tolerable temperature is determined in advance. The tolerable temperature means a rated temperature, and indicates the maximum allowable temperature. Therefore, if the actuator 22 or the heater 23 is driven using a combination of two or more predetermined blocks, the temperature of the internal space of the housing 21, the actuator 22, or the heater 23 will not reach an unallowable temperature. In other words, the rule is a rule that ensures that the combination of two or more predetermined blocks is executed to prevent the internal space of the housing 21, the actuator 22, or the heater 23 from reaching a tolerable temperature.

[0320] 34, each of rules 1301 and 1302 indicates a combination of two blocks, but is not limited to this. For example, a rule may indicate a parameter range for 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 to develop a wide variety of applications.

[0321] For example, the rules for safe operation of the actuator 22 or heater 23 may change depending on the environment of the device 300, such as the internal space of the housing 21, and the rules may not depend solely on the performance of the actuator 22 or heater 23 itself. Therefore, in order to operate safely in any environment, the rules will place a high emphasis on safety, reducing the room for development of a wide variety of applications. Therefore, the rules may be associated with information about the device 300, etc., independent of the application. Use of such rules makes it possible to achieve both safety and development of a wide variety of applications.

[0322] The rules relate to the range in which the actuator 22 or heater 23 can be safely operated. The range in which the actuator 22 or heater 23 can be safely operated may be a range that takes into account the start or end conditions 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 that executing the first block until the start condition of the second block is reached will impose a load that will affect the safety of the actuator 22 or heater 23. In other words, the rule depends on the performance of the actuator 22 or heater 23, the start or end conditions of the block, etc.

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

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

[0325] For example, if a rule prohibits a first block from being executed before a second block is executed, and the application includes a second block but does not include the first block before the second block, the device 300 determines that the blocks included in the application satisfy the rule. Specifically, if the application includes a second block but does not include the first block, the device 300 determines that the blocks included in the application satisfy the rule. Also, if the application includes a second block and includes the first block only after the second block, the device 300 determines that the blocks included in the application satisfy the rule. On the other hand, if the application includes a second block and includes the first block before the second block, the device 300 determines that the blocks included in the application do not satisfy the rule. Also, if the application does not include both the first block and the second block, the device 300 determines that the blocks included in the application do not satisfy 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.

[0326] For example, if a rule prohibits a third block from being executed after a second block is executed, and the application includes the second block but does not include a third block after the second block, the device 300 determines that the multiple blocks included in the application satisfy the rule. Specifically, if the application includes the second block but does not include a third block, the device 300 determines that the multiple blocks included in the application satisfy the rule. If the application includes the second block but does include a third block only before the second block, the device 300 determines that the multiple blocks included in the application satisfy the rule. On the other hand, if the application includes the second block and includes a third block after the second block, the device 300 determines that the multiple blocks included in the application do not satisfy 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 satisfy the rule. Furthermore, if 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.

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

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

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

[0330] Fig. 35 shows an example of a change in the application in embodiment 6. In Fig. 35, 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 operation of actuator 22 during spinning.

[0331] Fig. 36 shows an example of a change in the application in the sixth embodiment. In Fig. 36, an air blowing block (third block) is added after the 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.

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

[0333] 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 warm up before the steaming block is executed, enabling smooth steam irradiation when the steaming block is executed.

[0334] 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 corresponding block 10 minutes before the steaming block is executed. This allows the steam heater to warm up before the steaming block is executed, making it possible to smoothly irradiate steam 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 ventilator block (third block) after the oven block, a ventilator block may be added after the oven block. This allows the interior of the oven, which has become very hot due to the execution of the oven block, to be cooled by the ventilator block, thereby speeding up the execution of the next block.

[0335] After the application is changed, the system 1 of this embodiment executes the processes from step S217 onwards shown in FIG. 8, as in the first embodiment.

[0336] [6. Effects, etc.] As described above, an environment in which a wide variety of applications can be developed is provided by using applications including blocks and a rule database, and applications freely developed in that environment can safely drive the physically moving actuator 22 or the heater 23 that outputs thermal energy. 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 highly flexible applications and a rule database for ensuring safety in parallel, enabling the rapid development of a wide variety of applications.

[0337] Even after an application has been provided, it is possible to modify the rule database to make the application safer. Also, even if improvements are required to cope with situations that the manufacturer did not anticipate, the rule database is defined independently of the application, so that the rule database can be updated to accommodate all applications without having to modify the diverse applications themselves.

[0338] One possible solution would be to maintain a rule database for error handling by detecting the state when the application is executed, without modifying the application itself. However, this solution would always involve dealing with the error after it has occurred, meaning that it would be acceptable for the home appliance to be overloaded or for safety to be compromised. Therefore, by maintaining a rule database independent of the application and modifying the application content by referencing the rule data, it is possible to ensure safety.

[0339] The device 20 in this embodiment includes at least one of an actuator 22 and a heater 23, and a control unit 24 that controls at least one of the actuator 22 and the heater 23. The control unit 24 acquires an application defined by a plurality of blocks that drive at least one of the actuator 22 and the heater 23, 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 fall under the rule, modifies the application and drives at least one of the actuator 22 and the heater 23 based on the modified application.

[0340] This allows the actuator 22 and / or the heater 23 to be driven based on an application defined by multiple blocks. This enables the development of applications using blocks that abstract the control of the device 20. This allows not only manufacturers but also third parties to develop a wide variety of applications, and these applications can be easily executed on the device 20. Furthermore, if an application satisfies a rule that prohibits the execution of at least one of the two or more predetermined blocks when one of the two or more predetermined blocks is executed, the application can be modified before the actuator 22 and / or the heater 23 is driven based on the application. This ensures that one of the two or more predetermined blocks is executed in combination with at least one of the two or more predetermined blocks. In other words, even if an application developer mistakenly instructs the independent execution of a block that is not permitted to be executed independently, the execution of an application that cannot safely control the device 20 can be prevented. Therefore, even if an application developer creates an application that prioritizes user convenience over 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.

[0341] For example, in device 20 of this embodiment, control unit 24 may change the application by (a) adding a new block to the multiple blocks, (b) changing the order of the multiple blocks, or (c) deleting one of the multiple blocks.

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

[0343] 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 first block and a second block, the rule prohibits 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.

[0344] 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 if the application includes the second block but does not include the first block before the second block.

[0345] These methods 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 ensuring safe operation of the actuator 22 and heater 23. Furthermore, developers of software to be incorporated into the device 20 that controls the actuator 22 and heater 23 can allow execution of blocks without checking the safety of each application every time.

[0346] 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 the third block after the second block when the application includes the second block but does not include the third block after the second block.

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

[0348] 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 if the application includes the second block and does not include the third block after the second block.

[0349] These methods 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 ensuring safe operation of the actuator 22 and heater 23. Furthermore, developers of software to be incorporated into the device 20 that controls the actuator 22 and heater 23 can allow execution of blocks without checking the safety of each application every time.

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

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

[0352] For example, the device 20 in this embodiment may be provided with 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.

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

[0354] (Embodiment 7) Next, a seventh embodiment will be described. This embodiment differs from the sixth embodiment in that the pre-execution confirmation is skipped if the application has already been authenticated. The following describes this embodiment, focusing on the differences from the sixth embodiment.

[0355] The hardware configuration and functional configuration of the system 1 in this embodiment are the same as those in the sixth embodiment, and therefore illustrations and explanations thereof will be omitted.

[0356] 7.1 Processing In this embodiment, the processing is the same as that in the sixth embodiment, except that step S216 of the pre-execution confirmation in the sixth embodiment is replaced with step S216A. Therefore, step S216A of the pre-execution confirmation processing will be described with reference to FIG.

[0357] FIG. 37 shows a flowchart of the pre-execution confirmation process according to the seventh embodiment.

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

[0359] Application authentication is a mechanism for ensuring the quality of an application, for example, and enables confirmation of the safety and / or identity (that the application has not been tampered with) of the application. An example of an application to which authentication information is assigned will be described below. If 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.

[0360] (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 subsequent steps S2165 to S2167 and ends the pre-execution confirmation process. On the other hand, if it is determined that the application has not been authenticated (No in S2162A), the device 300 proceeds to the next step S2165.

[0361] [7.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 the 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 that includes information indicating whether 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. If the multiple blocks included in the application do not match 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.

[0362] This makes it possible to achieve the same effects as in the sixth embodiment. Furthermore, if an application is not authenticated, processing involving application changes can be performed, and if the application is authenticated, the processing load can be reduced. Therefore, there is no need to perform determination processing for block combinations for all applications, and management through authentication not only reduces the processing load but also establishes design standards for block combinations, allowing application developers to create easier and safer designs.

[0363] Furthermore, for example, in the device 20 according to the present embodiment, if the device 20 has information indicating that the application has been authenticated, the application does not need to be changed without referring to the first rule.

[0364] According to this, if the application has been authenticated, the process for changing the block can be skipped, thereby reducing the processing load.

[0365] (Embodiment 8) Next, an eighth embodiment will be described. This embodiment differs from the sixth embodiment above mainly in that pre-execution confirmation is skipped when the creator of the application and the creator of the device are the same. The following describes this embodiment, focusing on the differences from the sixth embodiment above.

[0366] The hardware configuration and functional configuration of the system 1 in this embodiment are the same as those in the sixth embodiment, and therefore illustrations and explanations thereof will be omitted.

[0367] 8.1 Processing In this embodiment, the processing is the same as that in the sixth embodiment, except that step S216 of the pre-execution confirmation in the sixth embodiment is replaced by step S216B. Therefore, step S216B of the pre-execution confirmation processing will be described with reference to FIG.

[0368] FIG. 38 shows a flowchart of the pre-execution confirmation process according to the eighth embodiment.

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

[0370] (Step S2163B) The device 300 acquires device manufacturer information. The device manufacturer information indicates the manufacturer of the device. The manufacturer refers to the company, individual, or organization that produced the device 300 (i.e., the apparatus 20), and may also be called a manufacturer.

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

[0372] If the creator of the application and the creator of the device 300 are the same (No in S2164B), the device 300 skips the subsequent steps S2165 to S2167 and ends the pre-execution confirmation process. On the other hand, if the 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.

[0373] [8.2 Effects, etc.] As described above, the device 20 in this embodiment comprises at least one of the actuator 22 and the heater 23, and the 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 that includes information indicating the creator, acquires the 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 that indicates that two or more specified blocks are executed in combination, and if the multiple blocks included in the application do not fall under the rule, modifies the application and drives at least one of the actuator 22 and the heater 23 based on the modified application.

[0374] This makes it possible to achieve the same effects as in embodiment 6. Furthermore, when the creator of the application is different from the manufacturer of device 20, it is possible to perform processing involving changes to the application, and when the creator of the application is the same as the manufacturer of device 20, it is possible to reduce the processing load.

[0375] (Embodiment 9) Next, a ninth embodiment will be described. This embodiment differs from the sixth embodiment in 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 sixth embodiment.

[0376] The hardware configuration and functional configuration of the system 1 in this embodiment are the same as those in the sixth embodiment, and therefore illustrations and explanations thereof will be omitted.

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

[0378] FIG. 39 shows a flowchart of the pre-execution confirmation process according to the ninth embodiment.

[0379] (Step S2163C) The device 300 acquires device deterioration information. The device deterioration information indicates the deterioration level of the actuator 22 and / or the heater 23 included in the apparatus 20. The method for detecting the deterioration level is not particularly limited, and may be detection by a sensor, for example.

[0380] (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 driven by the block.

[0381] 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 since the start of operation. These items are expected to increase in roughly proportional relationship with the user's use. Therefore, a rule is determined so that the deterioration level increases as the value corresponding to the item increases.

[0382] Furthermore, the item that determines the deterioration level is, 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 the sum of 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 the ratio of the execution temperature to the limit temperature of the heater 23, or the difference between the execution temperature and the limit temperature of the heater 23.

[0383] The degree of reproduction of the input and output of the actuator 22 and / or heater 23 is determined by referring to the relationship between the input value for driving the actuator 22 and / or heater 23 and the output of the actuator 22 and / or heater 23. The ratio of the actual output value for a given input to the output value specified in the relationship is used.

[0384] [9.2 Effects, etc.] As described above, the device 20 in this embodiment comprises 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, refers to a rule corresponding to the deterioration information that indicates that two or more specified blocks are to be executed in combination, and if the multiple blocks included in the application do not fall under the rule, changes the application and drives at least one of the actuator 22 and the heater 23 based on the changed application.

[0385] This makes it possible to achieve the same effect as in embodiment 6. Furthermore, it is possible to use rules corresponding to the deterioration information of device 20, and by using blocks, it is possible to execute drive instructions to actuator 22 and / or heater 23 from the application side while taking into consideration the performance of the device, which deteriorates over time, and to further improve the safety of device 20 controlled by the application.

[0386] (Embodiment 10) In the sixth to ninth embodiments, blocks included in an application that has already been distributed are changed before the application is executed. In this embodiment, the application is changed before the application is distributed, that is, at the stage when the application is developed or produced, and in this respect, this embodiment differs from the sixth to ninth embodiments. Hereinafter, this embodiment will be described in detail, focusing on the differences from the sixth to ninth embodiments. Note that this embodiment may be similar to the sixth to ninth embodiments except for the timing of the application change. Furthermore, among the components of this embodiment, the same components as those of the sixth to ninth embodiments are assigned the same reference numerals as those of the sixth to ninth embodiments, and detailed description thereof will be omitted.

[0387] The basic configuration of the hardware, block database, and rule database of the information processing system 2000 in this embodiment is the same as the basic configuration shown in FIGS. 20 and 21 in the fifth embodiment.

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

[0389] Washing machine rule group 42d stored in rule database 42 includes, for example, general rule R400 shown in FIG. 40(a). This general rule R400 is applicable to each of a plurality of types of washing machines, and prohibits at least one of the two or more predetermined blocks from not being executed when one of the two or more predetermined blocks is executed. In other words, the rule indicates requirements regarding the combination of two or more predetermined blocks, as in the sixth to ninth embodiments. Hereinafter, the combination of two or more predetermined blocks will be simply referred to as a combination, and the requirements regarding the combination will be referred to as a combination rule. General rule R400 may indicate multiple combination rules. For example, general rule R400 indicates a first combination rule and a second combination rule. The first combination rule is a requirement for the drain functional block, which is the first block, and the spin functional block, which is the second block. In other words, the first combination rule indicates that the drain block is prohibited from not being executed before the spin block is executed. Furthermore, the second combination rule is a requirement for the dry functional block, which is the second block, and the blow 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 followed by a ventilation block.

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

[0391] 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 or model.

[0392] Furthermore, the general rule R400 for the washing machine may indicate combination rules that are applied to washing machines from multiple manufacturers, as shown in (b) of Figure 40. 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".

[0393] As described above, the rule in this embodiment, similar to the sixth to ninth 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 between the start of the application and the execution of the second block. As in the sixth to ninth embodiments, such a first block is a block for setting an environment in which the second block can be executed.

[0394] Alternatively, the two or more predetermined blocks may 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 after the second block is executed and before the application is terminated. As in the sixth to ninth embodiments, such a third block is a block for restoring the environment changed by the execution of the second block to the environment before the execution of the second block.

[0395] The rule in this embodiment may be, as in the sixth to ninth embodiments, a rule for ensuring that two or more predetermined blocks are executed in combination to prevent the internal space of the housing 21, the actuator 22, or the heater 23 from reaching a durable temperature.

[0396] The sequence of the information processing system 200 and the overall processing operation of the development tool 50 in this embodiment are similar to the sequence and processing operation shown in FIGS. 23 and 24 in the fifth embodiment.

[0397] The development tool 50 refers to a rule applied to the device 20, such as a washing machine, and determines whether the sequence generated in step S28, i.e., the multiple function blocks included in the application, conforms to the rule. If the multiple function blocks conform to the rule, the development tool 50 determines that the overall flow of the sequence generated in step S28 is not permitted. On the other hand, if the multiple function blocks do not conform to the rule, the development tool 50 determines that the overall flow of the sequence generated in step S28 is permitted. The rule referred to in step S29 is the above-mentioned general rule or specific rule applied to the device 20, and more specifically, a combination rule included in the rule. The method of determining whether the rule conforms to the rule is the same as in the sixth to ninth embodiments.

[0398] FIG. 41 is a flowchart showing an example of the automatic layout correction process in step S30 of FIG.

[0399] (Step S41) The development tool 50 selects M (M is an integer not less than 2 and not more than N) function blocks from N (N is an integer not less than 2) function blocks for driving the device 20, such as a washing machine, in response to an input operation by the operator to the input unit 54. In other words, the development tool 50 selects each of the M function blocks as a selected block from the N function blocks for driving at least one of the actuator 22 and the heater 23 provided in the device 20, which is the equipment to be controlled, in response to an input operation by the operator to the input unit 54.

[0400] (Step S42) Next, the development tool 50 generates a sequence, i.e., an application, by arranging each of the selected M functional blocks in an order in the 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 in accordance with an input operation by an operator to the input unit 54. Note that 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.

[0401] (Step S43) Next, if each of the M functional blocks is a block for operating a washing machine, the development tool 50 refers to the rule applied to the washing machine. For example, if the application generated in step S42 is applicable to multiple types of washing machines, the development tool 50 refers to the general-purpose rule R400. Furthermore, if the application generated in step S42 is applicable to a specific model of washing machine, the development tool 50 refers to one of the dedicated rules R41 to R43 that is associated with that model of washing machine. In other words, the development tool 50 determines whether the application generated in step S42 is an application dedicated to a controlled device or a general-purpose application that is applicable to both the controlled device and devices other than the controlled device. Then, the development tool 50 refers to a rule candidate corresponding to the determination result of the application, from among multiple rule candidates that prohibit at least one of the two or more predetermined blocks from not being executed when one of the two or more predetermined blocks is executed, as the rule described above.

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

[0403] (Step S45) Here, if the development tool 50 determines that the M function blocks correspond to a rule (Yes in step S44), it modifies the application. That is, the development tool 50 refers to a rule that prohibits at least one of the two or more predetermined blocks from not being executed when one of the two or more predetermined blocks is executed, and modifies the application if the M selected blocks included in the application correspond to the rule. Specifically, the development tool 50 modifies 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 modifying the application may be defined in the rule.

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

[0405] FIG. 42 is a flowchart showing an example of the placement error presentation process in step S30 of FIG.

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

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

[0408] The development tool 50 may present the error to the operator and prompt the operator to select one of the solutions. In this case, the development tool 50 may present the operator with differences in output performance for each of the solutions. Furthermore, the development tool 50 may present at least two of the following solutions: a first solution involving adding a new functional block; a second solution involving changing the order of the M selected blocks; and a third solution involving deleting one of the functional blocks. These solutions are then presented to the operator, who is, for example, an application developer. After viewing the solutions, the operator, who is the application developer, can easily modify the application generated in step S42 in accordance with the solutions by performing input operations on the input unit 54 of the development tool 50.

[0409] (Step S52) The operator, upon seeing the error, modifies the application generated in step S42 by performing an input operation on the input unit 54 of the development tool 50. If multiple solutions are presented to the operator as options, the operator selects an arbitrary solution from the options by performing an input operation. As a result, the development tool 50 modifies the application. In other words, the development tool 50 modifies the application in accordance with the input operation by the operator who has been presented with the error. The development tool 50 then repeatedly executes the process from step S43.

[0410] (Step S46) If the development tool 50 determines in step S44 that the M function blocks do not satisfy 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.

[0411] 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 multiple 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.

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

[0413] 43A(a), 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. 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 way, the development tool 50 performs the function block placement process of step S22 shown in FIG. 24 in response to an input operation by the operator.

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

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

[0416] If the development tool 50 determines that the M arranged function blocks satisfy the rule, the development tool 50 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.

[0417] In this manner, in this embodiment, when an application includes a second block but 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. As a result of such a modification, the M function blocks no longer satisfy the rule.

[0418] Furthermore, if the function block placement process places the drainage function block FB41, which is the first block, after the spin function block FB42, which is the second block, the development tool 50 may move the drainage function block FB41 forward. In other words, if an application includes a first block and a second block but 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 this change, the M function blocks will no longer satisfy the rule.

[0419] The development tool 50 may also delete the second block, the spin function block FB42. That is, if the application includes the second block and does not include the first block before the second block, the development tool 50 changes the application by deleting the second block. Even with this change, the M function blocks will no longer satisfy the rules.

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

[0421] The development tool 50 displays, as an icon, the function blocks that have been dragged and dropped from the block list and placed in the selected block area D4, as shown in (a) of FIG. 43B. 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. 24 in response to an input operation by the operator.

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

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

[0424] If the development tool 50 determines that the M arranged function blocks satisfy the rule, the development tool 50 modifies the application. For example, the development tool 50 modifies the washing machine application by adding a blower function block FB45 after the function block FB44, as shown in (b) of FIG.

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

[0426] Furthermore, if the function block placement process places the third block, FB45, for blowing air before the second block, FB44, for drying, the development tool 50 may move the air-blowing function block FB45 later. That is, if an application includes a second block and a third block but 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 no longer satisfy the rule.

[0427] The development tool 50 may also delete the second block, ie, the dry function block FB44. That is, if the application includes the second block and does not include a third block after the second block, the development tool 50 modifies the application by deleting the second block. Even with such a modification, the M function blocks no longer satisfy the rule.

[0428] As shown in Figures 43A and 43B, in this embodiment, an automatic correction process for the layout is performed. Therefore, even if an operator who is an application developer erroneously places M function blocks in a way that violates a rule, the M function blocks are automatically rearranged so that they do not violate the rule. Therefore, the safety of the washing machine can be ensured.

[0429] FIG. 44 is a diagram illustrating an example of a placement error presentation process.

[0430] As in the example of FIG. 43A, the development tool 50 places M function blocks, including the dehydration function block FB42, in the selected block area D4 as shown in FIG. 44. When an application is generated as a result of the placement, the development tool 50 determines whether the flow of the entire application is permitted, as in step S29 of FIG. 24. That is, the development tool 50 uses rules to make a determination regarding the M function blocks placed in the selected 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.

[0431] If the development tool 50 determines that the M function blocks fall under the rule, it performs an error notification process. Specifically, the development tool 50 displays an error message E1 as an error, as shown in FIG. 44. This error message E1 indicates that a function block corresponding to the spin function block FB42 is not placed before it. In other words, this error message E1 notifies the user that the M function blocks fall under the 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. This error notification process is performed, for example, in step S51 of FIG. 42.

[0432] As described above, in this embodiment, the development tool 50 refers to a rule that prohibits the execution of at least one of the two or more predetermined blocks when the other of the two or more predetermined blocks is executed, and if the M selected blocks included in the application fall under the rule, the development tool 50 presents an error to the operator. Then, in response to an input operation by the operator who received the error notification, the development tool 50 modifies the application by changing the order in which the M selected blocks are executed.

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

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

[0435] Furthermore, solution C2 indicates that the error can be resolved by deleting the spin function block. In other words, solution C2 is a third solution that deletes one of the M selected blocks. Furthermore, development tool 50 may display the impact of implementing solution C2 along with solution C2. For example, development tool 50 may display as an impact that the washing machine's safety can be ensured, even though spinning cannot be performed.

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

[0437] As in the example of FIG. 43B, the development tool 50 places M function blocks including the drying function block FB44 in the selected block area D4 as shown in FIG. 45. When an application is generated as a result of the placement, the development tool 50 determines whether the flow of the entire application is permitted, as in step S29 of FIG. 24. That is, the development tool 50 makes a determination on the M function blocks placed in the selected block area D4 using rules. For example, the rules include a combination rule that prohibits the third block, the air blowing function block FB45, from being executed after the second block, the drying function block FB44, is executed.

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

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

[0440] 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 can be resolved by adding a blowing functional block after the drying functional block. In other words, the countermeasure C3 is the first countermeasure described above, which adds a new block to the M selected blocks. Furthermore, the development tool 50 may display the impact of implementing the countermeasure C3 together with the countermeasure C3. For example, the development tool 50 may display, as an impact, that the processing time required for the entire washing process will be longer, but that the safety of the washing machine will be ensured.

[0441] Furthermore, solution C4 describes that the error can be resolved by moving the airflow functional block, which is located before the drying functional block, to after the drying functional block. In other words, solution C4 is the second solution described above, which changes the order of the M selected blocks. Furthermore, development tool 50 may display the impact of implementing solution C4 together with solution C4. For example, development tool 50 may display, as an impact, that the safety of the washing machine can be ensured.

[0442] Furthermore, solution C5 indicates that the error can be resolved by deleting the drying functional block. In other words, solution C5 is a third solution that deletes one of the M selected blocks. Furthermore, development tool 50 may display the impact of implementing solution C5 along with solution C5. For example, development tool 50 may display as an impact that the washing machine's safety can be ensured, even though the drying function cannot be performed.

[0443] 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 then modifies the application in response to an input operation by an operator who has received the error and the plurality of ways to deal with the error.

[0444] 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 the object that is acted upon by driving the actuator 22 or the heater 23, or an effect on the application, when each of the plurality of countermeasures is performed.

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

[0446] The error messages E1 and E2 and the countermeasures C1 to C5 may be displayed in any area of the sequence generation screen. Furthermore, the error messages E1 and E2 and the countermeasures C1 to C5 may be displayed in association with respective combination rules. In the above example, the error messages E1 and E2 and the countermeasures C1 to C5 are displayed, but the manner in which they are presented is not limited to this example and may be presented in any manner. For example, errors may be presented by voice.

[0447] Furthermore, the development tool 50 may present the operator with multiple solutions to the error when the error is presented K times or more (K is an integer equal to or greater than 2). That is, when the process of step S51 shown in Fig. 42 is repeated, the development tool 50 may change the presentation format of the error depending on the number of times the process is repeated. Specifically, when the error is presented less than K times, the development tool 50 presents the error without presenting a solution, and when the error is presented K times or more, the development tool 50 displays the error and a solution.

[0448] FIG. 46 is a diagram showing another example of how to present a solution.

[0449] In the above example, the solution is presented as a message. However, the development tool 50 may present the solution in other ways, as shown in FIG. 46. For example, the development tool 50 presents the solution in a way that allows a functional block to be added to avoid the error to be easily selected from a block list. That is, when the development tool 50 determines that a first block is not placed before a second block indicated in the combination rule, it displays a block list as shown in FIG. 47. In this block list, only the functional block that is the first block to be placed before the second block is displayed in a different manner from the other functional blocks included in the block list. Specifically, in the list of blocks for a washing machine, only the drain functional block that should 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 modifying the application.

[0450] FIG. 47 is a diagram showing yet another example of a presentation of a solution.

[0451] In the above example, the solution is presented only as a message, but the development tool 50 may also present the solution using an object such as an arrow, as shown in FIG. 47. For example, if the development tool 50 determines that the function blocks FB34 and FB37 fall under the rule, it presents a second solution, in which the order of these function blocks is reversed, using 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.

[0452] [10. Effects, etc.] As described above, in this embodiment, an environment in which a wide variety of 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 physically moving actuator 22 or the heater 23 that outputs thermal energy for applications freely developed in this environment. As a result, for example, it becomes possible to develop a wide variety of highly flexible applications and a rule database for ensuring safety in parallel, thereby enabling the early development of a wide variety of safe applications.

[0453] Furthermore, by combining this embodiment with any of the embodiments 6 to 9, 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. Also, even when it becomes necessary to improve a situation that the manufacturer did not anticipate in advance, it becomes possible to support all applications by updating the rule database, without having to change the diverse applications themselves, because the rule database is defined independently of the applications.

[0454] Specifically, the information processing method in this embodiment is an information processing method executed by a computer system such as development tool 50. This information processing method (a) selects, as selected blocks, M blocks (M is an integer of 1 or more and N or less) from N blocks (N is an integer of 2 or more) for driving at least one of actuator 22 and heater 23 provided in device 20, which is a control target device, in response to an input operation by an operator, (b) generates an application including at least M selected blocks by setting, in response to the input operation by the operator, an order in which at least M selected blocks are executed, (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 predetermined blocks from not being executed when one of the two or more predetermined blocks is executed, and (d) outputs the modified application.

[0455] This allows the actuator 22 and / or the heater 23 to be driven based on an application defined by M blocks. This enables the development of applications using blocks that abstract the control of the device 20. This allows not only manufacturers but also third parties to develop a wide variety of applications, and these applications can be easily executed on the device 20. Furthermore, during development, an application that includes M selected blocks that satisfy the above-described rules is automatically modified. As a result, the application can be automatically modified to include M selected blocks that do not satisfy the rules. This ensures that one of two or more predetermined blocks is executed in combination with at least one remaining block. In other words, even if an application developer (operator) mistakenly creates an application that independently executes a block that is not permitted to be executed, the creation of an application that cannot safely control the device 20 can be prevented. Therefore, even if an application developer creates or generates an application that prioritizes user compatibility for the actuator 22 and / or the heater 23, the safety of the device 20 controlled by the application can be ensured and improved.

[0456] In addition, in (c) above, the application may be changed 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.

[0457] More specifically, the predetermined two or more 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 (c) above, if the application includes the second block but does not include the first block before the second block, the application may be modified by adding the first block before the second block.

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

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

[0460] 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 device 20 that controls actuator 22 and heater 23 can ensure the safety of device 20 without having to check the safety of each application every time.

[0461] Specifically, the rule may prohibit the first block from being executed after the start of the application and before 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.

[0462] 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 (c) above, if the application includes the second block but does not include the third block after the second block, the application may be modified by adding the third block after the second block.

[0463] Also, in (c) above, 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 changed by changing the order of the third block to be after the order of the second block.

[0464] In addition, in the above (c), if the application includes the second block and does not include the third block after the second block, the application is modified by deleting the second block.

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

[0466] 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 restoring the environment that has changed due to the execution of the second block to the environment that existed before the execution of the second block.

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

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

[0469] Furthermore, the device 20, which is the equipment to be controlled, has a housing 21 with an internal space, and the rule may be a rule to ensure that the above-mentioned two or more specified blocks are executed in combination to prevent the internal space from reaching a durable temperature.

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

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

[0472] This allows for an increase in the number of variations in applications, such as dedicated applications and general-purpose applications. Furthermore, because rules appropriate for each variation are referenced, the application for that variation can be modified appropriately for each variation.

[0473] Furthermore, 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 an error. That is, the information processing method (a) selects, as selected blocks, M blocks (M is an integer of 2 or more and N or less) from N blocks (N is an integer of 2 or more) for driving at least one of actuator 22 and heater 23 provided in device 20, which is a control target device, in response to an input operation by an operator, (b) generates an application including at least M selected blocks by setting, in response to the input operation by the operator, an order in which at least M selected blocks are executed, (c) refers to a rule that prohibits at least one of two or more predetermined blocks from not being executed when one of the two or more predetermined blocks is executed, and presents an error to the operator if the M selected blocks included in the application satisfy the rule, (d) modifies the application in response to the input operation by the operator who has received the error notification, and (e) outputs the modified application.

[0474] According to this, if an operator who is an application developer erroneously creates an application so that a block that is not permitted to be executed independently is executed independently, an error is displayed, thereby preventing the creation of an application that cannot safely control device 20. In other words, the same effect as when an application is automatically changed as described above can be achieved.

[0475] Furthermore, in (c) above, multiple solutions to the error may be presented, and in (d) above, the application may be modified 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 multiple solutions. 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 multiple solutions at the same time as presenting an error.

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

[0477] The plurality of solutions may also 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.

[0478] This allows the operator to modify 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.

[0479] Furthermore, in the above (c), it is also possible to present the effect on the object that is 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. 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.

[0480] This allows the operator to intuitively select a solution in line with the operator's intention when creating the application.

[0481] In addition, in this information processing method, after (d) above, (c) and (d) above may be repeatedly executed, and if the number of times the error has been presented is 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.

[0482] 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 these solutions, making it easier to generate a safe application.

[0483] (Modification of the tenth 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 most severe environmental conditions. Therefore, in some environmental conditions, the hardware functions may not be fully utilized.

[0484] Therefore, in this modification, when the application creator is also a device manufacturer, the development tool 50 develops and produces applications to be used in the device 20 manufactured by the application creator without using rules. This is because the application creator understands the environmental conditions for safely operating the device 20 manufactured by the application creator. Note that an application creator is a person, organization, or company that develops or produces applications, and is also called an application developer. Furthermore, a 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.

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

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

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

[0488] (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 the controlled device. For example, in this step S51, the development tool 50 executes the processes of steps S21 to S23 in FIG. 24.

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

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

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

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

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

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

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

[0496] (Step S52) If the application creator and the device manufacturer match (No in step S2164B), the development tool 50 performs an addition process to add information to the application. In the addition process, the development tool 50 adds first additional information and at least one of second additional information and third additional information to the application. The first additional information is information indicating that no rules are applied to the application. The second additional information is information indicating when the application was created. For example, the second additional information indicates the date the application was created. This date is hereinafter also referred to as the application creation date. Furthermore, if the application creator is the device manufacturer, the third additional information is manufacturer identification information for identifying the manufacturer.

[0497] (Step S53) After the process of step S2167, the development tool 50 outputs the changed application. On the other hand, after the process of step S52, the development tool 50 outputs the application to which the addition process has been performed. In other words, if 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.

[0498] 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. This information processing method generates an application including one or more blocks for driving at least one of an actuator and a heater provided in a controlled device, identifies the creator of the application, identifies the manufacturer of the controlled device, determines whether the creator of the application matches the manufacturer of the controlled device, (a) if the creator of the application does not match the manufacturer of the controlled device, obtains rules related to one or more blocks included in the application, modifies the application in accordance with the rules, and outputs the modified application, and (b) if the creator of the application matches the manufacturer of the controlled device, outputs the application without applying the rules to the application.

[0499] 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 tenth 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 eighth embodiment, so that it is possible to reduce the processing load. Furthermore, in this case, the hardware of device 20, which is the controlled device, is operated by an application to which no rules are applied, so that the functions of that hardware can be effectively utilized.

[0500] Furthermore, in the information processing method of this modified example, the above-mentioned (b) further performs an additional process of adding the first additional information and at least one of the second additional information and the third additional information to the application. When outputting the application, the application after the additional process is output. Here, the first additional information is information indicating that no rules have been applied to the application, and the second additional information is information indicating when the application was created. Furthermore, the third additional information is information for identifying the manufacturer of the device if the creator of the application is the manufacturer of the device.

[0501] Therefore, in this modification, if no rule is applied to the application, the device 300 of the apparatus 20, which is the controlled equipment, acquires the application to which the information has been added.

[0502] For example, if first additional information and second additional information are attached to an application, the device 300 can determine whether to apply a rule to the application because the first additional information is attached to the application. Specifically, the device 300 can appropriately determine whether to apply a rule based on the second additional information attached to the application. For example, the device 300 can identify the rule update date, 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 avoid applying the rule and changing the application. In other words, similar to the development tool 50, the device 300 can also reduce the processing load.

[0503] On the other hand, if the update date is later than the application creation date, the device 300 can determine to apply the updated rules to the application. In other words, if the created application is old, it may be difficult to ensure the security of the device 20 if the device 20 operates using the old application. However, in such a case, the second additional information applies the rules to the old application, and the application is changed. Therefore, the security of the device 20 can be easily ensured.

[0504] Furthermore, even if an application has first additional information and third additional information attached to it, the device 300 can determine whether to apply a rule to the application because the first additional information is attached to the application. Specifically, the device 300 can appropriately determine whether to apply a rule based on the third additional information attached to the application. For example, the device 300 determines whether 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. If the device 300 determines that the manufacturers match, it can determine not to apply a rule to the application. As a result, the device 300 can avoid applying a rule and modifying the application. In other words, similar to the development tool 50, the device 300 can also reduce the processing load.

[0505] On the other hand, if the device 300 determines that the manufacturers do not match, it can determine to apply the rule 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. If the device 20 manufactured by the other device manufacturer runs on the application, it may be difficult to ensure the security of the device 20. However, in such a case, the third additional information allows the rule to be applied to the application, and the application is changed. Therefore, the security of the device 20 manufactured by the other device manufacturer can be easily ensured.

[0506] In the above example, the device 300 applies rules and changes applications based on information added to the applications. However, as in the sixth to ninth embodiments, the device manager 200 or the like may apply rules and change applications based on information added to the applications instead of the device 300.

[0507] (Other embodiments) While the system according to one or more aspects of the present disclosure has been described above based on the embodiments, the present disclosure is not limited to these embodiments. As long as it does not deviate from the spirit of the present disclosure, various modifications conceivable by those skilled in the art to the present embodiments and configurations constructed by combining components of different embodiments may also be included within the scope of one or more aspects of the present disclosure.

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

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

[0510] In the above-described first to fourth embodiments, if a parameter is found to be within an unacceptable range during pre-execution check, the block is changed and then executed, but this is not limiting. For example, if a parameter is found to be within an unacceptable range and the state of the device 300 is different from what was expected, the block may not be executed, and the device manager 200 and / or the sequence manager 100 may be notified of an execution stop (error).

[0511] In the above-described embodiments 6 to 10, the application is changed in the pre-execution check and then executed, but this is not limiting. For example, if 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]

[0512] The present invention can be applied to home appliances that can execute applications defined by multiple functional blocks, and to devices that generate such applications. [Explanation of symbols]

[0513] 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. Cabinet 22 Actuator 23 Heater 24 Control Unit 30, 30a, 30b, 30c, 30d terminals 31 Display 32 Input Devices 41 Block Database 42, 1300, 1300C 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 Blocks 1000 and 1201 1001, 1002, 1003, 1004, 1005, 1006 parameters 1100 Device Database 1101 Device Information 1200 Declaration of Action 1202 Device Information 1203 Order Information 1301, 1301C, 1302, 1302C, 1303C, 1304C Rules 2000 Information Processing Systems C1~C5 Solutions D1 Parameter setting area D2 Block List Area D3 Target equipment area D4 Selection Block Area E1~E3 Error messages F100 Preparation Phase F200 Pre-application execution phase F300 Application 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) generating an application including at least M blocks (M is an integer of 1 or more) for driving at least one of an actuator and a heater provided in a controlled device by setting parameters for driving the actuator or the heater in each of the M blocks in response to an input operation by an operator; (b) referring to a rule defining a parameter range in which activation of at least one of the actuator and the heater is not permitted, and presenting an error to the operator if at least one of the M blocks has a parameter included in the parameter range; Information processing methods.

2. The information processing method further comprises: (c) modifying the application by referring to the rule and changing a parameter included in the parameter range to a parameter included in a range in which driving of the at least one of the actuator and the heater is permitted; The information processing method according to claim 1 .

3. In the above (c), modifying the application by referring to the rule, changing a parameter included in the parameter range to a parameter included in a range in which driving of the at least one of the actuator and the heater is permitted, and adding a new block to the M blocks; The information processing method according to claim 2 .

4. The information processing method further comprises: (c) modifying the application by deleting blocks having parameters that fall within the parameter range; The information processing method according to claim 1 .

5. In the above (c), referring to the rule to determine whether each of a plurality of parameters included in the M blocks is within the parameter range; If it is determined that the parameter is within the parameter range, modifying the block having the parameter. The information processing method according to any one of claims 2 to 4.

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

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

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

9. In the above (b), determining whether the application to be generated is an application dedicated to the control target device or a general-purpose application that can be applied to the control target device and devices other than the control target device; referencing, as the rule, a rule candidate corresponding to a determination result of the application, among a plurality of rule candidates each defining a parameter range in which driving of at least one of the actuator and the heater is not permitted; The information processing method according to any one of claims 1 to 8.

10. The information processing method further comprises: (d) modifying the application by modifying the at least one of the M blocks in response to an input operation by the operator who has received the error; The information processing method according to claim 1 .

11. The information processing method further comprises: (f) presenting to the operator a parameter or a range of parameters that are not included in the parameter range; The information processing method according to claim 10.

12. In the information processing method, After (d), (b) and (d) are repeatedly performed; (f) if the error is presented K times or more (K is an integer of 2 or more), present a parameter not included in the parameter range or a parameter range to the operator; The information processing method according to claim 10.

13. In the above (b), further, presenting multiple solutions to the error; In the above (d), modifying the application by modifying at least one of the M blocks 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 10.

14. The plurality of countermeasures include: A method of changing a parameter included in the parameter range, and a method of adding a new block to the M blocks. and a method of deleting blocks having parameters included in the parameter range. The information processing method according to claim 13.

15. In the above (b), further, presenting an effect on an object actuated by driving the actuator or the heater, or an effect on the application, when each of the plurality of countermeasures is performed; 15. The information processing method according to claim 13 or 14.

16. a processor; a memory coupled to the processor; The processor uses the memory to: (a) generating an application including at least M blocks (M is an integer of 1 or more) for driving at least one of an actuator and a heater provided in a controlled device by setting parameters for driving the actuator or the heater in each of the M blocks in response to an input operation by an operator; (b) referring to a rule defining a parameter range in which activation of at least one of the actuator and the heater is not permitted, and presenting an error to the operator if at least one of the M blocks has a parameter included in the parameter range; Information processing device.

Citation Information

Patent Citations

  • Teaching method of robot

    JP1984041012A

  • Method for teaching robot orbit

    JP1994102919A

  • Mechanism control system and method for developing the same

    JP2001075619A

  • Programmable controller and equipment control method using the same

    JP2007334469A

  • Operation program preparation supporting method and operation program preparing device

    JP2008142788A