diff --git a/PLC/GVLs/GVL_CONFIG.TcGVL b/PLC/GVLs/GVL_CONFIG.TcGVL index 9235595..8eee4d3 100644 --- a/PLC/GVLs/GVL_CONFIG.TcGVL +++ b/PLC/GVLs/GVL_CONFIG.TcGVL @@ -1,5 +1,5 @@  - + ST_LibVersion288iMajorUINT160iMinorUINT1616iBuildUINT1632iRevisionUINT1648nFlagsDWORD3264sVersionSTRING(23)19296E_WATCHDOG_TIME_CONFIG16INTeWATCHDOG_TIME_DISABLED0eWATCHDOG_TIME_SECONDS1eWATCHDOG_TIME_MINUTES2INT (2..100)16INTLowerBorder2UpperBorder100E_HashPrefixTypes16INTHASHPREFIX_IEC0HASHPREFIX_STDC1E_SBCSType16INTeSBCS_WesternEuropean1eSBCS_CentralEuropean2T_AmsNetID192STRING(23)E_RouteTransportType16UINTeRouteTransport_None0eRouteTransport_TCP_IP1eRouteTransport_IIO_LIGHTBUS2eRouteTransport_PROFIBUS_DP3eRouteTransport_PCI_ISA_BUS4eRouteTransport_ADS_UDP5eRouteTransport_FATP_UDP6eRouteTransport_COM_PORT7eRouteTransport_USB8eRouteTransport_CAN_OPEN9eRouteTransport_DEVICE_NET10eRouteTransport_SSB11eRouteTransport_SOAP12ST_AmsRouteEntry1184sNameSTRING(31)2560sNetIDT_AmsNetID192256sAddressSTRING(79)640448eTransportE_RouteTransportType161088tTimeoutTIME321120dwFlagsDWORD321152E_ArgType16INTARGTYPE_UNKNOWN0ARGTYPE_BYTE1ARGTYPE_WORD2ARGTYPE_DWORD3ARGTYPE_REAL4ARGTYPE_LREAL5ARGTYPE_SINT6ARGTYPE_INT7ARGTYPE_DINT8ARGTYPE_USINT9ARGTYPE_UINT10ARGTYPE_UDINT11ARGTYPE_STRING12ARGTYPE_BOOL13ARGTYPE_BIGTYPE14ARGTYPE_ULARGE15ARGTYPE_UHUGE16ARGTYPE_LARGE17ARGTYPE_HUGE18ARGTYPE_LWORD19T_Arg128eTypeE_ArgType160E_ArgType.ARGTYPE_UNKNOWNcbLenUDINT cbLen = length of string + 1 (null delimiter). ]]>32320pDataPVOID64640T_ULARGE_INTEGER64dwLowPartDWORD320dwHighPartDWORD3232TIMESTRUCT128wYearWORD160wMonthWORD1616wDayOfWeekWORD1632wDayWORD1648wHourWORD1664wMinuteWORD1680wSecondWORD1696wMillisecondsWORD16112ST_TimeZoneInformation864biasDINTST_LibVersion288iMajorUINT160iMinorUINT1616iBuildUINT1632iRevisionUINT1648nFlagsDWORD3264sVersionSTRING(23)19296E_WATCHDOG_TIME_CONFIG16INTeWATCHDOG_TIME_DISABLED0eWATCHDOG_TIME_SECONDS1eWATCHDOG_TIME_MINUTES2INT (2..100)16INTLowerBorder2UpperBorder100E_HashPrefixTypes16INTHASHPREFIX_IEC0HASHPREFIX_STDC1E_SBCSType16INTeSBCS_WesternEuropean1eSBCS_CentralEuropean2T_AmsNetID192STRING(23)E_RouteTransportType16UINTeRouteTransport_None0eRouteTransport_TCP_IP1eRouteTransport_IIO_LIGHTBUS2eRouteTransport_PROFIBUS_DP3eRouteTransport_PCI_ISA_BUS4eRouteTransport_ADS_UDP5eRouteTransport_FATP_UDP6eRouteTransport_COM_PORT7eRouteTransport_USB8eRouteTransport_CAN_OPEN9eRouteTransport_DEVICE_NET10eRouteTransport_SSB11eRouteTransport_SOAP12ST_AmsRouteEntry1184sNameSTRING(31)2560sNetIDT_AmsNetID192256sAddressSTRING(79)640448eTransportE_RouteTransportType161088tTimeoutTIME321120dwFlagsDWORD321152E_ArgType16INTARGTYPE_UNKNOWN0ARGTYPE_BYTE1ARGTYPE_WORD2ARGTYPE_DWORD3ARGTYPE_REAL4ARGTYPE_LREAL5ARGTYPE_SINT6ARGTYPE_INT7ARGTYPE_DINT8ARGTYPE_USINT9ARGTYPE_UINT10ARGTYPE_UDINT11ARGTYPE_STRING12ARGTYPE_BOOL13ARGTYPE_BIGTYPE14ARGTYPE_ULARGE15ARGTYPE_UHUGE16ARGTYPE_LARGE17ARGTYPE_HUGE18ARGTYPE_LWORD19T_Arg128eTypeE_ArgType160E_ArgType.ARGTYPE_UNKNOWNcbLenUDINT cbLen = length of string + 1 (null delimiter). ]]>32320pDataPVOID64640T_ULARGE_INTEGER64dwLowPartDWORD320dwHighPartDWORD3232TIMESTRUCT128wYearWORD160wMonthWORD1616wDayOfWeekWORD1632wDayWORD1648wHourWORD1664wMinuteWORD1680wSecondWORD1696wMillisecondsWORD16112ST_TimeZoneInformation864biasDINT320standardNameSTRING(31)25632standardDateTIMESTRUCT1632wStringErrorActiveWORD Error in string 1 active, Bit 1 -> String 2, etc.) Addr: 13.003 ]]>1648wConfirmAlarmsWORD1664pack_mode1ST_DWORD_UNIT_ERROR_BITMAP32bTNegLowBIT10bTNegHighBIT11bTNegErrorBIT12bTPosLowBIT13bTPosHighBIT14bTPosErrorBIT15bPInNegLowBIT16bPInNegHighBIT17bPInNegErrorBIT18bPInPosLowBIT19bPInPosHighBIT110bPInPosErrorBIT111bPTankNegLowBIT112bPTankNegHighBIT113bPTankNegErrorBIT114bPTankPosLowBIT115bPTankPosHighBIT116bPTankPosErrorBIT117bVHighBIT118bVLowBIT119bVErrorBIT120bValveNegBIT121bValvePosBIT122bPumpNegBIT123bPumpPosBIT124bLeackBIT125bSafetyIntlkBIT126U_UNIT_ERROR_REGISTER32dwRegisterDWORD320stBitmapST_DWORD_UNIT_ERROR_BITMAP320I_ArgumentsChangeListener64PVOIDOnArgumentsChangedTcPlcInterfaceTypeITcAsyncResult32ITcUnknownGetIsBusyHRESULT32bIsBusyBOOL3232GetHasErrorHRESULT32bErrorBOOL3232GetErrorCodeHRESULT32hresultHRESULT32FB_AsyncStrResult128bBusyBOOL882098152bErrorBOOL882098224hrErrorCodeHRESULT3282098240nStringSizeUDINT3282098200sResultSTRING(255)204882098232TcEncodingUTF-8__getbBusyBOOL8bBusyBOOL8b32IsBusyBOOL3232propertyInitipResultITcAsyncStringResult64conditionalshowGetStringBOOL8sResultSTRING(80)64nResultUDINT32__getnStringSizeUDINT32nStringSizeUDINT32pEmptySTRING(80)64propertyClear__getbErrorBOOL8bErrorBOOL8b32HasErrorBOOL3232property__getsResultSTRING(255)2048sResultSTRING(255)2048propertyTcEncodingUTF-8__gethrErrorCodeHRESULT32hrErrorCodeHRESULT32hrErrorHRESULT32propertyPouTypeFunctionBlockVTableOffset82088960VfInitVTableIndex8enable_dynamic_creationconditionalshow_all_localsno_explicit_calldo not call this POU directlyTcSourceInfoType32UDINT0124plcAttribute_qualified_onlyplcAttribute_strictTcSerializedSourceInfoType96eTypeTcSourceInfoType320obDataUDINT3232cbDataUDINT3264ITcSourceInfo32ITcUnknownGetNumTypesHRESULT32nCountUDINT32GetTypesHRESULT32ppSourceInfoTypesTcSerializedSourceInfoType32GetDataSizeHRESULT32cbDataUDINT32GetDataHRESULT32ppDataPVOID32ITcEvent32ITcUnknownGetEventClassHRESULT32eventClassGUID32GetEventIdHRESULT32eventIdUDINT32GetSeverityHRESULT32severityTcEventSeverity32GetSourceInfoHRESULT32pipSourceInfoITcSourceInfo32GetJsonAttributeHRESULT32sJsonAttributeSTRING(80)32nJsonAttributeUDINT32GetTextHRESULT32nLangIdDINT32pipResultITcAsyncStringResult32GetEventClassNameHRESULT32nLangIdDINT32pipResultITcAsyncStringResult32I_TcSourceInfo64PVOIDnIdUDINT32sNameSTRING(255)2048__getguidGUID128property__getipDataITcSourceInfo64propertyconditionalshow__getnIdUDINT32property__getsNameSTRING(255)2048propertyTcEncodingUTF-8EqualsToBOOL8ipOtherI_TcSourceInfo64TcPlcInterfaceTypeI_TcEventBase64PVOIDeSeverityTcEventSeverity16ipSourceInfoI_TcSourceInfo64nEventIdUDINT32sEventClassNameSTRING(255)2048sEventTextSTRING(255)2048__geteSeverityTcEventSeverity16property__getEventClassGUID128property__getipSourceInfoI_TcSourceInfo64property__getnEventIdUDINT32property__getsEventClassNameSTRING(255)2048propertyTcEncodingUTF-8__getsEventTextSTRING(255)2048propertyTcEncodingUTF-8__getstEventEntryTcEventEntry192propertyEqualsToBOOL8ipOtherI_TcEventBase64EqualsToEventClassBOOL8OtherEventClassGUID128EqualsToEventEntryBOOL8OtherEventClassGUID128nOtherEventIDUDINT32eOtherSeverityTcEventSeverity16EqualsToEventEntryExBOOL8stOtherTcEventEntry192GetJsonAttributeHRESULT32sJsonAttributeSTRING(80)64nJsonAttributeUDINT32RequestEventClassName1664pack_mode1ST_DWORD_UNIT_WARNING_BITMAP16bTNegLowBIT10bTNegHighBIT11bTPosLowBIT12bTPosHighBIT13bPInNegLowBIT14bPInNegHighBIT15bPInPosLowBIT16bPInPosHighBIT17bPTankNegLowBIT18bPTankNegHighBIT19bPTankPosLowBIT110bPTankPosHighBIT111bVLowBIT112bVHighBIT113U_UNIT_WARNING_REGISTER32stBitmapST_DWORD_UNIT_WARNING_BITMAP160dwRegisterDWORD320ST_DWORD_UNIT_ERROR_BITMAP32bTNegLowBIT10bTNegHighBIT11bTNegErrorBIT12bTPosLowBIT13bTPosHighBIT14bTPosErrorBIT15bPInNegLowBIT16bPInNegHighBIT17bPInNegErrorBIT18bPInPosLowBIT19bPInPosHighBIT110bPInPosErrorBIT111bPTankNegLowBIT112bPTankNegHighBIT113bPTankNegErrorBIT114bPTankPosLowBIT115bPTankPosHighBIT116bPTankPosErrorBIT117bVLowBIT118bVHighBIT119bVErrorBIT120bValveNegBIT121bValvePosBIT122bPumpNegBIT123bPumpPosBIT124bLeackBIT125bSafetyIntlkBIT126U_UNIT_ERROR_REGISTER32dwRegisterDWORD320stBitmapST_DWORD_UNIT_ERROR_BITMAP320I_ArgumentsChangeListener64PVOIDOnArgumentsChangedTcPlcInterfaceTypeITcAsyncResult32ITcUnknownGetIsBusyHRESULT32bIsBusyBOOL3232GetHasErrorHRESULT32bErrorBOOL3232GetErrorCodeHRESULT32hresultHRESULT32FB_AsyncStrResult128bBusyBOOL882098152bErrorBOOL882098224hrErrorCodeHRESULT3282098240nStringSizeUDINT3282098200sResultSTRING(255)204882098232TcEncodingUTF-8__getbBusyBOOL8bBusyBOOL8b32IsBusyBOOL3232propertyInitipResultITcAsyncStringResult64conditionalshowGetStringBOOL8sResultSTRING(80)64nResultUDINT32__getnStringSizeUDINT32nStringSizeUDINT32pEmptySTRING(80)64propertyClear__getbErrorBOOL8bErrorBOOL8b32HasErrorBOOL3232property__getsResultSTRING(255)2048sResultSTRING(255)2048propertyTcEncodingUTF-8__gethrErrorCodeHRESULT32hrErrorCodeHRESULT32hrErrorHRESULT32propertyPouTypeFunctionBlockVTableOffset82088960VfInitVTableIndex8enable_dynamic_creationconditionalshow_all_localsno_explicit_calldo not call this POU directlyTcSourceInfoType32UDINT0124plcAttribute_qualified_onlyplcAttribute_strictTcSerializedSourceInfoType96eTypeTcSourceInfoType320obDataUDINT3232cbDataUDINT3264ITcSourceInfo32ITcUnknownGetNumTypesHRESULT32nCountUDINT32GetTypesHRESULT32ppSourceInfoTypesTcSerializedSourceInfoType32GetDataSizeHRESULT32cbDataUDINT32GetDataHRESULT32ppDataPVOID32ITcEvent32ITcUnknownGetEventClassHRESULT32eventClassGUID32GetEventIdHRESULT32eventIdUDINT32GetSeverityHRESULT32severityTcEventSeverity32GetSourceInfoHRESULT32pipSourceInfoITcSourceInfo32GetJsonAttributeHRESULT32sJsonAttributeSTRING(80)32nJsonAttributeUDINT32GetTextHRESULT32nLangIdDINT32pipResultITcAsyncStringResult32GetEventClassNameHRESULT32nLangIdDINT32pipResultITcAsyncStringResult32I_TcSourceInfo64PVOIDnIdUDINT32sNameSTRING(255)2048__getguidGUID128property__getipDataITcSourceInfo64propertyconditionalshow__getnIdUDINT32property__getsNameSTRING(255)2048propertyTcEncodingUTF-8EqualsToBOOL8ipOtherI_TcSourceInfo64TcPlcInterfaceTypeI_TcEventBase64PVOIDeSeverityTcEventSeverity16ipSourceInfoI_TcSourceInfo64nEventIdUDINT32sEventClassNameSTRING(255)2048sEventTextSTRING(255)2048__geteSeverityTcEventSeverity16property__getEventClassGUID128property__getipSourceInfoI_TcSourceInfo64property__getnEventIdUDINT32property__getsEventClassNameSTRING(255)2048propertyTcEncodingUTF-8__getsEventTextSTRING(255)2048propertyTcEncodingUTF-8__getstEventEntryTcEventEntry192propertyEqualsToBOOL8ipOtherI_TcEventBase64EqualsToEventClassBOOL8OtherEventClassGUID128EqualsToEventEntryBOOL8OtherEventClassGUID128nOtherEventIDUDINT32eOtherSeverityTcEventSeverity16EqualsToEventEntryExBOOL8stOtherTcEventEntry192GetJsonAttributeHRESULT32sJsonAttributeSTRING(80)64nJsonAttributeUDINT32RequestEventClassNameBOOL8nLangIdDINT32sResultSTRING(80)64nResultSizeUDINT32bErrorBOOL8ItemTypeOutputhrErrorCodeHRESULT32ItemTypeOutputRequestEventText2192stModbusReg10ST_MODBUS_REG_1013440stModbusReg11ST_MODBUS_REG_117681344stModbusReg12ST_MODBUS_REG_12802112pack_mode1ST_DWORD_UNIT_WARNING_BITMAP16bTNegLowBIT10bTNegHighBIT11bTPosLowBIT12bTPosHighBIT13bPInNegLowBIT14bPInNegHighBIT15bPInPosLowBIT16bPInPosHighBIT17bPTankNegLowBIT18bPTankNegHighBIT19bPTankPosLowBIT110bPTankPosHighBIT111bVHighBIT112bVLowBIT113U_UNIT_WARNING_REGISTER32stBitmapST_DWORD_UNIT_WARNING_BITMAP160dwRegisterDWORD320ST_ANALOG_IO_CONFIG768iAIMaxINT160OPC.UA.DA1iAIMinINT1616OPC.UA.DA1rPVMaxREAL3232OPC.UA.DA1rPVMinREAL3264OPC.UA.DA1sUnitSTRING(80)64896xUsedBOOL8744trueOPC.UA.DA1ST_ANALOG_EW_LEVELS128rErrorMinREAL320OPC.UA.DA1rWarningMinREAL3232OPC.UA.DA1rWarningMaxREAL3264OPC.UA.DA1rErrorMaxREAL3296OPC.UA.DA1ST_ANALOG_EW_DELAYS320timHardwareSignalLevelOnTIME320OPC.UA.DA1timHardwareSignalLevelOffTIME3232OPC.UA.DA1timErrorLowOnTIME3264OPC.UA.DA1timErrorLowOffTIME3296OPC.UA.DA1timWarningLowOnTIME32128OPC.UA.DA1timWarningLowOffTIME32160OPC.UA.DA1timWarningHighOnTIME32192OPC.UA.DA1timWarningHighOffTIME32224OPC.UA.DA1timErrorHighOnTIME32256OPC.UA.DA1timErrorHighOffTIME32288OPC.UA.DA1ST_MOTOR_ANALOG_CONFIG2208stAnalogInputConfigST_ANALOG_IO_CONFIG7680OPC.UA.DA1stAnalogInputEWLConfigST_ANALOG_EW_LEVELS128768OPC.UA.DA1stAnalogInputEWDConfigST_ANALOG_EW_DELAYS320896stAnalogOutputConfigST_ANALOG_IO_CONFIG7681216OPC.UA.DA1rTargetMinREAL3219840OPC.UA.DA1rTargetMaxREAL322016100OPC.UA.DA1rTargetToleranceREAL2192stModbusReg10ST_MODBUS_REG_1013440stModbusReg11ST_MODBUS_REG_117681344stModbusReg12ST_MODBUS_REG_12802112pack_mode1ST_ANALOG_IO_CONFIG768iAIMaxINT160OPC.UA.DA1iAIMinINT1616OPC.UA.DA1rPVMaxREAL3232OPC.UA.DA1rPVMinREAL3264OPC.UA.DA1sUnitSTRING(80)64896xUsedBOOL8744trueOPC.UA.DA1ST_ANALOG_EW_LEVELS128rErrorMinREAL320OPC.UA.DA1rWarningMinREAL3232OPC.UA.DA1rWarningMaxREAL3264OPC.UA.DA1rErrorMaxREAL3296OPC.UA.DA1ST_ANALOG_EW_DELAYS320timHardwareSignalLevelOnTIME320OPC.UA.DA1timHardwareSignalLevelOffTIME3232OPC.UA.DA1timErrorLowOnTIME3264OPC.UA.DA1timErrorLowOffTIME3296OPC.UA.DA1timWarningLowOnTIME32128OPC.UA.DA1timWarningLowOffTIME32160OPC.UA.DA1timWarningHighOnTIME32192OPC.UA.DA1timWarningHighOffTIME32224OPC.UA.DA1timErrorHighOnTIME32256OPC.UA.DA1timErrorHighOffTIME32288OPC.UA.DA1ST_MOTOR_ANALOG_CONFIG2208stAnalogInputConfigST_ANALOG_IO_CONFIG7680OPC.UA.DA1stAnalogInputEWLConfigST_ANALOG_EW_LEVELS128768OPC.UA.DA1stAnalogInputEWDConfigST_ANALOG_EW_DELAYS320896stAnalogOutputConfigST_ANALOG_IO_CONFIG7681216OPC.UA.DA1rTargetMinREAL3219840OPC.UA.DA1rTargetMaxREAL322016100OPC.UA.DA1rTargetToleranceREAL3220485OPC.UA.DA1timNotInRangeTIME322080T#30SOPC.UA.DA1timRampUpTimeTIME322112OPC.UA.DA1timRampDownTimeTIME322144OPC.UA.DA1xHasAnalogFeedbackBOOL82176OPC.UA.DA1xHasMCBFeedbackBOOL82184OPC.UA.DA1xHasRepairSwitchFeedbackBOOL82192OPC.UA.DA1xUsedBOOL82200trueOPC.UA.DA1ST_ValveConfig96timTimeoutOpenTIME320T#0SOPC.UA.DA1timTimeoutCloseTIME3232T#0SOPC.UA.DA1xHasOpenFeedbackBOOL864OPC.UA.DA1xHasClosedFeedbackBOOL872OPC.UA.DA1xUsedBOOL880trueOPC.UA.DA1ST_UNIT_CONFIG13152stConfigPosolytPumpST_MOTOR_ANALOG_CONFIG8false_xStartSafetyCheckBOOL8_fbRTrigHardwareAckR_TRIG128_iStateINT16_iStateSafetyCheckINT16_iStateBalancingINT16_xNoPowerRequestedBOOL8_xFirstCycleBOOL8true_rAutoPowerRequestREAL32_rPowerInverterREAL32_tonStartupDelayTON256.PTT#10S_tonBeginShutdownTON256.PTT#30S_fbNoAutomaticModeAlarmFB_TcAlarm4224_fbEStopNotOkFB_TcAlarm4224_fbEtherCATErrorString1FB_TcAlarm4224_stECString1ErrSIFB_TcSourceInfo3072_fbEtherCATErrorString2FB_TcAlarm4224_stECString2ErrSIFB_TcSourceInfo3072_fbADSReaderADSREAD1408_timADSReadTimerTON256_xReleaseManualModeBOOL8xSafetyRunBOOL8trueanalysis-33_eBMSControlModeE_BMS_CONTROL_MODE16E_BMS_CONTROL_MODE.AUTO_LOCALxSafetyErrAckBOOL8xSafetyResterTasterBOOL8_xHarwareResetButtonBOOL8_xShowErrorOnButtonBOOL8_fbUPSFB_S_UPS_BAPI74624_tonHardwareResetButtonTON256.PTT#1S_rtHardwareResetButtonR_TRIG128_xErrorActiveBOOL8_xInSafetyCheckModeBOOL8_uiEtherCATStateUINT16_rSmallestSegmentVoltageREAL32_fbBatteryFullMessageFB_TcMessage4288_fbBatteryEmptyMessageFB_TcMessage4288_rHighestSegmentVoltageREAL32_wEtherCATStateWORD16_xEtherCatString1OkBOOL8_xEtherCatString2OkBOOL8_fbSafetyFB_Safety128_xAllComponentsToManualModeBOOL8_ModbusDebugTestST_MODBUS_REG_11768_uiUINT160_rStringsSumVoltageREAL32_fbStringReadyTimeoutTON256_arPowerStringREAL0264_xStringsReadyBOOL8_xStringsErrorActiveBOOL8_xStringsInSchutdownDischargeModeBOOL8_xStringsShutdownDischargeAllowedBOOL8_xStringsAllInAutomaticModeBOOL8_xStringsOffBOOL8_xStringsBalancingDoneBOOL8_xStringsInAutoModeBOOL8_rMaxCurrentInverterDCVoltageREAL32_rMinCurrentInverterDCVoltageREAL32_fbModbusReadFB_MBReadRegs2624xDebugTestBOOL8_xGetPowerMeterDataBOOL8_wDebug1WORD16_wDebug2WORD16_fbPowerMeterPowerFB_PowerMeter3968_fbPowerMeter24VFB_PowerMeter3968_afbStringsFB_String0212317696OPC.UA.DA0SM_AUTOSM_PRECHARGESM_MANUALSM_CAPACITY_TESTSM_BALANCINGSM_SAFETY_CHECKTwinCAT_PreventOnlineChangeGvlWriteLineIDsBOOL8truePlcProfilerActiveBOOL8falsePlcProfilerConfigChecksumSTRING(64)520linkalwaysGVL_MODBUSstBMSErrorRegST_MODBUS_REG_1380awErrorsUnitsActiveU_UNIT_ERROR_REGISTER024 15.047 - Index 0 -> Unit 1, Index 1 -> Unit 2 etc.]]>768stModbusEMSCommST_EMS_MODBUS_INTERFACE2192.stModbusReg10.sManufacturercmblu energy ag.stModbusReg10.sModelnameall liquid.stModbusReg10.sSerialnumber202312151643.stModbusReg10.sBMSVersion0.8.0.stModbusReg10.uiTotalParallelMembers2.stModbusReg10.uiActiveParallelMembers0.stModbusReg11.eChargeStatusE_CHARGE_STATUS.UNDEFINED.stModbusReg11.eBatteryStatusE_BATTERY_STATUS.OFFawWarningsUnitsActiveU_UNIT_WARNING_REGISTER024 14.047 - Index 0 -> Unit 1, Index 1 -> Unit 2 etc.]]>768qualified_onlyGVL_CONFIGxShutdownDischargeWithInverterBOOL8falseTcPersistentuiNumberOfStringsUINT8false_xStartSafetyCheckBOOL8_rDeltaUmREAL32_fbRTrigHardwareAckR_TRIG128_iStateINT16_iStateSafetyCheckINT16_iStateBalancingINT16_xNoPowerRequestedBOOL8_xFirstCycleBOOL8true_rAutoPowerRequestREAL32_rPowerInverterREAL32_tonStartupDelayTON256.PTT#10S_tonBeginShutdownTON256.PTT#30S_fbNoAutomaticModeAlarmFB_TcAlarm4224_fbEStopNotOkFB_TcAlarm4224_fbEtherCATErrorString1FB_TcAlarm4224_stECString1ErrSIFB_TcSourceInfo3072_fbEtherCATErrorString2FB_TcAlarm4224_stECString2ErrSIFB_TcSourceInfo3072_fbADSReaderADSREAD1408_timADSReadTimerTON256_xReleaseManualModeBOOL8xSafetyRunBOOL8trueanalysis-33_eBMSControlModeE_BMS_CONTROL_MODE16E_BMS_CONTROL_MODE.AUTO_LOCALxSafetyErrAckBOOL8xSafetyResterTasterBOOL8_xHarwareResetButtonBOOL8_xShowErrorOnButtonBOOL8_fbUPSFB_S_UPS_BAPI74624_tonHardwareResetButtonTON256.PTT#1S_rtHardwareResetButtonR_TRIG128_xErrorActiveBOOL8_xInSafetyCheckModeBOOL8_uiEtherCATStateUINT16_rSmallestSegmentVoltageREAL32_fbBatteryFullMessageFB_TcMessage4288_fbBatteryEmptyMessageFB_TcMessage4288_rHighestSegmentVoltageREAL32_wEtherCATStateWORD16_xEtherCatString1OkBOOL8_xEtherCatString2OkBOOL8_fbSafetyFB_Safety128_xAllComponentsToManualModeBOOL8_ModbusDebugTestST_MODBUS_REG_11768_uiUINT160_rStringsSumVoltageREAL32_fbStringReadyTimeoutTON256_arPowerStringREAL0264_xStringsReadyBOOL8_xStringsErrorActiveBOOL8_xStringsInSchutdownDischargeModeBOOL8_xStringsShutdownDischargeAllowedBOOL8_xStringsAllInAutomaticModeBOOL8_xStringsOffBOOL8_xStringsBalancingDoneBOOL8_xStringsInAutoModeBOOL8_rMaxCurrentInverterDCVoltageREAL32_rMinCurrentInverterDCVoltageREAL32_fbModbusReadFB_MBReadRegs2624xDebugTestBOOL8_xGetPowerMeterDataBOOL8_wDebug1WORD16_wDebug2WORD16_fbPowerMeterPowerFB_PowerMeter3968_fbPowerMeter24VFB_PowerMeter3968_afbStringsFB_String0212317696OPC.UA.DA0SM_AUTOSM_SAFETY_CHECKSM_MANUALSM_CAPACITY_TESTSM_BALANCINGSM_PRECHARGETwinCAT_PreventOnlineChangeGvlWriteLineIDsBOOL8truePlcProfilerActiveBOOL8falsePlcProfilerConfigChecksumSTRING(64)520linkalwaysGVL_MODBUSstBMSErrorRegST_MODBUS_REG_1380awWarningsUnitsActiveU_UNIT_WARNING_REGISTER024 14.047 + Index 0 -> Unit 1, Index 1 -> Unit 2 etc.]]>768awErrorsUnitsActiveU_UNIT_ERROR_REGISTER024 15.047 + Index 0 -> Unit 1, Index 1 -> Unit 2 etc.]]>768stModbusEMSCommST_EMS_MODBUS_INTERFACE2192.stModbusReg10.sManufacturercmblu energy ag.stModbusReg10.sModelnameall liquid.stModbusReg10.sSerialnumber202312151643.stModbusReg10.sBMSVersion0.8.0.stModbusReg10.uiTotalParallelMembers2.stModbusReg10.uiActiveParallelMembers0.stModbusReg11.eChargeStatusE_CHARGE_STATUS.UNDEFINED.stModbusReg11.eBatteryStatusE_BATTERY_STATUS.OFFqualified_onlyGVL_SCADAxCanChangeControlModeBOOL8stHMIInterfaceST_STRING_HMI_INTERFACE022460736stAckAlarmsButtonST_HMI_CONTROL_BUTTON32.xReleasetruestAutomaticModeHMIST_AUTO_HMI_INTERFACE96eRequestedControlModeE_BMS_CONTROL_MODE16eCurrentControlModeE_BMS_CONTROL_MODE16diCurrentBatteryPowerDINT32eCycleStatusE_CYCLE_STATUS16xDummyBOOL8falselrChargedPowerValueWHLREAL64lrDischargedPowerValueWHLREAL64lrLastCycleUtilityPowerValueWhLREAL64qualified_onlyGVL_CONFIGrBalancingFactorREAL3240TcPersistentxShutdownDischargeWithInverterBOOL8falseTcPersistentuiNumberOfStringsUINT162uiNumberOfUnitsUINT16stUnitConfigST_UNIT_CONFIG768.iAIMax32767.iAIMin0.rPVMax200.rPVMin0.sUnitATcPersistentstEWLSCSCurrentST_ANALOG_EW_LEVELS128TcPersistentstEWDSCSCurrentST_ANALOG_EW_DELAYS320TcPersistentrPumpPosolytOnPowerREAL3265TcPersistentrPumpNegolytOnPowerREAL3265TcPersistentrPumpPosolytDisChrgPowerREAL3245TcPersistentrPumpNegolytDisChrgPowerREAL3245TcPersistentrPumpshutoffThresholdREAL3215TcPersistentrMinimumUnitVoltageREAL3255TcPersistentrMaximumUnitVoltageREAL3279.5TcPersistentrDeltaUnitVoltageShutdownDischargeREAL325TcPersistentrMaxAbsDiffVoltageUnitsOnModuleREAL3270TcPersistentrPumpNegolytOnPowerREAL3270TcPersistentrPumpPosolytDisChrgPowerREAL3245TcPersistentrPumpNegolytDisChrgPowerREAL3245TcPersistentrPumpshutoffThresholdREAL3215TcPersistentrMinimumUnitVoltageREAL3255TcPersistentrMaximumUnitVoltageREAL3279.5TcPersistentrDeltaUnitVoltageShutdownDischargeREAL325TcPersistentrMaxAbsDiffVoltageUnitsOnModuleREAL3210TcPersistentrMaxAbsDiffVoltageModulesInStringREAL3220TcPersistentdiMinimumAbsPowerForEnableDINT32100TcPersistentdiMaxStringChargingPowerDINT 2.000 W per Unit]]>32-50000TcPersistentdiMaxStringDischargePowerDINT 2.000 W per Unit]]>3250000TcPersistentsInverterIpString1STRING(80)648192.168.42.10TcPersistentsInverterIpString2STRING(80)648192.168.42.20TcPersistentxDummyBOOL8falseTcPersistentanalysis-33rAbsShutdownDischargePowerREAL 1.000 W per unit]]>326500TcPersistentrStringFullyChargedVoltageREAL 80 V per Unit]]>32960TcPersistentrStringEmptyVoltageREAL 55.0V per Segment)]]>32660TcPersistenttimUnitStartupTimeTIME32T#1MTcPersistenttimUnitBalancingStartupTimeTIME32T#3MTcPersistenttimStringReadyTimeoutTIME32T#3MTcPersistenttimIsoErrorTimeoutTIME32T#20sTcPersistentqualified_onlyGVL_SCADAxCanChangeControlModeBOOL8stHMIInterfaceST_STRING_HMI_INTERFACE022460736stAckAlarmsButtonST_HMI_CONTROL_BUTTON32.xReleasetruestAutomaticModeHMIST_AUTO_HMI_INTERFACE96eRequestedControlModeE_BMS_CONTROL_MODE16eCurrentControlModeE_BMS_CONTROL_MODE16diCurrentBatteryPowerDINT32eCycleStatusE_CYCLE_STATUS16xDummyBOOL8falselrChargedPowerValueWHLREAL64lrDischargedPowerValueWHLREAL64lrLastCycleUtilityPowerValueWhLREAL64qualified_onlyPLC{08500001-0000-0000-F000-000000000064}0PlcTask#x02010030DeviceLog FilterUDINT#x08508045DeviceLog Filter000000000PlcTask Inputs099221504MAIN._xEmergencyStopOk8BOOL641605040MAIN.xSafetyResterTaster8BOOL654091368MAIN._xHarwareResetButton8BOOL654091376MAIN._uiEtherCATState16UINT654166416MAIN._fbSafety.xVoltagesInRange8BOOL654175168MAIN._fbSafety.xPressureInRange8BOOL654175176MAIN._fbSafety.xTemperaturesInRange8BOOL654175184MAIN._afbStrings[0].xSafetyComError8BOOLanalysis-33669261968MAIN._afbStrings[0].xECStateSCS16UINT669262672MAIN._afbStrings[0].xIsoErrorL18BOOL669262688MAIN._afbStrings[0].xIsoErrorL28BOOL669262696MAIN._afbStrings[0].xRepairSwitchOk8BOOL669262704MAIN._afbStrings[0].xSafetyIntlksOk8BOOL669262712MAIN._afbStrings[0].xDCCBOpen8BOOL669262824MAIN._afbStrings[0]._fbModule1.xLeakageSegments128BOOL669263784MAIN._afbStrings[0]._fbModule1.xLeakageSegments348BOOL669263792MAIN._afbStrings[0]._fbModule1.xLeakageTank8BOOL669263800MAIN._afbStrings[0]._fbModule1.uiECState16UINT669263840MAIN._afbStrings[0]._fbModule1._fbUnit1._fbPosolytValveTankOutlet.xOpenFeedback8BOOL669265792MAIN._afbStrings[0]._fbModule1._fbUnit1._fbPosolytValveTankOutlet.xCloseFeedback8BOOL669265800MAIN._afbStrings[0]._fbModule1._fbUnit1._fbNegolytValveTankOutlet.xOpenFeedback8BOOL669277504MAIN._afbStrings[0]._fbModule1._fbUnit1._fbNegolytValveTankOutlet.xCloseFeedback8BOOL669277512MAIN._afbStrings[0]._fbModule1._fbUnit1._fbPosolytPumpInlet.xMCBOk8BOOL669288336MAIN._afbStrings[0]._fbModule1._fbUnit1._fbPosolytPumpInlet.xRepairSwitchOk8BOOL669288344MAIN._afbStrings[0]._fbModule1._fbUnit1._fbPosolytPumpInlet.iPVFeedback16INT669298784MAIN._afbStrings[0]._fbModule1._fbUnit1._fbPosolytPumpInlet.xUnderrange8BOOL669298800MAIN._afbStrings[0]._fbModule1._fbUnit1._fbPosolytPumpInlet.xOverrange8BOOL669298808MAIN._afbStrings[0]._fbModule1._fbUnit1._fbPosolytPumpInlet.xErrorCard8BOOL669298816MAIN._afbStrings[0]._fbModule1._fbUnit1._fbNegolytPumpInlet.xMCBOk8BOOL669359376MAIN._afbStrings[0]._fbModule1._fbUnit1._fbNegolytPumpInlet.xRepairSwitchOk8BOOL669359384MAIN._afbStrings[0]._fbModule1._fbUnit1._fbNegolytPumpInlet.iPVFeedback16INT669369824MAIN._afbStrings[0]._fbModule1._fbUnit1._fbNegolytPumpInlet.xUnderrange8BOOL669369840MAIN._afbStrings[0]._fbModule1._fbUnit1._fbNegolytPumpInlet.xOverrange8BOOL669369848MAIN._afbStrings[0]._fbModule1._fbUnit1._fbNegolytPumpInlet.xErrorCard8BOOL669369856MAIN._afbStrings[0]._fbModule1._fbUnit1._fbPressurePosolytSegmentInlet.iAnalogValue16INT669430336MAIN._afbStrings[0]._fbModule1._fbUnit1._fbPressurePosolytSegmentInlet.xUnderrange8BOOL669431584MAIN._afbStrings[0]._fbModule1._fbUnit1._fbPressurePosolytSegmentInlet.xOverrange8BOOL669431592MAIN._afbStrings[0]._fbModule1._fbUnit1._fbPressurePosolytSegmentInlet.xErrorCard 80 V per Unit]]>32960TcPersistentrStringEmptyVoltageREAL 55.0V per Segment)]]>32660TcPersistenttimUnitStartupTimeTIME32T#1MTcPersistenttimUnitBalancingStartupTimeTIME32T#3MTcPersistenttimStringReadyTimeoutTIME32T#3MTcPersistenttimIsoErrorTimeoutTIME32T#20STcPersistentqualified_onlyPLC{08500001-0000-0000-F000-000000000064}0PlcTask#x02010030DeviceLog FilterUDINT#x08508045DeviceLog Filter000000000PlcTask Inputs099221504MAIN._xEmergencyStopOk8BOOL641605040MAIN.xSafetyResterTaster8BOOL654091368MAIN._xHarwareResetButton8BOOL654091376MAIN._uiEtherCATState16UINT654166416MAIN._fbSafety.xVoltagesInRange8BOOL654175168MAIN._fbSafety.xPressureInRange8BOOL654175176MAIN._fbSafety.xTemperaturesInRange8BOOL654175184MAIN._afbStrings[0].xSafetyComError8BOOLanalysis-33669261968MAIN._afbStrings[0].xECStateSCS16UINT669262672MAIN._afbStrings[0].xIsoErrorL18BOOL669262688MAIN._afbStrings[0].xIsoErrorL28BOOL669262696MAIN._afbStrings[0].xRepairSwitchOk8BOOL669262704MAIN._afbStrings[0].xSafetyIntlksOk8BOOL669262712MAIN._afbStrings[0].xDCCBOpen8BOOL669262824MAIN._afbStrings[0]._fbModule1.xLeakageSegments128BOOL669263784MAIN._afbStrings[0]._fbModule1.xLeakageSegments348BOOL669263792MAIN._afbStrings[0]._fbModule1.xLeakageTank8BOOL669263800MAIN._afbStrings[0]._fbModule1.uiECState16UINT669263840MAIN._afbStrings[0]._fbModule1._fbUnit1._fbPosolytValveTankOutlet.xOpenFeedback8BOOL669265792MAIN._afbStrings[0]._fbModule1._fbUnit1._fbPosolytValveTankOutlet.xCloseFeedback8BOOL669265800MAIN._afbStrings[0]._fbModule1._fbUnit1._fbNegolytValveTankOutlet.xOpenFeedback8BOOL669277504MAIN._afbStrings[0]._fbModule1._fbUnit1._fbNegolytValveTankOutlet.xCloseFeedback8BOOL669277512MAIN._afbStrings[0]._fbModule1._fbUnit1._fbPosolytPumpInlet.xMCBOk8BOOL669288336MAIN._afbStrings[0]._fbModule1._fbUnit1._fbPosolytPumpInlet.xRepairSwitchOk8BOOL669288344MAIN._afbStrings[0]._fbModule1._fbUnit1._fbPosolytPumpInlet.iPVFeedback16INT669298784MAIN._afbStrings[0]._fbModule1._fbUnit1._fbPosolytPumpInlet.xUnderrange8BOOL669298800MAIN._afbStrings[0]._fbModule1._fbUnit1._fbPosolytPumpInlet.xOverrange8BOOL669298808MAIN._afbStrings[0]._fbModule1._fbUnit1._fbPosolytPumpInlet.xErrorCard8BOOL669298816MAIN._afbStrings[0]._fbModule1._fbUnit1._fbNegolytPumpInlet.xMCBOk8BOOL669359376MAIN._afbStrings[0]._fbModule1._fbUnit1._fbNegolytPumpInlet.xRepairSwitchOk8BOOL669359384MAIN._afbStrings[0]._fbModule1._fbUnit1._fbNegolytPumpInlet.iPVFeedback16INT669369824MAIN._afbStrings[0]._fbModule1._fbUnit1._fbNegolytPumpInlet.xUnderrange8BOOL669369840MAIN._afbStrings[0]._fbModule1._fbUnit1._fbNegolytPumpInlet.xOverrange8BOOL669369848MAIN._afbStrings[0]._fbModule1._fbUnit1._fbNegolytPumpInlet.xErrorCard8BOOL669369856MAIN._afbStrings[0]._fbModule1._fbUnit1._fbPressurePosolytSegmentInlet.iAnalogValue16INT669430336MAIN._afbStrings[0]._fbModule1._fbUnit1._fbPressurePosolytSegmentInlet.xUnderrange8BOOL669431584MAIN._afbStrings[0]._fbModule1._fbUnit1._fbPressurePosolytSegmentInlet.xOverrange8BOOL669431592MAIN._afbStrings[0]._fbModule1._fbUnit1._fbPressurePosolytSegmentInlet.xErrorCard8BOOL669431600MAIN._afbStrings[0]._fbModule1._fbUnit1._fbPressurePosolytTankInlet.iAnalogValue16INT669475520MAIN._afbStrings[0]._fbModule1._fbUnit1._fbPressurePosolytTankInlet.xUnderrange8BOOL669476768MAIN._afbStrings[0]._fbModule1._fbUnit1._fbPressurePosolytTankInlet.xOverrange8BOOL669476776MAIN._afbStrings[0]._fbModule1._fbUnit1._fbPressurePosolytTankInlet.xErrorCard8BOOL669476784MAIN._afbStrings[0]._fbModule1._fbUnit1._fbPressureNegolytSegmentInlet.iAnalogValue16INT669520704MAIN._afbStrings[0]._fbModule1._fbUnit1._fbPressureNegolytSegmentInlet.xUnderrange8BOOL669521952MAIN._afbStrings[0]._fbModule1._fbUnit1._fbPressureNegolytSegmentInlet.xOverrange8BOOL669521960MAIN._afbStrings[0]._fbModule1._fbUnit1._fbPressureNegolytSegmentInlet.xErrorCard8BOOL669521968MAIN._afbStrings[0]._fbModule1._fbUnit1._fbPressureNegolytTankInlet.iAnalogValue16INT669565888MAIN._afbStrings[0]._fbModule1._fbUnit1._fbPressureNegolytTankInlet.xUnderrange8BOOL669567136MAIN._afbStrings[0]._fbModule1._fbUnit1._fbPressureNegolytTankInlet.xOverrange8BOOL669567144MAIN._afbStrings[0]._fbModule1._fbUnit1._fbPressureNegolytTankInlet.xErrorCard8BOOLfalse641751472MAIN._xStartSafetyCheck8BOOL641751480GVL_MODBUS.stBMSErrorReg80ST_MODBUS_REG_13TcVarGlobal641751488GVL_MODBUS.awErrorsUnitsActive 15.047 - Index 0 -> Unit 1, Index 1 -> Unit 2 etc.]]>768U_UNIT_ERROR_REGISTER024TcVarGlobal641759744MAIN._fbRTrigHardwareAck128R_TRIG641760512MAIN._iState16INT654065984MAIN._iStateSafetyCheck16INT654066000MAIN._iStateBalancing16INT654066016MAIN._xNoPowerRequested8BOOL654066032MAIN._xFirstCycle8BOOLtrue654066040MAIN._rAutoPowerRequest32REAL654066048MAIN._rPowerInverter32REAL654066080MAIN._tonStartupDelay256TON.PTT#10S654066112MAIN._tonBeginShutdown256TON.PTT#30S654066368MAIN._fbNoAutomaticModeAlarm4224FB_TcAlarm654066624MAIN._fbEStopNotOk4224FB_TcAlarm654070848MAIN._fbEtherCATErrorString14224FB_TcAlarm654075072MAIN._stECString1ErrSI3072FB_TcSourceInfo654079296MAIN._fbEtherCATErrorString24224FB_TcAlarm654082368MAIN._stECString2ErrSI3072FB_TcSourceInfo654086592MAIN._fbADSReader1408ADSREAD654089664MAIN._timADSReadTimer256TON654091072MAIN._xReleaseManualMode8BOOL654091328MAIN._eBMSControlMode16E_BMS_CONTROL_MODEE_BMS_CONTROL_MODE.AUTO_LOCAL654091344MAIN._fbUPS74624FB_S_UPS_BAPI654091392MAIN._tonHardwareResetButton256TON.PTT#1S654166016MAIN._rtHardwareResetButton128R_TRIG654166272MAIN._xErrorActive8BOOL654166400MAIN._xInSafetyCheckMode8BOOL654166408MAIN._rSmallestSegmentVoltage32REAL654166432MAIN._fbBatteryFullMessage4288FB_TcMessage654166464MAIN._fbBatteryEmptyMessage4288FB_TcMessage654170752MAIN._rHighestSegmentVoltage32REAL654175040MAIN._wEtherCATState16WORD654175072MAIN._xEtherCatString1Ok8BOOL654175088MAIN._xEtherCatString2Ok8BOOL654175096MAIN._fbSafety128FB_Safety654175104MAIN._xAllComponentsToManualMode8BOOL654175232MAIN._ModbusDebugTest768ST_MODBUS_REG_11654175248MAIN._ui16UINT0654176016MAIN._rStringsSumVoltage32REAL654176032MAIN._fbStringReadyTimeout256TON654176064MAIN._arPowerString64REAL02654176320MAIN._xStringsReady8BOOL654176384MAIN._xStringsErrorActive8BOOL654176392MAIN._xStringsInSchutdownDischargeMode8BOOL654176400MAIN._xStringsShutdownDischargeAllowed8BOOL654176408MAIN._xStringsAllInAutomaticMode8BOOL654176416MAIN._xStringsOff8BOOL654176424MAIN._xStringsBalancingDone8BOOL654176432MAIN._xStringsInAutoMode8BOOL654176440MAIN._rMaxCurrentInverterDCVoltage32REAL654176448MAIN._rMinCurrentInverterDCVoltage32REAL654176480MAIN._fbModbusRead2624FB_MBReadRegs654176512MAIN.xDebugTest8BOOL654179136MAIN._xGetPowerMeterData8BOOL654179144MAIN._wDebug116WORD654179152MAIN._wDebug216WORD654179168TwinCAT_PreventOnlineChangeGvl.WriteLineIDs8BOOLtrueTcVarGlobal654179184TwinCAT_PreventOnlineChangeGvl.PlcProfilerActive8BOOLfalseTcVarGlobal654179192MAIN._fbPowerMeterPower3968FB_PowerMeter654179200MAIN._fbPowerMeter24V3968FB_PowerMeter654183168TwinCAT_PreventOnlineChangeGvl.PlcProfilerConfigChecksum520STRING(64)TcVarGlobal654187136GVL_CONFIG.xShutdownDischargeWithInverter8BOOLfalseTcPersistentTcVarGlobal654187656GVL_MODBUS.stModbusEMSComm2192ST_EMS_MODBUS_INTERFACE.stModbusReg10.sManufacturercmblu energy ag.stModbusReg10.sModelnameall liquid.stModbusReg10.sSerialnumber202312151643.stModbusReg10.sBMSVersion0.8.0.stModbusReg10.uiTotalParallelMembers2.stModbusReg10.uiActiveParallelMembers0.stModbusReg11.eChargeStatusE_CHARGE_STATUS.UNDEFINED.stModbusReg11.eBatteryStatusE_BATTERY_STATUS.OFFTcVarGlobal654187680GVL_MODBUS.awWarningsUnitsActive 14.047 - Index 0 -> Unit 1, Index 1 -> Unit 2 etc.]]>768U_UNIT_WARNING_REGISTER024TcVarGlobal654189952GVL_CONFIG.uiNumberOfStrings8BOOLfalse641751472MAIN._xStartSafetyCheck8BOOL641751480GVL_MODBUS.stBMSErrorReg80ST_MODBUS_REG_13TcVarGlobal641751488MAIN._rDeltaUm32REAL641751584GVL_CONFIG.rBalancingFactor32REAL40TcPersistentTcVarGlobal641759872MAIN._fbRTrigHardwareAck128R_TRIG641760512GVL_MODBUS.awWarningsUnitsActive 14.047 + Index 0 -> Unit 1, Index 1 -> Unit 2 etc.]]>768U_UNIT_WARNING_REGISTER024TcVarGlobal641760640GVL_MODBUS.awErrorsUnitsActive 15.047 + Index 0 -> Unit 1, Index 1 -> Unit 2 etc.]]>768U_UNIT_ERROR_REGISTER024TcVarGlobal641761408MAIN._iState16INT654065984MAIN._iStateSafetyCheck16INT654066000MAIN._iStateBalancing16INT654066016MAIN._xNoPowerRequested8BOOL654066032MAIN._xFirstCycle8BOOLtrue654066040MAIN._rAutoPowerRequest32REAL654066048MAIN._rPowerInverter32REAL654066080MAIN._tonStartupDelay256TON.PTT#10S654066112MAIN._tonBeginShutdown256TON.PTT#30S654066368MAIN._fbNoAutomaticModeAlarm4224FB_TcAlarm654066624MAIN._fbEStopNotOk4224FB_TcAlarm654070848MAIN._fbEtherCATErrorString14224FB_TcAlarm654075072MAIN._stECString1ErrSI3072FB_TcSourceInfo654079296MAIN._fbEtherCATErrorString24224FB_TcAlarm654082368MAIN._stECString2ErrSI3072FB_TcSourceInfo654086592MAIN._fbADSReader1408ADSREAD654089664MAIN._timADSReadTimer256TON654091072MAIN._xReleaseManualMode8BOOL654091328MAIN._eBMSControlMode16E_BMS_CONTROL_MODEE_BMS_CONTROL_MODE.AUTO_LOCAL654091344MAIN._fbUPS74624FB_S_UPS_BAPI654091392MAIN._tonHardwareResetButton256TON.PTT#1S654166016MAIN._rtHardwareResetButton128R_TRIG654166272MAIN._xErrorActive8BOOL654166400MAIN._xInSafetyCheckMode8BOOL654166408MAIN._rSmallestSegmentVoltage32REAL654166432MAIN._fbBatteryFullMessage4288FB_TcMessage654166464MAIN._fbBatteryEmptyMessage4288FB_TcMessage654170752MAIN._rHighestSegmentVoltage32REAL654175040MAIN._wEtherCATState16WORD654175072MAIN._xEtherCatString1Ok8BOOL654175088MAIN._xEtherCatString2Ok8BOOL654175096MAIN._fbSafety128FB_Safety654175104MAIN._xAllComponentsToManualMode8BOOL654175232MAIN._ModbusDebugTest768ST_MODBUS_REG_11654175248MAIN._ui16UINT0654176016MAIN._rStringsSumVoltage32REAL654176032MAIN._fbStringReadyTimeout256TON654176064MAIN._arPowerString64REAL02654176320MAIN._xStringsReady8BOOL654176384MAIN._xStringsErrorActive8BOOL654176392MAIN._xStringsInSchutdownDischargeMode8BOOL654176400MAIN._xStringsShutdownDischargeAllowed8BOOL654176408MAIN._xStringsAllInAutomaticMode8BOOL654176416MAIN._xStringsOff8BOOL654176424MAIN._xStringsBalancingDone8BOOL654176432MAIN._xStringsInAutoMode8BOOL654176440MAIN._rMaxCurrentInverterDCVoltage32REAL654176448MAIN._rMinCurrentInverterDCVoltage32REAL654176480MAIN._fbModbusRead2624FB_MBReadRegs654176512MAIN.xDebugTest8BOOL654179136MAIN._xGetPowerMeterData8BOOL654179144MAIN._wDebug116WORD654179152MAIN._wDebug216WORD654179168TwinCAT_PreventOnlineChangeGvl.WriteLineIDs8BOOLtrueTcVarGlobal654179184TwinCAT_PreventOnlineChangeGvl.PlcProfilerActive8BOOLfalseTcVarGlobal654179192MAIN._fbPowerMeterPower3968FB_PowerMeter654179200MAIN._fbPowerMeter24V3968FB_PowerMeter654183168TwinCAT_PreventOnlineChangeGvl.PlcProfilerConfigChecksum520STRING(64)TcVarGlobal654187136GVL_CONFIG.xShutdownDischargeWithInverter8BOOLfalseTcPersistentTcVarGlobal654187656GVL_MODBUS.stModbusEMSComm2192ST_EMS_MODBUS_INTERFACE.stModbusReg10.sManufacturercmblu energy ag.stModbusReg10.sModelnameall liquid.stModbusReg10.sSerialnumber202312151643.stModbusReg10.sBMSVersion0.8.0.stModbusReg10.uiTotalParallelMembers2.stModbusReg10.uiActiveParallelMembers0.stModbusReg11.eChargeStatusE_CHARGE_STATUS.UNDEFINED.stModbusReg11.eBatteryStatusE_BATTERY_STATUS.OFFTcVarGlobal654187680GVL_CONFIG.uiNumberOfStrings16UINT2TcVarGlobal654191488GVL_CONFIG.uiNumberOfUnits16UINTTcVarGlobal654191504GVL_CONFIG.stUnitConfig768ST_ANALOG_IO_CONFIG.iAIMax32767.iAIMin0.rPVMax200.rPVMin0.sUnitATcPersistentTcVarGlobal654204672GVL_CONFIG.stEWLSCSCurrent128ST_ANALOG_EW_LEVELSTcPersistentTcVarGlobal654205440GVL_CONFIG.stEWDSCSCurrent320ST_ANALOG_EW_DELAYSTcPersistentTcVarGlobal654205568GVL_CONFIG.rPumpPosolytOnPower32REAL65TcPersistentTcVarGlobal654205888GVL_CONFIG.rPumpNegolytOnPower32REAL65TcPersistentTcVarGlobal654205920GVL_CONFIG.rPumpPosolytDisChrgPower32REAL45TcPersistentTcVarGlobal654205952GVL_CONFIG.rPumpNegolytDisChrgPower32REAL45TcPersistentTcVarGlobal654205984GVL_CONFIG.rPumpshutoffThreshold32REAL15TcPersistentTcVarGlobal654206016GVL_CONFIG.rMinimumUnitVoltage32REAL55TcPersistentTcVarGlobal654206048GVL_CONFIG.rMaximumUnitVoltage32REAL79.5TcPersistentTcVarGlobal654206080GVL_CONFIG.rDeltaUnitVoltageShutdownDischarge32REAL5TcPersistentTcVarGlobal654206112GVL_CONFIG.rMaxAbsDiffVoltageUnitsOnModule32REAL70TcPersistentTcVarGlobal654205888GVL_CONFIG.rPumpNegolytOnPower32REAL70TcPersistentTcVarGlobal654205920GVL_CONFIG.rPumpPosolytDisChrgPower32REAL45TcPersistentTcVarGlobal654205952GVL_CONFIG.rPumpNegolytDisChrgPower32REAL45TcPersistentTcVarGlobal654205984GVL_CONFIG.rPumpshutoffThreshold32REAL15TcPersistentTcVarGlobal654206016GVL_CONFIG.rMinimumUnitVoltage32REAL55TcPersistentTcVarGlobal654206048GVL_CONFIG.rMaximumUnitVoltage32REAL79.5TcPersistentTcVarGlobal654206080GVL_CONFIG.rDeltaUnitVoltageShutdownDischarge32REAL5TcPersistentTcVarGlobal654206112GVL_CONFIG.rMaxAbsDiffVoltageUnitsOnModule32REAL10TcPersistentTcVarGlobal654206144GVL_CONFIG.rMaxAbsDiffVoltageModulesInString32REAL20TcPersistentTcVarGlobal654206176GVL_CONFIG.diMinimumAbsPowerForEnable32DINT100TcPersistentTcVarGlobal654206208GVL_CONFIG.diMaxStringChargingPower 2.000 W per Unit]]>32DINT-50000TcPersistentTcVarGlobal654206240GVL_CONFIG.diMaxStringDischargePower 2.000 W per Unit]]>32DINT50000TcPersistentTcVarGlobal654206272GVL_CONFIG.sInverterIpString1648STRING(80)192.168.42.10TcPersistentTcVarGlobal654206304GVL_CONFIG.sInverterIpString2648STRING(80)192.168.42.20TcPersistentTcVarGlobal654206952GVL_CONFIG.xDummy8BOOLfalseTcPersistentanalysis-33TcVarGlobal654207600GVL_SCADA.xCanChangeControlMode8BOOLTcVarGlobal654207608GVL_CONFIG.rAbsShutdownDischargePower 1.000 W per unit]]>32REAL6500TcPersistentTcVarGlobal654207616GVL_CONFIG.rStringFullyChargedVoltage 80 V per Unit]]>32REAL960TcPersistentTcVarGlobal654207648GVL_CONFIG.rStringEmptyVoltage 55.0V per Segment)]]>32REAL660TcPersistentTcVarGlobal654207680GVL_CONFIG.timUnitStartupTime32TIMET#1MTcPersistentTcVarGlobal654207712GVL_CONFIG.timUnitBalancingStartupTime32TIMET#3MTcPersistentTcVarGlobal654207744GVL_CONFIG.timStringReadyTimeout32TIMET#3MTcPersistentTcVarGlobal654207776GVL_CONFIG.timIsoErrorTimeout32TIMET#20sTcPersistentTcVarGlobal654207808GVL_SCADA.stHMIInterface2460736ST_STRING_HMI_INTERFACE02TcVarGlobal654207840GVL_SCADA.stAckAlarmsButton32ST_HMI_CONTROL_BUTTON.xReleasetrueTcVarGlobal656668576GVL_SCADA.stAutomaticModeHMI96ST_AUTO_HMI_INTERFACETcVarGlobal656668608GVL_SCADA.eRequestedControlMode16E_BMS_CONTROL_MODETcVarGlobal656668704GVL_SCADA.eCurrentControlMode16E_BMS_CONTROL_MODETcVarGlobal656668720GVL_SCADA.diCurrentBatteryPower32DINTTcVarGlobal656668736GVL_SCADA.eCycleStatus16E_CYCLE_STATUSTcVarGlobal656668768GVL_SCADA.xDummy8BOOLfalseTcVarGlobal656668784GVL_SCADA.lrChargedPowerValueWH64LREALTcVarGlobal656668800GVL_SCADA.lrDischargedPowerValueWH64LREALTcVarGlobal656668864GVL_SCADA.lrLastCycleUtilityPowerValueWh64LREALTcVarGlobal656668928TwinCAT_SystemInfoVarList._AppInfo2048PlcAppSystemInfono_initTcVarGlobal656669312TwinCAT_SystemInfoVarList._TaskInfo1024PlcTaskSystemInfo11no_initTcVarGlobal656671360TwinCAT_SystemInfoVarList._TaskPouOid_PlcTask32OTCIDno_initTcVarGlobal656672384TwinCAT_SystemInfoVarList._TaskOid_PlcTask32OTCIDno_initTcVarGlobal656672416TwinCAT_SystemInfoVarList.__PlcTask896_Implicit_Task_Info.dwVersion2TcContextNamePlcTaskTcVarGlobal656672448MAIN._afbStrings12317696FB_String02OPC.UA.DA0669261696SafetyDoorMotorAnalogOutputAnalogInputInverterBMSEventsGeneralValveApplicationNamePort_851ChangeDate2025-04-14T19:43:15GeneratedCodeSize516096GlobalDataSize81723392UTF8EncodedStringsfalse \ No newline at end of file + 960 V -> 80 V per Unit]]>32REAL960TcPersistentTcVarGlobal654207648GVL_CONFIG.rStringEmptyVoltage 55.0V per Segment)]]>32REAL660TcPersistentTcVarGlobal654207680GVL_CONFIG.timUnitStartupTime32TIMET#1MTcPersistentTcVarGlobal654207712GVL_CONFIG.timUnitBalancingStartupTime32TIMET#3MTcPersistentTcVarGlobal654207744GVL_CONFIG.timStringReadyTimeout32TIMET#3MTcPersistentTcVarGlobal654207776GVL_CONFIG.timIsoErrorTimeout32TIMET#20STcPersistentTcVarGlobal654207808GVL_SCADA.stHMIInterface2460736ST_STRING_HMI_INTERFACE02TcVarGlobal654207840GVL_SCADA.stAckAlarmsButton32ST_HMI_CONTROL_BUTTON.xReleasetrueTcVarGlobal656668576GVL_SCADA.stAutomaticModeHMI96ST_AUTO_HMI_INTERFACETcVarGlobal656668608GVL_SCADA.eRequestedControlMode16E_BMS_CONTROL_MODETcVarGlobal656668704GVL_SCADA.eCurrentControlMode16E_BMS_CONTROL_MODETcVarGlobal656668720GVL_SCADA.diCurrentBatteryPower32DINTTcVarGlobal656668736GVL_SCADA.eCycleStatus16E_CYCLE_STATUSTcVarGlobal656668768GVL_SCADA.xDummy8BOOLfalseTcVarGlobal656668784GVL_SCADA.lrChargedPowerValueWH64LREALTcVarGlobal656668800GVL_SCADA.lrDischargedPowerValueWH64LREALTcVarGlobal656668864GVL_SCADA.lrLastCycleUtilityPowerValueWh64LREALTcVarGlobal656668928TwinCAT_SystemInfoVarList._AppInfo2048PlcAppSystemInfono_initTcVarGlobal656669312TwinCAT_SystemInfoVarList._TaskInfo1024PlcTaskSystemInfo11no_initTcVarGlobal656671360TwinCAT_SystemInfoVarList._TaskPouOid_PlcTask32OTCIDno_initTcVarGlobal656672384TwinCAT_SystemInfoVarList._TaskOid_PlcTask32OTCIDno_initTcVarGlobal656672416TwinCAT_SystemInfoVarList.__PlcTask896_Implicit_Task_Info.dwVersion2TcContextNamePlcTaskTcVarGlobal656672448MAIN._afbStrings12317696FB_String02OPC.UA.DA0669261696SafetyDoorMotorAnalogInputAnalogOutputInverterBMSEventsGeneralValveApplicationNamePort_851ChangeDate2025-04-16T12:28:58GeneratedCodeSize524288GlobalDataSize81723392UTF8EncodedStringsfalse \ No newline at end of file diff --git a/PLC/POUs/MAIN.TcPOU b/PLC/POUs/MAIN.TcPOU index 4179592..070924c 100644 --- a/PLC/POUs/MAIN.TcPOU +++ b/PLC/POUs/MAIN.TcPOU @@ -131,6 +131,7 @@ VAR // Sum of voltage of all active strings _rStringsSumVoltage : REAL; + _rDeltaUm : REAL; _arPowerString : ARRAY[0..(GVL_CONFIG.uiNumberOfStrings-1)] OF REAL; _ui : UINT := 0; @@ -607,7 +608,7 @@ GVL_SCADA.xCanChangeControlMode := _xCanChangeMode; GVL_SCADA.eCurrentControlMode := _eBMSControlMode; // Calculate current battery dc power -GVL_SCADA.diCurrentBatteryPower := REAL_TO_DINT(_afbStrings[0].stInverterData.rActDCPower + _afbStrings[1].stInverterData.rActDCPower); +GVL_SCADA.diCurrentBatteryPower := REAL_TO_DINT(_afbStrings[0].stInverterData.rActACPower + _afbStrings[1].stInverterData.rActACPower); // Read power values if commanded _fbPowerMeterPower( @@ -927,14 +928,17 @@ _fbPowerMeter24V();]]> END_CASE // Calculate string power balancing -IF _rStringsSumVoltage <> 0 THEN +IF _rStringsSumVoltage <> 0 AND (GVL_CONFIG.uiNumberOfStrings <> 0) THEN FOR _ui := 0 TO (GVL_CONFIG.uiNumberOfStrings-1) DO + // Calculate delta u to middle voltage + _rDeltaUm := (_afbStrings[_ui].rCurrentVoltage * GVL_CONFIG.uiNumberOfStrings - _rStringsSumVoltage) / _rStringsSumVoltage; + // Discharging IF _rPowerInverter > 0 THEN - _arPowerString[_ui] := _rPowerInverter * (_afbStrings[_ui].rCurrentVoltage / _rStringsSumVoltage); + _arPowerString[_ui] := (_rPowerInverter / GVL_CONFIG.uiNumberOfStrings) * ( 1 + (_rDeltaUm * GVL_CONFIG.rBalancingFactor)); // Charging ELSIF _rPowerInverter < 0 THEN - _arPowerString[_ui] := _rPowerInverter * (1.0 - (_afbStrings[_ui].rCurrentVoltage / _rStringsSumVoltage)); + _arPowerString[_ui] := (_rPowerInverter / GVL_CONFIG.uiNumberOfStrings) * ( 1 - (_rDeltaUm * GVL_CONFIG.rBalancingFactor)); // Nothing ELSE _arPowerString[_ui] := 0.0; diff --git a/PLC/POUs/Sunspec/FB_PowerSupplySunspec.TcPOU b/PLC/POUs/Sunspec/FB_PowerSupplySunspec.TcPOU index b007f9e..d447838 100644 --- a/PLC/POUs/Sunspec/FB_PowerSupplySunspec.TcPOU +++ b/PLC/POUs/Sunspec/FB_PowerSupplySunspec.TcPOU @@ -260,6 +260,7 @@ CASE _iState OF IF NOT _fbReadRegister.bError THEN _iState := 2; ELSE + _iErrorInState := _iState; _iState := 1000; END_IF _fbReadRegister(bExecute := FALSE); @@ -276,7 +277,6 @@ CASE _iState OF 3: // Read current DC values - _iErrorInState := _iState; _fbReadRegister( sIPAddr:= sInverterIPAddr, nTCPPort:= 502, @@ -301,6 +301,7 @@ CASE _iState OF stCurrentValues.rActDCVoltage := LREAL_TO_REAL(WORD_TO_UINT(_awCurrentDCValues[2]) * EXPT(10,WORD_TO_INT(_awCurrentDCValues[3]))); stCurrentValues.rActDCPower := LREAL_TO_REAL(WORD_TO_INT(_awCurrentDCValues[4]) * EXPT(10,WORD_TO_INT(_awCurrentDCValues[5]))); ELSE + _iErrorInState := _iState; // Read error register _iState := 1000; END_IF @@ -309,7 +310,6 @@ CASE _iState OF 4: // Read current ac values - _iErrorInState := _iState; _fbReadRegister( sIPAddr:= sInverterIPAddr, nTCPPort:= 502, @@ -341,6 +341,7 @@ CASE _iState OF stCurrentValues.rActReactivePower := LREAL_TO_REAL(WORD_TO_INT(_awCurrentACValues[18]) * EXPT(10,WORD_TO_INT(_awCurrentACValues[19]))); stCurrentValues.rActPowerFactor := LREAL_TO_REAL(WORD_TO_INT(_awCurrentACValues[20]) * EXPT(10,WORD_TO_INT(_awCurrentACValues[21]))); ELSE + _iErrorInState := _iState; // Read error register _iState := 1000; END_IF @@ -350,7 +351,6 @@ CASE _iState OF 5: // Send heartbeat signal _uiPLCToInverterCounter := _uiPLCToInverterCounter + 1; - _iErrorInState := _iState; _fbWriteRegister( sIPAddr:= sInverterIPAddr, nTCPPort:= 502, @@ -372,6 +372,7 @@ CASE _iState OF _iState := 6; ELSE xError := TRUE; + _iErrorInState := _iState; // Goto error state _iState := 1000; END_IF @@ -410,6 +411,7 @@ CASE _iState OF _iState := 0; ELSE xError := TRUE; + _iErrorInState := _iState; // Goto error state _iState := 1000; END_IF @@ -471,7 +473,6 @@ CASE _iState OF 20: // Read inverter max power scaling - _iErrorInState := _iState; _fbReadRegister( sIPAddr:= sInverterIPAddr, nTCPPort:= 502, @@ -500,6 +501,7 @@ CASE _iState OF END_IF ELSE xError := TRUE; + _iErrorInState := _iState; // Goto error state _iState := 1000; END_IF @@ -508,7 +510,6 @@ CASE _iState OF 25: // Read inverter Max power limit scaling - _iErrorInState := _iState; _fbReadRegister( sIPAddr:= sInverterIPAddr, nTCPPort:= 502, @@ -536,6 +537,7 @@ CASE _iState OF END_IF ELSE xError := TRUE; + _iErrorInState := _iState; // Goto error state _iState := 1000; END_IF @@ -544,7 +546,6 @@ CASE _iState OF 26: // Read inverter scaling factor for reactive power - _iErrorInState := _iState; _fbReadRegister( sIPAddr:= sInverterIPAddr, nTCPPort:= 502, @@ -572,6 +573,7 @@ CASE _iState OF END_IF ELSE xError := TRUE; + _iErrorInState := _iState; // Goto error state _iState := 1000; END_IF @@ -580,7 +582,6 @@ CASE _iState OF 30: // Read inverter max power - _iErrorInState := _iState; _fbReadRegister( sIPAddr:= sInverterIPAddr, nTCPPort:= 502, @@ -608,6 +609,7 @@ CASE _iState OF _iWMaxLimPct := LREAL_TO_INT((_rPowerInternal*100)/(_rWMax * EXPT(10,_iWMaxLimPctSF))); ELSE xError := TRUE; + _iErrorInState := _iState; // Goto error state _iState := 1000; END_IF @@ -616,7 +618,6 @@ CASE _iState OF 40: // Set power limit - _iErrorInState := _iState; _fbWriteRegister( sIPAddr:= sInverterIPAddr, nTCPPort:= 502, @@ -644,6 +645,7 @@ CASE _iState OF ELSE _uiSetPowerLimitErrorCounter := _uiSetPowerLimitErrorCounter + 1; IF _uiSetPowerLimitErrorCounter > 5 THEN + _iErrorInState := _iState; // Goto error state _iState := 1000; ELSE @@ -661,7 +663,6 @@ CASE _iState OF END_IF 42: // Set max reactive power in percent - _iErrorInState := _iState; _fbWriteRegister( sIPAddr:= sInverterIPAddr, nTCPPort:= 502, @@ -683,6 +684,7 @@ CASE _iState OF _iState := 42; ELSE xError := TRUE; + _iErrorInState := _iState; // Goto error state _iState := 1000; END_IF @@ -691,7 +693,6 @@ CASE _iState OF 43: // Enable reactive power percent limiting - _iErrorInState := _iState; _fbWriteRegister( sIPAddr:= sInverterIPAddr, nTCPPort:= 502, @@ -713,6 +714,7 @@ CASE _iState OF _iState := 50; ELSE xError := TRUE; + _iErrorInState := _iState; // Goto error state _iState := 1000; END_IF @@ -721,7 +723,6 @@ CASE _iState OF 50: // Enable Power limiting (THROTTLED) - _iErrorInState := _iState; _fbWriteRegister( sIPAddr:= sInverterIPAddr, nTCPPort:= 502, @@ -745,6 +746,7 @@ CASE _iState OF xActive := TRUE; ELSE xError := TRUE; + _iErrorInState := _iState; // Goto error state _iState := 1000; END_IF @@ -753,7 +755,6 @@ CASE _iState OF 51: // Go to started - _iErrorInState := _iState; _fbWriteRegister( sIPAddr:= sInverterIPAddr, nTCPPort:= 502, @@ -776,6 +777,7 @@ CASE _iState OF _iState := 60; ELSE _uiPCSSetOperation := 1; + _iErrorInState := _iState; // Goto error state _iState := 1000; END_IF @@ -784,7 +786,6 @@ CASE _iState OF 60: // Switch to THROTTLED mode - _iErrorInState := _iState; _fbWriteRegister( sIPAddr:= sInverterIPAddr, nTCPPort:= 502, @@ -805,6 +806,7 @@ CASE _iState OF IF NOT _fbWriteRegister.bError THEN _iState := 65; ELSE + _iErrorInState := _iState; // Goto error state _iState := 1000; END_IF @@ -840,7 +842,6 @@ CASE _iState OF 70: // Enabled, check for error - _iErrorInState := _iState; _fbReadRegister( sIPAddr:= sInverterIPAddr, nTCPPort:= 502, @@ -870,6 +871,8 @@ CASE _iState OF xError := TRUE; xActive := FALSE; _uiPCSSetOperation := 3; + _iErrorInState := _iState; + ADSLOGDINT(msgCtrlMask:= ADSLOG_MSGTYPE_ERROR, msgFmtStr:= 'Fehler im state: %s', dintArg:= INT_TO_DINT(_iErrorInState)); // Read error register _iState := 200; END_IF @@ -878,7 +881,6 @@ CASE _iState OF 80: // Read current DC values - _iErrorInState := _iState; _fbReadRegister( sIPAddr:= sInverterIPAddr, nTCPPort:= 502, @@ -903,6 +905,7 @@ CASE _iState OF stCurrentValues.rActDCVoltage := LREAL_TO_REAL(WORD_TO_INT(_awCurrentDCValues[2]) * EXPT(10,WORD_TO_INT(_awCurrentDCValues[3]))); stCurrentValues.rActDCPower := LREAL_TO_REAL(WORD_TO_INT(_awCurrentDCValues[4]) * EXPT(10,WORD_TO_INT(_awCurrentDCValues[5]))); ELSE + _iErrorInState := _iState; // Read error register _iState := 1000; END_IF @@ -911,7 +914,6 @@ CASE _iState OF 85: // Read current ac values - _iErrorInState := _iState; _fbReadRegister( sIPAddr:= sInverterIPAddr, nTCPPort:= 502, @@ -943,6 +945,7 @@ CASE _iState OF stCurrentValues.rActReactivePower := LREAL_TO_REAL(WORD_TO_INT(_awCurrentACValues[18]) * EXPT(10,WORD_TO_INT(_awCurrentACValues[19]))); stCurrentValues.rActPowerFactor := LREAL_TO_REAL(WORD_TO_INT(_awCurrentACValues[20]) * EXPT(10,WORD_TO_INT(_awCurrentACValues[21]))); ELSE + _iErrorInState := _iState; // Read error register _iState := 1000; END_IF @@ -972,6 +975,7 @@ CASE _iState OF _iState := 91; stCurrentValues.uiStatus := _uiInverterState; ELSE + _iErrorInState := _iState; // Read error register _iState := 1000; END_IF @@ -981,7 +985,6 @@ CASE _iState OF 91: // Send heartbeat signal _uiPLCToInverterCounter := _uiPLCToInverterCounter + 1; - _iErrorInState := _iState; _fbWriteRegister( sIPAddr:= sInverterIPAddr, nTCPPort:= 502, @@ -1002,6 +1005,7 @@ CASE _iState OF IF NOT _fbWriteRegister.bError THEN _iState := 92; ELSE + _iErrorInState := _iState; xError := TRUE; // Goto error state _iState := 1000; @@ -1042,6 +1046,7 @@ CASE _iState OF _iState := 93; ELSE xError := TRUE; + _iErrorInState := _iState; // Goto error state _iState := 1000; END_IF @@ -1050,7 +1055,6 @@ CASE _iState OF END_IF 93: // Send current power demand - _iErrorInState := _iState; _fbWriteRegister( sIPAddr:= sInverterIPAddr, nTCPPort:= 502, @@ -1078,6 +1082,7 @@ CASE _iState OF ELSE _uiSetPowerLimitErrorCounter := _uiSetPowerLimitErrorCounter + 1; IF _uiSetPowerLimitErrorCounter > 5 THEN + _iErrorInState := _iState; // Goto error state _iState := 1000; ELSE @@ -1089,7 +1094,6 @@ CASE _iState OF 200: // Shutdown send zero power command - _iErrorInState := _iState; _fbWriteRegister( sIPAddr:= sInverterIPAddr, nTCPPort:= 502, @@ -1111,6 +1115,7 @@ CASE _iState OF _iState := 201; _uiPCSSetOperation := 3; ELSE + _iErrorInState := _iState; // Goto error state _iState := 1000; END_IF @@ -1118,7 +1123,6 @@ CASE _iState OF END_IF 201: // Shutdown sequence - _iErrorInState := _iState; _fbWriteRegister( sIPAddr:= sInverterIPAddr, nTCPPort:= 502, @@ -1139,6 +1143,7 @@ CASE _iState OF IF NOT _fbWriteRegister.bError THEN _iState := 210; ELSE + _iErrorInState := _iState; // Goto error state _iState := 1000; END_IF @@ -1184,7 +1189,6 @@ CASE _iState OF 990: // Read error register - _iErrorInState := _iState; _fbReadRegister( sIPAddr:= sInverterIPAddr, nTCPPort:= 502, @@ -1204,13 +1208,17 @@ CASE _iState OF IF NOT _fbReadRegister.bBusy THEN // If there was no error and the converter has no error continue IF NOT _fbReadRegister.bError THEN + _iErrorInState := _iState; _iState := 1000; END_IF _fbReadRegister(bExecute := FALSE); END_IF + 1000: // Write error state to log + ADSLOGDINT(msgCtrlMask:= ADSLOG_MSGTYPE_ERROR, msgFmtStr:= 'Fehler im state: %s', dintArg:= INT_TO_DINT(_iErrorInState)); + _iState := 1001; - 1000: // Error state, wait for reset + 1001: // Error state, wait for reset IF xReset AND (NOT xEnable) THEN _iState := 1010; END_IF diff --git a/Uniper.tsproj b/Uniper.tsproj index 4ee7e6c..c8b169f 100644 --- a/Uniper.tsproj +++ b/Uniper.tsproj @@ -269,7 +269,7 @@ - + PLC Instance {08500001-0000-0000-F000-000000000064}