Inverter and main controller of photovoltaic power generation system and operating method of photovoltaic system

By acquiring and setting the firmware data version in the photovoltaic power generation system and dividing it into multiple unit segments for sending, the version inconsistency caused by the interruption of remote firmware updates is solved, ensuring the validity and continuity of the data.

CN120303875APending Publication Date: 2025-07-11HANWHA SOLUTIONS CORP
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202480005211.6
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2023-03-23
Filing Date
2024-03-25
Publication Date
2025-07-11

AI Technical Summary

Technical Problem

In photovoltaic power generation systems, errors may occur during remote firmware updates, resulting in the failure of MLPE to restart, especially when the firmware update is interrupted and subsequently restarted by continuously receiving firmware data, the consistency of previously stored firmware data and subsequently received firmware data cannot be ensured.

Method used

In the photovoltaic power generation system, the main controller acquires firmware data and sets the version, compares the version when sending firmware data to the MLPE, ensures version consistency, and divides the firmware data into multiple unit data segments for sequential transmission, and the processor performs appropriate data processing and updates when receiving an interrupt.

Benefits of technology

When the firmware update is interrupted and restarted, the version consistency and validity of firmware data are ensured, avoiding data loss and inconsistency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120303875A_ABST
    Figure CN120303875A_ABST
Patent Text Reader

Abstract

According to an embodiment of the present disclosure, there is provided an operation method of a photovoltaic power generation system for module level power electronic equipment (MLPE) firmware update, the method comprising: acquiring firmware data; when the acquisition of the firmware data is completed, setting a version of the firmware data; sending the firmware data with the version to each MLPE in the plurality of MLPEs; receiving a reset preparation signal from each of the plurality of MLPEs after the transmission of the firmware data is completed; and sending a firmware reset and update command to each of the plurality of MLPEs.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present disclosure relates to an inverter and a primary controller of a photovoltaic power generation system, and a method of operating a photovoltaic power generation system. More specifically, the present disclosure relates to an inverter and a primary controller of a photovoltaic power generation system that ensure the stability and effectiveness of firmware updates of module level power electronics (MLPE), and a method of operating a photovoltaic system. Background Art

[0002] Generally, a photovoltaic power generation system is a system that uses photovoltaic cells to convert solar energy into electrical energy and sends the electrical energy to a commercial power grid. This process does not cause environmental pollution and enables the photovoltaic power generation system to be used semi-permanently.

[0003] Such a photovoltaic power generation system includes a plurality of photovoltaic panels, a plurality of MLPEs, a primary controller, and a server.

[0004] The plurality of photovoltaic panels are connected in at least one of series and parallel, and each of the plurality of photovoltaic panels is equipped with a corresponding one of the plurality of MLPEs.

[0005] Each of the plurality of MLPEs includes an optimizer configured to optimize the power generation efficiency of the photovoltaic panel. Herein, the optimizer optimizes the power efficiency of the photovoltaic panel and sends power generation information to the primary controller, the power generation information including the power generation amount, temperature, and fault information of the photovoltaic panel.

[0006] The primary controller controls the plurality of optimizers, collects the power generation information received from each of the plurality of optimizers, and sends the collected information to the server.

[0007] The server uses the power generation information of each of the plurality of photovoltaic panels to monitor the power generation status of the plurality of photovoltaic panels.

[0008] Meanwhile, the MLPE includes an optimizer and various other components implemented on a printed circuit board (PCB) and is disposed in a housing of the MLPE in a molded state. Therefore, when the product is finally shipped and installed on the photovoltaic panel, if modifications to the operation and control of the MLPE are required, since the PCB cannot be physically accessed for direct operation, such modifications are made through remote firmware update. Herein, the firmware refers to software responsible for controlling and operating the MLPE.

[0009] However, when an error occurs during a remote firmware update process, the MLPE cannot restart. In particular, when the firmware update is interrupted and then restarted by continuously receiving firmware data, if the previously stored firmware data and the subsequently received firmware data have different versions, the validity of the data cannot be ensured. Summary of the Invention

[0010] Technical Problem

[0011] The present disclosure aims to solve the problems of the above related technologies. The object of the present disclosure is to ensure the validity of firmware data by keeping the versions of the previously stored firmware data and the subsequently received firmware data the same when the firmware update is interrupted and then restarted by continuously receiving firmware data.

[0012] The technical problems to be solved by the present disclosure are not limited to the above problems, and those skilled in the art to which the present disclosure pertains will clearly understand any other technical problems not mentioned herein from the following description.

[0013] Technical Solution

[0014] According to an embodiment of the present disclosure, there is provided an operation method for a photovoltaic power generation system for MLPE firmware update, the method including: acquiring firmware data, setting a version of the firmware data when the acquisition of the firmware data is completed, and sending the firmware data with the set version to each of a plurality of MLPEs; after the sending of the firmware data is completed, receiving a reset preparation signal from each of the plurality of MLPEs; and sending a firmware reset and update command to each of the plurality of MLPEs.

[0015] In the present disclosure, the method further includes: after setting the version of the firmware data, sending an update command to each of the plurality of MLPEs; receiving an update preparation signal from each of the plurality of MLPEs, the update preparation signal including a memory space check result and version information of the previously stored firmware data; and determining whether to send the firmware data based on the memory space check result and the version information of the previously stored firmware data.

[0016] In the present disclosure, when determining whether to send the firmware data, the set version of the acquired firmware data may be compared with the version of the firmware data previously stored in each of the plurality of MLPEs, and when the version of the previously stored firmware data is the same as or higher than the set version of the acquired firmware data, the firmware data may not be sent.

[0017] In the present disclosure, when setting the version of the firmware data, the version of the firmware data is incremented each time the acquisition of all the data of the firmware data is completed.

