FANUC多路径等待:同样两个等待点,为什么顺序颠倒就无法继续?
依据30i/31i/32i-B等待功能,用两条参与路径的时间表计算正常等待,再比较A、B顺序互换形成的循环等待,区分加工节拍差与程序无法到达的等待点。
两条路径都停在等待指令,并不一定是某条路径加工太慢。如果它们各自等待一个对方必须先越过当前等待点才能到达的标记,继续等待时间再长,也不能消除这个顺序矛盾。
等待的是匹配标记,不是任意M功能完成
FANUC 30i/31i/32i-MODEL B说明书B-64482EN/03,§7.5,第254–255页(原厂手册公开镜像)说明,多路径等待以配置的等待M代码匹配其他参与路径,匹配完成后才执行后续程序段。等待指令须独立成段;这类M代码不向PMC输出,不能把它当成普通辅助功能,一律追查M功能完成信号。
以下取具备该功能的多路径系统中的两条参与路径建模,假定等待有效、没有忽略等待的操作,且没有其他参与路径。A、B只是概念标签,不是可输入机床的M代码。
正常顺序下,等待时间可以算出来
| 阶段 | 路径1 | 路径2 | 共同结果 |
|---|---|---|---|
| 到等待A之前 | 加工3 s,t=3到达A | 加工5 s,t=5到达A | t=5匹配;路径1等待2 s |
| A之后到B之前 | 再加工2 s,t=7到达B | 再加工4 s,t=9到达B | t=9匹配;路径1再等2 s |
这是原创时间模型,忽略指令执行开销。两段共同耗时为max(3,5)+max(2,4)=9 s,而不是两条路径全部加工时间相加的14 s。路径1有4 s处于等待,并不代表它自身的加工速度出了问题。
只交换一条路径的顺序,会发生什么
现在路径1按A→B执行,路径2却按B→A执行。路径1停在A,等待路径2到A;路径2停在B,等待路径1到B。两者都必须先解除当前等待才能到达对方需要的位置,因此形成循环等待。
与正常例不同,此时没有一个“再加工几秒就会到达”的对方路径。降低进给速度或延长等待并不能改变标记顺序。这个判断来自两条执行序列的依赖关系,不依赖假定某个超时报警一定会出现。
应同时查看两个执行位置
定位时至少要对应当前等待标记、参与路径、对方当前程序位置,以及两边是否处在同一轮加工流程。相同标记在程序中出现过,并不能证明本轮执行能够走到它;条件分支跳过某个等待点,也会改变匹配关系。
若一条路径仍在完成有限的加工段,应先分析节拍;若双方已停在互相不可到达的等待点,应检查程序顺序。等待关系常用于协调共享加工空间,不能以强制忽略等待来验证这个模型。更多程序行为资料见OPTION栏目。
