糟糕的软件架构并不总是能立即显现出来,问题会随着时间的推移而逐渐积累。随着客户需求不断增加、硬件配置不断变化以及行业标准不断演进,软件变得越来越难以修改、验证和复用。
半导体、电子和先进制造设备是当今使用中最复杂的软件控制系统之一。一台设备可能集成了机器人技术、运动控制、工艺模块、配方管理、工厂自动化接口、数据采集、报警处理、物料追踪以及操作员交互等功能,所有这些功能均由软件实现,而该软件往往能持续运行数十年之久。
面临的挑战不仅在于构建一个当前能正常运行的系统,更在于构建一个能够适应新硬件、不断演变的行业标准(如SEMI标准)、客户特定需求以及未来技术的系统。
正因如此,软件架构才可能成为一种竞争差异化因素。
PDF SolutionsCimetrix® CIMControlFramework(CCF)是一个用于构建设备控制应用程序的软件基础架构。它为常见的设备控制问题提供了可重用的服务,因此设备供应商(OEM)可以专注于设备差异化和工艺创新。CCF的架构能够适应多样性和灵活性,且无需对CCF本身进行修改,从而在设备产品的整个生命周期内持续创造价值。
像CCF这样高效的软件框架通常体现了SOLID 原则——这是一套由罗伯特·C·马丁(Robert C. Martin)推广的架构原则,旨在提高灵活性、可维护性和可扩展性。SOLID是以下五项原则的首字母缩写:
- 单一职责
- 开放/关闭
- 利斯科夫替换原则
- 接口隔离
- 依赖倒置
这些原则对于设备自动化尤为重要,因为该领域中不断变化的需求、硬件的多样性以及产品线的差异始终是亟待解决的挑战。
糟糕的软件架构会带来什么代价?
许多设备供应商都遵循着一条熟悉的路径:
- 第一款工具已成功交付
- 一位客户提出了一项特殊功能的需求
- 软件中添加了修改内容
- 另一位顾客要求提供另一种款式
- 增加了更多修改内容
- 推出新硬件
- 出现了其他例外情况
随着时间的推移,该软件的维护难度越来越大。
常见症状包括:
- 包含数千行代码的大型类
- 模块间存在的逻辑重复
- 散布在应用程序各处的、针对特定硬件和客户的代码
- 棘手的升级
- 回归缺陷
- 对修改现有功能的顾虑
- 多个分支代码库
此时,开发进度急剧放缓。
良好的架构是避免这种恶性循环的最佳途径。下文所述的五项SOLID原则有助于设备控制软件在演进过程中保持健壮性。
S — 单一职责原则
模块应专注于单一职责,从而确保其仅有一个变更理由。这样可以使代码更易于理解、修改和维护,因为某个领域的变更不太可能影响其他部分。
在设备控制软件中,违反这一原则的情况很常见。
例如,配方验证、告警处理、数据发布以及操作员界面的行为不应合并到同一个类中。每项职责因不同原因而发生变化,因此应予以分离。
CCF 通过围绕数据采集、物料追踪和工厂自动化集成等特定关注点提供可重用的框架功能,来支持“单一职责原则”。
O — 开放/封闭原则
软件实体应支持扩展,但不应允许修改。
这是长寿命设备软件最重要的原则之一。
每位客户最终都会提出框架未提供的功能需求。CCF 的设计旨在通过基类重写、事件钩子、工厂和策略等扩展点来支持此类功能,而非直接修改框架。这样既能保持框架的稳定性,又能让针对特定设备的行为不断演进。
这是 CCF 的一个核心架构优势,因为它使 OEM 厂商能够在满足独特设备要求的同时,保持一个共同的基础。
L — 利斯科夫替换原则
利斯科夫替换原则是指,子类或接口的实现应当能够替代其基类,且不会破坏系统。
这使得可以用一种实现方案替换另一种,而无需对系统其他部分进行修改。在设备控制软件中,这可能意味着用一种历史数据存储提供商、物料追踪实现方案或硬件接口替换另一种,同时保持相同的预期行为。
由于设备控制领域中的变化在所难免,遵循这一原则的框架能够以更小的干扰实现适应性调整。
I — 接口隔离原则
不应强迫客户端依赖它们不使用的方法。
在自动化软件中,大型接口很常见。它们会产生不必要的耦合,并使组件更难演进或替换。
更好的设计会采用更小、更专注的接口,这样每个客户端只需依赖其所需的功能。这也有助于更轻松地替换可替换模块。
随着框架的日趋成熟,这种模块化变得愈发重要。
CCF 通过采用接口隔离原则,使设备控制软件更加模块化且易于维护,同时降低了耦合度。这使得针对特定设备扩展和定制行为变得更加容易。
D — 依赖倒置原则
高级模块应依赖于抽象,而非低级实现。这样可以降低耦合度,并使系统更易于修改、扩展和测试,因为实现方式可以发生变化,而不会影响更高层次的逻辑。
在 CCF 中,诸如晶圆处理等高级模块是通过抽象层与设备硬件进行交互的。一个晶圆处理系统应依赖于机器人抽象层,而非具体的 Brooks、Rorze 或 Kawasaki 实现方案。当机器人供应商发生变更时,只需添加相应的低级实现即可;晶圆处理软件则保持稳定。
结论
设备控制框架的价值不仅取决于其上线首日能提供什么,更取决于它在漫长的产品生命周期中能够适应得如何。
SOLID 为无需持续重新设计即可演进的系统提供了架构基础,从而带来以下好处:
- 降低生命周期成本
- 更快速的客户定制
- 更少的回归
- 减少了代码分支
- 更轻松的产品线演进
对于制造半导体和先进制造设备的原始设备制造商(OEM)而言,这些原则远不止是软件领域的最佳实践。架构不仅仅是一个实现细节——它是一项长期的商业决策,决定了框架在未来数十年间能够以何种程度实现扩展、适应和存续。
请联系我们,探讨CCF如何为贵公司的长期运行、可配置的控制应用提供支持。