Просмотр исходного кода

双火线,阈值使能,和通道同步。

liyi 1 год назад
Родитель
Сommit
25ef8f81c8

+ 106 - 106
truing_control/PDU-Triphasic_IO/USER/JLinkLog.txt

@@ -1,106 +1,106 @@
-T9078 000:212.929   SEGGER J-Link V7.96c Log File
-T9078 000:213.039   DLL Compiled: Apr  2 2024 12:30:42
-T9078 000:213.043   Logging started @ 2025-04-23 05:58
-T9078 000:213.047   Process: D:\Keil_v5\UV4\UV4.exe
-T9078 000:213.052 - 213.051ms
-T9078 000:213.060 JLINK_SetWarnOutHandler(...)
-T9078 000:213.064 - 0.005ms
-T9078 000:213.070 JLINK_OpenEx(...)
-T9078 000:215.664   Firmware: J-Link V9 compiled May  7 2021 16:26:12
-T9078 000:217.022   Firmware: J-Link V9 compiled May  7 2021 16:26:12
-T9078 000:217.171   Decompressing FW timestamp took 130 us
-T9078 000:225.026   Hardware: V9.50
-T9078 000:225.074   S/N: 69545260
-T9078 000:225.084   OEM: SEGGER
-T9078 000:225.095   Feature(s): JFlash, GDB, RDI, FlashBP, FlashDL
-T9078 000:227.278   Bootloader: (Could not read)
-T9078 000:229.329   TELNET listener socket opened on port 19021
-T9078 000:229.522   WEBSRV WEBSRV_Init(): Starting webserver thread(s)
-T9078 000:229.704   WEBSRV Webserver running on local port 19080
-T9078 000:229.850   Looking for J-Link GUI Server exe at: D:\Keil_v5\ARM\Segger\JLinkGUIServer.exe
-T9078 000:229.971   Looking for J-Link GUI Server exe at: C:\Program Files (x86)\SEGGER\JLink_V796c\JLinkGUIServer.exe
-T9078 000:230.014   Forking J-Link GUI Server: C:\Program Files (x86)\SEGGER\JLink_V796c\JLinkGUIServer.exe
-T9078 000:261.456   J-Link GUI Server info: "J-Link GUI server V7.96c "
-T9078 000:266.474 - 53.390ms returns "O.K."
-T9078 000:266.515 JLINK_GetEmuCaps()
-T9078 000:266.526 - 0.008ms returns 0xB9FF7BBF
-T9078 000:266.537 JLINK_TIF_GetAvailable(...)
-T9078 000:267.029 - 0.491ms
-T9078 000:267.055 JLINK_SetErrorOutHandler(...)
-T9078 000:267.062 - 0.007ms
-T9078 000:267.099 JLINK_ExecCommand("ProjectFile = "C:\Users\Gowon\Desktop\3_ph_new\USER\JLinkSettings.ini"", ...). 
-T9078 000:278.197   Ref file found at: D:\Keil_v5\ARM\Segger\JLinkDevices.ref
-T9078 000:278.286   REF file references invalid XML file: C:\Program Files (x86)\SEGGER\JLink_V796c\JLinkDevices.xml
-T9078 000:279.232 - 12.138ms returns 0x00
-T9078 000:279.251 JLINK_ExecCommand("Device = GD32E230C8", ...). 
-T9078 000:279.326   Flash bank @ 0x1FFFF800: SFL: Parsing sectorization info from ELF file
-T9078 000:279.333     FlashDevice.SectorInfo[0]: .SectorSize = 0x00000010, .SectorStartAddr = 0x00000000
-T9078 000:279.347   Device "GD32E230C8" selected.
-T9078 000:279.660 - 0.402ms returns 0x00
-T9078 000:279.668 JLINK_ExecCommand("DisableConnectionTimeout", ...). 
-T9078 000:279.674 - 0.001ms returns 0x01
-T9078 000:279.679 JLINK_GetHardwareVersion()
-T9078 000:279.686 - 0.003ms returns 95000
-T9078 000:279.691 JLINK_GetDLLVersion()
-T9078 000:279.695 - 0.003ms returns 79603
-T9078 000:279.699 JLINK_GetOEMString(...)
-T9078 000:279.704 JLINK_GetFirmwareString(...)
-T9078 000:279.708 - 0.004ms
-T9078 000:279.714 JLINK_GetDLLVersion()
-T9078 000:279.717 - 0.003ms returns 79603
-T9078 000:279.722 JLINK_GetCompileDateTime()
-T9078 000:279.725 - 0.003ms
-T9078 000:279.731 JLINK_GetFirmwareString(...)
-T9078 000:279.735 - 0.003ms
-T9078 000:279.739 JLINK_GetHardwareVersion()
-T9078 000:279.743 - 0.003ms returns 95000
-T9078 000:279.748 JLINK_GetSN()
-T9078 000:279.752 - 0.003ms returns 69545260
-T9078 000:279.756 JLINK_GetOEMString(...)
-T9078 000:279.766 JLINK_TIF_Select(JLINKARM_TIF_SWD)
-T9078 000:281.718 - 1.952ms returns 0x00
-T9078 000:281.729 JLINK_HasError()
-T9078 000:281.739 JLINK_SetSpeed(5000)
-T9078 000:282.091 - 0.353ms
-T9078 000:282.446 JLINK_HasError()
-T9078 000:282.460 JLINK_SetResetType(JLINKARM_RESET_TYPE_NORMAL)
-T9078 000:282.467 - 0.006ms returns JLINKARM_RESET_TYPE_NORMAL
-T9078 000:282.474 JLINK_Reset()
-T9078 000:283.051   InitTarget() start
-T9078 000:283.066    J-Link Script File: Executing InitTarget()
-T9078 000:385.340   Error: Failed to initialized DAP.
-T9078 000:385.377   InitTarget() end - Took 102ms
-T9078 000:385.392   Connect failed. Resetting via Reset pin and trying again.
-T9078 000:447.484   InitTarget() start
-T9078 000:447.510    J-Link Script File: Executing InitTarget()
-T9078 000:449.453   Error: Failed to initialized DAP.
-T9078 000:449.464   InitTarget() end - Took 1.95ms
-T9078 000:449.516 - 167.041ms
-T9078 000:449.532 JLINK_GetId()
-T9078 000:450.046   InitTarget() start
-T9078 000:450.053    J-Link Script File: Executing InitTarget()
-T9078 000:451.872   Error: Failed to initialized DAP.
-T9078 000:451.892   InitTarget() end - Took 1.83ms
-T9078 000:451.903   Connect failed. Resetting via Reset pin and trying again.
-T9078 000:514.652   InitTarget() start
-T9078 000:514.676    J-Link Script File: Executing InitTarget()
-T9078 000:516.711   Error: Failed to initialized DAP.
-T9078 000:516.721   InitTarget() end - Took 2.04ms
-T9078 000:516.728 - 67.195ms returns 0x00000000
-T9078 000:516.742 JLINK_GetId()
-T9078 000:517.278   InitTarget() start
-T9078 000:517.284    J-Link Script File: Executing InitTarget()
-T9078 000:519.345   Error: Failed to initialized DAP.
-T9078 000:519.357   InitTarget() end - Took 2.07ms
-T9078 000:519.367   Connect failed. Resetting via Reset pin and trying again.
-T9078 000:581.972   InitTarget() start
-T9078 000:581.998    J-Link Script File: Executing InitTarget()
-T9078 000:584.093   Error: Failed to initialized DAP.
-T9078 000:584.113   InitTarget() end - Took 2.11ms
-T9078 000:584.123 - 67.380ms returns 0x00000000
-T9078 000:592.871 JLINK_GetFirmwareString(...)
-T9078 000:592.890 - 0.019ms
-T9078 012:933.406 JLINK_Close()
-T9078 012:943.714 - 10.307ms
-T9078 012:943.737   
-T9078 012:943.743   Closed
+T05CC 000:211.135   SEGGER J-Link V7.96c Log File
+T05CC 000:211.284   DLL Compiled: Apr  2 2024 12:30:42
+T05CC 000:211.289   Logging started @ 2025-04-23 09:35
+T05CC 000:211.292   Process: D:\Keil_v5\UV4\UV4.exe
+T05CC 000:211.299 - 211.296ms
+T05CC 000:211.307 JLINK_SetWarnOutHandler(...)
+T05CC 000:211.311 - 0.005ms
+T05CC 000:211.317 JLINK_OpenEx(...)
+T05CC 000:214.985   Firmware: J-Link V9 compiled May  7 2021 16:26:12
+T05CC 000:216.667   Firmware: J-Link V9 compiled May  7 2021 16:26:12
+T05CC 000:216.856   Decompressing FW timestamp took 129 us
+T05CC 000:224.159   Hardware: V9.50
+T05CC 000:224.178   S/N: 69545260
+T05CC 000:224.186   OEM: SEGGER
+T05CC 000:224.194   Feature(s): JFlash, GDB, RDI, FlashBP, FlashDL
+T05CC 000:225.900   Bootloader: (Could not read)
+T05CC 000:227.568   TELNET listener socket opened on port 19021
+T05CC 000:227.765   WEBSRV WEBSRV_Init(): Starting webserver thread(s)
+T05CC 000:227.998   WEBSRV Webserver running on local port 19080
+T05CC 000:228.179   Looking for J-Link GUI Server exe at: D:\Keil_v5\ARM\Segger\JLinkGUIServer.exe
+T05CC 000:228.294   Looking for J-Link GUI Server exe at: C:\Program Files (x86)\SEGGER\JLink_V796c\JLinkGUIServer.exe
+T05CC 000:228.339   Forking J-Link GUI Server: C:\Program Files (x86)\SEGGER\JLink_V796c\JLinkGUIServer.exe
+T05CC 000:262.184   J-Link GUI Server info: "J-Link GUI server V7.96c "
+T05CC 000:272.231 - 60.898ms returns "O.K."
+T05CC 000:272.283 JLINK_GetEmuCaps()
+T05CC 000:272.295 - 0.008ms returns 0xB9FF7BBF
+T05CC 000:272.306 JLINK_TIF_GetAvailable(...)
+T05CC 000:272.878 - 0.571ms
+T05CC 000:272.897 JLINK_SetErrorOutHandler(...)
+T05CC 000:272.901 - 0.004ms
+T05CC 000:272.924 JLINK_ExecCommand("ProjectFile = "C:\Users\Gowon\Desktop\3_ph_new\USER\JLinkSettings.ini"", ...). 
+T05CC 000:283.402   Ref file found at: D:\Keil_v5\ARM\Segger\JLinkDevices.ref
+T05CC 000:283.553   REF file references invalid XML file: C:\Program Files (x86)\SEGGER\JLink_V796c\JLinkDevices.xml
+T05CC 000:284.564 - 11.641ms returns 0x00
+T05CC 000:284.597 JLINK_ExecCommand("Device = GD32E230C8", ...). 
+T05CC 000:284.675   Flash bank @ 0x1FFFF800: SFL: Parsing sectorization info from ELF file
+T05CC 000:284.682     FlashDevice.SectorInfo[0]: .SectorSize = 0x00000010, .SectorStartAddr = 0x00000000
+T05CC 000:284.700   Device "GD32E230C8" selected.
+T05CC 000:285.008 - 0.405ms returns 0x00
+T05CC 000:285.016 JLINK_ExecCommand("DisableConnectionTimeout", ...). 
+T05CC 000:285.023 - 0.001ms returns 0x01
+T05CC 000:285.029 JLINK_GetHardwareVersion()
+T05CC 000:285.036 - 0.003ms returns 95000
+T05CC 000:285.040 JLINK_GetDLLVersion()
+T05CC 000:285.044 - 0.003ms returns 79603
+T05CC 000:285.048 JLINK_GetOEMString(...)
+T05CC 000:285.053 JLINK_GetFirmwareString(...)
+T05CC 000:285.057 - 0.003ms
+T05CC 000:285.063 JLINK_GetDLLVersion()
+T05CC 000:285.067 - 0.003ms returns 79603
+T05CC 000:285.071 JLINK_GetCompileDateTime()
+T05CC 000:285.075 - 0.003ms
+T05CC 000:285.081 JLINK_GetFirmwareString(...)
+T05CC 000:285.084 - 0.003ms
+T05CC 000:285.089 JLINK_GetHardwareVersion()
+T05CC 000:285.093 - 0.003ms returns 95000
+T05CC 000:285.098 JLINK_GetSN()
+T05CC 000:285.101 - 0.003ms returns 69545260
+T05CC 000:285.106 JLINK_GetOEMString(...)
+T05CC 000:285.114 JLINK_TIF_Select(JLINKARM_TIF_SWD)
+T05CC 000:286.981 - 1.866ms returns 0x00
+T05CC 000:286.999 JLINK_HasError()
+T05CC 000:287.015 JLINK_SetSpeed(5000)
+T05CC 000:287.489 - 0.476ms
+T05CC 000:287.895 JLINK_HasError()
+T05CC 000:287.913 JLINK_SetResetType(JLINKARM_RESET_TYPE_NORMAL)
+T05CC 000:287.920 - 0.007ms returns JLINKARM_RESET_TYPE_NORMAL
+T05CC 000:287.928 JLINK_Reset()
+T05CC 000:288.485   InitTarget() start
+T05CC 000:288.498    J-Link Script File: Executing InitTarget()
+T05CC 000:391.259   Error: Failed to initialized DAP.
+T05CC 000:391.302   InitTarget() end - Took 102ms
+T05CC 000:391.315   Connect failed. Resetting via Reset pin and trying again.
+T05CC 000:454.646   InitTarget() start
+T05CC 000:454.687    J-Link Script File: Executing InitTarget()
+T05CC 000:456.722   Error: Failed to initialized DAP.
+T05CC 000:456.740   InitTarget() end - Took 2.05ms
+T05CC 000:456.828 - 168.900ms
+T05CC 000:456.851 JLINK_GetId()
+T05CC 000:457.296   InitTarget() start
+T05CC 000:457.315    J-Link Script File: Executing InitTarget()
+T05CC 000:459.334   Error: Failed to initialized DAP.
+T05CC 000:459.347   InitTarget() end - Took 2.03ms
+T05CC 000:459.356   Connect failed. Resetting via Reset pin and trying again.
+T05CC 000:521.553   InitTarget() start
+T05CC 000:521.583    J-Link Script File: Executing InitTarget()
+T05CC 000:523.597   Error: Failed to initialized DAP.
+T05CC 000:523.618   InitTarget() end - Took 2.03ms
+T05CC 000:523.628 - 66.776ms returns 0x00000000
+T05CC 000:523.648 JLINK_GetId()
+T05CC 000:524.042   InitTarget() start
+T05CC 000:524.053    J-Link Script File: Executing InitTarget()
+T05CC 000:525.736   Error: Failed to initialized DAP.
+T05CC 000:525.756   InitTarget() end - Took 1.70ms
+T05CC 000:525.768   Connect failed. Resetting via Reset pin and trying again.
+T05CC 000:588.214   InitTarget() start
+T05CC 000:588.236    J-Link Script File: Executing InitTarget()
+T05CC 000:589.980   Error: Failed to initialized DAP.
+T05CC 000:589.994   InitTarget() end - Took 1.75ms
+T05CC 000:590.002 - 66.353ms returns 0x00000000
+T05CC 000:596.308 JLINK_GetFirmwareString(...)
+T05CC 000:596.333 - 0.026ms
+T05CC 009:506.134 JLINK_Close()
+T05CC 009:516.093 - 9.957ms
+T05CC 009:516.126   
+T05CC 009:516.130   Closed

