写TS遇到的坑

Bug

none_act_omi_index_recover
无行动,无索引,无恢复
复现:
一个订单状态为active,然后快速加车,快速调度

后续任务设置为True

却没有后续任务,在单个函数中,若在调用该函数会卡在第一个任务,agv车一直是dispatch状态
看日志是卡在check_task_events中

start to __check_task_events, task = 51, False, None, None,None

比如发个起点取货,然后导航,起点取货后置任务设为True。到后就直接成这个状态了
页面agv error 会一直报这个错误reassign set error
重新分配agv执行任务,置error
这里把agv类型分配错误了,agv_type 4事ants车,8是叉车

上方语句后续就没有了

正常的话日志还要有call back from

这种错误一定要删除数据表,不然之后的任务都跑不掉了

agv仿真车无故报错

插入数据库违反了键的唯一性

在日志中报错信息是

2022-03-30 09:35:39,471 [ts_template.py:490:__raise_error] [4212] ERROR Order(19) err_handle,err_code=103, err_detail=卸货时托盘不在车上, err_msg=
2022-03-30 09:35:39,472 [ts_template.py:723:task_event_call_back] [4212] ERROR Order(19) 回调时捕获到异常:103

这个若不插入下方的语句进行恢复,就会一直报这个bug,报错:卸货时托盘不在车上
p2a类型,取货时定义了托盘在库位上,然后取卸货去报错,卸货时托盘不在车上。
问题复现:
在Tslog文件中的om_init.log中发现,报错信息

ERROR insert_location Fail,err=错误:  重复键违反唯一约束"location_pk"

问题描述可知插入的location的id是主键,这里程序默认插入就与已有的数据库主键重复
疑惑点:
问题是TS中只创建了托盘名在某个库位下,为什么要插入个location id呢
解决方法:
执行一条sql语句即可

INSERT INTO layer2_pallet.location(
            location_name)
    VALUES ('RV99-1');

get_location_pallet_and_type常犯的错

该omi返回的是个列表,元素类型是元组。
当agv在同样的位置,就在取货位置再次发送请求(缘由在取货位置时候检测到库位上有托盘,终止取货,重新设置库位),会报异常

list index out of range

复现:
写的列表中查找元素确实超了索引

current_pallet_name = current_pallet_info[0]
current_pallet_type = current_pallet_info[1]

正确代码

current_pallet_name = current_pallet_info[0][0]
current_pallet_type = current_pallet_info[0][1]

莫名奇妙的问题

之前有任务出错,现在加货,却无法把仿真车跑起来,状态一直未dispatch
怀疑:是该任务已经执行了,但它的后置任务是设置为True,所以当你把这个任务取消之后,Agv车还是要执行该任务,但却取消了,所以就会阻塞。调用Agv的状态一直是dispatch.

车状态卡死

一直在dispatch,然后是由于之前的订单报错,传入的卸货地点错误,然后取消订单状态一直在waiting_cancel,接下来的订单就一直被阻塞。

易错点

get_fetch_locations_by_rule()传入的第一个参数是列表,而不是字符串

get_fetch_locations_by_rule([src],pallet_type)

get_parent_by_rule

写错写成get_parrent_by_rule;之后发现完全写错
get_parent_by_type(该omi才对)

加额外参数注意要给定默认值,位置参数若不传的话,他会报错,缺少默认值

missing 1 required positional argument

wait创建订单时格式不对

一个wait卡,所有wait卡死在这个状态中;并不是,其实时在TS目录下写了个另外的demo文件,结果无法解析该TS,导致所有TS无法解析

地图更换

不仅要更改调度里的地图,所有有关地图的相同文件都需更改,包括网页端上传的配置

常见页面报错语句

数据库没有连接上,是什么样的问题呢
页面的div class类属性是vl-notify vl-notify-msg;它会不断的弹窗:Connect DB failed, DB pool IS None!
具有config的文件
rest_api(该文件给到引擎数据),dispatch
一键启动工具并没有识别启动哪个程序集功能
还有会出现上方那种缘由确实是由于数据库连接不上,最主要的缘由是我用了start_project.sh脚本启动,好像也不是,确实是我之前的数据库配置错误了。换个方式启动,或者原先的启动关闭了,这个之前访问的url状态并不能保存

网络中断或其他缘由导致程序集关闭:也有可能是其他程序没有起来,比如,我只起了页面,就会报如下的错误
Error:Network Error,Connect Project Server Failed

posted @ 2022-03-24 17:35  索匣  阅读(96)  评论(0编辑  收藏  举报