Apparatus including actuator and / or heater and method for controlling said apparatus

The system facilitates safe and customizable control programs for household appliances by using functional blocks and pre-execution checks, addressing the challenge of updating control programs to meet diverse user needs.

JP2025137764APending Publication Date: 2025-09-19PANASONIC INTELLECTUAL PROPERTY CORP OF AMERICA
View PDF 6 Cites 0 Cited by

Patent Information

Application Number
JP2025124098
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2020-06-19
Filing Date
2025-07-24
Publication Date
2025-09-19

AI Technical Summary

Technical Problem

Conventional household electrical appliances require pre-stored control programs that are difficult to customize and update to meet the diverse needs of users, posing challenges in safety and efficiency when third-party applications are developed.

Method used

A system that utilizes functional blocks to create an open development environment for control programs, ensuring safety and customizability by managing actuator and heater operations through a cloud server, device manager, and user interface, with pre-execution checks to validate application sequences.

Benefits of technology

Enables easy and safe execution of a wide variety of control programs for household appliances, ensuring safety and customizability while maintaining manufacturer know-how confidentiality.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025137764000001_ABST
    Figure 2025137764000001_ABST
Patent Text Reader

Abstract

To provide an apparatus that can execute a wide variety of control programs more easily and safely.SOLUTION: An apparatus 20 comprises an actuator 22 and / or a heater 23, and a controller 24 that controls the actuator 22 and / or the heater 23. The controller 24 is defined by a plurality of blocks that drive the actuator 22 and / or the heater 23 and obtains an application that includes information on the order in which the plurality of blocks are to be executed, and notifies a user of error information if the information on the order falls under the predetermined order with reference to a first rule that prohibits two or more predetermined blocks that drive the actuator 22 and / or the heater 23 from being executed in a predetermined order.SELECTED DRAWING: Figure 3
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The present disclosure relates to a device including an actuator and / or heater and a method for controlling the device. [Background technology]

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

[0003] [Patent Document 1] Japanese Patent Application Laid-Open No. 2003-284889 Summary of the Invention [Problem to be solved by the invention]

[0004] However, in the above-mentioned conventional technology, a control program developed in advance by the product manufacturer or the like must be pre-stored in the product, making it 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 acquires an application that is defined by a plurality of blocks that drive the at least one of the actuator and the heater and that includes information on the order in which each of the plurality of blocks is to be executed, and refers to a first rule that prohibits two or more predetermined blocks that drive the at least one of the actuator and the heater from being executed in a predetermined order, and if the order information corresponds to the predetermined order, notifies a user of error information.

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

[0008] An apparatus according to one aspect of the present disclosure can execute a wide variety of control programs more easily and safely. [Brief explanation of the drawings]

