1、问题描述:早上笼车回位时,最右边靠栅栏门位置的感应灯已全亮,但是未触发后续机器人过去进行搬运。后面出现目标位置已存在空笼车,但是出现回位的空笼车再次往那个位置搬运的情况。(经理角度的描述)
2.1 查询过程,数据库:查看机器人任务表,发现有taskid为空的记录,且对应为回位的类型而且是第一个回位的空笼车。
首先,RUN_ATATUR 为MSG_SENT,到回位相应的接口中查看逻辑,53的记录是代码中所写,sql插入,对应日志查看没问题,其他空的字段是在后面的程序中插入,需要获取到RMS的响应反馈后才会插入。
然后,继续查看对应日志,出现提示数据库操作异常。空指针异常。找到对应代码,初步猜测为某些值未获取到导致。taskid
然后,对比查看正常情况下的日志打印结果,有taskId
然后,取出BPE日志中的JSON数据进行对比,后面大括号中的一串json格式数据,在json格式转换器中进行转换对比,发现问题日志中缺少一段rms响应,再到对应UCP日志中查看是同样的json数据。UCP日志未报异常,说明未获取到RMS响应。
2.1.1 正常情况的回位触发movagv到回位点的json数据:
{
"BizDataModule": {
"BusinessInfo": {
"rspMsg": {
"retCode": "FFFFF",
"retMsg": "交易处理异常",
"serialNos": "G1tEWhhpiyvi"
},
"requestParam": {},
"content": {
"request": {
"request": {
"header": {
"clientCode": "ZARA",
"requestId": "f7680bcc24e04cd0b010f140fe6270c2",
"userId": "admin",
"version": "3.3.0",
"warehouseCode": "chengdu",
"userKey": "123456"
},
"body": {
"locationCellCode": "05250705",
"placementCellCode": "05250705",
"destCellCode": "05050645",
"taskType": "DELIVER_NEW_SHELF",
"instruction": "GO_RETURN",
"priority": 8
}
},
"msgType": "com.geekplus.athena.api.msg.req.RobotTaskRequestMsg",
"id": "zijin"
},
"rms": {
"response": {
"msgType": "com.geekplus.athena.api.msg.resp.RobotTaskResponseMsg",
"response": {
"header": {
"msg": "Success",
"code": 0,
"responseId": "f7680bcc24e04cd0b010f140fe6270c2"
},
"body": {
"taskId": 161955
}
},
"id": "zijin"
}
}
},
"reqMsg": {
"locationCellCode": "05250705",
"logicId": "3f1bbc422ac341ba89bf6c096b420f1b"
}
},
"TxData": {},
"TxProperty": {},
"System": {
"SerialNo": "G1tEWhhpiyvi",
"TxCode": "dispatch/control/moveShelfNoShelfCode",
"OriginalTxCode": "dispatch/control/moveShelfNoShelfCode",
"ucp_id": "UCP00",
"TimeOut": "300000",
"bpe_id": "BPE00",
"ThreadMark": "HttpAndWebsocketServer_666",
"ChannelId": "HttpAndWebsocketServer",
"TimeStamp": "1583109257198",
"BPEServiceName": "dispatch",
"OriginalChannelId": "HttpAndWebsocketServer"
}
}
}
2.1.2 此次异常的json数据:
{
"BizDataModule": {
"BusinessInfo": {
"rspMsg": {
"retCode": "FFFFF",
"retMsg": "交易处理异常",
"serialNos": "Dd4GRH7rFJmL"
},
"requestParam": {},
"content": {
"request": {
"request": {
"header": {
"clientCode": "ZARA",
"requestId": "9f5822d221fc495d837d0fde69e319a0",
"userId": "admin",
"version": "3.3.0",
"warehouseCode": "chengdu",
"userKey": "123456"
},
"body": {
"locationCellCode": "05350705",
"placementCellCode": "05350705",
"destCellCode": "04250665",
"taskType": "DELIVER_NEW_SHELF",
"instruction": "GO_RETURN",
"priority": 8
}
},
"msgType": "com.geekplus.athena.api.msg.req.RobotTaskRequestMsg",
"id": "zijin"
}
},
"reqMsg": {
"locationCellCode": "05350705",
"logicId": "46f955c559f047009a32d1ad96f879ea"
}
},
"TxData": {},
"TxProperty": {},
"System": {
"SerialNo": "Dd4GRH7rFJmL",
"TxCode": "dispatch/control/moveShelfNoShelfCode",
"OriginalTxCode": "dispatch/control/moveShelfNoShelfCode",
"ucp_id": "UCP00",
"TimeOut": "300000",
"bpe_id": "BPE00",
"ThreadMark": "HttpAndWebsocketServer_953",
"ChannelId": "HttpAndWebsocketServer",
"TimeStamp": "1583104166570",
"BPEServiceName": "dispatch",
"OriginalChannelId": "HttpAndWebsocketServer"
}
}
}
2.3 后续产生的RMS地图上已经有笼车,但是我们地图上没有,我们数据库未更新获取到笼车信息。导致会有其他笼车再次搬运到此目标位置来。第一次触发搬运的笼车已搬运到其目标位置,00000075,但是因为当时响应异常,未获取到taskid信息并更新任务表记录,导致后面笼车到位后回调未更新笼车位置信息,所有会有其他笼车搬运过来。