试验场的三条时钟被写在白板上:控制器、现场采集箱、记录服务器。看起来都显示同一个北京时间,真正决定毫秒先后的,却是它们各自的内部计数器。
林浩给每套设备接入同一参考脉冲,先测传播延迟,再把延迟作为元数据保存。谁发出脉冲、谁收到、在哪根线上收到,每一步都有独立记录,不允许在软件里偷偷把曲线拖到看着顺眼。
第一轮校准后,压力曲线与阀门命令的错位缩到三毫秒。试验组刚要鼓掌,周野又关掉一条网线。记录服务器改走备用链路,错位立刻变成九毫秒。
现场工程师抱怨这属于故意找茬。梁师傅指了指墙上的应急流程:主路断线正是备用链路存在的原因。真出故障时才发现备用时间线不可信,比试验台上被周野找出问题难受得多。
他们把网络负载从闲时逐渐加到峰值,同时让阀门执行器做小幅周期动作。旧系统的错位随着负载伸缩,新系统只出现被标明的丢帧告警,没有偷偷挪动事件发生的时刻。工程师看到这组对照,才明白源头时间戳不是格式洁癖。
“原路稳,备路歪,这不是校好了。”周野说。
备用链路多过一只交换机,包到达的顺序偶尔被重新排列。新设计不再用到达时刻排序,而用源头时间戳与递增序号;丢包就明说缺了哪一段,绝不把后来到的旧包装成刚发生的新事。
梁师傅拿两个带标签的零件盒比划:“火车晚点,不能把车票日期给改了。你们这服务器以前干的就是这事。”
控制软件还有一处容易被忽视的细节。压力值每两毫秒更新,阀门指令每五毫秒形成一次。把两种采样直接画成连续曲线,看上去可以精确到每一毫秒,其实中间有几处是画图程序插出来的线。
周野让界面标出真实采样点,不在空隙处假装知道发生了什么。报警判断则使用经过验证的时间窗口,既能覆盖采样间隔,也不会把二十三毫秒的旧错误重新容忍进去。
飞控组做故障注入:人为制造真实阀门提前动作、压力传感器延迟、单通道丢包,以及两者同时发生。四种情况在屏幕上显示不同标签,不再全靠一盏红灯喊“出事了”。
真实阀门提前动作那一组,行程反馈首先偏离命令,现场独立测点随后出现压力变化,系统立刻禁止点火。只有记录包延迟的一组,源头时间顺序保持正常,界面亮的是数据链路故障,不再命令维修组拆一只本来完好的阀门。
压力传感器延迟的工况最难。它的数据值没错,更新却晚了几帧。周野要求界面同时显示“数据年龄”,超过阈值便把曲线画成灰色虚线,不能拿一条已经过时的正常值向值班员保证眼前安全。
陈大川看着不同颜色:“以后谁再说红灯一亮就一定是阀门,我给他看这四张图。”
“先别出圈。”吕建国把他拉回操作台,“真正要紧的是现场人员知道哪张图该立刻停机。”
试验主管组织一次不打招呼的演练。压力采集箱被拔掉一路信号,值班员没有盲目补开阀门,而是按手册切换独立测点、冻结点火许可。整套动作比上次快,却没有人因为赶时间跨过确认步骤。
改好的网关运行六小时,主路与备路轮流切换,最大时间差维持在事先限定范围内。控制器、压力采集箱和执行器行程反馈的时间顺序始终一致。
质量组把旧数据重新标注。原来被写成“主阀提前动作”的那次报警,真实发生的是记录包晚到;阀门从头到尾没有动。报告中保留原报警文字,并在旁边写明原因,不能事后把一声假红灯抹成没响过。
周野把校准步骤交给两班人员交叉执行。甲班接线,乙班只拿图纸和记录复核;换班后再反过来做一次。两边测出的传播延迟处在同一范围,说明办法不是只对林浩这双手有效。
负责值夜班的小陈在记录表末尾补了一句:若参考时钟失效,界面必须明确失去同步,不得自动沿用上一次校准结果。周野看完给她签了名字,真正可靠的流程往往就靠这样一句“不许装正常”守住。
总指挥终于重新签发点火许可。他问周野是否可以把这套同步方法复制到其他试验台,省得下次再争二十三毫秒。
“可以,但每台都得重新测线长与链路。”周野回答,“抄方法,不抄一个看起来很漂亮的延迟数。”
当天傍晚,模拟推进剂流经新管,主阀按命令打开。屏幕上先有指令,再有执行器动作,随后压力按预期变化,每一道证据都排在它应该在的位置。
倒计时走到十秒,监测席的那盏假红灯没有再亮。可真正的点火试验尚未开始,谁也不敢为一张安静屏幕提前庆祝。