@
saulshao 最佳实践的例子太多了,其实软件上的最佳实践的典型代表就是设计模式。设计模式本身也是从建筑行业引申过来的,这个在 GoF 的那本书里面最前面就提了。我给你举一个西门子的设备研发中应用最佳实践的例子吧。搞过控制的基本上都知道 PLC,这玩意儿相当于一台小电脑吧,低端的 PLC 是做成了一整坨的,坏了要一整个换下来:
<img src="
" />
高端的 PLC 采用了模块化的设计,最左边是供电电源模块,然后是 CPU 核心模块,右边绿色条的是 I/O 模块:
<img src="
" />
假如说我有十几条生产线,我必须至少留一套作为备件;如果用前面的那种,PLC 坏了我要整个拆下来换新的,如果此时再坏一个我就没办法了只有停掉这个生产线;而第二种高级的 PLC 就健壮的多,可以拆开来只换坏掉的那个模块。除非是碰到两个 PLC 的相同的模块一起坏,而且第二种的 I/O 可扩展性要好得多,所以采用不同的设计方法得出来的结果就有很大差别。
工业用的计算机讲究高可靠性,比如同样是双核 CPU,在 CS 行业会尽量用多线程等方法将两个核心物尽其用;而在工控行业这种 CPU 一般都是计算性能过剩的,为了达到高可靠性的目的,会将一个相同的程序分别在两个核里面跑,然后比对输出结果,结果一致则继续,不一致就再计算一边再比较或者直接丢弃进入下一个周期;完全不同的思路。。。
现在的制造业用的都是成熟技术,传统 IT 行业用了十几年的以太网技术现在才慢慢被工业领域使用,而且还是 100Mbps,因为工业用的数据量不大但是必须高度可靠。制造业中技术含量最高的可能不是直接用于生产的设备,而是用来生产这些生产设备的工具和方法。比如半导体行业的 EDA 工具的 PSPICE 模型,仿真技术,虚拟装配技术,在研制这种制造工具的工具的过程中,会用到并行计算,虚拟化等 CS 最前沿的技术。