Device with actuator and / or heater, and method of controlling the device
The apparatus with an actuator and/or heater, along with a control unit that enforces safety rules, addresses the challenge of customizable and safe control programs in household appliances, enabling secure and user-specific operation.
Patent Information
- Application Number
- JP2025035134
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2020-06-19
- Filing Date
- 2025-03-06
- Publication Date
- 2025-05-13
- Estimated Expiration
- 2041-06-16
AI Technical Summary
Existing household electrical appliances struggle with customizable and updatable control programs, as manufacturers must pre-store control programs, making it difficult to accommodate user-specific preferences and safety concerns.
An apparatus comprising an actuator and/or a heater, along with a control unit that obtains applications defined by multiple blocks, refers to safety rules to prevent unsafe combinations of blocks, and notifies users of potential errors, allowing for safer and more customizable execution of control programs.
The solution enables easier and safer execution of a wide variety of control programs, ensuring safety and customizability for household electrical appliances by preventing unsafe block combinations and allowing for real-time application updates.
Smart Images

Figure 2025074339000001_ABST
Abstract
Description
[Technical field]
[0001] The present disclosure relates to an apparatus including an actuator and / or a heater and a method for controlling the apparatus. [Background technology]
[0002] Conventionally, household electrical appliances and housing facilities are controlled according to operating conditions (control programs) prepared in advance by their manufacturers, etc. Patent Document 1 discloses a washing machine that allows a user to set operating conditions for washing that he or she desires to carry out. [Prior art documents] [Patent documents]
[0003] [Patent Document 1] JP 2003-284889 A Summary of the Invention [Problem to be solved by the invention]
[0004] However, in the above-mentioned conventional technology, a control program developed in advance by the product manufacturer or the like must be pre-stored in the product, and it is difficult to customize and update the control program to meet the needs of various users.
[0005] Therefore, the present disclosure provides an apparatus and method that can execute a wide variety of control programs more easily and safely. [Means for solving the problem]
[0006] An apparatus according to one embodiment of the present disclosure includes at least one of an actuator and a heater, and a control unit that controls the at least one of the actuator and the heater, wherein the control unit obtains an application defined by a plurality of blocks that drive the at least one of the actuator and the heater, and refers to a rule that prohibits at least one of the two or more specified blocks from being executed when one of the two or more specified blocks is executed, and if the plurality of blocks included in the application fall under the rule, notifies a user of error information.
[0007] Furthermore, these comprehensive or specific aspects may be realized by a system, a method, an integrated circuit, a computer program, or a recording medium such as a computer-readable CD-ROM, or may be realized by any combination of the system, the method, the integrated circuit, the computer program, and the recording medium. Effect of the Invention
[0008] An apparatus according to one aspect of the present disclosure can execute a wide variety of control programs more easily and safely. [Brief description of the drawings]
[0009] [Figure 1] FIG. 1 is a hardware configuration diagram of the system according to the first embodiment. [Figure 2A] FIG. 2A is a hardware configuration diagram of the cloud server according to the first embodiment. [Figure 2B] FIG. 2B is a hardware configuration diagram of the device according to the first embodiment. [Figure 2C] FIG. 2C is a hardware configuration diagram of the terminal in the first embodiment. [Diagram 3] FIG. 3 is a functional configuration diagram of the system according to the first embodiment. [Figure 4] FIG. 4 shows an example of a block defining an application in the first embodiment. [Diagram 5]FIG. 5 shows a number of blocks for the washing machine in the first embodiment. [Figure 6] FIG. 6 shows a number of blocks for the microwave oven in the first embodiment. [Figure 7] FIG. 7 shows a number of blocks for the rice cooker in the first embodiment. [Figure 8] FIG. 8 is a sequence diagram of the system in the first embodiment. [Figure 9] FIG. 9 shows an example of the device database according to the first embodiment. [Figure 10] FIG. 10 shows an example of an execution content declaration in the first embodiment. [Figure 11] FIG. 11 shows a flowchart of the pre-execution confirmation process in the first embodiment. [Figure 12] FIG. 12 shows an example of the rule database in the first embodiment. [Figure 13] FIG. 13 shows an example of a change in an application in the first embodiment. [Figure 14] FIG. 14 shows an example of a change in an application in the first embodiment. [Figure 15A] FIG. 15A is a sequence diagram of a system according to the first modification of the first embodiment. [Figure 15B] FIG. 15B is a sequence diagram of the system in the second modification of the first embodiment. [Figure 15C] FIG. 15C is a sequence diagram of the system in the third modification of the first embodiment. [Figure 15D] FIG. 15D is a sequence diagram of the system in the fourth modification of the first embodiment. [Figure 15E] FIG. 15E is a sequence diagram of the system in the fifth modification of the first embodiment. [Figure 16] FIG. 16 shows a flowchart of the pre-execution confirmation process in the second embodiment. [Figure 17] FIG. 17 shows a flowchart of the pre-execution confirmation process in the third embodiment. [Figure 18] FIG. 18 shows a flowchart of the pre-execution confirmation process in the fourth embodiment. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0010] (Findings on which this disclosure is based) The inventors of the present application will now explain how they arrived at this disclosure. In order to develop control programs for household electrical appliances having actuators and / or heaters that meet the desires of a wide variety of users, an open development environment is required. In other words, an environment is required in which the difficulty of developing control programs can be reduced and third parties can easily participate in the development of control programs. In such an environment, for example, an apparel company can develop a control program for a washing machine that washes the clothes it sells.
[0011] Therefore, the inventors of the present application have investigated a mechanism for building an environment in which control programs can be developed while maintaining safety by using functional blocks that abstract the control of actuators and / or heaters included in a product, and for packaging and distributing control programs consisting of combinations of multiple functional blocks as applications. This makes it possible to distribute a wide variety of applications, and to customize and update products to meet the needs of a wider variety of users. However, in such an environment, there is a possibility that dangerous applications (i.e., applications that cannot safely control the product) may be distributed, reducing the safety of the product.
[0012] For example, it is assumed that the programs included in household appliances, etc. are incorporated in devices for directly controlling actuators and / or heaters, and include a mixture of programs developed by the manufacturer and programs developed by third parties. In this case, it is highly likely that the manufacturer will not disclose all information about the household appliances, etc., including know-how, to the third party. For example, the parameters or timing for driving the actuators and / or heaters are know-how related to the performance of the manufacturer's household appliances, etc. Therefore, since it may lead to a decrease in competitiveness, the manufacturer is unlikely to open up its know-how to third parties so that they can freely drive the household appliances, etc.
[0013] Therefore, a third party may create an application that includes a combination of controls or a parameter range that the manufacturer did not anticipate, that is, an application whose safety is not guaranteed, due to a lack of information about the home appliance, etc. It is undesirable for users to be provided with such an application.
[0014] In addition, manufacturers of household electrical appliances and the like may attempt to update users' lives by providing new control programs. However, the development of a wide variety of new control programs requires a huge number of steps, such as parameter adjustment or hardware performance evaluation. Since household electrical appliances and the like are physically driven by the hardware of actuators and / or heaters, it is easily expected that programs for household electrical appliances and the like require a large number of steps, such as performance evaluation, compared to programs for smartphones. However, in an era in which on-demand development according to the lifestyle of each individual user is required rather than mass production, it is required to develop a wide variety of control programs for household electrical appliances and the like, just like programs for smartphones. Therefore, manufacturers must create a wide variety of applications that ensure the safety of their products while reducing the huge number of steps.
[0015] Furthermore, manufacturers may wish to ensure that household electrical appliances and the like operate safely even when they are operated using applications provided by third parties. In this case, it is desirable to reduce the amount of work required to actually run a wide variety of applications on the household electrical appliances and the like and verify their safety.
[0016] Therefore, the present disclosure provides an apparatus etc. that can more easily and safely execute a wide variety of applications defined by a plurality of functional blocks that drive actuators and / or heaters.
[0017] Hereinafter, the embodiment will be specifically described with reference to the drawings.
[0018] The embodiments described below are all comprehensive or specific examples. The numerical values, shapes, materials, components, the arrangement and connection of the components, steps, and the order of steps shown in the following embodiments are merely examples and are not intended to limit the scope of the claims.
[0019] In addition, the drawings are not necessarily strict illustrations. In the drawings, the same reference numerals are used for substantially the same configurations, and duplicated explanations are omitted or simplified.
[0020] (Embodiment 1) [1.1 Hardware configuration] The hardware configuration of system 1 in this embodiment will be described with reference to Figs. 1 to 2C. Fig. 1 is a hardware configuration diagram of system 1 in embodiment 1. Fig. 2A is a hardware configuration diagram of cloud server 10 in embodiment 1. Fig. 2B is a hardware configuration diagram of device 20 in embodiment 1. Fig. 2C is a hardware configuration diagram of terminal 30 in embodiment 1.
[0021] 1, the system 1 according to the present embodiment includes a cloud server 10, devices 20a-20h used in facilities 2a-2d, and terminals 30a-30d. The facilities 2a-2d are, for example, but are not limited to, houses. The facilities 2a-2d may be, for example, apartments, stores, offices, etc.
[0022] Cloud server 10 is a virtual server provided via a computer network (e.g., the Internet). Cloud server 10 is connected to devices 20a-20h and terminals 30a-30d via the computer network. Note that a physical server may be used instead of cloud server 10.
[0023] 2A, the cloud server 10 virtually includes a processor 11 and a memory 12 connected to the processor 11. The processor 11 functions as a sequence manager and a device manager, which will be described later, when instructions or software programs stored in the memory 12 are executed.
[0024] The devices 20a to 20h are electric machines and devices used in the facilities 2a to 2d. Note that the devices 20c to 20h used in the facilities 2b to 2d are omitted from Fig. 1. In the following, when it is not necessary to distinguish between the devices 20a to 20h, they will be referred to as device 20.
[0025] As the device 20, household electrical appliances (home appliances) and housing equipment can be used. The household electrical appliances (home appliances) and housing equipment are not limited to devices used in a home, but also include devices used in a business. In this disclosure, the household electrical appliances and housing equipment may be abbreviated to household electrical appliances. As the household appliances, for example, a microwave oven, a rice cooker, a blender, an electric oven, an electric toaster, an electric pot, a hot plate, an induction heating (IH) cooker, a roaster, a bakery, an electric pressure cooker, an electric waterless cooker, a multi-cooker, a coffee maker, a refrigerator, a washing machine, a dishwasher, a vacuum cleaner, an air conditioner, an air purifier, a humidifier, a hair dryer, an electric fan, and an ion generator can be used. As the housing equipment, for example, an electric shutter, an electronic lock, and an electric water heater for a bathtub can be used. The device 20 is not limited to this.
[0026] 2B, the device 20 includes a housing 21, an actuator 22, a heater 23, and a control unit 24. Note that the device 20 may include at least one of the actuator 22 and the heater 23, and does not necessarily need to include both the actuator 22 and the heater 23.
[0027] Housing 21 houses actuator 22, heater 23, and control unit 24. Housing 21 may also have an internal space for processing an object. For example, the washing tub of a washing machine, the heating chamber of a microwave oven, and the inner pot of a rice cooker correspond to the internal space for processing an object.
[0028] The actuator 22 is a mechanical element that converts input energy into physical motion based on an electrical signal, and may be, for example, an electric motor, a hydraulic cylinder, or a pneumatic actuator, but is not limited to these.
[0029] The heater 23 is an electric heater that converts electric energy into thermal energy. The heater 23 heats the object by, for example, Joule heating, induction heating, dielectric heating, etc. As the heater 23, for example, a nichrome wire, a coil, a magnetron, etc. can be used.
[0030] Here, an example of the reason why the device 20 of the present disclosure includes the actuator 22 and / or the heater 23 will be described. Consider a case where a manufacturer of a household electrical appliance or the like provides a third party with a development environment in which all of the parameters and drive combinations for driving the actuator 22 and the heater 23 can be freely controlled. In this case, the third party can create a program that controls the actuator 22 and / or the heater 23 outside of the parameter range that the manufacturer expects to safely drive, or the drive limit of the actuator 22 and / or the heater 23. In particular, the drive of the actuator 22 that physically moves or the heater 23 that outputs thermal energy that the manufacturer does not expect is a major issue in ensuring safety. Examples of drives that the manufacturer does not expect include high-speed rotation of an electric motor, which is an example of an actuator, and the supply of an overcurrent to the heater 23. The present inventors aimed to avoid hindering the creation of an environment in which a wide variety of applications can be provided to users by excessively considering safety aspects. Therefore, the device 20 of the present disclosure is intended to specialize in the actuator 22 that physically moves or the heater 23 that outputs thermal energy, and is intended to ensure safety.
[0031] The control unit 24 is a controller that controls the actuator 22 and / or the heater 23, and functions as a device to be described later. The control unit 24 is formed of, for example, an integrated circuit.
[0032] The terminals 30a to 30d are used in the facilities 2a to 2d, respectively, and function as user interfaces. Note that the terminals 30b to 30d used in the facilities 2b to 2d are omitted from Fig. 1. In the following, when it is not necessary to distinguish between the terminals 30a to 30d, they will be referred to as terminals 30.
[0033] The terminal 30 is connected to the cloud server 10 and the devices 20 via a computer network, and functions as a user interface (UI) described later. A portable information terminal such as a smartphone or a tablet computer can be used as the terminal 30. The terminal 30 may be a terminal fixed to a wall, floor, or ceiling of the facilities 2a to 2d. The terminal 30 may also be included in the devices 20. For example, the terminal 30 may be realized as a display terminal having a display or the like built into each of the devices 20a to 20h.
[0034] As shown in FIG. 2C, the terminal 30 includes a display 31 and an input device 32. For example, a liquid crystal display or an organic EL display can be used as the display 31. For example, a touch panel, a keyboard, a mouse, a mechanical button, or the like can be used as the input device 32. A voice input device may be used as the input device 32. The display 31 and the input device 32 may be integrated as a touch screen. Alternatively, a gesture input device may be used as the input device 32. The gesture input device includes, for example, a camera and a recognition unit. The camera captures an image including a gesture, and the recognition unit recognizes the gesture using the image.
[0035] [1.2 Functional configuration] Next, a functional configuration of the system 1 in the present embodiment will be described with reference to Fig. 3. Fig. 3 is a functional configuration diagram of the system 1 in the first embodiment.
[0036] The cloud server 10 includes a sequence manager 100 and a device manager 200. The apparatuses 20a to 20h include devices 300a to 300h, respectively. The terminals 30a to 30d include UIs 400a to 400d, respectively.
[0037] In the following, when it is unnecessary to distinguish between the devices 300a to 300h, they will be referred to as device 300. When it is unnecessary to distinguish between the UIs 400a to 400d, they will be referred to as UI 400.
[0038] The sequence manager 100 manages a plurality of applications. The plurality of applications are downloaded from an application distribution platform to the sequence manager 100, for example, by a user operation. Alternatively, the applications included in the application distribution platform do not need to be downloaded to the sequence manager 100. In this case, information indicating that the applications included in the application distribution platform are linked may be recorded in the database of the sequence manager 100. Details of the applications will be described later.
[0039] The device manager 200 has a database for managing the facilities 2a to 2d and the devices 300 and UIs 400 used in each of the facilities 2a to 2d. The device manager 200 manages the devices 300 and the UIs 400 by recording device information and UI information associated with the facilities 2a to 2d in the database. The device information and UI information include, for example, a control function, a drive function, and an operating status. For example, the device manager 200 can manage the operating status of the devices 300 and grasp the operating schedule of the devices 300. The device manager 200 may also manage log information of the devices 300.
[0040] Such a database may be included in the sequence manager 100 instead of the device manager 200, or may be included in both the sequence manager 100 and the device manager 200.
[0041] The device 300 has a function of controlling and driving the apparatus 20. The device 300 can drive the apparatus 20 according to instructions from the device manager 200.
[0042] The UI 400 provides information to and accepts input from a user.
[0043] Here, the application will be described. In the present embodiment, the application (hereinafter, sometimes abbreviated as an app) means a control program defined by a plurality of functional blocks (hereinafter, abbreviated as a block) that drive the actuator 22 and / or the heater 23. Each of the plurality of blocks may include parameters for driving the actuator 22 or the heater 23. Specifically, each of the plurality of blocks is an abstraction of the control of the actuator 22 or the heater 23. Note that the application may include a block that does not drive the actuator 22 and / or the heater 23 in addition to the plurality of blocks that drive the actuator 22 and / or the heater 23. Examples of blocks that do not drive the actuator 22 and / or the heater 23 include information display using an interface of the device 300, audio output using a buzzer of the device 300, turning on or off a lamp of the device 300, and the like. The block may also include a condition for starting the drive of the actuator 22 or the heater 23. For example, an application including a first block and a second block will be described as an example. Here, when switching to the second block during execution of the first block, the first block is switched to the second block when a start condition included in the second block is satisfied. Also, the block may include an end condition instead of a start condition. When switching to the second block during execution of the first block, the first block is switched to the second block when an end condition included in the first block is satisfied.
[0044] FIG. 4 shows an example of a block that defines an application in the first embodiment. Block 1000 shown in FIG. 4 is a block that controls the agitation operation of the washing machine, and includes parameters 1001 to 1006. Parameter 1001 includes information indicating the type of agitation (for example, normal, dancing, rocking). In other words, parameter 1001 indicates the type of function. Parameter 1002 includes a value indicating the number of rotations of the drum. In other words, parameter 1002 indicates the strength of driving actuator 22 and / or heater 23. Parameter 1003 includes a value indicating the amount of water supplied into the drum by the water level after water supply. In other words, parameter 1003 indicates the state after actuator 22 and / or heater 23 are driven. Parameter 1004 includes a value indicating the on / off state of the circulation pump. In other words, parameter 1004 indicates whether actuator 22 and / or heater 23 are driven. The parameter 1005 includes information indicating the agitation interval in stages (for example, short, medium, long), and the parameter 1006 includes a value indicating the agitation time.
[0045] To define an application, a plurality of such blocks are used, for example, as shown in Figs.
[0046] FIG. 5 shows a plurality of blocks for a washing machine in the first embodiment. FIG. 6 shows a plurality of blocks for a microwave oven in the first embodiment. FIG. 7 shows a plurality of blocks for a rice cooker in the first embodiment. Note that the plurality of blocks shown in FIG. 5 to FIG. 7 are merely examples, and the blocks for the washing machine, microwave oven, and rice cooker are not limited thereto. For example, the plurality of blocks may be hierarchically organized according to abstraction levels.
[0047] For example, the abstraction level may be changed between a layer for the manufacturer and a layer for non-manufacturers. Examples of layers for non-manufacturers include layers for other manufacturers and layers for third parties. In this case, the layer for the manufacturer has a lower level of abstraction than the layer for non-manufacturers. A lower level of abstraction means that contents close to the parameters that drive the actuators and heaters are controlled.
[0048] On the other hand, the creator provides blocks with a minimum abstraction level that ensures know-how and safety to non-manufacturers, thereby enabling non-manufacturers to develop applications. The manufacturer provides blocks with a higher abstraction level to general users, enabling more people to develop applications. A higher abstraction level corresponds to blocks defined by terms that general users themselves can understand without specialized knowledge. Terms that can be understood without specialized knowledge are, for example, contents that correspond to the functions themselves of household electrical appliances. Specifically, when "plenty" is selected as a parameter related to the amount of water in the "wash" block of a washing machine, in one embodied layer, changes are made such as increasing the water level parameter in the water supply block from 60 mm to 100 mm and decreasing the rotation amount parameter in the stirring block from 120 rpm to 100 rpm. As described above, rearrangement and parameter changes of blocks at a high level of abstraction can be realized with blocks with a lower level of abstraction. In addition, multiple blocks can be defined in devices other than washing machines, microwave ovens, and rice cookers in the same manner as in Figures 5 to 7. These blocks allow for the free development of applications by rearranging and adjusting parameters while ensuring safety and confidentiality regarding the operation of the actuators and heaters.
[0049] In addition, by providing other manufacturers with blocks having a minimum abstraction level that ensures know-how and safety, the other manufacturers can independently define and implement blocks having a higher concrete level in order to realize the provided blocks. This allows each manufacturer to freely develop apps related to driving the actuators and heaters of each manufacturer while ensuring their own know-how and safety, with third parties that develop only apps.
[0050] At this time, the other manufacturer may not develop a block having a higher level of specificity in accordance with the block having the minimum abstraction level that ensures know-how and safety provided by the manufacturer, but may return an error and notify the application developer and user that the block provided by the manufacturer cannot be used or operates within a limited parameter range. Specifically, when "high speed" is selected as a parameter related to motor rotation in the "agitation" block of a washing machine, if a parameter of 150 rpm for realizing "high speed" is realizable in the washing machine of the manufacturer, while a washing machine of another manufacturer can only rotate up to 120 rpm due to the characteristics of the motor, an error or a message that the limit value of 120 rpm will be realized is displayed to the application developer or user.
[0051] [1.3 Processing] Next, the processing of the system 1 configured as above will be described with reference to Fig. 8. Fig. 8 is a sequence diagram of the system 1 in the first embodiment.
[0052] [1.3.1 Preparation Phase F100] First, the preparation phase F100 will be described.
[0053] (Step S110) The sequence manager 100 transmits sequence manager information to the device manager 200. This transmission of sequence manager information is performed, for example, by an instruction from a system administrator. The device manager 200 registers the received sequence manager information, for example, in a sequence manager database. Note that if the sequence manager information has been registered in advance in the sequence manager database, this step may be skipped.
[0054] The sequence manager information includes, for example, an identifier and / or an address (eg, a Uniform Resource Locator (URL), an Internet Protocol (IP) address, etc.) of the sequence manager 100. Additionally, the sequence manager information may include any information.
[0055] (Step S112) The device 300 transmits device information 1101 to the device manager 200. This device information 1101 is transmitted, for example, when the device 300 is connected to a computer network. The device manager 200 registers the received device information 1101 in the device database 1100. Note that if the device information 1101 has been registered in advance in the device database 1100, this step may be skipped.
[0056] The device information 1101 may be sent to the UI 400 and then registered in the device manager 200 via the UI 400 .
[0057] The device information 1101 includes an identifier and / or an address of the device 300. Furthermore, the device information 1101 may include any information. FIG. 9 shows an example of the device database in the first embodiment. In the device database 1100 in FIG. 9, a plurality of pieces of device information including the device information 1101 are registered. Each piece of device information includes a device ID, an address, a type, a manufacturer name, a model number, an actuator / heater, and a deterioration level. The actuator / heater is identification information of the actuator 22 and / or the heater 23 constituting the device 300. The deterioration level is an example of deterioration information indicating whether the actuator 22 and / or the heater 23 constituting the device 300 is deteriorated. Here, the deterioration level indicates that the deterioration is greater as the value increases. The device information 1101 may include information on executable blocks. The information on executable blocks may be information in which the blocks included in the database are associated with executable or non-executable blocks, or may be information on only executable blocks. Moreover, whether or not a block is executable can be determined in advance based on information on an actuator / heater, etc., included in the device information 1101. The device information 1101 may include information capable of identifying the facilities 2a to 2d.
[0058] (Step S114) The UI 400 transmits UI information to the device manager 200. This transmission of UI information is performed, for example, in response to a user instruction. The device manager 200 registers the received UI information in, for example, a UI database. Note that if the UI information has been registered in the UI database in advance, this step may be skipped.
[0059] The UI information may include, for example, an identifier and / or an address of the UI 400. Furthermore, the UI information may include any information.
[0060] The UI information may include information capable of identifying the facilities 2a to 2d.
[0061] Through the above processing, the sequence manager 100, the device manager 200, the device 300, and the UI 400 are linked to each other and can establish a connection with each other, thereby completing the preparation phase F100.
[0062] [1.3.2 Pre-application execution phase F200] Next, the application pre-execution phase F200 will be described. Note that, before the application pre-execution phase F200, an application is downloaded from the application distribution platform to the sequence manager 100 in accordance with an instruction from a user via the UI 400. In this manner, the following process is performed in a state where the application is downloaded to the sequence manager 100.
[0063] (Step S210) The UI 400 accepts an application execution request from a user and transmits the application execution request including the application identification information to the sequence manager 100. For example, the user selects an application from among multiple applications downloaded to the sequence manager 100 via the UI 400 and instructs execution of the selected application.
[0064] The application execution request transmitted from the UI 400 to the sequence manager 100 is transmitted together with information capable of identifying the facilities 2a to 2d.
[0065] The application execution request does not have to be explicitly received from the user. For example, the application execution request may be automatically sent to the sequence manager 100 based on the detection result by detecting the user's behavior or state.
[0066] (Step S212) The sequence manager 100 transmits an execution content declaration of the application identified by the application execution request to the device manager 200. The execution content declaration includes information on a plurality of blocks that specifies the application to be executed and information capable of identifying the facilities 2a to 2d.
[0067] Fig. 10 is a diagram showing an example of an execution content declaration in the embodiment 1. Fig. 10 shows an execution content declaration 1200 for an application defined by combining a plurality of blocks for the washing machine shown in Fig. 5. The execution content declaration 1200 includes a plurality of blocks 1201, information 1202 relating to devices required for executing each block 1201, and information 1203 relating to the order in which each block 1201 is executed.
[0068] The execution content declaration 1200 does not have to include the device-related information 1202. In that case, the device manager 200 needs to search for a device capable of executing the corresponding block in the facility indicated by the received facility information from the information of the multiple blocks 1201, and perform device allocation.
[0069] 10, the device-related information 1202 indicates the model number of the device 300, but is not limited to this. The device-related information 1202 may be any information as long as it can indicate the conditions of the device 300 that can be allocated to a block. For example, the device-related information 1202 may include multiple model numbers, or may include only the type of device, the purpose of use, the location of the device, or any combination of these.
[0070] (Step S214) The device manager 200 allocates a device 300 linked to the device manager 200 to each block included in the execution content declaration based on information capable of identifying the facilities 2a to 2d. For example, the device manager 200 allocates a device DEV001 having a model number WM-0001, which is registered in the device database 1100 of Fig. 9 as being connected to the facility indicated by the received facility information, to each of the blocks 1201 shown in Fig. 10. Note that when the operating state of the device 300 or the connection state to the cloud is managed, the allocation of an operating device 300 may be prohibited.
[0071] For example, if the multiple blocks shown in Figure 10 are not registered as connected to the facility indicated by the received facility information, that is, if the target device does not exist in the facility, the device manager 200 notifies the sequence manager 100 that the application whose execution content is declared cannot be executed.
[0072] (Step S215) The device manager 200 notifies the device 300 of the result of the device allocation. As a result, a plurality of blocks included in the application are sent to the device 300 to which they are respectively allocated.
[0073] (Step S216) The device 300 validates a block before executing the block, i.e., before executing the block, the device 300 checks whether the block will cause problems in the device 300 if executed, e.g., the device 300 checks for safety and / or efficiency issues.
[0074] Then, the device 300 changes the block based on the result of the check, thereby correcting the block so that the problem does not occur.
[0075] Such pre-execution confirmation processing will be described in further detail with reference to Fig. 11. Fig. 11 shows a flowchart of the pre-execution confirmation processing in the first embodiment.
[0076] (Step S2165) The device 300 acquires a rule corresponding to the application. Here, the rule prohibits at least one of the two or more predetermined blocks from being executed when one of the two or more predetermined blocks is executed. For example, the device 300 acquires a combination of the two or more predetermined blocks by referring to a rule database. The rule database may be included in the device 300, the sequence manager 100, or the device manager 200, for example.
[0077] The rule may be, for example, a rule that prohibits the first block from not being executed before the second block is executed. More specifically, the rule may be, for example, a rule that prohibits the first block from not being executed from the start of an application until the second block is executed. Such a first block may be, for example, a block for setting an environment in which the second block can be executed. Specifically, the first block may be a drain block for realizing a water-free environment before the second block (for example, a dehydration block) is executed.
[0078] Also, as the rule, for example, a rule that prohibits the third block from not being executed after the second block is executed can be used. More specifically, as the rule, for example, a rule that prohibits the third block from not being executed after the second block is executed until the end of the application can be used. As such a third block, for example, a block for returning the environment changed by the execution of the second block to the environment before the execution of the second block can be used. Specifically, as the third block, a ventilation block for returning the temperature that has risen by the execution of the second block (for example, a drying block) to the temperature before the execution of the second block can be used.
[0079] Fig. 12 shows an example of a rule database in the first embodiment. Rules 1301 and 1302 are registered in the rule database 1300 in Fig. 12. Each of the rules 1301 and 1302 has information on a combination of two or more predetermined blocks. For example, the rule 1301 indicates that a drain block is prohibited from being executed before a spin block is executed. Also, for example, the rule 1302 indicates that a blowing block is prohibited from being executed after a drying block.
[0080] As such a combination of two or more predetermined blocks, for example, a combination of blocks for preventing the internal space of the housing 21, the actuator 22, or the heater 23 from reaching a durable temperature is determined in advance. The durable temperature means a rated temperature and indicates a maximum allowable temperature. Therefore, if the actuator 22 or the heater 23 is driven using a combination of two or more predetermined blocks, the temperature of the internal space of the housing 21, the actuator 22, or the heater 23 will not reach an unallowable temperature. In other words, the rule is a rule for ensuring that a combination of two or more predetermined blocks is executed in order to prevent the internal space of the housing 21, the actuator 22, or the heater 23 from reaching a durable temperature.
[0081] 12, each of the rules 1301 and 1302 indicates a combination of two blocks, but is not limited thereto. For example, the rule may indicate a parameter range of at least one of the two blocks in addition to the combination of the two blocks. Furthermore, the rule is defined so that a wide range of blocks can be used for the development of a wide variety of applications.
[0082] For example, the rules for safe operation of the actuator 22 or the heater 23 change depending on the environment of the device 300, such as the internal space of the housing 21, and the rules may not depend only on the performance of the actuator 22 or the heater 23 itself. Therefore, in order to operate safely in any environment, the rules place a high emphasis on safety, which reduces the room for development of a wide variety of applications. Therefore, the rules may be associated with information on the device 300, etc., independent of the application. By using such rules, both safety and development of a wide variety of applications can be achieved.
[0083] The rules relate to the range in which the actuator 22 or the heater 23 can be safely driven. The range in which it can be safely driven may be a range that takes into consideration the start condition or end condition of the block. Consider an example of a first block and a second block that is executed after the first block. A rule can be set that assumes a case in which a load that affects the safety of the actuator 22 or the heater 23 is applied by executing the first block until the start condition of the second block is reached. In other words, the rule depends on the performance of the actuator 22 or the heater 23, the start condition or end condition of the block, etc.
[0084] Each of the rules 1301 and 1302 further includes a type, a manufacturer name, and a model number. This allows the device 300 to acquire a rule corresponding to the actuator 22 or the heater 23 driven by the block from the rule database 1300. For example, the device 300 acquires the rules 1301 and 1302 for WM-0001 by referring to the rule database 1300 in FIG.
[0085] (Step S2166) The device 300 determines whether or not multiple blocks included in the application correspond to the rules.
[0086] For example, when a rule prohibits a first block from being executed before a second block is executed, if an application includes a second block and does not include a first block before the second block, the device 300 determines that the blocks included in the application meet the rule. Specifically, when an application includes a second block and does not include a first block, the device 300 determines that the blocks included in the application meet the rule. Also, when an application includes a second block and includes a first block only after the second block, the device 300 determines that the blocks included in the application meet the rule. On the other hand, when an application includes a second block and includes a first block before the second block, the device 300 determines that the blocks included in the application do not meet the rule. Also, when an application does not include both a first block and a second block, the device 300 determines that the blocks included in the application do not meet the rule. Furthermore, when the application includes the first block and does not include the second block, the device 300 determines that the multiple blocks included in the application do not satisfy the rule.
[0087] For example, if the rule prohibits the third block from being executed after the second block is executed, and if the application includes the second block and does not include the third block after the second block, the device 300 determines that the multiple blocks included in the application correspond to the rule. Specifically, if the application includes the second block and does not include the third block, the device 300 determines that the multiple blocks included in the application correspond to the rule. If the application includes the second block and includes the third block only before the second block, the device 300 determines that the multiple blocks included in the application correspond to the rule. On the other hand, if the application includes the second block and includes the third block after the second block, the device 300 determines that the multiple blocks included in the application do not correspond to the rule. If the application does not include both the second block and the third block, the device 300 determines that the multiple blocks included in the application do not correspond to the rule. Furthermore, when the application includes the third block and does not include the second block, the device 300 determines that the multiple blocks included in the application do not satisfy the rule.
[0088] If it is determined that multiple blocks do not match the rule (No in S2166), the device 300 skips the subsequent step S2167 and ends the pre-execution confirmation process. On the other hand, if it is determined that multiple blocks match the rule (Yes in S2166), the device 300 proceeds to the next step S2167.
[0089] (Step S2167) The device 300 changes the application and ends the pre-execution confirmation process. The change of the application means (i) adding a new block to the multiple blocks, (ii) changing the order of the multiple blocks, (iii) deleting any of the multiple blocks, or (iv) any combination thereof. These methods of changing the application may be defined in the rules.
[0090] A specific example of such an application change will be described with reference to FIGS.
[0091] Fig. 13 shows an example of a change in the application in the first embodiment. In Fig. 13, a drain block (first block) is added before the spin block (second block). This allows water to be drained from inside the washing machine before the spin block is executed, and enables safe driving of actuator 22 during spinning.
[0092] Fig. 14 shows an example of a change in the application in the first embodiment. In Fig. 14, an air blowing block (third block) is added after a drying block (second block). This makes it possible to lower the temperature of the washing machine by blowing air after the temperature of the washing machine has risen due to drying, thereby preventing users from getting burned by the washing machine and improving the safety of the washing machine.
[0093] Although the change of the application for the washing machine has been described here, the application can be changed in the same manner for other devices.
[0094] For example, if an application for a rice cooker includes a steaming block (second block) that utilizes the steam function, and does not include a steam warming block (first block) before the steaming block, a steam warming block may be added before the corresponding block 10 minutes before the steaming block is executed. This allows the steam heater to be warmed before the steaming block is executed, and allows for smooth steam irradiation when the steaming block is executed.
[0095] Also, for example, if an application for a microwave oven includes a steaming block (second block) and does not include a steam warming block (first block) before the steaming block, a steam warming block may be added before the steaming block 10 minutes before the steaming block is executed. This allows the steam heater to be warmed before the steaming block is executed, and allows for smooth steam irradiation when the steaming block is executed. Also, if an application for a microwave oven includes an oven block (second block) and does not include a blowing block (third block) after the oven block, a blowing block may be added after the oven block. This allows the inside of the oven, which has become very hot due to the execution of the oven block, to be cooled by the execution of the blowing block, and the execution of the next block can be expedited.
[0096] (Step S217) The device 300 transmits the result of the pre-execution check to the device manager 200. If the block has been modified, the modified block may be transmitted to the device manager 200.
[0097] (Step S218) The device manager 200 returns the result of the device allocation to the sequence manager 100. If the block is changed in the pre-execution confirmation, the application including the changed block may be sent to the sequence manager 100.
[0098] (Step S220) The sequence manager 100 receives the allocation result notification from the device manager 200 and notifies the user via the UI 400 that preparation for execution is complete.
[0099] (Step S222) The UI 400 displays a list of devices on which the application is executed, and also displays a graphical user interface (GUI) for receiving an input from the user to confirm execution of the application. The UI 400 may also receive a change in device allocation from the user. The UI 400 does not have to display a list of devices.
[0100] (Step S224) The UI 400 receives an input of execution confirmation from the user and transmits an application start instruction to the device manager 200. The device manager 200 transfers the application start instruction to the sequence manager 100.
[0101] It should be noted that steps S220, S222, and S224 provide the user with additional information before the application is executed, but may be omitted since this may increase the user's work.
[0102] With the above, 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 an instruction to start the application, the sequence manager 100 selects an initial block (first block) from among multiple blocks included in the application. Then, the sequence manager 100 transmits an instruction to execute the selected first block to the device manager 200.
[0105] When multiple blocks are operated in succession, the sequence manager 100 may transmit execution instructions for the multiple blocks to the device manager 200 all at once.
[0106] Based on the execution instruction for the first block received from the sequence manager 100, the device manager 200 transmits an execution instruction for the first block to the device 300 allocated to the first block.
[0107] (Step S312) The device manager 200 receives the instruction to execute the first block and updates the schedule (scheduled use time) of each device.
[0108] (Step S314) Upon receiving the instruction to execute 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 transmits a completion notification to the device manager 200. If an error occurs during the execution of the first block, the device 300 may transmit error information to the device manager 200. Furthermore, the device 300 may transmit event information to the device manager 200 during the execution of the first block. As the event information, for example, a sensor output value or an equipment operation can be used, but is not limited to this. The device manager 200 transfers the completion notification and / or various information received from the device 300 to the sequence manager 100.
[0110] (Step S318) Upon receiving a completion notification of the first block, the sequence manager 100 updates the progress of the application and selects the next block (second block). Furthermore, when the sequence manager 100 receives error information, it executes a process corresponding to the error information (e.g., returning to the previous block, returning to the first block, waiting, etc.). Information on the process corresponding to the error information may be, for example, stored in the sequence manager 100 in advance, or may be received from the user via the UI 400. Furthermore, when the sequence manager 100 receives event information, it executes a process corresponding to the event information. For example, if the event information includes an output value of a water level sensor, the sequence manager 100 updates a water level parameter for displaying the water level included in the block being executed.
[0111] (Step S320) The sequence manager 100 sends an instruction to the device manager 200 to execute the selected second block.
[0112] The instruction to execute the second block may be directed to the same device as the instruction to execute the first block (S310), or may be directed to a different device.
[0113] Note that, like the execution instruction for the first block, the execution instruction for the second block may be transmitted to the device manager 200 as a set of execution instructions for a plurality of blocks.
[0114] The subsequent processes are the same as those for the first block (S312 to S318), and therefore illustrations and explanations are omitted. The blocks included in the application are executed in order, and when the execution of the last block is completed, the application execution phase F300 ends.
[0115] In this example, the execution of the blocks is instructed one by one in sequence, but this is not limiting. For example, the execution of multiple blocks to which the same device is assigned may be instructed collectively. In this case, it may be possible to check in advance whether each block satisfies the parameter range for function execution, or to download a block corresponding to a change to the device side before execution. Also, for example, an instruction to execute each block may be given to multiple devices.
[0116] [1.4 Effects, etc.] As described above, an environment in which a wide variety of applications can be developed is provided by using the application including the blocks and the rule database, and the actuator 22 that physically moves or the heater 23 that outputs thermal energy can be safely driven for the application freely developed in that environment. In other words, an environment in which applications can be freely developed is provided, and a function for ensuring safety independent of the application can be provided. As a result, for example, it becomes possible to develop a wide variety of applications with a high degree of freedom and a rule database for ensuring safety in parallel, making it possible to develop a wide variety of applications at an early stage.
[0117] Even after an application has been provided, it is possible to modify the rule database to make the application safer. Even if it becomes necessary to improve a situation that the manufacturer did not anticipate, it is possible to support all applications by updating the rule database, without having to modify the diverse applications themselves, because the rule database is defined independently of the applications.
[0118] It is also possible to maintain a rule base for error handling by detecting the state when the application is executed without modifying the application itself. However, this method of handling always involves dealing with an error after it has occurred, which means allowing situations where the home appliance is overloaded or where safety cannot be guaranteed. Therefore, it is possible to ensure safety by maintaining a rule database independent of the application and modifying the content of the application by referring to the rule data.
[0119] The device 20 in this embodiment includes at least one of the actuator 22 and the heater 23, and a control unit 24 that controls the at least one of the actuator 22 and the heater 23. The control unit 24 obtains an application defined by a plurality of blocks that drive the at least one of the actuator 22 and the heater 23, refers to a rule that prohibits at least one of the remaining two or more specified blocks from being executed when one of the two or more specified blocks is executed, and if the multiple blocks included in the application satisfy the rule, modifies the application and drives the at least one of the actuator 22 and the heater 23 based on the modified application.
[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 is possible to develop applications using blocks that abstract the control of the device 20, and a wide variety of applications can be developed not only by manufacturers but also by third parties, and these applications can be easily executed on the device 20. Furthermore, if an application corresponds to a rule that prohibits at least one of the remaining two or more blocks from being executed when one of the two or more predetermined blocks is executed, the application can be changed before the actuator 22 and / or the heater 23 is driven based on the application. Therefore, it is possible to ensure that one of the two or more predetermined blocks is executed in combination with at least one of the remaining two or more predetermined blocks. In other words, even if an application developer mistakenly instructs to execute a block that is not allowed to be executed alone, it is possible to prevent an application that cannot safely control the device 20 from being executed. Therefore, even if an application developer creates an application that places more importance on suitability to the user than on ensuring the safety of the actuator 22 and / or the heater 23, the safety of the device 20 controlled by the application can be improved.
[0121] Also, for example, in device 20 of this embodiment, control unit 24 may modify the application by (a) adding a new block to the multiple blocks, (b) changing the order of the multiple blocks, or (c) deleting any of the multiple blocks.
[0122] More specifically, for example, in device 20 in this embodiment, the application includes information on the order in which each of the multiple blocks is executed, the two or more predetermined blocks include a first block and a second block, the rule prohibits the first block from being executed before the second block is executed, and control unit 24 may modify the application by adding the first block before the second block when the application includes the second block but does not include the first block before the second block.
[0123] For example, in device 20 of this embodiment, the application may include information on the order in which each of the multiple blocks is executed, the two or more predetermined blocks may include a first block and a second block, the rule may prohibit the first block from being executed before the second block is executed, and when the application includes the first block and the second block and does not include the first block before the second block, control unit 24 may change the application by changing the order of the first block to be before the order of the second block.
[0124] For example, in device 20 of this embodiment, the application may include information on the order in which each of the multiple blocks is executed, the two or more predetermined blocks may include a first block and a second block, the rule may prohibit the first block from being executed before the second block is executed, and control unit 24 may modify the application by deleting the second block when the application includes the second block and does not include the first block before the second block.
[0125] According to these, it is possible to ensure that a first block is executed before a second block by adding a new block, changing the order of blocks, or deleting a block before an application is executed. Therefore, application developers can freely develop applications by lowering the priority of considering the safe operation of the actuator 22 and the heater 23. Furthermore, developers of software incorporated in the device 20 that controls the actuator 22 and the heater 23 can allow execution of blocks without checking the safety of each application every time.
[0126] For example, in device 20 of this embodiment, the application may include information on the order in which each of the multiple blocks is executed, the two or more predetermined blocks may include a second block and a third block, the rule may prohibit the third block from being executed after the second block is executed, and control unit 24 may modify the application by adding a third block after the second block when the application includes the second block but does not include the third block after the second block.
[0127] For example, in device 20 of this embodiment, the application includes information on the order in which each of the multiple blocks is executed, the two or more predetermined blocks include a second block and a third block, the rule prohibits the third block from being executed after the second block is executed, and when the application includes the second block and the third block and does not include the third block after the second block, control unit 24 may change the application by changing the order of the third block to be later than the order of the second block.
[0128] Also, for example, in device 20 of this embodiment, the application may include information on the order in which each of the multiple blocks is executed, the two or more predetermined blocks may include a second block and a third block, the rule may prohibit the third block from being executed after the second block is executed, and control unit 24 may modify the application by deleting the second block when the application includes the second block and does not include the third block after the second block.
[0129] Also, for example, in device 20 of this embodiment, an application includes information on a plurality of blocks and information on the order in which each of them is to be executed, and if a rule includes information that at least one of the plurality of blocks cannot be executed, error information may be presented to the developer indicating that the application cannot be developed or information on the block that cannot be executed.
[0130] According to these, it is possible to ensure that a third block is executed after a second block by adding a new block, changing the order of blocks, or deleting a block before an application is executed. Therefore, application developers can freely develop applications by lowering the priority of considering the safe operation of the actuator 22 and the heater 23. Furthermore, developers of software incorporated in the device 20 that controls the actuator 22 and the heater 23 can allow execution of blocks without checking the safety of each application every time.
[0131] Also, for example, in the device 20 of this embodiment, the rule may be a rule for ensuring that two or more specified blocks are executed in combination to prevent at least one of the actuator 22 and the heater 23 from reaching a durable temperature.
[0132] This makes it possible to prevent the actuator 22 and / or the heater 23 from reaching their durable temperature when the application is executed, thereby improving the safety of the device 20 controlled by the application.
[0133] Also, for example, the device 20 in this embodiment may include a housing 21 having an internal space, and the first rule may be a rule for ensuring that two or more predetermined blocks are executed in combination to prevent the internal space from reaching a durable temperature.
[0134] This makes it possible to prevent the internal space of the housing 21 from reaching a durable temperature when the application is executed, thereby improving the safety of the device 20 controlled by the application.
[0135] (Modification of the first embodiment) In the above-mentioned first embodiment, the processing of the system 1 has been described with reference to Fig. 8, but the processing flow is not limited to this. In particular, for the pre-execution check (S216) described in detail, the timing at which the pre-execution check is performed and the module that is the subject are not limited to this. Therefore, some modified examples of the sequence diagram of the system 1 will be specifically described with reference to Figs. 15A to 15E.
[0136] Fig. 15A is a sequence diagram of the system 1 in Variation 1 of Embodiment 1. In Fig. 15A, the pre-execution check (S216) is performed by the device 300 immediately before the device 300 receives an execution instruction (S310) and executes a block (S314).
[0137] This allows the software built into the device 300 to have a simple configuration in which a pre-execution check is performed immediately before the execution of a block. In other words, steps S215 and S217 can be omitted. As a result, it becomes unnecessary to build functions and communication APIs for performing these processes into the device 300, and it becomes possible to reduce the memory usage of the microcomputer mounted on the device 300.
[0138] The result of the pre-execution check may be notified to the device manager 200 and / or the UI 400. For example, when a parameter is changed or an instruction to stop execution of a block is issued as a result of the pre-execution check, the check result may be notified to the device manager 200 or the UI 400.
[0139] Fig. 15B is a sequence diagram of the system 1 in the second modification of the first embodiment. In Fig. 15B, the pre-execution check (S216) is performed by the device manager 200 when the device manager 200 performs the allocation result notification (S218).
[0140] As a result, the software built into the device 300 does not need to include the function of the pre-execution check (S216). This makes it possible to reduce the use of memory in the device 300, leading to a reduction in the cost of the device 300.
[0141] In addition, in the above embodiment 1, the block execution (S314) by the device 300 is described as being performed based on instructions from the sequence manager 100 implemented in the cloud server 10, but the form in which the block execution (S314) is performed is not limited to this.
[0142] For example, the notification content from the sequence manager 100 may be stored in a memory in the device 300, and a block may be executed in response to a direct instruction from a user via a UI of the apparatus 20 or a UI 400 of the terminal 30. In other words, an application may be downloaded into the device, and the user may execute the application at any timing.
[0143] Fig. 15C is a sequence diagram of the system 1 in Modification 3 of the embodiment 1. In Fig. 15C, in the application execution phase F300, the sequence manager 100 notifies the device 300 of one or more blocks to be executed by the device 300 (S310C). Then, the device 300 stores the notified one or more blocks in a memory (S311C).
[0144] Thereafter, the device 300 receives an instruction from the user to execute one or more stored blocks (S312C), and executes the one or more blocks in order starting from the first block (S314).
[0145] As described above, by storing the blocks in the device 300, the device 300 can be controlled without communication between the device manager 200 and the device 300, thereby reducing the risk that the operation of the device 300 will stop or be delayed due to unstable communication between the cloud server 10 and the apparatus 20. Therefore, this modification is more effective in an environment where the reliability of communication with the cloud server 10 is low and / or in a device 300 where the operation of the device cannot be stopped or delayed while an application is running.
[0146] In addition, in the third modification, as in the first embodiment, the pre-execution check (S216) has an important meaning, but the timing and the module that is the subject of the pre-execution check (S216) are not limited to those shown in Fig. 15C. In other words, the third modification may be combined with the first or second modification.
[0147] Fig. 15D is a sequence diagram of the system 1 in Modification 4 of the embodiment 1. Modification 4 corresponds to a combination of Modification 1 and Modification 3. In Modification 4, as shown in Fig. 15D, the pre-execution confirmation (S216) is performed by the device 300 immediately before the device 300 receives an execution instruction (S312C) and executes a block (S314).
[0148] When a block is downloaded to the device 300 and the user executes the block at a timing of his / her choice, there is a high possibility that the timing of downloading the block and the timing of executing the block will differ significantly. That is, the block may be executed several days, several months, or several years after the block is downloaded to the device 300. In that case, the deterioration level of the device 300 may change between the time the block is downloaded and the time the block is executed. Therefore, in the device 300 in which the execution of the block is affected by the deterioration level, the device 300 performs a pre-execution check immediately before the block is executed, thereby enabling the pre-execution check according to the deterioration level.
[0149] Fig. 15E is a sequence diagram of the system 1 in Modification 5 of the embodiment 1. Modification 5 corresponds to a combination of Modification 2 and Modification 3. In Modification 5, as shown in Fig. 15E, the pre-execution check (S216) is performed by the device manager 200 directly when the device manager 200 performs the allocation result notification (S218).
[0150] (Embodiment 2) Next, a description will be given of embodiment 2. In this embodiment, the main difference between the embodiment and the above embodiment 1 is that the pre-execution confirmation is skipped if the application has already been authenticated. The following description will focus on the differences between the embodiment and the above embodiment 1.
[0151] It should be noted that the hardware configuration and functional configuration of the system 1 in this embodiment are similar to those in the above-described first embodiment, and therefore illustration and description thereof will be omitted.
[0152] [2.1 Processing] In this embodiment, the process is the same as that of the above-mentioned embodiment 1, except that step S216A replaces step S216 of the pre-execution confirmation in the above-mentioned embodiment 1. Therefore, step S216A of the pre-execution confirmation process will be described with reference to FIG.
[0153] FIG. 16 shows a flowchart of the pre-execution confirmation process in the second embodiment.
[0154] (Step S2161A) The device 300 acquires application authentication information. The application authentication information includes information indicating that an application has been authenticated if the application has been authenticated.
[0155] Application authentication is, for example, a mechanism for guaranteeing the quality of an application, and enables confirmation of the safety and / or identity (that the application has not been tampered with), etc. An example of an application to which authentication information is assigned will be described. When the change history of the application's code indicates that no changes have been made to the parameter ranges, information indicating that the application has been authenticated is associated with the application.
[0156] (Step S2162A) The device 300 determines whether the application has been authenticated based on the acquired app information. If it is determined that the application has been authenticated (Yes in S2162A), the device 300 skips the following steps S2165 to S2167 and ends the pre-execution confirmation process. On the other hand, if it is determined that the application has not been authenticated (No in S2162A), the device 300 proceeds to the next step S2165.
[0157] [2.2 Effects, etc.] As described above, the device 20 in this embodiment includes at least one of the actuator 22 and the heater 23, and a control unit 24 that controls at least one of the actuator 22 and the heater 23. The control unit 24 acquires an application that is defined by a plurality of blocks that drive at least one of the actuator 22 and the heater 23 and includes information indicating whether or not the application has been authenticated. If the application does not include information indicating that it is authenticated, the control unit 24 refers to a rule that indicates that two or more specified blocks are executed in combination, and if the plurality of blocks included in the application do not fall under the rule, the control unit 24 modifies the application and drives at least one of the actuator 22 and the heater 23 based on the modified application.
[0158] This makes it possible to achieve the same effects as in the first embodiment. Furthermore, when an application has not been authenticated, processing involving modification of the application can be performed, and when an application has been authenticated, the processing load can be reduced. Therefore, there is no need to perform a determination process for block combinations for all applications, and management through authentication not only reduces the processing load, but also provides design standards for block combinations, enabling application developers to create easier and safer designs.
[0159] Also, for example, in the device 20 according to the present embodiment, when the device 20 has information indicating that the application has been authenticated, the device 20 does not need to refer to the first rule and does not need to change the application.
[0160] According to this, if the application has been authenticated, the process for changing the block can be skipped, and the processing load can be reduced.
[0161] (Embodiment 3) Next, a description will be given of embodiment 3. In this embodiment, the main difference between the embodiment and the first embodiment is that the pre-execution confirmation is skipped when the creator of the application and the creator of the device are the same. The following description will focus on the differences between the embodiment and the first embodiment.
[0162] It should be noted that the hardware configuration and functional configuration of the system 1 in this embodiment are similar to those in the above-described first embodiment, and therefore illustration and description thereof will be omitted.
[0163] [3.1 Processing] In this embodiment, the process is the same as that of the above-mentioned embodiment 1, except that step S216 of the pre-execution confirmation in the above-mentioned embodiment 1 is replaced by step S216B. Therefore, step S216B of the pre-execution confirmation process will be described with reference to FIG.
[0164] FIG. 17 shows a flowchart of the pre-execution confirmation process in the third embodiment.
[0165] (Step S2161B) The device 300 acquires application creator information. The application creator information indicates the creator of the application. The creator means a company, individual, or organization that created the application, and may also be called a developer or author.
[0166] (Step S2163B) The device 300 acquires device manufacturer information. The device manufacturer information indicates the manufacturer of the device. The manufacturer means a company, individual, or organization that manufactured the device 300 (i.e., the apparatus 20), and may also be called a manufacturer.
[0167] (Step S2164B) The device 300 determines whether the creator of the application is different from the creator of the device 300. When the creator of the application is an individual and the creator of the device 300 is a company, the device 300 may determine that the creator of the application is the same as the creator of the device 300 if the company to which the creator of the application belongs matches the creator of the device 300. Furthermore, the device 300 may determine that the creator of the application is the same as the creator of the device 300 if the creator of the application is a development contractor of the creator of the device 300.
[0168] If the creator of the application and the creator of the device 300 are the same (No in S2164B), the device 300 skips the following steps S2165 to S2167 and ends the pre-execution confirmation process. On the other hand, if the creator of the application and the creator of the device 300 are different (Yes in S2164B), the device 300 proceeds to the next step S2165.
[0169] [3.2 Effects, etc.] As described above, the device 20 in this embodiment includes at least one of the actuator 22 and the heater 23, and a control unit 24 that controls at least one of the actuator 22 and the heater 23. The control unit 24 acquires an application defined by a plurality of blocks that drive at least one of the actuator 22 and the heater 23 and including information indicating the creator, acquires information indicating the creator of the device 20, and if the creator of the application is different from the creator of the device 20, refers to a rule indicating that two or more specified blocks are executed in combination, and if the plurality of blocks included in the application do not satisfy the rule, modifies the application and drives at least one of the actuator 22 and the heater 23 based on the modified application.
[0170] This makes it possible to achieve the same effects as those of the first embodiment. Furthermore, when the creator of the application is different from the manufacturer of the device 20, processing involving modification of the application can be performed, and when the creator of the application is the same as the manufacturer of the device 20, the processing load can be reduced.
[0171] (Embodiment 4) Next, a fourth embodiment will be described. In this embodiment, the main difference is that a pre-execution check is performed using a rule corresponding to the deterioration level of the device. The following describes this embodiment, focusing on the differences from the first embodiment.
[0172] It should be noted that the hardware configuration and functional configuration of the system 1 in this embodiment are similar to those in the above-described first embodiment, and therefore illustration and description thereof will be omitted.
[0173] [4.1 Processing] In this embodiment, the process is the same as that of the above-mentioned embodiment 1, except that step S216 of the pre-execution confirmation in the above-mentioned embodiment 1 is replaced by step S216C. Therefore, step S216C of the pre-execution confirmation process will be described with reference to FIG.
[0174] FIG. 18 shows a flowchart of the pre-execution confirmation process in the fourth embodiment.
[0175] (Step S2163C) The device 300 acquires device deterioration information. The device deterioration information indicates the deterioration level of the actuator 22 and / or the heater 23 included in the apparatus 20. The method for detecting the deterioration level is not particularly limited, and may be, for example, detection by a sensor.
[0176] (Step S2165C) The device 300 acquires a rule corresponding to the deterioration level. For example, the device 300 refers to a rule database to acquire a rule corresponding to the deterioration level of the actuator 22 or the heater 23 that the block drives.
[0177] The items that determine the deterioration level are, for example, the number of times the actuator 22 and / or heater 23 included in the device 300 have been used, the duration of use, or the number of days of use from the start of operation to the present. These items are expected to increase in a roughly proportional relationship with the user's use. Therefore, a rule is determined such that the deterioration level increases as the value corresponding to the item increases.
[0178] Furthermore, items that determine the deterioration level are, for example, the sum of the temperatures of the heater 23, or the degree of reproduction of the input and output of the actuator 22 and / or the heater 23. The sum of the temperatures of the heater 23 is a value obtained by adding the temperatures when the heater 23 is driven. For example, the average temperature, the intermediate temperature, or the maximum temperature of the heater 23 during block execution is used. The temperature of the heater 23 may be a ratio of the execution temperature to the limit temperature of the heater 23, or a difference of the execution temperature to the limit temperature of the heater 23.
[0179] The degree of reproduction of the input and output of the actuator 22 and / or the heater 23 is obtained by referring to the relationship between the input value for driving the actuator 22 and / or the heater 23 and the output of the actuator 22 and / or the heater 23. The ratio of the actual output value for a given input to the output value defined in the relationship is used.
[0180] [4.2 Effects, etc.] As described above, the device 20 in this embodiment includes at least one of the actuator 22 and the heater 23, and a control unit 24 that controls at least one of the actuator 22 and the heater 23. The control unit 24 acquires an application defined by a plurality of blocks that drive at least one of the actuator 22 and the heater 23, acquires deterioration information indicating whether at least one of the actuator 22 and the heater 23 has deteriorated, and refers to a rule that corresponds to the deterioration information and indicates that two or more specified blocks are executed in combination. If the plurality of blocks included in the application do not fall under the rule, the control unit 24 changes the application and drives at least one of the actuator 22 and the heater 23 based on the changed application.
[0181] This makes it possible to achieve the same effects as those of embodiment 1. Furthermore, it is possible to use rules corresponding to the deterioration information of device 20, and by using blocks, it is possible to execute a drive instruction to actuator 22 and / or heater 23 from the application side while taking into consideration the performance of the device that deteriorates over time, thereby further improving the safety of device 20 controlled by the application.
[0182] (Other embodiments) Although the system according to one or more aspects of the present disclosure has been described based on the embodiment, the present disclosure is not limited to this embodiment. As long as it does not deviate from the spirit of the present disclosure, various modifications conceived by a person skilled in the art to this embodiment and forms constructed by combining components in different embodiments may also be included within the scope of one or more aspects of the present disclosure.
[0183] In addition, in each of the above embodiments, the sequence manager 100 and the device manager 200 are included in the cloud server 10, but this is not limited to the above. The sequence manager 100 and / or the device manager 200 may be included in the device 20. In addition, the UI 400 is included in the terminal 30, but may be included in the device 20.
[0184] In addition, in each of the above embodiments, the application may be changed based on the degradation information. For example, the device 300 may refer to parameter conversion information in which a plurality of degradation levels are associated with a plurality of parameter conversion methods, acquire a conversion method corresponding to the degradation level, and convert the parameters included in the block using the acquired conversion method. The conversion method may be defined, for example, by a value after conversion, or may be defined by a coefficient applied to a value before conversion.
[0185] In addition, in each of the above embodiments, the application is changed in the pre-execution check and then executed, but this is not limited to the above. For example, when the state of the device 300 is different from the expected state, the application may not be changed and the device manager 200 and / or the sequence manager 100 may be notified of the execution stop (error). [Industrial Applicability]
[0186] This can be used in home appliances and the like that can execute applications defined by multiple functional blocks. [Explanation of symbols]
[0187] 1 System 2a, 2b, 2c, 2d facilities 10. Cloud Server 11 Processors 12. Memory 20, 20a, 20b, 20c, 20d, 20e, 20f, 20g, 20h equipment 21 Case 22 Actuator 23 Heater 24 Control Unit 30, 30a, 30b, 30c, 30d terminals 31 Display 32 Input Devices 100 Sequence Manager 200 Device Manager 300, 300a, 300b, 300c, 300d, 300e, 300f, 300g, 300h devices 400, 400a, 400b, 400c, 400d UI 1000, 1201 blocks 1001, 1002, 1003, 1004, 1005, 1006 parameters 1100 Device Database 1101 Device Information 1200 Declaration of Action 1202 Device Information 1203 Order Information 1300 Rules Database Rules 1301 and 1302 F100 Preparation Phase F200 Pre-application execution phase F300 App Execution Phase
Claims
1. At least one of an actuator and a heater; a control unit that controls the at least one of the actuator and the heater; The control unit is obtaining an application defined in a plurality of blocks for driving the at least one of the actuator and the heater; referring to a rule that prohibits at least one of the remaining two or more blocks from being executed when one of the two or more predetermined blocks is executed, and notifying a user of error information when a plurality of blocks included in the application fall under the rule; Device.
2. The control unit further includes: Modifying the application based on an input from the user in response to the notification of the error information; driving the at least one of the actuator and the heater based on the changed application.
2. The apparatus of claim 1.
3. The error information includes information on one of the predetermined two or more blocks.
3. The apparatus of claim 2.
4. 1. A method of controlling an apparatus comprising at least one of an actuator and a heater, comprising: obtaining an application defined in a plurality of blocks for driving the at least one of the actuator and the heater; referring to a rule that prohibits at least one of the remaining two or more blocks from being executed when one of the two or more predetermined blocks is executed, and notifying a user of error information when a plurality of blocks included in the application fall under the rule; method.
Citation Information
Patent Citations
Display equipment on laundry machine
JP1997075582A
Washing machine
JP2003284889A
Information notification system for household electric appliance
JP2018043031A
Engineering device, engineering method and program
JP2018132817A