Разница между файлами не показана из-за своего большого размера
+ 38 - 38
truing_control/PDU-Triphasic_IO/USER/bootloader.uvguix.Gowon


+ 3 - 74
truing_control/PDU-Triphasic_IO/USER/bootloader.uvoptx

@@ -120,7 +120,6 @@
         <SetRegEntry>
         <SetRegEntry>
           <Number>0</Number>
           <Number>0</Number>
           <Key>DLGUARM</Key>
           <Key>DLGUARM</Key>
-          <Name>惹??</Name>
         </SetRegEntry>
         </SetRegEntry>
         <SetRegEntry>
         <SetRegEntry>
           <Number>0</Number>
           <Number>0</Number>
@@ -153,87 +152,17 @@
         <Ww>
         <Ww>
           <count>0</count>
           <count>0</count>
           <WinNumber>1</WinNumber>
           <WinNumber>1</WinNumber>
-          <ItemText>meta_data</ItemText>
+          <ItemText>AC3PPDU_Modbus_Reg</ItemText>
         </Ww>
         </Ww>
         <Ww>
         <Ww>
           <count>1</count>
           <count>1</count>
           <WinNumber>1</WinNumber>
           <WinNumber>1</WinNumber>
-          <ItemText>CurrentAddr</ItemText>
-        </Ww>
-        <Ww>
-          <count>2</count>
-          <WinNumber>1</WinNumber>
-          <ItemText>Eeprom_Rbuf</ItemText>
-        </Ww>
-        <Ww>
-          <count>3</count>
-          <WinNumber>1</WinNumber>
-          <ItemText>infomation</ItemText>
-        </Ww>
-        <Ww>
-          <count>4</count>
-          <WinNumber>1</WinNumber>
-          <ItemText>s_arrKeyDownLevel</ItemText>
-        </Ww>
-        <Ww>
-          <count>5</count>
-          <WinNumber>1</WinNumber>
-          <ItemText>SlaveAddress</ItemText>
-        </Ww>
-        <Ww>
-          <count>6</count>
-          <WinNumber>1</WinNumber>
-          <ItemText>B_Rx_Finish</ItemText>
-        </Ww>
-        <Ww>
-          <count>7</count>
-          <WinNumber>1</WinNumber>
-          <ItemText>u8_RX_Length</ItemText>
-        </Ww>
-        <Ww>
-          <count>8</count>
-          <WinNumber>1</WinNumber>
-          <ItemText>u8_RxBuf</ItemText>
-        </Ww>
-        <Ww>
-          <count>9</count>
-          <WinNumber>1</WinNumber>
-          <ItemText>u8_RX_Index</ItemText>
-        </Ww>
-        <Ww>
-          <count>10</count>
-          <WinNumber>1</WinNumber>
-          <ItemText>max_index</ItemText>
-        </Ww>
-        <Ww>
-          <count>11</count>
-          <WinNumber>1</WinNumber>
-          <ItemText>detection_value</ItemText>
-        </Ww>
-        <Ww>
-          <count>12</count>
-          <WinNumber>1</WinNumber>
           <ItemText>AC3PPDU_RL_time</ItemText>
           <ItemText>AC3PPDU_RL_time</ItemText>
         </Ww>
         </Ww>
         <Ww>
         <Ww>