[0018] In the present disclosure, when sending firmware data, the firmware data can be divided into N unit data segments, where N is a natural number greater than or equal to 2, and the N unit data segments are sequentially sent to each of the multiple MLPEs. Also, an index can be set for each of the N unit data segments. Each time each of the multiple MLPEs sequentially receives and stores the multiple unit data segments, the index is incremented by 1, and the value range of the index is from 0 to N - 1.

[0019] In the present disclosure, according to the operation method of claim 1, each of the multiple MLPEs can receive a firmware reset and update command, delete the previously stored first firmware data, and receive and store second firmware data from the master controller, where the version of the second firmware data can be different from the version of the first firmware data.

[0020] In the present disclosure, each of the multiple MLPEs can receive third firmware data based on an interruption encountered when receiving the second firmware data, and receive the third firmware data as multiple second unit data segments.

[0021] In the present disclosure, each of the multiple MLPEs can, based on an interruption after receiving the i-th first unit data segment among the multiple first unit data segments, start receiving the multiple second unit data segments from the (i + 1)-th second unit data segment, where i is a natural number greater than or equal to 1 and less than N.

[0022] In the present disclosure, each of the multiple MLPEs can determine whether the version of the multiple second unit data segments is the same as the version of the multiple first unit data segments, and receive the firmware data only when the version of the multiple second unit data segments is the same as the version of the multiple first unit data segments.

[0023] In the present disclosure, each of the multiple MLPEs can, based on the version of the multiple second unit data segments being the same as the version of the multiple first unit data segments, send the index information of the i-th first unit data segment to the master controller; and the master controller can verify the index information of the i-th first unit data segment and start sending the multiple second unit data segments to each of the multiple MLPEs from the (i + 1)-th second unit data segment.

[0024] In the present disclosure, each of the multiple MLPEs can delete the second firmware data based on the version of the multiple second unit data segments being different from the version of the multiple first unit data segments; and the master controller can start sending the multiple second unit data segments to each of the multiple MLPEs from the first second unit data segment.

[0025] According to an embodiment of the present disclosure, an inverter for a photovoltaic power generation system is provided. The inverter includes a main controller for MLPE firmware update. The inverter includes: a communication unit configured to acquire firmware data and send the received firmware data to each of a plurality of MLPEs; and a processor configured to set a version of the firmware data, determine whether to send the firmware data based on the version of the firmware data, and after completing sending the firmware data to each of the plurality of MLPEs, in response to receiving a reset preparation signal from each of the plurality of MLPEs, send a firmware reset and update command to each of the plurality of MLPEs.

[0026] In the present disclosure, the processor may further be configured to: after setting the version of the firmware data, send an update command to each of the plurality of MLPEs, receive an update preparation signal from each of the plurality of MLPEs, and determine whether to send the firmware data based on a memory space check result and version information of previously stored firmware data, wherein the update preparation signal includes the memory space check result and the version information of the previously stored firmware data.

[0027] In the present disclosure, the processor may further be configured to: compare the set version of the acquired firmware data with the version of the previously stored firmware data, and when the version of the previously stored firmware data is the same as or higher than the set version of the acquired firmware data, determine not to send the firmware data.

[0028] In the present disclosure, the processor may further be configured to: when setting the version of the firmware data, set the version of the firmware data to increment each time all the data of the firmware data is acquired.

[0029] In the present disclosure, the processor may further be configured to: decide to send the firmware data sequentially, the firmware data includes version information, and the firmware data is divided into N unit data segments, where N is a natural number greater than or equal to 2; perform firmware data update based on the version of the firmware data and the index of each of the N unit data segments; set an index for each of the N unit data segments; and increment the index by 1 each time the N unit data segments are sequentially received by each of the plurality of MLPEs.

[0030] In the present disclosure, the processor may further be configured to generate a firmware reset and update command; each of the plurality of MLPEs may be configured to: when receiving the firmware reset and update command, delete the previously stored first firmware data, and receive and store second firmware data from the main controller, wherein the version of the second firmware data may be different from the version of the first firmware data.

[0031] In the present disclosure, the processor may also be configured to: send third firmware data based on an interruption encountered when receiving second firmware data, and send the third firmware data as a plurality of second unit data segments.

[0032] In the present disclosure, the processor may also be configured to: based on an interruption after receiving the i-th first unit data segment among a plurality of first unit data segments, start sending a plurality of second unit data segments from the (i + 1)-th second unit data segment, where i is a natural number greater than or equal to 1 and less than N.

[0033] According to an embodiment of the present disclosure, there is provided a main controller of a photovoltaic power generation system, configured to perform module-level power electronic device (MLPE) firmware update. The main controller includes: a communication unit, configured to receive firmware data and send the received firmware data to each of a plurality of MLPEs; and a processor, configured to, in response to completing sending firmware data to each of the plurality of MLPEs and receiving a reset preparation signal from each of the plurality of MLPEs, send a firmware reset and update command to each of the plurality of MLPEs.

[0034] Beneficial effects

[0035] According to the present disclosure, when a firmware update is interrupted and then restarted by continuously receiving firmware data, the validity of the data can be ensured by keeping the versions of the previously stored firmware data and the subsequently received firmware data the same.

[0036] Furthermore, according to the present disclosure, when a firmware update is interrupted and the version of the subsequently received firmware data is different from the version of the previously stored firmware data, the validity of the data can be ensured by deleting the previously stored firmware data and updating the previously stored firmware data with the new firmware data to keep the versions the same.

[0037] The effects that can be obtained by the present disclosure are not limited to the effects mentioned above. Those skilled in the art can clearly understand any other effects not mentioned herein from the following description. Description of the drawings

[0038] Figure 1a and Figure 1b is a configuration diagram showing an example of a photovoltaic power generation system according to an embodiment of the present disclosure.

[0039] Figure 2 is a flowchart showing an example of a photovoltaic power generation method according to an embodiment of the present disclosure.

