su-lmstack 3 роки тому
батько
коміт
9a3adc062e

+ 18 - 18
LIB/MIDDLE/SaftyCenter/CellValueDiag/V1_0_0/SC_SamplingSafty.py

@@ -78,7 +78,7 @@ class SamplingSafty:
             if minVol<param.CellUVlmt:
                 QuitErrCount[10]=0
                 if not 10 in df_Diag_Ram['code'].values.tolist():#如果故障发生当前故障中没有该故障,则压入该故障
-                    df_Diag_Ram.loc[len(df_Diag_Ram)]=[bms_infoN['时间戳'],0,sn,10,3,'电池电压采样断线,最高电压为{:.2f}V,电池编号为{},最低电压为{:.2f}V,电池编号为{}'.format(maxVol,MaxBatNo,minVol,MinBatNo),'返厂维修']
+                    df_Diag_Ram.loc[len(df_Diag_Ram)]=[bms_infoN['时间戳'],'0000-00-00 00:00:00',sn,10,3,'电池电压采样断线,最高电压为{:.2f}V,电池编号为{},最低电压为{:.2f}V,电池编号为{}'.format(maxVol,MaxBatNo,minVol,MinBatNo),'返厂维修']
                     ErrorFlg=1            
                 else:#如果故障发生当前故障中有该故障,则不进行操作
                     pass 
@@ -95,7 +95,7 @@ class SamplingSafty:
                 else:
                     pass
                 if not 50 in df_Diag_Ram['code'].values.tolist():
-                    df_Diag_Ram.loc[len(df_Diag_Ram)]=[bms_infoN['时间戳'],0,sn,50,3,str(InVMaxBatNo)+'号电压大于{:.2f}V,采样无效'.format(param.CellOVlmt),'返厂维修']
+                    df_Diag_Ram.loc[len(df_Diag_Ram)]=[bms_infoN['时间戳'],'0000-00-00 00:00:00',sn,50,3,str(InVMaxBatNo)+'号电压大于{:.2f}V,采样无效'.format(param.CellOVlmt),'返厂维修']
                     
                     ErrorFlg=1
                 else:
@@ -103,7 +103,7 @@ class SamplingSafty:
         elif minVol<param.CellUVlmt:
             QuitErrCount[50]=0
             if not 50 in df_Diag_Ram['code'].values.tolist():
-                df_Diag_Ram.loc[len(df_Diag_Ram)]=[bms_infoN['时间戳'],0,sn,50,3,str(InVMinBatNo)+'号电压小于{:.2f}V,采样无效'.format(param.CellUVlmt),'返厂维修']
+                df_Diag_Ram.loc[len(df_Diag_Ram)]=[bms_infoN['时间戳'],'0000-00-00 00:00:00',sn,50,3,str(InVMinBatNo)+'号电压小于{:.2f}V,采样无效'.format(param.CellUVlmt),'返厂维修']
                 
                 ErrorFlg=1
             else:
@@ -148,7 +148,7 @@ class SamplingSafty:
             if len(OutlierVolNo)>0:
                 QuitErrCount[51]=0
                 if not 51 in df_Diag_Ram['code'].values.tolist():#如果故障发生当前故障中没有该故障,则压入该故障
-                    df_Diag_Ram.loc[len(df_Diag_Ram)]=[bms_infoN['时间戳'],0,sn,51,2,str(OutlierVolNo)+'号电池电压离群','技术介入诊断']
+                    df_Diag_Ram.loc[len(df_Diag_Ram)]=[bms_infoN['时间戳'],'0000-00-00 00:00:00',sn,51,2,str(OutlierVolNo)+'号电池电压离群','技术介入诊断']
                     
                     ErrorFlg=1            
                 else:#如果故障发生当前故障中有该故障,则不进行操作
@@ -168,7 +168,7 @@ class SamplingSafty:
             if len(StackVolNo)>0:
                 QuitErrCount[52]=0
                 if not 52 in df_Diag_Ram['code'].values.tolist():#如果故障发生当前故障中没有该故障,则压入该故障