-          <count>13</count>
-          <WinNumber>1</WinNumber>
-          <ItemText>Modbus_Wr_buff</ItemText>
-        </Ww>
-        <Ww>
-          <count>14</count>
-          <WinNumber>1</WinNumber>
-          <ItemText>AC3PPDU_RL_time</ItemText>
-        </Ww>
-        <Ww>
-          <count>15</count>
-          <WinNumber>1</WinNumber>
-          <ItemText>AC3PPDU_Output</ItemText>
-        </Ww>
-        <Ww>
-          <count>16</count>
+          <count>2</count>
           <WinNumber>1</WinNumber>
           <WinNumber>1</WinNumber>
-          <ItemText>F_Angle</ItemText>
+          <ItemText>AC3PPDU_Vmax_LTen_flag</ItemText>
         </Ww>
         </Ww>
       </WatchWindow1>
       </WatchWindow1>
       <Tracepoint>
       <Tracepoint>

+ 36 - 17
truing_control/PDU-Triphasic_IO/USER/main.c

@@ -580,8 +580,8 @@ void switch_recode()
 		{
 		{
 			for(int i = 0; i < Output_ChN_default;i++)
 			for(int i = 0; i < Output_ChN_default;i++)
 			{
 			{
-				uint32_t data = (AC3PPDU_RL_time[i + CH1_out].LT_state & (~0x40));
-				AC3PPDU_RL_time[i + CH1_out].LT_state  = (data & 0x40);
+				//uint32_t data = (AC3PPDU_RL_time[i + CH1_out].LT_state & (~0x40));
+				AC3PPDU_RL_time[i + CH1_out].LT_state |= 0x40;
 				AC3PPDU_RL_time[i + CH1_out].LT_state |= handle_status[i];
 				AC3PPDU_RL_time[i + CH1_out].LT_state |= handle_status[i];
 				orderFlag[i]=true;
 				orderFlag[i]=true;
 			}
 			}
@@ -911,8 +911,12 @@ static void MODbus_CMD_New(void)
 					if(AC3PPDU_Modbus_Reg[base_addr] <= THRESHOULD_JUDGMENT)
 					if(AC3PPDU_Modbus_Reg[base_addr] <= THRESHOULD_JUDGMENT)
 					{
 					{
 						AC3PPDU_RL_time[value + CH1_out].LT_state &= (Shield_Vmax_Threshould_Disable);
 						AC3PPDU_RL_time[value + CH1_out].LT_state &= (Shield_Vmax_Threshould_Disable);
-						LimiT_enable_check((value + CH1_out),AC3PPDU_RL_time[value + CH1_out].LT_state);
+						
+					}else 
+					{
+						AC3PPDU_RL_time[value + CH1_out].LT_state |= Shield_Vmax_Threshould_enable;
 					}
 					}
+					LimiT_enable_check((value + CH1_out),AC3PPDU_RL_time[value + CH1_out].LT_state);
 					AT24CxxWrite(temp_addr,(Eeprom_Rbuf + temp_addr),4);
 					AT24CxxWrite(temp_addr,(Eeprom_Rbuf + temp_addr),4);
 				}
 				}
 				break;
 				break;