[0040] Figure 3 is an example of firmware data according to an embodiment of the present disclosure.

[0041] Figure 4 is a schematic diagram depicting a situation where an error occurs during firmware data transmission according to an embodiment of the present disclosure.

[0042] Figure 5 is a block diagram of an MLPE according to an embodiment of the present disclosure.

[0043] Figure 6 is a schematic diagram showing the MLPE firmware update order according to an embodiment of the present disclosure.

[0044] Figure 7 is a flowchart of an MLPE firmware update method according to an embodiment of the present disclosure. Detailed Description of the Embodiments

[0045] In the embodiments, the terms used are, where possible, the currently widely used general terms. However, they may change according to the intention of those of ordinary skill in the art, precedents, or the emergence of new technologies. Additionally, the applicant may arbitrarily select terms in specific cases, and in such cases, the meaning of the terms will be described in detail in the corresponding part. Therefore, the terms used herein should be defined based on the meaning of the terms and the content of the entire specification, rather than based on the name of the terms.

[0046] Throughout the specification, unless otherwise specifically stated, when a component is referred to as "including" a certain component, this means that it may further include other components rather than excluding other components.

[0047] Furthermore, terms including ordinal numbers such as "first" or "second" used herein may be used to describe various components, but the components are not limited by the terms, and these terms are only used for the purpose of distinguishing one component from another. These terms can only be used to distinguish one component from another.

[0048] Hereinafter, the embodiments will be described in detail with reference to the accompanying drawings. However, the embodiments can be implemented in several different forms and are not limited to the embodiments described below.

[0049] Figure 1a and Figure 1b is a configuration diagram showing an example of a photovoltaic power generation system according to an embodiment of the present disclosure.

[0050] As Figure 1a shown, a photovoltaic power generation system according to an embodiment of the present disclosure may include a plurality of photovoltaic panels 10, an inverter 400 including a main controller 100, a plurality of MLPEs 200, and a server 300. Alternatively, as Figure 1b shown, a photovoltaic power generation system according to another embodiment of the present disclosure may include a plurality of photovoltaic panels 10, a main controller 100, a plurality of MLPEs 200, an inverter 400, and a server 300.

[0051] That is, as Figure 1a shown, the photovoltaic power generation system according to the embodiment can be configured such that the inverter 400 includes the main controller 100, and alternatively, according to another embodiment, as Figure 1b shown, the photovoltaic power generation system can be configured such that the inverter 400 is located between the main controller 100 and the power grid 20. Herein, the inverter 400 can convert direct current (DC) power generated by the plurality of photovoltaic panels 10 into alternating current (AC) power and send the converted AC power to the power grid 20.

[0052] Hereinafter, for convenience of description, the embodiment in which the main controller 100 is included in the inverter 40 as Figure 1a shown will be described as an example. Additionally, in the following description, the plurality of photovoltaic panels 10 and the plurality of MLPEs 200 will be described as a whole, but the photovoltaic panels 10 and the MLPEs 200 can also be separated from each other and configured as different types or models.

[0053] According to an embodiment, each of the plurality of photovoltaic panels 10 can refer to a photovoltaic power generation panel in a module unit. In addition, the plurality of photovoltaic panels 10 can be connected in at least one of series connection and parallel connection, and each of the plurality of MLPEs 200 can be provided for each of the plurality of photovoltaic panels 10. Additionally, one MLPE 200 can be connected to one photovoltaic panel 10, or one MLPE 200 can also be connected to a plurality of photovoltaic panels 10.

[0054] According to an embodiment, each of the plurality of MLPEs 200 includes a module-level inverter configured to convert electrical energy generated by each of the photovoltaic panels 10 into AC power.

[0055] Furthermore, according to an embodiment, each of the plurality of MLPEs 200 can include an optimizer 210 configured to optimize the power generation efficiency of the photovoltaic panels 10. Although referred to as the optimizer 210 herein, the optimizer 210 does not represent a specific type of device, but can be understood as a device including a power efficiency optimization function or a maximum power point tracking (MPPT) function. Herein, when the output voltage of the connected photovoltaic panel 10 is higher than the maximum power point, the optimizer 210 can operate in a buck mode to reduce the output voltage; when the output voltage is lower than the maximum power point, the optimizer 210 can operate in a boost mode to increase the output voltage, thereby optimizing the power efficiency.

[0056] According to an embodiment, multiple optimizers 210 may perform rapid shutdown to stop power generation of the photovoltaic panel 10 in an emergency. In addition, the multiple optimizers 210 may send power generation information to the main controller 100, where the power generation information includes the power generation amount, temperature, and fault information of the photovoltaic panel 10, and receive an operation command from the main controller 100 to optimize power efficiency.

[0057] In this document, the sending and receiving of information between the multiple optimizers 210 and the main controller 100 may be performed by means of Power Line Communication (PLC). When using PLC, separate communication cables or wireless communication technologies are not required for the sending and receiving of information between the multiple MLPEs 200 and the main controller 100, thus facilitating the installation and maintenance of the photovoltaic power generation system. However, since PLC utilizes power lines, compared with using communication cables, PLC may be more affected by line conditions or environmental factors.

[0058] According to an embodiment, the main controller 100 may collect the power generation information received from the multiple optimizers 210 and send the collected information to the server 300, and the server 300 may use the power generation information of the multiple photovoltaic panels 10 to monitor the power generation status of the multiple photovoltaic panels 10.

[0059] In this document, the sending and receiving of information between the main controller 100 and the server 300 may be performed in a wired or wireless manner (e.g., serial communication).

[0060] The main controller 100 may control the multiple optimizers 210, i.e., the MLPE 200, according to the power generation status of the photovoltaic panel 10. In addition, the main controller 100 may receive firmware data from the server 300, send the firmware data to the MLPE after setting the version information, and send a firmware update command to the MLPE, thus playing a role in ensuring the stability and effectiveness of firmware updates.

