====== Protocol Manual ====== The following Sequence diagrams only considers that the EMS sent a valid value to the PCS. If the value is illegal, the PCS will feedback an exception code. ===== Confirm the model ===== This protocol applies to several models, knowing the differences is quite important. There are three basic models * **PWS1 Standard:** Single-stage inverter, with only one battery string input * **PWS1 Multi-string:** Single-stage inverter, with multiple battery string inputs * **PWG2 Standard:** Two-stage inverter, with only one battery string input, and one PV string input Select the right model on the top row in the protocol spreadsheet to show the appropriate registers. {{:manual:module-based:pasted:20190725-012631.png}} ===== Basic Operations ===== The PCS supports MODBUS TCP/IP and MODBUS RTU protocols. Focused on the functionalities of the registers, this manual will NOT discuss the realizing of MODBUS protocol. The supported function codes are: * 03: reading * 06: writing For simple registers which are NOT variable, such as protection thresholds, there will be NO specific sequence diagrams for describing them. In the rest paragraghs, the following phrase will be used: *** value->address**, stands for writting a value to this register address. * **address=value**, stands for the value read from or optional values that can be written into this register. ==== Reading ==== sequenceDiagram participant EMS participant PCS EMS->>PCS: "Address" = ? PCS->>EMS: Acknowledged ( "Address" = "Value") ==== Writing ==== sequenceDiagram participant EMS participant PCS EMS->>PCS: "Value" -> "Address" PCS->>EMS: Acknowledged ( "Address"="Value") ===== Which power designated? ===== The PCS is a two-port system, you can designate either the power at AC or at DC side. For multi-string model, you can even designate the power of each string, either at AC or DC side. you can even charge one string and discharge another if necessary. For more information, refer to [[how_to:dc_dispatch_and_ac_dispatch| this article]] The register "Energy dispatching mode" has three different mode: * 53601=0, AC dispatching, * 53601=1, DC dispatching (rarely used) * 53601=2, String dispatching (each active power) ===== What's the PCS status ===== The PCS has lots of registers indicating the details what is happending to the PCS. All registers listed in Sheet "RO registers-Client" indicates a status. Basically, There are three main status * 53011 bit9=0, and bit10=0: everything is good * 53011 bit9=1: there are warnings * 53011 bit10=1: there are faults **All regular operation commands can ONLY be executed when 53011 bit10=0** ===== Clearing the fault latch ===== Once faults occur, the PCS will latch the starting register. Before starting, the cause of the faults MUST be confirmed to be removed, and the fault latch has to be cleared by * 1->53903 sequenceDiagram participant EMS participant PCS EMS->>PCS: 1->53903 PCS->>EMS: Acknowledged alt If cause removed confirmed PCS-->>PCS: 53011 bit10=0 else If cause is still there PCS-->>PCS: 53011 bit10=1 end Note right of PCS: Done ==== Multi-string ==== If you are using multi-string model, each string has a standalone clear-fault register. You can eithe use 1->53903 to clear-fault all the modules, or use the following registers: * 1->53923: clear-fault string 1 * 1->53933: clear-fault string 2 * 1->53943: clear-fault string 3 * 1->53953: clear-fault string 4 * 1->53963: clear-fault string 5 * 1->53973: clear-fault string 6 * 1->53983: clear-fault string 7 * 1->53993: clear-fault string 8 ===== Starting ===== The following operations under this title and its subtitles (if exist) can get reaction ONLY when * 53010 bit0 = 0, PCS stopped sequenceDiagram participant EMS participant PCS EMS->>PCS: 1 -> 53900 PCS->>EMS: Acknowledged PCS-->>PCS:Self-Check PCS-->>PCS:Precharge DC link capacitor PCS-->>PCS:Close relays Note right of PCS: Done Depending on the Grid-interconnection settings before starting, the PCS will be running in these modes. * 53600=0, Grid-tied mode\\ If the ramp rate is set, the power will NOT change instantly but with a slope * 53600=1, Off-grid mode ==== Muilt-string ==== If you are using multi-string model, each string has a standalone starting register. You can eithe use 1->53900 to start all the modules, or use the following registers: * 1->53920: start string 1 * 1->53930: start string 2 * 1->53940: start string 3 * 1->53950: start string 4 * 1->53960: start string 5 * 1->53970: start string 6 * 1->53980: start string 7 * 1->53990: start string 8 ===== Stopping ===== The following operations under this title can get reaction ONLY when * 53010 bit0 = 1, PCS is running sequenceDiagram participant EMS participant PCS EMS->>PCS: 1->53900 PCS->>EMS: Acknowledged PCS-->>PCS:limit currents to 0 PCS-->>PCS: open relays Note right of PCS: Done ==== Muilt-string ==== If you are using multi-string model, each string has a standalone stopping register. You can eithe use 1->53900 to stop all the modules, or use the following registers to operate each module: * 1->53921: stop string 1 * 1->53931: stop string 2 * 1->53941: stop string 3 * 1->53951: stop string 4 * 1->53961: stop string 5 * 1->53971: stop string 6 * 1->53981: stop string 7 * 1->53991: stop string 8 ===== Grid-tied Operations===== The following operations under this title and its subtitles can get reaction ONLY when * 53600=0, Grid tied mode, and * 53601=0, AC dispatching ==== Regulating Active Power ==== === Active power regulation modes === there are 4 modes supported in regulating active power * 53636=0: Constant active power\\ - the active power will be designated by the [[#active power setpoint]] directly * 53636=1: Volt-Watt\\ - the active power will be designated by the [[#active power setpoint]] when voltage is in normal range, once the voltage rises beyond the range, the active power will reduce with the Volt-Watt slope * 53636=2: Freq-Watt\\ - the active power will be designated by the [[#active power setpoint]] when frequency is in normal range, once the frequency rises beyond the range, the active power will reduce with the Freq-Watt slope * 53636=3: Freq-Watt and Volt-Watt\\ - the active power will be designated by the [[#active power setpoint]] when both frequency or voltage is in normal range, once the voltage or frequency rises beyond the range, the active power will reduce with the Frequency-Watt and Volt-Watt slope, but frequency will be priory. === Regulating active power setpoint === sequenceDiagram participant EMS participant PCS EMS->>PCS: Active Power->53622 PCS->>EMS: Acknowledged alt If PCS Stopped PCS-->>PCS: Do nothing but will save else If PCS Started PCS-->>PCS: Change output power end Note right of PCS: Done ==== Multi-string ==== If you are using multi-string model, each string have a standalone active power setpoint register. You can eithe use Active Power->53622 to asign the overall active power for all the modules if 53601=0, AC dispatching Or use the following registers to operate each module if 53601=2, String dispatching * Active Power->55600: active power setpoint of string 1 * Active Power->55601: active power setpoint of string 2 * Active Power->55602: active power setpoint of string 3 * Active Power->55603: active power setpoint of string 4 * Active Power->55604: active power setpoint of string 5 * Active Power->55605: active power setpoint of string 6 * Active Power->55606: active power setpoint of string 7 * Active Power->55607: active power setpoint of string 8 ==== Regulating Reactive Power ==== === Reactive power regulation mode === There are three modes for regulating reactive power * 53620=0: Constant PF - the reactive power will be designated by [[#PF setpoint]] and [[#active power setpoint]] * 53620=1: Constant reactive power - the reactive power will be designated by [[#reactive power setpoint]] directly * 53620=2: Volt-Var - the reactive power will be designated by the grid voltage, following the curve made by several [[#Volt-VAr]] (V,Q) points === Using PF setpoint === The following operations under this title and its subtitles(if exist) can get reaction ONLY when * 53620=0: Constant PF sequenceDiagram participant EMS participant PCS EMS->>PCS: PF->53623 PCS->>EMS: Acknowledged alt If PCS Stopped PCS-->>PCS: Do nothing else If PCS Started PCS-->>PCS: Change reactive power dynamically to maintain PF end Note right of PCS: Done === Using reactive power setpoint === The following operations under this title and its subtitles(if exist) can get reaction ONLY when * 53620=1: Constant reactive power sequenceDiagram participant EMS participant PCS EMS->>PCS: power->53623 PCS->>EMS: Acknowledged alt If PCS Stopped PCS-->>PCS: Do nothing else If PCS Started PCS-->>PCS: Change reactive power end Note right of PCS: Done === Using Volt-VAr === The following operations under this title and its subtitles(if exist) can get reaction ONLY when * 53620=2: Volt-Var In Volt-VAr mode, the PCS will NOT response to PF or Reactive power setpoints, but will dynamically generate reactive power depending on the grid voltage. sequenceDiagram participant EMS participant PCS EMS->>PCS: PF->53623, or power->53623 PCS->>EMS: Acknowledged PCS-->>PCS: Do nothing Note right of PCS: Done ===== Off-grid Operations===== The following operations under this title and its subtitles can get reaction ONLY when * 53600=1, Off-grid mode **In off-grid mode, the PCS can NOT do** * Regulate active power * Regulate reactive power * Regulate PF ==== Off-grid AC voltage startup mode ==== There are two options of this register * 53635=0, the PCS will generate voltage instantly * 53635=1, the PCS will generate voltage slowly, trying to avoid inrush current. ==== Regulating frequency ==== This operation can be done before starting or after started. * Frequency bias->Unassigned ==== Regulating off-grid voltage==== This operation can be done before starting or after started. * Voltage factor->53628 ===== Settings ===== ==== What are Smart inverter functions ==== Smart inverters go beyond this basic function to provide grid support functions, such as voltage regulation, frequency support and ride-through capabilities. More and more countries grid codes are requiring similar smart inverter functions === Normal ramp rate (RR) === If [[#Power change mode]] is set to **ramp**, in normal operation, the power setpoint changes, the actual import/export power will slowly change with this slope setpoint. ===Soft-Start ramp rate (SS) === AKA Connect/Reconnect Ramp-up rate Upon starting to inject power into the grid, following a period of inactivity or a disconnection, the inverter will be able to control its rate of increase of power from 1 to 100% maximum current per second. === Grid reconnect delay === Following a trip, the Smart Inverter must delay re-energization or reconnection for a preset period of time once the voltage and frequency of the grid are within normal ranges. === Volt-VAr === In this mode, the Smart inverter shall actively control its reactive power output as a function of the voltage following a Volt-var piecewise linear characteristic in accordance with the parameters specified === Volt-Watt === the active power will be designated by the [[#active power setpoint]] when voltage is in normal range, once the voltage rises beyond the range, the active power will reduce with the Volt-Watt slope === Freq-Watt === The active power will be designated by the [[#active power setpoint]] when frequency is in normal range, once the frequency rises beyond the range, the active power will reduce with the Freq-Watt slope === Frequency Ride-through === Smart Inverter based systems shall remain connected to the grid while the grid is within the frequency-time range provided by the utility and shall disconnect from the electric grid during a high or low frequency event that is outside that frequency-time range. === Voltage Ride-through == Smart Inverter based systems shall remain connected to the grid while the grid is within the voltage-time range provided by the utility and shall disconnect from the electric grid during a high or low voltage event that is outside that voltage-time range. ===Anti-islanding=== By enabling this option, the anti-islanding function will be activated, providing the ability to trip off under extended anomalous conditions ==== DC operation mode (NOT recommended operation) ==== The following operations under this title and its subtitles can get reaction ONLY when * 53600=0, Grid tied mode, and * 53601=1, DC dispatching In DC dispatch mode, you can NOT: * regulate AC active power * regulate AC reactive power * regulate PF There are 2 modes to regulate DC powers * 0:Constant current\\ the PCS will import/export designated DC current if SOC supports, ignoring the AC power setpoints * 1:Constant power\\ the PCS will import/export designated DC power, ignoring the AC power setpoints both of the two options take effect ONLY when [[#Energy dispatching mode]] is set to DC dispatch the mode selection register for each string is listed below * 53650: DC control mode for string 1 (or the only DC string) * 53680: DC control mode for string 2 * 53710: DC control mode for string 3 * 53740: DC control mode for string 4 * 53770: DC control mode for string 5 * 53800: DC control mode for string 6 * 53830: DC control mode for string 7 * 53860: DC control mode for string 8 ===Designate dis-/charge current (DC)=== The PCS will import/export the power at DC side, according to this setpoint This setpoint takes effect ONLY when [[#Energy dispatching mode]] is set to **DC dispatch**, and [[#DC operation mode]] is set to** Constant current** The DC current setpoint register for each string is listed below * 53651: DC current setpoint for string 1 (or the only DC string) * 53681: DC current setpoint for string 2 * 53711: DC current setpoint for string 3 * 53741: DC current setpoint for string 4 * 53771: DC current setpoint for string 5 * 53801: DC current setpoint for string 6 * 53831: DC current setpoint for string 7 * 53861: DC current setpoint for string 8 ===Designate dis-/charge power (DC)=== The PCS will import/export the power at DC side, according to this setpoint This setpoint takes effect ONLY when [[#Energy dispatching mode]] is set to **DC dispatch**, and [[#DC operation mode]] is set to** Constant power** The DC power setpoint register for each string is listed below * 53652: DC power setpoint for string 1 (or the only DC string) * 53682: DC power setpoint for string 2 * 53712: DC power setpoint for string 3 * 53742: DC power setpoint for string 4 * 53772: DC power setpoint for string 5 * 53802: DC power setpoint for string 6 * 53832: DC power setpoint for string 7 * 53862: DC power setpoint for string 8 ==== Battery dis-/charge boundary configuration ==== See the following diagram for the relationship and definitions of the charging/discharging sequence. In most applications, EMS may want the PCS to charge/discharge battery only in constant power section, however, the saturation of battery charging, the over discharging, and the protections, must be considered too. {{:manual:module-based:battery_charge_discharge_sequence.png|}} === Lower limit voltage of battery === This is the secondary under-voltage criterion. If the voltage reaches this threshold, it's critical for the ESS. the EMS must consider charging the battery at this moment. Usually this threshold should be set 5~10V lower than [[#end of discharge voltage]] === Float charge voltage === A legacy setpoint for lead-acid battery. If you are using lithium-ion battery, this setpoint MUST be the same as [[#topping charge voltage]] === Topping charge voltage === refer to this article [[definition:battery_dis-_charge_sequence]] For lithium ion batteries, the PCS will stop charging the battery when the DC voltage reaches [[#topping charge voltage]], AND the DC current reduces to [[#end of charge current]] === Max. charge current (DC) === The battery charging current (DC) will never be more than this threshold === Max. discharge current (DC) === The battery discharging current (DC) will never be more than this threshold === Start of discharge voltage === === End of discharge voltage === If the PCS is discharging, once the voltage reaches this criteria, the PCS will stop and refuse to discharge. === Precharge voltage (legacy) === A legacy setpoint for lead-acid battery. If you are using lithium-ion battery, ignore this option === Precharge time (legacy)=== Another legacy setpoint for lead-acid battery. If you are using lithium-ion battery, ignore this option === End of charge current === When the battery is charged as the voltage is almost reaching [[#topping charge voltage]], the current will reduce. Once the current drops to this threshold, the PCS will stop charging the battery. ^Parameter ^String 1 (or the only string)^String 2^String 3^String 4^String 5^String 6^String 7^String 8^ |Lower limit voltage of battery|53653|53683|53713|53743|53773|53803|53833|53863| |End-of-discharge voltage|53655|53685|53715|53745|53775|53805|53835|53865| |precharge voltage (legacy, rarely used)|53656|53686|53716|53746|53776|53806|53836|53866| |Precharge turn to fast charge transition voltage (legacy, rarely used)|53657|53687|53717|53747|53777|53807|53837|53867| |Precharge time (legacy, rarely used)|53658|53688|53718|53748|53778|53808|53838|53868| |Float charge voltage |53659|53689|53719|53749|53779|53809|53839|53869| |Topping charge voltage|53660|53690|53720|53750|53780|53810|53840|53870| |Topping charge to float charge transition current|53661|53691|53721|53751|53781|53811|53841|53871| |End-of-charge current|53662|53692|53722|53752|53782|53812|53842|53872| |Maximum charge current|53663|53693|53723|53753|53783|53813|53843|53873| |Maximum discharge current|53664|53694|53724|53754|53784|53814|53844|53874| | maximum precharge current (legacy, rarely used)|53665|53695|53725|53755|53785|53815|53845|53875|