Fixed some bugs in cycling mode
This commit is contained in:
36
PLC/PLC.tmc
36
PLC/PLC.tmc
File diff suppressed because one or more lines are too long
@@ -558,7 +558,9 @@ CASE _eBMSControlMode OF
|
|||||||
_xAllComponentsToManualMode := FALSE;
|
_xAllComponentsToManualMode := FALSE;
|
||||||
_xInSafetyCheckMode := FALSE;
|
_xInSafetyCheckMode := FALSE;
|
||||||
_xReleaseManualMode := FALSE;
|
_xReleaseManualMode := FALSE;
|
||||||
_rAutoPowerRequest := DINT_TO_REAL(GVL_MODBUS.stModbusEMSComm.stModbusReg12.diSetpointActivePower);
|
IF (_iState <> 30) OR _rAutoPowerRequest = 0.0 THEN
|
||||||
|
_rAutoPowerRequest := DINT_TO_REAL(GVL_SCADA.stAutomaticModeHMI.diSetpointAutomatic);
|
||||||
|
END_IF
|
||||||
IF (GVL_SCADA.eRequestedControlMode <> _eBMSControlMode) AND (GVL_SCADA.xCanChangeControlMode) THEN
|
IF (GVL_SCADA.eRequestedControlMode <> _eBMSControlMode) AND (GVL_SCADA.xCanChangeControlMode) THEN
|
||||||
_eBMSControlMode := GVL_SCADA.eRequestedControlMode;
|
_eBMSControlMode := GVL_SCADA.eRequestedControlMode;
|
||||||
END_IF
|
END_IF
|
||||||
@@ -677,8 +679,8 @@ END_IF]]></ST>
|
|||||||
IF GVL_MODBUS.stModbusEMSComm.stModbusReg11.eChargeStatus = E_CHARGE_STATUS.CHARGING AND ((_rMaxCurrentInverterDCVoltage >= GVL_CONFIG.rStringFullyChargedVoltage) OR _rHighestSegmentVoltage >= GVL_CONFIG.rMaximumUnitVoltage) THEN
|
IF GVL_MODBUS.stModbusEMSComm.stModbusReg11.eChargeStatus = E_CHARGE_STATUS.CHARGING AND ((_rMaxCurrentInverterDCVoltage >= GVL_CONFIG.rStringFullyChargedVoltage) OR _rHighestSegmentVoltage >= GVL_CONFIG.rMaximumUnitVoltage) THEN
|
||||||
|
|
||||||
IF (_eBMSControlMode = E_BMS_CONTROL_MODE.CYCLING) THEN
|
IF (_eBMSControlMode = E_BMS_CONTROL_MODE.CYCLING) THEN
|
||||||
GVL_MODBUS.stModbusEMSComm.stModbusReg12.diSetpointActivePower := GVL_MODBUS.stModbusEMSComm.stModbusReg12.diSetpointActivePower * -1;
|
_rAutoPowerRequest := _rAutoPowerRequest * -1;
|
||||||
// Change of charge discharge should be handled in next cycle by sasme state
|
// Change of charge discharge should be handled in next cycle by same state
|
||||||
// GVL_MODBUS.stModbusEMSComm.stModbusReg11.eChargeStatus := E_CHARGE_STATUS.DISCHARGING;
|
// GVL_MODBUS.stModbusEMSComm.stModbusReg11.eChargeStatus := E_CHARGE_STATUS.DISCHARGING;
|
||||||
ELSE
|
ELSE
|
||||||
_tonBeginShutdown(In := FALSE);
|
_tonBeginShutdown(In := FALSE);
|
||||||
@@ -706,8 +708,8 @@ END_IF]]></ST>
|
|||||||
// Shutdown triggered by battery empty
|
// Shutdown triggered by battery empty
|
||||||
IF GVL_MODBUS.stModbusEMSComm.stModbusReg11.eChargeStatus = E_CHARGE_STATUS.DISCHARGING AND ((_rMinCurrentInverterDCVoltage <= GVL_CONFIG.rStringEmptyVoltage) OR _rSmallestSegmentVoltage <= GVL_CONFIG.rMinimumUnitVoltage) THEN
|
IF GVL_MODBUS.stModbusEMSComm.stModbusReg11.eChargeStatus = E_CHARGE_STATUS.DISCHARGING AND ((_rMinCurrentInverterDCVoltage <= GVL_CONFIG.rStringEmptyVoltage) OR _rSmallestSegmentVoltage <= GVL_CONFIG.rMinimumUnitVoltage) THEN
|
||||||
IF (_eBMSControlMode = E_BMS_CONTROL_MODE.CYCLING) THEN
|
IF (_eBMSControlMode = E_BMS_CONTROL_MODE.CYCLING) THEN
|
||||||
GVL_MODBUS.stModbusEMSComm.stModbusReg12.diSetpointActivePower := GVL_MODBUS.stModbusEMSComm.stModbusReg12.diSetpointActivePower * -1;
|
_rAutoPowerRequest := _rAutoPowerRequest * -1;
|
||||||
// Change of charge discharge should be handled in next cycle by sasme state
|
// Change of charge discharge should be handled in next cycle by same state
|
||||||
// GVL_MODBUS.stModbusEMSComm.stModbusReg11.eChargeStatus := E_CHARGE_STATUS.CHARGING;
|
// GVL_MODBUS.stModbusEMSComm.stModbusReg11.eChargeStatus := E_CHARGE_STATUS.CHARGING;
|
||||||
ELSE
|
ELSE
|
||||||
_tonBeginShutdown(In := FALSE);
|
_tonBeginShutdown(In := FALSE);
|
||||||
|
|||||||
@@ -269,7 +269,7 @@
|
|||||||
</System>
|
</System>
|
||||||
<Plc>
|
<Plc>
|
||||||
<Project GUID="{9AE64910-5EB2-4866-93FD-EFE059C38C36}" Name="PLC" PrjFilePath="PLC\PLC.plcproj" TmcFilePath="PLC\PLC.tmc" ReloadTmc="true" AmsPort="851" FileArchiveSettings="#x000e" CopyTmcToTarget="true" CopyTpyToTarget="false" SymbolicMapping="true">
|
<Project GUID="{9AE64910-5EB2-4866-93FD-EFE059C38C36}" Name="PLC" PrjFilePath="PLC\PLC.plcproj" TmcFilePath="PLC\PLC.tmc" ReloadTmc="true" AmsPort="851" FileArchiveSettings="#x000e" CopyTmcToTarget="true" CopyTpyToTarget="false" SymbolicMapping="true">
|
||||||
<Instance Id="#x08502000" TcSmClass="TComPlcObjDef" KeepUnrestoredLinks="2" TmcHash="{8EE1E4A8-795F-0390-3BF7-7B289B0C6EAD}" TmcPath="PLC\PLC.tmc">
|
<Instance Id="#x08502000" TcSmClass="TComPlcObjDef" KeepUnrestoredLinks="2" TmcHash="{8F86D368-EFB2-BFDB-9B1F-280FD290DFAC}" TmcPath="PLC\PLC.tmc">
|
||||||
<Name>PLC Instance</Name>
|
<Name>PLC Instance</Name>
|
||||||
<CLSID ClassFactory="TcPlc30">{08500001-0000-0000-F000-000000000064}</CLSID>
|
<CLSID ClassFactory="TcPlc30">{08500001-0000-0000-F000-000000000064}</CLSID>
|
||||||
<Vars VarGrpType="2" AreaNo="1">
|
<Vars VarGrpType="2" AreaNo="1">
|
||||||
|
|||||||
Reference in New Issue
Block a user