Explorar o código

三相带开关IO,bug。

liyi hai 1 ano
pai
achega
0708b7e64e
Modificáronse 1 ficheiros con 29 adicións e 12 borrados
  1. 29 12
      control/PDU-Triphasic_IO/App/Main/Main.c

+ 29 - 12
control/PDU-Triphasic_IO/App/Main/Main.c

@@ -527,7 +527,7 @@ static void  check_jlink()
 			{
 				for(int i = 0; i < Output_ChN_default;i++)
 				{
-					AC3PPDU_RL_time[i + CH1_out].LT_state = 0;
+					AC3PPDU_RL_time[i + CH1_out].LT_state &=0xffffff7e;
 					orderFlag[i]=true;
 				}
 			}else
@@ -539,14 +539,15 @@ static void  check_jlink()
 					{
 						for(int k = 0; k < Output_ChN_default;k++)
 						{
-							AC3PPDU_RL_time[k + CH1_out].LT_state = 0;
+							AC3PPDU_RL_time[k + CH1_out].LT_state &= 0xffffff7e;
 							orderFlag[k]=true;
 						}
 					}else
 					{
 						for(int k = 0; k < Output_ChN_default;k++)
 						{
-							AC3PPDU_RL_time[k + CH1_out].LT_state = 1;
+							AC3PPDU_RL_time[k + CH1_out].LT_state &= 0xffffffbf;
+							AC3PPDU_RL_time[k + CH1_out].LT_state |= 0x00000001;
 							orderFlag[k]=true;
 						}
 						
@@ -682,7 +683,7 @@ static void  check_jlink()
 							default:
 								return;
 						}
-						AC3PPDU_Modbus_Reg[Mb_Dbuff_CH1LT_ST_Addr + i]  = (AC3PPDU_RL_time[i + CH1_out].LT_state & 0xfe);
+						AC3PPDU_Modbus_Reg[Mb_Dbuff_CH1LT_ST_Addr + i]  = (AC3PPDU_RL_time[i + CH1_out].LT_state & 0xfffffffe);
 						AC3PPDU_Modbus_Reg[Mb_Dbuff_OUTCH1_ST_Addr + (i % 3)]  = AC3PPDU_RL_time[i + CH1_out].LT_state & 0xfffffffe;					
 					}else
 					{
@@ -900,7 +901,8 @@ static void RL_Over_Func()
 //		DB_Out3_L;
 		for(int i = 0; i < Output_ChN_default;i++)
 		{
-			AC3PPDU_RL_time[i + CH1_out].LT_state = AC3PPDU_RL_time[i + CH1_out].LT_state &0xfffffffe;
+			AC3PPDU_RL_time[i + CH1_out].LT_state = AC3PPDU_RL_time[i + CH1_out].LT_state &0xffffff3e;
+			orderFlag[i]=true;
 //			RL_now_state[i] = AC3PPDU_RL_time[i + CH1_out].LT_state & 0x01;
 //			if(RL_now_state[i] != RL_last_state[i])
 //			{
@@ -940,7 +942,8 @@ static void RL_Over_Func()
 //				default:
 //					break;
 //			}
-			AC3PPDU_RL_time[i + CH1_out].LT_state = AC3PPDU_RL_time[i + CH1_out].LT_state &0xfffffffe;
+			AC3PPDU_RL_time[i + CH1_out].LT_state = AC3PPDU_RL_time[i + CH1_out].LT_state &0xffffff3e;
+			orderFlag[i]=true;
 //			RL_now_state[i] = AC3PPDU_RL_time[i + CH1_out].LT_state & 0x01;
 //			if(RL_now_state[i] != RL_last_state[i])
 //			{
@@ -1262,8 +1265,11 @@ static void MODbus_CMD_New(void)
 					if(AC3PPDU_Modbus_Reg[base_addr] <= THRESHOULD_JUDGMENT)
 					{
 						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);
 				}
 				break;
@@ -1281,8 +1287,10 @@ static void MODbus_CMD_New(void)
 					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);
+					}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);
 			}
 				break;
@@ -1300,8 +1308,11 @@ static void MODbus_CMD_New(void)
 					if(AC3PPDU_Modbus_Reg[base_addr] <= THRESHOULD_JUDGMENT)
 					{
 						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);
 			}
 				break;
@@ -1319,8 +1330,11 @@ static void MODbus_CMD_New(void)
 					if(AC3PPDU_Modbus_Reg[base_addr] <= THRESHOULD_JUDGMENT)
 					{
 						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);
 			}
 				break;
@@ -1338,9 +1352,12 @@ static void MODbus_CMD_New(void)
 						if(AC3PPDU_Modbus_Reg[base_addr] <= THRESHOULD_JUDGMENT)
 						{
 							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);
 			}
 				break;