Commit 4c78fd78 authored by 张晓彤's avatar 张晓彤

7-15更新 1.数据更新同步 2.添加挖机可用时间-异常捕获

parent 73d461b0
{ {
"para": { "para": {
"log_path": "/Users/guoao/Desktop/work_log/Logs", "log_path": "./Logs/",
"empty_speed": 17, "empty_speed": 17,
"heavy_speed": 17, "heavy_speed": 17,
"dump_target_mass": 5000, "dump_target_mass": 5000,
......
...@@ -142,19 +142,44 @@ class PreSchedule: ...@@ -142,19 +142,44 @@ class PreSchedule:
tmp = reach_ls[np.lexsort(reach_ls[:, ::-1].T)] tmp = reach_ls[np.lexsort(reach_ls[:, ::-1].T)]
for i in range(len(tmp)): for i in range(len(tmp)):
try:
excavator_index = int(tmp[i][2]) excavator_index = int(tmp[i][2])
excavator_id = self.excavator.excavator_index_to_uuid_dict[excavator_index] excavator_id = self.excavator.excavator_index_to_uuid_dict[excavator_index]
except Exception as es:
self.logger.error("excavator_error_1")
self.logger.error(es)
try:
self.excavator_avl_time[excavator_index] = ( self.excavator_avl_time[excavator_index] = (
max(tmp[i][0], self.excavator_avl_time[excavator_index]) max(tmp[i][0], self.excavator_avl_time[excavator_index])
+ loading_task_time[excavator_index] + loading_task_time[excavator_index]
) )
self.excavator_avl_time_dict[excavator_id] = self.excavator_avl_time[excavator_index] self.excavator_avl_time_dict[excavator_id] = self.excavator_avl_time[excavator_index]
except Exception as es:
self.logger.error("excavator_error_2")
self.logger.error(es)
try:
truck_index = int(tmp[i][1]) truck_index = int(tmp[i][1])
truck_id = self.truck.truck_index_to_uuid_dict[truck_index] truck_id = self.truck.truck_index_to_uuid_dict[truck_index]
except Exception as es:
self.logger.error("excavator_error_3")
self.logger.error(es)
try:
self.truck_avl_time[truck_index] = self.excavator_avl_time[excavator_index] self.truck_avl_time[truck_index] = self.excavator_avl_time[excavator_index]
self.truck_avl_time_dict[truck_id] = self.truck_avl_time[truck_index] self.truck_avl_time_dict[truck_id] = self.truck_avl_time[truck_index]
except Exception as es:
self.logger.error("excavator_error_4")
self.logger.error(es)
# # 若挖机可用时间严重偏离,进行修正 # # 若挖机可用时间严重偏离,进行修正
# if abs(self.excavator_avl_time[excavator_index] - now) > 60: # if abs(self.excavator_avl_time[excavator_index] - now) > 60:
# self.truck_avl_time[int(tmp[i][1])] = now # self.truck_avl_time[int(tmp[i][1])] = now
......
...@@ -268,16 +268,16 @@ class TruckInfo(WalkManage): ...@@ -268,16 +268,16 @@ class TruckInfo(WalkManage):
truck_id = self.truck_index_to_uuid_dict[i] truck_id = self.truck_index_to_uuid_dict[i]
task = self.truck_current_task[self.truck_index_to_uuid_dict[i]] task = self.truck_current_task[self.truck_index_to_uuid_dict[i]]
# print("truck_task:", truck_id, task) # print("truck_task:", truck_id, task)
# item = (
# session_mysql.query(EquipmentPair)
# .filter_by(truck_id=truck_id, isdeleted=0)
# .first()
# )
item = ( item = (
session_mysql.query(DispatchSetting) session_mysql.query(EquipmentPair)
.filter_by(truck_id=truck_id, isdeleted=0) .filter_by(truck_id=truck_id, isdeleted=0)
.first() .first()
) )
# item = (
# session_mysql.query(DispatchSetting)
# .filter_by(truck_id=truck_id, isdeleted=0)
# .first()
# )
point = empty_task_set point = empty_task_set
point2 = heavy_task_set point2 = heavy_task_set
if task in (empty_task_set + heavy_task_set) and item is None: if task in (empty_task_set + heavy_task_set) and item is None:
...@@ -288,7 +288,7 @@ class TruckInfo(WalkManage): ...@@ -288,7 +288,7 @@ class TruckInfo(WalkManage):
session_mysql.rollback() session_mysql.rollback()
continue continue
try: # try:
load_area_uuid_to_index_dict = get_value("load_area_uuid_to_index_dict") load_area_uuid_to_index_dict = get_value("load_area_uuid_to_index_dict")
unload_area_uuid_to_index_dict = get_value("unload_area_uuid_to_index_dict") unload_area_uuid_to_index_dict = get_value("unload_area_uuid_to_index_dict")
aa = task aa = task
...@@ -362,6 +362,13 @@ class TruckInfo(WalkManage): ...@@ -362,6 +362,13 @@ class TruckInfo(WalkManage):
self.truck_current_trip[i] = [start_eq_index, end_eq_index] self.truck_current_trip[i] = [start_eq_index, end_eq_index]
self.logger.info("walk_time_to_unload_area")
self.logger.info(walk_time_to_unload_area)
self.logger.info("end_area_index")
self.logger.info(end_area_index)
self.logger.info("start_area_index")
self.logger.info(start_area_index)
self.cur_truck_reach_dump[i] = ( self.cur_truck_reach_dump[i] = (
last_load_time last_load_time
+ walk_time_to_unload_area[end_area_index][start_area_index] + walk_time_to_unload_area[end_area_index][start_area_index]
...@@ -379,9 +386,9 @@ class TruckInfo(WalkManage): ...@@ -379,9 +386,9 @@ class TruckInfo(WalkManage):
# end_eqp_index = excavator.excavator_uuid_to_index_dict[item.exactor_id] # end_eqp_index = excavator.excavator_uuid_to_index_dict[item.exactor_id]
# self.excavator_hold_truck_num[end_eqp_index] = self.excavator_hold_truck_num[end_eqp_index] + 1 # self.excavator_hold_truck_num[end_eqp_index] = self.excavator_hold_truck_num[end_eqp_index] + 1
pass pass
except Exception as es: # except Exception as es:
self.logger.error("矿卡行程读取异常") # self.logger.error("矿卡行程读取异常")
self.logger.error(es) # self.logger.error(es)
# print("self.dump_hold_truck_num") # print("self.dump_hold_truck_num")
# print(self.dump_hold_truck_num) # print(self.dump_hold_truck_num)
...@@ -693,10 +700,24 @@ class TruckInfo(WalkManage): ...@@ -693,10 +700,24 @@ class TruckInfo(WalkManage):
def truck_reset(self, dump, excavator): def truck_reset(self, dump, excavator):
# 更新矿卡数量 # 更新矿卡数量
self.dynamic_truck_num = get_value("dynamic_truck_num") self.dynamic_truck_num = get_value("dynamic_truck_num")
# 更新矿卡集合 # 更新矿卡集合
self.dynamic_truck_set = get_value("dynamic_truck_set") self.dynamic_truck_set = get_value("dynamic_truck_set")
aa = self.dynamic_truck_set # 矿卡抵达卸载设备时间
self.cur_truck_reach_dump = np.zeros(self.dynamic_truck_num)
# 矿卡抵达挖机时间
self.cur_truck_reach_excavator = np.zeros(self.dynamic_truck_num)
# 矿卡最后装载/卸载时间
self.last_load_time = {}
self.last_unload_time = {}
# 相对矿卡最后装载/卸载时间
self.relative_last_load_time = {}
self.relative_last_unload_time = {}
# 矿卡当前任务
self.truck_current_task = {}
# 矿卡当前行程(第一列为出发地序号, 第二列为目的地序号)
self.truck_current_trip = np.full((self.dynamic_truck_num, 2), -1)
# 矿卡不可用列表
self.truck_disable_list = []
# 矿卡挖机绑定关系 # 矿卡挖机绑定关系
self.truck_excavator_bind = {} self.truck_excavator_bind = {}
# 矿卡卸点绑定关系 # 矿卡卸点绑定关系
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment