跳转到内容

5.4 程序下发

本节规定已发布版本或试制版本向数控机床下发的执行规则、结果判定与异常处置方法。 适用于操作工、编程员与管理员。

执行下发前应满足下列条件:

a) 目标机台已建立机台分配,落地文件名、目录与转换规则均已确认(见 5.3);

b) 待下发版本处于「已发布」状态,或为经批准的试制版本(见 5.5);

c) 操作人员具备 deployments.send.releaseddeployments.send.proveout 权限, 且授权范围覆盖目标机组;

d) 目标机台所属网关在线。

向机床写入程序文件包含删除、写入、确认三个动作。任一动作中断将使机床停留在内容不确定的 中间状态。

本系统将上述动作封装为单一事务,执行结果仅有两种:机床上为经校验的新版本, 或机床上保持原有程序。不存在第三种结果。

下发按图 5-11 所示的六个阶段顺序执行,各阶段的动作与失败处置按表 5-13 的规定。

①预检 ──► ②快照 ──► ③删除 ──► ④发送 ──► ⑤回读 ──► ⑥校验 ──► 成功
└──────────┴──────────┴─────── 失败 ──► 自动回滚快照

图 5-11 下发事务的阶段流程

表 5-13 下发事务阶段与失败处置

阶段 动作 失败时的处置
① 预检 校验机床可达性、程序号未被锁定、分配有效 机床未被改动,无需回滚
② 快照 读回机床上现有内容并存为快照 机床未被改动,无需回滚
③ 删除 删除目标文件 明确未删除时无需回滚;结果不明时执行回滚
④ 发送 写入转换后的内容 执行回滚
⑤ 回读 读回刚写入的内容 执行回滚
⑥ 校验 归一化后逐字节比对回读内容与发送内容 执行回滚,并将该文件标记为异常

下发结果仅在第 ⑥ 阶段通过时判定为「成功(已校验)」。发送完成或回读完成均不作为成功判据。

回滚结果按表 5-14 的规定取值。

表 5-14 回滚结果

回滚结果 含义 机床上的内容
无需回滚 失败发生在机床被改动之前 原有程序,未改动
已回滚 快照已成功写回并经回读确认 原有程序
回滚失败 快照写回失败 不确定

回滚失败的记录在设备页与机边操作台上持续显示,直至下一次成功的校验将其清除。

传输记录

图 5-12 传输记录页面

传输记录各字段的含义按表 5-15 的规定。

表 5-15 传输记录字段

字段 说明
机台 / 文件 目标机台及落地文件名
状态 排队中 / 成功(已校验)/ 失败
失败阶段 失败发生在表 5-13 六个阶段中的哪一个
回滚 无需回滚 / 已回滚 / 回滚失败
试制 本次下发是否为试制(见 5.5
排队时间 / 完成时间 任务的入队时刻与结束时刻

页面顶部可按机台与状态筛选,右上角显示「共 N 条,M 进行中,K 失败」。 总览页的「24 小时内失败传输」链接至本页的失败筛选视图。

下发失败后按下列顺序处置:

a) 查看失败阶段。失败发生在预检或快照阶段时,机床未被改动,可直接排查网络与机床状态;

b) 查看回滚结果。结果为「已回滚」时,机床上为原有版本,生产可继续; 结果为「回滚失败」时,按 5.4.5 的警告执行机边人工核对;

c) 查看失败详情。详情信息(例如 send failed: Network fault.)直接来自网关;

d) 排除故障后重新下发。下发操作具备幂等性,可直接重试。

常见失败原因与处理措施见 7.3

第 ⑥ 阶段的比对不是简单的字节相等比较。不同控制器在存取文件时会引入无害变换,包括:

a) 行结束符被统一;

b) FANUC 的 O 号前导零被去除;

c) 末尾空行被增删。

本系统按目标机床的厂商画像执行归一化后再比对,避免将控制器的正常行为判定为内容不一致。 真实的内容差异(即使仅相差一个字符)均能被检出。厂商差异见 6.2

a) 同一台机台在同一时刻仅执行一个传输任务;

b) 滚动镜像向真实传输让路,每一次网关调用之间均执行让路检查;

c) 滚动镜像跳过机床当前正在运行的程序。

因此后台备份不会导致下发变慢或被中断。滚动镜像的规则见 5.6

表 5-16 下发相关权限

操作 所需权限 具备该权限的角色
下发已发布版本 deployments.send.released 操作工、编程员、管理员
下发试制版本 deployments.send.proveout 编程员、管理员

授权范围可按机组限定,例如操作工仅可对本机组的机台执行下发。 角色与权限的完整定义见 6.1