@@ -929,9 +933,12 @@ static void MODbus_CMD_New(void)
 					AC3PPDU_Modbus_Reg[base_addr] = data;
 					AC3PPDU_Modbus_Reg[base_addr] = data;
 					if(AC3PPDU_Modbus_Reg[base_addr] <= THRESHOULD_JUDGMENT)
 					if(AC3PPDU_Modbus_Reg[base_addr] <= THRESHOULD_JUDGMENT)
 					{
 					{
-						AC3PPDU_RL_time[value + CH1_out].LT_state &= (Shield_Vmin_Threshould_Disable);
-						LimiT_enable_check((value + CH1_out),AC3PPDU_RL_time[value + CH1_out].LT_state);
+						AC3PPDU_RL_time[value + CH1_out].LT_state &= (Shield_Vmin_Threshould_Disable);	
+					}else
+					{
+						AC3PPDU_RL_time[value + CH1_out].LT_state |= (Shield_Vmin_Threshould_enable);
 					}
 					}
+					LimiT_enable_check((value + CH1_out),AC3PPDU_RL_time[value + CH1_out].LT_state);
 					AT24CxxWrite(temp_addr,(Eeprom_Rbuf + temp_addr),4);
 					AT24CxxWrite(temp_addr,(Eeprom_Rbuf + temp_addr),4);
 			}
 			}
 				break;
 				break;
