A method for controlling an energy storage system, wherein the energy storage system comprises an electric cabinet, and the method is characterized by comprising: selecting (S402, S304) a plurality of target modules from all modules contained in the electric cabinet, wherein a voltage of each of the plurality of target modules is greater than or equal to a voltage of a remaining module; and controlling (S404) a DC-DC circuit of the plurality of target modules to increase (S306) an output voltage for power generation, wherein, the selecting the plurality of target modules from all modules contained in the electric cabinet comprises: calculating a first number according to a formula M = (I1 × N + Is + const)/I2, wherein M denotes the first number, I1 denotes a current consumed by a controller area network, CAN, transceiver of a cell supervision circuit, CSC, of each module, N denotes a number of all modules contained in the electric cabinet, Is denotes a current of a slave battery management unit, SBMU, contained in the electric cabinet, const denotes a constant, and 12 denotes a maximum power generation current of the CSC of each module; determining, in a case that the first number is less than a preset number threshold, that a number of the selected target modules is the preset number threshold; and determining, in a case that the first number is greater than or equal to the preset number threshold, that the number of the selected target modules is the first number. selecting (S402, S304) a plurality of target modules from all modules contained in the electric cabinet, wherein a voltage of each of the plurality of target modules is greater than or equal to a voltage of a remaining module; and controlling (S404) a DC-DC circuit of the plurality of target modules to increase (S306) an output voltage for power generation, wherein, the selecting the plurality of target modules from all modules contained in the electric cabinet comprises: calculating a first number according to a formula M = (I1 × N + Is + const)/I2, wherein M denotes the first number, I1 denotes a current consumed by a controller area network, CAN, transceiver of a cell supervision circuit, CSC, of each module, N denotes a number of all modules contained in the electric cabinet, Is denotes a current of a slave battery management unit, SBMU, contained in the electric cabinet, const denotes a constant, and 12 denotes a maximum power generation current of the CSC of each module; determining, in a case that the first number is less than a preset number threshold, that a number of the selected target modules is the preset number threshold; and determining, in a case that the first number is greater than or equal to the preset number threshold, that the number of the selected target modules is the first number. calculating a first number according to a formula M = (I1 × N + Is + const)/I2, wherein M denotes the first number, I1 denotes a current consumed by a controller area network, CAN, transceiver of a cell supervision circuit, CSC, of each module, N denotes a number of all modules contained in the electric cabinet, Is denotes a current of a slave battery management unit, SBMU, contained in the electric cabinet, const denotes a constant, and 12 denotes a maximum power generation current of the CSC of each module; determining, in a case that the first number is less than a preset number threshold, that a number of the selected target modules is the preset number threshold; and determining, in a case that the first number is greater than or equal to the preset number threshold, that the number of the selected target modules is the first number. <EOS>