POUs
- FUNCTION_BLOCK FB_Module(xEmergencyStopOk, uiFirstUnitIndex, xEnable, xStartBalancing, xInSafetyCheckMode, xSafetyIntlksOk, xOff, refstHMIInterface, xReleaseErrors, xReleaseLimitErrors, xReleaseManualMode, xAllToManualMode, xConfirmAlarms, rBalancingTargetVoltage, xInverterEnabled, xLeakageSegments12, xLeakageSegments34, xLeakageTank, rCurrent, uiECState, rCurrentVoltage, xReady, xInShutdownDischargeMode, xShutdownDischargeAllowed, xError, xWarning, xAllUnitsInAutomatic, rSmallestSegmentVoltage, rHighestSegmentVoltage, xBalancingDone)
- VAR_IN:
xEmergencyStopOk (
BOOL) – Emergency stop okuiFirstUnitIndex (
UINT) – Unit numbering start (0 based index) Unit 1 -> Index 0xEnable (
BOOL) – EnablexStartBalancing (
BOOL) – Start balancingxInSafetyCheckMode (
BOOL) – Module in safety check modexSafetyIntlksOk (
BOOL) – All safetyinterlocks are okxOff (
BOOL) – Module completely offrefstHMIInterface (
ST_MODULE_HMI_INTERFACE) – HMI InterfacexReleaseErrors (
BOOL) – Release alarmsxReleaseLimitErrors (
BOOL) – Release analog io limit errorsxReleaseManualMode (
BOOL) – Release manual modexAllToManualMode (
BOOL) – Switch all components to manual modexConfirmAlarms (
BOOL) – Input to confirm all errorsrBalancingTargetVoltage (
REAL) – Balancing target VoltagexInverterEnabled (
BOOL) – Inverter enabled statusxLeakageSegments12 (
BOOL) – Leakage double segment 1/2xLeakageSegments34 (
BOOL) – Leakage double segment 3/4xLeakageTank (
BOOL) – Leakage tankrCurrent (
REAL) – Current current value from string to copy to HMI interfaceuiECState (
UINT) – Current EtherCAT state
- VAR_OUT:
rCurrentVoltage (
REAL) – Module voltagexReady (
BOOL) – Module readyxInShutdownDischargeMode (
BOOL) – Module in shutdown segment discharge modexShutdownDischargeAllowed (
BOOL) – Module can be discharged during shutdown sequencexError (
BOOL) – One unit has an errorxWarning (
BOOL) – One unit has a warningxAllUnitsInAutomatic (
BOOL) – All modules in automatic moderSmallestSegmentVoltage (
REAL) – Smallest segment voltagerHighestSegmentVoltage (
REAL) – Highest segment voltagexBalancingDone (
BOOL) – Balancing done
- VAR:
_fbUnit1 (
FB_Unit) –_fbUnit2 (
FB_Unit) –_fbUnit3 (
FB_Unit) –_fbUnit4 (
FB_Unit) –_xBalanceOk (
BOOL) – Flag for unit balance checking_xAllUnitsReady (
BOOL) – All units are ready_fbUnitsOutOfBalanceAlarm (
FB_TcAlarm) – Units out of balance alarm_fbLeackageTankAlarm (
FB_TcAlarm) – Leackage tank alarm_fbLeackageSegment12Alarm (
FB_TcAlarm) – Leackage Segment 1/2 alarm_fbLeackageSegment34Alarm (
FB_TcAlarm) – Leackage Segemnt 3/4 alarm_fbConnLostAlarm (
FB_TcAlarm) – Connection lost alarm_sName (
STRING) – Module name_fbBalanceNotOkSignal (
FB_ReleaseSignal) –_xECModuleInOP (
BOOL) –xDebug1 (
BOOL) –xDebug2 (
BOOL) –xDebug3 (
BOOL) –xDebug4 (
BOOL) –
- METHOD FB_init(bInitRetains, bInCopyCode, sName)
- VAR_IN:
bInitRetains (
BOOL) – if TRUE, the retain variables are initialized (warm start / cold start)bInCopyCode (
BOOL) – if TRUE, the instance afterwards gets moved into the copy code (online change)sName (
STRING) –
- PROPERTY Name
- FUNCTION_BLOCK FB_PowerMeter(xGetEnergyCounters, sIpAddress, lrEnergyFromGrid, lrEnergyIntoGrid, xBusy, xError)
- VAR_IN:
xGetEnergyCounters (
BOOL) –sIpAddress (
STRING(80)) – IP 75 -> Umrichter IP 80 -> Hilfsenergie
- VAR_OUT:
lrEnergyFromGrid (
LREAL) –lrEnergyIntoGrid (
LREAL) –xBusy (
BOOL) –xError (
BOOL) –
- VAR:
_fbReadRegs (
FB_MBReadRegs) –_awWordArray (
ARRAY[0..3] OF WORD) –_awSwapped (
ARRAY[0..3] OF WORD) –_udiErrorId (
UDINT) –_fbGetEnergyCounters (
R_TRIG) –_xResetEnergyCounter (
BOOL) –_iState (
INT) –
- FUNCTION_BLOCK FB_Safety(xVoltagesInRange, xPressureInRange, xTemperaturesInRange, xReset)
- VAR_IN:
xVoltagesInRange (
BOOL) –xPressureInRange (
BOOL) –xTemperaturesInRange (
BOOL) –xReset (
BOOL) –
- VAR:
_latchedVoltages (
BOOL) –_latchedPressures (
BOOL) –_latechedTemperatures (
BOOL) –_xErrorLatched (
BOOL) –
- FUNCTION_BLOCK FB_String(xEnable, uiStringNumber, xErrorShutdown, xStartBalancing, xInSafetyCheckMode, rPowerInverter, stHMIInterface, xEmergencyStopOk, xResetSafety, xSafetyComError, xReleaseErrors, xReleaseLimitErrors, xReleaseManualMode, xConfirmAlarms, xAllToManualMode, sInverterIP, xECStateSCS, xIsoErrorL1, xIsoErrorL2, xRepairSwitchOk, xSafetyIntlksOk, xSafetyIntlksComponentsOk, rCurrentVoltage, xInShutdownDischargeMode, xShutdownDischargeAllowed, xReady, xOff, xCloseDCCB, xDCCBOpen, xResetSafetyDCCB, xAllModulesInAutoMode, xError, xWarning, eStatus, stInverterData, rSmallestSegmentVoltage, rHighestSegmentVoltage, xBalancingDone)
- VAR_IN:
xEnable (
BOOL) – EnableuiStringNumber (
UINT) – String number for unit numbering starting with 0 for String 1xErrorShutdown (
BOOL) – Error shutdown -> No discharge throught inverterxStartBalancing (
BOOL) – Start in balancing modexInSafetyCheckMode (
BOOL) – String in safety check moderPowerInverter (
REAL) – Requested inverter powerstHMIInterface (
ST_STRING_HMI_INTERFACE) – String HMI interfacexEmergencyStopOk (
BOOL) – Emergency stop okxResetSafety (
BOOL) – Reset SafetyxSafetyComError (
BOOL) – Attr: analysis := ‚-33‘, Safety communication errorxReleaseErrors (
BOOL) – Release alarmsxReleaseLimitErrors (
BOOL) – Release analog io limit errorsxReleaseManualMode (
BOOL) – Release manual modexConfirmAlarms (
BOOL) – Input to confirm all errorsxAllToManualMode (
BOOL) – Switch all components to manual modesInverterIP (
STRING) – String inverter ipxECStateSCS (
UINT) –xIsoErrorL1 (
BOOL) –xIsoErrorL2 (
BOOL) –
- VAR_OUT:
xRepairSwitchOk (
BOOL) – Repair switch closedxSafetyIntlksOk (
BOOL) – All safetyinterlocks from safety plc are okxSafetyIntlksComponentsOk (
BOOL) – All component safety interlocks are okrCurrentVoltage (
REAL) – Current string voltagexInShutdownDischargeMode (
BOOL) – Module in shutdown segment discharge modexShutdownDischargeAllowed (
BOOL) – Module can be discharged during shutdown sequencexReady (
BOOL) – String readyxOff (
BOOL) – String completely offxCloseDCCB (
BOOL) – Signal to close dc circuit breakerxDCCBOpen (
BOOL) – Signal that dc circuit breakers are closedxResetSafetyDCCB (
BOOL) – Reset signal for safety dc circuit breakerxAllModulesInAutoMode (
BOOL) – All modules in automatic modexError (
BOOL) –xWarning (
BOOL) –eStatus (
E_COMPONENT_STATUS) –stInverterData (
ST_SUNSPEC_CURRENT_VALUES) – Inverter status datarSmallestSegmentVoltage (
REAL) – Smallest segment voltagerHighestSegmentVoltage (
REAL) – Highest segment voltagexBalancingDone (
BOOL) – Balancing done
- VAR:
_fbModule1 (
FB_Module) –_fbModule2 (
FB_Module) –_fbModule3 (
FB_Module) –_xModuleError (
BOOL) – Summed status of all module errors_xAllModulesReady (
BOOL) – All modules are ready_xAllModulesInShutdownDischargeMode (
BOOL) – All modules in shutdown discharge mode_xBalanceOk (
BOOL) – Flag for module balance checking_fbModulesOutOfBalanceAlarm (
Fb_TcAlarm) – Modules out of balance alarm message_fbSafetyInterlocksNotOkAlarm (
FB_TcAlarm) – Safetyinterlocks pending alarm_fbInverterStartupTimeoutAlarm (
FB_TcAlarm) – Inverter startup error_fbDCMainSwitchNotClosed (
FB_TcAlarm) – DC Main switch not closed_fbSCSConnLost (
FB_TcAlarm) – Connection to SCS lost_fbIsolationAlarm (
FB_TcAlarm) – Isolatio alarm_fbSafetyIntlkTimeoutAlarm (
FB_TcAlarm) – Safety interlock reset timeout_fbSDDCLevel (
FB_TcMessage) – Shutdown discharge stopped messages_fbSDUnitThreshold (
FB_TcMessage) –_iState (
INT) – State for start and stop_tonResetPulseLength (
TON) – Timer for result pulse to safety_tonErrorDCCBNotClosed (
TON) – Error timer for not closing dc relais_fbBalanceNotOkSignal (
FB_ReleaseSignal) – Delayed balance check signal_sName (
STRING) – String name_fbInverter (
FB_PowerSupplySunspec) – String inverter_rPowerInverterInternal (
REAL) – Internal inverter power command_xEnableInverter (
BOOL) – Enable inverter flag_tonInverterStartupTimeout (
TON) – Fault timer for inverter startup_tonInverterShutdownError (
TON) – Fault timer for inverter shutdown_tonInverterShutdownDelay (
TON) – Debug delay timer for inverter shutdown_tonSafetyOkTimeout (
TON) – Timer for Safety ok timeout_fbStringCurrent (
FB_AnalogInput) – Analog input for string current measurementxErrorInverter (
BOOL) –_xReleaseLimitErrorsInternal (
BOOL) –_xBalancingDone (
BOOL) – Balancing done_xEnable (
BOOL) – Enable modules internal signal_xStartBalancing (
BOOL) – Start balancing internal signal_xIsoError (
BOOL) –_fbTONIsoError (
TON) – Iso error timeout_rSOC (
REAL) – Internal SOC
- VAR PERSISTENT:
rCapacityWH (
REAL) –rCapacityAH (
REAL) –
- METHOD FB_init(bInitRetains, bInCopyCode, sName)
- VAR_IN:
bInitRetains (
BOOL) – if TRUE, the retain variables are initialized (warm start / cold start)bInCopyCode (
BOOL) – if TRUE, the instance afterwards gets moved into the copy code (online change)sName (
STRING) –
- VAR:
_sTemp (
STRING) –
- PROPERTY Name
- FUNCTION_BLOCK FB_UMD705()
- VAR:
_xExecute (
BOOL) –_fbReadRegister (
FB_MBReadRegs) – FB for reading Modbus holding registers_fbWriteRegister (
FB_MBWriteRegs) – FB for writing Modbus holding registers_diLastReset (
DINT) –
- VAR CONSTANT:
STATUS_REGISTER (
WORD) –
- FUNCTION_BLOCK FB_Unit(stUnitConfig, stHMIInterface, xEnable, xStartBalancing, xInSafetyCheckMode, xEmergencyStopOk, xSafetyIntlksOk, xReleaseErrors, xReleaseLimitErrors, xReleaseManualMode, xConfirmAlarms, rBalancingTargetVoltage, xAllToManualMode, xInverterEnabled, stModbusWarnings, stModbusErrors, xReady, xOff, xShutdownDischargeAllowed, xInShutdownDischargeMode, xError, xWarning, rCurrentVoltage, xAllComponentsInAuto, xBalancingDone, xResetMCB)
- VAR_IN:
stUnitConfig (
ST_UNIT_CONFIG) – Unit configurationstHMIInterface (
ST_UNIT_HMI_INTERFACE) – HMI interfacexEnable (
BOOL) – Components shortage workaround xVoltageSensorIs1500V : BOOL; Start unitxStartBalancing (
BOOL) – Star balancingxInSafetyCheckMode (
BOOL) – Unit in safety check modexEmergencyStopOk (
BOOL) – Emergency stop okxSafetyIntlksOk (
BOOL) – All safetyinterlocks are okxReleaseErrors (
BOOL) – Release alarmsxReleaseLimitErrors (
BOOL) – Release analog io limit errorsxReleaseManualMode (
BOOL) – Release manual modexConfirmAlarms (
BOOL) – Input to confirm all errorsrBalancingTargetVoltage (
REAL) – Balancing target VoltagexAllToManualMode (
BOOL) – Switch all components to manual modexInverterEnabled (
BOOL) – Inverter enabled status
- VAR_IN_OUT:
stModbusWarnings (
U_UNIT_WARNING_REGISTER) – Modbus warning registerstModbusErrors (
U_UNIT_ERROR_REGISTER) – Modbus error register
- VAR_OUT:
xReady (
BOOL) – Unit state eUnitState : E_COMPONENT_STATUS := E_COMPONENT_STATUS.OFF; Unit readyxOff (
BOOL) – Unit completely offxShutdownDischargeAllowed (
BOOL) – Unit can be discharged during shutdown sequencexInShutdownDischargeMode (
BOOL) – Unit in shutdown segment discharge modexError (
BOOL) – Error activexWarning (
BOOL) – Warning activerCurrentVoltage (
REAL) – Current Unit voltagexAllComponentsInAuto (
BOOL) – All components in automatic modexBalancingDone (
BOOL) – Balancing donexResetMCB (
BOOL) – Reset MCB
- VAR:
_timUnitStartupWaitTime (
TIME) – Check unit condition after some time during startup_fbPosolytValveTankOutlet (
FB_Valve) – Valves posolyt_fbNegolytValveTankOutlet (
FB_Valve) – Valves negolyt_fbPosolytPumpInlet (
FB_MotorAnalog) – Pumps posolyt_fbNegolytPumpInlet (
FB_MotorAnalog) – Pumps negolyt_fbPressurePosolytSegmentInlet (
FB_AnalogInput) – Pressure sensors posolyt_fbPressurePosolytTankInlet (
FB_AnalogInput) –_fbPressureNegolytSegmentInlet (
FB_AnalogInput) – Pressure sensors negolyt_fbPressureNegolytTankInlet (
FB_AnalogInput) –_fbTempSensorPosolyt (
FB_AnalogInput) – Temperature sensor posolyt_fbTempSensorNegolyt (
FB_AnalogInput) – Temperature sensor negolyt_fbVoltageSegment (
FB_AnalogInput) – Unit voltage_stPosolytValveTankOutletPIntlk (
T_INTERLOCK) – Valve posolyt tank outlet interlocks_stPosolytValveTankOutletPIntlkUsed (
T_INTERLOCK) –_stPosolytValveTankOutletSIntlk (
T_INTERLOCK) –_stPosolytValveTankOutletSIntlkUsed (
T_INTERLOCK) –_stNegolytValveTankOutletPIntlk (
T_INTERLOCK) – Valve negolyt tank outlet interlocks_stNegolytValveTankOutletPIntlkUsed (
T_INTERLOCK) –_stNegolytValveTankOutletSIntlk (
T_INTERLOCK) –_stNegolytValveTankOutletSIntlkUsed (
T_INTERLOCK) –_stPosolytPumpInletPIntlk (
T_INTERLOCK) – Pump posolyt inlet interlocks_stPosolytPumpInletPIntlkUsed (
T_INTERLOCK) –_stPosolytPumpInletSIntlk (
T_INTERLOCK) –_stPosolytPumpInletSIntlkUsed (
T_INTERLOCK) –_stNegolytPumpInletPIntlk (
T_INTERLOCK) – Pump negolyt inlet interlocks_stNegolytPumpInletPIntlkUsed (
T_INTERLOCK) –_stNegolytPumpInletSIntlk (
T_INTERLOCK) –_stNegolytPumpInletSIntlkUsed (
T_INTERLOCK) –_xErrorActive (
BOOL) – Error active_xWarningActive (
BOOL) – Warning active_rShutdownDischargeVoltageThreshold (
REAL) – Shutdown discharge allowed voltage_iState (
INT) – Current state_xAllComponentsInAutomatic (
BOOL) – All components in automatic mode_fbNotAllAutomaticAlarm (
FB_TcAlarm) – Not all components in automatic mode alarm_fbPressureDiffToBig (
FB_TcAlarm) – Pressure difference between pos and neg inlet to big_fbUnitError (
FB_TcAlarm) – General unit error_sName (
STRING) – Unit name_tonStartupCheck (
TON) – Unit startup check timer_xEnableVoltageLimitChecks (
BOOL) – Enable voltage limit checks_xReleaseManualMode (
BOOL) – Manual mode allowed flag_xReleaseSignalDeltaPSegment (
FB_ReleaseSignal) –_xDeltaPSegmentInletToHigh (
BOOL) –_xEnableCheckForDeltaPSegmentInlet (
BOOL) –_xErrorDeltaPSegmentInlet (
BOOL) –_rSetpointPosolytPumpInlet (
REAL) – Setpoint posolyt pump inlet_rSetpointNegolytPumpInlet (
REAL) – Setpoint negolyt pump inlet_tofResetMCB (
TOF) – Timer for resetting the MCB (minimum on time 0,5s)_tonVoltageCheckTimeput (
TON) – Timeout Voltage not reached_rBalancingTargetVoltage (
REAL) – Freezed balancing target voltage_rtrigSwitchToManualMode (
R_TRIG) – Trigger for switching to manual mode_rtrigSwitchToAutoMode (
R_TRIG) – Trigger for switching to automatic mode_tonManualMode (
TON) –_rFilteredPressPosolytInlet (
REAL) – Filtered pressure sensor posolyt segment inlet data for HMI_rFilteredPressNegolytInlet (
REAL) – Filtered pressure sensor posolyt segment inlet data for HMI_rFilteredPressPosolytTank (
REAL) – Filtered pressure sensor posolyt tank inlet data for HMI_rFilteredPressNegolytTank (
REAL) – Filtered pressure sensor posolyt tank inlet data for HMI_xPumpsReady (
BOOL) – Pumps readyxFirstCycle (
BOOL) – Indicate if it ise the first cycle
- METHOD FB_init(bInitRetains, bInCopyCode, sName)
- VAR_IN:
bInitRetains (
BOOL) – if TRUE, the retain variables are initialized (warm start / cold start)bInCopyCode (
BOOL) – if TRUE, the instance afterwards gets moved into the copy code (online change)sName (
STRING) –
- PROPERTY Name
- PROGRAM MAIN()
- VAR:
_xEmergencyStopOk (
BOOL) –_xShowAckEmergencyStop (
BOOL) –_xReleaseErrors (
BOOL) –_xReleaseLimitsErrors (
BOOL) –_xConfirmAlarms (
BOOL) –_xEnableString (
BOOL) –_xStartBalancing (
BOOL) –_xCanChangeMode (
BOOL) –_afbStrings (
ARRAY[0..1] OF FB_String) – Attr: OPC.UA.DA := ‚0‘,_xErrorShutdown (
BOOL) – Variable to detect charge status change _eLastChargeStatus : E_CHARGE_STATUS; Variable to detect battery status change _eLastBatteryStatus : E_BATTERY_STATUS; Battery shutdown due to error_iState (
INT) – State machine state_iStateSafetyCheck (
INT) –_iStateBalancing (
INT) –_xStartSafetyCheck (
BOOL) – Start safety check mode_rAutoPowerRequest (
REAL) – Auto remote and auto local power request_rPowerInverter (
REAL) – Internal inverter power_xNoPowerRequested (
BOOL) – Flag for zero power indication_tonStartupDelay (
TON) – Startup delay for error release during plc startup_tonBeginShutdown (
TON) – Small delay for inverter shutdown_fbNoAutomaticModeAlarm (
FB_TcAlarm) – Not all strings in automatic mode_fbEStopNotOk (
FB_TcAlarm) – Emergency stop not ok alarm_fbEtherCATErrorString1 (
FB_TcAlarm) – String 1 Error Mssage_stECString1ErrSI (
FB_TcSourceInfo) –_fbEtherCATErrorString2 (
FB_TcAlarm) – String 2 Error Mssage_stECString2ErrSI (
FB_TcSourceInfo) –_xFirstCycle (
BOOL) – First cycle tag_fbADSReader (
ADSREAD) – ADS reader for modbus server data_timADSReadTimer (
TON) – Timer for ADS read_xReleaseManualMode (
BOOL) – Release manual mode_eBMSControlMode (
E_BMS_CONTROL_MODE) – Current BMS control mode (Auto local, Auto remote, etc…) On restart star in manual mode (so the ems can not directly start the bms)_fbUPS (
FB_S_UPS_BAPI) – UPSxSafetyRun (
BOOL) – Attr: analysis := ‚-33‘, SafetyxSafetyErrAck (
BOOL) –xSafetyResterTaster (
BOOL) –_xHarwareResetButton (
BOOL) – Hardware reset button_xShowErrorOnButton (
BOOL) –_tonHardwareResetButton (
TON) –_rtHardwareResetButton (
R_TRIG) –_xErrorActive (
BOOL) –_xInSafetyCheckMode (
BOOL) – Battery in safety check mode_fbBatteryFullMessage (
FB_TcMessage) – Battery full message_fbBatteryEmptyMessage (
FB_TcMessage) –_rSmallestSegmentVoltage (
REAL) – Smallest segment voltage_rHighestSegmentVoltage (
REAL) – Highest segment voltage_fbSafety (
FB_Safety) – Safety_uiEtherCATState (
UINT) – String EtherCAT state_wEtherCATState (
WORD) –_xEtherCatString1Ok (
BOOL) –_xEtherCatString2Ok (
BOOL) –_xAllComponentsToManualMode (
BOOL) – Flag to set all components in manual mode_fbRTrigHardwareAck (
R_TRIG) – Hardware reset button rising edge trigger_ModbusDebugTest (
ST_MODBUS_REG_11) – DEBUG_fbStringReadyTimeout (
TON) –_rStringsSumVoltage (
REAL) – Sum of voltage of all active strings_rDeltaUm (
REAL) –_arPowerString (
ARRAY[0..(GVL_CONFIG.uiNumberOfStrings-1)] OF REAL) –_ui (
UINT) –_xStringsReady (
BOOL) –_xStringsErrorActive (
BOOL) –_xStringsInSchutdownDischargeMode (
BOOL) –_xStringsShutdownDischargeAllowed (
BOOL) –_xStringsAllInAutomaticMode (
BOOL) –_xStringsOff (
BOOL) –_xStringsBalancingDone (
BOOL) –_xStringsInAutoMode (
BOOL) –_rMaxCurrentInverterDCVoltage (
REAL) –_rMinCurrentInverterDCVoltage (
REAL) –_fbModbusRead (
FB_MBReadRegs) –xDebugTest (
BOOL) – _wLength : WORD := 49;_wDebug1 (
WORD) –_wDebug2 (
WORD) –_fbPowerMeterPower (
FB_PowerMeter) –_fbPowerMeter24V (
FB_PowerMeter) –_uiNumberOfActiveStrings (
UINT) – Number of activated strings (from configuration)_xGetPowerMeterData (
BOOL) –
Sunspec
- FUNCTION_BLOCK FB_PowerSupplySunspec(sInverterIPAddr, xEnable, rPower, xReset, rMaxBattPower, xActive, xError, xHeartbeatOk, stCurrentValues)
- VAR_IN:
sInverterIPAddr (
STRING) –xEnable (
BOOL) –rPower (
REAL) –xReset (
BOOL) – rReactivePower : REAL := 0.0;rMaxBattPower (
REAL) – 24kW
- VAR_OUT:
xActive (
BOOL) – Inverter activexError (
BOOL) – FB errorxHeartbeatOk (
BOOL) – Heartbeat ok signalstCurrentValues (
ST_SUNSPEC_CURRENT_VALUES) – Current inverter values
- VAR:
_iState (
INT) – Current state_rPowerInternal (
REAL) – Internal power command_fbReadRegister (
FB_MBReadRegs) – FB for reading Modbus holding registers_fbWriteRegister (
FB_MBWriteRegs) – FB for writing Modbus holding registers_iWMaxSF (
INT) – Timer for checking if the inverter started in a reasonable amount of time _tonInverterStartup : TON; converter max power scaling factor_uiWMax (
UINT) – Unscaled converter max power_rWMax (
REAL) – Scaled converter max power_iWMaxLimPct (
INT) – Unscaled limit for converter power_iVarPctSF (
INT) – Scaling factor for reactive power percent value_iWMaxLimPctSF (
INT) – Reread set power limit _iWMaxLimPctRead : INT; _rWMaxLimPctReadScaled : REAL; Scaling factor for power limiting_uiInverterState (
UINT) – Unscaled maximum power from type label _iWRTGSF : INT; Scaling for maximum power from type label _rWRTGScaling : REAL; Current state of the inverters internal statemachine_uiMaxLimEn (
UINT) – Value to enable or dissable the Power limiting feature_uiPCSSetOperation (
UINT) – Value for commanding the target state of the inverter_iMaxPowerVar (
INT) – Maximum reactive power_iMaxVarPct (
INt) – Enable max reactive power percent controller_iErrorInState (
INT) – Holds the state number in which an error occured_timPollingDelay (
TIME) – Time for polling for current dc values and check for inverter error_timSetPowerDelay (
TIME) – Time for setting the current power_tonPollingTimer (
TON) – Timer for polling of current values_tonSetPowerTimer (
TON) – Timer for setting the inverter power_tonHearbeatIncTimer (
TON) – Timer for incrementing heartbeat signal_awCurrentDCValues (
ARRAY[0..5] OF WORD) – Current DC values (DCA, DCA_SF, DCV, DCV_SF, DCW, DCW_SF) in word array for efficient modbus reading_awCurrentACValues (
ARRAY[0..21] OF WORD) – Current AC values (W, W_SF, Hz, Hz_SF, VA, VA_SF, VAr, VAr_SF, PF, PF_SF) in word array for efficient modbus reading_dwErrorBits (
DWORD) – Inverter error bits_uiResetInverter (
UINT) – Inverter reset errors command_uiPLCToInverterCounter (
UINT) – PLC -> Inverter heartbeat_uiInverterToPLCCounter (
UINT) – Inverter -> PLC heartbeat_uiInverterToPLCCounterOld (
UINT) –_xInverterHBCounterIncremented (
BOOL) – Flag to check if inverter has incremented the heartbeat counter_fbErrorInverterAlarm (
FB_TcAlarm) – Inverter alarm_fbHeartbeatTimeout (
TON) – Heartbeat timeout_sName (
STRING) –_uiSetPowerLimitErrorCounter (
UINT) –_uiLastSetPowerLimitErrorCounter (
UINT) –
- VAR CONSTANT:
STATUS_REGISTER (
WORD) – Inverter statemachine status register Size 1, enum16 (Range = 0 .. 65534, Not implemented = 0xFFFF)W_MAX_LIM_PCT_REGISTER (
WORD) – Throttled power register Size 1, int16 (Range = -32767 .. 32767, Not implemented 0x8000)W_MAX_LIM_PCT_SF_REGISTER (
WORD) – Throttled power register scaling factor Size 1, sunssf (int16) (Range = -10 .. 10, Not implemented 0x8000)W_MAX_LIM_EN_REGISTER (
WORD) – Control register to enable and dissable if the power throttleing should be active Size1, enum16 (Range = 0 .. 65534, Not implemented = 0xFFFF)PCS_ALARM_RESET_REGISTER (
WORD) – Register to reset latched alarms in the inverter Size 1, uint16 (Range = 0 .. 65534, Not implemented = 0xFFFF)PCS_SET_OPERATION_REGISTER (
WORD) – Control register to set the target state of the inverters state machine Size 1, enum16 (Range = 0 .. 65534, Not implemented = 0xFFFF)W_MAX_REGISTER (
WORD) – Maximum inverter output power Size 1, uint16 (Range = 0 .. 65534, Not implemented = 0xFFFF)W_MAX_SF_REGISTER (
WORD) – Maximum inverter output power scaling factor Size 1, sunssf (int16) (Range = -10 .. 10, Not implemented 0x8000)DC_VALUES_START_REGISTER (
WORD) – Maximum inverter output power from type label Size 1, uint16 (Range = 0 .. 65534, Not implemented = 0xFFFF) W_RTG_REGISTER : WORD := 40125; Maximum inverter output power from type label scaling factor Size 1, sunssf (int16) (Range = -10 .. 10, Not implemented 0x8000) W_RTG_SF_REGISTER : WORD := 40126; Start of register with the current dc values Size 4AC_VALUES_START_REGISTER (
WORD) – Start of register with the current ac values SIZE 10VAR_W_MAX_PCT (
WORD) – Power factor register in cosine of angle Size 1, int16 (Range = -32767 .. 32767, Not implemented 0x8000) OUT_PF_SET : WORD := 40192; Enable power factor controller Size 1, enum16 (Range = 0 .. 65534, Not implemented = 0xFFFF) OUT_PF_SET_ENA : WORD := 40196; Reactive power in percent of W_Max Size 1, int16 (Range = -32767 .. 32767, Not implemented 0x8000)VAR_PCT_ENA (
WORD) – Enable percent limited var controller Size 1, enum16 (Range = 0 .. 65534, Not implemented = 0xFFFF)VAR_PCT_SF (
WORD) – Register for reactive power percent scaling factor Size 1, sunssf (int16) (Range = -10 .. 10, Not implemented 0x8000)EVT_1_REGISTER (
WORD) – Error bits register Size 2CONTROLLER_HB (
WORD) – PLC -> Inverter Heartbeat registerPCS_HB (
WORD) – Inverter -> PLC heartbeat register
- METHOD FB_init(bInitRetains, bInCopyCode, sName)
- VAR_IN:
bInitRetains (
BOOL) – if TRUE, the retain variables are initialized (warm start / cold start)bInCopyCode (
BOOL) – if TRUE, the instance afterwards gets moved into the copy code (online change)sName (
STRING) –
- PROPERTY Name
ST_SUNSPEC_CURRENT_VALUES
- STRUCT ST_SUNSPEC_CURRENT_VALUES
- rActDCCurrent REAL
Attr: OPC.UA.DA := ‚1‘, Attr: OPC.UA.DA.Access := ‚1‘, Current DC current (A)
- rActDCVoltage REAL
Attr: OPC.UA.DA := ‚1‘, Attr: OPC.UA.DA.Access := ‚1‘, Current DC voltage (V)
- rActDCPower REAL
Attr: OPC.UA.DA := ‚1‘, Attr: OPC.UA.DA.Access := ‚1‘, Current DC power (W)
- rActACCurrent REAL
Attr: OPC.UA.DA := ‚1‘, Attr: OPC.UA.DA.Access := ‚1‘, Current AC current. Sum of active phases (A)
- rActtACPhaseACurrent REAL
Attr: OPC.UA.DA := ‚1‘, Attr: OPC.UA.DA.Access := ‚1‘, Current AC current. Phase A (A)
- rActtACPhaseBCurrent REAL
Attr: OPC.UA.DA := ‚1‘, Attr: OPC.UA.DA.Access := ‚1‘, Current AC current. Phase B (A)
- rActtACPhaseCCurrent REAL
Attr: OPC.UA.DA := ‚1‘, Attr: OPC.UA.DA.Access := ‚1‘, Current AC current. Phase C (A)
- rActACPower REAL
Attr: OPC.UA.DA := ‚1‘, Attr: OPC.UA.DA.Access := ‚1‘, Current AC power (W)
- rActACFreq REAL
Attr: OPC.UA.DA := ‚1‘, Attr: OPC.UA.DA.Access := ‚1‘, Current AC frequency (Hz)
- rActApparentPower REAL
Attr: OPC.UA.DA := ‚1‘, Attr: OPC.UA.DA.Access := ‚1‘, Current AC apparent power (VA)
- rActReactivePower REAL
Attr: OPC.UA.DA := ‚1‘, Attr: OPC.UA.DA.Access := ‚1‘, Current AC reactive power (VAr)
- rActPowerFactor REAL
Attr: OPC.UA.DA := ‚1‘, Attr: OPC.UA.DA.Access := ‚1‘, Current AC power factor
- uiStatus UINT
Attr: OPC.UA.DA := ‚1‘, Attr: OPC.UA.DA.Access := ‚1‘, Current inverter status
U_SUNSPEC_ERROR
ModelData
ST_SunspecInverterThreePhase
- STRUCT ST_SunspecInverterThreePhase
Sunspec register 40.070 - 40.120 (Size 52)
- uiID UINT
Model value
- uiL UINT
Model length
- iA INT
AC current. Sum of active phases
- iAphA INT
AC current. Phase A
- iAphB INT
AC current. Phase B
- iAphC INT
AC current. Phase C
- iASF INT
AC current scaling factor
- uiPPVphAB UINT
Phase voltage AB
- uiPPVphBC UINT
Phase voltage BC
- uiPPVphCA UINT
Phase voltage CA
- uiPhVphA UINT
Phase voltage AN
- uiPhVphB UINT
Phase voltage BN
- uiPhVphC UINT
Phase voltage CN
- iVSF INT
Phase voltage scaling factor
- iW INT
AC Power
- iWSF INT
AC power scaling factor
- uiHz UINT
Line frequency
- iHzSF INT
Line frequency scaling factor
- iVA INT
AC apparent power
- iVASF INT
AC apparent power scaling factor
- iVAr INT
AC reactive power
- iVArSF INT
AC reactive power scaling factor
- iPF INT
AC power factor
- iPFSF INT
AC power factor scaling factor
- udiWH UDINT
AC Energy
- iWHSF INT
AC Energy scaling factor
- uiDCA UINT
DC current
- iDCASF INT
DC current scaling factor
- uiDCV UINT
DC voltage
- iDCVSF INT
DC voltage scaling factor
- iDCW INT
DC power
- iDCWSF INT
DC power scaling factor
- iTmpCab INT
Cabinet temperature
- iTmpSnk INT
Heat sink temperature
- iTmpTrns INT
Transformer temperature
- iTmpOt INT
Other temperature
- iTmpSF INT
Temperature scaling factor
- wSt WORD
Operating state
- wStVnd WORD
Vendor specific operating state
- dwEvt1 DWORD
Bitmask value. Event fields.
- dwEvt2 DWORD
Reserved for future use
- dwEvtVnd1 DWORD
Vendor defined events 1
- dwEvtVnd2 DWORD
Vendor defined events 2
- dwEvtVnd3 DWORD
Vendor defined events 3
- dwEvtVnd4 DWORD
Vendor defined events 4
ST_SunspecNameplateRatings
- STRUCT ST_SunspecNameplateRatings
Sunspec register 40.122 - 40.149 (Size 28)
- uiID UINT
Model value
- uiL UINT
Model length
- wDERTyp WORD
Type of DER device
- uiWRtg UINT
Continuous power output capability of the inverter
- uiWRtgSF INT
Continuous power output capability of the inverter scaling factor
- uiVARtg UINT
Continuous volt-ampere output capability of the inverter
- uiVARtgSF INT
Continuous volt-ampere output capability of the inverter scaling factor
- iVArRtgQ1 INT
Continuous VAR capability of the inverter in quadrant 1
- iVArRtgQ2 INT
Continuous VAR capability of the inverter in quadrant 2
- iVArRtgQ3 INT
Continuous VAR capability of the inverter in quadrant 3
- iVArRtgQ4 INT
Continuous VAR capability of the inverter in quadrant 4
- iVArRtgSF INT
Continuous VAR capability of the inverter in quadrant 1-4 scaling factor
- uiARtg UINT
Maximum RMS AC current level capability of the inverter
- uiARtgSF INT
Maximum RMS AC current level capability of the inverter scaling factor
- iPFRtgQ1 INT
Minimum power factor capability of the inverter in quadrant 1
- iPFRtgQ2 INT
Minimum power factor capability of the inverter in quadrant 2
- iPFRtgQ3 INT
Minimum power factor capability of the inverter in quadrant 3
- iPFRtgQ4 INT
Minimum power factor capability of the inverter in quadrant 4
- iPFRtgSF INT
Minimum power factor capability of the inverter in quadrant 1-4 scaling factor
- uiWHRtg UINT
Nominal energy rating of storage device
- uiWHRtgSF INT
Nominal energy rating of storage device scaling factor
- uiAhrRtg UINT
The usable capacity of the battery
- uiAhrRtgSF INT
The usable capacity of the battery scaling factor
- uiMaxChaRte UINT
Maximum rate of energy transfer into the storage device
- uiMaxChaRteSF INT
Maximum rate of energy transfer into the storage device scaling factor
- uiMaxDisChaRte UINT
Maximum rate of energy transfer out of the storage device
- uiMaxDisChaRteSF INT
Maximum rate of energy transfer out of the storage device scaling factor
- wPad WORD
Padding register