Drive device, drive method, and program
The drive device with a block-based control system and safety rules addresses the limitations of pre-set control programs, enabling diverse and safe operation of household appliances by allowing third-party applications and ensuring safe actuator/heater usage.
Patent Information
- Application Number
- JP2022571022
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2020-12-25
- Filing Date
- 2021-07-14
- Publication Date
- 2025-08-01
- Estimated Expiration
- 2041-07-14
AI Technical Summary
Conventional drive devices for household appliances are limited by pre-set control programs, lacking diversity and safety, making it difficult to accommodate various user preferences and ensuring safe operation with third-party applications.
A drive device incorporating an actuator and heater, controlled by a control unit that executes applications defined by multiple blocks, with sensors to detect driving states and adjust the execution order to ensure safety and diversity, using a rule-based system to prevent unsafe combinations.
Enables diverse and safe operation of household appliances by allowing third-party applications while ensuring the actuator and heater are operated within safe parameters, reducing the risk of unsafe conditions and improving user customization.
Smart Images

Figure 0007717090000001 
Figure 0007717090000002 
Figure 0007717090000003
Abstract
Description
Technical Field
[0001] The present disclosure relates to a drive device including an actuator and / or a heater, etc.
Background Art
[0002] Conventionally, drive devices for household electrical appliances and housing equipment, etc. are controlled according to operating conditions (control programs) prepared in advance by their manufacturers, etc. Patent Document 1 discloses a washing machine capable of setting the operating conditions of washing that a user wants to perform as a drive device.
Prior Art Documents
Patent Documents
[0003]
Patent Document 1
Summary of the Invention
Problems to be Solved by the Invention
[0004] However, in the above prior art, a control program developed in advance by the manufacturer, etc. of the product that is the drive device must be stored in the product in advance, and it is difficult to realize a diverse and safe drive device.
[0005] Therefore, the present disclosure provides a drive device, etc. that is diverse and can improve safety.
Means for Solving the Problems
[0006] A drive device according to one aspect of the present disclosure includes a drive unit including at least one of an actuator and a heater, a control unit that acquires an application including a plurality of blocks and controls the drive unit according to the plurality of blocks by executing the application, a first sensor that detects a first driving state of the drive unit, and a second sensor that detects a second driving state of the drive unit. Each of the plurality of blocks has an end condition for driving the drive unit by the block. When the first driving state detected by the first sensor satisfies the end condition of the first block during execution of the first block among the plurality of blocks, and the second driving state detected by the second sensor satisfies a block addition condition, the control unit adds a new block before a second block consecutive to the first block in the application, and controls the drive unit according to the new block and the second block after the end of the first block.
[0007] Note that these general or specific aspects may be implemented in a system, method, integrated circuit, computer program, or recording medium such as a computer-readable CD-ROM, or may be implemented in any combination of a system, method, integrated circuit, computer program, and recording medium.
Advantages of the Invention
[0008] The drive device according to one aspect of the present disclosure is diverse and can improve safety.
Brief Description of the Drawings
[0009]
Figure 1
Figure 2A
Figure 2B
Figure 2C
Figure 3
Figure 4
Figure 5
Figure 6
Figure 7
Figure 8
Figure 9
Figure 10
Figure 11
Figure 12
Figure 13
Figure 14A
Figure 14B
Figure 15A
Figure 15B
Figure 15C
Figure 15D
Figure 15E
Figure 16
Figure 17
Figure 18
Figure 19
Figure 20
Figure 21
Figure 22
Figure 23
Figure 24
Figure 25
Figure 26
Figure 27
Figure 28
Figure 29A
Figure 29B
Figure 30
Figure 31
Figure 32
Figure 33
Figure 34
Figure 35
Figure 36
Figure 37
Figure 38
Figure 39
Figure 40
Figure 41
Figure 42
Figure 43
Figure 44
Embodiments for Carrying Out the Invention
[0010] (Knowledge Underlying the Present Disclosure) The background leading to the present invention by the inventors of the present application will be described. In household electrical appliances having an actuator and / or a heater, in order to develop a control program according to the desires of various users, an open development environment is required. That is, an environment is required in which the difficulty of developing a control program is reduced and a third party can easily participate in the development of the control program. In such an environment, for example, it becomes possible for an apparel company to develop a control program for a washing machine for washing clothes sold by the company itself.
[0011] Therefore, the inventors of the present invention constructed an environment in which a control program can be developed while maintaining safety, using functional blocks that abstract the control of actuators and / or heaters included in the product, and considered a mechanism that can package a control program composed of a combination of a plurality of functional blocks and distribute it as an application. As a result, a variety of applications can be distributed, and it becomes possible to customize and update the product according to the desires of more diverse users. However, in such an environment, there is a possibility that a dangerous application (that is, an application that cannot safely control the product) may be distributed, resulting in a decrease in the safety of the product.
[0012] For example, programs included in household appliances and the like are incorporated into devices for directly controlling actuators and / or heaters, and are assumed to include a program developed by the manufacturer and a program developed by a third party in a state where they are intermingled with each other. At this time, it is highly likely that the manufacturer will not disclose to the third party all the information on household appliances and the like including know-how. For example, the parameters or timings for driving the actuator and / or heater are know-how related to the performance of the manufacturer's household appliances and the like. Therefore, since there is a risk of a decrease in competitiveness, it is unlikely that the manufacturer will open the know-how to the third party so that the household appliances and the like can be freely driven.
[0013] Therefore, due to insufficient information on household appliances and the like, the third party may create an application that includes a combination of controls or a parameter range not assumed by the manufacturer, that is, an application for which safety is not guaranteed. It is not desirable for such an application to be provided to the user.
[0014] In addition, manufacturers of household appliances and the like may attempt to update the user's lifestyle by providing new control programs. However, the development of a wide variety of new control programs requires a huge amount of man-hours such as parameter adjustment or hardware performance evaluation. Since household appliances and the like physically drive the hardware of the actuator and / or heater, it is easily anticipated that the man-hours for performance evaluation and the like of the programs for household appliances and the like will be greater than those of the programs for smartphones. However, in an era where on-demand development according to the life of each individual user, rather than mass production, is required, it is required to develop a wide variety of control programs for household appliances and the like, similar to the programs for smartphones. Therefore, the manufacturer must create a wide variety of applications that ensure the safety of the product while reducing a huge amount of man-hours.
[0015] Furthermore, it may be considered that the manufacturer desires to ensure safe operation even when a household electrical appliance or the like operates using an application provided by a third party. At this time, it is desirable to reduce the amount of work for actually driving various applications with a household electrical appliance or the like to verify safety. Note that a household electrical appliance or the like is an example of a driving device.
[0016] Therefore, the present disclosure provides a driving device and the like that are diverse and capable of improving safety, which are defined by a plurality of functional blocks that drive an actuator and / or a heater.
[0017] Hereinafter, embodiments will be specifically described with reference to the drawings.
[0018] Note that each of the embodiments described below shows comprehensive or specific examples. The numerical values, shapes, materials, components, arrangement positions and connection forms of the components, steps, order of steps, etc. shown in the following embodiments are merely examples and are not intended to limit the scope of the claims.
[0019] Also, each drawing is not necessarily drawn precisely. In each drawing, substantially the same configuration is denoted by the same reference numeral, and overlapping descriptions are omitted or simplified.
[0020] (Embodiment 1) [1.1 Hardware Configuration] The hardware configuration of the system 1 in the present embodiment will be described with reference to FIGS. 1 to 2C. FIG. 1 is a hardware configuration diagram of the system 1 in Embodiment 1. FIG. 2A is a hardware configuration diagram of the cloud server 10 in Embodiment 1. FIG. 2B is a hardware configuration diagram of the device 20 in Embodiment 1. FIG. 2C is a hardware configuration diagram of the terminal 30 in Embodiment 1.
[0021] As shown in FIG. 1, the system 1 in the present embodiment includes a cloud server 10, devices 20a to 20h used in facilities 2a to 2d, and terminals 30a to 30d. The facilities 2a to 2d are, for example, houses, but are not limited thereto. The facilities 2a to 2d may be, for example, condominiums, stores, offices, etc.
[0022] The cloud server 10 is a virtual server provided via a computer network (e.g., the Internet). The cloud server 10 is connected to the devices 20a to 20h and the terminals 30a to 30d via a computer network. Note that a physical server may be used instead of the cloud server 10.
[0023] As shown in FIG. 2A, the cloud server 10 virtually includes a processor 11 and a memory 12 connected to the processor 11. The processor 11 functions as a sequence manager and a device manager, which will be described later, when an instruction or a software program stored in the memory 12 is executed.
[0024] The devices 20a to 20h are electromechanical appliances used in the facilities 2a to 2d. In FIG. 1, the illustration of the devices 20c to 20h used in the facilities 2b to 2d is omitted. Hereinafter, when the distinction between the devices 20a to 20h is not necessary, they will be referred to as the device 20.
[0025] As the device 20, home appliances and housing equipment etc. can be used. The home appliances and housing equipment etc. are not limited to the devices used within a house, but also include the devices used for business. In the present disclosure, the home appliances and housing equipment etc. may be abbreviated as home appliances etc. Examples of home appliances include, for example, a microwave oven, a rice cooker, a blender, an electric oven, an electric toaster, an electric pot, a hot plate, an IH (Induction heating) cooker, a roaster, a bakery, an electric pressure cooker, an electric non-boiling cooker, a multi-cooker, a coffee maker, a refrigerator, a washing machine, a dishwasher, a vacuum cleaner, an air conditioner, an air purifier, a humidifier, a dryer, a fan, and an ion generator etc. Examples of housing equipment include, for example, an electric shutter, an electronic lock, and an electric water heater for a bathtub etc. Note that the device 20 is not limited thereto.
[0026] As shown in FIG. 2B, the device 20 includes a housing 21, an actuator 22, a heater 23, and a control unit 24. Note that the device 20 only needs to include at least one of the actuator 22 and the heater 23, and does not necessarily need to include both the actuator 22 and the heater 23.
[0027] The housing 21 houses the actuator 22, the heater 23, and the control unit 24. Further, the housing 21 may have an internal space for processing an object. For example, the washing tub of a washing machine, the heating chamber of a microwave oven, and the inner pot of a rice cooker etc. correspond to the internal space for processing an object.
[0028] The actuator 22 is a mechanical element that converts input energy into physical motion based on an electric signal. As the actuator 22, for example, an electric motor, a hydraulic cylinder, and a pneumatic actuator etc. can be used, but are not limited thereto.
[0029] The heater 23 is an electric heater that converts electrical energy into thermal energy. The heater 23 heats an object by, for example, Joule heating, induction heating, and dielectric heating. As the heater 23, for example, a nichrome wire, a coil, a magnetron, etc. can be used.
[0030] Here, an example of the reason why the device 20 of the present disclosure includes the actuator 22 and / or the heater 23 will be described. Consider a case where a manufacturer of household appliances or the like provides a third party with a development environment in which all parameters and drive combinations for driving the actuator 22 and the heater 23 can be freely controlled. At this time, the third party can create a program that can safely drive the actuator 22 and / or the heater 23 within the parameter range assumed by the manufacturer, or that controls deviating from the drive limits of the actuator 22 and / or the heater 23. In particular, driving the physically moving actuator 22 or the heater 23 that outputs thermal energy in a way not assumed by the manufacturer poses a major challenge in ensuring safety. Examples of driving not assumed by the manufacturer include, for example, high-speed rotation of an electric motor, which is an example of an actuator, and supply of overcurrent to the heater 23. The inventors of the present application aimed not to impede the construction of an environment that can provide users with a variety of applications by overly considering safety aspects. Therefore, the device 20 of the present disclosure is targeted, assuming that safety is ensured, specifically for the physically moving actuator 22 or the heater 23 that outputs thermal energy.
[0031] The control unit 24 is a controller that controls the actuator 22 and / or the heater 23, and functions as a device described later. The control unit 24 is composed of, for example, an integrated circuit.
[0032] The terminals 30a to 30d are respectively used in the facilities 2a to 2d and function as user interfaces. In FIG. 1, the illustration of the terminals 30b to 30d used in the facilities 2b to 2d is omitted. Hereinafter, when the distinction between the terminals 30a to 30d is unnecessary, they will be referred to as the terminal 30.
[0033] The terminal 30 is connected to the cloud server 10 and the device 20 via a computer network and functions as a user interface (UI) described later. As the terminal 30, a portable information terminal such as a smartphone and a tablet computer can be used. Note that the terminal 30 may be a terminal fixed to the walls, floors, or ceilings of the facilities 2a to 2d. Further, the terminal 30 may be included in the device 20. For example, the terminal 30 may be realized as a display terminal having a display or the like built in each of the devices 20a to 20h.
[0034] As shown in FIG. 2C, the terminal 30 includes a display 31 and an input device 32. As the display 31, for example, a liquid crystal display and an organic EL display can be used. As the input device 32, for example, a touch panel, a keyboard, a mouse, a mechanical button, or the like can be used. Further, a voice input device may be used as the input device 32. The display 31 and the input device 32 may be integrally mounted as a touch screen. Alternatively, a gesture input device may be used as the input device 32. The gesture input device has, for example, a camera and a recognition unit. The camera captures an image including a gesture, and the recognition unit recognizes the gesture using the image.
[0035] [1.2 Functional Configuration] Next, the functional configuration of the system 1 in the present embodiment will be described with reference to FIG. 3. FIG. 3 is a functional configuration diagram of the system 1 in the first embodiment.
[0036] The cloud server 10 includes a sequence manager 100 and a device manager 200. The devices 20a to 20h each include a device 300a to 300h. The terminals 30a to 30d each include a UI 400a to 400d.
[0037] Hereinafter, when the distinction between devices 300a to 300h is unnecessary, they are described as device 300. Also, when the distinction between UIs 400a to 400d is unnecessary, they are described as UI400.
[0038] The sequence manager 100 manages a plurality of applications. The plurality of applications are downloaded from an application delivery platform to the sequence manager 100, for example, by a user's operation. Alternatively, the applications included in the application delivery platform may not be downloaded to the sequence manager 100. In that case, information indicating that the applications included in the application delivery platform are associated with the database of the sequence manager 100 may be recorded. Details of the applications will be described later.
[0039] The device manager 200 has a database for managing a plurality of facilities 2a to 2d and the devices 300 and UIs 400 used in each of the facilities 2a to 2d. The device manager 200 manages the devices 300 and UIs 400 by recording device information and UI information associated with the facilities 2a to 2d in the database. The device information and UI information include, for example, control functions and drive functions, as well as operating status. For example, the device manager 200 can manage the operating status of the device 300 and grasp the operation schedule of the device 300. Also, the device manager 200 may manage the log information of the device 300.
[0040] Note that such a database may be possessed by the sequence manager 100 instead of the device manager 200, or both the sequence manager 100 and the device manager 200 may possess it.
[0041] The device 300 has the control function and drive function of the device 20. The device 300 can drive the device 20 according to an instruction from the device manager 200.
[0042] The UI 400 provides information to the user and accepts input from the user.
[0043] Here, the application will be described. In the present embodiment, an application (hereinafter sometimes abbreviated as an app) means a control program defined by a plurality of functional blocks (hereinafter sometimes abbreviated as blocks) that drive the actuator 22 and / or the heater 23. Each of the plurality of blocks can include parameters for driving the actuator 22 or the heater 23. Specifically, each of the plurality of blocks abstracts the control of the actuator 22 or the heater 23. Note that the application may include blocks that do not drive the actuator 22 and / or the heater 23 in addition to the plurality of blocks that drive the actuator 22 and / or the heater 23. An example of a block that does not drive the actuator 22 and / or the heater 23 includes information display using the interface of the device 300, audio output using the buzzer of the device 300, lighting or extinguishing of the lamp of the device 300, and the like. Further, the block may include a condition for starting the drive of the actuator 22 or the heater 23. For example, an application including a first block and a second block will be described as an example. Here, when switching from the first block to the second block during the execution of the first block, the switch is made from the first block to the second block when the start condition included in the second block is satisfied. Further, the block may include an end condition instead of the start condition. When switching from the first block to the second block during the execution of the first block, the switch is made from the first block to the second block when the end condition included in the first block is satisfied.
[0044] Figure 4 shows an example of a block that defines an application in Embodiment 1. Block 1000 shown in Figure 4 is a block that controls the agitation operation of a washing machine and includes parameters 1001 to 1006. Parameter 1001 includes information indicating the type of agitation (for example, normal, dancing, rocking). Parameter 1001 can also be said to indicate the type of function. Parameter 1002 includes a value indicating the rotational speed of the drum. Parameter 1002 can also be said to indicate the intensity of driving of actuator 22 and / or heater 23. Parameter 1003 includes a value indicating the water supply amount into the drum by the water level after water supply. Parameter 1003 can also be said to indicate the state after driving of actuator 22 and / or heater 23. Parameter 1004 includes a value indicating the on / off of the circulation pump. Parameter 1004 can also be said to indicate whether to drive actuator 22 and / or heater 23. Parameter 1005 includes information indicating the agitation interval stepwise (for example, short, medium, long). Parameter 1006 includes a value indicating the agitation time.
[0045] To define an application, a plurality of such blocks are used. For example, a plurality of blocks as shown in Figures 5 to 7 are used.
[0046] Figure 5 shows a plurality of blocks for a washing machine in Embodiment 1. Figure 6 shows a plurality of blocks for a microwave oven in Embodiment 1. Figure 7 shows a plurality of blocks for a rice cooker in Embodiment 1. Note that the plurality of blocks shown in Figures 5 to 7 are examples, and the blocks for the washing machine, microwave oven, and rice cooker are not limited thereto. For example, the plurality of blocks may be hierarchized by the level of abstraction.
[0047] For example, the level of abstraction may be changed between a level for manufacturers and a level for non-manufacturers. Examples of non-manufacturers are levels for other manufacturers and levels for third parties.
[0048] At this time, the layer for manufacturers has a lower level of abstraction than the layer for non-manufacturers. A lower level of abstraction means that the content closer to the parameters for driving the actuator and the heater is controlled.
[0049] On the other hand, the manufacturer enables non-manufacturers to develop applications by providing blocks with the minimum level of abstraction that ensures know-how and safety to non-manufacturers. The manufacturer enables more people to develop applications by providing blocks with a higher level of abstraction to general users. A higher level of abstraction corresponds to, for example, blocks defined in terms that can be understood even without specialized knowledge by the general users themselves. Terms that can be understood without specialized knowledge correspond to, for example, the functions themselves of household appliances. Specifically, when "plenty" is selected as the parameter regarding the water volume in the "washing" block of a washing machine, in one level of concretization, the water level parameter in the water supply block is increased from 60 mm to 100 mm, and the rotation amount parameter in the agitation block is decreased from 120 rpm to 100 rpm, etc. are changed. From the above, the rearrangement of blocks and parameter changes at a higher level of abstraction can be realized with blocks at a lower level of abstraction. Also, for devices other than washing machines, microwave ovens, and rice cookers, a plurality of blocks can be defined in the same way as in FIGS. 5 to 7. With these blocks, while ensuring the safety and confidentiality regarding the driving of the actuator and the heater, application development can be freely carried out by recombination and parameter adjustment.
[0050] In addition, by the manufacturer providing blocks with the minimum level of abstraction that ensures know-how and safety to other manufacturers, the other manufacturers can independently define and implement blocks with a higher level of concretization to realize the provided blocks. Thereby, while each manufacturer ensures its own know-how and safety, third parties that only develop applications can freely carry out application development regarding the driving of the actuators and heaters of each manufacturer.
[0051] At this time, other manufacturers do not develop blocks with a higher level of concretization that match the know-how provided by the manufacturer and the blocks with the minimum level of abstraction that ensure safety, but return an error and may inform the app developer and the user that the blocks provided by the manufacturer cannot be used or operate within a limited parameter range. Specifically, as a parameter related to the motor rotation in the "agitation" block in a washing machine, when "high speed" is selected, in the manufacturer's washing machine, a parameter of 150 rpm can be realized to achieve "high speed", while in the washing machines of other manufacturers, due to the characteristics of the motor, if it can only rotate up to 120 rpm, an error or the fact that it is realized at the limit value of 120 rpm may be presented to the app developer or the user.
[0052] [1.3 Processing] Next, the processing of the system 1 configured as described above will be described with reference to FIG. 8. FIG. 8 is a sequence diagram of the system 1 in the first embodiment.
[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. The transmission of this sequence manager information is performed, for example, according to an instruction from the system administrator. The device manager 200 registers the received sequence manager information in, for example, a sequence manager database. If the sequence manager information is already registered in the sequence manager database in advance, this step may be skipped.
[0055] The sequence manager information includes, for example, the identifier and / or address (such as URL (Uniform Resource Locator), IP (Internet Protocol) address, etc.) of the sequence manager 100. Further, the sequence manager information may include any information.
[0056] (Step S112) Device 300 sends device information 1101 to device manager 200. This transmission of device information 1101 is performed, for example, when device 300 is connected to a computer network. Device manager 200 registers the received device information 1101 in device database 1100. Note that if the device information 1101 is already registered in the device database 1100 in advance, this step may be skipped.
[0057] Note that the device information 1101 may be sent to the UI 400 and then registered in the device manager 200 via the UI 400.
[0058] Device information 1101 includes the identifier and / or address of device 300. Further, device information 1101 may include any information. FIG. 9 shows an example of a device database in Embodiment 1. In the device database 1100 of FIG. 9, a plurality of pieces of device information including device information 1101 are registered. Each piece of device information includes a device ID, an address, a type, a manufacturer name, a model number, an actuator / heater, and a degradation level. The actuator / heater is identification information of the actuator 22 and / or the heater 23 that constitutes device 300. The degradation level is an example of degradation information indicating whether the actuator 22 and / or the heater 23 that constitutes device 300 is degraded. Here, the degradation level indicates that the higher the value, the more degraded it is. Device information 1101 may include information on executable blocks. The information on executable blocks may be information in which blocks included in the database are associated with being executable or non-executable, or may be information only on executable blocks. Also, whether a block is executable can be prepared in advance based on information such as the actuator / heater included in device information 1101.
[0059] Note that device information 1101 may include information capable of specifying facilities 2a to 2d.
[0060] (Step S114) UI 400 transmits UI information to device manager 200. This transmission of UI information is performed, for example, according to a user's instruction. Device manager 200 registers the received UI information in, for example, a UI database. Note that if the UI information is already registered in the UI database in advance, this step may be skipped.
[0061] UI information includes, for example, the identifier and / or address of UI 400. Further, UI information may include any information.
[0062] Note that UI information may include information capable of specifying 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 associated with each other and can establish connections with each other. Thus, the preparation phase F100 ends.
[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 has been downloaded from the application delivery platform to the sequence manager 100 according to an instruction from the user via the UI 400. The following processing is performed with the application downloaded to the sequence manager 100 in this way.
[0065] (Step S210) The UI 400 receives an application execution request from the user and sends an application execution request including the identification information of the application to the sequence manager 100. For example, the user selects an application from among a plurality of applications downloaded to the sequence manager 100 via the UI 400 and instructs the execution of the selected application.
[0066] Note that the application execution request sent from the UI 400 to the sequence manager 100 is sent in a set with information capable of specifying facilities 2a to 2d.
[0067] Note that the application execution request does not necessarily have to be explicitly received from the user. For example, the user's actions or status may be detected, and an application execution request may be automatically sent to the sequence manager 100 based on the detection result.
[0068] (Step S212) The sequence manager 100 transmits to the device manager 200 a declaration of the execution content of the application identified by the application execution request. The declaration of the execution content includes information on a plurality of blocks that define the application to be executed and information that can identify the facilities 2a to 2d.
[0069] FIG. 10 is a diagram showing an example of a declaration of execution content in the first embodiment. FIG. 10 shows a declaration of execution content 1200 for an application defined by combining a plurality of blocks for the washing machine shown in FIG. 5. The declaration of execution content 1200 includes a plurality of blocks 1201, information 1202 on the devices necessary for the execution of each block 1201, and information 1203 on the order in which each block 1201 is to be executed.
[0070] Note that the declaration of execution content 1200 may not include the information 1202 on the devices. In that case, the device manager 200 needs to search for a device capable of executing the corresponding block in the facility indicated by the received facility information from the information on the plurality of blocks 1201 and perform device allocation.
[0071] Note that in FIG. 10, the information 1202 on the devices indicates the model number of the device 300, but is not limited thereto. The information 1202 on the devices may be any information as long as it can indicate the conditions of the device 300 assignable to the block. For example, the information 1202 on the devices may include a plurality of model numbers, or may include only the type, purpose of use, location of installation, or any arbitrary combination thereof of the device.
[0072] (Step S214) The device manager 200 assigns the device 300 associated with the device manager 200 to each block included in the execution content declaration based on the information capable of specifying the facilities 2a to 2d. For example, the device manager 200 assigns the device DEV001 with the model number WM-0001, which is registered in the device database 1100 of FIG. 9 as being connected to the facility indicated by the received facility information, to each of the plurality of blocks 1201 shown in FIG. 10. Note that when the operating state of the device 300 or the connection state to the cloud is managed, the assignment of the operating device 300 may be prohibited.
[0073] Note that, for example, when the plurality of blocks shown in FIG. 10 are not registered as being connected to the facility indicated by the received facility information, that is, when the target device does not exist in the corresponding facility, the device manager 200 notifies the sequence manager 100 that the execution of the application declared for execution is impossible.
[0074] (Step S215) The device manager 200 notifies the device 300 of the result of the device assignment. Thereby, the plurality of blocks included in the application are each transmitted to the assigned device 300.
[0075] (Step S216) The device 300 checks the block before executing the block. That is, before executing the block, the device 300 checks whether any problems will occur in the device 300 when the block is executed. For example, the device 300 checks for safety and / or efficiency problems.
[0076] Then, the device 300 changes the block based on the check result. Thereby, the block is modified so that no problems occur.
[0077] The pre-execution confirmation process will be described in more detail with reference to FIG. 11. FIG. 11 shows a flowchart of the pre-execution confirmation process in Embodiment 1.
[0078] (Step S2165) Device 300 acquires rules corresponding to the application. Here, the rules prohibit the execution of a predetermined two or more blocks in a predetermined order. For example, device 300 refers to a rule database to acquire two or more blocks whose execution in a predetermined order is prohibited. The rule database may be included in, for example, device 300, or may be included in sequence manager 100 or device manager 200.
[0079] As the predetermined order, for example, the order in which the second block is located after the first block can be used. More specifically, as the predetermined order, the order in which the second block is located immediately after the first block, that is, the order in which the first block and the second block are consecutive, may be used.
[0080] FIG. 12 shows an example of the rule database in Embodiment 1. In the rule database 1300 of FIG. 12, rules 1301 to 1303 are registered. Each of rules 1301 to 1303 has information on the first block and the second block whose consecutive execution is prohibited. For example, rule 1301 indicates that it is prohibited for the stirring block to be executed immediately after the dehydration block. Also, for example, rule 1302 indicates that it is prohibited for the washing amount detection block to be executed immediately after the water supply block. Also, for example, rule 1303 indicates that it is prohibited for the drainage block to be executed immediately after the stirring block.
[0081] Two or more blocks that are prohibited from being executed in such a predetermined order are, for example, two or more blocks that cause the internal space of the housing 21, the actuator 22, or the heater 23 to reach the endurance temperature. The endurance temperature means the rated temperature and indicates the maximum allowable temperature. Therefore, if the actuator 22 or the heater 23 is driven using two or more predetermined blocks in a predetermined order, the temperature of the internal space of the housing 21, the actuator 22, or the heater 23 will reach an unacceptable temperature.
[0082] In addition, in FIG. 12, each of rules 1301 to 1303 shows a first block and a second block that are prohibited from being continuously executed, but is not limited thereto. For example, the rule may show a first block and a second block that are prohibited from being executed discontinuously. Also, for example, the rule may show three or more blocks that are prohibited from being continuously executed. Also, for example, the rule may further show the range of parameters of the first block and / or the second block. Furthermore, the rule is defined to enable the use of blocks in a wide range for the development of various applications.
[0083] For example, the rule for safely driving the actuator 22 or the heater 23 may change according to the environment of the device 300 such as the internal space of the housing 21, and the rule may not depend only on the performance of the actuator 22 or the heater 23 itself. Therefore, in order to drive safely in any environment, the rule becomes one with a high proportion of safety consideration, and the room for development of various applications is reduced. Therefore, the rule may be associated with information such as the device 300 independently of the application. By using such a rule, both safety and the development of various applications can be achieved.
[0084] The rules are related to the range within which the actuator 22 or the heater 23 can be safely driven. The range within which it can be safely driven may be a range considering the start condition or end condition of the block. Consider, for example, a first block and a second block executed after the first block. Until the start condition of the second block is reached, by executing the first block, rules can be set assuming a case where a load that affects the safety of the actuator 22 or the heater 23 is applied. That is, the rules depend on the performance of the actuator 22 or the heater 23, the start condition or end condition of the block, and the like.
[0085] Each of rules 1301 to 1303 further has a type and a manufacturer name. Thereby, the device 300 can acquire from the rule database 1300 the rules corresponding to the actuator 22 or the heater 23 driven by the block. For example, the device 300 refers to the rule database 1300 in FIG. 12 and acquires rules 1301 to 1303 for WM-0001.
[0086] (Step S2166) The device 300 determines whether the order of a plurality of blocks included in the application corresponds to a predetermined order of two or more blocks indicated in the rules. For example, the device 300 determines whether a second block is executed after the first block in the application.
[0087] Here, when it is determined that the order of the plurality of blocks does not correspond to the predetermined order (No in S2166), the device 300 skips the subsequent step S2167 and ends the pre-execution confirmation process. On the other hand, when it is determined that the order of the plurality of blocks corresponds to the predetermined order (Yes in S2166), the device 300 proceeds to the next step S2167.
[0088] (Step S2167) Device 300 changes the order in which each of a plurality of blocks included in the application is executed to end the pre-execution confirmation process. Changing the order of the blocks means (i) adding a new block between the first block and the second block, (ii) deleting the first block or the second block, (iii) changing the order of the first block or the second block to the order in which the first block is located after the second block, or the order in which another block is located between the first block and the second block, or (iv) any combination thereof. These methods of changing the order of the blocks may be defined in the rules.
[0089] A specific example of such a change in the order of the blocks will be described with reference to FIGS. 13, 14A, and 14B.
[0090] FIG. 13 shows an example of the change (i) in the order of the blocks in Embodiment 1. In FIG. 13, when the stirring block (second block) is executed after the dehydration block (first block), a stop block is added as a new block between the dehydration block and the stirring block. Thereby, an increase in the load on the motor due to the difference in the drum rotation speed between the dehydration block and the stirring block can be suppressed, and safe driving of the actuator 22 can be realized.
[0091] FIG. 14A shows an example of the change (ii) in the order of the blocks in Embodiment 1. In FIG. 14A, when the washing amount detection block (second block) is executed after the water supply block (first block), the washing amount detection block is deleted. Thereby, erroneous detection of the washing amount due to the washing amount being detected in a state where the laundry is wet can be suppressed, and safe driving of the actuator 22 can be realized.
[0092] Figure 14B shows an example of the change in the order of blocks (iii) in Embodiment 1. In Figure 14B, when the washing amount detection block (the second block) is executed after the water supply block (the first block), the order of the water supply block and the washing amount detection block is changed to the order in which the water supply block is located after the washing amount detection block. Thereby, it is possible to suppress the erroneous detection of the washing amount due to the washing amount being detected in a state where the laundry is wet, and it is possible to realize the safe driving of the actuator 22.
[0093] Here, although the change in the order of blocks for the washing machine has been described, the order of blocks can be similarly changed for other devices.
[0094] For example, in an application for a rice cooker, when a steaming block (the first block) having steam parameters (for example, the maximum amount) and a duration parameter (for example, 20 minutes or more) that satisfy a predetermined condition is included, and another steaming block (the second block) is continuously included after the steaming block, a display block may be inserted as a new block between the two steaming blocks. Thereby, it is possible to notify the user to add water to the water container for steam, it is possible to suppress the dry burning of the steam heater in the steaming block, and it is possible to continuously supply steam. Also, when two steaming blocks are continuously included as described above, the later steaming block may be deleted. Thereby, it is possible to suppress the dry burning of the steam heater.
[0095] For example, in an application for a microwave oven, an oven block (first block) having temperature parameters (e.g., 200 degrees or more) and execution time parameters (e.g., 10 minutes or more) that satisfy predetermined conditions is included, and when another oven block (second block) is continuously included after the oven block, a stop block may be inserted as a new block between the two oven blocks. Thereby, it is possible to suppress failures and deterioration due to overuse of the heater. Further, in an application for a microwave oven, when an oven block is included and a microwave block is continuously included after the oven block, the microwave block may be deleted. Thereby, it is possible to prevent sparks from occurring by irradiating the tray for the oven with microwaves, and the safety can be improved. Further, in an application for a microwave oven, when a baking block (first block) is included and a steaming block (second block) is continuously included after the baking block, the order of the baking block and the steaming block may be swapped. Thereby, the steam heater can be warmed up before the baking block is executed, and it becomes possible to bake the food while giving steam from the initial stage of the baking process by the baking block.
[0096] (Step S217) The device 300 transmits the result of the pre-execution check to the device manager 200. When a block has been changed, the changed block may be transmitted to the device manager 200.
[0097] (Step S218) The device manager 200 answers the sequence manager 100 with the result of the device allocation. Also, when a block has been changed in the pre-execution check, the application including the changed block may be transmitted 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 the preparation for execution is complete.
[0099] (Step S222) The UI 400 displays a list of devices on which the application will be executed and displays a graphical user interface (GUI) for receiving input from the user to confirm the execution of the application. Note that the UI 400 may receive a change in the allocation of devices from the user. Also, the UI 400 may not display the list of devices.
[0100] (Step S224) Upon receiving the input for execution confirmation from the user, the UI 400 sends an application start instruction to the device manager 200. The device manager 200 transfers the application start instruction to the sequence manager 100.
[0101] Note that steps S220, S222, and S224 provide information to the user again before the application is executed, but they may be omitted because they may increase the user's workload.
[0102] Thus, the pre-application execution phase F200 ends.
[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 (the first block) from among the plurality of blocks included in the application. Then, the sequence manager 100 sends an execution instruction for the selected first block to the device manager 200.
[0105] In addition, when a plurality of blocks are operated continuously, the sequence manager 100 may collectively send execution instructions for the plurality of blocks to the device manager 200.
[0106] Based on the execution instruction of the first block received from the sequence manager 100, the device manager 200 sends the execution instruction of the first block to the device 300 assigned to the first block.
[0107] (Step S312) Upon receiving the execution instruction of the first block, the device manager 200 updates the schedule (scheduled usage time) of each device.
[0108] (Step S314) Upon receiving the execution instruction of the first block, the device 300 executes the first block.
[0109] (Step S316) When the execution of the first block is completed, the device 300 sends a completion notification to the device manager 200. In addition, when an error occurs during the execution of the first block, the device 300 may send error information to the device manager 200. Also, the device 300 may send event information to the device manager 200 during the execution of the first block. As the event information, for example, the output value of a sensor or device operation, etc. can be used, but it is not limited thereto. The device manager 200 transfers the completion notification and / or various information received from the device 300 to the sequence manager 100.
[0110] (Step S318) Upon receiving the completion notification of the first block, the sequence manager 100 updates the progress of the application and selects the next block (the second block). Also, when the sequence manager 100 receives error information, it executes processing corresponding to the error information (for example, returning to the previous block, returning to the first block, waiting, etc.). Information on the processing corresponding to the error information may be, for example, pre-held by the sequence manager 100 in advance, or may be received from the user via the UI 400. Also, when the sequence manager 100 receives event information, it executes processing corresponding to the event information. For example, when the event information includes the output value of the water level sensor, the sequence manager 100 updates the water level parameter for displaying the water level included in the currently executing block.
[0111] (Step S320) The sequence manager 100 sends an execution instruction for the selected second block to the device manager 200.
[0112] Note that the execution instruction for the second block may be an instruction for the same device as the execution instruction for the first block (S310), or may be an instruction for a different device.
[0113] Note that, similar to the execution instruction for the first block, the execution instruction for the second block may be sent to the device manager 200 by grouping the execution instructions for a plurality of blocks.
[0114] Since the subsequent processing is the same as the processing for the first block (S312 to S318), the illustration and description are omitted. The blocks included in the application are executed in order, and when the execution of the last block is completed, the application execution phase F300 ends.
[0115] Note that, although the execution of blocks is instructed one by one in order here, it is not limited to this. For example, the execution of multiple blocks assigned to the same device may be instructed collectively. In that case, it may be possible to confirm in advance whether each block satisfies the parameter range of function execution, or to download to the device side the blocks corresponding to the changes before execution. Also, for example, block execution instructions may be given to multiple devices respectively.
[0116] [1.4 Effects, etc.] As described above, the application including blocks and the rule database provide an environment in which various types of applications can be developed, and enable safe driving of the actuator 22 that physically moves or the heater 23 that outputs thermal energy with respect to the applications freely developed in that environment. In other words, it is possible to provide an environment in which applications can be freely developed, and to provide a function for ensuring safety independently of the applications. As a result, for example, it becomes possible to create in parallel the development of various applications with high degrees of freedom and the development of a rule database for ensuring safety, and it becomes possible to develop various applications at an early stage.
[0117] Also, even after the application is provided, by changing the rule database, it is also possible to change to an application with more guaranteed safety. Also, even when it becomes necessary to improve a situation not assumed by the manufacturer in advance, without changing the various applications themselves, by defining the rule database independently of the applications, by updating the rule database, it becomes possible to respond to all applications.
[0118] Another approach is to maintain the rule - based error handling by detecting the state when the application is running without modifying the application itself. However, this approach means dealing with the situation only after an error has occurred, allowing for a situation where a load is applied to the household appliance or the safety cannot be guaranteed. Therefore, by having a rule database independent of the application and modifying the content of the application by referring to 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 acquires an application defined by a plurality of blocks that drive at least one of the actuator 22 and the heater 23 and includes information on the order in which each of the plurality of blocks is to be executed. Referring to a first rule that prohibits two or more blocks from being executed in a predetermined order, when the order information corresponds to the predetermined order, the control unit 24 changes the order in which each of the plurality of blocks is executed to modify the application, and drives at least one of the actuator 22 and the heater 23 based on the modified application.
[0120] According to this, the actuator 22 and / or the heater 23 can be driven based on an application defined by a plurality of blocks. Therefore, it becomes possible to develop an application using blocks that abstract the control of the device 20, and various applications can be developed not only by manufacturers but also by third parties, and these applications can be easily executed on the device 20. Further, when an application includes two or more predetermined blocks in a predetermined order, before the actuator 22 and / or the heater 23 are driven based on the application, the order in which each of the plurality of blocks is executed can be changed. Therefore, it is possible to prohibit two or more predetermined blocks from being executed in a predetermined order. That is, even if an application developer erroneously instructs two or more predetermined blocks to be executed in an unacceptable order, it is possible to suppress the execution of an application that cannot safely control the device 20. Therefore, even when an application developer creates an application that emphasizes user suitability rather than ensuring the safety of the actuator 22 and / or the heater 23, the safety of the device 20 controlled by the application can be improved.
[0121] Also, for example, in the device 20 according to the present embodiment, two or more predetermined blocks include a first block and a second block, the predetermined order indicates the order in which the second block is located after the first block, and in changing the application, when the order information corresponds to the predetermined order, the control unit 24 may change the order in which each of the plurality of blocks is executed by adding a new block between the first block and the second block.
[0122] For example, in the apparatus 20 according to the present embodiment, two or more predetermined blocks include a first block and a second block, and a predetermined order indicates an order in which the second block is located after the first block. In the change of the application, when the order information corresponds to the predetermined order, the control unit 24 may change the order in which each of the plurality of blocks is executed by deleting the first block or the second block.
[0123] For example, in the apparatus 20 according to the present embodiment, two or more predetermined blocks include a first block and a second block, and a predetermined order indicates an order in which the second block is located after the first block. In the change of the application, when the order information corresponds to the predetermined order, the control unit 24 may change the order of the first block or the second block to an order in which the first block is located after the second block, or an order in which another block is located between the first block and the second block, thereby changing the order in which each of the plurality of blocks is executed.
[0124] For example, in the apparatus 20 according to the present embodiment, the application includes information on a plurality of blocks and information on the order in which each is executed. When the rule includes information that at least one of the plurality of blocks cannot be executed, as error information, it may be presented to the developer that this application cannot be developed or information on the block that cannot be executed.
[0125] According to these, before the application is executed, by adding a new block, deleting the first block or the second block, or changing the order of the first block or the second block, it is possible to prevent the second block from being executed after the first block. Therefore, the developer of the application can freely develop the application with a lower priority of considering the safe driving of the actuator 22 and the heater 23. Furthermore, the developer of the software incorporated in the device 20 that controls the actuator 22 and the heater 23 can permit the execution of the blocks without checking the safety of each application every time, and can prevent a plurality of blocks from being executed in an unacceptable order.
[0126] Also, for example, in the device 20 according to the present embodiment, the first rule may prohibit at least one of the actuator 22 and the heater 23 from reaching the endurance temperature when two or more predetermined blocks are executed in a predetermined order.
[0127] According to this, it is possible to suppress the actuator 22 and / or the heater 23 from reaching the endurance temperature when the application is executed, and it is possible to improve the safety of the device 20 controlled by the application.
[0128] Also, for example, the device 20 according to the present embodiment may include a housing 21 having an internal space, and the first rule may prohibit the internal space from reaching the endurance temperature when two or more predetermined blocks are executed in a predetermined order.
[0129] According to this, it is possible to suppress the internal space of the housing 21 from reaching the endurance temperature when the application is executed, and it is possible to improve the safety of the device 20 controlled by the application.
[0130] (Modification Example of Embodiment 1) In the above-described Embodiment 1, the processing of the system 1 has been described with reference to FIG. 8. However, the processing flow is not limited to this. In particular, regarding 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 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.
[0131] FIG. 15A is a sequence diagram of the system 1 in Modified Example 1 of Embodiment 1. In FIG. 15A, the pre-execution check (S216) is performed by the device 300 immediately before the device 300 executes a block (S314) after receiving an execution instruction (S310).
[0132] As a result, the software incorporated in the device 300 can have a simple configuration in which the pre-execution check is performed immediately before the execution of the block. That is, steps S215 and S217 can be omitted. As a result, it is not necessary to incorporate the functions and communication APIs for performing those processes into the device 300, and it is possible to reduce the memory used by the microcomputer mounted on the device 300.
[0133] Note that the result of the pre-execution check may be notified to the device manager 200 and / or the UI 400. For example, when a parameter change or a block execution stop instruction is given as a result of the pre-execution check, the confirmation result may be notified to the device manager 200 or the UI 400.
[0134] FIG. 15B is a sequence diagram of the system 1 in Modified Example 2 of Embodiment 1. In FIG. 15B, the pre-execution check (S216) is performed by the device manager 200 as it is when the device manager 200 performs the allocation result notification (S218).
[0135] As a result, the software incorporated in the device 300 may not include the pre-execution confirmation (S216) function. Therefore, the use of the memory of the device 300 can be suppressed, leading to a cost reduction of the device 300.
[0136] Also, in the above-described First Embodiment, the process flow of the block execution (S314) by the device 300, which is performed according to an instruction from the sequence manager 100 implemented in the cloud server 10, has been described. However, the form in which the block execution (S314) is performed is not limited to this.
[0137] For example, the notification content from the sequence manager 100 may be stored in the memory within the device 300, and the block may be executed according to a direct instruction from the user through the UI of the device 20 or the UI 400 of the terminal 30. That is, an application may be downloaded into the device in advance, and the user may execute the application at an arbitrary timing.
[0138] FIG. 15C is a sequence diagram of the system 1 in Modification 3 of the First Embodiment. In FIG. 15C, in the application execution phase F300, one or more blocks to be executed by the device 300 are notified from the sequence manager 100 to the device 300 (S310C). Then, the device 300 stores the notified one or more blocks in the memory (S311C).
[0139] Thereafter, the device 300 receives an instruction to execute the stored one or more blocks from the user (S312C), and executes the one or more blocks in order from the first block (S314).
[0140] As described above, by storing the block in the device 300, the device 300 can be controlled without communicating between the device manager 200 and the device 300. Therefore, it is possible to reduce the risk that the operation of the device 300 stops or is delayed due to unstable communication between the cloud server 10 and the device 20. Therefore, this modification example is more effective in an environment where the reliability of communication with the cloud server 10 is low and / or in the device 300 where operation stops or delays of the device during application execution are not allowed.
[0141] Note that also in Modification Example 3, similar to Embodiment 1, the pre-execution confirmation (S216) has an important meaning, but the timing and the module that is the subject of the pre-execution confirmation (S216) are not limited to those shown in FIG. 15C. That is, Modification Example 3 may be combined with Modification Example 1 or 2.
[0142] FIG. 15D is a sequence diagram of the system 1 in Modification Example 4 of Embodiment 1. Modification Example 4 corresponds to a combination of Modification Example 1 and Modification Example 3. In Modification Example 4, as shown in FIG. 15D, the pre-execution confirmation (S216) is performed by the device 300 immediately before the device 300 executes the block (S314) after receiving an execution instruction (S312C).
[0143] When the block is downloaded to the device 300 and the user executes the block at an arbitrary timing, the possibility that the timing of downloading the block and the timing of execution are greatly deviated increases. That is, it is conceivable that the block is executed several days, several months, or several years after the block is downloaded to the device 300. In that case, there is also a risk that the degradation level of the device 300 changes between when the block is downloaded and when the block is executed. Therefore, in the device 300 where the execution of the block is affected by the degradation level, by performing the pre-execution confirmation by the device 300 immediately before the block is executed, it becomes possible to perform the pre-execution confirmation according to the degradation level.
[0144] FIG. 15E is a sequence diagram of the system 1 in Modification 5 of Embodiment 1. Modification 5 corresponds to a combination of Modification 2 and Modification 3. In Modification 5, as shown in FIG. 15E, the pre-execution confirmation (S216) is directly performed by the device manager 200 when the device manager 200 performs the allocation result notification (S218).
[0145] (Embodiment 2) Next, Embodiment 2 will be described. The main difference between this embodiment and the above Embodiment 1 is that the pre-execution confirmation is skipped when the application is authenticated. Hereinafter, this embodiment will be described centering on the differences from the above Embodiment 1.
[0146] Note that since the hardware configuration and functional configuration of the system 1 in this embodiment are the same as those in the above Embodiment 1, the illustration and description thereof are omitted.
[0147] [2.1 Processing] In this embodiment, the processing is the same as that of the above Embodiment 1 except that the pre-execution confirmation step S216 in the above Embodiment 1 is replaced by step S216A. Therefore, step S216A of the pre-execution confirmation process will be described with reference to FIG. 16.
[0148] FIG. 16 shows a flowchart of the pre-execution confirmation process in Embodiment 2.
[0149] (Step S2161A) The device 300 acquires application authentication information. The application authentication information includes information indicating that the application is authenticated when the application is authenticated.
[0150] The authentication of an application is, for example, a mechanism for ensuring the quality of the application, and enables confirmation of the security and / or identity (not being tampered with) of the application. An example of an application with authentication information will be described. When the change history of the application code indicates that no change has been made to the parameter range, information indicating that the application has been authenticated is associated with the application.
[0151] (Step S2162A) Based on the acquired application information, the device 300 determines whether the application has been authenticated. Here, if it is determined that the application has been authenticated (Yes in S2162A), the device 300 skips the subsequent steps S2165 to S2167 and ends the pre-execution confirmation process. On the other hand, if it is determined that the application has not been authenticated (No in S2162A), the device 300 proceeds to the next step S2165.
[0152] [2.2 Effects, etc.] As described above, the device 20 in the present embodiment includes at least one of the actuator 22 and the heater 23, and a control unit 24 that controls at least one of the actuator 22 and the heater 23. The control unit 24 is defined by a plurality of blocks that drive at least one of the actuator 22 and the heater 23, and acquires an application including information on the order in which each of the plurality of blocks is to be executed and information indicating whether it has been authenticated. When the application does not include information indicating that it has been authenticated, referring to a first rule that prohibits a predetermined two or more blocks from being executed in a predetermined order, when the order information corresponds to the predetermined order, the application is changed by changing the order in which each of the plurality of blocks is executed, and based on the changed application, at least one of the actuator 22 and the heater 23 is driven.
[0153] According to this, the same effects as those in Embodiment 1 can be achieved. Furthermore, when the application is not authenticated, processing involving changes to the application can be performed, and when the application is authenticated, the processing load can be reduced. Therefore, it is not necessary to perform determination processing on the order of blocks for all applications, and through management by authentication, the processing load can be reduced while establishing design criteria regarding the order of blocks, enabling easier and safer design for application developers.
[0154] Also, for example, in the apparatus 20 in the present embodiment, when having information indicating that the application is authenticated, it is not necessary to refer to the first rule and it is not necessary to change the application.
[0155] According to this, when the application is authenticated, the processing for changing the block can be skipped, and the processing load can be reduced.
[0156] (Embodiment 3) Next, Embodiment 3 will be described. The main difference from the above Embodiment 1 in the present embodiment is that the pre-execution confirmation is skipped when the application producer and the apparatus producer are the same. Hereinafter, the present embodiment will be described mainly focusing on the differences from the above Embodiment 1.
[0157] Note that since the hardware configuration and the functional configuration of the system 1 in the present embodiment are the same as those in the above Embodiment 1, illustration and description thereof are omitted.
[0158] [3.1 Processing] In the present embodiment, the processing is the same as that in the above Embodiment 1 except that step S216 of the pre-execution confirmation in the above Embodiment 1 is replaced with step S216B. Therefore, step S216B of the pre-execution confirmation process will be described with reference to FIG. 17.
[0159] FIG. 17 shows a flowchart of the pre-execution confirmation process in Embodiment 3.
[0160] (Step S2161B) Device 300 acquires application maker information. The application maker information indicates the maker of the application. The maker means a company, an individual, a group, etc. that produced the application, and may also be called a developer or an author.
[0161] (Step S2163B) Device 300 acquires device maker information. The device maker information indicates the maker of the device. The maker means a company, an individual, a group, etc. that produced device 300 (i.e., device 20), and may also be called a manufacturer.
[0162] (Step S2164B) Device 300 determines whether the maker of the application is different from the maker of device 300. If the maker of the application is an individual and the maker of device 300 is a company, device 300 may determine that the maker of the application and the maker of device 300 are the same if the company to which the maker of the application belongs matches the maker of device 300. Also, device 300 may determine that the maker of the application and the maker of device 300 are the same if the maker of the application is the outsourcing destination of the maker of device 300.
[0163] Here, if the maker of the application and the maker of device 300 are the same (No in S2164B), device 300 skips the subsequent steps S2165 to S2167 and ends the pre-execution confirmation process. On the other hand, if the maker of the application and the maker of device 300 are different (Yes in S2164B), device 300 proceeds to the next step S2165.
[0164] [3.2 Effects, etc.] As described above, the apparatus 20 in the present embodiment includes at least one of an actuator 22 and a heater 23, and a control unit 24 that controls at least one of the actuator 22 and the heater 23. The control unit 24 is defined by a plurality of blocks that drive at least one of the actuator 22 and the heater 23, and acquires an application including information indicating the order in which each of the plurality of blocks is executed and information indicating the producer, and acquires information indicating the producer of the apparatus 20. When the producer of the application is different from the producer of the apparatus 20, with reference to a first rule that prohibits a predetermined two or more blocks from being executed in a predetermined order, when the order information corresponds to the predetermined order, the application is changed by changing the order in which each of the plurality of blocks is executed, and based on the changed application, at least one of the actuator 22 and the heater 23 is driven.
[0165] According to this, the same effects as those in the first embodiment can be achieved. Further, when the producer of the application is different from the manufacturer of the apparatus 20, processing involving changing the application can be performed, and when the producer of the application is the same as the manufacturer of the apparatus 20, the processing load can be reduced.
[0166] (Embodiment 4) Next, Embodiment 4 will be described. The main difference from the first embodiment above is that pre-execution confirmation is performed using rules corresponding to the deterioration level of the apparatus. Hereinafter, this embodiment will be described centering on the differences from the first embodiment above.
[0167] Note that since the hardware configuration and functional configuration of the system 1 in the present embodiment are the same as those in the first embodiment above, illustration and description thereof are omitted.
[0168] [4.1 Processing] In this embodiment, the processing is the same as that of the first embodiment except that the pre-execution confirmation step S216 in the first embodiment is replaced by step S216C. Therefore, step S216C of the pre-execution confirmation process will be described with reference to FIG. 18.
[0169] FIG. 18 shows a flowchart of the pre-execution confirmation process in the fourth embodiment.
[0170] (Step S2163C) Device 300 acquires device degradation information. The device degradation information indicates the degradation level of the actuator 22 and / or the heater 23 included in the apparatus 20. The method for detecting the degradation level is not particularly limited, and may be detected by a sensor, for example.
[0171] (Step S2165C) Device 300 acquires a rule corresponding to the degradation level. For example, device 300 refers to a rule database to acquire a rule corresponding to the degradation level of the actuator 22 or the heater 23 driven by the block.
[0172] Note that the items for determining the degradation level are, for example, the number of uses, the usage time, or the number of days of use from the start of operation to the present of the actuator 22 and / or the heater 23 included in the device 300. These items are assumed to increase in approximately a proportional relationship with the user's use. Therefore, the rule is determined such that the degradation level increases as the value corresponding to the item increases.
[0173] Also, the items for determining the degradation level are, for example, the added value of the temperature of the heater 23, or the degree of reproducibility of the input and output of the actuator 22 and / or the heater 23. The added value of the temperature of the heater 23 is a value obtained by adding the temperature when the heater 23 is driven. For example, the average temperature, the intermediate temperature, or the maximum temperature of the heater 23 at the time of block execution is used. The temperature of the heater 23 may be the ratio of the execution temperature to the limit temperature of the heater 23, or the difference between the execution temperature and the limit temperature of the heater 23.
[0174] The degree of reproducibility of the input and output of the actuator 22 and / or the heater 23 is determined with reference to the relationship between the input value for driving the actuator 22 and / or the heater 23 and the output of the actuator 22 and / or the heater 23. The ratio between the actual output value for a given input and the output value defined in the relationship is used.
[0175] [4.2 Effects, etc.] As described above, the device 20 in the present embodiment includes at least one of the actuator 22 and the heater 23, and a control unit 24 that controls at least one of the actuator 22 and the heater 23. The control unit 24 acquires an application defined by a plurality of blocks that drive at least one of the actuator 22 and the heater 23 and includes information on the order in which each of the plurality of blocks is executed, acquires deterioration information indicating whether at least one of the actuator 22 and the heater 23 is deteriorated, and refers to a first rule corresponding to the deterioration information that prohibits two or more blocks from being executed in a predetermined order. When the order information corresponds to the predetermined order, the application is changed by changing the order in which each of the plurality of blocks is executed, and at least one of the actuator 22 and the heater 23 is driven based on the changed application.
[0176] According to this, the same effects as those of the first embodiment can be achieved. Furthermore, the rules corresponding to the deterioration information of the device 20 can be used, and by using the blocks, while considering the performance of the device that deteriorates over time, the drive instruction from the application side to the actuator 22 and / or the heater 23 is executed, and the safety of the device 20 controlled by the application can be further improved.
[0177] (Embodiment 5) In the first to fourth embodiments described above, the blocks included in an already distributed application are changed before the application is executed. In this embodiment, the timing at which the application is changed is before the application is distributed, that is, at the stage where the application is developed or produced, and in this regard, this embodiment is different from the first to fourth embodiments described above. Hereinafter, this embodiment will be described in detail focusing on the differences from the first to fourth embodiments. Note that this embodiment may be the same as the first to fourth embodiments in other respects than the timing of changing the application. Also, among the components in this embodiment, the components identical to those in the first to fourth embodiments are denoted by the same reference numerals as in the first to fourth embodiments, and detailed descriptions thereof are omitted.
[0178] [5.1 Configuration] FIG. 19 is a diagram showing a configuration example of an information processing system used for developing an application.
[0179] 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 provided in the information processing system 2000 are connected via a communication network such as the Internet.
[0180] The block database 41, also referred to as the block DB, is a recording medium that stores a list of blocks including a plurality of functional blocks. Note that these functional blocks are also referred to as blocks as in the first to fourth embodiments. The rule database 42, also referred to as the rule DB, is a recording medium that stores a plurality of rules. Note that the rule database 42 may be the same as, for example, the rule database 1300 shown in FIG. 12. Also, these recording media are a hard disk, a RAM (Random Access Memory), a ROM (Read Only Memory), or a semiconductor memory, etc. Note that such a recording medium may be volatile or non-volatile.
[0181] The development tool 50 is a computer system including, for example, a processor 51, a memory 52, a display 53, and an input unit 54. The processor 51 executes each of the processes described below by executing instructions or software programs stored in the memory 52, for example, and displays characters, images, etc. on the display 53. The display 53 is, for example, a liquid crystal display, a plasma display, an organic EL (Electro-Luminescence) display, etc., but is not limited thereto. The input unit 54 is configured as, for example, a keyboard, a touch sensor, a touch pad, or a mouse. Such a development tool 50 is used, for example, by an application developer and generates a sequence or an application including a plurality of functional blocks. In the present embodiment, this development tool 50 is an example of an information processing apparatus.
[0182] The app providing server 60 acquires and holds the application generated by the development tool 50 from the development tool 50 via a communication network. Then, the app providing server 60 downloads the held application to the sequence manager 100 in response to an instruction from the UI 400 provided in the terminal 30.
[0183] FIG. 20 is a diagram showing an example of information stored in each of the block database 41 and the rule database 42.
[0184] As shown in Fig. 20(a), the block database 41 stores, for each of a plurality of types of apparatuses 20, a list of functional blocks for driving the apparatus 20 of that type as the above-described block list. For example, block lists 41a to 41e are stored. The block list 41a includes functional blocks FB11 to FB14 for driving an oven range. The block list 41b includes functional blocks FB21 to FB24 for driving a multi-cooker. These functional blocks may be the same as or similar to the blocks of the above-described Embodiments 1 to 4.
[0185] As shown in Fig. 20(b), the rule database 42 stores, for each of a plurality of types of apparatuses 20, a rule group consisting of at least one rule applied to the apparatus 20 of that type. For example, rule groups 42a to 42e are stored. The rule group 42a includes rules R100 and R11 to R13 applied to an oven range. The rule group 42b includes rules R200 and R21 to R23 applied to a multi-cooker. Also, the rule group 42d includes rules R400 and R41 to R43 applied to a washing machine. These rules may be the same as or similar to the rules of the above-described Embodiments 1 to 4.
[0186] Here, each of the rules R11 to R13 for the oven range is, for example, a dedicated rule applied to a predetermined model of oven range manufactured by a predetermined manufacturer. Similarly, each of the rules R21 to R23 for the multi-cooker is, for example, a dedicated rule applied to a predetermined model of multi-cooker manufactured by a predetermined manufacturer. Similarly, each of the rules R41 to R43 for the washing machine is a dedicated rule applied to a predetermined model of washing machine manufactured by a predetermined manufacturer. Specifically, each of the dedicated rules R41 to R43 may be, for example, rules 1301, 1302, or 1303 shown in Fig. 12.
[0187] On the one hand, the oven range rule R100 is a general rule for oven ranges applicable to, for example, each of multiple types of oven ranges. Similarly, the multi-cooker rule R200 is a general rule for multi-cookers applicable to, for example, each of multiple types of multi-cookers.
[0188] FIG. 21 is a diagram showing an example of a general rule included in the rule database 42.
[0189] The washing machine rule group 42d stored in the rule database 42 includes, for example, the general rule R400 shown in FIG. 21(a). This general rule R400 is a rule applicable to each of multiple types of washing machines and has information on a first block and a second block that are prohibited from being executed continuously. Note that the order of the prohibited first block and second block is hereinafter also referred to as the non-permissible block order. The general rule R400 may show multiple non-permissible block orders. For example, the general rule R400 shows, as the non-permissible block order, that it is prohibited to execute the stirring function block immediately after the dehydration function block. Also, for example, the general rule R400 shows, as the non-permissible block order, that it is prohibited to execute the washing amount detection block immediately after the water supply block. Also, for example, the rule shows, as the non-permissible block order, that it is prohibited to execute the drainage block immediately after the stirring block.
[0190] Note that the dehydration block is a function block that causes the washing machine to perform dehydration as a function, and the stirring block is a function block that causes the washing machine to perform stirring as a function. Similarly, the water supply block is a function block that causes the washing machine to perform water supply as a function, and the washing amount detection block is a function block that causes the washing machine to perform detection of the washing amount as a function. Similarly, the drainage block is a function block that causes the washing machine to perform drainage as a function.
[0191] In addition, the multiple types of washing machines to which the general rule R400 is applied include washing machines provided by multiple manufacturers. Also, if each manufacturer provides multiple models of washing machines, the multiple types of washing machines include those multiple models of washing machines. That is, the non-permissible block order shown in the general rule R400 is applicable to any washing machine regardless of the manufacturer and model.
[0192] Also, the general rule R400 for the washing machine may show the non-permissible block order applied to each washing machine of multiple manufacturers, as shown in FIG. 21(b). For example, the general rule R400 shows the non-permissible block order applied to multiple models of washing machines provided by the manufacturer "Company A" and the non-permissible block order applied to multiple models of washing machines provided by the manufacturer "Company B", etc.
[0193] Thus, the rule in this embodiment is, similar to Embodiments 1 to 4, a rule that prohibits a predetermined two or more blocks from being executed in a predetermined order. And the predetermined two or more blocks include the first block and the second block, and the predetermined order indicates the order in which the second block is located after the first block. Specifically, the predetermined order indicates the order in which the second block is located immediately after the first block. Note that the rule in this embodiment, similar to Embodiments 1 to 4, can also be said to prohibit at least one of the actuator 22 and the heater 23 or the internal space of the housing 21 from reaching the endurance temperature when a predetermined two or more blocks are executed in a predetermined order.
[0194] [5.2 Processing] FIG. 22 is a sequence diagram of the information processing system 2000.
[0195] (Step S11) First, the development tool 50 installs one or more function blocks. Specifically, the development tool 50 obtains one or more function blocks from the block database 41 by downloading. For example, the development tool 50 may obtain the block list 41a of the oven range, or may obtain only some of the function blocks in the block list 41a. Then, the development tool 50 makes the one or more obtained function blocks available for sequence generation.
[0196] Here, device information corresponding to each function block stored in the block database 41 may be added to the function block. This device information indicates, for example, the manufacturer, type, model, or serial number of the device 20 that is driven according to the function block corresponding to the device information. Therefore, the development tool 50 may download one or more function blocks based on the device information. For example, the development tool 50 may download one or more function blocks for driving each device 20 provided by the same manufacturer, or may download one or more function blocks for driving each device 20 used for warming during cooking.
[0197] (Step S12) Next, the development tool 50 generates a sequence. Specifically, the development tool 50 generates a sequence using the one or more downloaded function blocks in response to an input operation by the operator on the input unit 54. Note that the operator may be the developer of the application that is the sequence. In the present embodiment, in this step S12, the development tool 50 refers to the above rules and changes the application based on the rules.
[0198] (Step S13) Next, the development tool 50 uploads the generated sequence. Specifically, the development tool 50 generates transmission information for transmitting the generated sequence to the application providing server 60 based on the content of the sequence in response to an input operation on the input unit 54 by the operator, and transmits the transmission information to the application providing server 60. This transmission information may be, for example, JSON (JavaScript Object Notation) or the like. As a result, the sequence is transmitted to the application providing server 60 and stored in the application providing server 60 as an application.
[0199] (Step S14) Next, the user of the terminal 30 accesses the application providing server 60 by operating the UI 400 of the terminal 30 and views a list of applications stored in the application providing server 60. Then, in response to an operation by the user, the UI 400 selects an application from the list and requests the application providing server 60 to download the application.
[0200] (Step S15) When the application providing server 60 receives a download request from the UI 400, it downloads the selected application to the sequence manager 100 associated with the user.
[0201] FIG. 23 is a flowchart showing the overall processing operation of the development tool 50. Specifically, the flowchart shown in FIG. 23 shows the detailed processing operations of steps S11 and S12 in the sequence of FIG. 22.
[0202] (Step S21) The development tool 50 first installs a plurality of function blocks for driving the device 20 such as a washing machine.
[0203] (Step S22) Next, the development tool 50 performs the arrangement process of the functional blocks according to the input operation by the operator on the input unit 54. That is, the development tool 50 displays the plurality of functional blocks installed in step S21 on the display 53, and selects one functional block from the plurality of displayed functional blocks according to the input operation by the operator on the input unit 54. Then, the development tool 50 arranges the functional block in the selection block area on the sequence generation screen on the display 53 according to the input operation by the operator on the input unit 54. The sequence generation screen will be described later with reference to FIG. 26. That is, the operator drags and drops one of the plurality of functional blocks into the selection block area.
[0204] (Step S23) Next, the development tool 50 performs the parameter setting process of the functional block arranged in step S22 according to the input operation by the operator on the input unit 54. That is, the development tool 50 displays a reception image for receiving the content of the parameters used for the functional block in the parameter setting area on the above-mentioned sequence generation screen. Then, the development tool 50 receives the content of the parameters according to the input operation by the operator on the input unit 54, and displays the content of the parameters in the parameter setting area. Thereby, parameters are set for the functional block.
[0205] (Step S24) Next, the development tool 50 refers to the parameter rules applied to the device 20 such as a washing machine, and determines whether the parameters set in step S23 are outside the parameter range shown in the parameter rules, that is, outside the allowable range.
[0206] (Step S25) When the development tool 50 determines in step S24 that the parameter is not outside the unacceptable range (No in step S24), it performs parameter setting support processing. In this parameter setting support processing, the development tool 50 performs error presentation processing for presenting an error to the operator or automatic correction processing of the parameter. In the automatic correction processing of the parameter, the development tool 50 changes the function block by changing the parameter outside the unacceptable range to a parameter within the acceptable range. In the error presentation processing, the development tool 50 displays, for example, as an error, a message indicating that the parameter set in the immediately preceding step S23 is within the unacceptable range, on the display 53, and prompts the operator to change the parameter. Then, after the processing of step S25 is performed, the development tool 50 repeats the processing from step S23.
[0207] Note that when the processing of step S23 is performed after the automatic correction processing of the parameter is performed in step S25, in that step S23, the development tool 50 displays the parameter after being changed by the automatic correction processing in the parameter setting area. On the other hand, when the processing of step S23 is performed after the error presentation processing is performed in step S25, in that step S23, the development tool 50, as described above, again accepts the content of the parameter in response to an input operation to the input unit 54 by the operator. Thereby, the parameter is changed for the function block. That is, the function block is changed.
[0208] (Step S26) When the development tool 50 determines in step S24 that the parameter is outside the allowable range (Yes in step S24), it further determines whether the connection of the functional block arranged in step S22 is permitted. That is, the development tool 50 refers to the rules applied to the device 20 such as a washing machine, and determines whether the order of the functional block arranged in step S22 and the already arranged functional blocks corresponds to the non-permissible block order shown in the rules. For example, in step S22, a functional block is arranged immediately before or after an existing block which is another functional block already arranged in the selection block area. As a result, the functional block is arranged in a state of being connected to the existing block. That is, the functional block is arranged so that the processing of the device 20 by the functional block and the processing of the device 20 by the existing block are continuously executed. In this case, the development tool 50 determines whether the connection between the functional block and the existing block is permitted by referring to the rules applied to the device 20 such as a washing machine. Specifically, if the order of the functional block and the existing block corresponds to the non-permissible block order shown in the rules, the development tool 50 determines that the connection of those blocks is not permitted. On the other hand, if the order of the functional block and the existing block does not correspond to any of the non-permissible block orders shown in the rules, the development tool 50 determines that the connection of those blocks is permitted.
[0209] (Step S27) When the development tool 50 determines in step S26 that the connection is not permitted (No in step S26), it performs connection support processing. In this connection support processing, the development tool 50 performs connection error presentation processing for presenting an error to the operator, or automatic correction processing of the connection. Then, the development tool 50 repeats the processing from step S22.
[0210] Note that when the process of automatically correcting the connection is performed in step S27 and then the process of step S22 is performed, in that step S22, the development tool 50 displays two or more function blocks reconnected by the automatic correction process in the selection block area. On the other hand, when the error prompt process is performed in step S27 and then the process of step S22 is performed, in that step S22, the development tool 50 rearranges the function blocks again according to the input operation on the input unit 54 by the operator, as described above. Also, when the process from step S27 to step S22 is repeated, since the parameters of the function blocks have already been set within the allowable range, the development tool 50 may skip the processes of steps S23 to S25 after step S22.
[0211] (Step S28) When the development tool 50 determines that the connection is permitted in step S26 (Yes in step S26), it further determines whether the generation of the sequence is completed according to the input operation on the input unit 54 by the operator. Here, when the development tool 50 determines that the generation of the sequence is not completed (No in step S28), it repeats the process from step S22. At this time, the development tool 50 selects a new block from the plurality of blocks installed in step S21 according to the input operation on the input unit 54 by the operator and arranges it in the above-mentioned selection block area.
[0212] (Step S29) When the development tool 50 determines in step S28 that the generation of the sequence is completed (Yes in step S28), it further determines whether the flow of the entire generated sequence is permitted. For example, in that sequence, a second functional block is arranged before or after the first functional block. On the other hand, in the combination rules applied to the device 20 such as a washing machine, the combination of the first functional block and the second functional block is not permitted. In such a case, the development tool 50 determines that the flow of the entire generated sequence is not permitted. Alternatively, in the combination rules applied to the device 20 such as a washing machine, it is required that a second functional block be arranged before or after the first functional block. In such a case, the development tool 50 determines that the flow of the entire generated sequence is permitted.
[0213] (Step S30) When the development tool 50 determines in step S29 that the flow of the entire sequence is not permitted (No in step S29), it performs placement support processing. In this placement support processing, the development tool 50 performs error presentation processing for presenting an error to the operator or automatic correction processing for the placement of the functional blocks. Then, the development tool 50 repeats the processing from step S22.
[0214] Note that when the processing of step S22 is performed after the automatic correction processing of the placement is performed in step S30, in that step S22, the development tool 50 displays two or more functional blocks rearranged by the automatic correction processing in the selection block area. Also, when the processing from step S30 to step S22 is repeated, since the parameters of the functional blocks are already set within the allowable range, the development tool 50 may skip the processing of steps S23 to S25 after step S22. Also, since the connection of the functional blocks is already permitted, the development tool 50 may skip the processing of steps S26 and S27. Further, the development tool 50 may also skip the processing of step S28.
[0215] FIG. 24 is a flowchart showing an example of the automatic connection correction process.
[0216] In the example shown in FIG. 23, every time one functional block is selected and placed, determination and automatic correction processing for the connection of that functional block are performed. However, in the present disclosure, without being limited to that example, the development tool 50 may perform each process according to the flowchart shown in FIG. 24.
[0217] (Step S41) In response to an input operation to the input unit 54 by the operator, the development tool 50 selects M (M is an integer of 2 or more and N or less) functional blocks from N (N is an integer of 2 or more) functional blocks for driving the device 20 such as a washing machine. That is, the development tool 50 selects each of the M functional blocks as a selection block from the N functional blocks for driving at least one of the actuator 22 and the heater 23 provided in the device 20 which is the device to be controlled, according to the input operation to the input unit 54 by the operator.
[0218] (Step S42) Next, the development tool 50 generates a sequence, that is, an application, by arranging each of the selected M functional blocks in order in the above-described selection block area. That is, the development tool 50 generates an application including at least M selection blocks and including information on the order by setting the order in which each of at least M selection blocks is to be executed according to the input operation to the input unit 54 by the operator. Each of the M selection blocks included in this application may include parameters for driving at least one of the actuator 22 and the heater 23.
[0219] (Step S43) Next, if each of the M functional blocks is a block for driving a washing machine, the development tool 50 refers to the rules applicable to the washing machine. For example, when the application generated in step S42 is applied to multiple types of washing machines, the development tool 50 refers to the general rule R400. Also, when the application generated in step S42 is applied to a washing machine of a predetermined type, the development tool 50 refers to the rule associated with that type of washing machine among the dedicated rules R41 to R43. That is, the development tool 50 determines whether the application generated in step S42 is an application dedicated to the controlled device or a general application applied to the controlled device and devices other than the controlled device. Then, the development tool 50 refers to the rule candidate corresponding to the determination result of the application among a plurality of rule candidates that prohibit a predetermined two or more blocks from being executed in a predetermined order, as the above-described rule.
[0220] (Step S44) Then, the development tool 50 determines whether the order of the M functional blocks set in step S42 corresponds to the non-permissible block order shown in the above-described rule. That is, the development tool 50 determines whether the order of the M functional blocks included in the application corresponds to the predetermined order shown in the rule.
[0221] (Step S45) Here, when the development tool 50 determines that the order of the M functional blocks corresponds to the non-permissible block order (Yes in step S44), it changes the order of the M functional blocks. That is, the development tool 50 refers to a rule that prohibits a predetermined two or more blocks from being executed in a predetermined order, and when the order information included in the application corresponds to the predetermined order, it changes the application by changing the order in which each of the M selected blocks is executed. The change in the order in which each of the M selected blocks is executed means (1) adding a new block between the first block and the second block, (2) deleting the first block or the second block, (3) changing the order of the first block or the second block to an order in which the first block is located after the second block, or an order in which another block is located between the first block and the second block. These order change methods may be defined in the rule.
[0222] (Step S46) Then, the development tool 50 outputs the changed application.
[0223] FIG. 25 is a flowchart showing an example of connection error presentation processing.
[0224] In the example shown in FIG. 23, every time one functional block is selected and arranged, determination and error presentation processing for the connection of the functional block are performed. However, in the present disclosure, without being limited to that example, the development tool 50 may perform each process according to the flowchart shown in FIG. 25.
[0225] (Steps S41~S44) The development tool 50 executes the processes of steps S41~S44 in the same manner as the example shown in FIG. 24.
[0226] (Step S51) When the development tool 50 determines in step S44 that the order of the M functional blocks corresponds to the non-permissible block order (Yes in step S44), it displays an error on the display 53 without automatically changing the M functional blocks. As a result, an error is presented to the operator. That is, in the processes of steps S43, S44, and S51, the development tool 50 presents an error by referring to the rules. Specifically, the development tool 50 refers to a rule that prohibits a predetermined two or more blocks from being executed in a predetermined order, and when the order information included in the application corresponds to the predetermined order, it presents an error to the operator.
[0227] In addition, the development tool 50 may present an error and show a plurality of countermeasures to the operator, prompting the operator to select a countermeasure. At that time, the development tool 50 may present to the operator the difference in output performance for each of the plurality of countermeasures. Also, at that time, the development tool 50 may present at least two or more of the first countermeasure by adding a new functional block, the second countermeasure of deleting a selected block, and the third countermeasure of changing the order of two or more functional blocks. As a result, those countermeasures are presented to the operator, for example, an application developer. As a result, the operator, who is an application developer who has seen those countermeasures, can easily change the order set in step S42 according to the countermeasure by performing an input operation on the input unit 54 of the development tool 50.
[0228] (Step S52) The operator who saw the error changes the order set in step S42 by performing an input operation on the input unit 54 of the development tool 50. Also, when each of a plurality of countermeasures is presented as an option to the operator, the operator selects an arbitrary countermeasure from among those options by performing an input operation. As a result, the development tool 50 changes the order of the M functional blocks. That is, the development tool 50 changes the application by changing the order in which each of the M selection blocks is executed according to the input operation by the operator who received the error prompt. Then, the development tool 50 repeatedly executes the processing from step S43.
[0229] (Step S46) In step S44, when the development tool 50 determines that the order of the M functional blocks does not correspond to the non-permissible block order (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.
[0230] When the process of step S51 is repeated, the development tool 50 may present countermeasures for the error according to the number of repetitions. For example, when the number of error prompts is K times or more (K is an integer of 2 or more), the development tool 50 may present a plurality of countermeasures for the error. That is, when the number of error prompts is K times or more, the development tool 50 presents at least two of the above-described first countermeasure, second countermeasure, and third countermeasure to the operator.
[0231] [5.3 Display Example] FIG. 26 is a diagram showing an example of a sequence generation screen.
[0232] 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.
[0233] In the parameter setting area D1, a reception image for receiving the content of the parameters used for the function block is displayed.
[0234] In the block list area D2, the block lists of each of the plurality of types of devices 20 are displayed. These block lists include the function blocks downloaded from the block database 41 and installed in the development tool 50.
[0235] In the target device area D3, the type name of the device 20 selected from the plurality of types of devices 20 is displayed.
[0236] In the selected block area D4, the function block selected from the block lists displayed in the block list area D2 is arranged and displayed. The function block is displayed as an icon, for example.
[0237] For example, the operator determines the type name of the device 20 to which the application is applied by performing an input operation on the input unit 54 of the development tool 50. The development tool 50 displays the determined type name in the target device area D3. For example, the determined type name "rice cooker" is displayed. Subsequently, the operator selects, by performing an input operation, a function block for driving the device 20 with the determined type name "rice cooker" from the block list displayed in the block list area D2. Then, the operator places, by performing an input operation, the selected function block, that is, the selected block, in the selected block area D4. The selection and placement of this function block may be performed by drag & drop. One or more function blocks placed in this selected block area D4 may be executed in the order in which they are placed. For example, in FIG. 26, from left to right, those function blocks are executed in order. That is, the application includes information on the order in which each of the M selected blocks placed in the selected block area D4 is executed, and information on the timing at which each of the M selected blocks is executed.
[0238] When the function block is placed in the selected block area D4, the development tool 50 displays, in the parameter setting area D1, an acceptance image of the parameters used for the function block.
[0239] FIG. 27 is a diagram showing an example of the display of the block list.
[0240] The operator selects, by performing an input operation on the input unit 54, the type name of the device 20 to which the application to be generated will be applied, from among the type names of the plurality of devices 20 displayed in the block list area D2 shown in FIG. 26. The development tool 50 displays the block list corresponding to the device 20 of the selected type name, as shown in FIGS. 27(a) and (b), for example. For example, as shown in FIG. 27(a), when an oven range is selected, the development tool 50 displays the block list of that oven range. For example, the block list includes function blocks that implement the respective functions of baking, range heating, oven, grill, steaming, preheating, and superheated steam. Also, as shown in FIG. 27(b), when a multicooker is selected, the development tool 50 displays the block list of that multicooker. For example, the block list includes function blocks that implement the respective functions of preheating, keeping warm, stir-frying, pressure cooking, cooking, steaming, stewing, mixing, and boiling.
[0241] The operator selects a function block from the block list thus displayed by performing an input operation on the input unit 54, and arranges the selected function block in the selection block area D4 shown in FIG. 26. That is, the development tool 50 performs the process of step S22 shown in FIG. 23, that is, the function block arrangement process, in response to such an input operation.
[0242] FIG. 28 is a diagram showing an example of the function block arrangement process and the automatic connection correction process.
[0243] The development tool 50 displays, for example, as shown in FIG. 28(a), the function block that has been dragged and dropped from the block list and arranged in the selection block area D4, as an icon, for example. Specifically, the development tool 50 arranges the stirring function block FB42 after the dehydration function block FB41 in response to an input operation on the input unit 54 by the operator. In this way, the development tool 50 performs the function block arrangement process of step S22 shown in FIG. 23 in response to the input operation of the operator.
[0244] Further, after the stirring function block FB42 is arranged in the development tool 50, as in step S26 of FIG. 23, the development tool 50 determines whether the connection between the function block FB42 and the already arranged function block FB41 is permitted. That is, the development tool 50 makes a determination on the connection of the function block FB42 using rules. Then, the development tool 50 performs an automatic correction process for the connection.
[0245] Specifically, the development tool 50 first refers to the rules of the washing machine corresponding to the function block FB42. For example, the development tool 50 identifies the washing machine rule group 42d in the rule database 42 shown in FIG. 20(b) and refers to any one rule included in the rule group 42d. The rule may be a general rule R400 or a dedicated rule R41, etc.
[0246] When the development tool 50 determines that the order of the function block FB41 and the function block FB42 corresponds to the non-permissible block order shown in the rule, the development tool 50 changes the order of the function block FB41 and the function block FB42. For example, as shown in FIG. 28(b), the development tool 50 changes the order of the function block FB41 and the function block FB42 by adding a stop function block FB43 between the function block FB41 and the function block FB42. Thereby, the application of the washing machine is changed.
[0247] As described above, in this embodiment, when the order information included in the application corresponds to a predetermined order, the development tool 50 changes the order in which each of the M selected blocks is executed by adding a new block between the first block and the second block. For example, in the example of FIG. 28, the first block is the function block FB41, and the second block is the function block FB42. And the new block is the function block FB43. Also, the development tool 50 may change the order in which each of the M selected blocks is executed by changing the order in which other blocks are located between the first block and the second block. The above-described other blocks may be, for example, the function block FB43, which may be a block that has already been arranged in the selected block area D4.
[0248] FIG. 29A is a diagram showing another example of the arrangement process of function blocks and the automatic correction process of connections.
[0249] The development tool 50 displays, for example, as shown in FIG. 29A(a), the function blocks dragged and dropped from the block list and arranged in the selected block area D4 as icons. Specifically, the development tool 50 arranges the function block FB45 for detecting the washing amount after the function block FB44 for water supply in response to an input operation on the input unit 54 by the operator. In this way, the development tool 50 performs the arrangement process of the function blocks in step S22 shown in FIG. 23 in response to the input operation of the operator.
[0250] Also, after the function block FB45 for detecting the washing amount is arranged, the development tool 50 determines whether or not the connection between the function block FB45 and the already arranged function block FB44 is permitted, as in step S26 of FIG. 23. That is, the development tool 50 makes a determination on the connection of the function block FB45 using rules. And the development tool 50 performs the automatic correction process of the connection.
[0251] Specifically, the development tool 50 first refers to the rules of the washing machine corresponding to its function block FB45. For example, the development tool 50 identifies the rule group 42d of the washing machine in the rule database 42 shown in Fig. 20(b), and refers to any one rule included in the rule group 42d. The rule may be a general rule R400 or a dedicated rule R41, etc.
[0252] When the development tool 50 determines that the order of the function block FB44 and the function block FB45 corresponds to the non-permissible block order indicated in the rule, the development tool 50 changes the order of the function block FB44 and the function block FB45. For example, as shown in Fig. 29A(b), the development tool 50 changes the order of the function block FB44 and the function block FB45 by deleting the function block FB45.
[0253] In this way, in the present embodiment, when the order information included in the application corresponds to a predetermined order, the development tool 50 deletes the first block or the second block to change the order in which each of the M selected blocks is executed. For example, in the example of Fig. 29A, the first block or the second block to be deleted is the function block FB45.
[0254] Fig. 29B is a diagram showing still another example of the arrangement process of the function blocks and the automatic correction process of the connection.
[0255] Similar to the example shown in Fig. 29A(a), the development tool 50 arranges the function block FB45 for detecting the washing amount after the function block FB44 for water supply as shown in Fig. 29B(a).
[0256] Then, after the function block FB45 for detecting the washing amount is arranged, the development tool 50 determines whether the connection between the function block FB45 and the already arranged function block FB44 is permitted. That is, the development tool 50 determines whether the order of the function block FB44 and the function block FB45 corresponds to the non-permissible block order shown in the rule. As a result, when the development tool 50 determines that the order of the function block FB44 and the function block FB45 corresponds to the non-permissible block order shown in the rule, the development tool 50 changes the order of the function block FB44 and the function block FB45. For example, as shown in (b) of FIG. 29B, the development tool 50 changes the order of the function block FB44 and the function block FB44 by swapping the order of the function block FB44 and the function block FB45.
[0257] In this way, in the present embodiment, when the order information included in the application corresponds to a predetermined order, the development tool 50 changes the order of the first block or the second block to the order in which the first block is located after the second block, thereby changing the order in which each of the M selection blocks is executed. For example, in the example of FIG. 29B, the first block is the function block FB44, and the second block is the function block FB45.
[0258] Also, as shown in FIGS. 28 to 29B, in the present embodiment, an automatic connection correction process is performed. Therefore, even if an operator who is an application developer erroneously arranges the order of the M function blocks in the non-permissible block order, the order is automatically rearranged in an order different from the non-permissible block order. Therefore, the safety of the washing machine can be ensured.
[0259] FIG. 30 is a diagram showing an example of an error prompt process for connection.
[0260] The development tool 50 arranges the stirring function block FB42 after the dehydration function block FB41 as shown in FIG. 30, similar to the example in FIG. 28. After the stirring function block FB42 is arranged, the development tool 50 determines whether the connection between the function block FB41 and the already arranged function block FB41 is permitted. That is, the development tool 50 determines whether the order of the function blocks FB41 and FB42 corresponds to the non-permissible block order shown in the rules. As a result, when the development tool 50 determines that the order of the function blocks FB41 and FB42 corresponds to the non-permissible block order shown in the rules, it performs an error prompt process. Specifically, as shown in FIG. 30, the development tool 50 displays the error message E1 as an error. This error message E1 states that the stirring function block cannot be connected after the dehydration function block. Such an error prompt process is performed, for example, in step S51 of FIG. 25.
[0261] In this way, in the present embodiment, the development tool 50 refers to the rule that prohibits a predetermined two or more blocks from being executed in a predetermined order, and when the order information included in the application corresponds to the predetermined order, it presents an error to the operator. Then, the development tool 50 changes the application by changing the order in which each of the M selection blocks is executed according to the input operation by the operator who has received the error prompt.
[0262] By presenting such an error, the operator, who is the application developer, can easily rearrange the M function blocks arranged in the non-permissible block order in an order different from the non-permissible block order. Therefore, the safety of the washing machine can be ensured.
[0263] In addition, in the error prompt process, the development tool 50 may further display a solution for dealing with the error indicated by the error message E1. For example, as shown in FIG. 30, the development tool 50 displays a solution C1. It is described in this solution C1 that the error can be eliminated by inserting a stop function block before the stirring function block.
[0264] By presenting such a solution, the operator, who is an application developer, can more easily rearrange the M function blocks arranged in the non-permissible block order in an order different from the non-permissible block order. Therefore, the safety of the washing machine can be ensured.
[0265] FIG. 31 is a diagram showing another example of the connection error prompt process.
[0266] Similar to the examples in FIGS. 29A or 29B, the development tool 50 arranges the washing amount detection function block FB45 after the water supply function block FB44 as shown in FIG. 31. Then, when the development tool 50 determines that the order of the function block FB44 and the function block FB45 corresponds to the non-permissible block order shown in the rule, it performs an error prompt process. Specifically, as shown in FIG. 31, the development tool 50 displays the error message E2 as an error. It is described in this error message E2 that the washing amount detection function block cannot be connected after the water supply function block.
[0267] By presenting such an error, the operator, who is an application developer, can easily rearrange the M function blocks arranged in the non-permissible block order in an order different from the non-permissible block order. Therefore, the safety of the washing machine can be ensured.
[0268] In addition, in the error presentation process, the development tool 50 may further display a plurality of countermeasures for dealing with the error indicated by the error message E2. For example, as shown in FIG. 31, the development tool 50 displays a countermeasure C1 and a countermeasure C2. In this countermeasure C1, it is described that the error is resolved by deleting the function block for detecting the washing amount. Further, the development tool 50 may display the influence received by performing the countermeasure C1 together with the countermeasure C1. For example, the development tool 50 may display, as the influence, that although the detection of the washing amount becomes impossible, the processing time required for the entire washing process is shortened by the amount of the processing for detecting the washing amount being omitted. In addition, in the countermeasure C2, it is described that the error is resolved by arranging the function block for detecting the washing amount before the function block for water supply. Further, similar to the above, the development tool 50 may display the influence received by performing the countermeasure C2 together with the countermeasure C2. For example, the development tool 50 may display, as the influence, that the detection of the washing amount is appropriately performed.
[0269] As described above, in the present embodiment, the development tool 50 presents a plurality of countermeasures for an error. Then, the development tool 50 changes the application by changing the order in which each of the M selection blocks is executed in response to an input operation by an operator who has received the presentation of the error and the plurality of countermeasures.
[0270] For example, the plurality of countermeasures includes at least two of the first countermeasure, the second countermeasure, and the third countermeasure shown below. That is, as described above, the rule prohibits the execution of a predetermined two or more blocks in a predetermined order. The predetermined two or more blocks include, for example, the first block and the second block, and the predetermined order indicates the order in which the second block is located after the first block. In such a case, the first countermeasure described above is a method of adding a new block between the first block and the second block. Specifically, as shown in FIG. 28, the first countermeasure is a method of adding a new stop function block FB43 between the dehydration function block FB41 and the stirring function block FB42. Further, the second countermeasure described above is a method of deleting the first block or the second block. Specifically, as shown in FIG. 29A, it is a method of deleting the water supply function block FB44 or the washing amount detection function block FB45. Further, the third countermeasure described above is a method of changing the order in which the first block is located after the second block, or the order in which another block is located between the first block and the second block. Specifically, as shown in FIG. 29B, the third countermeasure is a method of changing the order in which the washing amount detection function block FB45 is located after the water supply function block FB44 to the order in which the water supply function block FB44 is located after the washing amount detection function block FB45. Or, as shown in FIG. 28, the third countermeasure is a method of changing the order in which the stirring function block FB42 is located after the dehydration function block FB41 to the order in which the stop function block FB43 is located between the dehydration function block FB41 and the stirring function block FB42.
[0271] Furthermore, in the present embodiment, the development tool 50 presents the influence on the object acted upon by the drive of the actuator 22 or the heater 23, or the influence on the application when each of the plurality of countermeasures is performed.
[0272] By presenting such a plurality of countermeasures and the effects thereof, the operator, who is an application developer, can more easily rearrange the M functional blocks arranged in the non-permissible block order in an order different from the non-permissible block order. Therefore, the safety of the washing machine can be ensured.
[0273] Note that the error messages E1 and E2 and the countermeasures C1 to C3 may be displayed in any area of the sequence generation screen. Further, each of these error messages E1 and E2 and the countermeasures C1 to C3 may be shown in association with the non-permissible block order in the rules. Also, in the above example, the error messages E1 and E2 and the countermeasures C1 to C3 are displayed, but the presentation forms thereof are not limited to these examples and may be in any form. For example, an error may be presented by voice.
[0274] Further, when the number of times of presenting an error is K times (K is an integer of 2 or more) or more, the development tool 50 may present a plurality of countermeasures for the error to the operator. That is, when the process of step S51 shown in FIG. 25 is repeated, the development tool 50 may change the presentation form of the error according to the number of repetitions. Specifically, when the number of times of presenting an error is less than K times, the development tool 50 presents the error without presenting the countermeasure, and when the number of times of presenting an error is K times or more, the development tool 50 also displays the countermeasure together with the error.
[0275] FIG. 32 is a diagram showing another presentation example of the countermeasure.
[0276] In the above example, the countermeasure is presented as a message, but the development tool 50 may present the countermeasure in other ways as shown in FIG. 32. For example, the development tool 50 presents the countermeasure in such a way that the functional blocks to be added to avoid errors can be easily selected from the block list. That is, when the development tool 50 determines that the connection of the functional block immediately previously selected and placed in the selection block area D4 is not allowed, it displays the block list as shown in FIG. 32. In this block list, only the functional blocks to be added immediately before the functional block for which the connection is determined not to be allowed are displayed in a manner different from the other functional blocks included in the block list. Specifically, among the block lists of the washing machine, only the stop functional block to be added immediately before is brightly displayed, and the other functional blocks are dimly displayed. Thereby, the operator who is the application developer can easily select the stop functional block and add it to the selection block area D4, and the operability of changing the application can be improved.
[0277] FIG. 33 is a diagram showing still another presentation example of the countermeasure.
[0278] In the above example, the countermeasure is presented only as a message, but the development tool 50 may present the countermeasure using an object such as an arrow as shown in FIG. 33. For example, when the development tool 50 determines that the order of the functional block FB37 and the functional block FB39 corresponds to the non-permissible block order, it presents the countermeasure of reversing the order of those functional blocks with a message and an arrow. Thereby, the operator who is the application developer can easily avoid the error by reversing the order of those functional blocks, and the operability of changing the application can be improved.
[0279] Note that in the present embodiment, regarding the order in which the M functional blocks included in the application are executed, the order of two consecutive functional blocks has been described as an example, but the present invention is not limited to this example, and the order of two or more functional blocks that are executed discontinuously may also be used.
[0280] [5.4 Effects, etc.] As described above, in this embodiment, an environment in which various and safe applications can be developed can be provided by an application including blocks and a rule database. Therefore, it is possible to safely drive the actuator 22 that physically moves or the heater 23 that outputs thermal energy with respect to an application freely developed in that environment. As a result, for example, it becomes possible to create in parallel the development of various applications with a high degree of freedom and the development of a rule database for ensuring safety, and it is possible to develop various and safe applications at an early stage.
[0281] In addition, if this embodiment is combined with any one of Embodiments 1 to 4, even after the application is provided, by changing the rule database, it is also possible to change to an application with more guaranteed safety. Also, even when it becomes necessary to improve a situation not anticipated by the manufacturer in advance, since the rule database is defined independently of the application without changing the various applications themselves, by updating the rule database, it becomes possible to respond to all applications.
[0282] Specifically, the information processing method in this embodiment is an information processing method executed by a computer system such as the development tool 50. In this information processing method, (a) from N (N is an integer of 2 or more) blocks for driving at least one of the actuator 22 and the heater 23 provided in the device 20 which is a device to be controlled, according to an input operation by an operator, each of M (M is an integer of 2 or more and N or less) blocks is selected as a selection block, (b) by setting the order in which at least each of the M selection blocks is executed according to an input operation by an operator, an application including at least the M selection blocks and information on the order is generated, (c) referring to a rule that prohibits execution of a predetermined two or more blocks in a predetermined order, when the information on the order corresponds to the predetermined order, the application is changed by changing the order in which each of the M selection blocks is executed, and (d) the changed application is output.
[0283] According to this, the actuator 22 and / or the heater 23 can be driven based on an application defined by M blocks. Therefore, it becomes possible to develop an application using blocks that abstract the control of the device 20, and various applications can be developed not only by the manufacturer but also by third parties, and these applications can be easily executed by the device 20. Further, at the time of this development, when a predetermined two or more blocks that are executed in a prohibited order are included in the application, the order of the M selection blocks is automatically changed, whereby the application is changed. As a result, the application can be automatically changed to an application that does not include a predetermined two or more blocks that are executed in a prohibited order. Therefore, it is possible to prohibit a predetermined two or more blocks from being executed in a predetermined order. That is, even if an operator who is an application developer erroneously sets the order in which each of the M selection blocks is executed to a prohibited order, it is possible to suppress the generation of an application that cannot safely control the device 20. Therefore, even when an application developer creates or generates an application that emphasizes suitability for users of the actuator 22 and / or the heater 23, the safety of the device 20 controlled by the application can be ensured and the safety can be improved.
[0284] Further, the predetermined two or more blocks include a first block and a second block, the above-mentioned predetermined order indicates the order in which the second block is located after the first block, and in the above (c), when the information of the above-mentioned order corresponds to a predetermined order, a new block may be added between the first block and the second block to change the order in which each of the M selection blocks is executed. Specifically, the predetermined order may indicate the order in which the second block is located immediately after the first block. Further, each of the M selection blocks may include parameters for driving at least one of the actuator 22 and the heater 23.
[0285] Also, the two or more predetermined blocks include a first block and a second block, the predetermined order described above indicates the order in which the second block is located after the first block, and in the above (c), when the information of the above order corresponds to the predetermined order, the order in which each of the M selected blocks is executed may be changed by deleting the first block or the second block.
[0286] Also, the two or more predetermined blocks include a first block and a second block, the predetermined order described above indicates the order in which the second block is located after the first block, and in the above (c), when the information of the above order corresponds to the predetermined order, the order of the first block or the second block is changed to the order in which the first block is located after the second block, or the order in which another block is located between the first block and the second block, so that the order in which each of the M selected blocks is executed may be changed.
[0287] According to these, at the time of application development, by adding a new block, deleting the first block or the second block, or changing the order of the first block or the second block, it is possible to prevent the second block from being executed after the first block. Therefore, the application developer, or the software developer incorporated in the device 20 that controls the actuator 22 and the heater 23, can prevent a plurality of blocks from being executed in an unacceptable order without checking the safety of each application every time.
[0288] Also, the rule may prohibit at least one of the actuator 22 and the heater 23 from reaching the endurance temperature when two or more predetermined blocks are executed in a predetermined order.
[0289] According to this, when the application is executed, it is possible to suppress the actuator 22 and / or the heater 23 from reaching the endurance temperature, and it is possible to improve the safety of the device 20 controlled by the application.
[0290] In addition, the device 20, which is the device to be controlled, includes a housing 21 having an internal space, and the rule may prohibit the internal space from reaching the endurance temperature by executing two or more predetermined blocks in a predetermined order.
[0291] According to this, when the application is executed, it is possible to suppress the internal space of the housing 21 from reaching the endurance temperature, and it is possible to improve the safety of the device 20 controlled by the application.
[0292] In addition, in the above (c), it is determined whether the generated application is an application dedicated to the device to be controlled or a general-purpose application applied to the device to be controlled and devices other than the device to be controlled, and a rule candidate that prohibits two or more predetermined blocks from being executed in a predetermined order is selected. Among them, a rule candidate corresponding to the determination result of the application may be referred to as a rule.
[0293] According to this, it is possible to increase the variations of the application, such as a dedicated application and a general-purpose application. Furthermore, since rules suitable for those variations are referred to, for each of those variations, the application of that variation can be appropriately changed.
[0294] Also, the information processing method in the present embodiment is an information processing method executed by a computer system such as the development tool 50, and may present an error. That is, the information processing method: (a) selects, as selection blocks, each of M (M is an integer of 2 or more and N or less) blocks from N (N is an integer of 2 or more) blocks for driving at least one of the actuator 22 and the heater 23 provided in the device 20 which is a device to be controlled, according to an input operation by an operator; (b) generates an application including at least the M selection blocks and information on the order thereof, by setting the order in which at least each of the M selection blocks is to be executed, according to an input operation by the operator; (c) refers to a rule that prohibits execution of a predetermined two or more blocks in a predetermined order, and when the order information described above corresponds to the predetermined order, presents an error to the operator; (d) changes the application by changing the order in which each of the M selection blocks is to be executed, according to an input operation by the operator who has received the presentation of the error; and (e) outputs the changed application.
[0295] According to this, when the operator who is an application developer erroneously sets an unacceptable order for the order in which each of the M selection blocks is to be executed, an error is presented, so that it is possible to suppress generation of an application that cannot safely control the device 20. That is, the same effect as when the application is automatically changed as described above can be achieved.
[0296] Also, in the above (c), further, a plurality of countermeasures against the error may be presented, and in the above (d), the application may be changed by changing the order in which each of the M selection blocks is to be executed, according to an input operation by the operator who has received the presentation of the error and the plurality of countermeasures. That is, the information processing method in the present embodiment is an information processing method executed by a computer system such as the development tool 50, and may present a plurality of countermeasures at the same time as presenting an error.
[0297] According to this, an operator who has confirmed the error prompt can reduce the trouble of changing the order in which each of the M selection blocks is executed.
[0298] In addition, the above-described two or more predetermined blocks include a first block and a second block, and the predetermined order indicates the order in which the second block is located after the first block. In this case, the above-described plurality of countermeasures may include at least two of a first countermeasure of adding a new block between the first block and the second block, a second countermeasure of deleting the first block or the second block, and a third countermeasure of changing the order in which the first block is located after the second block or the order in which another block is located between the first block and the second block.
[0299] Thereby, the operator can change the order in which each of the M selection blocks is executed while appropriately avoiding an error according to any one of the plurality of countermeasures. Further, when the operator selects a countermeasure, the operator can select an option (that is, a countermeasure) that satisfies the intention of creating an application.
[0300] In addition, in the above (c), further, the influence on the object acted on by the driving of the actuator 22 or the heater 23, or the influence on the application when each of the plurality of countermeasures is performed may be presented. That is, the information processing method in the present embodiment is an information processing method executed by a computer system such as the development tool 50, and may present a countermeasure against an error and simultaneously present the influence on the application by implementing the countermeasure.
[0301] According to this, when the operator selects a countermeasure, the operator can intuitively select in accordance with the intention of creating an application.
[0302] Also, in this information processing method, after the above (d), the above (c) and (d) are repeatedly executed, and (f) when the number of times of error presentation is K times or more (K is an integer of 2 or more), a plurality of countermeasures for the error may be presented to the operator.
[0303] According to this, when the error presentation is repeated, a plurality of countermeasures are presented. Therefore, the operator can easily change the order in which each of the M selection blocks is executed according to those countermeasures, and a safe application can be generated more easily.
[0304] (Embodiment 6) In the above Embodiments 1 to 4, the parameters of the blocks included in the already distributed application are changed before the application is executed. Also, in Embodiment 5, before the application is distributed, that is, at the stage where the application is developed or produced, the blocks included in the application are changed. On the other hand, in the present embodiment, when the already distributed application is being executed, the blocks included in the application are changed. Note that the above blocks are functional blocks. Hereinafter, the present embodiment will be described in detail focusing on the points different from the above Embodiments 1 to 5. Among the components in the present embodiment, the same components as those in Embodiments 1 to 5 are denoted by the same reference numerals as those in Embodiments 1 to 5, and detailed description thereof will be omitted.
[0305] [6.1 Configuration] FIG. 34 is a block diagram showing an example of the apparatus 20 in Embodiment 6.
[0306] The apparatus 20 in the present embodiment is an example of a driving device, and includes a control unit 24, a driving unit W, a first sensor 25a, a second sensor 25b, and a memory 26.
[0307] The drive unit W includes an actuator 22 and a heater 23. In the example shown in FIG. 34, the drive unit W includes both the actuator 22 and the heater 23, but it may include at least one of them.
[0308] The control unit 24 acquires an application including a plurality of functional blocks and stores the acquired application in the memory 26. For example, the control unit 24 acquires an application from the sequence manager 100 or the device manager 200 as in the first to fourth embodiments. Further, the control unit 24 controls the drive unit W according to the plurality of functional blocks by executing the application. Each of the plurality of functional blocks in the present embodiment has an end condition for driving the drive unit W by the functional block. Note that these functional blocks are the same blocks as those in the first to fifth embodiments.
[0309] The memory 26 is a recording medium for storing an application, specifically, a RAM (Random Access Memory), a ROM (Read Only Memory), a semiconductor memory, or the like. Note that such a memory 26 may be volatile or non-volatile.
[0310] The first sensor 25a detects a first driving state of the drive unit W. For example, the first sensor 25a is a timer. That is, when the drive unit W is driving according to the first functional block among the plurality of functional blocks, the first sensor 25a detects the driving duration of the drive unit W according to the first functional block as the first driving state. Further, for example, the first sensor 25a is a measuring instrument such as a weighing scale or a flow meter. When the drive unit W is driving according to the first functional block among the plurality of functional blocks, the first sensor 25a detects the amount of a substance (for example, a detergent) moved from one location (for example, a detergent holding tank) to another location (for example, a washing tub) by the drive of the drive unit W according to the first functional block as the first driving state.
[0311] The second sensor 25b detects the second driving state of the driving unit W. For example, the second sensor 25b detects, as the second driving state, the temperature, rotational speed, number of spillages, water level, or electrical conductivity generated by the driving of the driving unit W.
[0312] Here, when a predetermined condition is satisfied during the execution of the application, the control unit 24 in the present embodiment adds a functional block that is not included in the original application. Then, including the added functional block, the driving unit W is controlled according to the unexecuted functional blocks on the application. The case where the predetermined condition is satisfied means that during the execution of the first functional block among a plurality of functional blocks, when the first driving state detected by the first sensor 25a satisfies the end condition of the first functional block, the second driving state detected by the second sensor 25b satisfies the block addition condition. When such a case occurs, the control unit 24 adds a new functional block so that the execution order (sequence) of one or more subsequent functional blocks that are subsequently executed after the first functional block among the plurality of functional blocks becomes a predetermined order.
[0313] The predetermined order is, for example, the order in which the newly added functional block is executed before a specific functional block that is a subsequent block in which the driving of the driving unit W is not permitted in a state where the second driving state among a plurality of subsequent functional blocks satisfies the block addition condition. Therefore, when there are a plurality of subsequent functional blocks and there is a subsequent functional block before the specific functional block, a new functional block is added at least on one of the front and the back of the subsequent functional block before the specific functional block. Also, when there are a plurality of newly added functional blocks, the positions where each newly added functional block is added may be different. The above-mentioned specific functional block may be referred to as a specific block, a second functional block, or simply a second block.
[0314] In an application where the first functional block and the second functional block are consecutive, the new functional block is added immediately after the first functional block and immediately before the second functional block. After the end of the first block, the control unit 24 controls the drive unit W according to one or more subsequent blocks and the new block in a predetermined order, including the new functional block added as described above.
[0315] As described above, in this embodiment, when the driving of the drive unit W according to the first functional block ends, if the second driving state satisfies the block addition condition, a new functional block is added after the first functional block and before the second functional block. For example, in the second driving state of the drive unit W, when driving the drive unit W according to the second functional block may cause danger, a new functional block that can improve the driving state can be automatically added. Since this second driving state varies depending on the usage pattern of the device 20 by the user, it may be difficult to make various settings so that these driving states do not occur during the development of the application.
[0316] However, in this embodiment, during the execution of the application, the second driving state is detected, and a new functional block is added according to the second driving state, so that the occurrence of danger can be appropriately suppressed. As a result, even when obtaining a variety of applications and controlling the drive unit W according to the application, the safety of the device 20 controlled by the application can be ensured and the safety can be improved.
[0317] [6.2 Processing] FIG. 35 is a flowchart showing an example of the processing operation of the device 20 in this embodiment.
[0318] (Step S61) First, the control unit 24 of the device 20 acquires an application.
[0319] (Step S62) Next, the control unit 24 of the apparatus 20 performs application execution processing. That is, the control unit 24 executes each functional block included in the acquired application.
[0320] FIG. 36 is a flowchart showing an example of application execution processing by the apparatus 20 in the present embodiment.
[0321] (Step S62a) First, the control unit 24 controls the drive unit W according to the functional block by executing the functional block included in the application. That is, the drive unit W is driven.
[0322] (Step S62b) Next, the control unit 24 acquires the first driving state detected by the first sensor 25a, and determines whether or not the first driving state satisfies the end condition of the functional block being executed in step S62. Here, when the control unit 24 determines that the first driving state does not satisfy the end condition (No in step S62b), the process of step S62a is continued.
[0323] (Step S62c) Next, when the control unit 24 determines that the first driving state satisfies the end condition (Yes in step S62b), it determines whether or not a subsequent functional block following the functional block executed in step S62 is included in the application. Here, when the control unit 24 determines that the subsequent functional block is not included in the application (No in step S62c), the application execution processing is terminated.
[0324] (Step S62d) Next, when the control unit 24 determines that a subsequent functional block is included (Yes in step S62c), it acquires the second driving status detected by the second sensor 25b. Then, the control unit 24 determines whether or not the second driving status satisfies the block addition condition. Here, when the control unit 24 determines that the second driving status does not satisfy the block addition condition (No in step S62d), it executes the process of step S62f.
[0325] (Step S62e) Next, when the control unit 24 determines that the second driving status satisfies the block addition condition (Yes in step S62d), it adds the above-described new functional block. At this time, the new functional block is added so that the order of the new functional block and the subsequent functional block is the above-described predetermined order.
[0326] (Step S62f) After the process of step S62e is performed, the control unit 24 executes the functional block corresponding to the next order of the functional block executed in step S62a in the predetermined order. Further, when the control unit 24 determines in step S62d that the second driving status does not satisfy the block addition condition (No in step S62d), it executes the next functional block (that is, the functional block that is executed earliest among the subsequent functional blocks).
[0327] As described above, in the present embodiment, the functional block to be added does not have to be added in the next order of the functional block whose end condition has been determined as long as it is after the functional block whose end condition has been determined. That is, the functional block whose end condition has been determined is the functional block executed in step S62a and is the above-described first functional block. And the functional block to be added does not have to be added immediately as long as it is in an order to be executed before the above-described second functional block.
[0328] [6.3 Specific Example] FIG. 37 is a diagram showing an example of addition of functional blocks in the present embodiment. In the example of FIG. 37, the apparatus 20 is a washing machine.
[0329] The application includes, for example, as shown in FIG. 37, a water supply functional block FB11 and a dehydration functional block FB12. The control unit 24 causes the drive unit W to perform water supply by executing these functional blocks in the order of the functional block FB11 and the functional block FB12, and then causes dehydration to be performed.
[0330] Here, when the control unit 24 starts executing the functional block FB11, for example, the first sensor 25a which is a timer detects the water supply continuation time taken for water supply by the drive unit W according to the functional block FB11 as the first driving state. The second sensor 25b detects the water level in the washing tub of the apparatus 20 as the second driving state. In the example of FIG. 37, the end condition is that the water supply continuation time reaches the scheduled water supply completion time by the drive unit W according to the functional block FB11. For example, the scheduled water supply completion time is 3 minutes. The block addition condition is that the water level is equal to or higher than a threshold value. The threshold value is, for example, 5 mm. In reality, since complete drainage is not possible, an appropriate threshold value may be set within a range such as several mm to several tens of mm in consideration of such an error range.
[0331] When a predetermined condition is satisfied after the execution of function block FB11 starts, control unit 24 adds a new function block FB13 before dehydration by drive unit W according to function block FB12. In the example of FIG. 37, the order after function block FB11 and before function block FB12 is only between them, but function block FB13 may be added anywhere as long as it is before function block FB12. That is, if there are other function blocks between function block FB11 and function block FB12, it may be added before or after the other function blocks. On the other hand, as in this example, a new function block FB13 may be added before function block FB12 that is continuous with function block FB11. This is the same in other examples described below.
[0332] During the execution of function block FB11, control unit 24 determines whether the water supply duration detected by the first sensor 25a satisfies the end condition of function block FB11. Specifically, control unit 24 determines whether the water supply duration has reached the scheduled completion time of water supply by drive unit W according to function block FB11. And when control unit 24 determines that the water supply duration satisfies the end condition, that is, the water supply duration has reached the scheduled completion time, it then determines whether the water level in the washing tub of device 20 detected by the second sensor 25b satisfies the block addition condition. Specifically, control unit 24 determines whether the water level is 5 mm or less. And when control unit 24 determines that the water level satisfies the block addition condition, that is, the water level is 5 mm or less, it adds function block FB13. That is, control unit 24 updates the application by adding function block FB13 before function block FB12 that follows function block FB11 among the plurality of function blocks included in the application. In the example of FIG. 37, function block FB13 is a function block for draining water. For example, control unit 24 adds function block FB13 so as to drain water before dehydrating. And after the end of function block FB21, control unit 24 controls drive unit W according to function blocks FB12 and FB13.
[0333] Thus, in this embodiment, when there is a case where danger may occur if the drive unit W is driven by dehydration of the functional block FB12 at a water level equal to or higher than the threshold value, it is possible to automatically execute drainage before the dehydration. Since the water level of the apparatus 20 varies depending on the amount of water supplied by the clothes put into the apparatus 20, it may be difficult to realize a water level at which no danger occurs in advance when developing an application. However, in this embodiment, during the execution of the application, the water level is detected, and additional drainage is executed according to the water level, so that the occurrence of danger can be appropriately suppressed. That is, the water level can be sufficiently lowered by drainage.
[0334] FIG. 38 is a diagram showing another example of addition of a functional block in this embodiment. In the example of FIG. 38, the apparatus 20 is a clothes dryer, but may be a washing machine or other equipment as long as it has the function of a clothes dryer.
[0335] The application includes, for example, as shown in FIG. 38, a drying functional block FB21 and a door lock functional block FB22. The control unit 24 causes the drive unit W to perform drying by executing these functional blocks in the order of the functional block FB21 and the functional block FB22, and then causes the door lock to be turned off (that is, unlocked).
[0336] Here, when the control unit 24 starts the execution of the functional block FB21, for example, the first sensor 25a which is a timer detects the drying duration of the clothes by the drive unit W according to the functional block FB21 as the first driving situation. The second sensor 25b detects the internal temperature of the apparatus 20 as the second driving situation. In the example of FIG. 38, the end condition is that the drying duration reaches the scheduled completion time of drying of the clothes by the drive unit W according to the functional block FB21. For example, the scheduled completion time of drying is 1 hour. The block addition condition is that the internal temperature is equal to or higher than the threshold value. The threshold value is, for example, 70°C.
[0337] When a predetermined condition is satisfied after the execution of the function block FB21 starts, the control unit 24 adds a new function block FB23 before executing the unlocking of the door by the drive unit W according to the function block FB22. That is, during the execution of the function block FB21, the control unit 24 determines whether the drying duration detected by the first sensor 25a satisfies the end condition of the function block FB21. Specifically, the control unit 24 determines whether the drying duration has reached the scheduled completion time of the drying of the clothing by the drive unit W according to the function block FB21.
[0338] Then, when the control unit 24 determines that the drying duration satisfies the end condition, that is, the drying duration has reached the scheduled completion time, the control unit 24 determines whether the internal temperature of the device 20 detected by the second sensor 25b at that time satisfies the block addition condition. Specifically, the control unit 24 determines whether the internal temperature is 70 °C or higher. And when the control unit 24 determines that the internal temperature satisfies the block addition condition, that is, the internal temperature is 70 °C or higher, the control unit 24 adds the function block FB23. That is, the control unit 24 updates the application by adding the function block FB23 before the function block FB22 following the function block FB21 among the plurality of function blocks included in the application. In the example of FIG. 38, the function block FB23 is a function block for performing air blowing. For example, the control unit 24 adds the function block FB23 so as to perform air blowing before turning off the door lock. Then, after the end of the function block FB21, the control unit 24 controls the drive unit W according to the function block FB22 and the function block FB23.
[0339] As described above, in this embodiment, when driving the drive unit W with the door lock of the functional block FB22 turned off at an internal temperature equal to or higher than the threshold value may cause danger, it is possible to automatically perform air blowing before turning off the door lock. Since the internal temperature of the apparatus 20 varies depending on the amount of clothing placed inside the apparatus 20, it may be difficult to realize an internal temperature that does not cause danger in advance during the development of the application. However, in this embodiment, during the execution of the application, the internal temperature is detected, and air blowing is additionally executed according to the internal temperature, so that the occurrence of danger can be appropriately suppressed. That is, the internal temperature can be sufficiently reduced by air blowing.
[0340] FIG. 39 is a diagram showing still another example of the addition of functional blocks in the sixth embodiment. In the example of FIG. 39, the apparatus 20 is a washing machine.
[0341] The application includes, for example, as shown in FIG. 39, a stirring functional block FB31 and a water supply functional block FB32. The control unit 24 causes the drive unit W to perform stirring by executing these functional blocks in the order of the functional block FB31 and the functional block FB32, and then causes water supply to be executed. Note that the following description can also realize the same operation in an application including a functional block for draining instead of the functional block FB32 for supplying water. That is, the following explains that the same operation is performed if the subsequent functional block performs water supply or drainage. Here, as an example, an example in which the subsequent functional block performs water supply will be described.
[0342] Here, when the control unit 24 starts the execution of the functional block FB31, for example, the first sensor 25a which is a timer detects the stirring duration applied to the stirring by the drive unit W according to the functional block FB31 as the first driving state. The second sensor 25b detects the rotation speed of the stirring as the second driving state. The rotation speed of the stirring is, for example, the rotation speed of the washing tub or the drum. In the example of FIG. 39, the end condition is that the stirring duration reaches the scheduled completion time of the stirring by the drive unit W according to the functional block FB31. For example, the scheduled completion time of the stirring is 24 seconds. The block addition condition is that the rotation speed is equal to or higher than the threshold value. The threshold value is, for example, 3 rpm.
[0343] When a predetermined condition is satisfied after the execution of function block FB31 starts, the control unit 24 adds a new function block FB33 before the water supply by the drive unit W according to function block FB32 is executed. That is, during the execution of function block FB31, the control unit 24 determines whether the stirring duration detected by the first sensor 25a satisfies the end condition of function block FB31. Specifically, the control unit 24 determines whether the stirring duration has reached the scheduled completion time of the stirring by the drive unit W according to function block FB31. And when the control unit 24 determines that the stirring duration satisfies the end condition, that is, the stirring duration has reached the scheduled completion time, it determines whether the rotation speed of the stirring detected by the second sensor 25b at that time satisfies the block addition condition. Specifically, the control unit 24 determines whether the rotation speed of the stirring is 3 rpm or more. And when the control unit 24 determines that the rotation speed of the stirring satisfies the block addition condition, that is, the rotation speed of the stirring is 3 rpm or more, it adds function block FB33. That is, the control unit 24 updates the application by adding function block FB33 before function block FB32 that follows function block FB31 among the plurality of function blocks included in the application. In the example of FIG. 39, function block FB33 is a function block that performs standby (that is, a state where the driving of drive unit W is not permitted). For example, the control unit 24 adds function block FB33 so as to perform standby before performing water supply. And after the end of function block FB31, the control unit 24 controls drive unit W according to function block FB32 and function block FB33.
[0344] As described above, in this embodiment, when there is a risk that the drive unit W may be driven by the water supply of the functional block FB32 at a rotational speed equal to or higher than the threshold value, it is possible to automatically execute a standby before the water supply. When the agitation of the functional block FB31 ends, the drum of the washing machine or the like may rotate due to inertia. Since the rotational speed varies depending on the amount of clothing placed inside the apparatus 20 and the like, it may be difficult to realize a rotational speed at which no danger occurs in advance during the development of the application. However, in this embodiment, even when the agitation of the functional block FB31 has ended and a rotational speed equal to or higher than the threshold value is detected, additional standby is executed according to the rotational speed, so that the occurrence of danger can be appropriately suppressed. That is, the rotational speed due to inertia can be sufficiently reduced by the standby.
[0345] FIG. 40 is a diagram showing still another example of the addition of functional blocks in Embodiment 6. In the example of FIG. 40, the apparatus 20 is a washing machine.
[0346] The application includes, for example, as shown in FIG. 40, an agitation functional block FB41 and a water supply functional block FB42. The control unit 24 causes the drive unit W to perform agitation and then perform water supply by executing these functional blocks in the order of the functional block FB41 and the functional block FB42. Note that the following description can also realize the same operation in an application including a functional block that performs drainage instead of the functional block FB42 that performs water supply. That is, the following describes that the same operation is performed if the subsequent functional block performs water supply or drainage. Here, as an example, an example in which the subsequent functional block performs water supply will be described.
[0347] Here, when the control unit 24 starts the execution of the function block FB41, for example, the first sensor 25a which is a timer detects the stirring duration applied to the stirring by the drive unit W according to the function block FB41 as the first driving state. The second sensor 25b detects the electrical conductivity as the second driving state. The electrical conductivity is, for example, the electrical conductivity of the water stored in the washing tub or the drum. In the example of FIG. 40, the end condition is that the stirring duration reaches the scheduled completion time of the stirring by the drive unit W according to the function block FB41. For example, the scheduled completion time of the stirring is 10 minutes. The block addition condition is that the electrical conductivity is equal to or greater than the threshold value. The threshold value is, for example, 6 mS / cm. The electrical conductivity corresponds to the dirt of the clothes being washed, and it can be said that the larger the value, the greater the degree of dirt of the clothes.
[0348] When a predetermined condition is satisfied after the execution of function block FB41 starts, the control unit 24 adds a new function block FB43 and a function block FB44 before the water supply by the drive unit W according to the function block FB42 is executed. That is, during the execution of the function block FB41, the control unit 24 determines whether the stirring duration detected by the first sensor 25a satisfies the end condition of the function block FB41. Specifically, the control unit 24 determines whether the stirring duration has reached the scheduled completion time of the stirring by the drive unit W according to the function block FB41. When the control unit 24 determines that the stirring duration satisfies the end condition, that is, the stirring duration has reached the scheduled completion time, it determines whether the electrical conductivity detected by the second sensor 25b at that time satisfies the block addition condition. Specifically, the control unit 24 determines whether the electrical conductivity is 6 mS / cm or more. When the control unit 24 determines that the electrical conductivity satisfies the block addition condition, that is, the electrical conductivity is 6 mS / cm or more, it adds the function block FB43 and the function block FB44. That is, the control unit 24 adds the function block FB43 and the function block FB44 before the function block FB42 following the function block FB41 among the plurality of function blocks included in the application to update the application. In the example of FIG. 40, the function block FB43 is a function block for performing detergent input. Also, in the example of FIG. 40, the function block FB44 is a function block for performing stirring. For example, the control unit 24 adds the function block FB43 and the function block FB44 so as to perform detergent input and stirring before performing water supply. Then, after the end of the function block FB41, the control unit 24 controls the drive unit W according to the function block FB42, the function block FB43, and the function block FB43.
[0349] As described above, in this embodiment, when the operation of removing dirt is not sufficiently performed because the electrical conductivity equal to or higher than the threshold value is detected, before driving the driving unit W such as water supply of the subsequent functional block FB42, it is possible to automatically execute the detergent input and stirring. When the stirring of the functional block FB41 is completed, usually, although the operation of removing dirt is considered to be completed and the washing proceeds, the operation of removing dirt may not be sufficient depending on the type and degree of dirt. However, in this embodiment, during the execution of the application, the electrical conductivity is detected, and the detergent input and stirring are additionally executed according to the detected electrical conductivity, so that the operation of removing dirt can be appropriately executed. That is, the dirt indicated by the electrical conductivity can be sufficiently removed by the detergent input and stirring.
[0350] In the above description, an example of adding a functional block for detergent input and stirring to more surely remove dirt has been described. However, depending on the degree of dirt, it may be sufficient to add a functional block for stirring and not perform detergent input. Even when the stirring by the driving unit W according to the functional block FB41 is simply insufficient, an increase in electrical conductivity may occur. As described above, when sufficient effects can be expected only by adding a functional block for stirring, there is no need to add a functional block for detergent input. It is preferable to use another threshold value provided for the value of the electrical conductivity to determine whether to add a functional block for detergent input. On the other hand, when adding only a stirring block, for example, a functional block having a different type of stirring from the stirring by the functional block FB41 may be added, such as stirring at a rotational speed higher than that of the stirring by the driving unit W according to the functional block FB41 or setting the stirring time to a long time.
[0351] FIG. 41 is a diagram showing still another example of adding a functional block in Embodiment 6. In the example of this FIG. 41, the apparatus 20 is a washing machine.
[0352] As shown in, for example, FIG. 41, the application includes a detergent input function block FB51 and a stirring function block FB52. The control unit 24 causes the drive unit W to perform detergent input and then perform stirring by executing these function blocks in the order of the function block FB51 and the function block FB52.
[0353] Here, when the control unit 24 starts executing the function block FB51, for example, the first sensor 25a which is a measuring instrument detects the detergent input amount in the detergent input by the drive unit W according to the function block FB51 as the first driving condition. The second sensor 25b detects the water level as the second driving condition. In the example of FIG. 41, the end condition is that the input amount reaches the planned input amount of the detergent input by the drive unit W according to the function block FB51. For example, the planned input amount of the detergent input is 40 mL. The block addition condition is that the water level is equal to or higher than the threshold value. The threshold value is, for example, the height position of 60% with respect to the height of the washing tub. When the washing machine 20 is a drum washing machine, the threshold value is, for example, the height position of 20% with respect to the height of the drum. Such a threshold value is appropriately set according to the stirring mode of the drive unit W according to the function block FB52 because it corresponds to the reach position of the foam generated by the stirring of the drive unit W according to the function block FB52.
[0354] When a predetermined condition is satisfied after the execution of function block FB51 starts, the control unit 24 adds a new function block FB53 before the stirring by the drive unit W according to the function block FB52 is executed. That is, during the execution of function block FB51, the control unit 24 determines whether the input amount detected by the first sensor 25a satisfies the end condition of function block FB51. Specifically, the control unit 24 determines whether the input amount has reached the planned input amount of the detergent input by the drive unit W according to the function block FB51. When the control unit 24 determines that the input amount satisfies the end condition, that is, the input amount has reached the planned input amount, it then determines whether the water level detected by the second sensor 25b satisfies the block addition condition. Specifically, the control unit 24 determines whether the water level is at a height position of 60% or more relative to the height of the washing tub. When the control unit 24 determines that the water level satisfies the block addition condition, that is, the water level is at a height position of 60% or more relative to the height of the washing tub, it adds the function block FB53. That is, the control unit 24 adds the function block FB53 before the function block FB52 following the function block FB51 among the plurality of function blocks included in the application to update the application. In the example of FIG. 41, the function block FB53 is a function block for draining water. For example, the control unit 24 adds the function block FB53 so as to drain water before performing stirring. Then, after the end of function block FB51, the control unit 24 controls the drive unit W according to function block FB52 and function block FB53.
[0355] As described above, in this embodiment, when there is a possibility of danger if the drive unit W is driven by the agitation of the functional block FB52 at a water level equal to or higher than the threshold value, it is possible to automatically execute drainage before the agitation. Since the water level of the apparatus 20 varies depending on the amount of water supplied by the clothing placed inside the apparatus 20, it may be difficult to realize a water level at which no danger occurs in advance during the development of the application. However, in this embodiment, during the execution of the application, the water level is detected, and additional drainage is executed according to the water level, so that the occurrence of danger can be appropriately suppressed. That is, the water level can be sufficiently lowered by drainage.
[0356] FIG. 42 is a diagram showing still another example of the addition of functional blocks in Embodiment 6. In the example of FIG. 42, the apparatus 20 is a washing machine.
[0357] The application includes, for example, as shown in FIG. 42, a water supply functional block F61, a detergent input functional block FB62, and an agitation functional block FB63. The control unit 24 causes the drive unit W to execute water supply, then execute detergent input, and then execute agitation by executing these functional blocks in the order of the functional block FB61, the functional block FB62, and the functional block FB63.
[0358] Here, when the control unit 24 starts the execution of the functional block FB61, for example, the first sensor 25a which is a timer detects the water supply duration applied to the water supply by the drive unit W according to the functional block FB61 as the first driving state. The second sensor 25b detects the water level in the washing tub of the apparatus 20 as the second driving state. In the example of FIG. 42, the end condition is that the water supply duration reaches the scheduled completion time of the water supply by the drive unit W according to the functional block FB61. For example, the scheduled completion time of the water supply is 3 minutes. The block addition condition is that the water level is equal to or higher than the threshold value. The threshold value is, for example, the height position of 60% with respect to the height of the washing tub. In addition, when the washing machine which is the apparatus 20 is a drum type washing machine, the threshold value is, for example, the height position of 20% with respect to the height of the drum. Such a threshold value is appropriately set according to the mode of agitation of the drive unit W according to the functional block FB63 because it corresponds to the reach position of the bubbles generated by the agitation of the drive unit W according to the functional block FB63.
[0359] When a predetermined condition is satisfied after the execution of function block FB61 starts, control unit 24 adds a new function block FB64 before stirring by drive unit W according to function block FB63 is executed. That is, during the execution of function block FB61, control unit 24 determines whether the water supply duration detected by the first sensor 25a satisfies the end condition of function block FB61. Specifically, control unit 24 determines whether the water supply duration has reached the scheduled completion time of the water supply by drive unit W according to function block FB61. When control unit 24 determines that the water supply duration satisfies the end condition, that is, the water supply duration has reached the scheduled completion time, it then determines whether the water level detected by the second sensor 25b satisfies the block addition condition. Specifically, control unit 24 determines whether the water level is at a height position of 60% or more relative to the height of the washing tub. When control unit 24 determines that the water level satisfies the block addition condition, that is, the water level is at a height position of 60% or more relative to the height of the washing tub, it adds function block FB64. That is, control unit 24 updates the application by adding function block FB64 before function block FB63 that follows function block FB51 among the plurality of function blocks included in the application. In the example of FIG. 42, function block FB64 is a function block for draining water. For example, control unit 24 adds function block FB64 so as to drain water before performing stirring. Then, after the end of function block FB61, control unit 24 controls drive unit W according to function block FB62, function block FB63, and function block FB64.
[0360] In the example of FIG. 42, the functional block FB64 is added between the functional block FB62 and the functional block FB63 that follow the functional block FB61. Therefore, after the end of the functional block FB61, each functional block is executed in the order of the functional block 62, the functional block 64, and the functional block 63. On the other hand, the functional block FB64 may be added at any position as long as it is before the functional block FB63 corresponding to the specific block with respect to the functional block FB62 and the functional block FB63 which are examples of subsequent blocks following the functional block FB61. For example, the functional block FB64 may be added before the functional block FB62. In this case, after the end of the functional block FB61, each functional block is executed in the order of the functional block 64, the functional block 62, and the functional block 63.
[0361] Thus, in this embodiment, when there is a case where danger may occur if the drive unit W is driven by the agitation of the functional block FB63 at a water level equal to or higher than the threshold value, draining can be automatically executed before the agitation. Since the water level of the apparatus 20 varies depending on the amount of water supplied by the clothing placed inside the apparatus 20, it may be difficult to realize a water level at which no danger occurs in advance during the development of the application. However, in this embodiment, during the execution of the application, the water level is detected, and draining is additionally executed according to the water level, so that the occurrence of danger can be appropriately suppressed. That is, the water level can be sufficiently lowered by draining.
[0362] FIG. 43 is a diagram showing still another example of the addition of functional blocks in Embodiment 6. In the example of this FIG. 43, the apparatus 20 is a rice cooker.
[0363] As shown in FIG. 43 for example, the application includes a pre-cooking function block FB71, a cooking-up function block FB72, and a boiling function block FB73. The control unit 24 causes the drive unit W to perform pre-cooking, then cooking-up, and then boiling by executing these function blocks in the order of the function block FB71, the function block FB72, and the function block FB73. Note that pre-cooking is a soaking process for allowing rice to absorb water, cooking-up is a process of heating to the boiling point all at once with strong heat, and boiling is a process of maintaining boiling with optimal heating power.
[0364] Here, when the control unit 24 starts executing the function block FB71, for example, a first sensor 25a which is a timer detects the pre-cooking duration taken by the drive unit W according to the function block FB71 as a first driving state. A second sensor 25b detects the number of spillage times as a second driving state. For example, the second sensor 25b includes a spillage sensor that detects spillage and a counter that counts the number of spillage times detected by the spillage sensor. The spillage sensor has, for example, a PTC thermistor, and detects the spillage by a temperature drop due to contact of bubbles of spillage or the like with the PTC thermistor. In the example of FIG. 43, the end condition is that the pre-cooking duration reaches the scheduled completion time of pre-cooking by the drive unit W according to the function block FB71. For example, the scheduled completion time of pre-cooking is 30 minutes. The block addition condition is that the number of spillage times during pre-cooking is equal to or more than a threshold value. The threshold value is, for example, 1 time.
[0365] When a predetermined condition is satisfied after the execution of function block FB71 starts, the control unit 24 adds a new function block FB74 before the cooking-up by the drive unit W according to the function block FB72 is executed. That is, during the execution of the function block FB71, the control unit 24 determines whether the pre-cooking duration detected by the first sensor 25a satisfies the end condition of the function block FB71. Specifically, the control unit 24 determines whether the pre-cooking duration has reached the scheduled completion time of the pre-cooking by the drive unit W according to the function block FB71. Then, when the control unit 24 determines that the pre-cooking duration satisfies the end condition, that is, when it determines that the pre-cooking duration has reached the scheduled completion time, it determines whether the number of spillage detections detected by the second sensor 25b at that time satisfies the block addition condition. Specifically, the control unit 24 determines whether the number of spillage detections is 1 or more. And when the control unit 24 determines that the number of spillage detections satisfies the block addition condition, that is, when it determines that the number of spillage detections is 1 or more, it adds the function block FB74. That is, the control unit 24 updates the application by adding the function block FB74 before the function block FB72 that follows the function block FB71 among the plurality of function blocks included in the application. In the example of FIG. 43, the function block FB74 is a function block that performs standby. For example, the control unit 24 adds the function block FB74 so as to perform standby before performing cooking-up. Then, after the end of the function block FB71, the control unit 24 controls the drive unit W according to the function block FB72, the function block FB73, and the function block FB74.
[0366] As described above, in the present embodiment, when there is a possibility that a danger may occur if the drive unit W is driven by the boiling in the functional block FB72 at the spillage times equal to or greater than the threshold value, it is possible to automatically execute waiting before the boiling. Since the spillage times vary depending on the amounts of rice and water put into the apparatus 20 and further their temperatures, it may be difficult to realize the spillage times that do not cause danger in advance at the time of application development. However, in the present embodiment, when the spillage times equal to or greater than the threshold value are detected, waiting is additionally executed according to the spillage times, so that the occurrence of danger can be appropriately suppressed.
[0367] Furthermore, when a predetermined condition is satisfied after the execution of function block FB72 starts, the control unit 24 may add a new function block FB74 before the boiling by the drive unit W according to function block FB73 is executed. That is, during the execution of function block FB72, the control unit 24 determines whether the cooking continuation time detected by the first sensor 25a satisfies the end condition of function block FB72. Specifically, the control unit 24 determines whether the cooking continuation time has reached the scheduled completion time of the cooking by the drive unit W according to function block FB72. And when the control unit 24 determines that the cooking continuation time satisfies the end condition, that is, the cooking continuation time has reached the scheduled completion time, it determines whether the number of spillage times detected by the second sensor 25b at that time satisfies the block addition condition. Specifically, the control unit 24 determines whether the number of spillage times during cooking is 1 or more. And when the control unit 24 determines that the number of spillage times satisfies the block addition condition, that is, the number of spillage times is 1 or more, it adds function block FB74. That is, the control unit 24 updates the application by adding function block FB74 before function block FB73 that follows function block FB72 among the plurality of function blocks included in the application. For example, the control unit 24 adds function block FB74 so as to perform standby before performing boiling. And after the end of function block FB72, the control unit 24 controls the drive unit W according to function block FB73 and function block FB74.
[0368] Therefore, between function block FB72 and function block FB73 as well, similar to between function block FB71 and function block FB72, standby can be automatically executed, and the occurrence of danger can be appropriately suppressed.
[0369] FIG. 44 is a diagram showing still another example of the addition of function blocks in the sixth embodiment. In the example of this FIG. 44, the apparatus 20 is an oven, but it may be a range oven as long as it has the function of an oven, or may be other equipment.
[0370] The application includes, for example, as shown in FIG. 44, a baking function block FB81 and another baking function block FB82. The control unit 24 causes the driving unit W to perform baking in the first mode and further perform baking in the second mode by executing these function blocks in the order of the function block FB81 and the function block FB82. The first mode and the second mode may be the same or different. Also, the baking process is a process of baking the food ingredients installed inside the apparatus 20 by a heater.
[0371] Here, when the control unit 24 starts executing the function block FB81, for example, the first sensor 25a which is a timer detects the baking duration of the baking process by the driving unit W according to the function block FB81 as the first driving situation. The second sensor 25b detects the temperature inside the cabinet of the apparatus 20 as the second driving situation. Note that the temperature inside the cabinet is the internal temperature of the apparatus 20. In the example of FIG. 44, the end condition is that the baking duration reaches the scheduled completion time of the baking process by the driving unit W according to the function block FB81. For example, the scheduled completion time of the baking process is 40 minutes. Note that the scheduled completion time is also called the execution time. The block addition condition is that the difference between the scheduled rising temperature that rises due to the baking process of the food ingredients by the driving unit W according to the function block FB82 and the limit temperature of the apparatus 20 is equal to or lower than the temperature inside the cabinet. For example, the scheduled rising temperature is 60°C and the limit temperature is 250°C. Note that the difference between the above-mentioned scheduled rising temperature and the limit temperature is hereinafter also called the differential temperature.
[0372] When a predetermined condition is satisfied after the execution of function block FB81 starts, control unit 24 adds a new function block FB83 before the baking process by drive unit W according to function block FB82 is executed. That is, during the execution of function block FB81, control unit 24 determines whether the baking duration detected by the first sensor 25a satisfies the end condition of function block FB81. Specifically, control unit 24 determines whether the baking duration has reached the scheduled completion time of the baking process by drive unit W according to function block FB81. And when control unit 24 determines that the baking duration satisfies the end condition, that is, the baking duration has reached the scheduled completion time, it determines whether the in-store temperature detected by the second sensor 25b at that time satisfies the block addition condition. Specifically, control unit 24 determines whether the in-store temperature is equal to or higher than the differential temperature. And when control unit 24 determines that the in-store temperature satisfies the block addition condition, that is, the in-store temperature is equal to or higher than the differential temperature, it adds function block FB83. That is, control unit 24 updates the application by adding function block FB83 before function block FB82 that follows function block FB81 among the plurality of function blocks included in the application. In the example of FIG. 44, function block FB83 is a function block that performs standby. For example, control unit 24 adds function block FB83 so as to perform standby before performing the baking process in the second mode. And after the end of function block FB81, control unit 24 controls drive unit W according to function block FB82 and function block FB83.
[0373] As described above, in the present embodiment, when there is a possibility of danger if the driving unit W is driven by the baking process of the functional block FB82 at a storage temperature equal to or higher than the differential temperature, it is possible to automatically execute waiting before the baking process. Since the storage temperature varies depending on the food ingredients or the environment placed inside the apparatus 20, it may be difficult to realize a storage temperature at which no danger occurs in advance during the development of the application. Further, if the storage temperature is equal to or higher than the differential temperature at the end of the baking process of the functional block FB81, the storage temperature may reach a temperature equal to or higher than the limit temperature in the baking process of the functional block FB82. However, in the present embodiment, during the execution of the application, the storage temperature is detected, and waiting is additionally executed according to the storage temperature, so that the occurrence of danger can be appropriately suppressed.
[0374] [6.4 Effects, etc.] As described above, the apparatus 20 which is a driving device in the present embodiment includes a driving unit W including at least one of an actuator 22 and a heater 23, acquires an application including a plurality of functional blocks, and by executing the application, a control unit 24 that controls the driving unit W according to a plurality of functional blocks, a first sensor 25a that detects a first driving state of the driving unit W, and a second sensor 25b that detects a second driving state of the driving unit W. Each of the plurality of functional blocks has an end condition for driving the driving unit W by the functional block. Then, when the first driving state detected by the first sensor 25a satisfies the end condition of the first functional block during the execution of the first functional block among the plurality of functional blocks, and the second driving state detected by the second sensor 25b satisfies the block addition condition, a new functional block is added so that the order for one or more subsequent functional blocks following the first functional block in the application becomes a predetermined order, and after the end of the first functional block, the driving unit W is controlled according to one or more subsequent functional blocks and the new functional block in the predetermined order.
[0375] According to this, the drive unit W can be controlled based on an application defined by a plurality of functional blocks. Therefore, it becomes possible to develop an application using blocks that abstract the control of the device 20, and various applications can be developed not only by the manufacturer but also by third parties, and these applications can be easily executed on the device 20.
[0376] Furthermore, when the driving of the drive unit W according to the first functional block ends, if the second driving state satisfies the block addition condition, a new functional block is added before the subsequent functional block following the first functional block. Then, the drive unit W is controlled according to the added functional block. Thereby, in the second driving state of the drive unit W, when driving the drive unit W according to the subsequent functional block may cause a dangerous or inefficient operation (hereinafter sometimes referred to as dangerous, etc.), an operation that can avoid this can be automatically executed. Since this second driving state varies depending on the usage form of the device 20 by the user, it may be difficult to avoid danger, etc. in advance during the development of the application. However, in the present embodiment, during the execution of the application, the second driving state is detected, and a functional block is added according to the second driving state, so that the occurrence of danger, etc. can be appropriately suppressed. As a result, even when obtaining various applications and controlling the drive unit W according to the application, the safety or efficiency (hereinafter sometimes referred to as safety, etc.) of the device 20 controlled by the application can be ensured, and the safety, etc. can be improved.
[0377] Also, in the present embodiment, the predetermined order is the order in which a new functional block is located before a specific functional block that is a subsequent functional block in which the driving of the drive unit W in a state where the second driving state satisfies the block addition condition is not allowed among one or more subsequent blocks.
[0378] According to this, before the drive of the drive unit W in a state where the second drive situation satisfies the block addition condition causes a specific functional block that is not allowed due to the occurrence of danger or the like to be executed, a new functional block that can avoid the occurrence of danger or the like is added. Therefore, even when obtaining a variety of applications and controlling the drive unit W according to the application, it is possible to more reliably ensure the safety and the like of the device 20 controlled by the application, and improve the safety and the like.
[0379] Also, in the present embodiment, the first drive situation detected by the first sensor 25a is the drive duration of the drive unit W according to the first functional block.
[0380] According to this, by comparing the drive duration with the scheduled completion time of the first functional block, it is possible to appropriately determine whether the first drive situation satisfies the end condition, that is, whether the drive of the drive unit W according to the first functional block ends.
[0381] Also, in the present embodiment, the second drive situation detected by the second sensor 25b is the temperature, rotation speed, spillage frequency, water level, or electrical conductivity generated by the drive of the drive unit W.
[0382] According to this, it is possible to appropriately determine whether the parameters of the second functional block should be changed based on the second drive situation regarding the safety of the device 20.
[0383] Also, in the present embodiment, for example, the device 20 is a washing machine. In this case, the first sensor 25a detects the water supply duration of the water supply by the drive unit W according to the first functional block as the first driving status, and the second sensor 25b detects the water level of the device 20 as the second driving status. The end condition is that the water supply duration reaches the scheduled completion time of the water supply by the drive unit W, and the block addition condition is that the water level is equal to or higher than the threshold value. In such a case, when adding a functional block, the control unit 24 adds a functional block for draining water as a new functional block before dehydrating the device 20 by the drive unit W.
[0384] According to this, in the case where danger may occur if the drive unit W is driven by dehydration of the functional block FB12 at a water level equal to or higher than the threshold value, draining can be automatically performed before the dehydration. Since the water level of the device 20 varies depending on the amount of water supplied by the clothes placed inside the device 20, it may be difficult to realize a water level at which no danger occurs in advance during the development of the application. However, in the present embodiment, during the execution of the application, the water level is detected, and draining is additionally performed according to the water level, so that the occurrence of danger can be appropriately suppressed. As a result, even when acquiring a variety of applications and controlling the drive unit W according to the application, the safety of the device 20 controlled by the application can be ensured and the safety can be improved.
[0385] Also, in this embodiment, for example, the device 20 is a clothes dryer. In this case, the first sensor 25a detects the drying duration of the clothes by the driving unit W according to the first functional block as the first driving situation, and the second sensor 25b detects the internal temperature of the device 20 as the second driving situation. The end condition is that the drying duration reaches the scheduled completion time of the drying of the clothes by the driving unit W, and the block addition condition is that the internal temperature is equal to or higher than the threshold value. In such a case, when adding a functional block, the control unit 24 adds a functional block for performing blowing as a new functional block before turning off the door lock of the device 20 by the driving unit W.
[0386] According to this, in the case where danger may occur if the driving unit W is driven by turning off the door lock of the functional block FB22 at an internal temperature equal to or higher than the threshold value, it is possible to automatically execute blowing before turning off the door lock. Since the internal temperature of the device 20 varies depending on the amount of clothes placed inside the device 20, it may be difficult to realize an internal temperature that does not cause danger in advance during the development of the application. However, in this embodiment, during the execution of the application, the internal temperature is detected, and blowing is additionally executed according to the internal temperature, so that the occurrence of danger can be appropriately suppressed. As a result, even when obtaining a variety of applications and controlling the driving unit W according to the application, the safety of the device 20 controlled by the application can be ensured and the safety can be improved.
[0387] Also, in the present embodiment, for example, the apparatus 20 is a washing machine. In this case, the first sensor 25a detects, as the first driving state, the stirring duration applied to the stirring by the driving unit W according to the first functional block, and the second sensor 25b detects the rotation speed of the stirring as the second driving state. The end condition is that the stirring duration reaches the scheduled completion time of the stirring by the driving unit W, and the block addition condition is that the rotation speed is equal to or higher than the threshold value. In such a case, when adding a functional block, the control unit 24 adds, as a new functional block, a functional block that waits before draining or supplying water to the apparatus 20 by the driving unit W.
[0388] According to this, in the case where danger may occur if the driving unit W is driven by the water supply of the functional block FB32 at a rotation speed equal to or higher than the threshold value, it is possible to automatically execute waiting before the water supply. When the stirring of the functional block FB31 ends, the drum of the washing machine or the like may rotate due to inertia. Since the rotation speed varies depending on the amount of clothing placed inside the apparatus 20 and the like, it may be difficult to realize a rotation speed that does not cause danger in advance during the development of the application. However, in the present embodiment, even if the stirring of the functional block FB31 has ended, when a rotation speed equal to or higher than the threshold value is detected, waiting is additionally executed according to the rotation speed, so that the occurrence of danger can be appropriately suppressed. As a result, even when obtaining a variety of applications and controlling the driving unit W according to the applications, the safety of the apparatus 20 controlled by the applications can be ensured and the safety can be improved.
[0389] Also, in the present embodiment, for example, the device 20 is a washing machine. In this case, the first sensor 25a detects the stirring duration applied to the stirring by the driving unit W according to the first functional block as the first driving situation, and the second sensor 25b detects the electrical conductivity as the second driving situation. The end condition is that the stirring duration reaches the scheduled completion time of the stirring by the driving unit W, and the block addition condition is that the electrical conductivity is equal to or greater than the threshold value. In such a case, the control unit 24 adds, as a new functional block, a functional block for performing further stirring before the water supply to the device 20 by the driving unit W in the addition of the functional block.
[0390] Also, in the present embodiment, for example, the control unit 24 adds, as new functional blocks, a functional block for adding detergent and a functional block for performing further stirring before the water supply to the device 20 by the driving unit W in the addition of the functional block.
[0391] According to these, when the operation of removing dirt is not sufficiently performed because the electrical conductivity equal to or greater than the threshold value is detected, before the driving of the driving unit W such as the water supply of the subsequent functional block FB42, it is possible to automatically execute the addition of detergent and stirring. When the stirring of the functional block FB41 ends, usually, it is considered that the operation of removing dirt has ended and the washing proceeds, but there may be a case where the operation of removing dirt is not sufficient depending on the type and degree of dirt. However, in the present embodiment, during the execution of the application, the electrical conductivity is detected, and the addition of detergent and stirring is additionally executed according to the electrical conductivity, so that the operation of removing dirt can be appropriately executed. As a result, even when various applications are acquired and the driving unit W is controlled according to the application, the efficiency of the device 20 controlled by the application can be ensured and the efficiency can be improved.
[0392] Also, in the present embodiment, for example, the device 20 is a washing machine. In this case, the first sensor 25a detects the input amount in the detergent input by the drive unit W according to the first functional block as the first driving situation, and the second sensor 25b detects the water level as the second driving situation. The end condition is that the input amount reaches the planned input amount of the detergent by the drive unit W, and the block addition condition is that the water level is equal to or higher than the threshold value. In such a case, when adding a functional block, the control unit 24 adds a functional block for draining water as a new functional block before the agitation of the device 20 by the drive unit W rather than before the agitation of the device 20 by the drive unit W.
[0393] According to this, when there is a possibility that danger may occur if the drive unit W is driven by the agitation of the functional block FB52 at a water level equal to or higher than the threshold value, it is possible to automatically execute draining water before the agitation. Since the water level of the device 20 varies depending on the amount of water supplied by the clothing placed inside the device 20, it may be difficult to realize a water level where no danger occurs in advance during the development of the application. However, in the present embodiment, during the execution of the application, the water level is detected, and draining water is additionally executed according to the water level, so that the occurrence of danger can be appropriately suppressed. As a result, even when acquiring a variety of applications and controlling the drive unit W according to the application, the safety of the device 20 controlled by the application can be ensured and the safety can be improved.
[0394] Also, in the present embodiment, for example, the device 20 is a washing machine. In this case, the first sensor 25a detects the water supply duration during water supply by the drive unit W according to the first functional block as the first driving situation, and the second sensor 25b detects the water level as the second driving situation. The end condition is that the water supply duration reaches the planned completion time of the water supply by the drive unit W, and the block addition condition is that the water level is equal to or higher than the threshold value. In such a case, when adding a functional block, the control unit 24 adds a functional block for draining water as a new functional block after the material input of the device 20 by the drive unit and before the agitation of the device 20 by the drive unit W.
[0395] According to this, when there is a case where danger may occur if the drive unit W is driven by the agitation of the function block FB63 at a water level equal to or higher than the threshold value, it is possible to automatically execute drainage before the agitation. Since the water level of the apparatus 20 varies depending on the amount of water supplied by the clothes put inside the apparatus 20, it may be difficult to realize a water level at which no danger occurs in advance during the development of the application. However, in the present embodiment, during the execution of the application, the water level is detected, and drainage is additionally executed according to the water level, so that the occurrence of danger can be appropriately suppressed. As a result, even when various applications are obtained and the drive unit W is controlled according to the application, the safety of the apparatus 20 controlled by the application can be ensured and the safety can be improved.
[0396] Also, in the present embodiment, for example, the apparatus 20 is a rice cooker. In this case, the first sensor 25a detects the pre-cooking duration taken for pre-cooking by the drive unit W according to the first function block as the first driving situation, and the second sensor 25b detects the number of spills from the apparatus 20 as the second driving situation. The end condition is that the pre-cooking duration reaches the scheduled completion time of the pre-cooking by the drive unit W, and the block addition condition is that the number of spills is equal to or greater than the threshold value. In such a case, the control unit 24 adds a function block for standby as a new function block before cooking up by the drive unit W according to the second function block in adding the function block.
[0397] According to this, in the case where danger may occur if the drive unit W is driven by the boiling of the functional block FB72 at the number of spillage times equal to or greater than the threshold value, it is possible to automatically execute waiting before the boiling. Since the number of spillage times varies depending on the amount of rice and water put into the apparatus 20 and their temperatures, it may be difficult to realize a number of spillage times that does not cause danger in advance during the development of the application. However, in the present embodiment, in the case where the number of spillage times equal to or greater than the threshold value is detected, waiting is additionally executed according to the number of spillage times, so that the occurrence of danger can be appropriately suppressed. As a result, even when various applications are obtained and the drive unit W is controlled according to the application, the safety of the apparatus 20 controlled by the application can be ensured and the safety can be improved.
[0398] Further, in the present embodiment, for example, the apparatus 20 is an oven. In this case, the first sensor 25a detects the baking duration of the food material by the drive unit W according to the first functional block as the first driving state, and the second sensor 25b detects the internal temperature of the apparatus 20 as the second driving state. The end condition is that the baking duration reaches the scheduled completion time of the baking process by the drive unit W, and the block addition condition is that the difference between the scheduled rising temperature that rises due to the baking process of the food material by the drive unit W according to the second functional block and the limit temperature of the apparatus 20 is equal to or lower than the internal temperature. In such a case, the control unit 24 adds, as a new functional block, a functional block that waits before the baking process of the food material by the drive unit W according to the second functional block in the addition of the functional block.
[0399] According to this, when there is a possibility that danger may occur if the drive unit W is driven by the baking process of the functional block FB82 at an internal temperature equal to or higher than the threshold value, it is possible to automatically execute waiting before the baking process. Since the temperature inside the cabinet varies depending on the food or environment placed inside the apparatus 20, it may be difficult to realize a temperature inside the cabinet that does not cause danger in advance during the development of the application. Also, if the temperature inside the cabinet is equal to or higher than the differential temperature at the end of the baking process of the functional block FB81, there is a possibility that the temperature inside the cabinet may reach a temperature equal to or higher than the limit temperature in the baking process of the functional block FB82. However, in the present embodiment, during the execution of the application, the temperature inside the cabinet is detected, and waiting is additionally executed according to the temperature inside the cabinet, so that the occurrence of danger can be appropriately suppressed. As a result, even when various applications are obtained and the drive unit W is controlled according to the application, the safety of the apparatus 20 controlled by the application can be ensured and the safety can be improved.
[0400] Note that the first sensor 25a in the present embodiment is a timer, but it may be a sensor other than a timer. For example, when the apparatus 20 is an oven, the first sensor 25a may be a temperature sensor that detects the temperature inside the cabinet as the first driving state. In this case, when the temperature inside the cabinet detected by the first sensor 25a satisfies the end condition of the first functional block, it means that the temperature inside the cabinet has reached the target temperature. And at this time, the control unit 24 determines whether or not the second driving state detected by the second sensor 25b satisfies the block addition condition. Similarly, the first sensor 25a may detect the rotation speed of the stirring as the first driving state.
[0401] Also, if the apparatus 20 is a washing machine in the present embodiment, the second sensor 25b may detect the weight balance as the second driving state. That is, the second sensor 25b may detect the unevenness of the clothes placed in the washing machine. In this case, the control unit 24 may add a functional block according to the unevenness of the clothes.
[0402] Also, the block addition conditions in the present embodiment may be used for the rules of Embodiments 1 to 5. That is, the rule stipulates that when the second driving state detected by the second sensor 25b satisfies the block addition conditions, it is necessary to add a new functional block before the second functional block. The control unit 24 adds functional blocks according to the rule.
[0403] Also, the block addition conditions in the present embodiment may include a function or a table for deriving parameters of the added functional block. For example, the function may be a mathematical formula that takes the first driving state and the second driving state before the change as inputs and derives the numerical values of the parameters of the added functional block.
[0404] (Other Embodiments) As described above, the system according to one or more aspects of the present disclosure has been described based on the embodiments. However, the present disclosure is not limited to these embodiments. Without departing from the spirit of the present disclosure, various modifications conceived by those skilled in the art to these embodiments, or forms constructed by combining components in different embodiments may also be included within the scope of one or more aspects of the present disclosure.
[0405] Also, in each of the above embodiments, the sequence manager 100 and the device manager 200 are included in the cloud server 10, but are not limited thereto. The sequence manager 100 and / or the device manager 200 may be included in the device 20. Also, the UI 400 is included in the terminal 30, but may also be included in the device 20.
[0406] Also, in each of the above embodiments, the application may be changed based on the deterioration information. For example, the device 300 may refer to parameter conversion information in which a plurality of deterioration levels are associated with conversion methods of a plurality of parameters, obtain a conversion method corresponding to the deterioration level, and convert the parameters included in the block using the obtained conversion method. As the conversion method, for example, it may be defined by the value after conversion, or may be defined by a coefficient applied to the value before conversion.
[0407] Also, in each of the above embodiments, the application was changed in the pre-execution check and then the application was executed, but this is not the only case. For example, when the state of the device 300 is different from the assumption, the application may not be changed, and the device manager 200 and / or the sequence manager 100 may be notified of the execution stop (error).
[0408] Also, it is not limited to the rules used in each of the above embodiments. For example, a second rule that is the amount of heat generated by the execution of each of a plurality of blocks may be used. In this case, the control unit 24 may determine whether at least a part of the device 20 reaches the endurance temperature when the application is executed. And when it is determined that at least a part of the device 20 reaches the endurance temperature, the control unit 24 may change the application by changing the order in which each of the plurality of blocks is executed. Here, when each of the plurality of blocks includes parameters for driving at least one of the actuator 22 and the heater 23, the control unit 24 may refer to the second rule, the plurality of blocks included in the application, and the parameters included in the plurality of blocks, and calculate the temperature of at least a part of the device 20 at the end of the plurality of blocks.
Industrial Applicability
[0409] It can be used for household electrical appliances and the like that can execute an application defined by a plurality of functional blocks.
Explanation of Signs
[0410] 1 System 2a, 2b, 2c, 2d Facilities 10 Cloud Server 11 Processor 12, 26, 52 Memory 20, 20a, 20b, 20c, 20d, 20e, 20f, 20g, 20h Devices 21 Housing 22 Actuator 23 Heater 24 Control Unit 25a First Sensor 25b Second Sensor 30, 30a, 30b, 30c, 30d Terminals 31 Display 32 Input Device 41 Block Database 42, 1300 Rule Database 50 Development Tool 51 Processor 53 Display 54 Input Section 60 App Provision Server 100 Sequence Manager 200 Device Manager 300, 300a, 300b, 300c, 300d, 300e, 300f, 300g, 300h Devices 400, 400a, 400b, 400c, 400d UI 1000, 1201 Blocks 1001, 1002, 1003, 1004, 1005, 1006 Parameters 1100 Device Database 1101 Device Information 1200 Execution Content Declaration 1202 Information Regarding Devices 1203 Order Information 1301, 1302, 1303 Rules 2000 Information Processing System C1 - C3 Countermeasures D1 Parameter Setting Area D2 Block List Area D3 Target Device Area D4 Selected Block Area E1, E2 Error Message F100 Preparation Phase F200 Pre-application Execution Phase F300 Application Execution Phase FB11~13, FB21~23, FB31~33, FB41~44, FB51~53, FB61~64, FB71~74, FB81~83 Functional Blocks R11~R13, R21~R23, R31~R33, R41~R43 Dedicated Rules R100, R200, R300, R400 General Rules W Driving Unit
Claims
1. A drive unit including at least one of an actuator and a heater, a control unit that acquires an application including a plurality of blocks and controls the drive unit according to the plurality of blocks by executing the application, a first sensor that detects a first driving state of the drive unit, and a second sensor that detects a second driving state of the drive unit, wherein each of the plurality of blocks has an end condition for driving the drive unit by the block, and the control unit when, during execution of a first block among the plurality of blocks, the first driving state detected by the first sensor satisfies the end condition of the first block, and the second driving state detected by the second sensor satisfies a block addition condition, adds a new block before a second block that is consecutive to the first block in the application and for which driving of the drive unit in a state where the block addition condition is satisfied is not permitted, and after the end of the first block, controls the drive unit according to the new block and the second block. A drive device.
2. The new block is a block for preventing the second driving state from satisfying the block addition condition. The drive device according to claim 1. The drive device according to claim 1.
3. When the block addition condition is satisfied, the second driving state is a driving state in which danger may occur when the drive unit is controlled according to the second block. The drive device according to claim 1. The drive device according to claim 1.
4. The first driving state detected by the first sensor is a driving duration of the drive unit according to the first block. The drive device according to any one of claims 1 to 3. The drive device according to any one of claims 1 to 3.
5. The second driving state detected by the second sensor is a temperature, a rotation speed, or a spillage frequency caused by driving of the drive unit. The drive device according to any one of claims 1 to 4. The drive device according to any one of claims 1 to 4.
6. The drive device is a washing machine, the first sensor detects, as the first driving state, a water supply duration for water supply by the drive unit according to the first block, and the second sensor detects, as the second driving state, a water level after the water supply. The end condition is that the water supply duration reaches the scheduled completion time of the water supply by the drive unit. The block addition condition is that the water level after the water supply is equal to or higher than a threshold value. The control unit In adding the new block, before the dehydration by the drive unit according to the second block, a block for draining water is added as the new block. The drive device according to claim 1.
7. The drive device is a clothes dryer, The first sensor detects, as the first driving state, the drying duration required for drying clothes by the drive unit according to the first block. The second sensor detects the internal temperature of the drive device as the second driving state. The end condition is that the drying duration reaches the scheduled completion time of the drying of the clothes by the drive unit. The block addition condition is that the internal temperature is equal to or higher than a threshold value. The control unit In adding the new block, before turning off the door lock of the clothes dryer by the drive unit according to the second block, a block for blowing air is added as the new block. The drive device according to claim 1.
8. The drive device is a washing machine, The first sensor detects, as the first driving state, the stirring duration required for stirring by the drive unit according to the first block. The second sensor detects the rotation speed of the stirring as the second driving state. The end condition is that the stirring duration reaches the scheduled completion time of the stirring by the drive unit. The block addition condition is that the rotation speed is equal to or higher than a threshold value. The control unit In adding the new block, before draining water or supplying water by the drive unit according to the second block, a block that does not permit the drive of the drive unit is added as the new block. The drive device according to claim 1.
9. The drive device is a washing machine, The first sensor detects, as the first driving state, the input amount of detergent input by the drive unit according to the first block. The second sensor detects the water level after the detergent is input as the second driving state. The end condition is that the input amount reaches the scheduled input amount of the detergent input by the drive unit. The block addition condition is that the water level is equal to or higher than a threshold value. The control unit In adding the new block, before the stirring by the drive unit performed according to the second block, a block for draining water is added as the new block. The drive device according to claim 1.
10. The drive device is a rice cooker, The first sensor detects, as the first driving state, the pre-cooking duration taken for pre-cooking by the drive unit according to the first block. The second sensor detects, as the second driving state, the number of spills from the drive device. The end condition is that the pre-cooking duration reaches the scheduled completion time of the pre-cooking by the drive unit. The block addition condition is that the number of spills is equal to or greater than a threshold value. The control unit In adding the new block, before the cooking by the drive unit performed according to the second block, a standby block that does not permit driving of the drive unit is added as the new block. The drive device according to claim 1.
11. The drive device is an oven, The first sensor detects, as the first driving state, the baking duration taken for baking the food by the drive unit according to the first block. The second sensor detects, as the second driving state, the internal temperature of the drive device. The end condition is that the baking duration reaches the scheduled completion time of the baking by the drive unit. The block addition condition is that the difference between the expected rising temperature that rises due to the baking of the food by the drive unit according to the second block and the limit temperature of the drive device is equal to or lower than the internal temperature. The control unit In adding the new block, before the baking of the food by the drive unit performed according to the second block, a standby block that does not permit driving of the drive unit is added as the new block. The drive device according to claim 1.
12. A drive method of a drive device executed by a computer, The drive device includes a drive unit including at least one of an actuator and a heater, a first sensor that detects a first driving state of the drive unit, and a second sensor that detects a second driving state of the drive unit. The drive method acquires an application including a plurality of blocks, By executing the application, controlling the drive unit according to the plurality of blocks, Each of the plurality of blocks has an end condition for driving the drive unit by the block, In the execution of the application, During the execution of the first block among the plurality of blocks, when the first driving state detected by the first sensor satisfies the end condition of the first block, if the second driving state detected by the second sensor satisfies the block addition condition, Adding a new block before a second block that is consecutive to the first block in the application and in which driving of the drive unit in a state where the block addition condition is satisfied is not permitted, After the end of the first block, controlling the drive unit according to the new block and the second block, Driving method.
13. A program for a drive device, The drive device includes A drive unit including at least one of an actuator and a heater, A first sensor for detecting a first driving state of the drive unit, A second sensor for detecting a second driving state of the drive unit, Equipped with a computer, The program causes the computer to Acquire an application including a plurality of blocks, By executing the application, cause the computer to control the drive unit according to the plurality of blocks, Each of the plurality of blocks has an end condition for driving the drive unit by the block, In the execution of the application, During the execution of the first block among the plurality of blocks, when the first driving state detected by the first sensor satisfies the end condition of the first block, if the second driving state detected by the second sensor satisfies the block addition condition, Adding a new block before a second block that is consecutive to the first block in the application and in which driving of the drive unit in a state where the block addition condition is satisfied is not permitted, After the end of the first block, controlling the drive unit according to the new block and the second block, Program.
Citation Information
Patent Citations
Washing machine
JP2003284889A
Clothing processing apparatus
JP2019097920A
Washing machine
JP2020000802A