资讯

会绕行,更会脱困:NDC如何避免一台车堵住整个系统?

转载 2026-09-24 10:19 科尔摩根 来源:科尔摩根
科尔摩根自动化AB

如果AGV在运行的过程中遇到障碍物后长时间未移动,在空间允许的情况下可以做自动绕障绕开障碍物,但是如果空间不允许绕障怎么办?会造成后续车辆都堵塞在一起。

使用NDC系统,调度可以智能识别路径上长期存在的障碍物,并智能规划后续车辆绕行其它路径,甚至在可能的情况下可以让已经被堵塞的车辆后退出堵塞区域,智能选择其它路径到达终点,以避免单点堵塞影响整个系统运行。

在正常运行时A点到B点之间乙路径耗时最短,AGV默认走乙路径。

当AGV在乙路径上遇到障碍物停车后,经过长时间障碍物未移开并且空间不足以让AGV绕开障碍物的时候,AGV会通知调度系统此处有长期存在的障碍物,并且空间不够绕障,调度系统会智能规划后续AGV绕行其它路径。当前车辆,直至障碍物被移开后,才能同行。

在允许的情况下,调度系统还可以让当前车辆沿来路后退,由其它路径到达目的地。

那该如何实现上述的方案呢?

请看下面的5个技术要点,

具体细节还请咨询科尔摩根技术人员

01 在openpcs里面设置一个安全区域检测的停止位StopSafety,StopSafety持续预设的时间后产生一个自定义的UserEvent,比如说222.

(*generate events*)

StopRT (CLK:=Stop);

if  StopSafety.Q  then

EventQueue (EventCode:=EventID,

Par1:=NDC8.LayoutPosition.NextSegment1,

Par2:=0,

Par3:=0,

Par4:=0);

a:=TRACE DINT ('Event Code', EventQueue.EventCode) ;

End_if;

参数1是当前车辆所在线段的下一个线段。

提示:这里需要综合考虑安全区域的长度,线段的长度,以及系统默认提前分配线段数量等因素,具体细节请咨询科尔摩根技术人员。

另外,使用EventQueue的话要在Main里面调用EventHandler().


02在System Application Designer的GeneraParameters-> Event Started Orders->User events里面设置一个对应的转换表,把这个UseEvent转换成TS号,系统收到这个UseEvent后会启动对应的TS。


03在System Application Designer的Parameter Convert里建一个转换表,这里是表1,系统收到UserEvent 222后会调用TS 99。


04建立一个TS 99,UserEvent里面带的参数1就是车辆当前的线段会出现在TS 99 的local parameter 7里面。(详细细节请参照Online文档中的相关章节)。


05TS99使用LaySegB指令屏蔽UserEvent传来的线段。(LaySegB的详细说明请参照Online文档中的相关章节)。

这样车辆停止位置的下一个线段会被调度锁住,后续调度在分配路径的时候会自动避开这个路径实现智能规划。

点击文末“阅读原文”,欢迎垂询!

关于科尔摩根-自主移动解决方案

拥有五十余载历史的Kollmorgen–Autonomous Mobile Solutions,即科尔摩根-自主移动解决方案(科尔摩根AMS),通过对自动导引车辆(AGV)和移动机器人(AMR)制造商等合作伙伴的赋能,在各应用领域部署了数万辆先进的 AGV 和 AMR 车辆。

科尔摩根AMS的NDC解决方案是由车辆自动化组件、系统软件和设计与扫描工具组成。NDC 8平台包括用于管理车队和有效引导车辆的软件,以及用于导航和控制的硬件。

科尔摩根AMS的核心价值在于助力合作伙伴实现多项目标,包括同系统调度多种车型;具有较高的系统稳定性和强大的项目交付能力;可降低从前期项目实施到后期系统运维各方的实际总成本。

取消