Apparatus comprising an actuator and / or heater, and method for controlling the apparatus.
The apparatus and method allow for customizable and safe execution of control programs in household appliances by using a rule-based system to ensure safe execution of applications defined by functional blocks, addressing the inflexibility and safety concerns of existing systems.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2025-03-06
- Publication Date
- 2026-03-13
AI Technical Summary
Existing household electrical appliances and housing equipment control systems are inflexible, making it difficult to customize and update control programs according to user desires, and there is a risk of unsafe applications being developed by third parties due to lack of manufacturer know-how.
An apparatus and method that includes an actuator and/or heater, with a control unit capable of executing applications defined by multiple functional blocks, and a rule-based system to ensure safe execution, allowing modification based on user input and preventing unsafe combinations.
Enables easy and safe execution of a wide variety of control programs, ensuring safety and flexibility in application development while maintaining manufacturer know-how confidentiality.
Smart Images

Figure 0007829767000001 
Figure 0007829767000002 
Figure 0007829767000003
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 Art
[0002] Conventionally, household electrical appliances and housing equipment are controlled according to operation conditions (control programs) prepared in advance by manufacturers and the like. Patent Document 1 discloses a washing machine capable of setting washing operation conditions desired by a user.
Prior Art Documents
Patent Documents
[0003]
Patent Document 1
Summary of the Invention
Problems to be Solved by the Invention
[0004] However, in the above prior art, a control program developed in advance by a manufacturer or the like of a product must be stored in the product in advance, and it is difficult to customize and update the control program according to various user desires.
[0005] Therefore, the present disclosure provides an apparatus and a method capable of executing a variety of control programs more simply and safely.
Means for Solving the Problems
[0006] An apparatus according to one aspect of the present disclosure comprises at least one actuator and a heater, and a control unit that controls the actuator and the heater, the control unit acquires an application defined by a plurality of blocks that drive the actuator and the heater, and refers to a rule that prohibits the execution of at least one of the predetermined two or more blocks when one of the predetermined two or more blocks is executed, and notifies the user of error information if the plurality of blocks included in the application fall under the rule. Furthermore, the application is modified based on the user's input in response to the notification of the error information.
[0007] These comprehensive or specific embodiments may be implemented as a system, method, integrated circuit, computer program, or recording medium such as a computer-readable CD-ROM, or as any combination of a system, method, integrated circuit, computer program, and recording medium. [Effects of the Invention]
[0008] An apparatus according to one aspect of this disclosure can execute a wide variety of control programs more easily and safely. [Brief explanation of the drawing]
[0009] [Figure 1] Figure 1 is a hardware configuration diagram of the system in Embodiment 1. [Figure 2A] Figure 2A is a hardware configuration diagram of the cloud server in Embodiment 1. [Figure 2B] Figure 2B is a hardware configuration diagram of the device in Embodiment 1. [Figure 2C] Figure 2C is a hardware configuration diagram of the terminal in Embodiment 1. [Figure 3] Figure 3 is a functional configuration diagram of the system in Embodiment 1. [Figure 4] Figure 4 shows an example of a block that defines the application in Embodiment 1. [Figure 5]FIG. 5 shows a plurality of blocks for the washing machine in Embodiment 1. [Figure 6] FIG. 6 shows a plurality of blocks for the microwave oven in Embodiment 1. [Figure 7] FIG. 7 shows a plurality of blocks for the rice cooker in Embodiment 1. [Figure 8] FIG. 8 is a sequence diagram of the system in Embodiment 1. [Figure 9] FIG. 9 shows an example of the device database in Embodiment 1. [Figure 10] FIG. 10 shows an example of the execution content declaration in Embodiment 1. [Figure 11] FIG. 11 shows a flowchart of the pre-execution confirmation process in Embodiment 1. [Figure 12] FIG. 12 shows an example of the rule database in Embodiment 1. [Figure 13] FIG. 13 shows an example of the change of the application in Embodiment 1. [Figure 14] FIG. 14 shows an example of the change of the application in Embodiment 1. [Figure 15A] FIG. 15A is a sequence diagram of the system in Modification 1 of Embodiment 1. [Figure 15B] FIG. 15B is a sequence diagram of the system in Modification 2 of Embodiment 1. [Figure 15C] FIG. 15C is a sequence diagram of the system in Modification 3 of Embodiment 1. [Figure 15D] FIG. 15D is a sequence diagram of the system in Modification 4 of Embodiment 1. [Figure 15E] FIG. 15E is a sequence diagram of the system in Modification 5 of Embodiment 1. [Figure 16] FIG. 16 shows a flowchart of the pre-execution confirmation process in Embodiment 2. [Figure 17] FIG. 17 shows a flowchart of the pre-execution confirmation process in Embodiment 3. [Figure 18] FIG. 18 shows a flowchart of the pre-execution confirmation process in Embodiment 4.
Embodiments for Carrying Out the Invention
[0010] (Findings on which the present disclosure is based) The background of the present inventors' arrival at the present disclosure will be described. In household 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 that reduces the difficulty of developing the control program and enables third parties to easily participate in the development of the control program. In such an environment, for example, an apparel company can also develop a control program for a washing machine for washing clothes sold by the company itself.
[0011] ' Therefore, the present inventors constructed an environment in which a control program can be developed while maintaining safety by using functional blocks that abstract the control of the actuator and / or heater 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, the programs included in household electrical appliances are embedded in devices that directly control actuators and / or heaters, and are expected to include a mix of programs developed by the manufacturer and programs developed by third parties. In this case, the manufacturer is unlikely to disclose all information about the household electrical appliances, including know-how, to third parties. For example, the parameters or timing for driving actuators and / or heaters are know-how related to the performance of the manufacturer's household electrical appliances. Therefore, because it could lead to a decline in competitiveness, the manufacturer is unlikely to open up its know-how to third parties so that they can freely operate the household electrical appliances.
[0013] Therefore, due to a lack of information on household electrical appliances, third parties may create applications that include control combinations or parameter ranges not anticipated by the manufacturer, i.e., applications whose safety cannot be guaranteed. Providing such applications to users is undesirable.
[0014] Furthermore, manufacturers of household electrical appliances and similar products may attempt to update users' lives by providing new control programs. However, developing a wide variety of new control programs requires a tremendous amount of effort, including parameter adjustment and hardware performance evaluation. Because household electrical appliances and similar products physically operate actuators and / or heaters, it is easy to predict that the effort required for program development, such as performance evaluation, will be greater than that required for smartphone programs. However, in an era where on-demand development tailored to the individual lifestyles of each user is required, rather than mass production, it is necessary to develop a wide variety of control programs for household electrical appliances and similar products, just as with smartphone programs. Therefore, manufacturers must create a wide variety of applications that ensure product safety while reducing the enormous amount of effort required.
[0015] Furthermore, manufacturers may want to guarantee that their home appliances and other devices will operate safely even when 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 home appliances and other devices to verify their safety.
[0016] Therefore, this disclosure provides a device that can more easily and safely execute a wide variety of applications defined by multiple functional blocks that drive actuators and / or heaters.
[0017] The embodiments will be described in detail below with reference to the drawings.
[0018] The embodiments described below are all general or specific examples. The numerical values, shapes, materials, components, arrangement and connection configurations of components, steps, and the order of steps shown in the following embodiments are examples only and are not intended to limit the scope of the claims.
[0019] Furthermore, the figures are not necessarily strictly accurate. In each figure, substantially identical components are denoted by the same reference numerals, and redundant 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 Figures 1 to 2C. Figure 1 is a hardware configuration diagram of System 1 in Embodiment 1. Figure 2A is a hardware configuration diagram of the cloud server 10 in Embodiment 1. Figure 2B is a hardware configuration diagram of the device 20 in Embodiment 1. Figure 2C is a hardware configuration diagram of the terminal 30 in Embodiment 1.
[0021] As shown in Figure 1, the system 1 in this embodiment comprises a cloud server 10, devices 20a to 20h used in facilities 2a to 2d, and terminals 30a to 30d. Facilities 2a to 2d are, for example, residences, but are not limited to these. Facilities 2a to 2d may be, for example, apartments, shops, 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 devices 20a-20h and terminals 30a-30d via the computer network. A physical server may be used instead of the cloud server 10.
[0023] As shown in Figure 2A, the cloud server 10 virtually comprises a processor 11 and memory 12 connected to the processor 11. The processor 11 functions as a sequence manager and device manager, as described later, when instructions or software programs stored in memory 12 are executed.
[0024] Devices 20a to 20h are electrical machinery and equipment used in facilities 2a to 2d. Note that in Figure 1, devices 20c to 20h, used in facilities 2b to 2d, are not shown. In the following, devices 20a to 20h will be referred to as "device 20" unless otherwise specified.
[0025] The device 20 can be household electrical appliances (home appliances) and housing equipment, etc. Household electrical appliances (home appliances) and housing equipment, etc. are not limited to equipment used in a residence, but also include equipment used in a business. In this disclosure, household electrical appliances and housing equipment, etc. may be abbreviated as household electrical appliances, etc. Examples of household appliances include microwave ovens, rice cookers, blenders, electric ovens, electric toasters, electric kettles, hot plates, induction heating (IH) cookers, roasters, bakeries, electric pressure cookers, electric waterless cooking pots, multi-cookers, coffee makers, refrigerators, washing machines, dishwashers, vacuum cleaners, air conditioners, air purifiers, humidifiers, hair dryers, fans, and ion generators. Examples of housing equipment include electric shutters, electronic locks, and electric water heaters for bathtubs. The device 20 is not limited to these.
[0026] As shown in Figure 2B, the device 20 comprises 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; it does not 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. The 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 are examples of internal spaces for processing an object.
[0028] The actuator 22 is a mechanical element that converts input energy into physical motion based on an electrical signal. Examples of actuators 22 include, but are not limited to, electric motors, hydraulic cylinders, and pneumatic actuators.
[0029] The heater 23 is an electric heater that converts electrical energy into thermal energy. The heater 23 heats the object by means of, for example, Joule heating, induction heating, and dielectric heating. For example, a nichrome wire, a coil, and a magnetron can be used as the heater 23.
[0030] Here, we will explain an example of why the apparatus 20 of this disclosure includes an actuator 22 and / or a heater 23. Consider a case where a manufacturer of household electrical appliances 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. In this case, the third party can create a program that controls the actuator 22 and / or heater 23 in a manner that deviates from the parameter range or drive limits of the actuator 22 and / or heater 23 that the manufacturer has assumed to be able to safely drive. In particular, driving the physically moving actuator 22 or the heater 23 that outputs thermal energy in a manner not assumed by the manufacturer presents a significant challenge in ensuring safety. Examples of driving in a manner not assumed by the manufacturer include high-speed rotation of an electric motor, which is an example of an actuator, and the supply of overcurrent to the heater 23. The inventors of this application aimed to avoid hindering the creation of an environment that can provide users with a wide variety of applications by excessively considering safety aspects. Therefore, the present disclosure focuses on the apparatus 20, specifically on the actuator 22 that moves physically, or the heater 23 that outputs thermal energy, with the aim of ensuring safety.
[0031] The control unit 24 is a controller that controls the actuator 22 and / or heater 23, and functions as a device described later. The control unit 24 is composed of, for example, an integrated circuit.
[0032] Terminals 30a to 30d are used in facilities 2a to 2d, respectively, and function as user interfaces. Note that in Figure 1, terminals 30b to 30d, which are used in facilities 2b to 2d, are not shown. In the following, terminals 30a to 30d will be referred to as terminal 30 when distinction between them is unnecessary.
[0033] Terminal 30 is connected to the cloud server 10 and the device 20 via a computer network and functions as a user interface (UI), as described later. A portable information terminal such as a smartphone or tablet computer can be used as Terminal 30. Terminal 30 may also be a terminal fixed to the wall, floor, or ceiling of facilities 2a to 2d. Furthermore, Terminal 30 may be included within the device 20. For example, Terminal 30 may be implemented as a display terminal having a built-in display in each of the devices 20a to 20h.
[0034] As shown in Figure 2C, the terminal 30 includes a display 31 and an input device 32. For example, a liquid crystal display and an organic EL display can be used as the display 31. For example, a touch panel, keyboard, mouse, and mechanical buttons can be used as the input device 32. Alternatively, 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 touchscreen. Alternatively, a gesture input device may be used as the input device 32. A gesture input device, for example, includes a camera and a recognition unit. The camera captures an image including the gesture, and the recognition unit recognizes the gesture using the image.
[0035] [1.2 Functional Configuration] Next, the functional configuration of System 1 in this embodiment will be described with reference to Figure 3. Figure 3 is a functional configuration diagram of System 1 in Embodiment 1.
[0036] The cloud server 10 includes a sequence manager 100 and a device manager 200. Devices 20a to 20h each include devices 300a to 300h. Terminals 30a to 30d each include UIs 400a to 400d.
[0037] In the following, if it is not necessary to distinguish between devices 300a to 300h, it will be referred to as device 300. Similarly, if it is not necessary to distinguish between UI400a to 400d, it will be referred to as UI400.
[0038] The sequence manager 100 manages multiple applications. These applications are downloaded to the sequence manager 100 from the application distribution platform, for example, through user actions. Alternatively, applications included in the application distribution platform do not necessarily need to be downloaded to the sequence manager 100. In that case, information indicating that the applications included in the application distribution platform are associated with the sequence manager 100 may be recorded in the sequence manager 100's database. Details about the applications will be described later.
[0039] The device manager 200 has a database for managing multiple facilities 2a-2d and the devices 300 and UI 400 used in each of the facilities 2a-2d. The device manager 200 manages the devices 300 and UI 400 by recording device information and UI information associated with facilities 2a-2d in the database. The device information and UI information include, for example, control functions, drive functions, and operating status. For example, the device manager 200 can manage the operating status of device 300 and understand the operating schedule of device 300. The device manager 200 may also manage log information for device 300.
[0040] Note that such a database may be held by the sequence manager 100 instead of the device manager 200, or both the sequence manager 100 and the device manager 200 may hold it.
[0041] Device 300 has control and drive functions for the apparatus 20. Device 300 can drive the apparatus 20 according to instructions from the device manager 200.
[0042] UI400 provides information to the user and accepts input from the user.
[0043] Here, we will describe the application. In this embodiment, the application (hereinafter sometimes abbreviated as "app") means a control program defined by a plurality of functional blocks (hereinafter abbreviated as "blocks") that drive the actuator 22 and / or heater 23. Each of the plurality of blocks may include parameters for driving the actuator 22 or heater 23. Specifically, each of the plurality of blocks is an abstraction of the control of the actuator 22 or heater 23. In addition to the plurality of blocks that drive the actuator 22 and / or heater 23, the application may also include blocks that do not drive the actuator 22 and / or heater 23. An example of a block that does not drive the actuator 22 and / or heater 23 is an information display using the interface of device 300, an audio output using the buzzer of device 300, or turning on or off a lamp of device 300. Furthermore, the block may include conditions for starting the driving of the actuator 22 or heater 23. For example, an application including the first block and the second block will be described as an example. Here, when switching to the second block during the execution of the first block, the switch occurs when the start condition included in the second block is met. Furthermore, the block may also include a termination condition instead of a start condition. When switching to the second block during the execution of the first block, the switch occurs when the termination condition included in the first block is met.
[0044] Figure 4 shows an example of a block defining the application in Embodiment 1. Block 1000 shown in Figure 4 is a block that controls the agitation operation of the washing machine and includes parameters 1001 to 1006. Parameter 1001 includes information indicating the type of agitation (e.g., normal, dancing, swaying). Parameter 1001 can also be rephrased as indicating the type of function. Parameter 1002 includes a value indicating the rotation speed of the drum. Parameter 1002 can also be rephrased as indicating the intensity of the drive of the actuator 22 and / or heater 23. Parameter 1003 includes a value indicating the amount of water supplied into the drum as the water level after water supply. Parameter 1003 can also be rephrased as indicating the state after the actuator 22 and / or heater 23 are driven. Parameter 1004 includes a value indicating the on / off state of the circulation pump. Parameter 1004 can also be rephrased as indicating whether or not to drive the actuator 22 and / or heater 23. Parameter 1005 includes information indicating the stirring interval in stages (e.g., short, medium, long). Parameter 1006 includes a value indicating the stirring time.
[0045] Multiple such blocks are used to define an application. For example, multiple blocks like those shown in Figures 5 to 7 are used.
[0046] Figure 5 shows multiple blocks for a washing machine in Embodiment 1. Figure 6 shows multiple blocks for a microwave oven in Embodiment 1. Figure 7 shows multiple blocks for a rice cooker in Embodiment 1. Note that the multiple blocks shown in Figures 5 to 7 are illustrative, and the blocks for the washing machine, microwave oven, and rice cooker are not limited to these. For example, the multiple blocks may be hierarchically structured by levels of abstraction.
[0047] For example, the level of abstraction may be changed between the manufacturer's hierarchy and the non-manufacturer's hierarchy. Examples of non-manufacturer hierarchies include other manufacturer hierarchies and third-party hierarchies. In this case, the manufacturer's hierarchy is less abstract than the non-manufacturer's hierarchy. A lower level of abstraction means that the control is closer to the parameters that drive the actuators and heaters.
[0048] On the other hand, manufacturers can enable non-manufacturers to develop applications by providing blocks with the minimum level of abstraction necessary to guarantee know-how and safety. Manufacturers can enable more people to develop applications by providing general users with blocks with an even higher level of abstraction. An even higher level of abstraction corresponds to blocks defined in terms that general users can understand even without specialized knowledge. Terms that can be understood without specialized knowledge correspond to the functions of household electrical appliances, for example. Specifically, if "plenty" is selected as the water volume parameter in the "wash" block for a washing machine, changes will be made in one concrete layer, such as raising the water level parameter in the water supply block from 60 mm to 100 mm and lowering the rotation amount parameter in the agitation block from 120 rpm to 100 rpm. As described above, rearranging blocks and changing parameters at a higher level of abstraction can be achieved with blocks at a lower level of abstraction. In addition, multiple blocks can be defined for devices other than washing machines, microwave ovens, and rice cookers, similar to Figures 5 to 7. These blocks allow for flexible application development through reconfiguration and parameter adjustment, while ensuring safety and confidentiality regarding the operation of actuators and heaters.
[0049] Furthermore, by providing other manufacturers with blocks that have the minimum level of abstraction necessary to guarantee know-how and safety, other manufacturers can independently define and implement blocks with an even higher level of concretization to realize the provided blocks. This allows each manufacturer to guarantee their own know-how and safety while enabling third parties who only develop the applications to freely develop applications related to the operation of each manufacturer's actuators and heaters.
[0050] At this time, other manufacturers may not develop blocks with a higher level of detail that match the minimum level of abstraction required to guarantee the know-how and safety provided by the manufacturer. Instead, they may return an error and inform the app developer and user that the blocks provided by the manufacturer are unusable or operate within a limited parameter range. Specifically, if "high speed" is selected as the motor rotation parameter in the "agitation" block for a washing machine, and the manufacturer's washing machine can achieve a parameter of 150 rpm to realize "high speed," but another manufacturer's washing machine can only rotate up to 120 rpm due to the characteristics of its motor, the app developer or user may be informed of an error or that it will operate at the limit of 120 rpm.
[0051] [1.3 Processing] Next, the processing of System 1 configured as described above will be explained with reference to Figure 8. Figure 8 is a sequence diagram of System 1 in Embodiment 1.
[0052] [1.3.1 Preparation Phase F100] First, let's explain the preparation phase F100.
[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 a command from the system administrator. The device manager 200 registers the received sequence manager information in, for example, the sequence manager database. Note that if the sequence manager information is already registered in the sequence manager database, this step may be skipped.
[0054] The sequence manager information includes, for example, the identifier and / or address of sequence manager 100 (e.g., URL (Uniform Resource Locator), IP (Internet Protocol) address, etc.). Furthermore, the sequence manager information may include any other information.
[0055] (Step S112) Device 300 sends device information 1101 to device manager 200. This transmission of device information 1101 occurs, 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 device information 1101 is already registered in device database 1100, this step may be skipped.
[0056] Alternatively, the device information 1101 may be sent to the UI400 and then registered with the device manager 200 via the UI400.
[0057] Device information 1101 includes the identifier and / or address of device 300. Furthermore, device information 1101 may include arbitrary information. Figure 9 shows an example of a device database in Embodiment 1. The device database 1100 in Figure 9 has multiple device information entries, including device information 1101. Each device information entry includes a device ID, address, type, manufacturer name, model number, actuator / heater, and degradation level. The actuator / heater is the identification information of the actuator 22 and / or heater 23 that constitute device 300. The degradation level is an example of degradation information indicating whether the actuator 22 and / or heater 23 that constitute device 300 are degraded or not. Here, a higher value indicates greater degradation. Device information 1101 may include information on executable blocks. Information on executable blocks may be information that associates whether the blocks included in the database are executable or not, or it may be information only on executable blocks. Furthermore, whether or not a block is executable can be determined in advance based on information such as actuators / heaters included in the device information 1101. Note that the device information 1101 may also include information that can identify facilities 2a to 2d.
[0058] (Step S114) UI400 transmits UI information to device manager 200. This transmission of UI information is performed, for example, by user instruction. Device manager 200 registers the received UI information in a UI database, for example. Note that this step may be skipped if the UI information is already registered in the UI database.
[0059] UI information includes, for example, the identifier and / or address of UI400. Furthermore, UI information may include any other information.
[0060] Furthermore, the UI information may include information that can identify facilities 2a to 2d.
[0061] Through the above process, the sequence manager 100, device manager 200, device 300, and UI400 can be linked to each other and establish connections. This completes the preparation phase F100.
[0062] [1.3.2 Pre-application execution phase F200] Next, we will explain the pre-application execution phase F200. Prior to the pre-application execution phase F200, the application is downloaded from the application distribution platform to the sequence manager 100 according to instructions from the user via the UI400. With the application downloaded to the sequence manager 100 in this state, the following processes are performed.
[0063] (Step S210) The UI400 receives an application execution request from the user and sends the application execution request, which includes the application's identification information, to the sequence manager 100. For example, the user selects an application from among several applications downloaded to the sequence manager 100 via the UI400 and instructs the sequence manager 100 to execute the selected application.
[0064] Furthermore, the application execution request sent from UI400 to sequence manager 100 is sent together with information that can identify facilities 2a to 2d.
[0065] Furthermore, the application execution request does not necessarily 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 after detecting the user's actions or state.
[0066] (Step S212) The sequence manager 100 sends an execution declaration for the application identified by the application execution request to the device manager 200. The execution declaration includes information on multiple blocks that define the application to be executed and information that can identify facilities 2a to 2d.
[0067] Figure 10 shows an example of an execution declaration in Embodiment 1. Figure 10 shows an execution declaration 1200 for an application defined by combining multiple blocks for a washing machine as shown in Figure 5. The execution declaration 1200 includes multiple blocks 1201, information 1202 about the devices required for the execution of each block 1201, and information 1203 about the order in which each block 1201 is executed.
[0068] Note that the execution declaration 1200 does not need to include device information 1202. In that case, the device manager 200 needs to search for a device capable of executing the block in the facility indicated by the received facility information from the information of multiple blocks 1201 and then assign the device.
[0069] In Figure 10, the device information 1202 shows the model number of device 300, but is not limited to this. The device information 1202 can be any information that can indicate the conditions for device 300 that can be assigned to a block. For example, the device information 1202 may include multiple model numbers, or it may include only the type of device, intended use, location, or any combination thereof.
[0070] (Step S214) The device manager 200 assigns a device 300 associated with the device manager 200 to each block included in the execution declaration, based on information that can identify facilities 2a to 2d. For example, the device manager 200 assigns to each of the multiple blocks 1201 shown in Figure 10 a device DEV001 with model number WM-0001, which is registered in the device database 1100 in Figure 9 as connected to the facility indicated by the received facility information. Note that if the operating status of device 300 or its connection status to the cloud is managed, the assignment of an operating device 300 may be prohibited.
[0071] Furthermore, if, for example, 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 at the facility, the device manager 200 notifies the sequence manager 100 that the execution of the declared application is not possible.
[0072] (Step S215) The device manager 200 notifies the device 300 of the device assignment results. As a result, multiple blocks included in the application are sent to the respective assigned devices 300.
[0073] (Step S216) Device 300 verifies the block before executing it. That is, before executing the block, device 300 checks whether any problems will occur in device 300 when the block is executed. For example, device 300 checks for safety and / or efficiency issues.
[0074] Then, device 300 modifies the block based on the verification results. This corrects the block so that the problem does not occur.
[0075] This pre-execution verification process will be explained in more detail with reference to Figure 11. Figure 11 shows a flowchart of the pre-execution verification process in Embodiment 1.
[0076] (Step S2165) Device 300 retrieves rules corresponding to the application. Here, the rules prohibit the execution of at least one of two or more predetermined blocks if one of those blocks is executed. For example, device 300 retrieves a combination of two or more predetermined blocks by referring to a rule database. The rule database may be contained in device 300, for example, or in sequence manager 100 or device manager 200.
[0077] One rule could be, for example, one that prohibits the execution of the first block before the execution of the second block. More specifically, one rule could be, for example, one that prohibits the execution of the first block from the start of the application until before the execution of the second block. Such a first block could be, for example, a block that sets the environment so that the second block can be executed. Specifically, as the first block, a drainage block could be used to create a water-restricted environment before the execution of the second block (for example, a dewatering block).
[0078] Furthermore, rules can be used, for example, to prohibit the execution of a third block after the execution of a second block. More specifically, a rule can be used, for example, to prohibit the execution of a third block between the execution of a second block and the termination of the application. Such a third block could be, for example, a block for returning the environment changed by the execution of the second block back to the environment before the execution of the second block. Specifically, as the third block, a fan block could be used to return the temperature that rose due to the execution of the second block (for example, a drying block) back to the temperature before the execution of the second block.
[0079] Figure 12 shows an example of a rule database in Embodiment 1. Rule database 1300 in Figure 12 has rules 1301 and 1302 registered. Each of rules 1301 and 1302 has information on a predetermined combination of two or more blocks. For example, rule 1301 indicates that it is prohibited for a drain block not to be executed before a dewatering block is executed. Also, for example, rule 1302 indicates that it is prohibited for a blowing block not to be executed after a drying block.
[0080] Such predetermined combinations of two or more blocks include, for example, combinations of blocks that prevent the internal space of the housing 21, the actuator 22, or the heater 23 from reaching the tolerance temperature. Tolerance temperature refers to the rated temperature, which indicates the maximum temperature that can be allowed. Therefore, if the actuator 22 or the heater 23 is driven using the predetermined combination of two or more blocks, the temperature of the internal space of the housing 21, the actuator 22, or the heater 23 will not reach an unacceptable temperature. In other words, the rule is to ensure that the predetermined combination of two or more blocks is executed in order to prevent the internal space of the housing 21, the actuator 22, or the heater 23 from reaching the tolerance temperature.
[0081] Note that in Figure 12, rules 1301 and 1302 each represent a combination of two blocks, but are not limited to this. For example, in addition to a combination of two blocks, a rule may also represent a range of parameters for at least one of those two blocks. Furthermore, the rules define a wide range of blocks that can be used for the development of a diverse range of applications.
[0082] For example, the rules for safely operating the actuator 22 or heater 23 may change depending on the environment of the device 300, such as the internal space of the housing 21, and the rules may not depend solely on the performance of the actuator 22 or heater 23 itself. Therefore, in order to operate safely in any environment, the rules will have a high weight on safety considerations, reducing the scope for developing a wide variety of applications. For this reason, the rules may be associated with information such as the device 300, independently of the application. By using such rules, it is possible to achieve both safety and the development of a wide variety of applications.
[0083] The rule relates to the range in which the actuator 22 or heater 23 can be safely operated. The range in which it can be safely operated may be a range that takes into account the block's start or end conditions. Consider a first block and a second block that is executed after the first block as an example. A rule may be set to assume that executing the first block until the start condition of the second block is reached places a load that affects the safety of the actuator 22 or heater 23. In other words, the rule depends on the performance of the actuator 22 or heater 23, the block's start or end conditions, etc.
[0084] Each of rules 1301 and 1302 further includes a type, a manufacturer's name, and a model number. This allows device 300 to retrieve rules from the rule database 1300 that correspond to the actuator 22 or heater 23 driven by the block. For example, device 300 retrieves rules 1301 and 1302 for WM-0001 by referring to the rule database 1300 in Figure 12.
[0085] (Step S2166) Device 300 determines whether multiple blocks included in the application fall under the rule.
[0086] For example, if a rule prohibits the execution of the first block before the execution of the second block, and the application includes the second block but does not include the first block before it, then device 300 determines that multiple blocks included in the application fall under the rule. Specifically, if the application includes the second block but does not include the first block, then device 300 determines that multiple blocks included in the application fall under the rule. Also, if the application includes the second block and includes the first block only after it, then device 300 determines that multiple blocks included in the application fall under the rule. On the other hand, if the application includes the second block and includes the first block before it, then device 300 determines that multiple blocks included in the application do not fall under the rule. Also, if the application does not include either the first or second block, then device 300 determines that multiple blocks included in the application do not fall under the rule. Furthermore, if the application includes the first block but does not include the second block, device 300 determines that the multiple blocks included in the application do not fall under the rule.
[0087] For example, if a rule prohibits the execution of a third block after the execution of a second block, and the application includes a second block but does not include a third block after it, device 300 will determine that the multiple blocks included in the application comply with the rule. Specifically, if the application includes a second block but does not include a third block, device 300 will determine that the multiple blocks included in the application comply with the rule. Also, if the application includes a second block and includes a third block only before it, device 300 will determine that the multiple blocks included in the application comply with the rule. On the other hand, if the application includes a second block and includes a third block after it, device 300 will determine that the multiple blocks included in the application do not comply with the rule. Also, if the application does not include either a second or a third block, device 300 will determine that the multiple blocks included in the application do not comply with the rule. Furthermore, if the application includes a third block but does not include a second block, device 300 determines that the multiple blocks included in the application do not fall under the rules.
[0088] If it is determined that multiple blocks do not meet the rule (No in S2166), device 300 skips the subsequent step S2167 and terminates the pre-execution verification process. On the other hand, if it is determined that multiple blocks meet the rule (Yes in S2166), device 300 proceeds to the next step S2167.
[0089] (Step S2167) Device 300 modifies the application and terminates the pre-execution verification process. Modifying the application means (i) adding a new block to a set of blocks, (ii) changing the order of blocks, (iii) deleting any of blocks, or (iv) any combination thereof. These methods of modifying the application may be defined in rules.
[0090] Specific examples of such application changes will be explained with reference to Figures 13 and 14.
[0091] Figure 13 shows an example of a modification to the application in Embodiment 1. In Figure 13, a drain block (first block) is added before the spin-drying block (second block). This allows water to be drained from inside the washing machine before the spin-drying block is executed, enabling safe operation of the actuator 22 during spin-drying.
[0092] Figure 14 shows an example of application modification in Embodiment 1. In Figure 14, a fan block (third block) is added after the drying block (second block). This allows the fan to lower the temperature of the washing machine after it has risen due to drying, thereby preventing the user from getting burned and improving the safety of the washing machine.
[0093] While this explanation focuses on modifying the application for washing machines, the same method can be used to modify applications 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 heating block (first block) before the steaming block, the steam heating block may be added 10 minutes before the steaming block is executed. This allows the steam heater to be heated before the steaming block is executed, enabling smooth steam irradiation when the steaming block is executed.
[0095] For example, if an application for a microwave oven includes a steaming block (second block) and does not include a steam heating block (first block) before the steaming block, the steam heating block may be added 10 minutes before the steaming block is executed. This allows the steam heater to be heated before the steaming block is executed, enabling smooth steam irradiation during the steaming block's execution. Also, if an application for a microwave oven includes an oven block (second block) and does not include a fan block (third block) after the oven block, the fan block may be added after the oven block. This allows the fan block to cool the oven cavity, which has become very hot after the oven block is executed, thus speeding up the execution of the next block.
[0096] (Step S217) Device 300 sends the results of the pre-execution check to Device Manager 200. If a block has been modified, the modified block may also be sent to Device Manager 200.
[0097] (Step S218) The device manager 200 returns the device assignment results to the sequence manager 100. Additionally, if blocks have been modified during pre-execution verification, the application containing the modified blocks may be sent to the sequence manager 100.
[0098] (Step S220) The sequence manager 100 receives an assignment result notification from the device manager 200 and notifies the user via the UI 400 that it is ready to run.
[0099] (Step S222) UI400 displays a list of devices on which the application will run, and also displays a graphical user interface (GUI) for receiving user input to confirm application execution. UI400 may also accept user requests to change device assignments. Furthermore, UI400 does not necessarily need to display a list of devices.
[0100] (Step S224) UI400 receives confirmation input from the user and sends an application start command to device manager 200. Device manager 200 forwards the application start command to sequence manager 100.
[0101] Steps S220, S222, and S224 provide the user with additional information before the application is executed, but they may be omitted as they could increase the user's workload.
[0102] This completes the pre-application execution phase F200.
[0103] [1.3.3 Application Execution Phase F300] Next, we will explain the application execution phase F300.
[0104] (Step S310) Upon receiving an application start command, the sequence manager 100 selects the first block (the first block) from among the multiple blocks included in the application. Then, the sequence manager 100 sends an execution command for the selected first block to the device manager 200.
[0105] Furthermore, if multiple blocks are to be operated sequentially, the sequence manager 100 may send the execution instructions for multiple blocks together to the device manager 200.
[0106] Based on the execution instructions for the first block received from the sequence manager 100, the device manager 200 sends the execution instructions for the first block to the device 300 assigned to the first block.
[0107] (Step S312) Upon receiving the execution instruction for the first block, Device Manager 200 updates the schedule (scheduled usage time) for each device.
[0108] (Step S314) Device 300 receives an instruction to execute the first block and executes the first block.
[0109] (Step S316) Device 300 sends a completion notification to device manager 200 when the execution of the first block is complete. If an error occurs during the execution of the first block, device 300 may also send error information to device manager 200. In addition, device 300 may send event information to device manager 200 during the execution of the first block. Event information may include, but is not limited to, sensor output values or equipment operations. Device manager 200 forwards the completion notification and / or various information received from device 300 to sequence manager 100.
[0110] (Step S318) The sequence manager 100 receives a notification that the first block is complete, updates the application's progress, and selects the next block (the second block). The sequence manager 100 also executes a corresponding process (e.g., return to the previous block, return to the first block, wait, etc.) if it receives error information. Information regarding the error response process may be stored in the sequence manager 100 beforehand, or it may be received from the user via the UI 400. Furthermore, the sequence manager 100 executes a corresponding process if it receives event information. For example, if the event information includes the output value of the water level sensor, the sequence manager 100 updates the water level parameter to display 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] The execution instruction in the second block may be for the same device as the execution instruction in the first block (S310), or it may be for a different device.
[0113] Note that, similar to the execution instructions for the first block, the execution instructions for the second block may be sent to the device manager 200 as a bundle of execution instructions for multiple blocks.
[0114] The subsequent processing is the same as the processing for the first block (S312-S318), so the 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] Note that, while block execution is instructed one by one in this example, it is not limited to this. For example, the execution of multiple blocks assigned to the same device may be instructed together. In that case, it may be necessary to check in advance whether each block meets the parameter range for function execution, or to download the corresponding block to the device before execution. Alternatively, for example, block execution instructions may be issued to multiple devices individually.
[0116] [1.4 Effects, etc.] As described above, the application, including blocks, and the rule database provide an environment in which a wide variety of applications can be developed, and enable the safe operation of the physically moving actuator 22 or the heater 23 that outputs thermal energy for the applications freely developed in that environment. In other words, it provides an environment in which applications can be freely developed, and also provides functions to ensure safety independently of the applications. As a result, for example, it becomes possible to create a wide variety of highly flexible applications and a rule database to ensure safety in parallel, making it possible to develop a wide variety of applications at an early stage.
[0117] Furthermore, even after the application has been released, it is possible to modify the rule database to create an application with enhanced security. Also, even if improvements are needed in situations that the manufacturer did not anticipate, the rule database is defined independently of the application itself, so it is possible to update the rule database to address all applications without having to change the various applications themselves.
[0118] One possible approach is to maintain an error handling rule base by detecting the application's state when it is executed, without modifying the application itself. However, this method would always deal with errors after they occur, meaning it would be acceptable to put a strain on the appliance or create a situation where safety cannot be guaranteed. Therefore, by maintaining a rule database independently of the application and modifying the application's content by referencing the rule data, safety can be ensured.
[0119] The apparatus 20 in this embodiment includes at least one actuator 22 and a heater 23, and a control unit 24 that controls at least one of the actuator 22 and the heater 23. The control unit 24 obtains an application defined by a plurality of blocks that drive at least one of the actuator 22 and the heater 23, and refers to a rule that prohibits at least one of the remaining two or more blocks from being executed when one of the two or more blocks is executed. If the plurality of blocks included in the application meet 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.
[0120] According to this, the actuator 22 and / or heater 23 can be driven based on an application defined by multiple blocks. Therefore, it becomes possible to develop applications using blocks that abstract the control of the device 20, allowing not only the manufacturer but also third parties to develop a wide variety of applications, and these applications can be easily executed on the device 20. Furthermore, if the application falls under a rule that prohibits the execution of at least one of two or more predetermined blocks when one of those blocks is executed, the application can be modified before the actuator 22 and / or heater 23 are driven based on the application. Therefore, it can be ensured that one of two or more predetermined blocks is executed in combination with at least one of the other two or more predetermined blocks. In other words, even if an application developer mistakenly instructs the execution of a block that is not permitted to be executed alone, it can be prevented from executing an application that cannot safely control the device 20. Therefore, even if an application developer creates an application that prioritizes user convenience over ensuring the safety of the actuator 22 and / or heater 23, the safety of the device 20 controlled by the application can be improved.
[0121] For example, in the device 20 of this embodiment, the control unit 24 may modify the application by (a) adding a new block to a plurality of blocks, (b) changing the order of a plurality of blocks, or (c) deleting any of the plurality of blocks.
[0122] More specifically, for example, in the device 20 of this embodiment, the application includes information on the order in which each of a plurality of blocks is executed, the predetermined two or more blocks include a first block and a second block, the rule prohibits the first block from being executed before the second block, and the control unit 24 may modify the application by adding the first block before the second block if the application includes the second block and does not include the first block before the second block.
[0123] For example, in the device 20 of this embodiment, the application includes information on the order in which each of a plurality of blocks is executed, the predetermined two or more blocks include a first block and a second block, the rule prohibits the first block from being executed before the second block, and the control unit 24 may modify the application by changing the order of the first block to be before the order of the second block if the application includes a first block and a second block and does not include a first block before the second block.
[0124] For example, in the device 20 of this embodiment, the application includes information on the order in which each of a plurality of blocks is executed, a predetermined two or more blocks include a first block and a second block, the rule prohibits the first block from being executed before the second block, and the control unit 24 may modify the application by deleting the second block if the application includes the second block and does not include the first block before the second block.
[0125] According to these methods, it is possible to ensure that the first block is executed before the second block by adding a new block, changing the order of blocks, or deleting blocks before the application is executed. Therefore, application developers can freely develop their applications with a lower priority on ensuring the safe operation of the actuator 22 and heater 23. Furthermore, developers of the software incorporated into the device 20 that controls the actuator 22 and heater 23 can permit the execution of blocks without having to check the safety of each application every time.
[0126] For example, in the device 20 of this embodiment, the application includes information on the order in which each of a plurality of blocks is executed, the predetermined two or more blocks include a second block and a third block, the rule prohibits the execution of the third block after the execution of the second block, and the control unit 24 may modify the application by adding a third block after the second block if the application includes a second block and does not include a third block after the second block.
[0127] For example, in the device 20 of this embodiment, the application includes information on the order in which each of a plurality of blocks is executed, the predetermined two or more blocks include a second block and a third block, the rule prohibits the execution of the third block after the execution of the second block, and the control unit 24 may modify the application by changing the order of the third block to be after the order of the second block if the application includes a second block and a third block and does not include a third block after the second block.
[0128] For example, in the device 20 of this embodiment, the application includes information on the order in which each of a plurality of blocks is executed, the predetermined two or more blocks include a second block and a third block, the rule prohibits the execution of the third block after the execution of the second block, and the control unit 24 may modify the application by deleting the second block if the application includes the second block and does not include the third block after the second block.
[0129] For example, in the device 20 of this embodiment, the application includes information on multiple blocks and the order in which each block is executed, and the rule includes information that at least one block among the multiple blocks cannot be executed. In such cases, the application may be presented to the developer as error information indicating that it cannot be developed or information on the block that cannot be executed.
[0130] According to these methods, 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 blocks before the application is executed. Therefore, application developers can freely develop their applications with a lower priority on ensuring that the actuator 22 and heater 23 are driven safely. Furthermore, developers of the software incorporated into the device 20 that controls the actuator 22 and heater 23 can permit the execution of blocks without having to check the safety of each application every time.
[0131] For example, in the apparatus 20 of this embodiment, the rule may be a rule to ensure that two or more predetermined blocks are executed in combination in order to prevent at least one of the actuator 22 and the heater 23 from reaching its durability temperature.
[0132] According to this, it is possible to prevent the actuator 22 and / or heater 23 from reaching their tolerable temperature when the application is executed, thereby improving the safety of the device 20 controlled by the application.
[0133] For example, the apparatus 20 in this embodiment may include a housing 21 having an internal space, and the first rule may be a rule to ensure that two or more predetermined blocks are combined and executed in order to prevent the internal space from reaching a durable temperature.
[0134] According to this, it is possible to suppress the internal space of the enclosure 21 from reaching the tolerance temperature when the application is executed, thereby improving the safety of the device 20 controlled by the application.
[0135] (Modified version of Embodiment 1) In the above embodiment 1, the processing of system 1 was explained with reference to Figure 8, but the processing flow is not limited thereto. In particular, the timing of the pre-execution check (S216) that is explained in detail and the main module involved are not limited thereto. Therefore, several modifications of the sequence diagram of system 1 will be specifically explained with reference to Figures 15A to 15E.
[0136] Figure 15A is a sequence diagram of System 1 in Modification 1 of Embodiment 1. In Figure 15A, pre-execution confirmation (S216) is performed by device 300 immediately before device 300 receives an execution instruction (S310) and executes the block (S314).
[0137] This allows the software incorporated into device 300 to have a simple configuration in which pre-execution checks are performed immediately before execution of a block. In other words, steps S215 and S217 can be omitted. As a result, it becomes unnecessary to incorporate functions and communication APIs for performing those processes into device 300, and it becomes possible to reduce the memory usage of the microcontroller mounted on device 300.
[0138] Furthermore, the results of the pre-execution check may be notified to the device manager 200 and / or UI400. For example, if a parameter change or a block execution stop instruction is issued as a result of the pre-execution check, the check results may be notified to the device manager 200 or UI400.
[0139] Figure 15B is a sequence diagram of System 1 in Modification 2 of Embodiment 1. In Figure 15B, the pre-execution check (S216) is performed by the Device Manager 200 when the Device Manager 200 notifies the allocation result (S218).
[0140] This means that the software incorporated into device 300 does not need to include the pre-execution verification (S216) function. Therefore, the memory usage of device 300 can be reduced, leading to a reduction in the cost of device 300.
[0141] Furthermore, in the above embodiment 1, the block execution (S314) by device 300 was described as being performed by instructions from the sequence manager 100 implemented in the cloud server 10, but the form in which 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 the memory of the device 300, and the block may be executed by direct instruction from the user through the UI of the device 20 or the UI 400 of the terminal 30. In other words, the application may be downloaded to the device, and the user may execute the application at any time.
[0143] Figure 15C is a sequence diagram of System 1 in Modification 3 of Embodiment 1. In Figure 15C, during 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). The device 300 then saves the one or more notified blocks to memory (S311C).
[0144] Subsequently, device 300 receives instructions from the user to execute one or more saved blocks (S312C), and executes one or more blocks in order from the first block (S314).
[0145] As described above, by saving the block to device 300, device 300 can be controlled without communication between device manager 200 and device 300. This reduces the risk of device 300 stopping or experiencing delays due to unstable communication between cloud server 10 and device 20. Therefore, this modified version is more effective in environments where communication with cloud server 10 is unreliable, and / or in devices 300 where device stopping or delays during application execution are unacceptable.
[0146] In Modification Example 3, as in Embodiment 1, the pre-execution check (S216) is of significant importance, but the timing of the pre-execution check (S216) and the main module involved are not limited to those shown in Figure 15C. In other words, Modification Example 3 may be combined with Modification Example 1 or 2.
[0147] Figure 15D is a sequence diagram of System 1 in Modification 4 of Embodiment 1. Modification 4 corresponds to a combination of Modification 1 and Modification 3. In Modification 4, as shown in Figure 15D, pre-execution confirmation (S216) is performed by device 300 immediately before device 300 receives an execution instruction (S312C) and executes the block (S314).
[0148] If a block is downloaded to device 300 and the user executes it at their discretion, there is a high probability that the timing of the block download and the timing of its execution will be significantly different. In other words, the block may be executed several days, months, or even years after it is downloaded to device 300. In such cases, the degradation level of device 300 may change between the time the block is downloaded and the time it is executed. Therefore, for device 300, where the execution of the block is affected by the degradation level, a pre-execution check is performed by device 300 immediately before the block is executed, enabling a pre-execution check that is appropriate to the degradation level.
[0149] Figure 15E is a sequence diagram of 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 Figure 15E, the pre-execution confirmation (S216) is performed by the device manager 200 when the device manager 200 notifies the allocation result (S218).
[0150] (Embodiment 2) Next, Embodiment 2 will be described. This embodiment differs from Embodiment 1 in that pre-execution verification is skipped if the application is already authenticated. The following description will focus on the differences from Embodiment 1.
[0151] The hardware configuration and functional configuration of System 1 in this embodiment are the same as those in Embodiment 1 described above, so they are not shown or described.
[0152] [2.1 Processing] In this embodiment, the process is the same as in Embodiment 1, except that step S216 of the pre-execution verification process is replaced by step S216A. Therefore, step S216A of the pre-execution verification process will be explained with reference to Figure 16.
[0153] Figure 16 shows a flowchart of the pre-execution verification process in Embodiment 2.
[0154] (Step S2161A) Device 300 obtains app authentication information. App authentication information includes information indicating that the application is authenticated, if so.
[0155] Application authentication is a mechanism to guarantee the quality of an application, for example, and allows verification of the application's security and / or identity (that it has not been tampered with). An example of an application with authentication information is described below. If the change history of the application's code shows that no changes were made to the parameter range, then information indicating that the application is authenticated is associated with it.
[0156] (Step S2162A) Device 300 determines whether the application is authenticated based on the acquired application information. If it is determined that the application is authenticated (Yes in S2162A), device 300 skips the following steps S2165 to S2167 and terminates the pre-execution verification process. On the other hand, if it is determined that the application is not authenticated (No in S2162A), device 300 proceeds to the next step S2165.
[0157] [2.2 Effects, etc.] As described above, the apparatus 20 in this embodiment comprises at least one 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 which 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 it is authenticated. If the application does not include information indicating that it is authenticated, it refers to a rule indicating that two or more predetermined blocks are executed in combination. If the plurality of blocks included in the application do not match the rule, it modifies the application and drives at least one of the actuator 22 and the heater 23 based on the modified application.
[0158] This allows for the same effects as in Embodiment 1. Furthermore, it enables processing that involves modifying the application when the application is not authenticated, and reduces the processing load when the application is authenticated. Therefore, it is not necessary to perform judgment processing on block combinations for all applications, and management through authentication reduces the processing load and establishes design standards for block combinations, enabling easier and safer design for application developers.
[0159] Furthermore, for example, in the device 20 of this embodiment, if the application has information indicating that it is authenticated, the application does not need to be modified without referring to the first rule.
[0160] According to this, if the application is authenticated, the process of modifying the block can be skipped, thereby reducing the processing load.
[0161] (Embodiment 3) Next, Embodiment 3 will be described. This embodiment differs from Embodiment 1 in that pre-execution verification is skipped when the application creator and the device creator are the same person. The following description will focus on the differences from Embodiment 1.
[0162] The hardware configuration and functional configuration of System 1 in this embodiment are the same as those in Embodiment 1 described above, so they are not shown or described.
[0163] [3.1 Processing] In this embodiment, the process is the same as in Embodiment 1, except that step S216 of the pre-execution verification process is replaced by step S216B. Therefore, step S216B of the pre-execution verification process will be explained with reference to Figure 17.
[0164] Figure 17 shows a flowchart of the pre-execution verification process in Embodiment 3.
[0165] (Step S2161B) Device 300 retrieves app creator information. App creator information indicates the creator of the application. The creator refers to the company, individual, or organization that created the application, and may also be called the developer or author.
[0166] (Step S2163B) Device 300 retrieves device manufacturer information. Device manufacturer information indicates the manufacturer of the device. The manufacturer refers to the company, individual, or organization that manufactured device 300 (i.e., device 20), and is sometimes referred to as the producer.
[0167] (Step S2164B) Device 300 determines whether the creator of the application and the creator of Device 300 are different. If the creator of the application is an individual and the creator of Device 300 is a company, Device 300 may determine that the creator of the application and the creator of Device 300 are the same if the company to which the application creator belongs matches the creator of Device 300. Alternatively, Device 300 may determine that the creator of the application and the creator of Device 300 are the same if the application creator is a development contractor of the creator of Device 300.
[0168] If the creator of the application and the creator of device 300 are the same (No in S2164B), device 300 skips the subsequent steps S2165 to S2167 and terminates the pre-execution verification process. On the other hand, if the creator of the application and the creator of device 300 are different (Yes in S2164B), device 300 proceeds to the next step S2165.
[0169] [3.2 Effects, etc.] As described above, the apparatus 20 in this embodiment comprises at least one 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 which is defined by a plurality of blocks that drive at least one of the actuator 22 and the heater 23 and includes information indicating the creator, acquires information indicating the creator of the apparatus 20, and if the creator of the application and the creator of the apparatus 20 are different, it refers to a rule which indicates that two or more predetermined blocks are executed in combination, modifies the application if the plurality of blocks included in the application do not fall under the rule, and drives at least one of the actuator 22 and the heater 23 based on the modified application.
[0170] This allows for achieving the same effects as in Embodiment 1. Furthermore, when the application creator and the manufacturer of the device 20 are different, processing involving changes to the application can be performed, and when the application creator and the manufacturer of the device 20 are the same, the processing load can be reduced.
[0171] (Embodiment 4) Next, Embodiment 4 will be described. This embodiment differs from Embodiment 1 in that pre-execution checks are performed using rules corresponding to the degradation level of the device. The following description will focus on the differences from Embodiment 1.
[0172] The hardware configuration and functional configuration of System 1 in this embodiment are the same as those in Embodiment 1 described above, so they are not shown or described.
[0173] [4.1 Processing] In this embodiment, the process is the same as in Embodiment 1, except that step S216 of the pre-execution verification process is replaced by step S216C. Therefore, step S216C of the pre-execution verification process will be explained with reference to Figure 18.
[0174] Figure 18 shows a flowchart of the pre-execution verification process in Embodiment 4.
[0175] (Step S2163C) Device 300 acquires device degradation information. The device degradation information indicates the degradation level of the actuator 22 and / or 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.
[0176] (Step S2165C) Device 300 retrieves a rule corresponding to the degradation level. For example, device 300 refers to a rule database to retrieve a rule corresponding to the degradation level of the actuator 22 or heater 23 driven by the block.
[0177] The factors that determine the degradation level include, for example, the number of uses, usage time, or number of days of use from the start of operation to the present for the actuator 22 and / or heater 23 included in device 300. These factors are assumed to increase in roughly proportional proportion to user usage. Therefore, the rules are determined such that the degradation level increases as the value corresponding to each factor increases.
[0178] Furthermore, the items that determine the degradation level are, for example, the sum of the temperatures of the heater 23, or the degree of reproducibility of the input and output of the actuator 22 and / or the heater 23. The sum of the temperatures of the heater 23 is the sum of the temperatures when the heater 23 is driven. For example, the average temperature, intermediate temperature, or maximum temperature of the heater 23 during block execution can be used. The temperature of the heater 23 may also 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.
[0179] The degree of reproducibility of the input and output of the actuator 22 and / or heater 23 is determined by referring to the relationship between the input value for driving the actuator 22 and / or heater 23 and the output of the actuator 22 and / or heater 23. The ratio of the actual output value for a given input to the output value defined in the relationship is used.
[0180] [4.2 Effects, etc.] As described above, the apparatus 20 in this embodiment comprises at least one 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, acquires degradation information indicating whether at least one of the actuator 22 and the heater 23 is degraded, and refers to a rule corresponding to the degradation information that indicates that two or more predetermined blocks are executed in combination. If the plurality of blocks included in the application do not match the rule, the control unit 24 modifies the application and drives at least one of the actuator 22 and the heater 23 based on the modified application.
[0181] This allows for the same effects as in Embodiment 1. Furthermore, rules corresponding to the degradation information of the device 20 can be used, and by using blocks, drive instructions from the application to the actuator 22 and / or heater 23 can be executed while considering the performance of the device as it ages, thereby further improving the safety of the device 20 controlled by the application.
[0182] (Other embodiments) The above describes a system relating to one or more aspects of the present disclosure based on embodiments, but the present disclosure is not limited to these embodiments. Within the scope of one or more aspects of the present disclosure, various modifications to these embodiments that a person skilled in the art could conceive, or configurations constructed by combining components from different embodiments, may also be included, as long as they do not deviate from the spirit of the present disclosure.
[0183] Furthermore, in each of the above embodiments, the sequence manager 100 and the device manager 200 were included in the cloud server 10, but are not limited to this. The sequence manager 100 and / or the device manager 200 may be included in the device 20. Also, the UI 400 was included in the terminal 30, but may be included in the device 20.
[0184] Furthermore, in each of the above embodiments, the application may be modified based on the degradation information. For example, device 300 may refer to parameter conversion information, which associates a plurality of degradation levels with a plurality of parameter conversion methods, to obtain a conversion method corresponding to a degradation level, and use the obtained conversion method to convert the parameters included in the block. The conversion method may be defined, for example, by the converted value, or by a coefficient applied to the value before conversion.
[0185] Furthermore, in each of the above embodiments, the application was modified during pre-execution verification and then executed, but this is not the only way. For example, if the state of device 300 is different from what was expected, the application may not be modified, and the device manager 200 and / or sequence manager 100 may be notified of execution termination (error). [Industrial applicability]
[0186] It can be used in home appliances and other devices that can execute applications defined by multiple functional blocks. [Explanation of symbols]
[0187] 1 System 2a, 2b, 2c, 2d facilities 10 Cloud Servers 11 processors 12 memory 20, 20a, 20b, 20c, 20d, 20e, 20f, 20g, 20h equipment 21 cabinets 22 Actuators 23 Heater 24 Control Unit Terminals 30, 30a, 30b, 30c, 30d 31 displays 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 Parameters 1001, 1002, 1003, 1004, 1005, 1006 1100 Device Database 1101 Device Information 1200 Declaration of Execution Content 1202 Device Information 1203 Order Information 1300 Rule Database 1301, 1302 Rules F100 Preparation Phase F200 App Pre-Execution Phase F300 Application Execution Phase
Claims
1. At least one actuator and a heater, The system comprises a control unit that controls at least one of the actuator and the heater, The control unit, The application defined by the plurality of blocks that drive at least one of the actuator and the heater is obtained, Referencing a rule that prohibits at least one of the remaining two or more predetermined blocks from being executed when one of the two or more predetermined blocks is executed, if multiple blocks included in the application fall under the rule, the user is notified of error information, and further, Based on the user's input in response to the notification of the error information, the application is modified. Device.
2. The control unit further, Based on the modified application, the actuator and at least one of the heater are driven. The apparatus according to claim 1.
3. The error information includes information about the order of one of the two or more predetermined blocks. The apparatus according to claim 1.
4. The rule is a rule corresponding to the at least one piece of degradation information of the actuator and the heater, The apparatus according to claim 1.
5. The rule prohibits a situation in which the safety of at least one of the actuator and the heater cannot be guaranteed. The apparatus according to claim 1.
6. A method for controlling a device comprising at least one actuator and a heater, The application defined by the plurality of blocks that drive at least one of the actuator and the heater is obtained, Referencing a rule that prohibits at least one of the remaining two or more predetermined blocks from being executed when one of the two or more predetermined blocks is executed, if multiple blocks included in the application fall under the rule, the user is notified of error information, and further, Based on the user's input in response to the notification of the error information, the application is modified. 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