[0061] According to an embodiment of the present disclosure, in order to monitor the power generation status of the multiple photovoltaic panels 10, the main controller 100 sends command data to the multiple optimizers 210, and the multiple optimizers 210 respond to the command data by sending response data including the power generation information of the photovoltaic panel 10 to the main controller 100. Additionally, the main controller 100 collects the power generation information of the multiple photovoltaic panels 10 and sends the collected information to the server.

[0062] Meanwhile, the MLPE 200 includes an optimizer 210 and various other components implemented on a PCB, and is disposed in a housing of the MLPE 200 in a molded state. Therefore, when the product is finally shipped and installed on the photovoltaic panel 10, if modifications to the operation and control of the MLPE 200 and the optimizer 210 are required, since the PCB cannot be physically accessed for direct operation, such modifications are made through remote firmware updates. In this document, firmware refers to the software responsible for controlling and operating the MLPE 200.

[0063] However, when an error occurs during the remote firmware update process, the MLPE 200 cannot restart. In particular, when the firmware update is interrupted and then restarted by continuously receiving firmware data, if the previously stored firmware data and the subsequently received firmware data have different versions, the validity of the data cannot be ensured.

[0064] Therefore, the photovoltaic power generation system of the present disclosure proposes a technique that verifies the version of the firmware data and continues the update when the firmware update is interrupted and then restarted by continuously receiving firmware data.

[0065] Figure 2 It is a flowchart of an example of a photovoltaic power generation method according to an embodiment of the present disclosure.

[0066] See Figure 2 , first, the main controller 100 receives firmware data from the server (step 201).

[0067] Next, when the reception of the firmware data is completed, the main controller 100 sets the version of the firmware data (step 202).

[0068] Next, the main controller 100 sends the firmware data with the set version to each of the multiple MLPEs (step 203).

[0069] Next, after the transmission of the firmware data is completed, the main controller 100 receives an update preparation signal from the MLPE 200 and sends a firmware update command to the MLPE 200 (step 204).

[0070] Next, the firmware update of the MLPE 200 is executed (step 205).

[0071] The specific operations of the photovoltaic power generation method for MLPE firmware update will be described below for each operation.

[0072] Specifically, when a firmware update is required, the server 300 sends firmware data to the main controller 100, and the main controller 100 receives the firmware update (step 201). Thus, the main controller 100 receives firmware data from the server 300, and when the reception of the firmware data is completed, the version of the firmware data is set.

[0073] In this document, the main controller 100 may increment the version of the firmware data each time the reception and storage of the firmware data are completed. At this time, the completion of the reception and storage of the firmware data means that all the data constituting the complete firmware software has been received and stored without any missing parts.

[0074] More specifically, as described above, the main controller 100 may be inside the inverter 400 or separately provided from the inverter 400, and may include a processor. According to an embodiment of the present disclosure, the main controller 100 and the inverter 400 may be integrated and referred to as a control unit of a photovoltaic power generation system, and the control unit may further include an Energy Management System (EMS) board.

[0075] According to an embodiment of the present disclosure, within the control unit of the photovoltaic power generation system, the main controller 100 may directly communicate with the MLPE through PLC, while the EMS board may communicate with the main controller 100 via serial communication (in a more specific example, Recommended Standard (RS)-485). That is, in the photovoltaic power generation system, the main controller 100 may communicate with other devices such as the inverter and the EMS board through serial communication such as RS-485.

[0076] Returning to Figure 2 step 201, according to an embodiment of the present disclosure, obtaining a firmware update by the main controller 100 may refer to transferring the firmware data provided by the server 300 from the EMS board to the main controller 100, or transferring the firmware data already stored in the EMS board to the main controller 100.

[0077] Subsequently, when the reception of the firmware data is completed, the main controller 100 may set the version of the firmware data (step 202). More specifically, according to an embodiment of the present disclosure, when the main controller 100 receives firmware data from the EMS board, the firmware data is stored in the flash memory of the main controller 100 in binary form. In addition, when the entire firmware data is received, the version of the firmware data may be determined by reflecting the number of times the firmware data has been received. More specifically, the main controller 100 may assign a Serial Number Digit (SND) to a single firmware data.

[0078] Subsequently, according to an embodiment of the present disclosure, the main controller 100 sends a firmware update with a set version to each of the plurality of MLPEs 200 (step 203). More specifically, the main controller 100 divides the firmware data into N unit data segments (where N is a natural number greater than or equal to 2), and sequentially sends the N unit data segments to the MLPE 200. Herein, the main controller 100 may divide the firmware data having a size of several tens of kilobytes into multiple units and send the multiple units.

[0079] Alternatively, according to another embodiment of the present disclosure, the main controller 100 may divide the firmware data into N unit data segments with a preset size and sequentially send the N unit data segments to the MLPE 200. That is, since the firmware capacity may vary according to the version of the firmware data, unit data with a preset size may be generated based on the communication environment instead of evenly dividing the entire data into N segments.

[0080] Subsequently, according to an embodiment of the present disclosure, after completing the transmission of all the divided unit data segments of the firmware data, the main controller 100 receives an update ready signal from the MLPE 200 (step 204). In addition, the main controller 100 that has received the update ready signal from the MLPE 200 sends a firmware update command to the MLPE 200.

[0081] Meanwhile, according to an embodiment of the present disclosure, the main controller 100 obtains the version of the previously stored firmware data from the MLPE 200 and compares the version with the version of the newly sent firmware data. When the comparison result shows that the version of the previously stored firmware data is the same as or higher than the version of the newly sent firmware data, the main controller 100 does not send an update command to the MLPE 200.