-                    df_Diag_Ram.loc[len(df_Diag_Ram)]=[bms_infoN['时间戳'],0,sn,52,2,str(StackVolNo)+'号电池电压卡滞','技术介入诊断']
+                    df_Diag_Ram.loc[len(df_Diag_Ram)]=[bms_infoN['时间戳'],'0000-00-00 00:00:00',sn,52,2,str(StackVolNo)+'号电池电压卡滞','技术介入诊断']
                     
                     ErrorFlg=1            
                 else:#如果故障发生当前故障中有该故障,则不进行操作
@@ -223,7 +223,7 @@ class SamplingSafty:
             if minCellTemp<param.PackUTlmt:
                 QuitErrCount[53]=0
                 if not 53 in df_Diag_Ram['code'].values.tolist():#如果故障发生当前故障中没有该故障,则压入该故障
-                    df_Diag_Ram.loc[len(df_Diag_Ram)]=[bms_infoN['时间戳'],0,sn,53,3,'电池温度采样断线,最高温度为{}℃,电池编号为{},最低温度为{}℃,电池编号为{}'.format(maxCellTemp,MaxBatNo,minCellTemp,MinBatNo),'返厂维修']
+                    df_Diag_Ram.loc[len(df_Diag_Ram)]=[bms_infoN['时间戳'],'0000-00-00 00:00:00',sn,53,3,'电池温度采样断线,最高温度为{}℃,电池编号为{},最低温度为{}℃,电池编号为{}'.format(maxCellTemp,MaxBatNo,minCellTemp,MinBatNo),'返厂维修']
                     ErrorFlg=1            
                 else:#如果故障发生当前故障中有该故障,则不进行操作
                     pass 
@@ -241,7 +241,7 @@ class SamplingSafty:
                 else:
                     pass
                 if not 2 in df_Diag_Ram['code'].values.tolist():
-                    df_Diag_Ram.loc[len(df_Diag_Ram)]=[bms_infoN['时间戳'],0,sn,2,3,str(InVMaxBatNo)+'号温度大于{}℃,采样无效'.format(param.PackOTlmt),'返厂维修']
+                    df_Diag_Ram.loc[len(df_Diag_Ram)]=[bms_infoN['时间戳'],'0000-00-00 00:00:00',sn,2,3,str(InVMaxBatNo)+'号温度大于{}℃,采样无效'.format(param.PackOTlmt),'返厂维修']
                     
                     ErrorFlg=1
                 else:
@@ -249,7 +249,7 @@ class SamplingSafty:
         elif minCellTemp<param.PackUTlmt:
             QuitErrCount[2]=0
             if not 2 in df_Diag_Ram['code'].values.tolist():
-                df_Diag_Ram.loc[len(df_Diag_Ram)]=[bms_infoN['时间戳'],0,sn,2,3,str(InVMinBatNo)+'号温度小于{}℃,采样无效'.format(param.PackUTlmt),'返厂维修']
+                df_Diag_Ram.loc[len(df_Diag_Ram)]=[bms_infoN['时间戳'],'0000-00-00 00:00:00',sn,2,3,str(InVMinBatNo)+'号温度小于{}℃,采样无效'.format(param.PackUTlmt),'返厂维修']
                 
                 ErrorFlg=1
             else:
@@ -280,7 +280,7 @@ class SamplingSafty:
             if len(OutlierTempNo)>0:
                 QuitErrCount[8]=0
                 if not 8 in df_Diag_Ram['code'].values.tolist():#如果故障发生当前故障中没有该故障,则压入该故障
-                    df_Diag_Ram.loc[len(df_Diag_Ram)]=[bms_infoN['时间戳'],0,sn,8,2,str(OutlierTempNo)+'号电池异常温度离群','技术介入诊断']
+                    df_Diag_Ram.loc[len(df_Diag_Ram)]=[bms_infoN['时间戳'],'0000-00-00 00:00:00',sn,8,2,str(OutlierTempNo)+'号电池异常温度离群','技术介入诊断']
                     
                     ErrorFlg=1            
                 else:#如果故障发生当前故障中有该故障,则不进行操作
