3软件定义制造
工业软件成为机器的大脑,算法/算力急剧增加,软件定义了材料/零件/系统的时空表现。
尽管软件在很多高校和科研单位都被作为一个相对独立的专业来研究,但是作者认为,单独研究软件容易脱离软件运行的硬件基础,容易脱离软件以数据和决策所控制的物理设备。因为软件从来就不是一个仅仅具有“计算”属性的器物,而是还具有更重要的“控制”属性的器物。
软件作为一种数据、信息、知识的高度融合的数字载体,必须生存、运行在芯片中。软件与芯片形成了共生关系。芯片的功能与性能约束了软件的运行速度和可以定义的“能力”,而软件的程序化指令不断驱动芯片中的门电路和场效应管做“开”“关”运行,因此软件从诞生之日起就具有驱动芯片的“准CPS”特征。
软件和芯片之间的关系也是微妙和不断变化调整的。过去,软件必须去适应芯片,要基于芯片的约束来开发软件;而今天往往是为了软件更好地运行、最大限度地发挥软件性能来设计芯片,即基于软件需求去研发芯片。
首先,芯片具有为软件“容身、计算、存储”的作用,软件具有为芯片“赋值、赋能、赋智”的作用。软件与芯片的各自优点综合匹配在一起,才能发挥最好的效益。软件与芯片共同构成了一个融合体,是一个“准CPS”,很难说谁“定义”了谁。但有两点显而易见:软件是芯片强大算力的作用对象,没有芯片强大算力支持,软件很难发挥对物理实体的“赋能/赋智”作用;蕴含在软件中的人类知识是人造系统“智能”的源头,没有软件中的各种模型与算法知识的逻辑导引,芯片强大算力也失去了用武之地,同样无法形成对物理实体的“赋能/赋智”作用。
其次,软件所产生的决策与数据对物理设备具有精确的控制作用。
以CPU门电路中的场效应管为例,在软件数字指令驱动下,高电平(开/通电流)为1,低电平(关/断电流)为0,因此在该场效应管上不断以极速“开/关”的状态来进行计算,最终一组一组的门电路上输出了一串一串经过计算后形成的“1/0”排列的二进制比特数据,这些比特数据可以用来驱动显示设备(如各种显示屏),也可以用来驱动物理设备中的控制器,让机器或产品精准运转,由此而体现出软件对芯片、外设、物理设备的控制性。
早期软件只在电脑上使用,硬件范围只包含一些显示、打印等外部设备,软件运行的结果只需要显示在硬件屏幕上,可能是显示数据,可能是曲线曲面,可能是图像或声音,但是,这些计算结果并不要求形成“闭环”,只要能辅助人进行决策就可以了。而今天,硬件范畴已经扩展到所有与电脑联接的工业设备,软件运行的结果是要用来驱动物理设备的,是要与物理设备形成“闭环”的(见下节论述),即物理设备的每一个细微动作都被感知到,都要通过传感器反馈到软件中,软件根据物理设备的“此时此刻”的工作场景进行计算,根据内嵌的机理模型或推理规则进行决策,给出物理设备下一步的最优化、最精准的动作指令。因此,软件和芯片,与工业设备之间的关系就变得实时、紧密、并且是丰富多彩了。