[0082] The MLPE 200 that has received the firmware update command from the main controller 100 verifies the version of the firmware data received from the main controller 100 and performs a firmware data update. More specifically, the MLPE 200 compares the set version of the obtained firmware data with the version of the previously stored firmware data, and when the set version of the obtained firmware data is the same as or higher than the version of the previously stored firmware data, the MLPE 200 does not perform a firmware update.

[0083] Specifically, based on the need to update the previously stored first firmware data, the MLPE 200 may delete the first firmware data and receive and store second firmware data having a different version from the first firmware data from the main controller 100. That is, the MLPE 200 performs a reset and update of the firmware data. Herein, the second firmware data may have a higher version than the first firmware data.

[0084] Figure 3 This is an example of firmware data according to an embodiment of the present disclosure.

[0085] Refer to Figure 3 , the version of the firmware data obtained by the main controller 100 is Ver_003, and the firmware data is divided into ten unit data segments, and each unit data segment is assigned an index ranging from 01 to 09.

[0086] In addition, the version of the firmware data previously stored in MLPE#1 is Ver_002, and the firmware data is divided into ten unit data segments, and each unit data segment is assigned an index ranging from 01 to 09. That is, the firmware data previously stored in MLPE#1 may have been divided into ten segments and sent and installed sequentially.

[0087] In addition, the version of the firmware data previously stored in MLPE#2 is Ver_004, and the firmware data is divided into twelve unit data segments, and each unit data segment is assigned an index ranging from 01 to 11. That is, the firmware data previously stored in MLPE#2 may have been divided into 12 segments and sent and installed sequentially, and the firmware data may have a higher version and a larger size than the data obtained by the main controller 100.

[0088] In addition, the version of the firmware data previously stored in MLPE#3 is Ver_001, and the firmware data is divided into ten unit data segments, and each unit data segment is assigned an index ranging from 01 to 19. That is, the firmware data previously stored in MLPE#3 may have been divided into ten segments and sent and installed sequentially, and the firmware data may have a lower version and a smaller size than the data obtained by the main controller 100.

[0089] In Figure 3 In the embodiment, the main controller 100 sends an update command to each MLPE 200 based on the obtained firmware data, and may receive the version information of the previously stored firmware data from each MLPE 200. At this time, when the version of the previously stored firmware data is the same as or higher than the version of the obtained firmware data, the main controller 100 may not send the firmware data. More specifically, the main controller 100 may send the firmware data of Ver_003 to MLPE#1 and MLPE#3, but will not send the firmware data of Ver_003 to MLPE#2.

[0090] Figure 4 This is a schematic diagram describing a situation where an error occurs during the transmission of firmware data according to an embodiment of the present disclosure.

[0091] Figure 4 Continue Figure 3 This is an embodiment of the continuation, and provides an example in which the main controller 100 divides the obtained firmware data of Ver_003 and sequentially sends the firmware data of Ver_003 to MLPE#1 and MLPE#3.

[0092] As described above, the main controller 100 may divide the second firmware data (the obtained firmware data, which is the firmware data of Ver_003 in Figure 4 the embodiment) into N first unit data segments (N = 10 in Figure 4 the embodiment), and sequentially send the N first unit data segments to MLPE#1 and MLPE#3. At this time, the main controller 100 sets an index for each unit data segment among the N first unit data segments, and each time when the MLPE 200 sequentially receives one of the N first unit data segments of the second firmware data, the index can be incremented by 1. Herein, the range of the value of the index can be from 0 to (N - 1). That is, the initial value of the index can be 0, and the end value of the index can be N - 1.

[0093] For example, the main controller 100 sets the index to 0 before receiving the first first unit data segment of the second firmware data. When it is confirmed that the MLPE 200 has received the first first unit data segment, the index of the second first unit data segment is set to 1, and when it is confirmed that the MLPE 200 has received the second first unit data segment, the index is set to 2, so as to increment the index until the last unit data segment is received.

[0094] Each of the N first unit data segments may include version information and index information. For example, the version information and index information may be included in a specific field of the data packet of the first unit data segment.

[0095] Meanwhile, when the main controller 100 sequentially sends the second firmware data, a transmission error may occur in the first unit data segment corresponding to the fifth index (index = 04). In this case, MLPE#1 may receive the third firmware data based on the interruption encountered when receiving the second firmware data. Herein, the third firmware data may be received as a plurality of second unit data segments, and each second unit data segment may include version information and index information.

[0096] For example, the MLPE 200 may receive a plurality of second unit data segments based on the interruption encountered until receiving the i-th first unit data segment during the process of receiving a plurality of first unit data segments (where i is a natural number greater than or equal to 1 and less than N, and in Figure 4 the embodiment i = 5).

[0097] In this document, the MLPE 200 can determine whether the version of the second unit data segment is the same as the version of the previously stored first unit data segment.

[0098] Based on the version of the second unit data segment being the same as the version of the first unit data segment, the MLPE 200 can send the index information of the i-th first unit data segment to the main controller 100.

[0099] In addition, the main controller 100 can verify the index information of the i-th first unit data segment and send multiple second unit data segments to the MLPE 200 starting from the (i + 1)-th second unit data segment.

[0100] In Figure 4 In the embodiment of, both MLPE#1 and MLPE#3 have second unit data segments with the same version as the previously stored first unit data segments. In this case, MLPE#1 sends the index information of the failed i-th first unit data segment (i = 4) to the main controller 100, and MLPE#3 sends the index information of the failed i-th first unit data segment (i = 1) to the main controller 100. In addition, MLPE#1 and MLPE#3 respectively resume receiving data from the main controller 100 starting from the fifth data segment and the second data segment.

[0101] Therefore, when the firmware update is interrupted and then restarted, the MLPE 200 can ensure data validity by keeping the versions of the previously stored multiple first unit data segments and the subsequently received multiple second unit data segments the same and maintaining continuity at the same time.

