提示:在很多时候,AGV在不同区域行驶的速度是由要求的。比如,在无人仓储区,AGV就可以用最大速度行驶(假设为1.2m/s);而在配送线上行驶,考虑到现场环境复杂,AGV的行驶速度就达不到1.2m/s。那么遇到这种情况时,如何使用代码一键修改AGV的速度呢?
AGV network
注意,以下内容仅适用于AGV模块。如果AGV没有与AGV模块共同使用,下面的方式可能并不适用你。
当拉入一个control Point后,在Tool那就会自动出现一个 AGV nerwork这个标识。双击点开后,界面如下图所示:
我们都知道,当AGV通过“A”链接到control Point 上时,AGV就归属于AGV模块了【AGV有没有归属于AGV模块,看AGV属性界面的Travel】。如果是Navigator:DefaultNavigator,说明AGV不属于AGV模块,且调整AGV的速度仍然是通过AGV本身"MaxSpeed"节点进行修改;如果是Navigator:AGVnetwork,说明AGV属于AGV模块,且调整AGV的速度需要通过AGV network上的属性实现。
当选择Navigator:AGVnetwork后,AGV属性界面上就会多出“AGV Traveler”的属性界面:
此时,AGV Type 默认为DefaultAGV。DefaultAGV就是【第一张图】对应的DefaultAGV。
下面我将举例说明,如何通过代码实现修改AGV的速度。 案例:现在有仓储和装配线两种AGV作业环境。仓储环境是无人化的,因此AGV在里面行驶的最大速度可以达到1.2m/s;装配线环境是有人且需要AGV配送物料的,因此AGV在装配线上行驶的最大速度只能达到0.8m/s。  第一步:在AGV network上,创建两张AGV速度表“AGV1”和“AGV2”。  修改好后,在control point 的on Arrival上写入以下代码:
Object current = ownerobject(c);
Object agv = param(1);
Object destCP = param(2);
double pathOffset = param(3);
double agvBodyOffset = param(4);
Var agv_name=agv.name;
Model.find("AGVNetwork>variables/agvs/"+agv_name+"/agvType").value = 1;//1表示AGV1,按顺序依次。
return 0;