沈阳鸿宇科技有限公司

【行业资讯】聊一聊工业软件和工业APP

发布时间:2021-02-25 文章来源:鸿宇科技 浏览次数:1696

工业软件和工业APP是信息技术和知识的融合,是一种赋能企业数字化转型、赋能工业互联网平台的高端工具,下面看看郭朝晖老师如何看待这个话题。



工业软件与知识融合


从专业技术看,工业软件开发其实也不是特别难。关键是思维方式要融合,还要融合得天衣无缝。


我经常讲一个段子:老婆让程序员出去买五个包子;如果遇到卖西瓜的,就顺便买一个过来。结果,程序员买了一个包子回家。他的理由是:看到卖西瓜的了。如果这是个段子的话,下面的故事是真实的:我的一位软件专业硕士毕业的同学让一位程序员在“386”上加上“111”。结果,程序员给他的数是“386111”


程序员的思维方式与“正常”的思维确实不太一样。正如司机选择路线的逻辑,和步行者不一样。前些日子,我参与一个讨论:如何把大的软件,拆成小的APP。我说:没有必要把大的拆小,只要把其他功能封闭就可以了。在物理世界里,“拆”是更经济的,但在软件的世界里,“封”往往更经济。最近大数据技术之所以称为热点,是因为计算机的发展,让一些“笨办法”变得更有效了。


我曾经要同事写段程序。写完后,他让我检查。看完后,我要求他重写这段代码。他问我:什么地方错了? 我回答说:我看不出哪里错了,但我无法证明你是对的。

这个故事则反应了工业软件的特点:对可靠性要求特别高。这种特殊性,让工业软件的思维方式,与普通软件开发又有所不同。


有位同事,写了3000行程序。调式结束后,我让她把三个全局变量改成两个。这样,整个程序都要重写。我对她讲:这样做的目的,是让检查的人方便。因为做检查的时间,比写程序的时间要长。可谓“一天编码、十天检查”。所以,检查的效率高了,整个研发的效率也就高了。有时候,工业软件往往是“一行代码描述功能,十行代码防错”。因为工业软件往往不允许在使用过程中出现严重的BUG。


为了提高可靠的程度,写软件时要考虑到各种意外的场景与异常。正常的场景只有一个,而意外的场景可能有很多。可谓“一种正常场景,十种异常场景”。而现实中,最难防备的就是“预料之外”的问题。这就要求对工业场景特别熟悉


工业人的思维方式,与学术界差别很大:你以为某个技术可以提高产量,但现实中可能不能用:因为它可能影响质量。你以为某个改进可以提高质量,现实中可能也无法用:因为它可能影响安全、稳定。不理解这些“约束”,就写不出合用的软件。


要解决这些问题,本质上都是要解决知识融合的问题。对于不善于交流、不喜欢讨论的中国人来说,知识融合是个很大的挑战。有时候,与其让别人说明白,还不如自己成为这个领域的专家。其实,我的建议是:至少你要成为半个领域专家,才能去开发工业软件。



对工业软件的几点想法


工业软件为什么被卡脖子了?


最近,工业软件被大家关注到了。一个重要的原因就是被人“卡脖子”了。换个角度看,“被卡脖子”说明我们的工业再往高端走了、开始用到这些高大上的东西了。这就像小朋友觉得衣服小了,是因为个子长高了。反之,很多人对工业软件的作用不明白,其实还是没有达到这个阶段。


现在工业软件主要用于研发设计、生产制造。一般来说,研发工作多了、要求提升了,对工业软件的需求会增加;制造的要求高了,工业软件的需求依然会提升。过去我们很少有研发,产品质量也不高,工业软件的价值也就不大。


为什么工业走向高端的时候,工业软件才重要呢?


我设想一个场景:一般情况下,看看尺寸,就知道能不能把螺母撞到螺栓上。但是,如果零件精度要求特别高、两者差别特别小的时候,就不一定了。有时候,可能要把螺栓“冻”一下才能装上去。在什么温度下冷冻?冷冻多少时间?要回到这些问题,才能装好。怎么知道这些参数?可以试一下、也可以算一下。如果能算,会比反复尝试好了。当然,如果计算比较麻烦,最好能编个程序——这就是工业软件啊!


