完善耐久采集
This commit is contained in:
@ -13,14 +13,13 @@ class DoCurrentTest(QThread):
|
||||
self.dir_path = dir_path
|
||||
self.tool = tool
|
||||
self.idx = 5
|
||||
self.logger = clibs.logger
|
||||
|
||||
def initialization(self, data_dirs, data_files):
|
||||
def check_files():
|
||||
msg = "初始路径下不允许有文件夹,初始路径下只能存在如下两个文件,且文件为关闭状态,确认后重新运行!<br>"
|
||||
msg += "1. T_电机电流.xlsx<br>2. xxxx.zip"
|
||||
if len(data_dirs) != 0 or len(data_files) != 2:
|
||||
self.logger("ERROR", "do_current", msg, "red")
|
||||
clibs.logger("ERROR", "do_current", msg, "red")
|
||||
|
||||
prj_file, count = None, 0
|
||||
for data_file in data_files:
|
||||
@ -31,10 +30,10 @@ class DoCurrentTest(QThread):
|
||||
count += 1
|
||||
prj_file = data_file
|
||||
else:
|
||||
self.logger("ERROR", "do_current", msg, "red")
|
||||
clibs.logger("ERROR", "do_current", msg, "red")
|
||||
|
||||
if count != 2:
|
||||
self.logger("ERROR", "do_current", msg, "red")
|
||||
clibs.logger("ERROR", "do_current", msg, "red")
|
||||
|
||||
if self.tool == "tool100":
|
||||
os.mkdir(f"{self.dir_path}/single")
|
||||
@ -44,7 +43,7 @@ class DoCurrentTest(QThread):
|
||||
elif self.tool == "inertia":
|
||||
os.mkdir(f"{self.dir_path}/inertia")
|
||||
else:
|
||||
self.logger("ERROR", "do_current", "负载选择错误,电机电流测试只能选择 tool100/inertia 规格!", "red")
|
||||
clibs.logger("ERROR", "do_current", "负载选择错误,电机电流测试只能选择 tool100/inertia 规格!", "red")
|
||||
|
||||
return prj_file
|
||||
|
||||
@ -59,10 +58,10 @@ class DoCurrentTest(QThread):
|
||||
local_file = self.dir_path + f"/{robot_type}.cfg"
|
||||
clibs.c_pd.pull_file_from_server(server_file, local_file)
|
||||
|
||||
self.logger("INFO", "do_current", "正在做初始化校验和配置,这可能需要一点时间......", "green")
|
||||
clibs.logger("INFO", "do_current", "正在做初始化校验和配置,这可能需要一点时间......", "green")
|
||||
_prj_file = check_files()
|
||||
get_configs()
|
||||
self.logger("INFO", "do_current", "数据目录合规性检查结束,未发现问题......", "green")
|
||||
clibs.logger("INFO", "do_current", "数据目录合规性检查结束,未发现问题......", "green")
|
||||
return _prj_file
|
||||
|
||||
def single_axis_proc(self, records, number):
|
||||
@ -184,13 +183,13 @@ class DoCurrentTest(QThread):
|
||||
|
||||
for condition in conditions:
|
||||
if clibs.stop_flag:
|
||||
self.logger("ERROR", "do_current", "后台数据清零完成,现在可以重新运行其他程序。", "green")
|
||||
clibs.logger("ERROR", "do_current", "后台数据清零完成,现在可以重新运行其他程序。", "green")
|
||||
|
||||
number = conditions.index(condition)
|
||||
# for testing
|
||||
# if number < 12:
|
||||
# continue
|
||||
self.logger("INFO", "do_current", f"正在执行{disc[number]}测试......")
|
||||
clibs.logger("INFO", "do_current", f"正在执行{disc[number]}测试......")
|
||||
|
||||
# 1. 将act重置为False,并修改将要执行的场景
|
||||
clibs.c_md.write_act(False)
|
||||
@ -223,7 +222,7 @@ class DoCurrentTest(QThread):
|
||||
else:
|
||||
time.sleep(1)
|
||||
if (time.time() - t_start) > 15:
|
||||
self.logger("ERROR", "do_current", "15s 内未收到机器人的运行信号,需要确认RL程序和工具通信是否正常执行...", "red")
|
||||
clibs.logger("ERROR", "do_current", "15s 内未收到机器人的运行信号,需要确认RL程序和工具通信是否正常执行...", "red")
|
||||
|
||||
# 4. 执行采集
|
||||
time.sleep(10) # 消除前 10s 的不稳定数据
|
||||
@ -239,12 +238,12 @@ class DoCurrentTest(QThread):
|
||||
while True:
|
||||
scenario_time = float(f"{float(clibs.c_md.read_scenario_time()):.2f}")
|
||||
if float(scenario_time) != 0:
|
||||
self.logger("INFO", "do_current", f"场景{number - 11}的周期时间:{scenario_time}")
|
||||
clibs.logger("INFO", "do_current", f"场景{number - 11}的周期时间:{scenario_time}")
|
||||
break
|
||||
else:
|
||||
time.sleep(1)
|
||||
if (time.time()-t_start) > 180:
|
||||
self.logger("ERROR", "do_current", f"180s 内未收到场景{number - 11}的周期时间,需要确认RL程序和工具通信交互是否正常执行...", "red")
|
||||
clibs.logger("ERROR", "do_current", f"180s 内未收到场景{number - 11}的周期时间,需要确认RL程序和工具通信交互是否正常执行...", "red")
|
||||
time.sleep(20)
|
||||
|
||||
# 5.停止程序运行,保留数据并处理输出
|
||||
@ -255,22 +254,22 @@ class DoCurrentTest(QThread):
|
||||
self.gen_result_file(number, start_time, end_time, scenario_time)
|
||||
else:
|
||||
if self.tool == "tool100":
|
||||
self.logger("INFO", "do_current", "单轴和场景电机电流采集完毕,如需采集惯量负载,须切换负载类型,并更换惯量负载,重新执行", "green")
|
||||
clibs.logger("INFO", "do_current", "单轴和场景电机电流采集完毕,如需采集惯量负载,须切换负载类型,并更换惯量负载,重新执行", "green")
|
||||
elif self.tool == "inertia":
|
||||
self.logger("INFO", "do_current", "惯量负载电机电流采集完毕,如需采集单轴/场景/保持电机电流,须切换负载类型,并更换偏置负载,重新执行", "green")
|
||||
clibs.logger("INFO", "do_current", "惯量负载电机电流采集完毕,如需采集单轴/场景/保持电机电流,须切换负载类型,并更换偏置负载,重新执行", "green")
|
||||
|
||||
def processing(self):
|
||||
time_start = time.time()
|
||||
clibs.running[self.idx] = 1
|
||||
if clibs.status["hmi"] != 1 or clibs.status["md"] != 1:
|
||||
self.logger("ERROR", "do_current", "processing: 需要在网络设置中连接HMI以及Modbus通信!", "red")
|
||||
clibs.logger("ERROR", "do_current", "processing: 需要在网络设置中连接HMI以及Modbus通信!", "red")
|
||||
|
||||
data_dirs, data_files = clibs.traversal_files(self.dir_path)
|
||||
prj_file = self.initialization(data_dirs, data_files)
|
||||
clibs.c_pd.push_prj_to_server(prj_file)
|
||||
self.run_rl(prj_file)
|
||||
|
||||
self.logger("INFO", "do_current", "-" * 60 + "<br>全部处理完毕<br>", "purple")
|
||||
clibs.logger("INFO", "do_current", "-" * 60 + "<br>全部处理完毕<br>", "purple")
|
||||
time_total = time.time() - time_start
|
||||
msg = f"处理时间:{time_total // 3600:02.0f} h {time_total % 3600 // 60:02.0f} m {time_total % 60:02.0f} s"
|
||||
self.logger("INFO", "do_current", msg)
|
||||
clibs.logger("INFO", "do_current", msg)
|
||||
|
Reference in New Issue
Block a user