理论组的数学模型还要等多久,没人说得准。
陈教授走的时候说“一个月”,但谁都知道,那是最乐观的估计。
数学这东西,卡住了就是卡住了,急不来。
吕辰索性不去想了,转头扎进了自动化控制中心的档案室。
这里是“掐丝珐琅”电路板的图书馆。
顶天立地的铁皮书架靠墙排列,一排接一排,像沉默的士兵。
每一块掐丝珐琅电路板都装在一个定制的木盒子里,盒子外面贴着标签,写着编号、产线名称、功能描述、设计者、设计日期、最后修改日期、对应的电路图编号。
标签上的字迹各不相同,有钢笔的、有圆珠笔的,有的工工整整,有的潦草到几乎认不出来,但编号那一栏永远清晰,那是索引,是密码,是通往逻辑迷宫的钥匙。
电路图单独存放在另一侧的柜子里,按相同的编号体系归档。
图纸是手绘的,硫酸纸,墨线描的,有些已经发黄卷边,边角处还能看见橡皮擦过的痕迹和修改时留下的铅笔批注。
每张图纸都覆了一层薄薄的透明纸,防止翻阅时磨损。
吕辰抽出一张来看,是鞍钢热轧线的顺序控制电路,图幅大得能从桌面一直铺到地上,线条密密麻麻,像一座微缩城市的交通图。
分类的依据有两级。
一级按产线,轧钢类、热处理类、锻造类、轴承类……
二级按功能模块,顺序控制、连锁保护、pId调节、数据采集……
每一块电路板都有一个编号,就像图书馆的索书号。
比如“RG-01-003”,代表轧钢线(RG),顺序控制模块(01),第3号方案。
这个编号,既是索引,也是“基因代码”。
工业计算机的微程序模块,就是从这些编号里提炼出来的。
吕辰站在书架前,手指从一排排标签上划过,心里估算了一下,上千块电路板,上千套图纸。
这是自动化控制中心这些年的积累,是无数个通宵达旦的成果,也是工业计算机最原始的“需求文档”。
他抽出一盒电路板,打开盖子,里面是一块A3纸大小的掐丝珐琅基板,铜线走线在陶瓷基底上蜿蜒,像一条条凝固的河流。
继电器、接触器、定时器、计数器,密密麻麻地焊在上面,有些元件的引脚上还套着绝缘套管,颜色已经泛黄,但焊点依旧光亮。
吕辰把盒子合上,放回书架,转身走向隔壁的分析大厅。
这里才是真正的主战场。
二三十张绘图桌排成几排,每张桌子上都堆着图纸。
不是“几份”,是“几摞”。
高的能堆到半人高,矮的人趴在桌上,图纸摊开,几乎看不见人。
从门口看进去,只能看见一堆堆的图纸,和偶尔从图纸后面露出来的头顶。
门口的桌子上还码着几大箱未拆封的牛皮纸信封,都是从全国各地汇来的控制柜电路。
鞍钢的、包钢的、武钢的、本钢的,还有各地机械厂、轴承厂、管材厂的。
每到一个新项目,都会复印一份图纸送到这里存档。
这个大厅,就是自动化控制中心的核心“作战室”。
吕辰走到自己的张桌子前,把帆布包往地上一放,坐下来。
桌上已经摊着三张图纸,是李师兄昨晚临走时留的,最上面一张用红铅笔圈了几个地方,旁边写着“注意:此回路与标准模板不同”。
他拿起放大镜,带灯的那种,底座是铸铁的,很沉,不会倒。
灯管已经用了很久,光线有些发黄,但照在图纸上刚刚好,不刺眼,能把那些细如发丝的线条和比蚂蚁还小的标注看得清清楚楚。
旁边还摆着不锈钢尺子、红蓝铅笔、笔记本,和一个搪瓷缸子。
缸子里的茶是早上泡的,又浓又苦,虽然凉了,但提神。
吕辰把放大镜移到图纸左上角,从那里开始,一条线一条线地看。
找逻辑的过程,说穿了就是一个人、一张桌子、一摞图纸。
先把一张图纸完全看懂,信号从哪儿来,到哪儿去,触发什么动作,连锁什么条件,定时器设多久,计数器计到几。
每一根线都要找到它的起点和终点,每一个元件都要知道它的作用和参数。
这张图是包钢冷轧线的张力控制回路。
吕辰从信号输入端开始,顺着线条一路往下走,经过比较器、pId调节器、限幅电路,最后输出到电机调速装置。
中间还有几个连锁触点,一个来自上游的“来料检测”,一个来自下游的“卷取机速度反馈”。
如果来料断了,张力控制立即停止输出;如果卷取机速度异常,张力自动减小。
看懂之后,他在图纸上画红圈,圈出“可以做成通用模块”的部分。
比较器、pId算法、限幅逻辑、连锁条件判断。
然后在笔记本上记录。
模块名称:张力控制模块v1.0
功能描述:根据设定值与反馈值的偏差,自动调节电机转速,维持恒定张力
输入输出:设定值(模拟量)、反馈值(模拟量)、使能信号(开关量)、输出控制量(模拟量)
逻辑步骤:8步
特殊要求:支持pId参数在线调整
写完,他把图纸翻到下一页。
这是同一个产线的不同部分,张力控制回路的另一种实现方式。
用的是不同的传感器、不同的调节器结构,但核心逻辑是一样的。
偏差→计算→输出。
他在笔记本上又加了一行:对比方案A用模拟pId,方案b用开关式调节。建议通用模块同时支持两种模式,可配置。
然后换下一张图纸,同一个产线的不同部分,不同产线的同一功能,来回比对。
找共性,也找差异。
共性的东西做成通用模块,差异的东西做成可配置参数。
这个过程,枯燥、繁琐、费眼睛。
看久了,眼睛酸得直流泪。
吕辰从抽屉里摸出一瓶眼药水,仰头滴了两滴,闭了一会儿眼,再睁开,继续看。
旁边的老周也在滴眼药水,两个人对视一眼,苦笑了一下,谁都没说话。
每隔一段时间,会有人站起来,拿着笔记本走到旁边的黑板前。
“大家看一下,我发现一个东西。”
然后他在黑板上画一个简化的逻辑图。
几个人围过来,看着黑板,翻自己的笔记本,确认自己看到的和这个人看到的是不是一样。
如果一样,就在笔记本上打个勾。
如果不一样,就讨论,是图纸不同?还是理解不同?还是真的存在差异?有时候争论起来,声音越来越大,隔壁办公室的人都过来看。
赵老师带队去了架桥机项目,李师兄就是临时的“裁判长”。
他听两边说完,翻开自己的笔记本,找出相关的记录,给出判断。
争论完了,结论记下来,大家回去继续看。
吕辰今天发现了一个有意思的东西,首钢热处理线的升温控制回路,和鞍钢的完全不一样。
首钢用的是“三段式”升温,快速升温到设定值的80%,然后慢速逼近,最后进入保温阶段。
鞍钢用的是“恒定功率”升温,简单粗暴,但温度过冲大。
他在黑板上画了两条曲线,一条陡峭但有尖峰,一条平缓但时间长。
“两种思路,各有优劣。”他指着曲线说,“首钢的方案精度高,但逻辑复杂,需要三个比较器、一个定时器、一个状态机。鞍钢的方案简单,但温度过冲大,对某些钢材不合适。”
李师兄站起来,走到黑板前,拿起粉笔在两条曲线下面各写了一行字。
“首钢方案:精度优先。鞍钢方案:速度优先。”
他转过身,看着屋里的人:“通用模块能不能同时支持两种模式?让用户自己选。”
吕辰想了想,在笔记本上写下:“升温控制模块支持‘三段式’和‘恒定功率’两种模式,可配置。建议硬件支持多路比较器、可编程状态机。”
旁边有人举手:“如果两种模式都不够用呢?用户想自定义升温曲线怎么办?”
吕辰又加了一行:“预留‘自定义曲线’接口,用户可自行设定升温速率和保温点。”
讨论持续了十几分钟,最后定下来的方案写了满满一页纸。
李师兄把结论抄在黑板上,让大家各自记下来,然后散了,回去继续看图纸。
旁边的微程序编写室,是另一个战场。
分析大厅的人写的是“伪代码”,不是计算机能直接识别的指令,而是人类能读懂的逻辑步骤。
比如:
步骤1:读入温度传感器信号
步骤2:与设定值(1500度)比较
步骤3:如果高于设定值,跳转到步骤4;否则跳转到步骤5
步骤4:输出“切断加热”信号,启动定时器
步骤5:等待10秒
步骤6:再读一次
步骤7:如果仍然高于设定值,输出“报警”信号
这个“伪代码”,分析人员能看懂,但计算机不认识。
微程序编写室的人,负责把这个“伪代码”翻译成编程机能识别的“汇编语言”,然后编译成机器码,最后打在二维卡上。
四五个编程机一字排开,每台前面坐着一个人。
有的在翻分析人员送来的笔记本,有的在键盘上敲指令,有的在调试,有的在打孔。
编程机连着二维卡打孔机,嗡嗡地响。
操作员把一张空白卡片塞进去,机器“咔嗒咔嗒”地打孔,打完一张,弹出来,放进旁边的盒子里。
盒子分两种,一种是“待校验”,一种是“已通过”。
校验是双人制,一个人打孔,另一个人在另一台机器上读卡,确认打孔内容和源程序一致。
不一致的,重新打。
吕辰走到校验台前,随手拿起一张刚打好的卡片,插进读卡机,屏幕上逐行显示读出的指令。
他对照着旁边的源程序,一行一行地核对,看到第三行的时候,眉头皱了一下。
“这里,地址码少了一位。”他把卡片抽出来,递给操作员,“重打。”
操作员接过去,翻出源程序对照了一下,不好意思地笑了笑,重新开始打孔。
每天下班前,当天的二维卡会被送到“存档室”,按产线分类,放进专门的柜子里。
每条产线一个抽屉,抽屉上贴着标签。
鞍钢热轧线、包钢冷轧线、首钢热处理线……
抽屉里还放着一张“目录卡”,记录着每个模块的编号、名称、版本号、存放位置。
翻目录卡,就能找到对应的二维卡和图纸。
吕辰等人三班倒,不分昼夜地接力。
白天,主力人员在分析大厅看图纸,微程序编写室满员运转。
绘图桌上堆满了图纸,每个人面前都摊着好几摞,红蓝铅笔的笔尖磨秃了一根又一根。
有人站起来去削铅笔,有人趴在桌上睡着了,手里的铅笔还握在指间,图纸上画着半圈的红线。
吕辰有时候会去叫醒他们,但更多时候是让他们睡。
实在撑不住了,身体比意志更诚实。
晚上值夜班的人接班,人少了,但活不停。
夜班的主要任务是“整理”和“验证”,把白天发现的逻辑模块整理成标准格式,或者把白天打好的二维卡插到读卡机上跑一遍,确认没有语法错误。
凌晨最安静的时候。
整栋楼都沉在黑暗里,只有这个大厅还亮着灯。
有人趴在桌上睡着了,手里还握着铅笔,图纸上压着胳膊肘,压出一道褶子。
有人站在窗前抽烟,看着远处轧钢厂的灯火,那灯火通明,像另一座不夜城。
有人还在翻图纸,放大镜的灯光在图纸上移来移去,像一只萤火虫,在逻辑的森林里寻找路径。
早上八点,夜班的人把交接本交给白班的人。
本子上写着:昨晚验证了17张卡,全部通过;发现一个问题,某模块的逻辑步骤有歧义,已标注,请白班确认。
白班的人接过本子,坐下来,继续干。
没有计算机辅助设计,只有放大镜、铅笔、图纸。
没有自动化测试,只有人工核对、双人校验。
没有项目管理软件,只有交接本、档案柜、墙上贴的进度表。
但就是在这样的条件下,他们开始做工业计算机了。
吕辰有时候会站在门口,看着大厅里那些埋头苦干的人,心里有一种说不清的踏实。
这些人里,有头发花白的老工程师,有刚毕业没几年的年轻人,有从车间抽上来的老师傅。
他们不懂芯片,不懂汇编,甚至有些人连计算机都没见过。
但他们懂逻辑,懂温度到了要切断电源、压力超了要启动泄压阀、钢板到位了才能启动轧机。
这些东西,在“掐丝珐琅”控制柜里,是用继电器、接触器、计时器搭出来的。
现在,他们要把它变成微程序。
自动化控制中心的人不需要知道芯片怎么做,就能写出微程序。
因为他们写的不是“芯片指令”,而是“逻辑步骤”。
这些步骤,用继电器能搭,用微程序也能写。
他们不懂芯片,但他们懂逻辑。
这就是芯片还没设计出来、微程序库就要建立的的根本原因。
吕辰面对的是130条产线的控制柜电路图,做的不是“设计芯片”,而是“提炼逻辑”。
每看懂一张图,就能写出几十条甚至上百条“逻辑步骤”。
看懂一个升温控制电路,就提炼出“升温控制模块”,写成几十条逻辑步骤。
看懂一个连锁保护电路,就提炼出“连锁保护模块”。
看懂一个顺序控制电路,就提炼出“顺序控制模块”。
130多条产线,每一条都有几十个甚至上百个“控制回路”。
每个回路都能提炼出一段逻辑。
他们已经写出来上万条微程序了。