@@ -949,8 +956,12 @@ static void MODbus_CMD_New(void)
 					if(AC3PPDU_Modbus_Reg[base_addr] <= THRESHOULD_JUDGMENT)
 					if(AC3PPDU_Modbus_Reg[base_addr] <= THRESHOULD_JUDGMENT)
 					{
 					{
 						AC3PPDU_RL_time[value + CH1_out].LT_state &= (Shield_Imax_Threshould_Disable);
 						AC3PPDU_RL_time[value + CH1_out].LT_state &= (Shield_Imax_Threshould_Disable);
-						LimiT_enable_check((value + CH1_out),AC3PPDU_RL_time[value + CH1_out].LT_state);
+						
+					}else
+					{
+						AC3PPDU_RL_time[value + CH1_out].LT_state |= (Shield_Imax_Threshould_enable);
 					}
 					}
+					LimiT_enable_check((value + CH1_out),AC3PPDU_RL_time[value + CH1_out].LT_state);
 					AT24CxxWrite(temp_addr,(Eeprom_Rbuf + temp_addr),4);
 					AT24CxxWrite(temp_addr,(Eeprom_Rbuf + temp_addr),4);
 			}
 			}
 				break;
 				break;
@@ -968,8 +979,11 @@ static void MODbus_CMD_New(void)
 					if(AC3PPDU_Modbus_Reg[base_addr] <= THRESHOULD_JUDGMENT)
 					if(AC3PPDU_Modbus_Reg[base_addr] <= THRESHOULD_JUDGMENT)
 					{
 					{
 						AC3PPDU_RL_time[value + CH1_out].LT_state &= (Shield_Wmax_Threshould_Disable);
 						AC3PPDU_RL_time[value + CH1_out].LT_state &= (Shield_Wmax_Threshould_Disable);
-						LimiT_enable_check((value + CH1_out),AC3PPDU_RL_time[value + CH1_out].LT_state);
+					}else
+					{
+						AC3PPDU_RL_time[value + CH1_out].LT_state |= (Shield_Wmax_Threshould_enable);
 					}
 					}