[0102] Based on the version of the second unit data segment being different from the version of the first unit data segment, the MLPE 200 can delete the second firmware data, and the main controller 200 can send multiple second unit data segments to the MLPE 200 starting from the first second unit data segment. In this document, the third firmware data can have a higher version than the second firmware data.

[0103] Therefore, the MLPE 200 can ensure data validity by receiving and storing all the multiple unit data segments of the third firmware data from start to finish instead of the second firmware data, thereby keeping the versions the same and maintaining continuity.

[0104] Figure 5 is a block diagram of an MLPE according to an embodiment of the present disclosure.

[0105] See Figure 5, an MLPE according to an embodiment of the present disclosure may include a memory 220, a processor 230, and a communication unit 240. At the same time, these components may be integrated within the MLPE 200 as part of the configuration of the MLPE 200 itself.

[0106] The memory 220 may store firmware data and algorithms required to control the operation of the MLPE 200. Herein, the memory 220 may be a flash memory (e.g., Read-Only Memory (ROM)), and may include an application 222 that operates based on previously stored firmware data and a bootloader 221 that receives firmware data from the main controller 100.

[0107] The communication unit 240 may sequentially receive firmware data from the main controller 100, the firmware data having a set version and being divided into N unit data segments. According to an embodiment of the present disclosure, the communication unit 240 of the MLPE 200 may send and receive data to and from the main controller 100 via PLC.

[0108] In addition, the processor 230 may verify the index and version of the firmware data and perform firmware data updates. More specifically, the processor 230 may check the space in the memory 220 in response to a request from the main controller 100, send an update ready signal to the main controller 100 when it is confirmed that the memory space is available, store the firmware data that has been divided into N unit data segments received from the main controller 100 in the memory, and perform firmware reset and update based on the received reset and update signals.

[0109] Herein, each of the N unit data segments has a set index, and the index may be incremented by 1 each time one of the N unit data segments is sequentially received and stored, where the value range of the index is from 0 to (N - 1). Additionally, each of the N unit data segments includes version information and index information.

[0110] Specifically, the processor 230 may, based on the need to update the first firmware data previously stored in the memory 220, delete the first firmware data and receive and store second firmware data having a different version from the first firmware data from the main controller 100. Herein, the second firmware data may be received as N first unit data segments.

[0111] The processor 230 may receive third firmware data based on an interruption encountered when receiving the second firmware data. Herein, the third firmware data may be received as a plurality of second unit data segments.

[0112] Specifically, the processor 230 may receive a plurality of second unit data segments based on an interruption encountered during the reception of a plurality of first unit data segments until the reception of the i-th first unit data segment (where i is a natural number greater than or equal to 1 and less than N, and i = 5).

[0113] In addition, the processor 230 may determine whether the version of the second unit data segment is the same as the version of the previously stored first unit data segment.

[0114] Based on the version of the second unit data segment being the same as the version of the first unit data segment, the processor 230 may send index information of the i-th first unit data segment to the main controller 100.

[0115] In addition, the main controller 100 may verify the index information of the i-th first unit data segment and send a plurality of second unit data segments to the MLPE 200 starting from the (i + 1)-th second unit data segment.

[0116] Therefore, in the firmware update device of the MLPE according to an embodiment of the present disclosure, when the reception of a plurality of first unit data segments is interrupted during the second firmware update and then a plurality of second unit data segments are received again, data validity can be ensured by keeping the versions of the previously stored plurality of first unit data segments and the subsequently received plurality of second unit data segments the same and maintaining continuity at the same time.

[0117] On the contrary, when the version of the second unit data segment is different from the version of the first unit data segment, the processor 230 may delete the second firmware data, and the main controller 200 may send a plurality of second unit data segments to the MLPE 200 starting from the first second unit data segment. Therefore, in the firmware update device of the MLPE according to an embodiment of the present disclosure, data validity is ensured by receiving and storing a plurality of unit data segments of the third firmware data from beginning to end instead of the second firmware data, thereby keeping the versions the same and maintaining continuity.

[0118] Figure 6 is a schematic diagram showing the MLPE firmware update order according to an embodiment of the present disclosure.

[0119] See Figure 6 , data and signals may be sent and received between the server 300 and the main controller 100 through serial communication (e.g., RS485), while data and signals may be sent and received between the main controller 100 and the MLPE 200 through PLC.

[0120] First, when the server 300 sends firmware data to the main controller 100, the main controller 100 stores the firmware data in a memory (e.g., flash memory (ROM)). At this time, when the reception and storage of the firmware data are completed, the main controller 100 sets the version of the firmware data.

[0121] Next, when the reception and storage of the firmware data in the memory are completed, the main controller 100 sends a storage completion signal to the server 300. Then, the server 300 sends an update command to the main controller 100. Herein, the update command may include unique information of the MLPE 200 that requires firmware data update.

[0122] Next, the main controller 100 verifies the unique information of the MLPE 200 and sends an update command that requires firmware data update to the MLPE 200. Then, the MLPE 200 checks the space in the memory 220, and when the memory 220 has sufficient space, it sends an update preparation signal to the main controller 100.

[0123] Next, the main controller 100 sends the firmware data with the set version to the MLPE 200. Then, the MLPE 200 stores the firmware data with the set version.

[0124] Next, when it is necessary to update the previously stored firmware data, the MLPE 200 sends a firmware data reset preparation signal to the main controller 100. Then, the main controller 100 sends a reset and update command to the MLPE 200.

[0125] Next, the MLPE 200 deletes the previously stored firmware data according to the reset and update command, receives and stores the new firmware data from the main controller 100, and performs the update.

[0126] Figure 7 is a flowchart of an MLPE firmware update method according to an embodiment of the present disclosure.

[0127] See Figure 7 , in the MLPE firmware update method according to an embodiment of the present disclosure, first, the processor 230 executes the application program 222, which operates based on the first firmware data previously stored in the memory 220 to control the MLPE 200 (step S10).

[0128] Next, the processor 230 determines whether the first firmware data needs to be updated (step S20).

[0129] Next, when it is necessary to update the previously stored first firmware data, the processor 230 resets the application program (step S30) and executes the bootloader 221 (step S40).

[0130] When the bootloader 221 is executed, the second firmware data is divided into N first unit data segments and received sequentially.

[0131] In this context, each of the N first unit data segments has an assigned index, and each time the MLPE 200 sequentially receives and stores one of the N first unit data segments, the index is incremented by 1, where the value of the index can range from 0 to (N - 1). Additionally, each of the N first unit data segments includes version information and index information.

[0132] Conversely, when there is no need to update the first firmware data, the processor 230 executes the application 222 that operates based on the first firmware data to control the MLPE 200 (step S10).

[0133] The processor 230 can receive the third firmware data based on an interruption encountered when receiving the second firmware data. In this context, the third firmware data can be received as multiple second unit data segments.

[0134] Specifically, the processor 230 can receive multiple second unit data segments based on an interruption encountered during the reception of multiple first unit data segments, until the interruption is encountered when receiving the i-th first unit data segment (where i is a natural number greater than or equal to 1 and less than N, and i = 5).

[0135] Next, the processor 230 determines whether the version of the previously stored first unit data segment is the same as the version of the second unit data segment (step S50).

[0136] In this context, when the version of the second unit data segment is different from the version of the first unit data segment, the processor 230 reports this situation to the main controller 100 (step S60). Additionally, the application 222 is reset (step S30) and the bootloader 221 is executed (step S40) to receive and store the third firmware data from the beginning, where the third firmware data has the same version as the second unit. At this time, the multiple first unit data segments of the previously stored second firmware data are deleted.

[0137] Next, the index information of the second unit data segment is verified to determine whether the index value is 0 (step S70). In the case where the index value is 0, the third firmware data is received from the beginning and the update is restarted (step S90).

[0138] Next, it is determined whether the update is successful (step S100). In the case where the update is successful, the application is executed (step S10).

[0139] Thus, in the MLPE firmware update method according to an embodiment of the present disclosure, instead of the second firmware data, N second unit data segments of the third firmware data are received and stored from start to end, thereby ensuring data validity by keeping the versions of the N unit data segments the same and maintaining continuity.

[0140] Alternatively, the processor 230 may send the index information of the i-th first unit data segment to the main controller 100 based on the version of the second unit data segment being the same as the version of the first unit data segment.

[0141] Next, the main controller 100 verifies the index information of the i-th first unit data segment and sends a plurality of second unit data segments to the MLPE 200 starting from the (i + 1)-th second unit data segment.

[0142] Next, the MLPE 200 resets the application 222 (step S30), executes the bootloader 221 (step S40), and the MLPE 200 receives a plurality of second unit data segments starting from the (i + 1)-th second unit data segment. At this time, since the (i + 1)-th second unit data segment has the same version as the first unit data segment and its index value is not 0, the (i + 1)-th second unit data segment is sequentially inserted after the i-th first unit data segment (step S80), and the update is started (step S90).

[0143] Thus, in the firmware update device of the MLPE according to an embodiment of the present disclosure, when the reception of a plurality of first unit data segments is interrupted during the second firmware update and a plurality of second unit data segments are subsequently received again, data validity can be ensured by keeping the versions of the previously stored plurality of first unit data segments and the subsequently received plurality of second unit data segments the same and maintaining continuity at the same time.

[0144] Next, it is determined whether the update of the second firmware data is successful (step S100). At this time, when the update is successful, the application 222 that operates using the second firmware data is executed (step S10), and when the update fails, the application 222 is reset and the bootloader 221 is executed (step S40).

[0145] Thus, in the MLPE firmware update method according to an embodiment of the present disclosure, when the second firmware update is interrupted and then restarted, data validity can be ensured by keeping the versions of the previously stored plurality of first unit data segments and the subsequently received plurality of second unit data segments the same and maintaining continuity at the same time.

[0146] Meanwhile, the above method can be recorded as a program executable on a computer and can be implemented in a general-purpose digital computer, which runs the program by using a computer-readable storage medium. In addition, the data structures used in the above method can be recorded on the computer-readable storage medium by various methods. Examples of the computer-readable storage medium include storage media such as magnetic storage media (e.g., ROM, Universal Serial Bus (USB), floppy disks, hard disks, etc.) and optical reading media (e.g., Compact Disc (CD)-ROM, Digital Versatile Disc (DVD), etc.).

[0147] Those skilled in the art to which this embodiment belongs will understand that, without departing from the spirit and scope of the present disclosure, the present disclosure can be implemented in a modified form. Therefore, the disclosed method should be regarded as illustrative rather than restrictive. The scope of the present disclosure should be defined by the claims rather than the foregoing description, and equivalents of the claims should be construed as belonging to the scope of the present disclosure.

[0148] Description of the reference numerals of the main elements in the drawings:

[0149] 100: Main controller

[0150] 200: MLPE

[0151] 210: Optimizer

[0152] 220: Memory

[0153] 230: Processor

[0154] 240: Communication unit

[0155] 300: Server

[0156] 400: Inverter.

Claims

1. A method of operating a photovoltaic power generation system for firmware update of a module-level power electronics device (MLPE), comprising: Obtaining firmware data; When the obtaining of the firmware data is completed, setting the version of the firmware data; Sending the firmware data with the set version to each of the plurality of MLPEs; After the sending of the firmware data is completed, receiving a reset preparation signal from each of the plurality of MLPEs; And Sending a firmware reset and update command to each of the plurality of MLPEs.

