Переглянути джерело

[Improve][AW-Regular][main / Module_Intercomm]

2021.07.23 / Folus Wen

Actions:
1. Charging session initial target current get logic improve.
2. PWM configured logic move to high priority.

Files:
1. As follow commit history

Image version: V.69.XX.XXXX.XX
Image checksum: XXXXXXXX

Hardware PWB P/N : XXXXXXX
Hardware Version : XXXXXXX
FolusWen 3 роки тому
батько
коміт
a01943e4cd

+ 22 - 17
EVSE/Projects/AW-Regular/Apps/Module_InternalComm.c

@@ -2037,6 +2037,26 @@ int main(void)
 					}
 				}
 
+				//===============================
+				// Case 8 : Config primary set CP PWN duty
+				//===============================
+				if(ShmCharger->gun_info[gun_index].mcuFlag.isSetCpPwmDuty == ON)
+				{
+					if(Config_AC_MaxCurrent_And_CpPwmDuty(Uart1Fd, (gun_index>0?ADDR_AC_PRIMARY_2:ADDR_AC_PRIMARY_1), &ShmCharger->gun_info[gun_index].primaryMcuCp_Pwn_Duty))
+					{
+						failCount[gun_index] = 0;
+						ShmCharger->gun_info[gun_index].mcuFlag.isSetCpPwmDuty = OFF;
+					}
+					else
+					{
+						DEBUG_WARN("MCU-%d set cp pwn duty fail...%d\n", gun_index, failCount[gun_index]);
+						if(failCount[gun_index]<1000)
+						{
+							failCount[gun_index]++;
+						}
+					}
+				}
+
 				//==========================================================
 				// High priority polling log print out
 				//==========================================================
@@ -2246,24 +2266,9 @@ int main(void)
 						break;
 					case 9:
 						//===============================
-						// Config primary set CP PWN duty
+						// Reserve
 						//===============================
-						if(ShmCharger->gun_info[gun_index].mcuFlag.isSetCpPwmDuty == ON)
-						{
-							if(Config_AC_MaxCurrent_And_CpPwmDuty(Uart1Fd, (gun_index>0?ADDR_AC_PRIMARY_2:ADDR_AC_PRIMARY_1), &ShmCharger->gun_info[gun_index].primaryMcuCp_Pwn_Duty))
-							{
-								failCount[gun_index] = 0;
-								ShmCharger->gun_info[gun_index].mcuFlag.isSetCpPwmDuty = OFF;
-							}
-							else
-							{
-								DEBUG_WARN("MCU-%d set cp pwn duty fail...%d\n", gun_index, failCount[gun_index]);
-								if(failCount[gun_index]<1000)
-								{
-									failCount[gun_index]++;
-								}
-							}
-						}
+
 						break;
 					case 11:
 						//===============================

+ 17 - 2
EVSE/Projects/AW-Regular/Apps/main.c

@@ -3787,7 +3787,7 @@ int main(void)
 						ShmSysConfigAndInfo->SysInfo.AcChargingData[gun_index].PresentChargedDuration = 0;
 						ShmSysConfigAndInfo->SysInfo.AcChargingData[gun_index].PresentChargedEnergy = 0;
 						ShmCharger->gun_info[gun_index].targetCurrent = 0xFF;
-						ShmCharger->gun_info[gun_index].primaryMcuCp_Pwn_Duty.max_current = (ShmSysConfigAndInfo->SysConfig.MaxChargingCurrent > 0) ? ((ShmSysConfigAndInfo->SysConfig.MaxChargingCurrent<ShmCharger->gun_info[gun_index].primaryMcuState.rating_current)?ShmSysConfigAndInfo->SysConfig.MaxChargingCurrent:ShmCharger->gun_info[gun_index].primaryMcuState.rating_current) : ShmCharger->gun_info[gun_index].primaryMcuState.rating_current;
+
 						ocpp_set_unlocker_req(gun_index, OFF);
 						ShmSysConfigAndInfo->SysInfo.AcChargingData[gun_index].ReservationId = -1;
 
@@ -3877,6 +3877,22 @@ int main(void)
 						ShmCharger->gun_info[gun_index].isGunPlugged = NO;
 						ShmSysConfigAndInfo->SysInfo.AcChargingData[gun_index].schedule.isTriggerStart = OFF;
 
+						// Get target current
+						ocpp_set_profile_req(gun_index, ON);
+						sleep(1);
+						checkChargingProfileLimit(gun_index);
+						if(ShmSysConfigAndInfo->SysConfig.MaxChargingCurrent == 0)
+						{
+							ShmCharger->gun_info[gun_index].targetCurrent = ((ShmCharger->gun_info[gun_index].targetCurrent > ShmCharger->gun_info[gun_index].primaryMcuState.rating_current)?ShmCharger->gun_info[gun_index].primaryMcuState.rating_current:ShmCharger->gun_info[gun_index].targetCurrent);
+							ShmCharger->gun_info[gun_index].primaryMcuCp_Pwn_Duty.max_current = ((ShmCharger->gun_info[gun_index].targetCurrent > ShmCharger->gun_info[gun_index].primaryMcuState.rating_current)?ShmCharger->gun_info[gun_index].primaryMcuState.rating_current:ShmCharger->gun_info[gun_index].targetCurrent);
+						}
+						else
+						{
+							ShmCharger->gun_info[gun_index].targetCurrent = ((ShmCharger->gun_info[gun_index].targetCurrent > ShmSysConfigAndInfo->SysConfig.MaxChargingCurrent)?ShmSysConfigAndInfo->SysConfig.MaxChargingCurrent:ShmCharger->gun_info[gun_index].targetCurrent);
+							ShmCharger->gun_info[gun_index].primaryMcuCp_Pwn_Duty.max_current = ((ShmCharger->gun_info[gun_index].targetCurrent > ShmSysConfigAndInfo->SysConfig.MaxChargingCurrent)?ShmSysConfigAndInfo->SysConfig.MaxChargingCurrent:ShmCharger->gun_info[gun_index].targetCurrent);
+						}
+						ShmCharger->gun_info[gun_index].mcuFlag.isSetCpPwmDuty = YES;
+
 						setChargerMode(gun_index, SYS_MODE_AUTHORIZING);
 					}
 					else
@@ -3920,7 +3936,6 @@ int main(void)
 									break;
 							}
 						}
-						ShmCharger->gun_info[gun_index].mcuFlag.isSetCpPwmDuty = YES;
 					}
 					
 					if(DiffTimebWithNow(startTime[gun_index][TMR_IDX_AUTH]) > TIMEOUT_SPEC_AUTH)