qingfeng 2 年 前
コミット
71a0695f0f
39 ファイル変更2990 行追加184 行削除
  1. BIN
      LIB/BACKEND/__pycache__/DBManager.cpython-38.pyc
  2. BIN
      LIB/MIDDLE/CellStateEstimation/Common/V1_0_1/__pycache__/BatParam.cpython-38.pyc
  3. BIN
      LIB/MIDDLE/CellStateEstimation/Common/V1_0_1/__pycache__/log.cpython-38.pyc
  4. 1 1
      LIB/MIDDLE/CellStateEstimation/Common/V1_0_1/log.py
  5. BIN
      USER/SPF/01qixiang/06BatSafetyAlarm/__pycache__/CBMSSafetyAlarm.cpython-38.pyc
  6. 23 23
      USER/SPF/01qixiang/06BatSafetyAlarm/main.py
  7. 0 0
      USER/SPF/01qixiang/101Log/log_diag.txt
  8. 9 3
      USER/SPF/alibaba/04BatSoc/CBMSBatSoc.py
  9. BIN
      USER/SPF/alibaba/04BatSoc/__pycache__/CBMSBatSoc.cpython-38.pyc
  10. 4 4
      USER/SPF/alibaba/04BatSoc/main.py
  11. 2252 0
      USER/SPF/alibaba/04BatSoc/soc_LS002.txt
  12. 1 0
      USER/SPF/alibaba/05BatDiag/CBMSBatDiag.py
  13. 10 5
      USER/SPF/alibaba/06BatSafetyAlarm/CBMSSafetyAlarm.py
  14. 1 1
      USER/SPF/alibaba/06BatSafetyAlarm/main.py
  15. 3 3
      USER/SPF/alibaba/07BatSafetyWarning/BatParam.py
  16. 156 22
      USER/SPF/alibaba/07BatSafetyWarning/CBMSBatInterShort.py
  17. 5 4
      USER/SPF/alibaba/07BatSafetyWarning/CBMSBatUniform.py
  18. BIN
      USER/SPF/alibaba/07BatSafetyWarning/LS002内短路.xlsx
  19. BIN
      USER/SPF/alibaba/07BatSafetyWarning/__pycache__/BatParam.cpython-38.pyc
  20. BIN
      USER/SPF/alibaba/07BatSafetyWarning/__pycache__/CBMSBatInterShort.cpython-38.pyc
  21. BIN
      USER/SPF/alibaba/07BatSafetyWarning/__pycache__/CBMSBatUniform.cpython-38.pyc
  22. 5 4
      USER/SPF/alibaba/07BatSafetyWarning/main_test.py
  23. 2 0
      USER/SPF/alibaba/07BatSafetyWarning/内短路.txt
  24. 29 0
      USER/SPF/alibaba/07BatSafetyWarning/电压排名.txt
  25. 103 0
      USER/SPF/alibaba/07BatSafetyWarning/电压离群.txt
  26. 199 0
      USER/SPF/alibaba/08BatCrtl/BatParam.py
  27. 55 19
      USER/SPF/alibaba/08BatCrtl/CBMSBatCtrl.py
  28. BIN
      USER/SPF/alibaba/08BatCrtl/__pycache__/CBMSBatCtrl.cpython-38.pyc
  29. 45 12
      USER/SPF/alibaba/08BatCrtl/main.py
  30. 12 0
      USER/SPF/alibaba/08BatCrtl/下行控制.txt
  31. 0 27
      USER/SPF/alibaba/101Log/log_ctrl.txt
  32. 26 0
      USER/SPF/alibaba/101Log/log_warning.txt
  33. BIN
      USER/SPF/alibaba/99Result/LS001内短路..png
  34. BIN
      USER/SPF/alibaba/99Result/LS001内短路.xlsx
  35. BIN
      USER/SPF/alibaba/99Result/LS002内短路..png
  36. BIN
      USER/SPF/alibaba/99Result/LS002内短路.xlsx
  37. 4 4
      USER/SPF/alibaba/Common/BatParam.py
  38. 1 10
      USER/test.ipynb
  39. 44 42
      USER/test.py

BIN
LIB/BACKEND/__pycache__/DBManager.cpython-38.pyc


BIN
LIB/MIDDLE/CellStateEstimation/Common/V1_0_1/__pycache__/BatParam.cpython-38.pyc


BIN
LIB/MIDDLE/CellStateEstimation/Common/V1_0_1/__pycache__/log.cpython-38.pyc


+ 1 - 1
LIB/MIDDLE/CellStateEstimation/Common/V1_0_1/log.py

@@ -17,7 +17,7 @@ class Mylog:
                 Level=logging.WARNING
             else:
                 Level=logging.ERROR
-        logging.basicConfig(filename=r'D:\Develop\User\Songpengfei\data_analyze_platform\WORK\101log\\'+self.name, level=Level,format='%(asctime)s - %(levelname)s - %(message)s')
+        logging.basicConfig(filename=r'D:\01WorkSpace\python\data_analyze_platform\USER\SPF\01qixiang\101Log\\'+self.name, level=Level,format='%(asctime)s - %(levelname)s - %(message)s')
 
 
     def logopt(self,*info):

BIN
USER/SPF/01qixiang/06BatSafetyAlarm/__pycache__/CBMSSafetyAlarm.cpython-38.pyc


+ 23 - 23
USER/SPF/01qixiang/06BatSafetyAlarm/main.py

@@ -10,15 +10,13 @@ from LIB.MIDDLE.CellStateEstimation.Common.V1_0_1 import log
 
 
 #...................................电池包电芯安全诊断函数......................................................................................................................
-def diag_cal(sn_list, df_bms_ram, df_alarm_ram):
+def diag_cal(sn_list, df_bms_ram, df_alarm_ram,now_time):
 
     start=time.time()
-    now_time=datetime.datetime.now() #-datetime.timedelta(seconds=3600*24+3600*14.6)
-    start_time=now_time-datetime.timedelta(seconds=180)
+    end_time=now_time
+    start_time=now_time-datetime.timedelta(seconds=60)
     start_time=start_time.strftime('%Y-%m-%d %H:%M:%S')
     end_time=now_time.strftime('%Y-%m-%d %H:%M:%S')
-    start_time='2021-10-31 09:30:30'
-    end_time='2021-10-31 09:31:30'
 
     #数据库配置
     host='rm-bp10j10qy42bzy0q77o.mysql.rds.aliyuncs.com'
@@ -98,7 +96,8 @@ def diag_cal(sn_list, df_bms_ram, df_alarm_ram):
     return df_bms_ram,df_alarm_ram
 #...................................................主进程...........................................................................................................
 def mainprocess():
-    global df_bms_ram1, df_bms_ram2, df_alarm_ram1, df_alarm_ram2, SNnums
+    global df_bms_ram1, df_bms_ram2, df_alarm_ram1, df_alarm_ram2, SNnums, now_time
+    now_time=now_time+datetime.timedelta(seconds=60)
     process = 2
     pool = multiprocessing.Pool(processes = process)
 
@@ -109,7 +108,7 @@ def mainprocess():
         sn_list = SNnums[i]
         df_bms_ram=ram_list1[i]
         df_alarm_ram=ram_list2[i]
-        df_res=pool.apply_async(diag_cal, (sn_list,df_bms_ram,df_alarm_ram)).get()
+        df_res=pool.apply_async(diag_cal, (sn_list,df_bms_ram,df_alarm_ram,now_time)).get()
         res_list.append(df_res)
     
     pool.close()
@@ -123,21 +122,22 @@ def mainprocess():
 #...............................................主函数起定时作用.......................................................................................................................
 if __name__ == "__main__":
     
-    excelpath=r'D:\Develop\User\Songpengfei\data_analyze_platform\WORK\01qixiang\sn-20210903.xlsx'
-    SNdata_6060 = pd.read_excel(excelpath, sheet_name='科易6060')
-    SNdata_6040 = pd.read_excel(excelpath, sheet_name='科易6040')
-    SNdata_4840 = pd.read_excel(excelpath, sheet_name='科易4840')
-    SNdata_L7255 = pd.read_excel(excelpath, sheet_name='格林美-力信7255')
-    SNdata_C7255 = pd.read_excel(excelpath, sheet_name='格林美-CATL7255')
-    SNdata_U7255 = pd.read_excel(excelpath, sheet_name='优旦7255')
-    SNnums_6060=SNdata_6060['SN号'].tolist()
-    SNnums_6040=SNdata_6040['SN号'].tolist()
-    SNnums_4840=SNdata_4840['SN号'].tolist()
-    SNnums_L7255=SNdata_L7255['SN号'].tolist()
-    SNnums_C7255=SNdata_C7255['SN号'].tolist()
-    SNnums_U7255=SNdata_U7255['SN号'].tolist()
-    SNnums=[SNnums_L7255 + SNnums_C7255 + SNnums_U7255 + SNnums_4840, SNnums_6040 + SNnums_6060]
-    SNnums=[['MGMCLN750N215N049','PK504B10100004328'], ['PK500A20100000752','PK504B10100004387']]
+    # excelpath=r'D:\Develop\User\Songpengfei\data_analyze_platform\WORK\01qixiang\sn-20210903.xlsx'
+    # SNdata_6060 = pd.read_excel(excelpath, sheet_name='科易6060')
+    # SNdata_6040 = pd.read_excel(excelpath, sheet_name='科易6040')
+    # SNdata_4840 = pd.read_excel(excelpath, sheet_name='科易4840')
+    # SNdata_L7255 = pd.read_excel(excelpath, sheet_name='格林美-力信7255')
+    # SNdata_C7255 = pd.read_excel(excelpath, sheet_name='格林美-CATL7255')
+    # SNdata_U7255 = pd.read_excel(excelpath, sheet_name='优旦7255')
+    # SNnums_6060=SNdata_6060['SN号'].tolist()
+    # SNnums_6040=SNdata_6040['SN号'].tolist()
+    # SNnums_4840=SNdata_4840['SN号'].tolist()
+    # SNnums_L7255=SNdata_L7255['SN号'].tolist()
+    # SNnums_C7255=SNdata_C7255['SN号'].tolist()
+    # SNnums_U7255=SNdata_U7255['SN号'].tolist()
+    # SNnums=[SNnums_L7255 + SNnums_C7255 + SNnums_U7255 + SNnums_4840, SNnums_6040 + SNnums_6060]
+    SNnums=[['PK504B10100004487'], []]
+    now_time=datetime.datetime.strptime('2022-5-24 19:49:00','%Y-%m-%d %H:%M:%S')
     
     mylog=log.Mylog('log_diag.txt','error')
     mylog.logcfg()
@@ -151,7 +151,7 @@ if __name__ == "__main__":
     mainprocess()
     #定时任务.......................................................................................................................................................................
     scheduler = BlockingScheduler()
-    scheduler.add_job(mainprocess, 'interval', seconds=180, id='diag_job')
+    scheduler.add_job(mainprocess, 'interval', seconds=0.1, id='diag_job')
 
     try:  
         scheduler.start()

+ 0 - 0
USER/SPF/01qixiang/101Log/log_diag.txt


+ 9 - 3
USER/SPF/alibaba/04BatSoc/CBMSBatSoc.py

@@ -89,7 +89,7 @@ class BatSoc():
         cellocv=cellvolt.mean(axis=0)
         cellocv_std=cellvolt.std(axis=0)
         cellocv_std=cellocv_std.fillna(0)
-        if max(cellocv_std)<0.002:
+        if max(cellocv_std)<0.003:
             return np.array(cellocv)
         else:
             return [0]
@@ -345,7 +345,7 @@ class BatSoc():
                         cellsocmin=ocvsocmin
                         cellsocmax=ocvsocmin+cellsoc_diff
                         socstep=1
-                    else:
+                    elif min(cellocv)>2 and max(cellocv)<4:
                         #第一平台向第二平台修正
                         if ocvsocmax>self.param.SocInflexion3+5 and max(ramcellsoc)<self.param.SocInflexion2-5:
                             if  ocvsocmin>self.param.SocInflexion3+5 and min(ramcellsoc)<self.param.SocInflexion2-5:
@@ -379,6 +379,9 @@ class BatSoc():
                         else:
                             cellsoc=ramcellsoc
                             socstep=8
+                    else:
+                        cellsoc=ramcellsoc
+                        socstep=8
                 #数据字段长度==1..............................................................................................
                 else:
                     cellvolt0=self._cellvolt_get(0)
@@ -396,7 +399,7 @@ class BatSoc():
                             cellsocmin=ocvsocmin
                             cellsocmax=ocvsocmin+cellsoc_diff
                             socstep=10
-                        else:
+                        elif ocvmin>2 and ocvmax<4:
                             #第一平台向第二平台修正
                             if ocvsocmax>self.param.SocInflexion3+5 and max(ramcellsoc)<self.param.SocInflexion2-5:
                                 if  ocvsocmin>self.param.SocInflexion3+5 and min(ramcellsoc)<self.param.SocInflexion2-5:
@@ -430,6 +433,9 @@ class BatSoc():
                             else:
                                 cellsoc=ramcellsoc
                                 socstep=17
+                        else:
+                            cellsoc=ramcellsoc
+                            socstep=17
                     else:
                         cellsoc=ramcellsoc
                         socstep=17

BIN
USER/SPF/alibaba/04BatSoc/__pycache__/CBMSBatSoc.cpython-38.pyc


+ 4 - 4
USER/SPF/alibaba/04BatSoc/main.py

@@ -48,8 +48,8 @@ def soc_cal():
             df_temp.columns = celltemp_name
             df_temp=df_temp.astype('float')
             df_bms1=pd.concat([df_bms1,df_volt,df_temp],axis=1)
-            df_bms1.dropna(axis=0, inplace=True)
-            df_bms1=df_bms1.reset_index(drop=True)
+            # df_bms1.dropna(axis=0, inplace=True)
+            df_bms1.reset_index(drop=True, inplace=True)
 
 
         #读取结果数据库数据........................................................................................................................................................
@@ -103,8 +103,8 @@ if __name__ == "__main__":
     SNnums= ['LS002']
 
     #读取原始数据库数据........................................................................................................................................................
-    df_bms= pd.read_excel(r'D:\01WorkSpace\项目\Alibaba\data\原始数据_2022-01-10_2022-02-10\力神_LS002.xlsx')
-    now_time=datetime.datetime.strptime('2022-4-27 10:05:00','%Y-%m-%d %H:%M:%S')
+    df_bms= pd.read_excel(r'D:\01WorkSpace\项目\Alibaba\data(1)\原始数据_2022-04-20_2022-05-20\力神_LS001.xlsx')
+    now_time=datetime.datetime.strptime('2022-5-2 09:59:00','%Y-%m-%d %H:%M:%S')
 
     #log信息配置
     mylog=log.Mylog('log_soc.txt','error')

+ 2252 - 0
USER/SPF/alibaba/04BatSoc/soc_LS002.txt

@@ -7236,3 +7236,2255 @@
 (Timestamp('2022-04-27 10:04:58'), 'LS002', 4.8, 5.8)
 (Timestamp('2022-04-27 10:05:08'), 'LS002', 4.8, 5.9)
 (Timestamp('2022-04-27 10:05:15'), 'LS002', 4.8, 5.9)