+					LimiT_enable_check((value + CH1_out),AC3PPDU_RL_time[value + CH1_out].LT_state);
 					AT24CxxWrite(temp_addr,(Eeprom_Rbuf + temp_addr),4);
 					AT24CxxWrite(temp_addr,(Eeprom_Rbuf + temp_addr),4);
 			}
 			}
 				break;
 				break;
@@ -987,9 +1001,11 @@ static void MODbus_CMD_New(void)
 						if(AC3PPDU_Modbus_Reg[base_addr] <= THRESHOULD_JUDGMENT)
 						if(AC3PPDU_Modbus_Reg[base_addr] <= THRESHOULD_JUDGMENT)
 						{
 						{
 							AC3PPDU_RL_time[value + CH1_out].LT_state &= (Shield_Kwhmax_Threshould_Disable);
 							AC3PPDU_RL_time[value + CH1_out].LT_state &= (Shield_Kwhmax_Threshould_Disable);
-							LimiT_enable_check((value + CH1_out),AC3PPDU_RL_time[value + CH1_out].LT_state);
+						}else
+						{
+							AC3PPDU_RL_time[value + CH1_out].LT_state |= (Shield_kWhmax_Threshould_enable);
 						}
 						}
-				
+						LimiT_enable_check((value + CH1_out),AC3PPDU_RL_time[value + CH1_out].LT_state);
 						AT24CxxWrite(temp_addr,(Eeprom_Rbuf + temp_addr),4);
 						AT24CxxWrite(temp_addr,(Eeprom_Rbuf + temp_addr),4);
 			}
 			}
 				break;
 				break;