@@ -335,7 +335,7 @@ class SamplingSafty:
                 if minOtherTemp<param.OtherUTlmt:
                     QuitErrCount[54]=0
                     if not 54 in df_Diag_Ram['code'].values.tolist():#如果故障发生当前故障中没有该故障,则压入该故障
-                        df_Diag_Ram.loc[len(df_Diag_Ram)]=[bms_infoN['时间戳'],0,sn,54,3,'其他温度采样断线,最高温度为{}℃,传感器编号为{},最低温度为{}℃,传感器编号为{}'.format(maxOtherTemp,MaxBatNo,minOtherTemp,MinBatNo),'返厂维修']
+                        df_Diag_Ram.loc[len(df_Diag_Ram)]=[bms_infoN['时间戳'],'0000-00-00 00:00:00',sn,54,3,'其他温度采样断线,最高温度为{}℃,传感器编号为{},最低温度为{}℃,传感器编号为{}'.format(maxOtherTemp,MaxBatNo,minOtherTemp,MinBatNo),'返厂维修']
                         
                         ErrorFlg=1            
                     else:#如果故障发生当前故障中有该故障,则不进行操作
@@ -354,7 +354,7 @@ class SamplingSafty:
                     else:
                         pass
                     if not 55 in df_Diag_Ram['code'].values.tolist():
-                        df_Diag_Ram.loc[len(df_Diag_Ram)]=[bms_infoN['时间戳'],0,sn,55,3,str(InVMaxBatNo)+'号传感器温度大于{}℃,采样无效'.format(param.OtherOTlmt),'联系用户核实电池情况,并返厂维修']
+                        df_Diag_Ram.loc[len(df_Diag_Ram)]=[bms_infoN['时间戳'],'0000-00-00 00:00:00',sn,55,3,str(InVMaxBatNo)+'号传感器温度大于{}℃,采样无效'.format(param.OtherOTlmt),'联系用户核实电池情况,并返厂维修']
                         
                         ErrorFlg=1
                     else:
@@ -362,7 +362,7 @@ class SamplingSafty:
             elif minOtherTemp<param.OtherUTlmt:
                 QuitErrCount[55]=0
                 if not 55 in df_Diag_Ram['code'].values.tolist():
-                    df_Diag_Ram.loc[len(df_Diag_Ram)]=[bms_infoN['时间戳'],0,sn,55,3,str(InVMinBatNo)+'号传感器温度小于{}℃,采样无效'.format(param.OtherUTlmt),'返厂维修']
+                    df_Diag_Ram.loc[len(df_Diag_Ram)]=[bms_infoN['时间戳'],'0000-00-00 00:00:00',sn,55,3,str(InVMinBatNo)+'号传感器温度小于{}℃,采样无效'.format(param.OtherUTlmt),'返厂维修']
                     
                     ErrorFlg=1
                 else:
@@ -385,15 +385,15 @@ class SamplingSafty:
                         BatNo=['其他温度'+str(t+1)]
                         AvgOtherTempGap=abs((float(bms_infoN[BatNo]))-AvgOtherTemp)
                         if AvgOtherTempGap>param.AvgOtherTempGap and float(bms_infoN[BatNo])>param.OtherUTlmt and float(bms_infoN[BatNo])<param.OtherOTlmt and not 8 in df_Diag_Ram['code']:
-                            OutlierTempNo.append(t+1)
+                            OutlierOtherTempNo.append(t+1)
                 else:
                     AvgOtherTempGap=maxOtherTemp-minOtherTemp
                     if AvgOtherTempGap>param.AvgOtherTempGap and minOtherTemp>param.OtherUTlmt and maxOtherTemp<param.OtherOTlmt and not 8 in df_Diag_Ram['code']:
-                        OutlierTempNo=[1,2]
-                if len(OutlierTempNo)>0:
+                        OutlierOtherTempNo=[1,2]
+                if len(OutlierOtherTempNo)>0:
                     QuitErrCount[56]=0
                     if not 56 in df_Diag_Ram['code'].values.tolist():#如果故障发生当前故障中没有该故障,则压入该故障