[0009] [Figure 1] FIG. 1 is a hardware configuration diagram of a system according to the first embodiment. [Figure 2A] FIG. 2A is a hardware configuration diagram of a cloud server according to the first embodiment. [Figure 2B] FIG. 2B is a hardware configuration diagram of the device according to the first embodiment. [Figure 2C] FIG. 2C is a hardware configuration diagram of the terminal according to the first embodiment. [Figure 3] FIG. 3 is a functional configuration diagram of the system according to the first embodiment. [Figure 4] FIG. 4 shows an example of a block that defines an application in the first embodiment. [Figure 5] FIG. 5 shows a plurality of blocks for a washing machine according to the first embodiment. [Figure 6] FIG. 6 shows a plurality of blocks for the microwave oven according to the first embodiment. [Figure 7] FIG. 7 shows a plurality of blocks for the rice cooker according to the first embodiment. [Figure 8] FIG. 8 is a sequence diagram of the system according to the first embodiment. [Figure 9] FIG. 9 shows an example of the device database according to the first embodiment. [Figure 10] FIG. 10 shows an example of an execution content declaration in the first embodiment. [Figure 11] FIG. 11 shows a flowchart of the pre-execution confirmation process according to the first embodiment. [Figure 12] FIG. 12 shows an example of the rule database according to the first embodiment. [Figure 13] FIG. 13 shows an example of changing the order of blocks in the first embodiment. [Figure 14A] FIG. 14A shows an example of changing the order of blocks in the first embodiment. [Figure 14B] FIG. 14B shows an example of changing the order of blocks in the first embodiment. [Figure 15A] FIG. 15A is a sequence diagram of a system according to the first modification of the first embodiment. [Figure 15B] FIG. 15B is a sequence diagram of a system according to the second modification of the first embodiment. [Figure 15C] FIG. 15C is a sequence diagram of a system according to the third modification of the first embodiment. [Figure 15D] FIG. 15D is a sequence diagram of the system according to the fourth modification of the first embodiment. [Figure 15E] FIG. 15E is a sequence diagram of a system according to the fifth modification of the first embodiment. [Figure 16] FIG. 16 shows a flowchart of the pre-execution confirmation process according to the second embodiment. [Figure 17] FIG. 17 shows a flowchart of the pre-execution confirmation process according to the third embodiment. [Figure 18] FIG. 18 shows a flowchart of the pre-execution confirmation process according to the fourth embodiment. DETAILED DESCRIPTION OF THE INVENTION

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

[0011] Therefore, the inventors of the present application have developed a system that uses functional blocks that abstract the control of actuators and / or heaters included in a product to create an environment in which control programs can be developed while maintaining safety, and package and distribute control programs consisting of combinations of multiple functional blocks as applications. This enables the distribution of a wide variety of applications, making it possible 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, a program included in a household appliance may be embedded in a device for directly controlling an actuator and / or a heater, and may contain a mixture of programs developed by the manufacturer and programs developed by a third party. In this case, the manufacturer is unlikely to disclose all information about the appliance, including its know-how, to the third party. For example, the parameters or timing for driving the actuator and / or the heater are know-how related to the performance of the manufacturer's appliance. Therefore, for fear of losing competitiveness, the manufacturer is unlikely to disclose its know-how to third parties so that they can freely drive the appliance.

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

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

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

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

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

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

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