@@ -1116,32 +1132,35 @@ static void MODbus_CMD_New(void)
 						temp_addr = base_addr - Mb_Dbuff_OUTCH1_ST_Addr;
 						temp_addr = base_addr - Mb_Dbuff_OUTCH1_ST_Addr;
 						for(int i = temp_addr; i < Output_ChN_default; i += 4)
 						for(int i = temp_addr; i < Output_ChN_default; i += 4)
 						{
 						{
-							uint32_t value = 0;
+							uint32_t value = data;
 							if(AC3PPDU_Modbus_Reg[Mb_Dbuff_VLit1_max_Addr + i] <= THRESHOULD_JUDGMENT)
 							if(AC3PPDU_Modbus_Reg[Mb_Dbuff_VLit1_max_Addr + i] <= THRESHOULD_JUDGMENT)
 							{
 							{
-								value = data & Shield_Vmax_Threshould_Disable;
+								value &= Shield_Vmax_Threshould_Disable;
 							}		
 							}		
 							if(AC3PPDU_Modbus_Reg[Mb_Dbuff_VLit1_min_Addr + i] <= THRESHOULD_JUDGMENT)
 							if(AC3PPDU_Modbus_Reg[Mb_Dbuff_VLit1_min_Addr + i] <= THRESHOULD_JUDGMENT)
 							{
 							{
-								value = data & (Shield_Vmin_Threshould_Disable);
+								value &= (Shield_Vmin_Threshould_Disable);
 							}		
 							}		
 							if(AC3PPDU_Modbus_Reg[Mb_Dbuff_ILit1_max_Addr + i] <= THRESHOULD_JUDGMENT)
 							if(AC3PPDU_Modbus_Reg[Mb_Dbuff_ILit1_max_Addr + i] <= THRESHOULD_JUDGMENT)
 							{
 							{
-								value = data &(Shield_Imax_Threshould_Disable);
+								value &=(Shield_Imax_Threshould_Disable);
 							}
 							}
 							if(AC3PPDU_Modbus_Reg[Mb_Dbuff_WLit1_max_Addr + i] <= THRESHOULD_JUDGMENT)
 							if(AC3PPDU_Modbus_Reg[Mb_Dbuff_WLit1_max_Addr + i] <= THRESHOULD_JUDGMENT)
 							{
 							{
-								value = data & (Shield_Wmax_Threshould_Disable);
+								value &=(Shield_Wmax_Threshould_Disable);
 							}
 							}
 							if(AC3PPDU_Modbus_Reg[Mb_Dbuff_kWhLit1_max_Addr + i] <= THRESHOULD_JUDGMENT)
 							if(AC3PPDU_Modbus_Reg[Mb_Dbuff_kWhLit1_max_Addr + i] <= THRESHOULD_JUDGMENT)
 							{
 							{
-								value = data & (Shield_Kwhmax_Threshould_Disable);
+								value &= (Shield_Kwhmax_Threshould_Disable);
 							}	
 							}	
+							
 							AC3PPDU_RL_time[i + CH1_out].LT_state = value;
 							AC3PPDU_RL_time[i + CH1_out].LT_state = value;
+							uint16_t val = i;
+							val <<=1;
 							orderFlag[i]=true;
 							orderFlag[i]=true;
 							LimiT_enable_check((i + CH1_out),AC3PPDU_RL_time[i + CH1_out].LT_state);
 							LimiT_enable_check((i + CH1_out),AC3PPDU_RL_time[i + CH1_out].LT_state);
-							Eeprom_Rbuf[i + ERom_CH1LT_ST_Addr] = value;
-							AT24CxxWriteOneByte(i + ERom_CH1LT_ST_Addr,Eeprom_Rbuf[i + ERom_CH1LT_ST_Addr]);
+							Eeprom_Rbuf[val + ERom_CH1LT_ST_Addr] = value;
+							AT24CxxWriteOneByte(val + ERom_CH1LT_ST_Addr,Eeprom_Rbuf[val + ERom_CH1LT_ST_Addr]);
 						}
 						}
 					}
 					}
 #else
 #else