2. The method of operation according to claim 1, further comprising: After setting the version of the firmware data, Sending an update command to each of the plurality of MLPEs; Receiving an update preparation signal from each of the plurality of MLPEs, the update preparation signal including a memory space check result and version information of previously stored firmware data; And Determining whether to send the firmware data based on the memory space check result and the version information of the previously stored firmware data.

3. The method of operation according to claim 1, wherein, When determining whether to send the firmware data, Comparing the set version of the obtained firmware data with the version of the firmware data previously stored in each of the plurality of MLPEs, and when the version of the previously stored firmware data is the same as or higher than the set version of the obtained firmware data, not sending the firmware data.

4. The method of operation according to claim 1, wherein, When setting the version of the firmware data, Setting the version of the firmware data to increment each time the obtaining of all the data of the firmware data is completed.

5. The method of operation according to claim 1, wherein, When sending the firmware data, Dividing the firmware data into N unit data segments, where N is a natural number greater than or equal to 2, and sequentially sending the N unit data segments to each of the plurality of MLPEs, and Setting an index for each of the N unit data segments, where each time each of the plurality of MLPEs sequentially receives and stores the plurality of unit data segments, the index increments by 1, where The value range of the index is from 0 to N - 1.

6. The method of operation according to claim 1, wherein, Each of the plurality of MLPEs receives the firmware reset and update command, deletes the previously stored first firmware data, and receives and stores second firmware data from the main controller, where The version of the second firmware data is different from the version of the first firmware data.

7. The operating method according to claim 6, wherein, Each of the plurality of MLPEs receives third firmware data based on an interruption encountered when receiving the second firmware data, and receives the third firmware data as a plurality of second unit data segments.

8. The operating method according to claim 7, wherein Each of the multiple MLPEs receives a plurality of second unit data segments starting from the (i + 1)-th second unit data segment based on an interruption after receiving the i-th first unit data segment among the plurality of first unit data segments, where i is a natural number greater than or equal to 1 and less than N.

9. The photovoltaic power generation system according to claim 7, wherein Each of the multiple MLPEs determines whether the version of the plurality of second unit data segments is the same as the version of the plurality of first unit data segments, and receives the firmware data only when the version of the plurality of second unit data segments is the same as the version of the plurality of first unit data segments.

10. The photovoltaic power generation system according to claim 7, wherein Each of the multiple MLPEs sends index information of the i-th first unit data segment to the main controller based on the version of the plurality of second unit data segments being the same as the version of the plurality of first unit data segments; and The main controller verifies the index information of the i-th first unit data segment and sends the plurality of second unit data segments to each of the multiple MLPEs starting from the (i + 1)-th second unit data segment.

11. The operation method according to claim 10, Each of the multiple MLPEs deletes the second firmware data based on the version of the plurality of second unit data segments being different from the version of the plurality of first unit data segments; and The main controller sends the plurality of second unit data segments to each of the multiple MLPEs starting from the first second unit data segment.

12. An inverter of a photovoltaic power generation system, including a main controller for module-level power electronics (MLPE) firmware update, the inverter includes: A communication unit configured to obtain firmware data and send the received firmware data to each of the multiple MLPEs; And A processor configured to set a version of the firmware data, determine whether to send the firmware data based on the version of the firmware data, and after completing sending the firmware data to each of the multiple MLPEs, in response to receiving a reset preparation signal from each of the multiple MLPEs, send a firmware reset and update command to each of the multiple MLPEs.

13. The inverter according to claim 12, wherein, The processor is further configured to: After setting the version of the firmware data, send an update command to each of the multiple MLPEs, receive an update preparation signal from each of the multiple MLPEs, and determine whether to send the firmware data based on a memory space check result and version information of previously stored firmware data, where the update preparation signal includes the memory space check result and the version information of the previously stored firmware data.

14. The inverter according to claim 12, wherein, The processor is further configured to: compare the set version of the acquired firmware data with the version of the previously stored firmware data, and when the version of the previously stored firmware data is the same as or higher than the set version of the acquired firmware data, determine not to send the firmware data.

15. The inverter according to claim 12, wherein, The processor is further configured to: when setting the version of the firmware data, set the version of the firmware data to increment each time the acquisition of all the data of the firmware data is completed.

16. The inverter according to claim 12, wherein, The processor is further configured to: decide to send the firmware data sequentially, the firmware data includes version information, and the firmware data is divided into N unit data segments, where N is a natural number greater than or equal to 2; perform firmware data update based on the version of the firmware data and the index of each of the N unit data segments; set the index for each of the N unit data segments; and increment the index by 1 each time the N unit data segments are sequentially received by each of the plurality of MLPEs.

17. The inverter according to claim 12, wherein, The processor is further configured to generate the firmware reset and update command; Each of the plurality of MLPEs is configured to: when receiving the firmware reset and update command, delete the previously stored first firmware data, and receive and store second firmware data from the master controller, where, The version of the second firmware data is different from the version of the first firmware data.

18. The inverter according to claim 17, wherein, The processor is further configured to: send third firmware data based on an interruption encountered when receiving the second firmware data, and send the third firmware data as a plurality of second unit data segments.

19. The operating method according to claim 18, wherein The processor is further configured to: based on an interruption after receiving the i-th first unit data segment among the plurality of first unit data segments, start sending the plurality of second unit data segments from the (i + 1)-th second unit data segment, where i is a natural number greater than or equal to 1 and less than N.

20. A master controller of a photovoltaic power generation system, configured to perform module-level power electronic device (MLPE) firmware update, the master controller includes: A communication unit, configured to receive firmware data from a server and send the received firmware data to each of the plurality of MLPEs; And A processor, configured to, in response to completing the sending of the firmware data to each of the plurality of MLPEs and receiving a reset preparation signal from each of the plurality of MLPEs, send a firmware reset and update command to each of the plurality of MLPEs.