DEVICE COMPRISING ACTUATOR AND / OR HEATER AND METHOD FOR CONTROLLING SUCH DEVICE - Patent application
The system allows for customizable and safe execution of control programs for household appliances by using functional blocks to modify applications within predefined parameter ranges, addressing the challenge of diverse user needs and safety in third-party applications.
Patent Information
- Application Number
- JP2025027827
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2020-06-19
- Filing Date
- 2025-02-25
- Publication Date
- 2026-01-14
- Estimated Expiration
- 2041-06-16
AI Technical Summary
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 without complete manufacturer information.
A system that utilizes functional blocks to develop and distribute control programs for actuators and heaters, ensuring safety by modifying applications to adhere to predefined parameter ranges and ensuring compatibility with various devices.
Enables easy customization and safe execution of a wide variety of control programs for household appliances, balancing user needs with manufacturer safety and efficiency.
Smart Images

Figure 0007799106000001 
Figure 0007799106000002 
Figure 0007799106000003
Abstract
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 aspect of the present disclosure includes at least one of an actuator and a heater, and a control unit that controls the at least one of the actuator and the heater, wherein the control unit obtains an application defined by a plurality of blocks that drive the at least one of the actuator and the heater, each of the plurality of blocks having parameters for driving the actuator or the heater, the plurality of blocks including a first block and a second block that is executed after the first block, modifies the application by referring to a first rule that defines a first parameter range in which driving of the at least one of the actuator and the heater is not permitted, and modifies the application by changing the parameters of the first block so that a start condition of the second block is satisfied, and drives the at least one of the actuator and the heater based on the modified application.
[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 block modification in the first embodiment. [Figure 14] FIG. 14 shows an example of block modification in the first embodiment. [Figure 15A] FIG. 15A is a sequence diagram of a system according to the first modification of the first embodiment. [Figure 15B] FIG. 15B is a sequence diagram of a system according to the second modification of the first embodiment. [Figure 15C] FIG. 15C is a sequence diagram of a system according to the third modification of the first embodiment. [Figure 15D] FIG. 15D is a sequence diagram of the system according to the fourth modification of the first embodiment. [Figure 15E] FIG. 15E is a sequence diagram of a system according to the fifth modification of the first embodiment. [Figure 16] FIG. 16 shows a flowchart of the pre-execution confirmation process according to the second embodiment. [Figure 17] FIG. 17 shows a flowchart of the pre-execution confirmation process according to the third embodiment. [Figure 18] FIG. 18 shows a flowchart of the pre-execution confirmation process according to the fourth embodiment. [Figure 19] FIG. 19 shows an example of the rule database according to the fourth embodiment. 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 or not a block is executable can be determined in advance based on information about actuators / heaters and the like included in the device information 1101. The device information 1101 may include information that can identify the facilities 2a to 2d.
[0058] (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.
[0059] The UI information includes, for example, an identifier and / or an address of the UI 400. Furthermore, the UI information may include any information.
[0060] The UI information may include information that can identify the facilities 2a to 2d.
[0061] Through the above processing, the sequence manager 100, the device manager 200, the device 300, and the UI 400 are linked to each other and can establish a connection with each other, thereby completing the preparation phase F100.
[0062] [1.3.2 Pre-application execution phase F200] Next, the 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.
[0063] (Step S210) The UI 400 accepts an application execution request from a user and transmits the application execution request including the application identification information to the sequence manager 100. For example, the user selects an application from among multiple applications downloaded to the sequence manager 100 via the UI 400 and instructs the execution of the selected application.
[0064] 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.
[0065] 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.
[0066] (Step S212) The sequence manager 100 transmits an execution content declaration of the application identified by the application execution request to the device manager 200. The execution content declaration includes information on a plurality of blocks that defines the application to be executed and information that can identify the facilities 2a to 2d.
[0067] 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.
[0068] 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.
[0069] 10, the device-related information 1202 indicates the model number of the device 300, but is not limited to this. The device-related information 1202 may be any information as long as it can indicate the conditions 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.
[0070] (Step S214) The device manager 200 allocates a device 300 linked to the device manager 200 to each block included in the execution content declaration based on information 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.
[0071] For example, if the multiple blocks shown in Figure 10 are not registered as connected to the facility indicated by the received facility information, that is, if the target device does not exist in the facility, the device manager 200 notifies the sequence manager 100 that the application whose execution content is declared cannot be executed.
[0072] (Step S215) The device manager 200 notifies the device 300 of the device allocation result, whereby multiple blocks included in the application are sent to the devices 300 to which they are respectively allocated.
[0073] (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.
[0074] Then, the device 300 changes the block based on the check result, thereby correcting the block so that the problem does not occur.
[0075] Such pre-execution confirmation processing will be described in further detail with reference to Fig. 11. Fig. 11 shows a flowchart of the pre-execution confirmation processing in the first embodiment.
[0076] (Step S2165) The device 300 acquires a rule corresponding to the block. The rule defines a parameter range (hereinafter referred to as an unacceptable range) in which driving of at least one of the actuator 22 and the heater 23 is not permitted. For example, the device 300 refers to a rule database to acquire a parameter range corresponding to the actuator 22 or the heater 23 to be driven by the block. The rule database may be included in the device 300, the sequence manager 100, or the device manager 200, for example.
[0077] Fig. 12 shows an example of a rule database according to the first embodiment. Rules 1301 and 1302 are registered in rule database 1300 in Fig. 12. Each of rules 1301 and 1302 has a parameter range that defines an unacceptable range. For example, rule 1301 has a range greater than 1000 rpm as an unacceptable range.
[0078] For example, the unacceptable range is a predetermined range of parameters that causes the internal space of the housing 21, the actuator 22, or the heater 23 to reach a tolerable temperature. The tolerable temperature means a rated temperature, and indicates the maximum allowable temperature. Therefore, if the actuator 22 or the heater 23 is driven using parameters within the unacceptable range, the temperature of the internal space of the housing 21, the actuator 22, or the heater 23 will reach an unacceptable temperature.
[0079] 12, each of rules 1301 and 1302 has an unacceptable range as the parameter range, but this is not limiting. For example, each of rules 1301 and 1302 may have a parameter range (hereinafter referred to as an acceptable range) within which driving of actuator 22 or heater 23 is permitted as the parameter range. Even in this case, each of rules 1301 and 1302 can define a range excluding the acceptable range as the unacceptable range. This acceptable range is specified as a range within which actuator 22 or heater 23 can be safely driven. Furthermore, the acceptable range is specified so that a wide range of parameters can be used for the development of a wide variety of applications.
[0080] For example, the parameters for the actuator 22 or the heater 23 that can be safely operated may change depending on the environment of the device 300, such as the internal space of the housing 21, and the allowable range may not depend solely on the performance of the actuator 22 or the heater 23 itself. Therefore, in order to operate safely in any environment, the allowable range places a high emphasis on safety, which reduces the room for development of a wide variety of applications. Therefore, rules may be associated with information about the device 300, etc., independently of the application. Use of such rules makes it possible to achieve both safety and development of a wide variety of applications.
[0081] The rule relates to the range within which the actuator 22 or heater 23 can be safely operated. The range within which the actuator 22 or heater 23 can be safely operated may be a range that takes into consideration the start or end conditions of the block. Consider an example of a first block and a second block that is executed after the first block. A rule (tolerance range) can be set that assumes that executing the first block until the start condition of the second block is reached will impose a load that will affect the safety of the actuator 22 or heater 23. In other words, the tolerance range depends on the performance of the actuator 22 or heater 23, the start or end conditions of the block, etc.
[0082] For example, the acceptable range or unacceptable range may be defined by a combination of multiple parameters. Specifically, the acceptable range or unacceptable range may be a range of output values of a function of multiple parameters. For example, if device 300 is a washing machine, the acceptable range or unacceptable range may be a range of output values of a function of a first parameter indicating the water level and a second parameter indicating the rotation speed of the motor. The function may be determined in advance empirically and / or experimentally. Note that instead of a function, the acceptable range or unacceptable range may be defined by a set of multiple combinations of values of multiple parameters.
[0083] Each of the rules 1301 and 1302 further includes a type, a manufacturer name, a model number, and an actuator / heater. This allows the device 300 to obtain, from the rule database 1300, a rule corresponding to the actuator 22 or heater 23 driven by the block. For example, the device 300 refers to the rule database 1300 in FIG. 12 to obtain the rule 1301 for the dehydration block in FIG. 10.
[0084] (Step S2166) The device 300 determines whether the parameters included in the block are within the unacceptable range. If it is determined that the parameters are not within the unacceptable range (No in S2166), the device 300 skips the subsequent step S2167 and ends the pre-execution confirmation process. On the other hand, if it is determined that the parameters are within the unacceptable range (Yes in S2166), the device 300 proceeds to the next step S2167.
[0085] (Step S2167) The device 300 changes the block and ends the pre-execution verification process. Changing a block means modifying the content of the block, deleting the block, adding a new block before or after the block, or any combination thereof.
[0086] For example, the device 300 can modify a block by changing the parameters of the block to parameters that fall within the allowable ranges. A specific example of such a modification of a block will be described with reference to FIG.
[0087] Fig. 13 shows an example of a change in blocks in Embodiment 1. In Fig. 13, the rotation speed parameter in the spin block is within the unacceptable range, so it is changed to a parameter within the acceptable range (1200 rpm → 1000 rpm).
[0088] Furthermore, for example, the device 300 can modify a block by changing the parameter of the block to a parameter within the allowable range and adding a new block. A specific example of such a block modification will be described with reference to FIG. 14.
[0089] 14 shows an example of a block change in the first embodiment. In FIG. 14, the time parameter in the spin block is within the unacceptable range, so it is changed to a parameter within the acceptable range (600 s → 300 s), and a stop block and a spin block are added after the spin block. For example, by changing a block that places an unintended load on device 300 by continuing to rotate the washing tub at high speed for a long time during the spin process, the load can be reduced, a stop can be added, and the spin block can be executed again, thereby providing an application that can safely execute the functions defined in the application before the change.
[0090] Device 300 can also modify blocks, for example by deleting them.
[0091] Although the modification of the block for the washing machine has been described here, the block can be modified in the same manner for other devices.
[0092] For example, in a microwave oven, if a temperature parameter falls within an unacceptable range, the temperature parameter may be changed to a temperature parameter within an acceptable range, and if an execution time parameter falls within an unacceptable range, the execution time parameter may be changed to a execution time parameter within an acceptable range and a new block may be added.
[0093] In addition, in the rice cooker, when a pot bottom temperature parameter falls within an unacceptable range, the pot bottom temperature parameter may be changed to a pot bottom temperature parameter within an acceptable range. Furthermore, when a duration parameter falls within an unacceptable range, the duration parameter may be changed to a duration parameter within an acceptable range, and a new block may be added.
[0094] (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.
[0095] (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.
[0096] (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.
[0097] (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.
[0098] (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.
[0099] 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.
[0100] This completes the pre-application execution phase F200.
[0101] [1.3.3 Application Execution Phase F300] Next, the application execution phase F300 will be described.
[0102] (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.
[0103] 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.
[0104] 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.
[0105] (Step S312) Upon receiving the instruction to execute the first block, the device manager 200 updates the schedule (scheduled use time) of each device.
[0106] (Step S314) The device 300 receives the instruction to execute the first block and executes the first block.
[0107] (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.
[0108] (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.
[0109] (Step S320) The sequence manager 100 sends an instruction to the device manager 200 to execute the selected second block.
[0110] 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.
[0111] 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.
[0112] 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.
[0113] 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.
[0114] [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.
[0115] 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.
[0116] 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.
[0117] The device 20 in this embodiment includes at least one of an actuator 22 and a heater 23, and a control unit 24 that controls at least one of the actuator 22 and the heater 23. The control unit 24 obtains an application defined by a plurality of blocks that drive at least one of the actuator 22 and the heater 23, each of the plurality of blocks having parameters for driving the actuator 22 or the heater 23, and modifies the application by modifying at least one of the plurality of blocks by referring to a first rule that defines a first parameter range in which driving at least one of the actuator 22 and the heater 23 is not permitted, and at least one of the plurality of blocks has a parameter that falls within the first parameter range. The control unit 24 drives at least one of the actuator 22 and the heater 23 based on the modified application.
[0118] This allows the actuator 22 and / or the heater 23 to be driven based on an application defined by multiple blocks. This enables the development of applications using blocks that abstract the control of the device 20. This allows not only manufacturers but also third parties to develop a wide variety of applications, and these applications can be easily executed on the device 20. Furthermore, before the actuator 22 and / or the heater 23 are driven based on an application, blocks having parameters that fall within the first unacceptable parameter range can be modified. This prevents the actuator 22 and / or the heater 23 from being driven with unacceptable parameters. In other words, even if an application developer mistakenly issues an instruction to drive the actuator 22 and / or the heater 23 with unacceptable parameters, it is possible to prevent an application that cannot safely control the device 20 from being executed. Therefore, even if an application developer creates an application that prioritizes user convenience over ensuring the safety of the actuator 22 and / or the heater 23, the application developer can improve the safety of the device 20 controlled by the application.
[0119] For example, in the device 20 of this embodiment, the control unit 24 may change the application by referring to the first rule and changing the parameters included in the first parameter range to parameters included in a range in which driving of at least one of the actuator 22 and the heater 23 is permitted.
[0120] This allows parameters that fall within the first unacceptable parameter range to be changed to parameters that fall within the acceptable range, so that, for example, application developers can freely develop applications by lowering the priority of ensuring that the actuator 22 and heater 23 are operated safely, and furthermore, developers of software to be incorporated into the device 20 that controls the actuator 22 and heater 23 can execute blocks without having to check the safety of each application each time, thereby preventing the actuator 22 and / or heater 23 from being operated with unacceptable parameters.
[0121] For example, in the device 20 of this embodiment, the control unit 24 may refer to the first rule, change the parameters included in the first parameter range to parameters included in a range in which driving of at least one of the actuator 22 and the heater 23 is permitted, and change the application by adding a new block to the multiple blocks.
[0122] This allows parameters included in the first unacceptable parameter range to be changed to parameters included in the acceptable range, thereby preventing the actuator 22 and / or the heater 23 from being driven with unacceptable parameters. Furthermore, since a new block can be added, it is possible to supplement with the new block any functionality that has been reduced by changing the parameters.
[0123] Furthermore, for example, in device 20 according to the present embodiment, control unit 24 may change the application by deleting blocks having parameters included in the first parameter range.
[0124] This allows for the deletion of blocks having parameters that fall within the first unacceptable parameter range, thereby preventing the actuator 22 and / or heater 23 from being driven with unacceptable parameters. For example, if the actuator 22 and heater 23 are unable to execute the parameters specified by the application developer, deleting them allows for control without causing confusion in the device. Meanwhile, the user may be notified that the parameters have been deleted.
[0125] For example, in the device 20 of this embodiment, the control unit 24 may refer to a first rule to determine whether each of the multiple parameters included in the multiple blocks is included in a first parameter range, and if it is determined that the parameter is included in the first parameter range, change the block that has the parameter.
[0126] This makes it possible to more reliably change blocks that have parameters that fall within the first unacceptable parameter range.
[0127] Furthermore, for example, in device 20 according to the present embodiment, the application may include information on the order in which each of the multiple blocks is executed and information on the timing at which each of the multiple blocks is executed. The timing information for each block indicates, for example, the time between the start timing of the block and the start or end timing of another block (e.g., the first block).
[0128] This allows the application to include information on order and timing, and allows sequential decisions to be made and executed while checking the parameter ranges of each block.
[0129] 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.
[0130] This allows a third block to be guaranteed to be executed after a second block by adding a new block, changing the order of blocks, or deleting a block before an application is executed. Therefore, application developers can freely develop applications by lowering the priority of ensuring safe operation of the actuator 22 and heater 23. Furthermore, developers of software to be incorporated into the device 20 that controls the actuator 22 and heater 23 can allow execution of blocks without checking the safety of each application every time.
[0131] Furthermore, for example, in the device 20 of the present embodiment, the first parameter range may be a parameter range that allows at least one of the actuator 22 and the heater 23 to reach a durable temperature.
[0132] 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.
[0133] Furthermore, for example, device 20 in this embodiment may include housing 21 having an internal space, and the first parameter range may be a parameter range that allows the internal space to reach a durable temperature.
[0134] This makes it possible to prevent the internal space of the housing 21 from reaching a durable temperature when the application is executed, thereby improving the safety of the device 20 controlled by the application.
[0135] (Modification of the first embodiment) In the 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.
[0136] 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).
[0137] 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.
[0138] 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.
[0139] 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).
[0140] 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.
[0141] 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.
[0142] 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.
[0143] 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).
[0144] Thereafter, the device 300 receives an instruction from the user to execute one or more stored blocks (S312C), and executes the one or more blocks in order starting from the first block (S314).
[0145] As described above, by storing the blocks in the device 300, the device 300 can be controlled without communication between the device manager 200 and the device 300, thereby reducing the risk 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.
[0146] 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.
[0147] 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).
[0148] 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.
[0149] 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).
[0150] (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.
[0151] 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.
[0152] 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.
[0153] FIG. 16 shows a flowchart of the pre-execution confirmation process according to the second embodiment.
[0154] (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.
[0155] 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.
[0156] (Step S2162A) The device 300 determines whether the application has been authenticated based on the acquired app information. If it is determined that the application has been authenticated (Yes in S2162A), the device 300 skips the 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.
[0157] [2.2 Effects, etc.] As described above, the device 20 in this embodiment comprises at least one of the actuator 22 and the heater 23, and a control unit 24 that controls at least one of the actuator 22 and the heater 23. The control unit 24 acquires an application that is defined by a plurality of blocks that drive at least one of the actuator 22 and the heater 23 and that includes information indicating whether the application has been authenticated, and each of the plurality of blocks has parameters for driving the actuator 22 or the heater 23. If the application does not include information indicating that it is authenticated, the control unit 24 modifies the application by modifying at least one of the plurality of blocks by referring to a first rule that defines a first parameter range in which driving at least one of the actuator 22 and the heater 23 is not permitted, and at least one of the plurality of blocks has parameters that fall within the first parameter range. The control unit 24 drives at least one of the actuator 22 and the heater 23 based on the modified application.
[0158] This allows the actuator 22 and / or the heater 23 to be driven based on an application defined by multiple blocks. This enables the development of applications using blocks that abstract the control of the device 20, allowing a wide variety of applications developed in this manner to be easily executed on the device 20. Furthermore, before the actuator 22 and / or the heater 23 are driven based on an application, blocks having parameters falling within the first unacceptable parameter range can be changed. This prevents the actuator 22 and / or the heater 23 from being driven with unacceptable parameters. This prevents the execution of an application that cannot safely control the device 20, thereby improving the safety of the device 20 controlled by the application. Furthermore, when an application is not authenticated, processing involving application changes can be performed, while when the application is authenticated, the processing load can be reduced. This eliminates the need to perform parameter range determination processing for all applications. Management through authentication reduces the processing load and establishes a standard for parameter range design, allowing application developers to design applications more easily and safely.
[0159] 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.
[0160] According to this, if the application has been authenticated, the process for changing the block can be skipped, and the processing load can be reduced.
[0161] (Embodiment 3) Next, a description will be given of 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.
[0162] 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.
[0163] 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.
[0164] FIG. 17 shows a flowchart of the pre-execution confirmation process according to the third embodiment.
[0165] (Step S2161B) The device 300 acquires application creator information. The application creator information indicates the creator of the application. The creator refers to the company, individual, or organization that created the application, and may also be called the developer or author.
[0166] (Step S2163B) The device 300 acquires device manufacturer information. The device manufacturer information indicates the manufacturer of the device. The manufacturer refers to the company, individual, or organization that produced the device 300 (i.e., the apparatus 20), and may also be called a manufacturer.
[0167] (Step S2164B) The device 300 determines whether the creator of the application is different from the creator of the device 300. When the creator of the application is an individual and the creator of the device 300 is a company, the device 300 may determine that the creator of the application is the same as the creator of the device 300 if the company to which the creator of the application belongs matches the creator of the device 300. Furthermore, the device 300 may determine that the creator of the application is the same as the creator of the device 300 if the creator of the application is a development contractor of the creator of the device 300.
[0168] If the creator of the application and the creator of the device 300 are the same (No in S2164B), the device 300 skips the 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.
[0169] [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 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, each of the plurality of blocks having parameters for driving the actuator 22 or the heater 23, acquires information indicating the creator of the device 20, and, if the creator of the application is different from the creator of the device 20, modifies the application by modifying at least one of the plurality of blocks with reference to a first rule that defines a first parameter range in which driving at least one of the actuator 22 and the heater 23 is not permitted, at least one of the plurality of blocks having parameters included in the first parameter range, and drives at least one of the actuator 22 and the heater 23 based on the modified application.
[0170] This allows the actuator and / or heater to be driven based on an application defined by multiple blocks. This enables the development of applications using blocks that abstract the control of the device 20, and allows the device 20 to easily execute a wide variety of applications developed in this manner. Furthermore, before the actuator 22 and / or the heater 23 are driven based on an application, blocks having parameters falling within the first unacceptable parameter range can be modified. This prevents the actuator 22 and / or the heater 23 from being driven with unacceptable parameters. This means that the execution of an application that cannot safely control the device 20 can be prevented, thereby improving the safety of the device 20 controlled by the application. Furthermore, when the creator of the application and the manufacturer of the device 20 are different, processing involving application modification can be performed. However, when the creator of the application and the manufacturer of the device 20 are the same, the processing load can be reduced.
[0171] (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.
[0172] 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.
[0173] 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.
[0174] FIG. 18 shows a flowchart of the pre-execution confirmation process according to the fourth embodiment.
[0175] (Step S2163C) The device 300 acquires device deterioration information. The device deterioration information indicates the deterioration level of the actuator 22 and / or the heater 23 included in the apparatus 20. The method for detecting the deterioration level is not particularly limited, and may be detection by a sensor, for example.
[0176] (Step S2165C) The device 300 acquires a rule corresponding to the deterioration level. For example, the device 300 refers to a rule database to acquire a parameter range corresponding to the deterioration level of the actuator 22 or heater 23 driven by the block.
[0177] FIG. 19 shows an example of a rule database according to the fourth embodiment. Rules 1301C to 1304C are registered in rule database 1300C in FIG. 19. Each of rules 1301C to 1304C has a parameter range that defines an unacceptable range. For example, rule 1301C has an unacceptable range of greater than 1000 rpm for motor MM0001 with deterioration level 0. For example, rule 1302C has an unacceptable range of greater than 800 rpm for motor MM0001 with deterioration level 1. In other words, rule 1302C has a wider unacceptable range and a narrower acceptable range than rule 1301C.
[0178] Each of rules 1301C to 1304C further includes a type, a manufacturer name, a model number, an actuator / heater, and a deterioration level. This allows device 300 to acquire, from rule database 1300C, a rule corresponding to the deterioration level of actuator 22 or heater 23 driven by a block. For example, if the deterioration level of motor MM0001 driven by the spinning block in FIG. 10 is 0, device 300 acquires rule 1301C for the spinning block by referring to rule database 1300C in FIG. 19.
[0179] 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.
[0180] 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.
[0181] 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.
[0182] [4.2 Effects, etc.] As described above, the device 20 in this embodiment includes at least one of the actuator 22 and the heater 23, and the control unit 24 that controls at least one of the actuator 22 and the heater 23. The control unit 24 acquires an application defined by a plurality of blocks that drive at least one of the actuator 22 and the heater 23, each of the plurality of blocks having parameters for driving the actuator 22 or the heater 23, acquires deterioration information indicating whether or not at least one of the actuator 22 and the heater 23 has deteriorated, and, if the deterioration information indicates that at least one of the actuator 22 and the heater 23 has not deteriorated, sets a first rule that defines a first parameter range within which driving at least one of the actuator 22 and the heater 23 is not permitted. The application is modified by modifying at least one first block included in the plurality of blocks, the at least one first block having a parameter included in a first parameter range, and if the degradation information indicates that at least one of the actuator 22 and the heater 23 is degraded, driving of at least one of the actuator 22 and the heater 23 is not permitted, with reference to a second rule defining a second parameter range different from the first parameter range, and the application is modified by modifying at least one second block included in the plurality of blocks, the at least one second block having a parameter included in the second parameter range, and driving at least one of the actuator 22 and the heater 23 based on the modified application.
[0183] This allows the actuator 22 and / or the heater 23 to be driven based on an application defined by multiple blocks. This enables the development of applications using blocks that abstract the control of the device 20, allowing a wide variety of applications developed in this manner to be easily executed on the device 20. Furthermore, before the actuator 22 and / or the heater 23 are driven based on an application, blocks having parameters falling within the first unacceptable parameter range can be changed. This prevents the actuator 22 and / or the heater 23 from being driven with unacceptable parameters. This prevents the execution of an application that cannot safely control the device 20, thereby improving the safety of the device 20 controlled by the application. Furthermore, by using different parameter ranges depending on the degradation information of the device 20 and by using blocks, the application can issue a drive command to the actuator 22 and / or the heater 23 while taking into account the performance of the device, which deteriorates over time, thereby further improving the safety of the device 20 controlled by the application.
[0184] (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.
[0185] 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.
[0186] 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.
[0187] In addition, in each of the above embodiments, if a parameter is found to be within an unacceptable range in the pre-execution check, the block is changed and then executed, but this is not limited to this. For example, if a parameter is found to be within an unacceptable range and the state of the device 300 is different from what was expected, the block may not be executed, and the device manager 200 and / or the sequence manager 100 may be notified of an execution stop (error). [Industrial Applicability]
[0188] It can be used in home appliances and the like that can execute applications defined by multiple function blocks. [Explanation of symbols]
[0189] 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, 1300C rule database 1301, 1301C, 1302, 1302C, 1303C, 1304C 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, each of the plurality of blocks having parameters for driving the actuator or the heater, the plurality of blocks including a first block and a second block executed after the first block; modifying the application by modifying a parameter of the first block such that a start condition of the second block is satisfied, with reference to a first rule defining a first parameter range within which activation of the at least one of the actuator and the heater is not permitted; driving the at least one of the actuator and the heater based on the modified application. Device.
2. The control unit modifying the application by referring to the first rule and, when the parameter of the first block is included in the first parameter range, changing the parameter of the first block to a parameter included in a range in which driving of the at least one of the actuator and the heater is permitted so that a start condition of the second block is satisfied; 10. The apparatus of claim 1.
3. The control unit modifying the application by referring to the first rule, when the parameter of the first block is within the first parameter range, changing the parameter of the first block to a parameter within a range in which driving of the at least one of the actuator and the heater is permitted so that a start condition of the second block is satisfied, and adding a new block to the plurality of blocks; 10. The apparatus of claim 1.
4. the plurality of blocks further includes a third block including parameters included in the first parameter range; The control unit further deletes the third block.
10. The apparatus of claim 1.
5. The control unit referring to the first rule to determine whether the parameters of the first block are within the first parameter range; When it is determined that the parameters of the first block are included in the first parameter range, the parameters of the first block are changed so that the start condition of the second block is satisfied. The device according to any one of claims 1 to 4.
6. the application includes information on the order in which each of the plurality of blocks is executed and information on the timing at which each of the plurality of blocks is executed; The device according to any one of claims 1 to 5.
7. the first parameter range is a parameter range that allows the at least one of the actuator and the heater to reach a durability temperature; The device according to any one of claims 1 to 6.
8. the device comprises a housing having an interior space; The first parameter range is a parameter range that allows the internal space to reach a durable temperature. The device according to any one of claims 1 to 6.
9. The control unit acquiring degradation information indicating whether the at least one of the actuator and the heater is degraded; If the degradation information indicates that the at least one of the actuator and the heater is not degraded, modifying the application by referring to the first rule and modifying a parameter of the first block so that a start condition of the second block is satisfied; modifying the application by changing the parameters of the first block so that a start condition of the second block is satisfied, with reference to a second rule that defines a second parameter range different from the first parameter range, in which activation of at least one of the actuator and the heater is not permitted if the degradation information indicates that the at least one of the actuator and the heater is degraded; 10. The apparatus of claim 1.
10. A computer-implemented method for controlling an apparatus 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, each of the plurality of blocks having parameters for driving the actuator or the heater, the plurality of blocks including a first block and a second block executed after the first block; modifying the application by modifying a parameter of the first block such that a start condition of the second block is satisfied, with reference to a first rule defining a first parameter range within which activation of the at least one of the actuator and the heater is not permitted; driving the at least one of the actuator and the heater based on the modified application. method.
11. 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, each of the plurality of blocks having parameters for driving the actuator or the heater, the plurality of blocks including a first block and a second block executed after the first block; determining a first rule that defines a first parameter range of a second block within which activation of the at least one of the actuator and the heater is permitted based on an end condition of the first block; modifying the application by modifying the second block with reference to the determined first rule; driving the at least one of the actuator and the heater based on the modified application. Device.
12. The control unit modifying the application by referring to the determined first rule and, when the parameter of the second block is not included in the first parameter range, changing the parameter of the second block to a parameter included in the first parameter range; 12. The apparatus of claim 11.
13. The control unit modifying the application by referring to the determined first rule, and when the parameter of the second block is not included in the first parameter range, changing the parameter of the second block to a parameter included in the first parameter range and adding a new block to the plurality of blocks; 12. The apparatus of claim 11.
14. The control unit modifying the application by deleting the second block when the parameter of the second block is not included in the first parameter range, by referring to the determined first rule; 12. The apparatus of claim 11.
15. The control unit referring to the determined first rule to determine whether the parameters of the second block are within the first parameter range; modifying the second block when it is determined that the parameters of the second block are not included in the first parameter range; An apparatus according to any one of claims 11 to 14.
16. the application includes information on the order in which each of the plurality of blocks is executed and information on the timing at which each of the plurality of blocks is executed; 12. The apparatus of claim 11.
17. the first parameter range is a parameter range that prevents the at least one of the actuator and the heater from reaching a withstand temperature; 12. The apparatus of claim 11.
18. the device comprises a housing having an interior space; The first parameter range is a parameter range that prevents the internal space from reaching a tolerable temperature.
12. The apparatus of claim 11.
19. The control unit acquiring degradation information indicating whether the at least one of the actuator and the heater is degraded; If the degradation information indicates that the at least one of the actuator and the heater is not degraded, determining the first rule based on a termination condition of the first block; modifying the application by modifying the second block with reference to the determined first rule; If the degradation information indicates that the at least one of the actuator and the heater is degraded, determining a second rule that defines a second parameter range, different from the first parameter range, within which activation of at least one of the actuator and the heater is permitted based on an end condition of the first block; modifying the application by modifying the second block with reference to the determined second rule; 12. The apparatus of claim 11.
Citation Information
Patent Citations
Program check system for NC device
JP1993197418A
Mechanism control system and method for developing the same
JP2001075619A
Washing machine
JP2003284889A
Programming apparatus and programming method
JP2011238041A