讲工业软件,必须先讲软件。《软件工程通史》对软件发展作出了以10年为周期的若干阶段界定。由此可见,数学知识软件化历史与计算机历史同步发展。基本汇编语言是软件的早期形态,大约200个汇编/宏汇编语言软件被开发,其中100个用于军事/国防,75个用于科学。
软件一词于1956年在美国被正式提出,是指计算机程序及说明程序的各种文档。现阶段,软件发展存在以下五大趋势:
一是计算技术重心转向网络化,互联网成为软件开发、部署和运行的平台;二是软件服务化趋势逐步以应用和软件产品为中心转移到以客户服务为中心;三是智能化趋势逐步由物理传感器状态感知分析向人类意识思维方向转变; 四是操作系统、数据库、中间件和应用软件等相互融合,向一体化平台发展; 五是大量创新技术、业态模式推动人类社会、国民经济各行业、数字经济市场快速发展。
第三次工业革命诞生了电子数字计算机和软件,从这个意义上而言,电子数字计算机、软件、工业软件均为工业产品。然而实际上,电子数字计算机和软件的出现逐步将人类知识转化为软件,也称为人类知识软件化,如图1所示。
图 1 人类知识软件化趋势
高级编程语言为人类数百年形成的工业知识和技术能力插上软件的翅膀,工业技术软件化开始了万里长征第一步,工业技术(知识)融入计算机软件。PatrickJ.Hanratty1957年在GE工作时开发了一个由编制数控程序的CAM系统——PRONTO,据今在用的3D机械CAD/CAM系统中仍存在70%可追溯的原始代码。
由此可见,第一款CAD/CAM软件就是用于制造业数控编程。软件化知识意味着模块化、系列化、标准化、共享化、数字化知识,给予人类知识全新的属性和力量,让工业界基于知识加速进行产品创新。在产品创新中,将已经软件化的知识不断优化、重组和二次创新。
第二代工业软件成型及应用于1960-1979年,诞生了商用工业软件。随着CRT单色显示器能显示曲线,绘图机能绘制曲线,出现了计算机辅助绘图软件(CAD)。然而,初期软件程序员必须熟练使用汇编指令,编程过程耗时费力。高级语言出现,简化了编程过程,形成实用的软件功能。
此外,商用软件进入快速增长期,工业技术软件化自身发展在一定程度加速了基础知识软件化、软件知识工业化发展的脚步。例如,CAX软件研发不仅需要与工业需求相匹配,还需具备平面几何、立体几何、曲线曲面计算、算法与恰当的图形显示表达等方面知识。因此,该时期CAD属于辅助设计软件。
图2 工业发展和工业软件进程
从第一款CAD软件研发后,一系列CAD软件纷纷面世。工业技术软件化伟大进程在CAD软件与技术发展脉络中可见一斑,如图2所示。计算机辅助工程(CAE)软件也是在大量工业需求下出现的产物。第一套通用型有限元分析软件是为了满足航天航空工业对结构分析的需求,美国国家航空航天局(NASA)阿波罗登月计划目的是实现载人登月飞行和对月球的实地考察,为载人行星飞行和探测进行技术准备。因此,诞生了NASTRAN和I-DEAS(集成化机械设计与工程分析系统)软件。
开发CAE软件是为了利用计算机辅助技术,求解航天、航空工程中复杂产品的结构强度、刚度、屈曲稳定性、动力响应、热传导、三维多体接触等问题,后续发展为解决大绕度、大应变、粘弹性、蠕变、流体、电磁等复杂非线性问题,及对嵌入式系统软件进行代码验证、模型验证、硬件在环综合验证等系统仿真问题。
通过上述软件发展过程可见,第一个CAD软件是为了满足数控加工需求,第一个CAE软件是为了满足航天航空复杂产品需求。工业技术软件化完全是由工业的内生需求牵引和驱动的一场工业领域研发与生产工具的伟大变革,为研制与创新工艺品提供了一种新能力。由此可见,工业需求牵引是工业软件开发的动力,工业软件的核心是长期积累的产品设计知识、工艺知识和生产制造知识。
计算机出现后,可将多年积累、反复验证后的工业知识转化为工业软件,将人的知识转化为机器知识。世界工业软件发展的最佳案例就是Francis Bernard开发的CATIA,奠定了世界工业软件排名第一的辉煌。
工业技术软件化,工业知识技能至关重要,数学方法、软件工程思想应用也必不可少。例如,世界上第一枚二极管、三级管和集成电路都来自于贝尔实验室,第一台数字计算机、软件概念、人工智能概念均为美国创造。因此,必须清醒认识到:工业创新才是中国工业软件的核心,缺乏工业和制造业创新就无法产生自主研发的工业软件。
亚当·斯密《国富论》中的分工理论系统阐述了劳动分工对提高劳动生产率和增进国民财富的巨大作用。回顾计算机发展历程,1946年世界第一台电子数字计算机ENIAC只有硬件,没有软件和操作系统,后来研发出软件,发展至今一直沿用冯·诺依曼体系架构。
1. 硬件架构分工
1965年前,每台计算机操作系统均为IBM360系列,标志着计算机工业化开始。1981年出现个人PC计算机,配置8088 CPU和存储器,外设包括CRT、键盘、软盘和打印机。随着计算机性能要求不断提高,数学处理器8087协处理器(Co-Processor)产生。由于在开发CAD时发现,确少8087协处理器将无法支撑大规模CAD计算,因此形成了8088CPU和8087协处理器分工,如图3所示。
图3 支持CAD的PC架构计算机
常规显示器、键盘、磁盘机和打印机已无法满足CAD软件使用,必须添加新外设,例如绘图机、光笔、TABLE‐LAT(光学版,那时没有鼠标)等。然而,外设增多将导致8088CPU处理能力下降。为此,需要在计算机外加一个8089通道处理器,专门处理外部设备数据输入输出。此外,当时8088、8087、8089这3个芯片构成了控制、数学计算和外围设备处理的核心计算机。
2. 软件体系分工
回顾计算机软件发展历程,1956年才有软件和操作系统。直到1965年前,每台计算机仅存在一个操作系统,相互不统一也不共享。之后,陆续出现了数据库、汇编语言、应用软件等通用软件,如图4所示。
图4 计算机软件体系分工
从通用软件发展到专用软件,存在多种操作系统,例如嵌入式、分布式、实时操作系统、网络操作系统等;数据库包含关系型、层次型、实时数据库、分布式数据库等;编程语言包括汇编语言、FORTRAN、BASIC、COBOL、C+等;
应用软件从信息管理发展到研发设计、生产控制、嵌入式软件等。本文倡导工业软件新生态,将专业软件发展为通用软件,面向航空、汽车、造船等不同行业。例如CATIA、西门子、PTC或AUTODESK,可同时应用于航空、汽车、造船、建筑等行业,如图5所示。
图5 全球工业通用软件
本文以CATIA为例,该软件结构设计功能强大,复杂曲面功能优秀,从点到曲线curve、线架wireframe、曲面surface,最后重构实体。因此,在全球航空工业、汽车复杂外形设计领域广泛使用。
国内最早大规模用CATIA的是中国航空工业集团第一飞机设计研究院,CATIA V5就是近20年在国内使用过程中优化成熟的产物。CATIA V5刚发布时共包括200多个模块,经过第一飞机设计研究院团队分析后,确定真正适用于飞机设计的不到60个,缺乏飞机设计专用功能模块,因此花费高额资金购买了两个CATIA开发包权限。
2000-2002年,在新飞豹设计中第一飞机设计研究院基于开发包开发了几十个CATIA航空专用模块,加上购买的近60个通用模块,共有上百个模块。目前,通过研制新飞豹、空警2000、ARJ21、运20等系列飞机型号,已积累几百个基于CATIA平台自主开发的模块。虽然,各大飞机设计厂商均采用CATIA架构,但第一飞机设计研究院的CAITA与波音、洛马、空客和法国达索系统公司的CATIA完全不一样。
由此可见,如此复杂庞大架构的CATIA,航空工业只能用到一小部分,其中近300个模块可供汽车行业使用的不到30个,大量中小企业可用模块更少。并且,中小企业在资金、高级人才短缺的情况下,根本难以组织团队实现自主开发。
全世界工业软件龙头企业基本选择通用工业软件发展路线,从人类分工到计算机架构分工,再到系统软件分工。中国的工业软件企业可针对较为完整的工业体系行业,例如家具、箱包、服装、家电和汽车等,开发专用设计、仿真、工艺和制造软件,集中优势研发,与现有成熟工业软件相互结合,如图6所示。
图6 构建中国工业软件新赛道专用工业软件
工业软件是必由之路,但中国90%以上中小企业无法负担大型工业软件费用。因此,中国工业软件发展之路应向行业专用工业软件方向发展。专用工业软件相较于通用工业软件更经济、简单、好用,占用的计算、网络资源相对较少,对中小企业优势更大。
1.工业知识原创是核心
工业知识的核心为原始创新。国产的“卡脖子”工业软件应从数学计算方法和工业技术物理现象领域入手,对该问题认识的高度和目标决定了解决工业软件“卡脖子”研究的突破方向,关键在于CAE、CAD技术研究积累,两者间存在先CAE后CAD的内在物理关系。
工业品设计力学原理从应用数学有限元分析起步,转化为计算机辅助设计的技术。由于工业品设计的核心是技术物理参数、常数,因此无法存在一套通用软件解决中国所欠缺的工业软件问题,需按照工业分类研发出多类别国产工业软件。
2.知识产权保护是生命线
工业软件实际上是工业设计、研制方案的计算仿真工具,清晰地定义所谓的工业软件为工业设计方案仿真计算工具。但在如今知识大爆炸时代,也是知识快速传播时代,迫切需要加强中国知识产权保护工作。
然而,部分地方政府对工业软件知识产权保护仍落实不到位,以致于国内一些知识网站还出现了盗版工业软件的销售广告;许多企业缺乏尊重知识产权的意识;部分工业软件公司口头上号召保护知识产权,幕后却千方百计破解好用的工业软件,供自己参考借鉴。因此,若不下决心做好知识产权保护工作,就难以真正实现中国自主工业软件研发。
3. 工业软件难点是复杂产品
工业软件过去40多年来,在大型复杂产品大规模应用中培养了一大批熟练掌握三维设计的工程技术人员;逐步完善、改善应用,形成了目前国际三维设计标准;大规模复杂产品在设计、反复迭代以及应用中,持续发现软件问题并升级换代,形成了现在大量的成熟工业软件。例如,大型轿车可安装彩电、冰箱、空调等家电。但是,不能因工业软件能设计家电,就推而广之到处宣传其可设计汽车,因为家电只是汽车中的一个设备,复杂度完全不对等。同理,当能设计汽车时就宣传软件可设计飞机,也是不合理的,因为汽车设计牵涉约40多个专业门类,而飞机设计牵涉至少200多个专业门类。
此外,工业软件的复杂产品应用是考题,也是难题,只有通过应用,才有可能进行推广。因此,无论是开发、算法、软件架构还是大规模应用,核心都是复杂产品。当复杂产品做好了,大规模推广就容易了。
4.以前工业软件上云是必然趋势
以前,中小企业工业软件使用率低的原因主要有以下3点:
①缺乏资金。部分工业软件价格高达数十万元,甚至数百万元。
②缺乏技术。工业软件应用需要掌握较深的理论知识和应用经验,中小企业缺乏工业软件相关技术,应用软件难度较大。
③缺乏人才。中小企业科技人员相对较少,还要身兼数职,分工也不够明确,而工业软件的深度应用必须要聚焦,因此对于中小企业的工程师而言通常难以做到。
在云时代,工业软件上云可实现按需使用、按次收费,大幅度降低了资金成本。但实施后发现,工业软件上云后却无人问津。云时代,服务可以开放化,可以由全社会技术专家提供服务,每个人都可能是服务提供者和受益者。
过去,在软件开发商处购买产,如果开发服务人员的专业与购买方专业类似,就能够便于提供行业化、知识化等专业性服务,而一旦专业差距较大,就只能提供常规软件应用服务。
服务开放化后,企业总能以最低成本找到对公司特别了解的服务者,他们提供的服务可能相较于软件公司更专业、精准。工业软件与中小企业亲密接触的方案,既不是工业软件放低身段委身中小企业,也不是中小企业踮起脚尖高攀工业软件。而是通过工业云开辟一个新时空,中小企业、工业软件和社会化服务者三方相互结合,形成工业软件云生态。
5. 工业APP不能解决所有问题
工业APP将工业产品及工业过程的知识和技术显性化、模型化、软件化后,形成模块化软件,本质是工业知识和技术软件化。传统工业软件是生产工具的数字化,工业APP则是知识、技术和能力的数字化,是机器可执行、使用的知识。中国制造业企业可从聚集企业核心知识入手,有序实施研发技术体系和工业互联网平台建设,逐步转变为以工业APP创新带动产品、技术创新的新型工业生态。
面对大型复杂产品,尤其是飞机、航母和潜艇等不可分解的复杂产品时,工业APP能够解决复杂产品分解出的绝大部分零件、组件、部件,甚至子系统初步设计、详细设计、仿真计算、工艺和生产制造、装配以及试验。但需要指出的是,依靠工业APP模块不可能完全解决全飞机的设计、仿真、工艺和制造问题,仍需大型工业软件架构的平台与工业APP的体系架构支持。
6. 工业软件应坚持长期主义
当前,从常见的工业软件CATIA、西门子PLM、PRO/E、ANSYS等发展历史可见,达索、麦道、西屋、NASA等公司是世界著名工业软件的技术源头。工业软件需从长期、复杂的航空航天工程中提炼共性技术。该技术来源的特殊性是中国启动自主工业软件的重要借鉴,由于中国在第一次到第三次工业革命中均未把握机会,创新能力不足,大量工业技术设计能力较差,工业软件研制能力和水平较低。因此,工业软件研发应坚持长期主义,通过多年努力才能有所突破。
7. 开源软件版权问题
俄乌冲突在西方社会引发了一系列针对俄罗斯的制裁,包括著名的Oracle、SAP、Apple、Google等国际科技巨头暂停对俄罗斯的服务或产品,GitHub等部分开源软件及社区也停止了服务。2019年Github就曾表示过受制裁国家的用户将无法访问许多GitHub服务,尤其是私有代码库,但开发者仍然可贡献并使用公共代码库。如果用户的私有代码库受到限制,可选择公开此代码库以维持访问。据悉,目前已有软件开发者在社交网站上发帖讨论是否禁止俄国程序员使用他们的代码。
开放性和包容性本是开源文化的基石,开源社区也是以全球访问和参与为目而设计。但从目前实际情况来看,开源其实并不自由,科技也并非无国界。
8. 统筹自主发展与进口
工业软件是国际生态,不是中国生态。中国是全球经济重要的一部分,因此中国工业软件企业要走出国门,加强世界交流,拓展国际市场。因此,建议中国工业软件企业不仅要在国内发展,也要走出国门。当然,不可置否的是,该进口的工业软件仍然需要进口。
9. 统筹计划研发与市场竞争
2020年后据公开信息可见,工业软件上市公司数量逐渐增多,中控技术、中望软件、概伦电子等公司陆续登陆资本市场。远算科技、安世亚太、数码大方、华天软件、芯华章等公司相继取得融资。法国达索系统、西门子、EDF、SAP等国外软件巨头逐步加深与中国企业合作,力图在中国数字化转型中站稳脚跟。国务院各部委和各地方政府也部署了各类工业软件开发、攻关的众多项目和投资。然而,如何避免低层次重复开发投资,依然是一个亟待解决的重大问题。
10.资本和投资忌运动式
人们已经清晰地认识到工业软件是提升工业智造水平不可或缺的一部分。近年来,中国对工业软件重视程度不断提升,颁布了一系列政策强力支持工业软件发展,整体投资环境向好。然而,从全球市场而言,各环节、领域工业软件市场几乎由国际巨头瓜分,中国工业软件企业仍处于发展阶段,要在工业软件领域建立和保持竞争壁垒,就要紧贴客户需求,跟紧工业发展现状。
目前,中国工业软件市场类似于20世纪90年代国际市场的战国时代,高端工业软件遥不可及,低端工业软件的重复研发遍地开花。因此,投资应慎重选择,切忌运动式。
全球化是必然趋势,中国工业软件发展是为了打造人类命运共同体的“全球生态体系”。中国工业软件要解决的问题不是取代所有进口软件,而是要解决“卡脖子”的工业软件问题。因此,工业软件必须杜绝低层次重复,应面向国际,不断进行科学探索和制造业创新,建立完整的可持续发展概念,寻找到一条符合中国工业软件自身发展的道路。
来源:原文刊载于《软件导刊》2022年10月