AGV、RGV、四向车openTCS调度系统(六)openTCS订单的使用

运输订单

由类的实例表示,描述了由车辆执行的进程。 通常,此过程是货物从一个地点到另一个地点的实际运输。 然而,A也可以只描述车辆到目的地位置的运动以及要执行的可选车辆操作。TransportOrderTransportOrder

以下所有内容都是 openTCS 中“运输订单”的示例,即使实际上没有传输任何内容:

  • 将货物从某个地方运输到其他地方的经典订单:
    a) 移动到位置“A”并在那里执行“装载货物”操作。
    b) 移动到位置“B”并在那里执行“卸载货物”操作。
  • 操纵运输或固定货物:
    a) 移动到位置“A”并在那里执行“钻取”操作。
    b) 移动到位置“B”并在那里执行“锤子”操作。
  • 将车辆移至停车位置的命令:
    a) 移动到点“Park 01”(不执行任何特定操作)。
  • 为车辆电池充电的命令:
    a) 移动到位置“充电站”并在那里执行“充电电池”操作。

订单的生命周期

→ RAW:初始化状态
→ACTIVE:被激活
→DISPATCHABLE / UNROUTABLE:如果可以到达,状态更改为等待派发,如果目的地无法到达,状态更改为不可路由。
→BEING_PROCESSED:正在执行状态。
→WITHDRAWN:如果废弃了更改为废弃状态,
→FAILED:订单运行过程中失败,置为失败。
→FINISHED:订单结束。

在这里插入图片描述

订单组成结构

一个订单包含多个driverOrder,一个driverOrder包含一个目的地和对应的操作,对应0或者1个路由。如果车辆在原地做动作,路由为0,如果去到目的地做动作,路由为1。一个路由有多个step组成,小车适配器获取step执行。

在这里插入图片描述
在这里插入图片描述

创建订单

web API创建订单:在这里插入图片描述
rmi创建订单:

// 目的地列表,一个目的地对应一个driverOrder
List<DestinationCreationTO> destinations
    = List.of(
        new DestinationCreationTO("Some location", "Some operation")
    );
// 订单
TransportOrderCreationTO orderTO
    = new TransportOrderCreationTO("MyTransportOrder", destinations);
// 指定订单运行车辆,以及结束时间,可选。如果不指定运行车辆,内核会自动选择
orderTO = orderTO
    .withIntendedVehicleName("Some vehicle")
    .withDeadline(Instant.now().plus(1, ChronoUnit.HOURS));

// 创建订单
TransportOrderService transportOrderService = getATransportOrderService();
transportOrderService.createTransportOrder(orderTO);

撤销订单


// 根据订单名撤销
DispatcherService dispatcherService = getADispatcherService();
dispatcherService.withdrawByTransportOrder(someOrder.getReference(), true);

// 根据车辆撤销
DispatcherService dispatcherService = getADispatcherService();
dispatcherService.withdrawByVehicle(curVehicle.getReference(), true);

查看订单

web API:
在这里插入图片描述
rmi接口:


Set<org.opentcs.data.order.TransportOrder> transportOrders = kernelServicePortal.getTransportOrderService().
                fetchObjects(org.opentcs.data.order.TransportOrder.class, new TransportOrderFilter());

// 过滤器
public class TransportOrderFilter implements Predicate<TransportOrder>, Serializable {
  @Override
  public boolean test(TransportOrder transportOrder) {
    return true;
  }
}

上一篇:利用openTCS实现车辆调度系统(五)openTCS WEB接口及扩展
下一篇:路径规划二次开发

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值