+('time', 'sn', 'bms_soc', 'soc', 'cellsoc', 'standingtime', 'rampackcrnt', 'ramcellvolt', 'kocellvoltmin', 'kocellvoltmax', 'ocvweight', 'as_accum', 'socstep')
+(Timestamp('2022-05-02 11:58:59'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:59:07'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:59:18'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:59:29'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:59:37'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:59:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:59:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 12:00:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 12:00:18'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 12:00:29'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 12:00:37'), 'LS002', 99.6, 100.0)
+('time', 'sn', 'bms_soc', 'soc', 'cellsoc', 'standingtime', 'rampackcrnt', 'ramcellvolt', 'kocellvoltmin', 'kocellvoltmax', 'ocvweight', 'as_accum', 'socstep')
+(Timestamp('2022-05-02 11:58:59'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:59:07'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:59:18'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:59:29'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:59:37'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:59:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:59:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 12:00:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 12:00:18'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 12:00:29'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 12:00:37'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 12:00:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 12:00:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 12:01:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 12:01:19'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 12:01:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 12:01:39'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 12:01:47'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 12:01:58'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 12:02:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 12:02:19'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 12:02:27'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 12:02:39'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 12:02:47'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 12:02:53'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 12:03:19'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 12:03:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 12:03:39'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 12:03:47'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 12:03:58'), 'LS002', 99.6, 100.0)
+('time', 'sn', 'bms_soc', 'soc', 'cellsoc', 'standingtime', 'rampackcrnt', 'ramcellvolt', 'kocellvoltmin', 'kocellvoltmax', 'ocvweight', 'as_accum', 'socstep')
+(Timestamp('2022-05-02 09:58:59'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 09:59:07'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 09:59:19'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 09:59:27'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 09:59:38'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 09:59:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 09:59:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:00:09'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:00:17'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:00:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:00:38'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:00:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:00:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:01:09'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:01:17'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:01:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:01:38'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:01:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:01:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:02:09'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:02:17'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:02:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:02:39'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:02:48'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:02:59'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:03:07'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:03:18'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:03:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:03:39'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:03:47'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:03:59'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:04:07'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:04:18'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:04:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:04:39'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:04:47'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:04:59'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:05:07'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:05:18'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:05:29'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:05:38'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:05:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:05:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:06:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:06:18'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:06:29'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:06:38'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:06:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:06:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:07:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:07:18'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:07:29'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:07:37'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:07:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:07:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:08:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:08:18'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:08:29'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:08:37'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:08:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:08:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:09:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:09:18'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:09:29'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:09:37'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:09:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:09:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:10:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:10:19'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:10:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:10:39'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:10:47'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:10:58'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:11:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:11:19'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:11:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:11:39'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:11:47'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:11:58'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:12:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:12:19'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:12:27'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:12:39'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:12:47'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:12:58'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:13:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:13:19'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:13:27'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:13:39'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:13:47'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:13:58'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:14:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:14:19'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:14:27'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:14:39'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:14:47'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:14:58'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:15:09'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:15:18'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:15:29'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:15:37'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:15:48'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:15:58'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:16:09'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:16:18'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:16:29'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:16:37'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:16:48'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:16:58'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:17:09'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:17:17'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:17:29'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:17:37'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:17:48'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:17:58'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:18:09'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:18:17'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:18:29'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:18:37'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:18:48'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:18:59'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:19:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:19:19'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:19:27'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:19:38'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:19:48'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:19:59'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:20:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:20:19'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:20:27'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:20:38'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:20:48'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:20:59'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:21:07'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:21:19'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:21:27'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:21:38'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:21:48'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:21:59'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:22:07'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:22:19'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:22:27'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:22:38'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:22:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:22:58'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:23:09'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:23:17'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:23:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:23:38'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:23:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:23:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:24:09'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:24:17'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:24:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:24:38'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:24:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:24:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:25:09'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:25:17'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:25:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:25:39'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:25:46'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:26:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:26:18'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:26:29'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:26:38'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:26:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:26:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:27:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:27:18'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:27:29'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:27:37'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:27:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:27:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:28:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:28:18'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:28:29'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:28:37'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:28:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:28:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:29:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:29:18'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:29:29'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:29:37'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:29:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:29:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:30:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:30:19'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:30:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:30:39'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:30:47'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:30:58'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:31:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:31:19'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:31:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:31:39'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:31:47'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:31:58'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:32:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:32:19'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:32:27'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:32:39'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:32:39'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:32:59'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:33:07'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:33:19'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:33:27'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:33:38'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:33:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:33:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:34:09'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:34:17'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:34:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:34:38'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:34:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:34:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:35:09'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:35:17'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:35:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:35:39'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:35:48'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:35:59'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:36:07'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:36:18'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:36:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:36:39'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:36:47'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:36:59'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:37:07'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:37:29'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:37:37'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:37:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:37:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:38:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:38:19'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:38:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:38:39'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:38:47'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:38:58'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:39:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:39:19'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:39:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:39:39'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:39:47'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:39:58'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:40:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:40:19'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:40:27'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:40:39'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:40:47'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:40:55'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:41:29'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:41:37'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:41:48'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:41:58'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:42:09'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:42:17'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:42:29'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:42:37'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:42:48'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:42:59'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:43:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:43:19'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:43:27'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:43:38'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:43:48'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:43:59'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:44:07'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:44:19'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:44:27'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:44:38'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:44:48'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:44:59'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:45:07'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:45:19'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:45:27'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:45:38'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:45:48'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:45:59'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:46:07'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:46:19'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:46:27'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:46:38'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:46:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:46:58'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:47:09'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:47:17'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:47:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:47:38'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:47:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:47:58'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:48:09'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:48:17'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:48:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:48:38'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:48:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:48:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:49:09'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:49:17'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:49:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:49:38'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:49:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:49:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:50:09'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:50:17'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:50:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:50:39'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:50:43'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:50:59'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:51:07'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:51:19'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:51:27'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:51:38'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:51:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:51:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:52:09'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:52:17'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:52:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:52:38'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:52:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:52:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:53:09'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:53:17'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:53:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:53:38'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:53:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:53:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:54:09'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:54:17'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:54:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:54:39'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:54:47'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:54:59'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:55:07'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:55:18'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:55:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:55:39'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:55:47'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:55:59'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:56:07'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:56:18'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:56:29'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:56:37'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:56:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:56:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:57:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:57:18'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:57:29'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:57:37'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:57:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:57:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:58:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:58:18'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:58:29'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:58:37'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:58:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:58:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:59:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:59:19'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:59:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:59:39'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:59:47'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:59:58'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:00:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:00:19'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:00:27'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:00:39'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:00:47'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:00:58'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:01:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:01:19'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:01:27'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:01:39'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:01:47'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:01:58'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:02:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:02:19'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:02:27'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:02:39'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:02:47'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:02:58'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:03:09'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:03:18'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:03:29'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:03:37'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:03:48'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:03:58'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:04:09'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:04:17'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:04:29'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:04:37'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:04:48'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:04:58'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:05:09'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:05:17'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:05:29'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:05:37'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:05:48'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:05:58'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:06:09'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:06:17'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:06:29'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:06:37'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:06:48'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:06:59'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:07:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:07:19'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:07:27'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:07:38'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:07:48'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:07:59'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:08:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:08:19'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:08:27'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:08:38'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:08:48'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:08:59'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:09:07'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:09:19'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:09:27'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:09:38'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:09:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:09:58'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:10:09'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:10:17'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:10:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:10:38'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:10:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:10:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:11:09'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:11:17'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:11:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:11:38'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:11:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:11:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:12:09'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:12:17'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:12:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:12:38'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:12:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:12:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:13:09'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:13:17'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:13:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:13:38'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:13:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:13:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:14:09'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:14:17'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:14:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:14:39'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:14:48'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:14:59'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:15:07'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:15:18'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:15:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:15:39'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:15:47'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:15:59'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:16:07'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:16:18'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:16:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:16:39'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:16:47'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:16:59'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:17:07'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:17:18'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:17:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:17:39'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:17:47'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:17:59'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:18:07'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:18:18'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:18:29'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:18:38'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:18:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:18:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:19:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:19:18'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:19:29'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:19:37'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:19:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:19:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:20:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:20:18'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:20:29'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:20:37'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:20:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:20:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:21:09'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:21:17'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:21:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:21:38'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:21:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:21:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:22:09'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:22:17'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:22:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:22:39'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:22:48'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:22:59'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:23:07'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:23:18'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:23:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:23:39'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:23:47'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:23:59'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:24:07'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:24:18'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:24:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:24:39'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:24:47'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:24:59'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:25:07'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:25:18'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:25:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:25:39'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:25:47'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:25:59'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:26:07'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:26:18'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:26:29'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:26:38'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:26:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:26:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:27:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:27:18'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:27:29'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:27:37'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:27:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:27:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:28:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:28:18'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:28:29'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:28:37'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:28:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:28:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:29:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:29:18'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:29:29'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:29:37'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:29:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:29:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:30:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:30:18'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:30:29'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:30:37'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:30:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:30:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:31:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:31:19'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:31:27'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:31:39'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:31:47'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:31:58'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:32:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:32:19'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:32:27'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:32:39'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:32:47'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:32:58'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:33:09'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:33:18'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:33:29'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:33:37'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:33:48'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:33:58'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:34:09'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:34:18'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:34:29'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:34:37'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:34:48'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:34:58'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:35:09'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:35:17'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:35:29'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:35:37'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:35:48'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:35:58'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:36:09'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:36:17'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:36:29'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:36:37'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:36:48'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:36:59'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:37:07'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:37:19'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:37:27'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:37:38'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:37:48'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:37:59'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:38:07'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:38:19'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:38:27'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:38:38'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:38:48'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:38:59'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:39:07'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:39:19'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:39:27'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:39:38'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:39:48'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:39:59'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:40:07'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:40:19'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:40:27'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:40:38'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:40:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:40:58'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:41:09'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:41:17'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:41:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:41:38'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:41:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:41:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:42:09'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:42:17'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:42:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:42:38'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:42:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:42:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:43:09'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:43:17'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:43:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:43:38'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:43:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:43:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:44:09'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:44:17'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:44:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:44:39'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:44:47'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:44:59'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:45:07'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:45:18'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:45:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:45:39'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:45:47'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:45:59'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:46:07'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:46:18'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:46:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:46:39'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:46:47'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:46:59'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:47:07'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:47:18'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:47:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:47:39'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:47:47'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:47:59'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:48:07'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:48:18'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:48:29'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:48:38'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:48:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:48:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:49:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:49:18'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:49:29'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:49:37'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:49:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:49:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:50:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:50:18'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:50:29'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:50:37'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:50:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:50:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:51:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:51:18'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:51:29'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:51:37'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:51:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:51:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:52:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:52:19'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:52:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:52:39'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:52:47'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:52:58'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:53:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:53:19'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:53:27'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:53:39'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:53:47'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:53:58'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:54:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:54:19'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:54:27'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:54:39'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:54:47'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:54:58'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:55:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:55:19'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:55:27'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:55:39'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:55:47'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:55:58'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:56:09'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:56:18'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:56:29'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:56:37'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:56:48'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:56:58'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:57:09'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:57:17'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:57:29'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:57:37'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:57:48'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:57:52'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:58:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:58:18'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:58:29'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:58:37'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:58:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:58:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:59:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:59:18'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:59:29'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:59:37'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:59:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:59:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 12:00:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 12:00:18'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 12:00:29'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 12:00:37'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 12:00:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 12:00:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 12:01:08'), 'LS002', 99.6, 100.0)
+('time', 'sn', 'bms_soc', 'soc', 'cellsoc', 'standingtime', 'rampackcrnt', 'ramcellvolt', 'kocellvoltmin', 'kocellvoltmax', 'ocvweight', 'as_accum', 'socstep')
+(Timestamp('2022-05-02 09:58:59'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 09:59:07'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 09:59:19'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 09:59:27'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 09:59:38'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 09:59:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 09:59:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:00:09'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:00:17'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:00:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:00:38'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:00:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:00:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:01:09'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:01:17'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:01:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:01:38'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:01:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:01:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:02:09'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:02:17'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:02:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:02:39'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:02:48'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:02:59'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:03:07'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:03:18'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:03:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:03:39'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:03:47'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:03:59'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:04:07'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:04:18'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:04:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:04:39'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:04:47'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:04:59'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:05:07'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:05:18'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:05:29'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:05:38'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:05:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:05:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:06:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:06:18'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:06:29'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:06:38'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:06:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:06:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:07:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:07:18'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:07:29'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:07:37'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:07:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:07:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:08:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:08:18'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:08:29'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:08:37'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:08:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:08:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:09:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:09:18'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:09:29'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:09:37'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:09:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:09:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:10:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:10:19'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:10:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:10:39'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:10:47'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:10:58'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:11:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:11:19'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:11:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:11:39'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:11:47'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:11:58'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:12:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:12:19'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:12:27'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:12:39'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:12:47'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:12:58'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:13:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:13:19'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:13:27'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:13:39'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:13:47'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:13:58'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:14:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:14:19'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:14:27'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:14:39'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:14:47'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:14:58'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:15:09'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:15:18'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:15:29'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:15:37'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:15:48'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:15:58'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:16:09'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:16:18'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:16:29'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:16:37'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:16:48'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:16:58'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:17:09'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:17:17'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:17:29'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:17:37'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:17:48'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:17:58'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:18:09'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:18:17'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:18:29'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:18:37'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:18:48'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:18:59'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:19:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:19:19'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:19:27'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:19:38'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:19:48'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:19:59'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:20:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:20:19'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:20:27'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:20:38'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:20:48'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:20:59'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:21:07'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:21:19'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:21:27'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:21:38'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:21:48'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:21:59'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:22:07'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:22:19'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:22:27'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:22:38'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:22:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:22:58'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:23:09'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:23:17'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:23:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:23:38'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:23:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:23:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:24:09'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:24:17'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:24:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:24:38'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:24:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:24:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:25:09'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:25:17'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:25:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:25:39'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:25:46'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:26:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:26:18'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:26:29'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:26:38'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:26:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:26:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:27:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:27:18'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:27:29'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:27:37'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:27:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:27:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:28:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:28:18'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:28:29'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:28:37'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:28:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:28:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:29:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:29:18'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:29:29'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:29:37'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:29:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:29:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:30:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:30:19'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:30:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:30:39'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:30:47'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:30:58'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:31:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:31:19'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:31:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:31:39'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:31:47'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:31:58'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:32:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:32:19'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:32:27'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:32:39'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:32:39'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:32:59'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:33:07'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:33:19'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:33:27'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:33:38'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:33:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:33:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:34:09'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:34:17'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:34:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:34:38'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:34:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:34:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:35:09'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:35:17'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:35:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:35:39'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:35:48'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:35:59'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:36:07'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:36:18'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:36:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:36:39'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:36:47'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:36:59'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:37:07'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:37:29'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:37:37'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:37:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:37:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:38:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:38:19'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:38:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:38:39'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:38:47'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:38:58'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:39:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:39:19'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:39:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:39:39'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:39:47'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:39:58'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:40:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:40:19'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:40:27'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:40:39'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:40:47'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:40:55'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:41:29'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:41:37'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:41:48'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:41:58'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:42:09'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:42:17'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:42:29'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:42:37'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:42:48'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:42:59'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:43:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:43:19'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:43:27'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:43:38'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:43:48'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:43:59'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:44:07'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:44:19'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:44:27'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:44:38'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:44:48'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:44:59'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:45:07'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:45:19'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:45:27'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:45:38'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:45:48'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:45:59'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:46:07'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:46:19'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:46:27'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:46:38'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:46:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:46:58'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:47:09'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:47:17'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:47:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:47:38'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:47:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:47:58'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:48:09'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:48:17'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:48:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:48:38'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:48:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:48:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:49:09'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:49:17'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:49:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:49:38'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:49:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:49:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:50:09'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:50:17'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:50:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:50:39'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:50:43'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:50:59'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:51:07'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:51:19'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:51:27'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:51:38'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:51:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:51:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:52:09'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:52:17'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:52:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:52:38'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:52:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:52:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:53:09'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:53:17'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:53:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:53:38'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:53:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:53:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:54:09'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:54:17'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:54:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:54:39'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:54:47'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:54:59'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:55:07'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:55:18'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:55:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:55:39'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:55:47'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:55:59'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:56:07'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:56:18'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:56:29'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:56:37'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:56:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:56:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:57:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:57:18'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:57:29'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:57:37'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:57:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:57:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:58:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:58:18'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:58:29'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:58:37'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:58:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:58:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:59:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:59:19'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:59:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:59:39'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:59:47'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:59:58'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:00:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:00:19'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:00:27'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:00:39'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:00:47'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:00:58'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:01:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:01:19'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:01:27'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:01:39'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:01:47'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:01:58'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:02:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:02:19'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:02:27'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:02:39'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:02:47'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:02:58'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:03:09'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:03:18'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:03:29'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:03:37'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:03:48'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:03:58'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:04:09'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:04:17'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:04:29'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:04:37'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:04:48'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:04:58'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:05:09'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:05:17'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:05:29'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:05:37'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:05:48'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:05:58'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:06:09'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:06:17'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:06:29'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:06:37'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:06:48'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:06:59'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:07:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:07:19'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:07:27'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:07:38'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:07:48'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:07:59'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:08:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:08:19'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:08:27'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:08:38'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:08:48'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:08:59'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:09:07'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:09:19'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:09:27'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:09:38'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:09:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:09:58'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:10:09'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:10:17'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:10:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:10:38'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:10:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:10:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:11:09'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:11:17'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:11:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:11:38'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:11:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:11:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:12:09'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:12:17'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:12:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:12:38'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:12:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:12:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:13:09'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:13:17'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:13:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:13:38'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:13:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:13:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:14:09'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:14:17'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:14:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:14:39'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:14:48'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:14:59'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:15:07'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:15:18'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:15:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:15:39'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:15:47'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:15:59'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:16:07'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:16:18'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:16:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:16:39'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:16:47'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:16:59'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:17:07'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:17:18'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:17:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:17:39'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:17:47'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:17:59'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:18:07'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:18:18'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:18:29'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:18:38'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:18:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:18:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:19:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:19:18'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:19:29'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:19:37'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:19:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:19:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:20:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:20:18'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:20:29'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:20:37'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:20:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:20:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:21:09'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:21:17'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:21:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:21:38'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:21:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:21:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:22:09'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:22:17'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:22:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:22:39'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:22:48'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:22:59'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:23:07'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:23:18'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:23:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:23:39'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:23:47'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:23:59'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:24:07'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:24:18'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:24:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:24:39'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:24:47'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:24:59'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:25:07'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:25:18'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:25:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:25:39'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:25:47'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:25:59'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:26:07'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:26:18'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:26:29'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:26:38'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:26:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:26:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:27:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:27:18'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:27:29'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:27:37'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:27:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:27:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:28:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:28:18'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:28:29'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:28:37'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:28:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:28:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:29:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:29:18'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:29:29'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:29:37'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:29:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:29:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:30:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:30:18'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:30:29'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:30:37'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:30:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:30:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:31:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:31:19'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:31:27'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:31:39'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:31:47'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:31:58'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:32:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:32:19'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:32:27'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:32:39'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:32:47'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:32:58'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:33:09'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:33:18'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:33:29'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:33:37'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:33:48'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:33:58'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:34:09'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:34:18'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:34:29'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:34:37'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:34:48'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:34:58'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:35:09'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:35:17'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:35:29'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:35:37'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:35:48'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:35:58'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:36:09'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:36:17'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:36:29'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:36:37'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:36:48'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:36:59'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:37:07'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:37:19'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:37:27'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:37:38'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:37:48'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:37:59'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:38:07'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:38:19'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:38:27'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:38:38'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:38:48'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:38:59'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:39:07'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:39:19'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:39:27'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:39:38'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:39:48'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:39:59'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:40:07'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:40:19'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:40:27'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:40:38'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:40:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:40:58'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:41:09'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:41:17'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:41:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:41:38'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:41:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:41:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:42:09'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:42:17'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:42:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:42:38'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:42:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:42:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:43:09'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:43:17'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:43:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:43:38'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:43:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:43:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:44:09'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:44:17'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:44:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:44:39'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:44:47'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:44:59'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:45:07'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:45:18'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:45:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:45:39'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:45:47'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:45:59'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:46:07'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:46:18'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:46:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:46:39'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:46:47'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:46:59'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:47:07'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:47:18'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:47:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:47:39'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:47:47'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:47:59'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:48:07'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:48:18'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:48:29'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:48:38'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:48:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:48:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:49:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:49:18'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:49:29'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:49:37'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:49:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:49:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:50:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:50:18'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:50:29'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:50:37'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:50:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:50:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:51:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:51:18'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:51:29'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:51:37'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:51:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:51:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:52:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:52:19'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:52:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:52:39'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:52:47'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:52:58'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:53:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:53:19'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:53:27'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:53:39'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:53:47'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:53:58'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:54:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:54:19'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:54:27'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:54:39'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:54:47'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:54:58'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:55:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:55:19'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:55:27'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:55:39'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:55:47'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:55:58'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:56:09'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:56:18'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:56:29'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:56:37'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:56:48'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:56:58'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:57:09'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:57:17'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:57:29'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:57:37'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:57:48'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:57:52'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:58:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:58:18'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:58:29'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:58:37'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:58:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:58:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:59:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:59:18'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:59:29'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:59:37'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:59:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:59:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 12:00:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 12:00:18'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 12:00:29'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 12:00:37'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 12:00:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 12:00:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 12:01:08'), 'LS002', 99.6, 100.0)
+('time', 'sn', 'bms_soc', 'soc', 'cellsoc', 'standingtime', 'rampackcrnt', 'ramcellvolt', 'kocellvoltmin', 'kocellvoltmax', 'ocvweight', 'as_accum', 'socstep')
+(Timestamp('2022-05-02 09:58:59'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 09:59:07'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 09:59:19'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 09:59:27'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 09:59:38'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 09:59:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 09:59:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:00:09'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:00:17'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:00:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:00:38'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:00:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:00:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:01:09'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:01:17'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:01:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:01:38'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:01:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:01:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:02:09'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:02:17'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:02:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:02:39'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:02:48'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:02:59'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:03:07'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:03:18'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:03:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:03:39'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:03:47'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:03:59'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:04:07'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:04:18'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:04:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:04:39'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:04:47'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:04:59'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:05:07'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:05:18'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:05:29'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:05:38'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:05:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:05:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:06:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:06:18'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:06:29'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:06:38'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:06:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:06:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:07:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:07:18'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:07:29'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:07:37'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:07:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:07:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:08:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:08:18'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:08:29'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:08:37'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:08:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:08:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:09:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:09:18'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:09:29'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:09:37'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:09:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:09:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:10:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:10:19'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:10:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:10:39'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:10:47'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:10:58'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:11:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:11:19'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:11:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:11:39'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:11:47'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:11:58'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:12:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:12:19'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:12:27'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:12:39'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:12:47'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:12:58'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:13:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:13:19'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:13:27'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:13:39'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:13:47'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:13:58'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:14:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:14:19'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:14:27'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:14:39'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:14:47'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:14:58'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:15:09'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:15:18'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:15:29'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:15:37'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:15:48'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:15:58'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:16:09'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:16:18'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:16:29'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:16:37'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:16:48'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:16:58'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:17:09'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:17:17'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:17:29'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:17:37'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:17:48'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:17:58'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:18:09'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:18:17'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:18:29'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:18:37'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:18:48'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:18:59'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:19:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:19:19'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:19:27'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:19:38'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:19:48'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:19:59'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:20:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:20:19'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:20:27'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:20:38'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:20:48'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:20:59'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:21:07'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:21:19'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:21:27'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:21:38'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:21:48'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:21:59'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:22:07'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:22:19'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:22:27'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:22:38'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:22:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:22:58'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:23:09'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:23:17'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:23:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:23:38'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:23:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:23:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:24:09'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:24:17'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:24:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:24:38'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:24:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:24:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:25:09'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:25:17'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:25:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:25:39'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:25:46'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:26:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:26:18'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:26:29'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:26:38'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:26:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:26:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:27:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:27:18'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:27:29'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:27:37'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:27:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:27:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:28:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:28:18'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:28:29'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:28:37'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:28:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:28:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:29:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:29:18'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:29:29'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:29:37'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:29:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:29:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:30:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:30:19'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:30:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:30:39'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:30:47'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:30:58'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:31:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:31:19'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:31:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:31:39'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:31:47'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:31:58'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:32:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:32:19'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:32:27'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:32:39'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:32:39'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:32:59'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:33:07'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:33:19'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:33:27'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:33:38'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:33:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:33:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:34:09'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:34:17'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:34:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:34:38'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:34:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:34:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:35:09'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:35:17'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:35:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:35:39'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:35:48'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:35:59'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:36:07'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:36:18'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:36:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:36:39'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:36:47'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:36:59'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:37:07'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:37:29'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:37:37'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:37:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:37:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:38:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:38:19'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:38:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:38:39'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:38:47'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:38:58'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:39:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:39:19'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:39:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:39:39'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:39:47'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:39:58'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:40:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:40:19'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:40:27'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:40:39'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:40:47'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:40:55'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:41:29'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:41:37'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:41:48'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:41:58'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:42:09'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:42:17'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:42:29'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:42:37'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:42:48'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:42:59'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:43:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:43:19'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:43:27'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:43:38'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:43:48'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:43:59'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:44:07'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:44:19'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:44:27'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:44:38'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:44:48'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:44:59'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:45:07'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:45:19'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:45:27'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:45:38'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:45:48'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:45:59'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:46:07'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:46:19'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:46:27'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:46:38'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:46:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:46:58'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:47:09'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:47:17'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:47:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:47:38'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:47:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:47:58'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:48:09'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:48:17'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:48:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:48:38'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:48:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:48:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:49:09'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:49:17'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:49:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:49:38'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:49:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:49:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:50:09'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:50:17'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:50:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:50:39'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:50:43'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:50:59'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:51:07'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:51:19'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:51:27'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:51:38'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:51:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:51:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:52:09'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:52:17'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:52:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:52:38'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:52:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:52:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:53:09'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:53:17'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:53:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:53:38'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:53:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:53:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:54:09'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:54:17'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:54:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:54:39'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:54:47'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:54:59'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:55:07'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:55:18'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:55:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:55:39'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:55:47'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:55:59'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:56:07'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:56:18'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:56:29'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:56:37'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:56:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:56:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:57:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:57:18'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:57:29'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:57:37'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:57:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:57:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:58:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:58:18'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:58:29'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:58:37'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:58:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:58:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:59:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:59:19'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:59:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:59:39'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:59:47'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 10:59:58'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:00:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:00:19'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:00:27'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:00:39'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:00:47'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:00:58'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:01:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:01:19'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:01:27'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:01:39'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:01:47'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:01:58'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:02:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:02:19'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:02:27'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:02:39'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:02:47'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:02:58'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:03:09'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:03:18'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:03:29'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:03:37'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:03:48'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:03:58'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:04:09'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:04:17'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:04:29'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:04:37'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:04:48'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:04:58'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:05:09'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:05:17'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:05:29'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:05:37'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:05:48'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:05:58'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:06:09'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:06:17'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:06:29'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:06:37'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:06:48'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:06:59'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:07:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:07:19'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:07:27'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:07:38'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:07:48'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:07:59'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:08:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:08:19'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:08:27'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:08:38'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:08:48'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:08:59'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:09:07'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:09:19'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:09:27'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:09:38'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:09:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:09:58'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:10:09'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:10:17'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:10:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:10:38'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:10:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:10:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:11:09'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:11:17'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:11:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:11:38'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:11:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:11:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:12:09'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:12:17'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:12:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:12:38'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:12:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:12:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:13:09'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:13:17'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:13:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:13:38'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:13:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:13:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:14:09'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:14:17'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:14:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:14:39'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:14:48'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:14:59'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:15:07'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:15:18'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:15:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:15:39'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:15:47'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:15:59'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:16:07'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:16:18'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:16:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:16:39'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:16:47'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:16:59'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:17:07'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:17:18'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:17:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:17:39'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:17:47'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:17:59'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:18:07'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:18:18'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:18:29'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:18:38'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:18:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:18:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:19:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:19:18'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:19:29'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:19:37'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:19:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:19:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:20:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:20:18'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:20:29'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:20:37'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:20:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:20:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:21:09'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:21:17'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:21:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:21:38'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:21:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:21:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:22:09'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:22:17'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:22:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:22:39'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:22:48'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:22:59'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:23:07'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:23:18'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:23:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:23:39'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:23:47'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:23:59'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:24:07'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:24:18'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:24:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:24:39'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:24:47'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:24:59'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:25:07'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:25:18'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:25:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:25:39'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:25:47'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:25:59'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:26:07'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:26:18'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:26:29'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:26:38'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:26:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:26:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:27:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:27:18'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:27:29'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:27:37'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:27:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:27:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:28:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:28:18'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:28:29'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:28:37'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:28:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:28:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:29:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:29:18'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:29:29'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:29:37'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:29:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:29:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:30:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:30:18'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:30:29'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:30:37'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:30:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:30:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:31:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:31:19'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:31:27'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:31:39'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:31:47'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:31:58'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:32:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:32:19'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:32:27'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:32:39'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:32:47'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:32:58'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:33:09'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:33:18'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:33:29'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:33:37'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:33:48'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:33:58'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:34:09'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:34:18'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:34:29'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:34:37'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:34:48'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:34:58'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:35:09'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:35:17'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:35:29'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:35:37'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:35:48'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:35:58'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:36:09'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:36:17'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:36:29'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:36:37'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:36:48'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:36:59'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:37:07'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:37:19'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:37:27'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:37:38'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:37:48'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:37:59'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:38:07'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:38:19'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:38:27'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:38:38'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:38:48'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:38:59'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:39:07'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:39:19'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:39:27'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:39:38'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:39:48'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:39:59'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:40:07'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:40:19'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:40:27'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:40:38'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:40:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:40:58'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:41:09'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:41:17'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:41:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:41:38'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:41:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:41:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:42:09'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:42:17'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:42:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:42:38'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:42:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:42:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:43:09'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:43:17'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:43:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:43:38'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:43:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:43:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:44:09'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:44:17'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:44:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:44:39'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:44:47'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:44:59'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:45:07'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:45:18'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:45:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:45:39'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:45:47'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:45:59'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:46:07'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:46:18'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:46:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:46:39'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:46:47'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:46:59'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:47:07'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:47:18'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:47:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:47:39'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:47:47'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:47:59'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:48:07'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:48:18'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:48:29'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:48:38'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:48:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:48:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:49:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:49:18'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:49:29'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:49:37'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:49:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:49:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:50:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:50:18'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:50:29'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:50:37'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:50:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:50:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:51:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:51:18'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:51:29'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:51:37'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:51:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:51:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:52:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:52:19'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:52:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:52:39'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:52:47'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:52:58'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:53:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:53:19'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:53:27'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:53:39'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:53:47'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:53:58'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:54:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:54:19'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:54:27'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:54:39'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:54:47'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:54:58'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:55:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:55:19'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:55:27'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:55:39'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:55:47'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:55:58'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:56:09'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:56:18'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:56:29'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:56:37'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:56:48'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:56:58'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:57:09'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:57:17'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:57:29'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:57:37'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:57:48'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:57:52'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:58:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:58:18'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:58:29'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:58:37'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:58:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:58:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:59:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:59:18'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:59:29'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:59:37'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:59:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 11:59:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 12:00:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 12:00:18'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 12:00:29'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 12:00:37'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 12:00:49'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 12:00:57'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 12:01:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 12:01:19'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 12:01:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 12:01:39'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 12:01:47'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 12:01:58'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 12:02:08'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 12:02:19'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 12:02:27'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 12:02:39'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 12:02:47'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 12:02:53'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 12:03:19'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 12:03:28'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 12:03:39'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 12:03:47'), 'LS002', 99.6, 100.0)
+(Timestamp('2022-05-02 12:03:58'), 'LS002', 99.6, 100.0)

+ 1 - 0
USER/SPF/alibaba/05BatDiag/CBMSBatDiag.py

@@ -602,6 +602,7 @@ class BatDiag:
         healthadvice=''
 
         df_fault_now=self.df_diag_ram[self.df_diag_ram['time_sp']=='0000-00-00 00:00:00']
+        df_fault_now.drop(df_fault_now.index[df_fault_now['falut_code']==100],inplace=True)
         df_fault_now.reset_index(inplace=True,drop=True)
         fault_num=len(df_fault_now)
         fltlv=df_fault_now['faultlv']

+ 10 - 5
USER/SPF/alibaba/06BatSafetyAlarm/CBMSSafetyAlarm.py

@@ -83,8 +83,6 @@ class SafetyAlarm:
         if not self.df_bms.empty:
             for i in range(len(self.df_bms)):
                 if i<1:
-                    packcrnt1=self.packcrnt[i]
-                    packcrnt2=packcrnt1
                     if not self.df_ram_bms.empty:
                         temp1=np.array(self.df_ram_bms.iloc[-1]['celltemp'])
                         temp2=self._celltemp_get(i)
@@ -97,6 +95,8 @@ class SafetyAlarm:
                         packvolt1=self.df_ram_bms.iloc[-1]['packvolt']
                         packvolt2=self.packvolt[i]
                         delta_soc=abs(self.df_ram_bms.iloc[-1]['packsoc']-self.packsoc[i])
+                        packcrnt1=self.df_ram_bms.iloc[-1]['packcrnt']
+                        packcrnt2=self.packcrnt[i]
                         if len(temp1)==len(temp2):
                                 pass
                         else:
@@ -118,6 +118,8 @@ class SafetyAlarm:
                         packvolt1=self.packvolt[i]
                         packvolt2=packvolt1
                         delta_soc=0
+                        packcrnt1=self.packcrnt[i]
+                        packcrnt2=packcrnt1
                 else:
                     temp1=self._celltemp_get(i-1)
                     temp2=self._celltemp_get(i)
@@ -172,7 +174,7 @@ class SafetyAlarm:
                 cellvoltfall1=cellvolt1[cellvolt1_valid & cellvolt2_valid]
                 cellvoltfall2=cellvolt2[cellvolt1_valid & cellvolt2_valid]
                 
-                if len(cellvoltfall1)<self.CellVoltNums/2 and len(cellvoltfall2)<self.CellVoltNums/2:
+                if len(cellvoltfall1)<self.CellVoltNums-5 and len(cellvoltfall2)<self.CellVoltNums-5:
                     cellvolttime=cellvolttime+(time2-time1).total_seconds()
                     if cellvolttime>2:
                         cellvoltvalid=0
@@ -219,7 +221,7 @@ class SafetyAlarm:
                     pass
 
             #热失控故障判断........................................................................................................................
-            self.df_ram_bms.loc[0]=[self.bmstime[0], self.sn, packvolt2, list(self._cellvolt_get(i)), list(self._celltemp_get(i)), self.packsoc[i]]
+            self.df_ram_bms.loc[0]=[time2, self.sn, packvolt2, list(self._cellvolt_get(i)), list(self._celltemp_get(i)), self.packsoc[i],packcrnt2]
             self.df_ram_alarm=pd.DataFrame(columns=['sn','time','safetywarning1','safetywarning2'])
             trwtemp=max(celltemprise,celltemphigh)
             trwcellvolt=cellvoltfall
@@ -240,8 +242,11 @@ class SafetyAlarm:
                 if trwcellvolt>0.5 and np.sum(trw_array)>1.5 and np.sum(trw_array>0.5)>1.5:
                     safetywarning1=3                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     
                     self.df_ram_alarm.loc[0]=[self.sn,time2,safetywarning1,safetywarning2]
-                else:
+                elif (trwcellvolt<0.5 or np.sum(trw_array>0.5)<1.5) and celltempvalid==1 and cellvoltvalid==1:
                     safetywarning1=0
+                    self.df_ram_alarm.loc[0]=[self.sn,time2,safetywarning1,safetywarning2]
+                else:
+                    pass
             return self.df_diag_ram, self.df_ram_bms, self.df_ram_alarm
 
         else:

+ 1 - 1
USER/SPF/alibaba/06BatSafetyAlarm/main.py

@@ -106,7 +106,7 @@ if __name__ == "__main__":
     mylog.logcfg()
     
     #参数初始化
-    df_bms_ram=pd.DataFrame(columns=['time', 'sn', 'packvolt', 'cellvolt', 'celltemp', 'packsoc'])
+    df_bms_ram=pd.DataFrame(columns=['time', 'sn', 'packvolt', 'cellvolt', 'celltemp', 'packsoc', 'packcrnt'])
     df_alarm_ram=pd.DataFrame(columns=['sn','time','safetywarning1','safetywarning2'])
 
     #定时任务.......................................................................................................................................................................

+ 3 - 3
USER/SPF/alibaba/07BatSafetyWarning/BatParam.py

@@ -149,9 +149,9 @@ class BatParam:
 
             self.FullChrgSoc=100
             self.PeakSoc=62.5
-            self.PeakVoltLowLmt=3.35
-            self.PeakVoltUpLmt=3.4
-            self.PeakCellVolt=[3.384,3.385,3.386,3.387,3.388]
+            self.PeakVoltLowLmt=3.37
+            self.PeakVoltUpLmt=3.41
+            self.PeakCellVolt=[3.389,3.390,3.391,3.392,3.393]
             self.PackCrntDec=1
             self.BalCurrent=0.015
 

+ 156 - 22
USER/SPF/alibaba/07BatSafetyWarning/CBMSBatInterShort.py

@@ -108,6 +108,16 @@ class BatInterShort():
         cellvolt = np.array(self.df_bms.loc[num,self.cellvolt_name])
         return cellvolt
 
+    #获取单个电压值.................................................................................................
+    def _singlevolt_get(self,num,series,mode):  #mode==1取当前行单体电压值,mode==2取某个单体所有电压值
+        s=str(series)
+        if mode==1:
+            singlevolt=self.df_bms.loc[num,'CellVolt' + s]
+            return singlevolt
+        else:
+            singlevolt=self.df_bms['CellVolt' + s]
+            return singlevolt
+
     #获取当前行所有soc差...........................................................................................
     def _celldeltsoc_get(self,cellvolt_list,dict_baltime,capacity):
         cellsoc=[]
@@ -125,6 +135,99 @@ class BatInterShort():
         for j in range(len(cellsoc)):   #计算每个电芯的soc差
             celldeltsoc.append(cellsoc[j]-cellsocmean)
         return np.array(celldeltsoc), np.array(cellsoc)
+    
+    #寻找DVDQ的峰值点,并返回..........................................................................................................................
+    def _dvdq_peak(self, time, soc, cellvolt, packcrnt):
+        cellvolt = self._np_move_avg(cellvolt, 5, mode="same")
+        Soc = 0
+        Ah = 0
+        Ah_total=0
+        Volt = cellvolt[0]
+        DV_Volt = []
+        DQ_Ah = []
+        DVDQ = []
+        time1 = []
+        soc1 = []
+        soc2 = []
+        xvolt=[]
+
+        for m in range(1, len(time)):
+            Step = (time[m] - time[m - 1]).total_seconds()
+            Soc = Soc - packcrnt[m] * Step * 100 / (3600 * float(self.param.Capacity))
+            Ah = Ah - packcrnt[m] * Step / 3600
+            if (cellvolt[m]-Volt)>0.0012 and Ah>0.01:
+                Ah_total=Ah_total+Ah
+                DQ_Ah.append(Ah_total)
+                DV_Volt.append(cellvolt[m]-Volt)
+                DVDQ.append((DV_Volt[-1])/Ah)
+                xvolt.append(cellvolt[m])
+                Volt=cellvolt[m]
+                Ah = 0
+                soc1.append(Soc)
+                time1.append(time[m])
+                soc2.append(soc[m])
+
+        #切片,去除前后10min的数据
+        df_Data1 = pd.DataFrame({'time': time1,
+                                'SOC': soc2,
+                                'DVDQ': DVDQ,
+                                'AhSoc': soc1,
+                                'DQ_Ah':DQ_Ah,
+                                'DV_Volt':DV_Volt,
+                                'XVOLT':xvolt})
+        start_time=df_Data1.loc[0,'time']
+        start_time=start_time+datetime.timedelta(seconds=900)
+        end_time=df_Data1.loc[len(time1)-1,'time']
+        end_time=end_time-datetime.timedelta(seconds=1200)
+        if soc2[0]<36:
+            df_Data1=df_Data1[(df_Data1['SOC']>40) & (df_Data1['SOC']<80)]
+        else:
+            df_Data1=df_Data1[(df_Data1['time']>start_time) & (df_Data1['SOC']<80)]
+        df_Data1=df_Data1[(df_Data1['XVOLT']>self.param.PeakVoltLowLmt) & (df_Data1['XVOLT']<self.param.PeakVoltUpLmt)]
+
+        # print(packcrnt[int(len(time)/2)], min(self.celltemp))
+        # ax1 = plt.subplot(3, 1, 1)
+        # plt.plot(df_Data1['SOC'],df_Data1['DQ_Ah'],'g*-')
+        # plt.xlabel('SOC/%')
+        # plt.ylabel('DQ_Ah')
+        # plt.legend()
+        # ax1 = plt.subplot(3, 1, 2)
+        # plt.plot(df_Data1['SOC'],df_Data1['XVOLT'],'y*-')
+        # plt.xlabel('SOC/%')
+        # plt.ylabel('Volt/V')
+        # plt.legend()
+        # ax1 = plt.subplot(3, 1, 3)
+        # plt.plot(df_Data1['SOC'], df_Data1['DVDQ'], 'r*-')
+        # plt.xlabel('SOC/%')
+        # plt.ylabel('DV/DQ')
+        # plt.legend()
+        # # plt.show()
+
+        if len(df_Data1)>2:   
+            PeakIndex = df_Data1['DVDQ'].idxmax()
+            df_Data2 = df_Data1[(df_Data1['SOC'] > (df_Data1['SOC'][PeakIndex] - 0.5)) & (df_Data1['SOC'] < (df_Data1['SOC'][PeakIndex] + 0.5))]
+            if len(df_Data2) > 1 and min(df_Data1['SOC'])+0.5<df_Data1['SOC'][PeakIndex]<max(df_Data1['SOC'])-1:
+                return df_Data1['DQ_Ah'][PeakIndex]
+            
+            else:
+                if min(df_Data1['SOC'])+0.5<df_Data1['SOC'][PeakIndex]<max(df_Data1['SOC'])-1:
+                    df_Data1=df_Data1.drop([PeakIndex])
+                elif df_Data1['SOC'][PeakIndex]>max(df_Data1['SOC'])-1:
+                    df_Data1=df_Data1[df_Data1['SOC']<(df_Data1['SOC'][PeakIndex]-1)]
+                else:
+                    df_Data1=df_Data1[df_Data1['SOC']>(df_Data1['SOC'][PeakIndex]+0.5)]
+
+                if len(df_Data1)>2:
+                    PeakIndex = df_Data1['DVDQ'].idxmax()
+                    df_Data2 = df_Data1[(df_Data1['SOC'] > (df_Data1['SOC'][PeakIndex] - 0.5)) & (df_Data1['SOC'] < (df_Data1['SOC'][PeakIndex] + 0.5))]
+                    if len(df_Data2) > 1 and min(df_Data1['SOC'])+0.5<df_Data1['SOC'][PeakIndex]<max(df_Data1['SOC'])-1: #
+                        return df_Data1['DQ_Ah'][PeakIndex]
+                    else:
+                        return 0
+                else:
+                    return 0
+        else:
+            return 0
 
     #获取所有电芯的As差
     def _cellDeltAs_get(self,chrg_st,chrg_end,dict_baltime):
@@ -629,7 +732,7 @@ class BatInterShort():
                 if self.packcrnt[i]<=-1 and self.packcrnt[i+1]<=-1 and self.packcrnt[i-1]<=-1:
                     if self.bms_soc[i]<40:
                         cellvolt_now=self._cellvolt_get(i)
-                        if min(cellvolt_now)<self.param.CellFullChrgVolt-0.17:
+                        if min(cellvolt_now)<self.param.CellFullChrgVolt-0.18:
                             charging=1
                             chrg_start=i
                         else:
@@ -642,35 +745,66 @@ class BatInterShort():
                 if (self.bmstime[i+1]-self.bmstime[i]).total_seconds()>180 or (self.packcrnt[i]>-0.1 and self.packcrnt[i-1]>-0.1) or (self.packcrnt[i]<-self.param.Capacity and self.packcrnt[i+1]<-self.param.Capacity):  #如果充电过程中时间间隔>180s,则舍弃该次充电
                     charging=0
                     continue
-                elif min(cellvolt_now)>self.param.CellFullChrgVolt-0.1:   
+                elif min(cellvolt_now)>self.param.CellFullChrgVolt-0.15:   
                     self._celltemp_weight(i)
-                    if i-chrg_start>10 and self.celltemp>20:
+                    if i-chrg_start>10 and self.celltemp>15:
                         chrg_end=i+1
                         charging=0
 
                         #计算漏电流值...................................................................
                         if firsttime2==1:
+                            firsttime2=0
                             dict_baltime={}
-                            deltAs_last2=self._cellDeltAs_get(chrg_start,chrg_end,dict_baltime)
-                            time_last2=self.bmstime[chrg_end]
-                            df_ram_last2.loc[0]=[self.sn,time_last2,deltAs_last2]    #更新RAM信息
+                            peaksoc_list=[]
+                            time = list(self.bmstime[chrg_start:chrg_end])
+                            packcrnt = list(self.packcrnt[chrg_start:chrg_end])
+                            soc = list(self.bms_soc[chrg_start:chrg_end])
+                            for j in range(1, self.param.CellVoltNums + 1):
+                                cellvolt = self._singlevolt_get(i,j,2)  #取单体电压j的所有电压值
+                                cellvolt = list(cellvolt[chrg_start:chrg_end])
+                                peaksoc = self._dvdq_peak(time, soc, cellvolt, packcrnt)
+                                if peaksoc>1:
+                                    peaksoc_list.append(peaksoc)
+                                else:
+                                    break
+                            if len(peaksoc_list)==self.param.CellVoltNums:
+                                cellsocmean=(sum(peaksoc_list)-max(peaksoc_list)-min(peaksoc_list))/(len(peaksoc_list)-2)
+                                celldeltsoc=[x-cellsocmean for x in peaksoc_list]   #计算每个电芯的soc差
+                                deltAs_last2=np.array(celldeltsoc)
+                                time_last2=self.bmstime[chrg_end]
+                                df_ram_last2.loc[0]=[self.sn,time_last2,deltAs_last2]    #更新RAM信息
                         else:
-                            dict_baltime=self._bal_time(dict_bal2)   #获取每个电芯的均衡时间
-                            deltAs_now2=self._cellDeltAs_get(chrg_start,chrg_end,dict_baltime)  #获取每个电芯的As差
-                            time_now2=self.bmstime[chrg_end]
-                            df_ram_last2.loc[0]=[self.sn,time_now2,deltAs_now2]    #更新RAM信息
-
-                            list_sub2=deltAs_now2-deltAs_last2
-                            list_pud2=-1000/(time_now2-time_last2).total_seconds()
-                            leak_current2=list_sub2*list_pud2
-                            # leak_current=np.array(leak_current)
-                            leak_current2=np.round(leak_current2,3)
-                            leak_current2=list(leak_current2)
-
-                            df_res.loc[len(df_res)]=[time_last2,time_now2,self.sn,3,str(leak_current2),str(dict_baltime)]  #计算结果存入Dataframe
-                            deltAs_last2=deltAs_now2
-                            time_last2=time_now2
-                            dict_bal2={}
+                            dict_baltime={}
+                            peaksoc_list=[]
+                            time = list(self.bmstime[chrg_start:chrg_end])
+                            packcrnt = list(self.packcrnt[chrg_start:chrg_end])
+                            soc = list(self.bms_soc[chrg_start:chrg_end])
+                            for j in range(1, self.param.CellVoltNums + 1):
+                                cellvolt = self._singlevolt_get(i,j,2)  #取单体电压j的所有电压值
+                                cellvolt = list(cellvolt[chrg_start:chrg_end])
+                                peaksoc = self._dvdq_peak(time, soc, cellvolt, packcrnt)
+                                if peaksoc>1:
+                                    peaksoc_list.append(peaksoc)
+                                else:
+                                    break
+                            
+                            if len(peaksoc_list)==self.param.CellVoltNums:
+                                cellsocmean=(sum(peaksoc_list)-max(peaksoc_list)-min(peaksoc_list))/(len(peaksoc_list)-2)
+                                celldeltsoc=[x-cellsocmean for x in peaksoc_list]   #计算每个电芯的soc差
+                                deltAs_now2=np.array(celldeltsoc)
+                                time_now2=self.bmstime[chrg_end]
+
+                                list_sub2=deltAs_now2-deltAs_last2
+                                list_pud2=(3600*1000)/(time_now2-time_last2).total_seconds()
+                                leak_current2=list_sub2*list_pud2
+                                leak_current2=np.round(leak_current2,3)
+                                leak_current2=list(leak_current2)
+
+                                df_res.loc[len(df_res)]=[time_last2,time_now2,self.sn,3,str(leak_current2),str(dict_baltime)]  #计算结果存入Dataframe
+                                deltAs_last2=deltAs_now2
+                                time_last2=time_now2
+                                dict_bal2={}
+                                df_ram_last2.loc[0]=[self.sn,time_last2,deltAs_last2]    #更新RAM信息
 
                     else:
                         charging=0

+ 5 - 4
USER/SPF/alibaba/07BatSafetyWarning/CBMSBatUniform.py

@@ -2,6 +2,7 @@ import pandas as pd
 import numpy as np
 import datetime
 import BatParam
+# import matplotlib.pyplot as plt
 
 class BatUniform():
     def __init__(self,sn,celltype,df_bms,df_uniform,df_last3,df_lfp1):  #参数初始化
@@ -106,7 +107,7 @@ class BatUniform():
             Step = (time[m] - time[m - 1]).total_seconds()
             Soc = Soc - packcrnt[m] * Step * 100 / (3600 * self.param.Capacity)
             Ah = Ah - packcrnt[m] * Step / 3600
-            if (cellvolt[m]-Volt)>0.0019 and Ah>0:
+            if (cellvolt[m]-Volt)>0.0015 and Ah>0:
                 DQ_Ah.append(Ah)
                 DV_Volt.append(cellvolt[m]-Volt)
                 DVDQ.append((DV_Volt[-1])/Ah)
@@ -151,7 +152,7 @@ class BatUniform():
         # plt.xlabel('SOC/%')
         # plt.ylabel('DV/DQ')
         # plt.legend()
-        # # plt.show()
+        # plt.show()
 
         if len(df_Data1)>2:     #寻找峰值点,且峰值点个数>2
             PeakIndex = df_Data1['DVDQ'].idxmax()
@@ -444,9 +445,9 @@ class BatUniform():
                     charging=0
                     continue
                 elif self.packcrnt[i]<=-1 and self.packcrnt[i-1]<=-1 and  self.packcrnt[i+1]>-1:  #判断电流波动时刻
-                    cellvolt_now=self._cellvolt_get(i+1)
+                    cellvolt_now=self._cellvolt_get(i)
                     if max(cellvolt_now)>self.param.CellFullChrgVolt-0.1:   #电压>满充电压
-                        chrg_end.append(i+1)
+                        chrg_end.append(i)
                         charging=0
                         continue
                     else:

BIN
USER/SPF/alibaba/07BatSafetyWarning/LS002内短路.xlsx


BIN
USER/SPF/alibaba/07BatSafetyWarning/__pycache__/BatParam.cpython-38.pyc


BIN
USER/SPF/alibaba/07BatSafetyWarning/__pycache__/CBMSBatInterShort.cpython-38.pyc


BIN
USER/SPF/alibaba/07BatSafetyWarning/__pycache__/CBMSBatUniform.cpython-38.pyc


+ 5 - 4
USER/SPF/alibaba/07BatSafetyWarning/main_test.py

@@ -28,7 +28,7 @@ def saftywarning_cal():
     mylog=log.Mylog('log_warning.txt','error')
     mylog.logcfg()
 
-    start_time=now_time-datetime.timedelta(hours=6)
+    start_time=now_time-datetime.timedelta(hours=72)
     start_time1=now_time-datetime.timedelta(days=7)
     start_time2=now_time-datetime.timedelta(days=3)
     start_time3=now_time-datetime.timedelta(days=1)
@@ -122,8 +122,9 @@ def saftywarning_cal():
                 BatShort=CBMSBatInterShort.BatInterShort(sn,celltype,df_bms,df_soh,df_warning_ram_sn,df_warning_ram_sn1,df_warning_ram_sn2,df_warning_ram_sn3,df_lfp_ram_sn)
                 df_short_res, df_ram_res, df_ram_res1, df_ram_res2, df_ram_res3, df_ram_res4=BatShort.intershort() 
                 if not df_short_res.empty:
-                    with open(r'D:\01WorkSpace\python\data_analyze_platform\USER\SPF\alibaba\07BatSafetyWarning\内短路.txt','a') as file:
-                        file.write(str(df_short_res)+'\n')
+                    df_short_res.to_excel(r'D:\01WorkSpace\python\data_analyze_platform\USER\SPF\alibaba\07BatSafetyWarning\\'+sn+'内短路.xlsx')
+                    # with open(r'D:\01WorkSpace\python\data_analyze_platform\USER\SPF\alibaba\07BatSafetyWarning\内短路.txt','a') as file:
+                    #     file.write(str(df_short_res)+'\n')
                 
                 #静置电压排名..................................................................................................................................................
                 BatUniform=CBMSBatUniform.BatUniform(sn,celltype,df_bms,df_uniform,df_ram_res3,df_lfp_ram_sn1)
@@ -230,7 +231,7 @@ if __name__ == "__main__":
     df_lfp_ram=pd.DataFrame()
     df_lfp_ram1=pd.DataFrame()
 
-    now_time=datetime.datetime.strptime('2022-4-26 18:00:00','%Y-%m-%d %H:%M:%S')
+    now_time=datetime.datetime.strptime('2022-4-29 18:00:00','%Y-%m-%d %H:%M:%S')
     df_data= pd.read_excel(r'D:\01WorkSpace\项目\Alibaba\data\原始数据_2022-01-10_2022-02-10\力神_LS002.xlsx')
     df_data['time']=pd.to_datetime(df_data['time'], format='%Y-%m-%d %H:%M:%S')
 

+ 2 - 0
USER/SPF/alibaba/07BatSafetyWarning/内短路.txt

@@ -8,3 +8,5 @@
 0 2022-04-27 10:03:46 2022-04-28 11:47:34  LS002      2  [-2.073, -1.778, 2.352, -1.631, -0.45, -1.336,...      {}
               time_st             time_sp     sn method                                      short_current baltime
 0 2022-04-27 13:00:44 2022-04-28 14:47:20  LS002      3  [5.411, -10.122, 1.269, -2.334, -7.758, 2.321,...      {}
+              time_st             time_sp     sn method                                      short_current baltime
+0 2022-04-27 10:03:46 2022-04-28 11:47:34  LS002      2  [-2.073, -1.778, 2.352, -1.631, -0.45, -1.336,...      {}

+ 29 - 0
USER/SPF/alibaba/07BatSafetyWarning/电压排名.txt

@@ -18,3 +18,32 @@
                  time     sn  cellsoc_diff cellvolt_diff cellmin_num cellmax_num                                      cellvolt_rank
 0 2022-04-27 10:04:15  LS002           0.8            84          33          71  [39, 36, 42, 33, 69, 25, 31, 27, 46, 41, 51, 3...
 1 2022-04-27 11:38:36  LS002           1.5            53          33          71  [29, 30, 45, 35, 69, 26, 34, 32, 48, 37, 55, 3...
+                 time     sn  cellsoc_diff cellvolt_diff cellmin_num cellmax_num                                      cellvolt_rank
+0 2022-04-27 10:04:15  LS002           0.8            84          33          71  [39, 36, 42, 33, 69, 25, 31, 27, 46, 41, 51, 3...
+1 2022-04-27 11:38:36  LS002           1.5            53          33          71  [29, 30, 45, 35, 69, 26, 34, 32, 48, 37, 55, 3...
+                 time     sn  cellsoc_diff cellvolt_diff cellmin_num cellmax_num                                      cellvolt_rank
+0 2022-04-27 10:04:15  LS002           0.8            84          33          71  [39, 36, 42, 33, 69, 25, 31, 27, 46, 41, 51, 3...
+1 2022-04-27 11:38:36  LS002           1.5            53          33          71  [29, 30, 45, 35, 69, 26, 34, 32, 48, 37, 55, 3...
+                 time     sn  cellsoc_diff cellvolt_diff cellmin_num cellmax_num                                      cellvolt_rank
+0 2022-04-27 10:04:15  LS002           0.8            84          33          71  [39, 36, 42, 33, 69, 25, 31, 27, 46, 41, 51, 3...
+1 2022-04-27 11:38:36  LS002           1.5            53          33          71  [29, 30, 45, 35, 69, 26, 34, 32, 48, 37, 55, 3...
+                 time     sn  cellsoc_diff cellvolt_diff cellmin_num cellmax_num                                      cellvolt_rank
+0 2022-04-27 10:04:15  LS002           0.8            84          33          71  [39, 36, 42, 33, 69, 25, 31, 27, 46, 41, 51, 3...
+1 2022-04-27 11:38:36  LS002           1.5            53          33          71  [29, 30, 45, 35, 69, 26, 34, 32, 48, 37, 55, 3...
+                 time     sn  cellsoc_diff cellvolt_diff cellmin_num cellmax_num                                      cellvolt_rank
+0 2022-04-27 10:04:15  LS002           0.8            84          33          71  [39, 36, 42, 33, 69, 25, 31, 27, 46, 41, 51, 3...
+1 2022-04-27 11:38:36  LS002           1.5            53          33          71  [29, 30, 45, 35, 69, 26, 34, 32, 48, 37, 55, 3...
+                 time     sn  cellsoc_diff cellvolt_diff cellmin_num cellmax_num                                      cellvolt_rank
+0 2022-04-28 11:47:36  LS002           1.5             5          21          50  [26, 39, 43, 37, 42, 34, 32, 31, 30, 29, 28, 4...
+                 time     sn  cellsoc_diff cellvolt_diff cellmin_num cellmax_num                                      cellvolt_rank
+0 2022-04-27 10:04:15  LS002           0.8            84          33          71  [39, 36, 42, 33, 69, 25, 31, 27, 46, 41, 51, 3...
+1 2022-04-27 11:38:36  LS002           1.5            53          33          71  [29, 30, 45, 35, 69, 26, 34, 32, 48, 37, 55, 3...
+3 2022-04-27 11:40:11  LS002           4.9             0          38          71  [26, 39, 43, 37, 42, 34, 32, 31, 30, 29, 28, 4...
+2 2022-04-28 11:47:36  LS002           1.5             5          21          50  [26, 39, 43, 37, 42, 34, 32, 31, 30, 29, 28, 4...
+4 2022-04-28 13:15:57  LS002           3.5             0          26          48  [26, 39, 43, 37, 42, 34, 32, 31, 30, 29, 28, 4...
+                 time     sn  cellsoc_diff cellvolt_diff cellmin_num cellmax_num                                      cellvolt_rank
+0 2022-04-27 10:04:15  LS002           0.8            84          33          71  [39, 36, 42, 33, 69, 25, 31, 27, 46, 41, 51, 3...
+1 2022-04-27 11:38:36  LS002           1.5            53          33          71  [29, 30, 45, 35, 69, 26, 34, 32, 48, 37, 55, 3...
+3 2022-04-27 11:40:11  LS002           4.9             0          38          71  [26, 39, 43, 37, 42, 34, 32, 31, 30, 29, 28, 4...
+2 2022-04-28 11:47:36  LS002           1.5             5          21          50  [26, 39, 43, 37, 42, 34, 32, 31, 30, 29, 28, 4...
+4 2022-04-28 13:15:57  LS002           3.5             0          26          48  [26, 39, 43, 37, 42, 34, 32, 31, 30, 29, 28, 4...

+ 103 - 0
USER/SPF/alibaba/07BatSafetyWarning/电压离群.txt

@@ -194,3 +194,106 @@
 3 2022-04-26 21:00:00  LS002  [1.05,-0.54,0.16,-0.31,-0.48,-0.51,0.24,-0.64,...  [0.0,-0.0,0.0,-0.0,-0.0,-0.0,0.0,-0.0,-0.0,-0....
 4 2022-04-26 22:00:00  LS002  [1.08,-0.48,-0.03,-0.19,-0.59,-0.55,0.12,-0.65...  [0.0,-0.0,-0.0,-0.0,-0.0,-0.0,0.0,-0.0,-0.0,0....
 5 2022-04-26 23:00:00  LS002  [1.18,-0.35,-0.18,-0.08,-0.66,-0.56,0.06,-0.67...  [0.0,-0.0,-0.0,-0.0,-0.0,-0.0,0.0,-0.0,-0.0,0....
+                 time     sn                                          VolOl_Uni                                        VolChng_Uni
+0 2022-04-26 18:00:00  LS002  [1.05,-0.68,-0.13,-0.15,0.3,-0.69,0.03,-0.62,-...  [0.0,-0.0,-0.0,-0.0,0.0,-0.0,0.0,-0.0,-0.0,0.0...
+1 2022-04-26 19:00:00  LS002  [1.03,-0.54,-0.21,-0.23,-0.47,-0.64,0.01,-0.73...  [0.0,-0.0,-0.0,-0.0,-0.0,-0.0,0.0,-0.0,-0.0,0....
+2 2022-04-26 20:00:00  LS002  [1.05,-0.47,-0.16,-0.17,-0.5,-0.58,0.06,-0.72,...  [0.0,-0.0,-0.0,-0.0,-0.0,-0.0,0.0,-0.0,-0.0,0....
+3 2022-04-26 21:00:00  LS002  [1.05,-0.54,0.16,-0.31,-0.48,-0.51,0.24,-0.64,...  [0.0,-0.0,0.0,-0.0,-0.0,-0.0,0.0,-0.0,-0.0,-0....
+4 2022-04-26 22:00:00  LS002  [1.08,-0.48,-0.03,-0.19,-0.59,-0.55,0.12,-0.65...  [0.0,-0.0,-0.0,-0.0,-0.0,-0.0,0.0,-0.0,-0.0,0....
+5 2022-04-26 23:00:00  LS002  [1.18,-0.35,-0.18,-0.08,-0.66,-0.56,0.06,-0.67...  [0.0,-0.0,-0.0,-0.0,-0.0,-0.0,0.0,-0.0,-0.0,0....
+                 time     sn                                          VolOl_Uni                                        VolChng_Uni
+0 2022-04-27 12:00:00  LS002  [-1.6,0.47,0.03,0.19,0.52,0.4,-0.63,0.74,-0.39...  [-0.0,0.0,0.0,0.0,0.0,0.0,-0.0,0.0,-0.0,-0.0,-...
+1 2022-04-27 13:00:00  LS002  [0.94,-0.65,-0.96,-0.81,1.46,-1.07,-1.76,-1.18...  [0.0,-0.0,-0.0,-0.0,0.0,-0.0,-0.0,-0.0,-0.0,-0...
+2 2022-04-27 14:00:00  LS002  [0.65,-0.6,-0.07,-0.5,-0.34,-0.64,0.0,-0.79,-0...  [0.0,-0.0,-0.0,-0.0,-0.0,-0.0,0.0,-0.0,-0.0,0....
+3 2022-04-27 15:00:00  LS002  [0.89,-0.44,-0.28,-0.13,-0.33,-0.74,-0.02,-0.8...  [0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,0...
+4 2022-04-27 16:00:00  LS002  [0.88,-0.36,-0.34,0.01,-0.29,-0.65,-0.05,-0.89...  [0.0,-0.0,-0.0,0.0,-0.0,-0.0,-0.0,-0.0,-0.0,0....
+5 2022-04-27 17:00:00  LS002  [1.04,-0.53,0.14,-0.21,-0.37,-0.5,0.18,-0.66,-...  [0.0,-0.0,0.0,-0.0,-0.0,-0.0,0.0,-0.0,-0.0,-0....
+                 time     sn                                          VolOl_Uni                                        VolChng_Uni
+0 2022-04-26 18:00:00  LS002  [1.05,-0.68,-0.13,-0.15,0.3,-0.69,0.03,-0.62,-...  [0.0,-0.0,-0.0,-0.0,0.0,-0.0,0.0,-0.0,-0.0,0.0...
+1 2022-04-26 19:00:00  LS002  [1.03,-0.54,-0.21,-0.23,-0.47,-0.64,0.01,-0.73...  [0.0,-0.0,-0.0,-0.0,-0.0,-0.0,0.0,-0.0,-0.0,0....
+2 2022-04-26 20:00:00  LS002  [1.05,-0.47,-0.16,-0.17,-0.5,-0.58,0.06,-0.72,...  [0.0,-0.0,-0.0,-0.0,-0.0,-0.0,0.0,-0.0,-0.0,0....
+3 2022-04-26 21:00:00  LS002  [1.05,-0.54,0.16,-0.31,-0.48,-0.51,0.24,-0.64,...  [0.0,-0.0,0.0,-0.0,-0.0,-0.0,0.0,-0.0,-0.0,-0....
+4 2022-04-26 22:00:00  LS002  [1.08,-0.48,-0.03,-0.19,-0.59,-0.55,0.12,-0.65...  [0.0,-0.0,-0.0,-0.0,-0.0,-0.0,0.0,-0.0,-0.0,0....
+5 2022-04-26 23:00:00  LS002  [1.18,-0.35,-0.18,-0.08,-0.66,-0.56,0.06,-0.67...  [0.0,-0.0,-0.0,-0.0,-0.0,-0.0,0.0,-0.0,-0.0,0....
+                 time     sn                                          VolOl_Uni                                        VolChng_Uni
+0 2022-04-26 18:00:00  LS002  [1.05,-0.68,-0.13,-0.15,0.3,-0.69,0.03,-0.62,-...  [0.0,-0.0,-0.0,-0.0,0.0,-0.0,0.0,-0.0,-0.0,0.0...
+1 2022-04-26 19:00:00  LS002  [1.03,-0.54,-0.21,-0.23,-0.47,-0.64,0.01,-0.73...  [0.0,-0.0,-0.0,-0.0,-0.0,-0.0,0.0,-0.0,-0.0,0....
+2 2022-04-26 20:00:00  LS002  [1.05,-0.47,-0.16,-0.17,-0.5,-0.58,0.06,-0.72,...  [0.0,-0.0,-0.0,-0.0,-0.0,-0.0,0.0,-0.0,-0.0,0....
+3 2022-04-26 21:00:00  LS002  [1.05,-0.54,0.16,-0.31,-0.48,-0.51,0.24,-0.64,...  [0.0,-0.0,0.0,-0.0,-0.0,-0.0,0.0,-0.0,-0.0,-0....
+4 2022-04-26 22:00:00  LS002  [1.08,-0.48,-0.03,-0.19,-0.59,-0.55,0.12,-0.65...  [0.0,-0.0,-0.0,-0.0,-0.0,-0.0,0.0,-0.0,-0.0,0....
+5 2022-04-26 23:00:00  LS002  [1.18,-0.35,-0.18,-0.08,-0.66,-0.56,0.06,-0.67...  [0.0,-0.0,-0.0,-0.0,-0.0,-0.0,0.0,-0.0,-0.0,0....
+                 time     sn                                          VolOl_Uni                                        VolChng_Uni
+0 2022-04-26 18:00:00  LS002  [1.05,-0.68,-0.13,-0.15,0.3,-0.69,0.03,-0.62,-...  [0.0,-0.0,-0.0,-0.0,0.0,-0.0,0.0,-0.0,-0.0,0.0...
+1 2022-04-26 19:00:00  LS002  [1.03,-0.54,-0.21,-0.23,-0.47,-0.64,0.01,-0.73...  [0.0,-0.0,-0.0,-0.0,-0.0,-0.0,0.0,-0.0,-0.0,0....
+2 2022-04-26 20:00:00  LS002  [1.05,-0.47,-0.16,-0.17,-0.5,-0.58,0.06,-0.72,...  [0.0,-0.0,-0.0,-0.0,-0.0,-0.0,0.0,-0.0,-0.0,0....
+3 2022-04-26 21:00:00  LS002  [1.05,-0.54,0.16,-0.31,-0.48,-0.51,0.24,-0.64,...  [0.0,-0.0,0.0,-0.0,-0.0,-0.0,0.0,-0.0,-0.0,-0....
+4 2022-04-26 22:00:00  LS002  [1.08,-0.48,-0.03,-0.19,-0.59,-0.55,0.12,-0.65...  [0.0,-0.0,-0.0,-0.0,-0.0,-0.0,0.0,-0.0,-0.0,0....
+5 2022-04-26 23:00:00  LS002  [1.18,-0.35,-0.18,-0.08,-0.66,-0.56,0.06,-0.67...  [0.0,-0.0,-0.0,-0.0,-0.0,-0.0,0.0,-0.0,-0.0,0....
+                 time     sn                                          VolOl_Uni                                        VolChng_Uni
+0 2022-04-26 18:00:00  LS002  [1.05,-0.68,-0.13,-0.15,0.3,-0.69,0.03,-0.62,-...  [0.0,-0.0,-0.0,-0.0,0.0,-0.0,0.0,-0.0,-0.0,0.0...
+1 2022-04-26 19:00:00  LS002  [1.03,-0.54,-0.21,-0.23,-0.47,-0.64,0.01,-0.73...  [0.0,-0.0,-0.0,-0.0,-0.0,-0.0,0.0,-0.0,-0.0,0....
+2 2022-04-26 20:00:00  LS002  [1.05,-0.47,-0.16,-0.17,-0.5,-0.58,0.06,-0.72,...  [0.0,-0.0,-0.0,-0.0,-0.0,-0.0,0.0,-0.0,-0.0,0....
+3 2022-04-26 21:00:00  LS002  [1.05,-0.54,0.16,-0.31,-0.48,-0.51,0.24,-0.64,...  [0.0,-0.0,0.0,-0.0,-0.0,-0.0,0.0,-0.0,-0.0,-0....
+4 2022-04-26 22:00:00  LS002  [1.08,-0.48,-0.03,-0.19,-0.59,-0.55,0.12,-0.65...  [0.0,-0.0,-0.0,-0.0,-0.0,-0.0,0.0,-0.0,-0.0,0....
+5 2022-04-26 23:00:00  LS002  [1.18,-0.35,-0.18,-0.08,-0.66,-0.56,0.06,-0.67...  [0.0,-0.0,-0.0,-0.0,-0.0,-0.0,0.0,-0.0,-0.0,0....
+                 time     sn                                          VolOl_Uni                                        VolChng_Uni
+0 2022-04-27 12:00:00  LS002  [-1.6,0.47,0.03,0.19,0.52,0.4,-0.63,0.74,-0.39...  [-0.0,0.0,0.0,0.0,0.0,0.0,-0.0,0.0,-0.0,-0.0,-...
+1 2022-04-27 13:00:00  LS002  [0.94,-0.65,-0.96,-0.81,1.46,-1.07,-1.76,-1.18...  [0.0,-0.0,-0.0,-0.0,0.0,-0.0,-0.0,-0.0,-0.0,-0...
+2 2022-04-27 14:00:00  LS002  [0.65,-0.6,-0.07,-0.5,-0.34,-0.64,0.0,-0.79,-0...  [0.0,-0.0,-0.0,-0.0,-0.0,-0.0,0.0,-0.0,-0.0,0....
+3 2022-04-27 15:00:00  LS002  [0.89,-0.44,-0.28,-0.13,-0.33,-0.74,-0.02,-0.8...  [0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,0...
+4 2022-04-27 16:00:00  LS002  [0.88,-0.36,-0.34,0.01,-0.29,-0.65,-0.05,-0.89...  [0.0,-0.0,-0.0,0.0,-0.0,-0.0,-0.0,-0.0,-0.0,0....
+5 2022-04-27 17:00:00  LS002  [1.04,-0.53,0.14,-0.21,-0.37,-0.5,0.18,-0.66,-...  [0.0,-0.0,0.0,-0.0,-0.0,-0.0,0.0,-0.0,-0.0,-0....
+                  time     sn                                          VolOl_Uni                                        VolChng_Uni
+0  2022-04-26 18:00:00  LS002  [1.05,-0.68,-0.13,-0.15,0.3,-0.69,0.03,-0.62,-...  [0.0,-0.0,-0.0,-0.0,0.0,-0.0,0.0,-0.0,-0.0,0.0...
+1  2022-04-26 19:00:00  LS002  [1.03,-0.54,-0.21,-0.23,-0.47,-0.64,0.01,-0.73...  [0.0,-0.0,-0.0,-0.0,-0.0,-0.0,0.0,-0.0,-0.0,0....
+2  2022-04-26 20:00:00  LS002  [1.05,-0.47,-0.16,-0.17,-0.5,-0.58,0.06,-0.72,...  [0.0,-0.0,-0.0,-0.0,-0.0,-0.0,0.0,-0.0,-0.0,0....
+3  2022-04-26 21:00:00  LS002  [1.05,-0.54,0.16,-0.31,-0.48,-0.51,0.24,-0.64,...  [0.0,-0.0,0.0,-0.0,-0.0,-0.0,0.0,-0.0,-0.0,-0....
+4  2022-04-26 22:00:00  LS002  [1.08,-0.48,-0.03,-0.19,-0.59,-0.55,0.12,-0.65...  [0.0,-0.0,-0.0,-0.0,-0.0,-0.0,0.0,-0.0,-0.0,0....
+5  2022-04-26 23:00:00  LS002  [1.18,-0.35,-0.18,-0.08,-0.66,-0.56,0.06,-0.67...  [0.0,-0.0,-0.0,-0.0,-0.0,-0.0,0.0,-0.0,-0.0,0....
+6  2022-04-27 00:00:00  LS002  [1.25,-0.33,-0.2,-0.02,-0.68,-0.58,0.06,-0.67,...  [0.0,-0.0,-0.0,-0.0,-0.0,-0.0,0.0,-0.0,-0.0,0....
+7  2022-04-27 01:00:00  LS002  [1.33,-0.32,-0.21,-0.02,-0.62,-0.61,0.06,-0.68...  [0.0,-0.0,-0.0,-0.0,-0.0,-0.0,0.0,-0.0,-0.0,0....
+8  2022-04-27 02:00:00  LS002  [1.4,-0.38,-0.23,0.04,-0.44,-0.75,0.03,-0.67,-...  [0.0,-0.0,-0.0,0.0,-0.0,-0.0,0.0,-0.0,-0.0,0.0...
+9  2022-04-27 03:00:00  LS002  [1.4,-0.43,-0.25,0.04,-0.38,-0.79,-0.01,-0.63,...  [0.0,-0.0,-0.0,0.0,-0.0,-0.0,0.0,-0.0,-0.0,0.0...
+10 2022-04-27 11:00:00  LS002  [-1.83,0.13,0.35,0.2,0.79,0.61,-0.12,0.75,-0.1...  [-0.0,0.0,0.0,0.0,0.0,0.0,-0.0,0.0,-0.0,0.0,0....
+11 2022-04-27 12:00:00  LS002  [-1.6,0.47,0.03,0.19,0.52,0.4,-0.63,0.74,-0.39...  [-0.0,0.0,0.0,0.0,0.0,0.0,-0.0,0.0,-0.0,-0.0,-...
+12 2022-04-27 13:00:00  LS002  [0.94,-0.65,-0.96,-0.81,1.46,-1.07,-1.76,-1.18...  [0.0,-0.0,-0.0,-0.0,0.0,-0.0,-0.0,-0.0,-0.0,-0...
+13 2022-04-27 14:00:00  LS002  [0.65,-0.6,-0.07,-0.5,-0.34,-0.64,0.0,-0.79,-0...  [0.0,-0.0,-0.0,-0.0,-0.0,-0.0,0.0,-0.0,-0.0,0....
+14 2022-04-27 15:00:00  LS002  [0.89,-0.44,-0.28,-0.13,-0.33,-0.74,-0.02,-0.8...  [0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,0...
+15 2022-04-27 16:00:00  LS002  [0.88,-0.36,-0.34,0.01,-0.29,-0.65,-0.05,-0.89...  [0.0,-0.0,-0.0,0.0,-0.0,-0.0,-0.0,-0.0,-0.0,0....
+16 2022-04-27 17:00:00  LS002  [1.04,-0.53,0.14,-0.21,-0.37,-0.5,0.18,-0.66,-...  [0.0,-0.0,0.0,-0.0,-0.0,-0.0,0.0,-0.0,-0.0,-0....
+17 2022-04-27 18:00:00  LS002  [1.07,-0.44,-0.18,0.01,-0.54,-0.76,-0.12,-0.78...  [0.0,-0.0,-0.0,0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0...
+18 2022-04-27 19:00:00  LS002  [1.06,-0.28,-0.34,0.12,-0.58,-0.72,-0.15,-0.87...  [0.0,-0.0,-0.0,0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0...
+19 2022-04-27 20:00:00  LS002  [1.04,-0.11,-0.23,0.04,-0.72,-0.63,-0.04,-0.95...  [0.0,-0.0,-0.0,0.0,-0.0,-0.0,-0.0,-0.0,-0.0,0....
+20 2022-04-27 21:00:00  LS002  [1.05,-0.06,-0.13,-0.03,-0.65,-0.59,0.07,-1.04...  [0.0,-0.0,-0.0,-0.0,-0.0,-0.0,0.0,-0.0,-0.0,0....
+21 2022-04-27 22:00:00  LS002  [1.08,-0.32,-0.02,-0.15,-0.41,-0.67,0.08,-0.9,...  [0.0,-0.0,-0.0,-0.0,-0.0,-0.0,0.0,-0.0,-0.0,0....
+22 2022-04-28 11:00:00  LS002  [-1.0,-0.71,0.45,-0.46,0.71,-0.45,-0.19,-0.28,...  [-0.0,-0.0,0.0,-0.0,0.0,-0.0,-0.0,-0.0,-0.0,-0...
+23 2022-04-28 12:00:00  LS002  [-1.16,-0.77,0.58,-0.44,0.79,-0.38,-0.1,-0.21,...  [-0.0,-0.0,0.0,-0.0,0.0,-0.0,-0.0,-0.0,-0.0,-0...
+24 2022-04-28 13:00:00  LS002  [-1.92,0.0,0.28,0.16,0.61,0.42,-0.35,0.77,-0.1...  [-0.0,0.0,0.0,0.0,0.0,0.0,-0.0,0.0,-0.0,-0.0,-...
+25 2022-04-28 14:00:00  LS002  [0.87,-0.38,0.42,-0.34,-0.38,0.14,0.38,-0.08,0...  [0.0,-0.0,0.0,-0.0,-0.0,0.0,0.0,-0.0,0.0,0.0,0...
+26 2022-04-28 15:00:00  LS002  [-0.09,-0.86,-0.98,-0.79,2.27,-0.87,-1.24,-1.2...  [-0.0,-0.0,-0.0,-0.0,0.0,-0.0,-0.0,-0.0,-0.0,-...
+27 2022-04-28 16:00:00  LS002  [-0.46,-0.83,-0.85,-0.61,2.22,-0.67,-0.73,-1.0...  [-0.0,-0.0,-0.0,-0.0,0.0,-0.0,-0.0,-0.0,-0.0,-...
+28 2022-04-28 17:00:00  LS002  [-0.3,-0.61,-0.66,-0.3,2.08,-0.31,-0.3,-1.44,-...  [-0.0,-0.0,-0.0,-0.0,0.0,-0.0,-0.0,-0.0,-0.0,-...
+                  time     sn                                          VolOl_Uni                                        VolChng_Uni
+0  2022-04-27 00:00:00  LS002  [1.25,-0.33,-0.2,-0.02,-0.68,-0.58,0.06,-0.67,...  [0.0,-0.0,-0.0,-0.0,-0.0,-0.0,0.0,-0.0,-0.0,0....
+1  2022-04-27 01:00:00  LS002  [1.33,-0.32,-0.21,-0.02,-0.62,-0.61,0.06,-0.68...  [0.0,-0.0,-0.0,-0.0,-0.0,-0.0,0.0,-0.0,-0.0,0....
+2  2022-04-27 02:00:00  LS002  [1.4,-0.38,-0.23,0.04,-0.44,-0.75,0.03,-0.67,-...  [0.0,-0.0,-0.0,0.0,-0.0,-0.0,0.0,-0.0,-0.0,0.0...
+3  2022-04-27 03:00:00  LS002  [1.4,-0.43,-0.25,0.04,-0.38,-0.79,-0.01,-0.63,...  [0.0,-0.0,-0.0,0.0,-0.0,-0.0,0.0,-0.0,-0.0,0.0...
+4  2022-04-27 11:00:00  LS002  [-1.83,0.13,0.35,0.2,0.79,0.61,-0.12,0.75,-0.1...  [-0.0,0.0,0.0,0.0,0.0,0.0,-0.0,0.0,-0.0,0.0,0....
+5  2022-04-27 12:00:00  LS002  [-1.6,0.47,0.03,0.19,0.52,0.4,-0.63,0.74,-0.39...  [-0.0,0.0,0.0,0.0,0.0,0.0,-0.0,0.0,-0.0,-0.0,-...
+6  2022-04-27 13:00:00  LS002  [0.94,-0.65,-0.96,-0.81,1.46,-1.07,-1.76,-1.18...  [0.0,-0.0,-0.0,-0.0,0.0,-0.0,-0.0,-0.0,-0.0,-0...
+7  2022-04-27 14:00:00  LS002  [0.65,-0.6,-0.07,-0.5,-0.34,-0.64,0.0,-0.79,-0...  [0.0,-0.0,-0.0,-0.0,-0.0,-0.0,0.0,-0.0,-0.0,0....
+8  2022-04-27 15:00:00  LS002  [0.89,-0.44,-0.28,-0.13,-0.33,-0.74,-0.02,-0.8...  [0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,0...
+9  2022-04-27 16:00:00  LS002  [0.88,-0.36,-0.34,0.01,-0.29,-0.65,-0.05,-0.89...  [0.0,-0.0,-0.0,0.0,-0.0,-0.0,-0.0,-0.0,-0.0,0....
+10 2022-04-27 17:00:00  LS002  [1.04,-0.53,0.14,-0.21,-0.37,-0.5,0.18,-0.66,-...  [0.0,-0.0,0.0,-0.0,-0.0,-0.0,0.0,-0.0,-0.0,-0....
+11 2022-04-27 18:00:00  LS002  [1.07,-0.44,-0.18,0.01,-0.54,-0.76,-0.12,-0.78...  [0.0,-0.0,-0.0,0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0...
+12 2022-04-27 19:00:00  LS002  [1.06,-0.28,-0.34,0.12,-0.58,-0.72,-0.15,-0.87...  [0.0,-0.0,-0.0,0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0...
+13 2022-04-27 20:00:00  LS002  [1.04,-0.11,-0.23,0.04,-0.72,-0.63,-0.04,-0.95...  [0.0,-0.0,-0.0,0.0,-0.0,-0.0,-0.0,-0.0,-0.0,0....
+14 2022-04-27 21:00:00  LS002  [1.05,-0.06,-0.13,-0.03,-0.65,-0.59,0.07,-1.04...  [0.0,-0.0,-0.0,-0.0,-0.0,-0.0,0.0,-0.0,-0.0,0....
+15 2022-04-27 22:00:00  LS002  [1.08,-0.32,-0.02,-0.15,-0.41,-0.67,0.08,-0.9,...  [0.0,-0.0,-0.0,-0.0,-0.0,-0.0,0.0,-0.0,-0.0,0....
+16 2022-04-28 11:00:00  LS002  [-1.0,-0.71,0.45,-0.46,0.71,-0.45,-0.19,-0.28,...  [-0.0,-0.0,0.0,-0.0,0.0,-0.0,-0.0,-0.0,-0.0,-0...
+17 2022-04-28 12:00:00  LS002  [-1.16,-0.77,0.58,-0.44,0.79,-0.38,-0.1,-0.21,...  [-0.0,-0.0,0.0,-0.0,0.0,-0.0,-0.0,-0.0,-0.0,-0...
+18 2022-04-28 13:00:00  LS002  [-1.92,0.0,0.28,0.16,0.61,0.42,-0.35,0.77,-0.1...  [-0.0,0.0,0.0,0.0,0.0,0.0,-0.0,0.0,-0.0,-0.0,-...
+19 2022-04-28 14:00:00  LS002  [0.87,-0.38,0.42,-0.34,-0.38,0.14,0.38,-0.08,0...  [0.0,-0.0,0.0,-0.0,-0.0,0.0,0.0,-0.0,0.0,0.0,0...
+20 2022-04-28 15:00:00  LS002  [-0.09,-0.86,-0.98,-0.79,2.27,-0.87,-1.24,-1.2...  [-0.0,-0.0,-0.0,-0.0,0.0,-0.0,-0.0,-0.0,-0.0,-...
+21 2022-04-28 16:00:00  LS002  [-0.46,-0.83,-0.85,-0.61,2.22,-0.67,-0.73,-1.0...  [-0.0,-0.0,-0.0,-0.0,0.0,-0.0,-0.0,-0.0,-0.0,-...
+22 2022-04-28 17:00:00  LS002  [-0.3,-0.61,-0.66,-0.3,2.08,-0.31,-0.3,-1.44,-...  [-0.0,-0.0,-0.0,-0.0,0.0,-0.0,-0.0,-0.0,-0.0,-...

+ 199 - 0
USER/SPF/alibaba/08BatCrtl/BatParam.py

@@ -0,0 +1,199 @@
+
+#定义电池参数
+
+class BatParam:
+    def __init__(self,celltype):
+
+        #公用参数................................................................................................................................................
+        #热失控参数
+        self.TrwTempHigh=60
+        self.TrwTempRate=3
+        self.TrwTempDiff=15
+        self.TrwCellVoltDiff=2.5
+        self.TrwCellVoltFall=0.5
+        self.TrwCellVoltLow=1.5
+        self.TrwPackVoltFall=1.5
+        
+        #故障诊断参数
+        self.temp_time=10
+        self.volt_time=10
+
+        self.SocJump=10
+        self.SocClamp=0.1
+        self.SocLow=3
+        self.SocDiff=20
+
+        self.SohLow=65
+        self.SohDiff=15
+
+        #mana-kendall趋势检验参数
+        self.mk_p=0.001
+        self.mk_z=-5
+        self.mk_Tau=-0.7
+        self.mk_slope=-0.1
+        self.mk_s=-260
+        self.mk_svar=1600
+
+        self.OcvWeight_Temp=[-30,-20,-10,0,10,20,30,40,50]
+        self.OcvWeight_StandingTime=[0,500,600,1200,1800,3600,7200,10800]
+        self.OcvWeight            =[[0,0,  0,  0,    0,   0.1,0.3, 1],
+                                    [0,0,  0,  0,    0,   0.1,0.3, 1],
+                                    [0,0,  0,  0,    0,   0.2,0.5, 1],
+                                    [0,0,  0,  0,    0.2, 0.4,0.8, 1],
+                                    [0,0,  0,  0.1,  0.3, 0.6,1,   1],
+                                    [0,0,  0.1,0.2,  0.5, 0.8,1,   1],
+                                    [0,0,  0.1,0.3,  0.6, 1,  1,   1],
+                                    [0,0,  0.1,0.3,  0.7, 1,  1,   1],
+                                    [0,0,  0.2,0.3,  0.8, 1,  1,   1]]
+
+
+        if celltype==1: #永联+康普顿21700
+            self.Capacity = 4*2
+            self.PackFullChrgVolt=69.99
+            self.CellFullChrgVolt=4.2
+            self.CellFullChrgCrnt=-4
+            self.CellVoltNums=120
+            self.CellTempNums=40
+            self.FullChrgSoc=90
+            self.PackCrntDec=1
+            self.BalCurrent=0.015
+            self.LookTab_SOC = [0,	     5,	    10,	    15,	    20,	    25,	    30,	    35,	    40,	    45,	    50,	    55,	    60,	    65,	    70,	    75,	    80,	    85,	    90,	    95,	    100]
+            self.LookTab_OCV = [2.8497,	3.0924,	3.2868,	3.4117,	3.4461,	3.5032,	3.5602,	3.6049,	3.6368,	3.6709,	3.7121,	3.7593,	3.8237,	3.8755,	3.9093,	3.9518,	4.0119,	4.0615,	4.077,	4.0969,	4.1821]
+            self.LookTab_DiffVolt=[0.4, 0.4,    0.3,    0.3,    0.2,   0.15,    0.1,    0.1,    0.08,   0.08,   0.08,   0.1,    0.1,    0.1,    0.1,     0.1,    0.1,   0.1,     0.1,   0.1,     0.1]
+
+            self.CellOvLv1=4.2
+            self.CellOvLv2=4.25
+            self.CellUvLv1=2.8
+            self.CellUvLv2=2.5
+            self.CellVoltDiffLv1=0.3
+            self.CellVoltDiffLv2=0.5
+            self.PackVoltOvLv1=self.CellOvLv1*self.CellVoltNums
+            self.PackVoltOvLv2=self.CellOvLv2*self.CellVoltNums
+            self.PackVoltUvLv1=self.CellUvLv1*self.CellVoltNums
+            self.PackVoltUvLv2=self.CellUvLv2*self.CellVoltNums
+
+            self.CellTempUpLmt=119
+            self.CellTempLwLmt=-39
+            self.CellTempHighLv1=45
+            self.CellTempHighLv2=50
+            self.CellTempLowLv1=0
+            self.CellTempLowLv2=-5
+            self.CellTempDiffLv1=10
+            self.CellTempDiffLv2=15
+            self.CellTempRate=5
+
+            self.PackChgOc=-40
+            self.PackDisOc=200
+
+            self.LeakCurrentLv1=-10
+            self.LeakCurrentLv2=-15
+            self.LeakCurrentLv3=-50
+
+            self.TrwVoltRate=-1
+
+        elif celltype==2: #中恒+华庭18650
+            self.Capacity = 2*9
+            self.CellVoltNums= 68
+            self.CellTempNums= 40
+            self.CellFullChrgVolt=4.2
+            self.CellFullChrgCrnt=-self.Capacity/2
+            self.FullChrgSoc=100
+            self.PackCrntDec=1
+            self.BalCurrent=0.015
+            self.LookTab_SOC = [0,	     5,	    10,	    15,	    20,	    25,	    30,	    35,	    40,	    45,	    50,	    55,	    60,	    65,	    70,	    75,	    80,	    85,	    90,	    95,	    100]
+            self.LookTab_OCV = [2.929,	3.2902,	3.3888,	3.425,	3.4846,	3.5382,	3.577,	3.6083,	3.638,	3.6786,	3.7127,	3.7596,	3.7853,	3.8371,	3.9081,	3.9127,	4.0097,	4.0314,	4.0463,	4.0969,	4.174]
+
+            self.CellOvLv1=4.04
+            self.CellOvLv2=4.05
+            self.CellUvLv1=2.99
+            self.CellUvLv2=2.950
+            self.CellVoltDiffLv1=0.35
+            self.CellVoltDiffLv2=0.4
+            self.PackVoltOvLv1=self.CellOvLv1*self.CellVoltNums
+            self.PackVoltOvLv2=self.CellOvLv2*self.CellVoltNums
+            self.PackVoltUvLv1=self.CellUvLv1*self.CellVoltNums
+            self.PackVoltUvLv2=self.CellUvLv2*self.CellVoltNums
+
+            self.CellTempUpLmt=119
+            self.CellTempLwLmt=-39
+            self.CellTempHighLv1=45
+            self.CellTempHighLv2=50
+            self.CellTempLowLv1=0
+            self.CellTempLowLv2=-5
+            self.CellTempDiffLv1=10
+            self.CellTempDiffLv2=15
+            self.CellTempRate=5
+
+            self.PackChgOc=-45
+            self.PackDisOc=200
+
+            self.LeakCurrentLv1=-10
+            self.LeakCurrentLv2=-15
+            self.LeakCurrentLv3=-50
+
+            self.TrwVoltRate=-1
+
+        elif celltype==99:   #永联+力神
+            self.Capacity = 40
+            self.CellVoltNums=72
+            self.CellTempNums=32
+            self.CellFullChrgVolt=3.55
+            self.CellFullChrgCrnt=-self.Capacity/2
+
+            self.OcvInflexionBelow=3.281
+            self.OcvInflexion2=3.303
+            self.OcvInflexion3=3.343
+            self.OcvInflexionAbove=3.36
+            self.SocInflexion1=30
+            self.SocInflexion2=60
+            self.SocInflexion3=70
+
+            self.FullChrgSoc=100
+            self.PeakSoc=62.5
+            self.PeakVoltLowLmt=3.37
+            self.PeakVoltUpLmt=3.41
+            self.PeakCellVolt=[3.389,3.390,3.391,3.392,3.393]
+            self.PackCrntDec=1
+            self.BalCurrent=0.015
+
+            self.LookTab_SOC = [0,	    5,	    10,	    15,	    20,	    25,	    30,	    35,	    40,	    45,	    50,	    55,	    60,	    61,	    62,	    63,	    64,	    65,	    66,	    67,	    68,	    69,	    70,	    75,	    80,	    85,	    90,	    95,	    96,	    97,	    98,	    99,	    100]
+            self.LookTab_OCV = [2.6748,	3.2020,	3.2170,	3.2430,	3.2600,	3.2770,	3.2880,	3.2890,	3.2900,	3.2910,	3.2911,	3.2970,	3.3030,	3.3080,	3.3200,	3.3270,	3.3290,	3.3300,	3.3301,	3.3310,	3.3311,	3.3312,	3.3313,	3.3314,	3.3315,	3.3316,	3.3320,	3.3330,	3.3340,	3.3350,	3.3360,	3.3580,	3.3640]
+            self.LookTab_OCVChg=[2.6460, 3.1570, 3.2220, 3.2450,3.2760,	3.2970,	3.3060,	3.3070,	3.3080,	3.3090,	3.3110,	3.3140,	3.3220,	3.3270,	3.3330,	3.3380,	3.3420,	3.3421,	3.3422,	3.3423,	3.3424,	3.3431,	3.3432,	3.3433,	3.3434,	3.3441,	3.3442,	3.3443,	3.3444,	3.3445,	3.3446,	3.3447,	3.3640]
+            self.LookTab_DiffVolt=[0.8, 0.8,    0.5,    0.1,    0.1,    0.1,    0.1,    0.1,    0.05,   0.05,   0.05,   0.05,   0.05,   0.1,    0.1,     0.1,    0.1,   0.1,     0.1,   0.1,    0.1,     0.05,  0.05,   0.05,   0.1,   0.1,     0.1,    0.1,    0.3,     0.3,    0.3,   0.3,    0.3]
+
+
+            self.CellOvLv1=3.65
+            self.CellOvLv2=3.7
+            self.CellUvLv1=2.7
+            self.CellUvLv2=2.6
+            self.CellVoltDiffLv1=0.6
+            self.CellVoltDiffLv2=1.1
+            self.PackVoltOvLv1=self.CellOvLv1*self.CellVoltNums
+            self.PackVoltOvLv2=self.CellOvLv2*self.CellVoltNums
+            self.PackVoltUvLv1=self.CellUvLv1*self.CellVoltNums
+            self.PackVoltUvLv2=self.CellUvLv2*self.CellVoltNums
+
+            self.CellTempUpLmt=119
+            self.CellTempLwLmt=-39
+            self.CellTempHighLv1=45
+            self.CellTempHighLv2=50
+            self.CellTempLowLv1=0
+            self.CellTempLowLv2=-5
+            self.CellTempDiffLv1=15
+            self.CellTempDiffLv2=20
+            self.CellTempRate=5
+
+            self.PackChgOc=-160
+            self.PackDisOc=180
+
+            self.LeakCurrentLv1=-20
+            self.LeakCurrentLv2=-30
+            self.LeakCurrentLv3=-100
+
+            self.TrwVoltRate=-8  
+            self.mk_slope=-0.8
+        
+
+        else:
+            print('未找到对应电池编号!!!')
+            # sys.exit()

+ 55 - 19
USER/SPF/alibaba/08BatCrtl/CBMSBatCtrl.py

@@ -3,10 +3,10 @@ import numpy as np
 import datetime
 import pika
 import json
-from USER.SPF.alibaba.Common import BatParam
+import BatParam
 
 class BatCrtl():
-    def __init__(self,host,port,df_statectrl_ram,df_rlyctrl_ram,df_diag,df_bms,sn_list):  #参数初始化
+    def __init__(self,host,port,df_statectrl_ram,df_rlyctrl_ram,df_balctrl_ram,df_diag,df_bms,sn_list):  #参数初始化
 
         celltype=1
         self.host=host
@@ -18,6 +18,7 @@ class BatCrtl():
         self.df_bms=df_bms
         self.df_statectrl_ram=df_statectrl_ram.copy()
         self.df_rlyctrl_ram=df_rlyctrl_ram.copy()
+        self.df_balctrl_ram=df_balctrl_ram.copy()
         self.df_diag1=df_diag[(df_diag['fault_code']==110) | (df_diag['fault_code']==119) | (df_diag['fault_code']==12) | (df_diag['fault_code']==18)]
         self.df_diag2=df_diag[df_diag['fault_code']==100]
         
@@ -33,7 +34,8 @@ class BatCrtl():
     def bat_crtl(self):
         df_res1=self._bat_rlycrtl()
         df_res2=self._bat_statecrtl()
-        return df_res1,df_res2
+        df_res3=self._bat_balcrtl()
+        return df_res1,df_res2,df_res3
     
     #Ribbit队列发送数据..............................................................
     def _rabbit_send(self, dict_send):
@@ -50,10 +52,7 @@ class BatCrtl():
     #电池继电器下行控制.........................................................................................................................
     def _bat_rlycrtl(self):
         time_now=datetime.datetime.now()
-        if self.df_bms.empty:
-            factory='康普盾'
-        else:
-            factory=self.df_bms.iloc[0]['factory'] 
+        factory=self.df_bms.iloc[0]['factory'] 
         for sn in self.sn_list:
             if sn in list(self.df_diag1['sn']):  #该sn发生4级或5级故障
                 if sn in list(self.df_rlyctrl_ram['sn']): #ram是否包含该sn
@@ -87,14 +86,11 @@ class BatCrtl():
                     return self.df_rlyctrl_ram
         return self.df_rlyctrl_ram
 
-    #电池状态下行控制.........................................................................................................................
+    #电池充放电下行控制.........................................................................................................................
     def _bat_statecrtl(self):
         time_now=datetime.datetime.now()
-        if self.df_bms.empty:
-            factory='康普盾'
-        else:
-            factory=self.df_bms.iloc[0]['factory']
-        #对完成充放电循环,且超过8天的,done_flg置0
+        factory=self.df_bms.iloc[0]['factory']
+        #对完成充放电循环,且超过10天的,done_flg置0
         if not self.df_statectrl_ram.empty:
             for i in range(len(self.df_statectrl_ram)):
                 if self.df_statectrl_ram.iloc[i]['done_flg']==1 and (time_now-self.df_statectrl_ram.iloc[i]['time']).total_seconds()>10*24*3600:
@@ -110,7 +106,8 @@ class BatCrtl():
             bms_index=self.df_bms[self.df_bms['sn']==sn].index[0]
             packsoc=self.df_bms.loc[bms_index,'PackSOC']
             cellvolt = self.df_bms.loc[bms_index,self.cellvolt_name]
-            if packsoc<10 or min(cellvolt)<3:   #结束放电
+            time_now=self.df_bms.loc[bms_index,'time']
+            if packsoc<10 or 1<min(cellvolt)<3:   #结束放电
                 self.df_statectrl_ram.loc[self.df_statectrl_ram[self.df_statectrl_ram['sn']==sn].index[0], 'time']=time_now
                 self.df_statectrl_ram.loc[self.df_statectrl_ram[self.df_statectrl_ram['sn']==sn].index[0], 'batstatectrl']=2
                 dict_send={"cmd_type":2,"factory":factory,"sn":sn,"batstatectrl":2,"dischrg_volt":272}
@@ -125,6 +122,7 @@ class BatCrtl():
             packcrnt=self.df_bms.loc[bms_index,'PackCrnt']
             packsoc=self.df_bms.loc[bms_index,'PackSOC']
             cellvolt = self.df_bms.loc[bms_index,self.cellvolt_name]
+            time_now=self.df_bms.loc[bms_index,'time']
             if packsoc>25 or min(cellvolt)>3.5:
                 self.df_statectrl_ram.loc[self.df_statectrl_ram[self.df_statectrl_ram['sn']==sn].index[0], 'time']=time_now
                 self.df_statectrl_ram.loc[self.df_statectrl_ram[self.df_statectrl_ram['sn']==sn].index[0], 'batstatectrl']=3
@@ -153,11 +151,12 @@ class BatCrtl():
             bms_index=self.df_bms[self.df_bms['sn']==sn].index[0]
             packsoc=self.df_bms.loc[bms_index,'PackSOC']
             cellvolt = self.df_bms.loc[bms_index,self.cellvolt_name]
+            time_now=self.df_bms.loc[bms_index,'time']
             if packsoc>99 or max(cellvolt)>self.param.CellFullChrgVolt: #充电已完成
                 self.df_statectrl_ram.loc[self.df_statectrl_ram[self.df_statectrl_ram['sn']==sn].index[0], 'time']=time_now
                 self.df_statectrl_ram.loc[self.df_statectrl_ram[self.df_statectrl_ram['sn']==sn].index[0], 'batstatectrl']=0
                 self.df_statectrl_ram.loc[self.df_statectrl_ram[self.df_statectrl_ram['sn']==sn].index[0], 'done_flg']=1
-                dict_send={"cmd_type":2,"factory":factory,"sn":sn,"batstatectrl":0,"dischrg_volt":270}
+                dict_send={"cmd_type":2,"factory":factory,"sn":sn,"batstatectrl":0,"dischrg_volt":272}
                 self._rabbit_send(dict_send)
                 return self.df_statectrl_ram
             else:
@@ -170,6 +169,7 @@ class BatCrtl():
                         bms_index=self.df_bms[self.df_bms['sn']==sn].index[0]
                         packsoc=self.df_bms.loc[bms_index,'PackSOC']
                         cellvolt = self.df_bms.loc[bms_index,self.cellvolt_name]
+                        time_now=self.df_bms.loc[bms_index,'time']
                         if packsoc>20 or min(cellvolt)>3.5:
                             if sn in list(self.df_statectrl_ram['sn']): #该sn的ram不为空
                                 if self.df_statectrl_ram.loc[self.df_statectrl_ram[self.df_statectrl_ram['sn']==sn].index[0], 'done_flg']==0:
@@ -181,7 +181,7 @@ class BatCrtl():
                                 else:
                                     pass
                             else:
-                                self.df_statectrl_ram.loc[len(self.df_rlyctrl_ram)]=[time_now,sn,3,0]
+                                self.df_statectrl_ram.loc[len(self.df_statectrl_ram)]=[time_now,sn,3,0]
                                 dict_send={"cmd_type":2,"factory":factory,"sn":sn,"batstatectrl":3,"dischrg_volt":272}
                                 self._rabbit_send(dict_send)
                                 return self.df_statectrl_ram
@@ -196,7 +196,7 @@ class BatCrtl():
                                 else:
                                     pass
                             else:
-                                self.df_statectrl_ram.loc[len(self.df_rlyctrl_ram)]=[time_now,sn,2,0]
+                                self.df_statectrl_ram.loc[len(self.df_statectrl_ram)]=[time_now,sn,2,0]
                                 dict_send={"cmd_type":2,"factory":factory,"sn":sn,"batstatectrl":2,"dischrg_volt":272}
                                 self._rabbit_send(dict_send)
                                 return self.df_statectrl_ram
@@ -204,7 +204,7 @@ class BatCrtl():
                         if sn in list(self.df_statectrl_ram['sn']):
                             pass
                         else:
-                            self.df_statectrl_ram.loc[len(self.df_rlyctrl_ram)]=[time_now,sn,0,0]
+                            self.df_statectrl_ram.loc[len(self.df_statectrl_ram)]=[time_now,sn,0,0]
                             dict_send={"cmd_type":2,"factory":factory,"sn":sn,"batstatectrl":0,"dischrg_volt":272}
                             self._rabbit_send(dict_send)
                             return self.df_statectrl_ram
@@ -212,13 +212,49 @@ class BatCrtl():
                     if sn in list(self.df_statectrl_ram['sn']):
                         pass
                     else:
-                        self.df_statectrl_ram.loc[len(self.df_rlyctrl_ram)]=[time_now,sn,0,0]
+                        self.df_statectrl_ram.loc[len(self.df_statectrl_ram)]=[time_now,sn,0,0]
                         dict_send={"cmd_type":2,"factory":factory,"sn":sn,"batstatectrl":0,"dischrg_volt":272}
                         self._rabbit_send(dict_send)
                         return self.df_statectrl_ram
         
         return self.df_statectrl_ram
 
+    #电池均衡下行控制————————————————————————————————————————————————————————————————————————————————————————————————————————
+    def _bat_balcrtl(self):
+        time_now=datetime.datetime.now()
+        factory=self.df_bms.iloc[0]['factory']
+        
+        for sn in self.sn_list:
+            bms_index=self.df_bms[self.df_bms['sn']==sn].index[0]
+            packsoc=self.df_bms.loc[bms_index,'PackSOC']
+            cellvolt = self.df_bms.loc[bms_index,self.cellvolt_name]
+            for balname in self.df_bms.index.tolist():
+                if 'bal' in balname:
+                    balname = self.df_bms.loc[bms_index, balname]   #获取每一列均衡的状态
+
+            voltdiff=np.interp(packsoc,self.param.LookTab_SOC,self.param.LookTab_DiffVolt)
+
+            if min(cellvolt)>2 and max(cellvolt)<4.5 and packsoc>15 and max(cellvolt)-min(cellvolt)>voltdiff:   #满足均衡开启条件
+                #寻找并判断最大电压是否在均衡
+                cellmax_index=list(cellvolt).index(max(cellvolt))+1
+                bal_num=cellmax_index//16
+                bal_index=cellmax_index%16
+                if bal_index==0:
+                    bal_index=16
+                else:
+                    pass
+
+                cellmax_balstate='balstate'+str(bal_num)
+                cellmax_balstate >> bal_index-1
+                cellmax_balstate=cellmax_balstate & 1
+
+                if cellmax_balstate==1: #最大电压在均衡
+                    pass
+                else:   #最大电芯不在均衡
+                    
+
+
+
 
 
 

BIN
USER/SPF/alibaba/08BatCrtl/__pycache__/CBMSBatCtrl.cpython-38.pyc


+ 45 - 12
USER/SPF/alibaba/08BatCrtl/main.py

@@ -11,11 +11,11 @@ def ctrl_cal():
     global df_ram_rlyctrl
     global df_ram_statectrl
     global now_time
-    global df_bms
+    global df_data1,df_data2,df_data3
 
-    end_time=now_time+datetime.timedelta(seconds=3)
+    end_time=now_time+datetime.timedelta(seconds=10)
     start_time=now_time
-    now_time=now_time+datetime.timedelta(seconds=3)
+    now_time=now_time+datetime.timedelta(seconds=10)
 
     host='120.25.223.1'
     port=4901
@@ -33,14 +33,39 @@ def ctrl_cal():
     try:
         #读取所有康普盾电池包原始数据库最后一条数据...........................................................................
  
-        df_bms= df_bms[(df_bms['time']>=start_time) & (df_bms['time']<end_time)]
-        df_bms=df_bms.reset_index(drop=True)
+        df_bms1= df_data1[(df_data1['time']>=start_time) & (df_data1['time']<end_time)]
+        df_bms1=df_bms1.reset_index(drop=True)
         cellvolt_name=['CellVolt'+str(x) for x in range(1,121)]
-        df_volt=pd.DataFrame([x[0].split(",") for x in np.array(df_bms[['cell_volt']])]).iloc[:,list(range(120))]
+        df_volt=pd.DataFrame([x[0].split(",") for x in np.array(df_bms1[['cell_volt']])]).iloc[:,list(range(120))]
         df_volt.columns = cellvolt_name
         df_volt=df_volt.astype('float')
-        df_bms=pd.concat([df_bms,df_volt],axis=1)
-        df_bms.dropna(axis=0, inplace=True)
+        df_bms1=pd.concat([df_bms1,df_volt],axis=1)
+        df_bms1=df_bms1.iloc[-1].to_frame()
+        df_bms1=pd.DataFrame(df_bms1.values.T,columns=df_bms1.index)
+
+        df_bms2= df_data2[(df_data2['time']>=start_time) & (df_data2['time']<end_time)]
+        df_bms2=df_bms2.reset_index(drop=True)
+        cellvolt_name=['CellVolt'+str(x) for x in range(1,121)]
+        df_volt=pd.DataFrame([x[0].split(",") for x in np.array(df_bms2[['cell_volt']])]).iloc[:,list(range(120))]
+        df_volt.columns = cellvolt_name
+        df_volt=df_volt.astype('float')
+        df_bms2=pd.concat([df_bms2,df_volt],axis=1)
+        df_bms2=df_bms2.iloc[-1].to_frame()
+        df_bms2=pd.DataFrame(df_bms2.values.T,columns=df_bms2.index)
+
+        df_bms3= df_data3[(df_data3['time']>=start_time) & (df_data3['time']<end_time)]
+        df_bms3=df_bms3.reset_index(drop=True)
+        cellvolt_name=['CellVolt'+str(x) for x in range(1,121)]
+        df_volt=pd.DataFrame([x[0].split(",") for x in np.array(df_bms3[['cell_volt']])]).iloc[:,list(range(120))]
+        df_volt.columns = cellvolt_name
+        df_volt=df_volt.astype('float')
+        df_bms3=pd.concat([df_bms3,df_volt],axis=1)
+        df_bms3=df_bms3.iloc[-1].to_frame()
+        df_bms3=pd.DataFrame(df_bms3.values.T,columns=df_bms3.index)
+
+        df_bms=pd.concat([df_bms1,df_bms2,df_bms3])
+        df_bms.reset_index(drop=True,inplace=True)
+        # df_bms.dropna(axis=0, inplace=True)
 
 
         #读取所有未结束故障......................................................
@@ -51,6 +76,10 @@ def ctrl_cal():
         port1=4902
         BatCrtl=CBMSBatCtrl.BatCrtl(host1,port1,df_ram_statectrl,df_ram_rlyctrl,df_diag,df_bms,sn_list)
         df_ram_rlyctrl, df_ram_statectrl=BatCrtl.bat_crtl()
+        if not df_ram_statectrl.empty:
+            with open(r'D:\01WorkSpace\python\data_analyze_platform\USER\SPF\alibaba\08BatCrtl\下行控制.txt','a',encoding="utf-8") as file:
+                for j in range(len(df_ram_statectrl)):
+                    file.write(str(tuple(df_ram_statectrl.iloc[j]))+'\n')
         # print('done!!!')
             
     except Exception as e:
@@ -66,13 +95,17 @@ if __name__ == "__main__":
 
     #参数初始化.........................................................................................................................................................................
     df_ram_rlyctrl=pd.DataFrame(columns=['time','sn','batrlyctrl'])
-    df_ram_statectrl=pd.DataFrame(columns=['time','sn','batstatectrl','done_flg'])
+    # df_ram_statectrl=pd.DataFrame(columns=['time','sn','batstatectrl','done_flg'])
+    df_ram_statectrl=pd.DataFrame({'time':[datetime.datetime.strptime('2022-04-28 02:02:48','%Y-%m-%d %H:%M:%S'),datetime.datetime.strptime('2022-04-28 04:26:10','%Y-%m-%d %H:%M:%S')],'sn':['KPD001','KPD002'],'batstatectrl':[0,1],'done_flg':[1,0]})
+    df_ram_balctrl=pd.DataFrame(columns=['time','sn','batbalctrl'])
 
-    df_bms= pd.read_excel(r'D:\01WorkSpace\项目\Alibaba\data\原始数据_2022-01-10_2022-02-10\data(1)(1).xlsx')
-    now_time=datetime.datetime.strptime('2022-4-27 20:28:01','%Y-%m-%d %H:%M:%S')
+    df_data1= pd.read_excel(r'D:\01WorkSpace\项目\Alibaba\data(2)\原始数据_2022-04-26_2022-04-28\康普盾_KPD001.xlsx')
+    df_data2= pd.read_excel(r'D:\01WorkSpace\项目\Alibaba\data(2)\原始数据_2022-04-26_2022-04-28\康普盾_KPD002.xlsx')
+    df_data3= pd.read_excel(r'D:\01WorkSpace\项目\Alibaba\data(2)\原始数据_2022-04-26_2022-04-28\康普盾_KPD003.xlsx')
+    now_time=datetime.datetime.strptime('2022-4-28 5:49:01','%Y-%m-%d %H:%M:%S')
 
     scheduler = BlockingScheduler()
-    scheduler.add_job(ctrl_cal, 'interval', seconds=0.05, id='crtl_job')
+    scheduler.add_job(ctrl_cal, 'interval', seconds=0.5, id='crtl_job')
     
     try:
         scheduler.start()

+ 12 - 0
USER/SPF/alibaba/08BatCrtl/下行控制.txt

@@ -0,0 +1,12 @@
+(Timestamp('2022-04-28 02:02:48'), 'KPD001', 0, 1)
+(Timestamp('2022-04-28 04:26:10'), 'KPD002', 1, 0)
+(Timestamp('2022-04-28 02:02:48'), 'KPD001', 0, 1)
+(Timestamp('2022-04-28 04:26:10'), 'KPD002', 1, 0)
+(Timestamp('2022-04-28 02:02:48'), 'KPD001', 0, 1)
+(Timestamp('2022-04-28 05:49:29'), 'KPD002', 0, 1)
+(Timestamp('2022-04-28 02:02:48'), 'KPD001', 0, 1)
+(Timestamp('2022-04-28 04:26:10'), 'KPD002', 1, 0)
+(Timestamp('2022-04-28 02:02:48'), 'KPD001', 0, 1)
+(Timestamp('2022-04-28 04:26:10'), 'KPD002', 1, 0)
+(Timestamp('2022-04-28 02:02:48'), 'KPD001', 0, 1)
+(Timestamp('2022-04-28 05:49:29'), 'KPD002', 0, 1)

+ 0 - 27
USER/SPF/alibaba/101Log/log_ctrl.txt

@@ -1,27 +0,0 @@
-2022-04-27 21:10:03,244 - ERROR - (KeyError('factory'),)
-2022-04-27 21:10:03,629 - ERROR - Traceback (most recent call last):
-  File "C:\Users\NING MEI\AppData\Local\Programs\Python\Python38-32\lib\site-packages\pandas\core\indexes\base.py", line 3361, in get_loc
-    return self._engine.get_loc(casted_key)
-  File "pandas\_libs\index.pyx", line 76, in pandas._libs.index.IndexEngine.get_loc
-  File "pandas\_libs\index.pyx", line 108, in pandas._libs.index.IndexEngine.get_loc
-  File "pandas\_libs\hashtable_class_helper.pxi", line 5198, in pandas._libs.hashtable.PyObjectHashTable.get_item
-  File "pandas\_libs\hashtable_class_helper.pxi", line 5206, in pandas._libs.hashtable.PyObjectHashTable.get_item
-KeyError: 'factory'
-
-The above exception was the direct cause of the following exception:
-
-Traceback (most recent call last):
-  File "d:\01WorkSpace\python\data_analyze_platform\USER\SPF\alibaba\08BatCrtl\main.py", line 53, in ctrl_cal
-    df_ram_rlyctrl, df_ram_statectrl=BatCrtl.bat_crtl()
-  File "d:\01WorkSpace\python\data_analyze_platform\USER\SPF\alibaba\08BatCrtl\CBMSBatCtrl.py", line 34, in bat_crtl
-    df_res1=self._bat_rlycrtl()
-  File "d:\01WorkSpace\python\data_analyze_platform\USER\SPF\alibaba\08BatCrtl\CBMSBatCtrl.py", line 56, in _bat_rlycrtl
-    factory=self.df_bms.iloc[0]['factory']
-  File "C:\Users\NING MEI\AppData\Local\Programs\Python\Python38-32\lib\site-packages\pandas\core\series.py", line 942, in __getitem__
-    return self._get_value(key)
-  File "C:\Users\NING MEI\AppData\Local\Programs\Python\Python38-32\lib\site-packages\pandas\core\series.py", line 1051, in _get_value
-    loc = self.index.get_loc(label)
-  File "C:\Users\NING MEI\AppData\Local\Programs\Python\Python38-32\lib\site-packages\pandas\core\indexes\base.py", line 3363, in get_loc
-    raise KeyError(key) from err
-KeyError: 'factory'
-

+ 26 - 0
USER/SPF/alibaba/101Log/log_warning.txt

@@ -0,0 +1,26 @@
+2022-05-12 12:52:34,615 - ERROR - (ValueError('cannot set a row with mismatched columns'),)
+2022-05-12 12:52:34,619 - ERROR - Traceback (most recent call last):
+  File "d:\01WorkSpace\python\data_analyze_platform\USER\SPF\alibaba\07BatSafetyWarning\main_test.py", line 123, in saftywarning_cal
+    df_short_res, df_ram_res, df_ram_res1, df_ram_res2, df_ram_res3, df_ram_res4=BatShort.intershort()
+  File "d:\01WorkSpace\python\data_analyze_platform\USER\SPF\alibaba\07BatSafetyWarning\CBMSBatInterShort.py", line 41, in intershort
+    df_res, df_ram_last, df_ram_last1, df_ram_last2, df_ram_last3, df_ram_lfp=self._lfp_intershort()
+  File "d:\01WorkSpace\python\data_analyze_platform\USER\SPF\alibaba\07BatSafetyWarning\CBMSBatInterShort.py", line 775, in _lfp_intershort
+    df_ram_last2.loc[0]=[self.sn,time_last2,deltAs_last2,0,0]    #¸üÐÂRAMÐÅÏ¢
+  File "C:\Users\NING MEI\AppData\Local\Programs\Python\Python38-32\lib\site-packages\pandas\core\indexing.py", line 723, in __setitem__
+    iloc._setitem_with_indexer(indexer, value, self.name)
+  File "C:\Users\NING MEI\AppData\Local\Programs\Python\Python38-32\lib\site-packages\pandas\core\indexing.py", line 1724, in _setitem_with_indexer
+    self._setitem_with_indexer_missing(indexer, value)
+  File "C:\Users\NING MEI\AppData\Local\Programs\Python\Python38-32\lib\site-packages\pandas\core\indexing.py", line 2027, in _setitem_with_indexer_missing
+    raise ValueError("cannot set a row with mismatched columns")
+ValueError: cannot set a row with mismatched columns
+
+2022-05-12 12:58:50,707 - ERROR - (TypeError("unsupported operand type(s) for -: 'list' and 'list'"),)
+2022-05-12 12:58:50,709 - ERROR - Traceback (most recent call last):
+  File "d:\01WorkSpace\python\data_analyze_platform\USER\SPF\alibaba\07BatSafetyWarning\main_test.py", line 123, in saftywarning_cal
+    df_short_res, df_ram_res, df_ram_res1, df_ram_res2, df_ram_res3, df_ram_res4=BatShort.intershort()
+  File "d:\01WorkSpace\python\data_analyze_platform\USER\SPF\alibaba\07BatSafetyWarning\CBMSBatInterShort.py", line 41, in intershort
+    df_res, df_ram_last, df_ram_last1, df_ram_last2, df_ram_last3, df_ram_lfp=self._lfp_intershort()
+  File "d:\01WorkSpace\python\data_analyze_platform\USER\SPF\alibaba\07BatSafetyWarning\CBMSBatInterShort.py", line 797, in _lfp_intershort
+    list_sub2=deltAs_now2-deltAs_last2
+TypeError: unsupported operand type(s) for -: 'list' and 'list'
+

BIN
USER/SPF/alibaba/99Result/LS001内短路..png


BIN
USER/SPF/alibaba/99Result/LS001内短路.xlsx


BIN
USER/SPF/alibaba/99Result/LS002内短路..png


BIN
USER/SPF/alibaba/99Result/LS002内短路.xlsx


+ 4 - 4
USER/SPF/alibaba/Common/BatParam.py

@@ -136,7 +136,7 @@ class BatParam:
             self.Capacity = 40
             self.CellVoltNums=72
             self.CellTempNums=32
-            self.CellFullChrgVolt=3.5
+            self.CellFullChrgVolt=3.55
             self.CellFullChrgCrnt=-self.Capacity/2
 
             self.OcvInflexionBelow=3.281
@@ -149,9 +149,9 @@ class BatParam:
 
             self.FullChrgSoc=100
             self.PeakSoc=62.5
-            self.PeakVoltLowLmt=3.35
-            self.PeakVoltUpLmt=3.4
-            self.PeakCellVolt=[3.384,3.385,3.386,3.387,3.388]
+            self.PeakVoltLowLmt=3.37
+            self.PeakVoltUpLmt=3.41
+            self.PeakCellVolt=[3.389,3.390,3.391,3.392,3.393]
             self.PackCrntDec=1
             self.BalCurrent=0.015
 

ファイルの差分が大きいため隠しています
+ 1 - 10
USER/test.ipynb


+ 44 - 42
USER/test.py

@@ -32,63 +32,65 @@ import datetime
 # df_short.to_excel(r'C:\Users\zldc\project\User\spf\hz-application-algo\USER\spf\100Result\safetywaring\\'+vin+'内短路结果.xlsx')
 
 # 内短路
-filepath=r'D:\01WorkSpace\项目\Alibaba\data\内短路数据_2022-01-10_2022-02-10'
+filepath=r'D:\01WorkSpace\python\data_analyze_platform\USER\SPF\alibaba\99Result'
 files=os.listdir(filepath)
 # files=[vin+'内短路结果.xlsx']
 for filename in files:
-    # if '内短路' in filename:
+    if '内短路' in filename:
         vin=filename[:-4]
-        df_short= pd.read_csv(filepath+'\\'+filename,encoding='gb18030')
-        df_short['time_sp']=pd.to_datetime(df_short['time_sp'], format='%Y-%m-%d %H:%M:%S')
+        # df_short= pd.read_csv(filepath+'\\'+filename,encoding='gb18030')
+        # df_short['time_sp']=pd.to_datetime(df_short['time_sp'], format='%Y-%m-%d %H:%M:%S')
+        # cellnums=len(eval(df_short.loc[0,'short_current']))
+        # cellvolt_name=['单体'+str(x) for x in range(1,cellnums+1)]
+        # df=pd.DataFrame(columns=cellvolt_name)
+        # for i in range(len(df_short)):
+        #     df.loc[i]=eval(df_short.loc[i,'short_current'])
+        # plt.figure(figsize=(20,8))
+        # for i in range(df.shape[1]):
+        #     x=df_short['time_sp']
+        #     y=df['单体'+str(i+1)]
+        #     plt.plot(x, y,marker='*',markersize=15)
+        #     plt.plot(x, [-20]*len(x),c='r')
+        #     plt.title(filename[0:17],fontsize=25)
+        #     plt.xlabel('时间', fontsize=20)
+        #     plt.ylabel('内短路电流', fontsize=20)
+        #     plt.xticks(fontsize=20,rotation=10)
+        #     plt.yticks(fontsize=20)
+        #     # plt.xlim(0,120)
+        #     plt.ylim(-25,30)
+        #     # plt.scatter( xtime1,VoltChange[volt_column[i]],marker='o')
+        #     # plt.legend(bbox_to_anchor=(1, 0), loc=3, borderaxespad=0)
+        #     plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
+        #     plt.rcParams['axes.unicode_minus']=False #用来正常显示负号
+        # plt.savefig(filepath+'\\'+vin+"内短路.png")
+        # plt.show()
+        # plt.close()
+        
+
+        df_short= pd.read_excel(filepath+'\\'+filename)
         cellnums=len(eval(df_short.loc[0,'short_current']))
         cellvolt_name=['单体'+str(x) for x in range(1,cellnums+1)]
-        df=pd.DataFrame(columns=cellvolt_name)
+        plt.figure(figsize=(20,9))
         for i in range(len(df_short)):
-            df.loc[i]=eval(df_short.loc[i,'short_current'])
-        plt.figure(figsize=(20,8))
-        for i in range(df.shape[1]):
-            x=df_short['time_sp']
-            y=df['单体'+str(i+1)]
+            x=list(range(1,cellnums+1))
+            y=eval(df_short.loc[i,'short_current'])
+            y1=[-30]*cellnums
             plt.plot(x, y,marker='*',markersize=15)
-            plt.plot(x, [-20]*len(x),c='r')
-            plt.title(filename[0:17],fontsize=25)
-            plt.xlabel('时间', fontsize=20)
+            plt.plot(x, y1,color='r')
+            plt.title(filename[0:17],fontsize=24)
+            plt.xlabel('电芯序号', fontsize=20)
             plt.ylabel('内短路电流', fontsize=20)
-            plt.xticks(fontsize=20,rotation=10)
-            plt.yticks(fontsize=20)
+            plt.xticks(fontsize=22)
+            plt.yticks(fontsize=22)
             # plt.xlim(0,120)
-            plt.ylim(-25,30)
+            plt.ylim(-35,35)
             # plt.scatter( xtime1,VoltChange[volt_column[i]],marker='o')
-            # plt.legend(bbox_to_anchor=(1, 0), loc=3, borderaxespad=0)
+            plt.legend(bbox_to_anchor=(1, 0), loc=3, borderaxespad=0)
             plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
             plt.rcParams['axes.unicode_minus']=False #用来正常显示负号
-        plt.savefig(filepath+'\\'+vin+"内短路.png")
+        plt.savefig(filepath+'\\'+vin+".png")
         plt.show()
         plt.close()
-        
-
-        # df_short= pd.read_excel(filepath+'\\'+filename)
-        # cellnums=len(eval(df_short.loc[0,'short_current']))
-        # cellvolt_name=['单体'+str(x) for x in range(1,cellnums+1)]
-        # plt.figure(figsize=(16,9))
-        # for i in range(len(df_short)):
-        #     x=list(range(1,cellnums+1))
-        #     y=eval(df_short.loc[i,'short_current'])
-        #     plt.plot(x, y,label=df_short.loc[i,'time_st'],marker='*',markersize=15)
-        #     plt.title(filename[0:17],fontsize=18)
-        #     plt.xlabel('电芯序号', fontsize=15)
-        #     plt.ylabel('内短路电流', fontsize=15)
-        #     plt.xticks(fontsize=15)
-        #     plt.yticks(fontsize=15)
-        #     # plt.xlim(0,120)
-        #     # plt.ylim(-20,20)
-        #     # plt.scatter( xtime1,VoltChange[volt_column[i]],marker='o')
-        #     plt.legend(bbox_to_anchor=(1, 0), loc=3, borderaxespad=0)
-        #     plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
-        #     plt.rcParams['axes.unicode_minus']=False #用来正常显示负号
-        # plt.savefig(filepath+'\\'+filename[0:17]+".png")
-        # plt.show()
-        # plt.close()
 
 
 # #离群度

この差分においてかなりの量のファイルが変更されているため、一部のファイルを表示していません