线材车间的“现场课”,讲了将近两个小时。
从线材车间出来,已经是中午了。
四个人在食堂匆匆扒了一碗面条,就往微程序设计室走。
房间里,靠墙摆着两台午马机,连着二维卡读卡机,用于校验微程序,屏幕上滚着绿色的字符。
另一边摆着五台编程机,每台编程机连着二维卡制卡机。
另一面是一整墙顶天立地的柜子,里面放满了微程序二维卡,以及一本本的电路图、逻辑图。
孔宝祥走到一台午马机前,敲了一行命令。
屏幕上跳出一个文件目录,密密麻麻列着几百个文件名。
“线材车间的微程序组,一共包含67条微程序。”他敲了另一行命令,屏幕上开始滚动一行行绿色的字符,每一条都有编号、功能描述和实现方式。
他用手指点着屏幕。
“先说微程序的作用。工业计算机的每条指令,底层都是一段微程序。你们可以理解成,指令是给工程师看的,微程序是给机器看的。工程师写一条‘moV’,机器要执行十几条甚至几十条微程序,取数据、送数据、存数据、更新指针,一条一条来。”
他点着屏幕上的一行。
“比如这条,mo1,加热炉出钢控制。它的作用是:当加热炉的钢坯加热到设定温度,且轧机准备好接料时,出出钢指令。实现方式很简单,读取温度传感器的值,与设定值比较;读取轧机状态信号,确认准备好标志位为真;两个条件都满足,输出一个脉冲信号给推钢机。”
大张海凑过来看了一眼屏幕,皱了皱眉。
“温度比较的阈值,是固化的还是可调的?”
“可调。”孔宝祥把屏幕往下翻了几行,“这里是参数区,炉温上限、下限、出钢节奏,都可以在线修改。改完了不用重启,系统自动加载新参数。”
他继续往下讲。
“微程序怎么配置?不是67条全用上。不同的钢种、不同的规格,需要的微程序组合不一样。轧螺纹钢和轧盘条,控制逻辑差别很大。所以我们要为每种产品规格做一个‘微程序配置文件’,就像菜单一样。工人选‘螺纹钢12毫米’,计算机自动加载对应的微程序组合。不用每次重新配。”
苏明华听得很认真。
“特殊部分怎么办?有些产线有独特的设备,比如有些厂在风冷线后面加了一台在线测径仪。这个测径仪的控制逻辑,你们的微程序库里没有。”
孔宝祥站直身子:“从控制电路中提取逻辑。测径仪的控制电路,不管用什么元件搭的,它的逻辑无非是‘采样—比较—输出’。我们把它的输入输出信号摸清楚,画出真值表,写出逻辑表达式,然后转成微程序。这个过程有标准流程,不难。”
“怎么保证新加的微程序不冲突?”大张海问。
“地址分配。”孔宝祥在屏幕上调出一张表格,“微程序存储器有预留空间。每个功能模块的地址范围是固定的,只要不出这个范围,就不会冲突。我们还有一个‘冲突检测’工具,加载之前自动扫描一遍,现地址重叠会报警。”
他把表格放大,让三个人都能看清。
“这是微程序存储器的地址分配表。基础控制模块占oxoooo到ox1FFF,工艺参数模块占ox2ooo到ox2FFF,特殊功能模块占ox3ooo到ox3FFF。新加的微程序,只能放在ox3ooo之后,不会和基础模块冲突。”
大张海点了点头,在本子上记了一笔。
孔宝祥关了屏幕,转过身。
“微程序的‘现场课’,主要就这些。核心是三点:第一,每条微程序做什么、怎么做,心里要有数;第二,不同产线配不同的微程序组合,像配菜单一样;第三,特殊部分可以从控制电路里提取逻辑,转成微程序,有预留空间、有冲突检测,不会打架。”
他顿了顿,又补了一句。
“到了产线上,我们可能会遇到我没有讲到的情况。到时候电话打回来,要能准确描述问题,提出微程序的设计思路,确保北京这边能24小时之内,做出新的二维卡寄到现场,甚至最小作战单元就能现场制作二维卡加载新的微程序。”
从微程序设计室出来,已经下午三点多了。
四个人又往星河cad的机房走。
机房里比外面凉快了不少,空调出风口呼呼地吹着冷风。
墨绿色的机柜在日光灯下泛着冷光,指示灯一排一排地闪烁着。
大张海走到管理员终端前面,敲了一行命令。
绘图机开始编制一个芯片的内部结构图。
他又输入一个指令,调出工业计算机的芯片指令集。
“工业计算机的指令集,一共48条。数据传输、算术运算、逻辑运算、转移控制、输入输出,五大类。每一条指令,对应芯片内部的一组硬件逻辑。”
他指着屏幕上的列表。
“比如这条,add,加法指令。它在芯片内部对应的是一个加法器,一组逻辑门,把两个数加起来。工程师写add的时候,他不需要知道加法器长什么样,但芯片设计师必须知道。因为加法器的位宽、延迟、功耗,直接影响指令的执行度。”
不一会儿,绘图机绘制完成,大张海取下图纸,巨大的绘图纸上,黑色的线条密密麻麻,像一座微缩城市的地图。