了这么一点小事去编软件,岂不是太麻烦呢?


的确,做一次很麻烦、工作上是得不偿失。但是,如果用的次数多了,就划算了。而且,用的人多了,工业软件就可以商品化了。商人能赚到钱,就会雇佣很多牛人来搞,技术就可以不断发展了。当然,商人赚钱的前提是市场足够大,也就是高端企业多、企业的高级研发做得多。所以,国外工业软件发展快,也就是必然的了:因为技术的市场大。


生产制造环节的情况也差不多。工业企业走向高端的时候,新产品多了、加工精度和效率要求高了、就需要通过软件来加工制造。计算机有很多优点,如运算速度快、计算精度高、出错的比例低、可以持续长时间运行、可以进行复杂问题优化。这些都能让工业软件的价值体现出来。


高端企业对工业软件才有需求,就像皇帝对御厨有需求;低端企业不理解工业软件的用途,就像叫花子对御厨有需求。



最近工业软件快速发展,还有另外一个原因:技术条件发生了变化。这一点,可以用IPO图这种模型来解释。


任何软件,都需要有三个要素:输入(I)、处理过程(P)、输出(O)。处理过程(P)的核心是算法或者模型。但算法或模型的执行的前提是输入(I)要包含足够的信息。而且,计算机的处理能力要足够强大。这两点,可以解释最近工业软件快速发展的根本原因。


过去,大型设备的3D模型占用空间很大。计算机性能低的时候,就会“放不进去”。没有输入(I)充分的数据,算法也就没有用武之地。同样,计算工作复杂时,处理过程(P)耗时可能是无法忍受的。所以,计算机存储和运算能力增强、价格的降低,会让工业软件的应用迅速变得广泛起来。


再如,互联网和传感器的广泛应用,也使得计算机能够获得足够的、能够用来计算的信息。也就是说,输入信息(I)容易变得完备。这时,算法(P)才有了用武之地。另外:机器自动化、智能化的程度高了,算法的计算结果(O)就可以直接驱动机器、管理生产进程。这样,算法的价值才能更好地体现出来。所以,数控机床和高端自动化设备用得多了,工业软件的重要性会提升。


在这样的背景下,模型和算法(P)才变得重要起来。打个比方,算法就像一个厨子,输入的数据则像食材。有了充分的食材,厨子的本事才能发挥出来。否则,就是巧妇难为无米之炊。换句话说,“算法重要”是有前提条件的。


用IPO的逻辑,可以解释不同行业间,工业软件发展的差异。比如,存储能力的增加对离散制造业软件运行效率的影响很大、甚至是关键性的:因为解决了输入信息充分(I)的问题。算法(P)其实是第二位的。但在流程行业,许多问题的瓶颈不在于输入(I)的数据量太大,而是完整、准确、及时以及建模方法上(P);有些制约条件则是设备的数字化、智能化改造(O的问题)。所以,不同行业,工业软件的发展逻辑是不一样的。


如何看待工业软件的发展方向?


刚才提到,工业软件过去主要用于研发设计和生产制造。未来会有些拓展:首先是从生产制造拓展到管控一体。这是工业互联网发展必然带来的,原因就是输入(I)、输出(O)发生了变化,让工业软件的价值更大、开发更容易。其次是工业软件向采购、销售、服务拓展。这种变化也是互联网带动的。当信息通信技术的基础奠定以后,软件和算法才会成为关键和人们关注的重点。这时,科学实验工作和大数据分析工作,可以与工业软件结合起来。


工业APP往往就是一些工业软件。前些天和朋友聊天:工业APP是不是一定要有平台的支持?