-                        df_Diag_Ram.loc[len(df_Diag_Ram)]=[bms_infoN['时间戳'],0,sn,56,2,str(OutlierTempNo)+'号传感器温度异常离群','技术介入诊断']
+                        df_Diag_Ram.loc[len(df_Diag_Ram)]=[bms_infoN['时间戳'],'0000-00-00 00:00:00',sn,56,2,str(OutlierOtherTempNo)+'号传感器温度异常离群','技术介入诊断']
                         
                         ErrorFlg=1            
                     else:#如果故障发生当前故障中有该故障,则不进行操作
@@ -409,7 +409,7 @@ class SamplingSafty:
             if (maxOtherTemp-maxCellTemp)>param.AvgOtherTempGap and  maxOtherTemp<param.OtherOTlmt and maxCellTemp<param.PackOTlmt:
                 QuitErrCount[56]=0
                 if not 56 in df_Diag_Ram['code'].values.tolist():
-                    df_Diag_Ram.loc[len(df_Diag_Ram)]=[bms_infoN['时间戳'],0,sn,56,2,str(OutlierTempNo)+'号传感器温度异常离群','技术立即介入诊断']
+                    df_Diag_Ram.loc[len(df_Diag_Ram)]=[bms_infoN['时间戳'],'0000-00-00 00:00:00',sn,56,2,str(OutlierOtherTempNo)+'号传感器温度异常离群','技术立即介入诊断']
                     
                     ErrorFlg=1
             else:
@@ -423,7 +423,7 @@ class SamplingSafty:
             if (maxCellTemp-maxOtherTemp)>param.AvgOtherTempGap and  maxOtherTemp<param.OtherOTlmt and maxCellTemp<param.PackOTlmt and not 8 in df_Diag_Ram['code']:
                 QuitErrCount[8]=0
                 if not 8 in df_Diag_Ram['code'].values.tolist():
-                    df_Diag_Ram.loc[len(df_Diag_Ram)]=[bms_infoN['时间戳'],0,sn,8,2,str(OutlierTempNo)+'号电芯温度异常离群','技术立即介入诊断']
+                    df_Diag_Ram.loc[len(df_Diag_Ram)]=[bms_infoN['时间戳'],'0000-00-00 00:00:00',sn,8,2,str(OutlierTempNo)+'号电芯温度异常离群','技术立即介入诊断']
                     
                     ErrorFlg=1
             else:

+ 3 - 3
LIB/MIDDLE/SaftyCenter/CellValueDiag/main.py

@@ -87,8 +87,8 @@ def diag_cal():
         Diag_Ram_Dif=datacompy.Compare(df_Diag_Ram_Update,CellFltInfo,join_columns=['product_id','end_time','code'])
         Diag_Ram_Dif=Diag_Ram_Dif.df1_unq_rows    
         if len(Diag_Ram_Dif)>0:
-            Diag_Ram_Dif_New=Diag_Ram_Dif[Diag_Ram_Dif['end_time']==0]
-            Diag_Ram_Dif_Finish=df_Diag_Ram[df_Diag_Ram['end_time']!=0]
+            Diag_Ram_Dif_New=Diag_Ram_Dif[Diag_Ram_Dif['end_time']=='0000-00-00 00:00:00']
+            Diag_Ram_Dif_Finish=df_Diag_Ram[df_Diag_Ram['end_time']!='0000-00-00 00:00:00']
             if len(Diag_Ram_Dif_New)>0:
                 result=pd.read_csv(r'D:\Platform\platform_python\data_analyze_platform\USER\sxq\SaftyCenter_CODE_V1_1\result.csv',encoding='gbk')
                 result=result.append(Diag_Ram_Dif_New)
@@ -178,7 +178,7 @@ if __name__ == "__main__":
     #............................模块运行前,先读取数据库中所有结束时间为0的数据,需要从数据库中读取................
     result=pd.read_csv(r'D:\Platform\platform_python\data_analyze_platform\USER\sxq\SaftyCenter_CODE_V1_1\result.csv',encoding='gbk')
     
-    df_Diag_Ram=result[result['end_time']==0]
+    df_Diag_Ram=result[result['end_time']=='0000-00-00 00:00:00']
     print('----------------输入--------')
     print(df_Diag_Ram)
     #定时任务.......................................................................................................................................................................