[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, a system 1 according to the present embodiment includes a cloud server 10, devices 20a-20h used in facilities 2a-2d, and terminals 30a-30d. The facilities 2a-2d are, for example, but are not limited to, residences. The facilities 2a-2d may also be, for example, apartments, stores, offices, etc.

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

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

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

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

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

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

[0028] The actuator 22 is a mechanical element that converts input energy into physical movement based on an electrical signal, and may be, for example, an electric motor, a hydraulic cylinder, or a pneumatic actuator, but is not limited to these.

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

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

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

[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 below. A portable information terminal such as a smartphone or a tablet computer can be used as the terminal 30. The terminal 30 may be a terminal fixed to a wall, floor, or ceiling of the facilities 2a to 2d. The terminal 30 may also be included in the devices 20. For example, the terminal 30 may be realized as a display terminal having a display or the like built into each of the devices 20a to 20h.

[0034] As shown in FIG. 2C , the terminal 30 includes a display 31 and an input device 32. The display 31 may be, for example, a liquid crystal display or an organic EL display. The input device 32 may be, for example, a touch panel, a keyboard, a mouse, or a mechanical button. A voice input device may also be used as the input device 32. The display 31 and the input device 32 may be integrated into a touch screen. Alternatively, a gesture input device may be used as the input device 32. The gesture input device includes, for example, a camera and a recognition unit. The camera captures an image including a gesture, and the recognition unit recognizes the gesture using the image.

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

[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 multiple applications. The multiple applications are downloaded to the sequence manager 100 from an application distribution platform, for example, by a user operation. Alternatively, the applications included in the application distribution platform do not need to be downloaded to the sequence manager 100. In this case, information indicating that the applications included in the application distribution platform are linked may be recorded in the database of the sequence manager 100. Details of the applications will be described later.

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

[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 the user and accepts input from the user.

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

[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 (e.g., normal, dancing, rocking). Parameter 1001 can also be said to indicate the type of function. Parameter 1002 includes a value indicating the number of rotations of the drum. Parameter 1002 can also be said to indicate the strength of driving actuator 22 and / or heater 23. Parameter 1003 includes a value indicating the amount of water supplied into the drum as the water level after water supply. Parameter 1003 can also be said to indicate the state of actuator 22 and / or heater 23 after driving. Parameter 1004 includes a value indicating whether the circulation pump is on or off. Parameter 1004 can also be said to indicate whether actuator 22 and / or heater 23 are driven. The parameter 1005 includes information indicating the agitation interval in stages (for example, short, medium, long), and the parameter 1006 includes a value indicating the agitation time.

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

[0047] For example, the abstraction level may be different between a layer for the manufacturer and a layer for parties other than the manufacturer. Examples of layers for parties other than the manufacturer 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 parties other than the manufacturer. A lower level of abstraction means that content close to the parameters that drive the actuators and heaters is controlled.

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

[0049] Furthermore, by providing other manufacturers with blocks with the minimum abstraction level that ensures know-how and safety, the other manufacturers can independently define and implement blocks with a higher level of specificity to realize the provided blocks. This allows each manufacturer to guarantee its own know-how and safety, while allowing third parties that develop only apps to freely develop apps related to the operation of each manufacturer's actuators and heaters.

[0050] In this case, the other manufacturer may not develop a block with a higher level of specificity that is aligned with the block with 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, if "high speed" is selected as a parameter related to motor rotation in an "agitation" block in a washing machine, and the manufacturer's washing machine can achieve a parameter of 150 rpm to achieve "high speed," while the other manufacturer's washing machine can only rotate up to 120 rpm due to motor characteristics, the application developer or user may be notified of an error or that the limit value of 120 rpm will be achieved.

[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 a command from a system administrator. The device manager 200 registers the received sequence manager information, for example, in a sequence manager database. Note that if the sequence manager information has been registered in the sequence manager database in advance, this step may be skipped.

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

[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 the device database 1100 in advance, 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 address of the device 300. Furthermore, the device information 1101 may include any information. FIG. 9 shows an example of a device database according to the first embodiment. The device database 1100 of FIG. 9 has registered therein a plurality of pieces of device information, including the device information 1101. Each piece of device information includes a device ID, an address, a type, a manufacturer's name, a model number, an actuator / heater, and a deterioration level. The actuator / heater is identification information for the actuator 22 and / or the heater 23 constituting the device 300. The deterioration level is an example of deterioration information indicating whether the actuator 22 and / or the heater 23 constituting the device 300 has deteriorated. Here, an increase in the deterioration level value indicates greater deterioration. The device information 1101 may also include information on executable blocks. The information on executable blocks may be information in which the blocks included in the database are associated with executable or unexecutable blocks, or may be information on executable blocks only. Whether a block is executable or not can be determined in advance based on information about the actuator / heater, etc. included in the device information 1101.

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

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

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

[0061] The UI information may include information that can identify the facilities 2a to 2d.

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

[0063] [1.3.2 Pre-application execution phase F200] Next, the pre-application execution phase F200 will be described. Before the pre-application execution phase F200, an application is downloaded from the application distribution platform to the sequence manager 100 in accordance with an instruction from the user via the UI 400. With the application thus downloaded to the sequence manager 100, the following processing is performed.

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

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

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

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

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

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

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

[0071] (Step S214) The device manager 200 allocates a device 300 linked to the device manager 200 to each block included in the execution content declaration based on information that can identify the facilities 2a to 2d. For example, the device manager 200 allocates a device DEV001 having model number WM-0001, which is registered in the device database 1100 of Fig. 9 as being connected to the facility indicated by the received facility information, to each of the multiple blocks 1201 shown in Fig. 10. Note that if the operating status of the device 300 or the connection status to the cloud is managed, allocation of an operating device 300 may be prohibited.

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

[0073] (Step S215) The device manager 200 notifies the device 300 of the device allocation result, whereby multiple blocks included in the application are sent to the devices 300 to which they are respectively allocated.

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

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

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

[0077] (Step S2165) The device 300 acquires a rule corresponding to the application. Here, the rule prohibits two or more predetermined blocks from being executed in a predetermined order. For example, the device 300 refers to a rule database to acquire two or more blocks that are prohibited from being executed in a predetermined order. The rule database may be included in the device 300, the sequence manager 100, or the device manager 200, for example.

[0078] The predetermined order may be, for example, an order in which the second block is located after the first block. More specifically, the predetermined order may be an order in which the second block is located immediately after the first block, that is, an order in which the first block and the second block are consecutive.

[0079] Fig. 12 shows an example of a rule database in the first embodiment. Rules 1301 to 1303 are registered in rule database 1300 of Fig. 12. Each of rules 1301 to 1303 has information on a first block and a second block that are prohibited from being executed consecutively. For example, rule 1301 indicates that an agitation block is prohibited from being executed immediately after a spin block. For another example, rule 1302 indicates that a laundry amount detection block is prohibited from being executed immediately after a water supply block. For another example, rule 1303 indicates that a drain block is prohibited from being executed immediately after an agitation block.

[0080] As examples of two or more blocks that are prohibited from being executed in a predetermined order, two or more blocks that cause the internal space of the housing 21, the actuator 22, or the heater 23 to reach a tolerable temperature are predetermined. The tolerable temperature means a rated temperature, and indicates the maximum allowable temperature. Therefore, if the actuator 22 or the heater 23 is driven using two or more predetermined blocks in a predetermined order, the temperature of the internal space of the housing 21, the actuator 22, or the heater 23 will reach an unallowable temperature.

[0081] 12, each of the rules 1301 to 1303 indicates a first block and a second block that are prohibited from being executed consecutively, but is not limited thereto. For example, the rule may indicate a first block and a second block that are prohibited from being executed non-consecutively. Furthermore, the rule may indicate three or more blocks that are prohibited from being executed consecutively. Furthermore, the rule may further indicate a parameter range for the first block and / or the second block. 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 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 may place a greater emphasis on safety, reducing the room for development of a wide variety of applications. Therefore, the rules may be associated with information about the device 300, etc., independent of the application. Use of such rules makes it possible to achieve both safety and development of a wide variety of applications.

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

[0084] Each of the rules 1301 to 1303 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 heater 23 driven by the block from the rule database 1300. For example, the device 300 acquires the rules 1301 to 1303 for WM-0001 by referring to the rule database 1300 of FIG. 12.

[0085] (Step S2166) The device 300 determines whether the order of multiple blocks included in the application corresponds to a predetermined order of two or more blocks indicated in the rule. For example, the device 300 determines whether a second block is executed after a first block in the application.

[0086] If it is determined that the order of the multiple blocks does not match the predetermined order (No in S2166), the device 300 skips the subsequent step S2167 and ends the pre-execution confirmation process. On the other hand, if it is determined that the order of the multiple blocks matches the predetermined order (Yes in S2166), the device 300 proceeds to the next step S2167.

[0087] (Step S2167) The device 300 changes the order in which each of the multiple blocks included in the application is executed, and then ends the pre-execution verification process. Changing the order of the blocks means (i) adding a new block between the first block and the second block, (ii) deleting the first block or the second block, (iii) changing the order of the first block or the second block so that the first block is located after the second block, or so that another block is located between the first block and the second block, or (iv) any combination thereof. These methods of changing the order of the blocks may be defined in rules.

[0088] A specific example of such a change in the order of blocks will be described with reference to FIGS. 13, 14A, and 14B.

[0089] Fig. 13 shows an example of a change in the order of blocks (i) in the first embodiment. In Fig. 13, when an agitation block (second block) is executed after a spin-drying block (first block), a stop block is added as a new block between the spin-drying block and the agitation block. This makes it possible to suppress an increase in the load on the motor due to a difference in drum rotation speed between the spin-drying block and the agitation block, and to achieve safe driving of actuator 22.

[0090] 14A shows an example of the change (ii) in the order of blocks in the first embodiment. In FIG. 14A, when the laundry amount detection block (second block) is executed after the water supply block (first block), the laundry amount detection block is deleted. This makes it possible to prevent erroneous detection of the laundry amount due to detection of the laundry amount when the laundry is wet, and realizes safe driving of the actuator 22.

[0091] 14B shows an example of the change in the order of blocks (iii) in the first embodiment. In FIG. 14B, when the laundry amount detection block (second block) is executed after the water supply block (first block), the order of the water supply block and the laundry amount detection block is changed so that the water supply block is positioned after the laundry amount detection block. This makes it possible to prevent erroneous detection of the laundry amount due to detection of the laundry amount when the laundry is wet, and realizes safe operation of the actuator 22.

[0092] Although the change in the order of the blocks for a washing machine has been described here, the order of the blocks can be changed in the same way for other devices.

[0093] For example, if an application for a rice cooker includes a steaming block (first block) with steam parameters (e.g., maximum amount) and duration parameters (e.g., 20 minutes or more) that satisfy predetermined conditions, and if another steaming block (second block) is included consecutively after the first steaming block, a display block may be inserted as a new block between the two steaming blocks. This notifies the user to add water to the water container for steam, prevents the steam heater from running dry in the steaming block, and enables continuous steaming. Also, similar to the above, if two steaming blocks are included consecutively, the later steaming block may be deleted. This prevents the steam heater from running dry.

[0094] For example, if an application for a microwave oven includes an oven block (first block) having temperature parameters (e.g., 200 degrees or higher) and execution time parameters (e.g., 10 minutes or longer) that satisfy predetermined conditions, and if another oven block (second block) is included consecutively after the oven block, a stop block may be inserted as a new block between the two oven blocks. This prevents breakdowns and deterioration due to overuse of the heater. Furthermore, if an application for a microwave oven includes an oven block and a microwave block included consecutively after the oven block, the microwave block may be deleted. This prevents sparks from being generated by irradiating microwaves onto the oven tray, improving safety. Furthermore, if an application for a microwave oven includes a baking block (first block) and a steaming block (second block) included consecutively after the baking block, the order of the baking block and the steaming block may be reversed. This allows the steam heater to be warmed before the baking block is executed, making it possible to bake food while applying steam from an early stage of the baking process using the baking block.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

[0113] The subsequent processing is the same as the processing for the first block (S312 to S318), and therefore will not be illustrated or described again. The blocks included in the application are executed in order, and when the execution of the last block is completed, the application execution phase F300 ends.

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

[0115] [1.4 Effects, etc.] As described above, the application including the blocks and the rule database provide an environment in which a wide variety of applications can be developed, and applications freely developed in that environment can safely drive the physically moving actuator 22 or the heater 23 that outputs thermal energy. In other words, an environment in which applications can be freely developed is provided, while a function for ensuring safety can be provided independently of the application. As a result, for example, it becomes possible to develop a wide variety of highly flexible applications and a rule database for ensuring safety in parallel, enabling the rapid development of a wide variety of applications.

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

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

[0118] The device 20 in this embodiment includes at least one of an actuator 22 and a heater 23, and a control unit 24 that controls at least one of the actuator 22 and the heater 23. The control unit 24 acquires an application that is defined by a plurality of blocks that drive at least one of the actuator 22 and the heater 23 and that includes information on the order in which each of the plurality of blocks is executed, and, referring to a first rule that prohibits two or more blocks from being executed in a predetermined order, if the order information corresponds to the predetermined order, modifies the application by changing the order in which each of the plurality of blocks is executed, and drives at least one of the actuator 22 and the heater 23 based on the modified application.

[0119] This allows the actuator 22 and / or the heater 23 to be driven based on an application defined by multiple blocks. This enables the development of applications using blocks that abstract the control of the device 20. This allows not only manufacturers but also third parties to develop a wide variety of applications, and these applications can be easily executed on the device 20. Furthermore, when an application includes two or more predetermined blocks in a predetermined order, the order in which the multiple blocks are executed can be changed before the actuator 22 and / or the heater 23 is driven based on the application. This makes it possible to prohibit two or more predetermined blocks from being executed in a predetermined order. In other words, even if an application developer mistakenly instructs two or more predetermined blocks to be executed in an impermissible order, it is possible to prevent the execution of 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 the heater 23, the safety of the device 20 controlled by the application can be improved.

[0120] For example, in the device 20 of this embodiment, the two or more predetermined blocks include a first block and a second block, and the predetermined order indicates the order in which the second block is located after the first block, and when changing the application, the control unit 24 may change the order in which each of the multiple blocks is executed by adding a new block between the first block and the second block if the order information corresponds to the predetermined order.

[0121] For example, in the device 20 of this embodiment, the two or more predetermined blocks include a first block and a second block, and the predetermined order indicates the order in which the second block is located after the first block, and when changing the application, the control unit 24 may change the order in which each of the multiple blocks is executed by deleting the first block or the second block if the order information corresponds to the predetermined order.

[0122] For example, in device 20 in this embodiment, the two or more specified blocks include a first block and a second block, and the specified order indicates the order in which the second block is located after the first block, and when changing an application, control unit 24 may change the order in which each of the multiple blocks is executed by changing the order of the first block or the second block to an order in which the first block is located after the second block, or an order in which another block is located between the first block and the second block, if the order information corresponds to the specified order.

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

[0124] According to these, it is possible to prevent the second block from being executed after the first block by adding a new block, deleting the first block or the second block, or changing the order of the first block or the second block before the 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 into the device 20 that controls the actuator 22 and the heater 23 can allow the execution of blocks without checking the safety of each application every time, and can prevent multiple blocks from being executed in an impermissible order.

[0125] For example, in the device 20 of this embodiment, the first rule may prohibit at least one of the actuator 22 and the heater 23 from reaching a durable temperature by executing two or more specified blocks in a specified order.

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

[0127] For example, the device 20 in this embodiment may have a housing 21 having an internal space, and the first rule may prohibit the internal space from reaching a durable temperature by executing two or more specified blocks in a specified order.

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

[0129] (Modification of the first embodiment) In the first embodiment, the processing of the system 1 has been described with reference to Fig. 8, but the processing flow is not limited to this. In particular, with regard to the pre-execution check (S216) described in detail, the timing at which the pre-execution check is performed and the module that is the subject of the pre-execution check are not limited to this. Therefore, several modified examples of the sequence diagram of the system 1 will be specifically described with reference to Figs. 15A to 15E.

[0130] 15A is a sequence diagram of the system 1 in Modification 1 of Embodiment 1. In Fig. 15A, the pre-execution check (S216) is performed by the device 300 immediately before the device 300 receives an execution instruction (S310) and executes a block (S314).

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

[0132] The result of the pre-execution check may be notified to the device manager 200 and / or the UI 400. For example, if a parameter change or an instruction to stop execution of a block is issued as a result of the pre-execution check, the check result may be notified to the device manager 200 or the UI 400.

[0133] Fig. 15B is a sequence diagram of the system 1 in Modification 2 of Embodiment 1. In Fig. 15B, the pre-execution check (S216) is performed by the device manager 200 when the device manager 200 notifies the allocation result (S218).

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

[0135] Furthermore, in the above embodiment 1, the block execution (S314) by the device 300 was described as a processing flow performed based on instructions from the sequence manager 100 implemented in the cloud server 10, but the form in which the block execution (S314) is performed is not limited to this.

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

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

[0138] 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).

[0139] As described above, by storing the blocks in the device 300, the device 300 can be controlled without communication between the device manager 200 and the device 300, thereby reducing the risk of the device 300 stopping or delaying operation due to unstable communication between the cloud server 10 and the apparatus 20. Therefore, this modification is more effective in an environment where the reliability of communication with the cloud server 10 is low and / or for a device 300 where stopping or delay in operation of the device while an application is running is not acceptable.

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

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

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

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

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

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

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

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

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

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

[0150] (Step S2162A) The device 300 determines whether the application has been authenticated based on the acquired app information. If it is determined that the application has been authenticated (Yes in S2162A), the device 300 skips the subsequent steps S2165 to S2167 and ends the pre-execution confirmation process. On the other hand, if it is determined that the application has not been authenticated (No in S2162A), the device 300 proceeds to the next step S2165.

[0151] [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 that includes information on the order in which each of the plurality of blocks is executed and information indicating whether or not the block has been authenticated. If the application does not include information indicating that the application is authenticated, the control unit 24 refers to a first rule that prohibits two or more specified blocks from being executed in a specified order. If the order information corresponds to the specified order, the control unit 24 modifies the application by changing the order in which each of the plurality of blocks is executed, and drives at least one of the actuator 22 and the heater 23 based on the modified application.

[0152] This makes it possible to achieve the same effects as in the first embodiment. Furthermore, if an application has not been authenticated, processing involving application changes can be performed, and if the application has been authenticated, the processing load can be reduced. Therefore, there is no need to perform processing to determine the order of blocks for all applications, and management through authentication not only reduces the processing load but also provides a design standard for the order of blocks, allowing application developers to design more easily and safely.

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

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

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

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

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

[0158] FIG. 17 shows a flowchart of the pre-execution confirmation process according to the third embodiment.

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

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

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

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

[0163] [3.2 Effects, etc.] As described above, the device 20 in this embodiment comprises at least one of the actuator 22 and the heater 23, and a control unit 24 that controls at least one of the actuator 22 and the heater 23. The control unit 24 acquires an application that is defined by a plurality of blocks that drive at least one of the actuator 22 and the heater 23, and that includes information on the order in which each of the plurality of blocks is executed and information indicating the creator, acquires information indicating the creator of the device 20, and, if the creator of the application and the creator of the device 20 are different, refers to a first rule that prohibits two or more specified blocks from being executed in a specified order, and if the order information corresponds to the specified order, modifies the application by changing the order in which each of the plurality of blocks is executed, and drives at least one of the actuator 22 and the heater 23 based on the modified application.

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

[0165] (Fourth embodiment) Next, a fourth embodiment will be described. This embodiment differs from the first embodiment in that a pre-execution check is performed using a rule corresponding to the deterioration level of the device. The following describes this embodiment, focusing on the differences from the first embodiment.

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

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

[0168] FIG. 18 shows a flowchart of the pre-execution confirmation process according to the fourth embodiment.

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

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

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

[0172] Furthermore, the item that determines the deterioration level is, for example, the sum of the temperatures of the heater 23, or the degree of reproduction of the input and output of the actuator 22 and / or the heater 23. The sum of the temperatures of the heater 23 is the sum of the temperatures when the heater 23 is driven. For example, the average temperature, the intermediate temperature, or the maximum temperature of the heater 23 during block execution is used. The temperature of the heater 23 may be the ratio of the execution temperature to the limit temperature of the heater 23, or the difference between the execution temperature and the limit temperature of the heater 23.

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

[0174] [4.2 Effects, etc.] As described above, the device 20 in this embodiment comprises at least one of the actuator 22 and the heater 23, and a control unit 24 that controls at least one of the actuator 22 and the heater 23. The control unit 24 acquires an application that is defined by a plurality of blocks that drive at least one of the actuator 22 and the heater 23 and includes information on the order in which each of the plurality of blocks is executed, acquires deterioration information that indicates whether at least one of the actuator 22 and the heater 23 is deteriorated, refers to a first rule corresponding to the deterioration information that prohibits two or more blocks from being executed in a predetermined order, and if the order information corresponds to the predetermined order, modifies the application by changing the order in which each of the plurality of blocks is executed, and drives at least one of the actuator 22 and the heater 23 based on the modified application.

[0175] This makes it possible to achieve the same effects as in 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 drive instructions to actuator 22 and / or heater 23 from the application side while taking into consideration the performance of the device, which deteriorates over time, and to further improve the safety of device 20 controlled by the application.

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

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

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

[0179] 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 this. For example, if the state of the device 300 is different from what was expected, the application may not be changed, and the device manager 200 and / or the sequence manager 100 may be notified of execution termination (error).

[0180] Furthermore, the rules are not limited to those used in the above embodiments. For example, a second rule based on the amount of heat generated by the execution of each of the plurality of blocks may be used. In this case, the control unit 24 may determine whether at least a portion of the device 20 reaches a durability temperature when the application is executed. If the control unit 24 determines that at least a portion of the device 20 reaches a durability temperature, the control unit 24 may change the application by changing the order in which the plurality of blocks are executed. Here, if each of the plurality of blocks includes a parameter for driving at least one of the actuator 22 and the heater 23, the control unit 24 may calculate the temperature of at least a portion of the device 20 at the end of the plurality of blocks by referring to the second rule, the plurality of blocks included in the application, and the parameters included in the plurality of blocks. [Industrial Applicability]

[0181] It can be used in home appliances and the like that can execute applications defined by multiple function blocks. [Explanation of symbols]

[0182] 1 System 2a, 2b, 2c, 2d facilities 10 Cloud Server 11 processors 12 Memory 20, 20a, 20b, 20c, 20d, 20e, 20f, 20g, 20h equipment 21. Cabinet 22 Actuator 23 Heater 24 Control Unit 30, 30a, 30b, 30c, 30d terminals 31 Display 32 Input Devices 100 Sequence Manager 200 Device Manager 300, 300a, 300b, 300c, 300d, 300e, 300f, 300g, 300h devices 400, 400a, 400b, 400c, 400d UI Blocks 1000 and 1201 1001, 1002, 1003, 1004, 1005, 1006 parameters 1100 Device Database 1101 Device Information 1200 Declaration of Action 1202 Device Information 1203 Order Information 1300 rule database 1301, 1302, and 1303 rules F100 Preparation Phase F200 Pre-application execution phase F300 Application 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 obtaining an application defined by a plurality of blocks for driving at least one of the actuator and the heater, the application including information on the order in which each of the plurality of blocks is to be executed; referring to a first rule that prohibits two or more predetermined blocks that drive at least one of the actuator and the heater from being executed in a predetermined order, notifying a user of error information when the order information corresponds to the predetermined order; Device.

2. The control unit further modifying the application by changing the order in which the plurality of blocks are executed based on the user's input 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.

10. The apparatus of claim 1.

3. the error information includes information on the two or more predetermined blocks that are prohibited from being executed in the predetermined order; 3. The apparatus of claim 2.

4. the error information includes information about the order in which the two or more predetermined blocks are executed; 4. The apparatus of claim 3.

5. 1. A method of controlling a device comprising at least one of an actuator and a heater, comprising: obtaining an application defined by a plurality of blocks for driving at least one of the actuator and the heater, the application including information on the order in which each of the plurality of blocks is to be executed; referring to a first rule that prohibits two or more predetermined blocks that drive at least one of the actuator and the heater from being executed in a predetermined order, notifying a user of error information if the order information corresponds to the predetermined order; method.

Citation Information

Patent Citations

  • Program start management system

    JP1998063488A

  • Control device and processing monitoring method

    JP2013127674A

  • Semiconductor device

    JP2014032559A

  • SYSTEM AND METHOD FOR CONTROLLING IoT DEVICE EXECUTION ORDER

    JP2019091460A

  • Systems and methods for controlling operating of an appliance

    WO2019063118A1