我认为:没有平台,我们也能开发工业APP这样的软件。但是,有了平台以后,输入(I)条件容易满足;APP的输出(O)也容易发挥作用。平台可以支持这些东西。好的平台还能让算法的编写变得容易、易于复用。所以,基于平台,开发APP的工作量可以大大降低、用途和经济性可以显著提升、标准化程度提升,功能体系也容易建立起来。所以,有没有平台,差别还是非常大的。


所以,推进工业软件和工业APP,需要把平台搞好。



工业APP杂谈:为什么要模型计算和软件



在我看来,工业APP是些包含数学运算的小型工业软件。工业中为什么需要数学计算、并且编程软件呢?


问题看似很简单,其实答案并不那么明显。要认识这个问题,必须先认清一个与之相反的现实:在工业企业中,数学模型其实并不常用。


我们经常听人说:“科学原理、数学公式非常有用”。工业生产过程往往对应大量的科学原理和数学公式。但我们反思一下:工程师是不是经常用这些数学公式进行计算?其实,现实中很少用理论公式进行计算


既然“有用”,现实中为什么“少用”呢?


这其实很正常。我们设想一下:人们每天的生活,都要遵从牛顿定律。动物、甚至我们的祖先都不懂牛顿定律,不也都活得好好的吗?同样,工业人不用计算理论公式,不也照样组织生产啊!


只有需要精确结果的时候,才需要计算。


古人什么时候需要算?买卖东西的时候需要算、不算就可能吃亏;吃饭的时候也要精打细算,否则到了春天就没有吃的了。打仗的时候需要精打细算。《孙子兵法》说:“多算胜、少算不胜”。因为打仗都是“险中求胜”,胜负可能就差一点点。所以,《战争论》也是在强调“算”。


农业社会的时间不值钱、时间观念就不强,很少算时间。现在就不一样了。我每次坐火车、坐飞机,都要把时间算一下。因为在机场、车站多待半个小时,就觉得浪费了时间。




同样,工业人什么时候会认真去算?


工业企业追求精益求精的时候,才会去算。不追求精益求精的企业,就很少会去算。所以,企业只有发展到一定的程度,才会认真去算。


工业中的计算也是有很多麻烦的。


为什么有麻烦呢?有些人认为,是不懂得科学原理。这个说法往往是扯淡的。中国现在每年毕业800多万大学生,而工业中用到的很多科学原理很早就成熟了。怎么会不懂呢?真正的原因是:这些数学模型往往是需要参数的,而这些参数往往给不出来。给不出参数,也就算不准。


所以,往往是因为算不准,才不算的。


参数不准,是不是努力把参数搞准呢?听起来有道理,但这事与具体问题有关。有些计算(如几何尺寸)是能够算得准的,有的则很不容易搞准。所以,数字化模型的推进其实有两种办法:一种叫做“知难而上”、一种叫做“知难而变”


对于那些能够搞准参数的对象或者过程,可以想办法搞准。这就是“知难而上”。采用这样的思路时,要多用“笨办法”:把该测量的测量、不要怕麻烦;数据分析时,要努力去剔除干扰,而不是搞一些华而不实的复杂算法。


有些参数真的搞不准,就要“知难而变”了。对于这类问题,往往是把实验数据与理论模型结合在一起。这时,理论结果往往是用来做优化的:实验结果觉得人们怎么做、而理论模型决定如何优化。注意:这种优化往往是“小步快跑”、是PDCA,这时用的模型往往是线性的。这时,用的往往是“巧办法”。


我一直主张,工艺和产品设计尽量用数学模型计算。这样的好处是:知识自然地显性化、知识便于传承、便于优化。而在现实中,往往必须接受不太理想的模型——理想的模型找不到,往前走半步也好。这就像我常说的:不要总想着长生不老,能延年益寿就不错了。因为工程师做事,服从现实是第一位的


有些计算,手工计算太麻烦、太慢,还容易出错。这时,就需要把算法放在程序或者软件里面。而用这些程序或软件,往往意味着企业的经营、管理、技术已经达到了相对较高的程度。否则,往往就是所谓“叫花子对御厨没有需求”。