激烈的全球竞争给工程师们带来了越来越大的压力,他们需要开发出产量更高、运行成本更低、并具备更多功能的系统,从而提高生产效率,使系统能够在激烈的竞争中脱颖而出。然而,仅对一台或者一类设备编程往往无法实现这类系统的开发
www.cechina.cn,它们通常具备多种硬件目标类型、通信方法、以及开发工具选项,这些都会影响到编程者的开发效率。
因此,整个开发团队往往需要集中力量进行早期的系统架构及技术决策
CONTROL ENGINEERING China版权所有,以解决上述提到的复杂问题。对于软件工程师而言,这会是一个艰巨的任务,但是下面的三个阶段可以帮助工程师完成从概念方案到最终应用的开发,从而减少开发的问题并缩短设计周期。
精心挑选所采用的处理器技术和开发平台
项目伊始,开发团队需要仔细阅读需求文档,进而挑选合适的处理器技术。通常
www.cechina.cn,这是硬件工程师的职责,但是参与到其中对于团队中的其他开发者而言也相当重要,因为所选定的技术决定了将来一系列功能实现的难易程度。举例来说,温度控制系统和无人车控制系统对于所采用的处理器技术和开发平台的要求是截然不同的。
在进行挑选时,可以首先考虑系统的执行速度。若控制循环速率在赫兹(Hz)级或者更低
www.cechina.cn,那就可以采用一个运行通用操作系统(例如Microsoft Windows)的微处理器。若对于执行速度的要求在千赫兹(kHz)级别,那么,采用运行实时操作系统的微处理器将是一个很好的选择。而对于更高的循环速率,则需要采用具有硬件级的定时能力的处理器,例如
FPGA(现场可编程门阵列)。除此之外,您还需要考虑到其他的因素,包括:系统的可靠性、对于用户界面(
HMI)的要求、以及是否需要兼容现有的程序代码等。通常
www.cechina.cn,不同的技术提供了不同的优势,因此也有许多工程师选择在一个系统中采用多种不同的硬件目标类型。
为了简化挑选过程,并确保系统所采用的技术在未来不会过时,工程师可以采用具有标准基础架构的模块化硬件平台。例如,NI提供的可重配置I/O (RIO) 硬件平台,就包含了浮点微处理器、可重配置FPGA以及各种尺寸的模块化I/O。
了解每种处理器技术的优缺点,有助于将控制问题细化,从为我们将应用程序开发工具的选择放在了最后。通常
www.cechina.cn,软件开发者选用的编程工具在项目中是默认的。企业往往不愿意变化软件工具,因为随之而来的是大量的前期投资,包括购买新产品和参加培训,毫无疑问,这些投资在很大程度上决定了项目的决策过程。然而对于大型控制系统而言,我们仍应考虑所使用的开发工具的实施和维护成本。
理想的情况下,我们希望在这些系统中,仅采用单一的编程工具就可以用来开发、调试并为控制逻辑、
运动控制、
SCADA和HMI的部署提供所需的应用程序。这种工具被称为系统设计工具,它将所有必要的功能集成到一种开发工具中。系统设计工具中集成了标准的硬件和操作系统平台,从而实现了这一性能,帮助程序员直接面对最终的部署目标,而无需考虑所使用的编程设备和所选择的操作系统。系统设计工具还可以结合模块化硬件平台,为程序员提供了足够的灵活性,以便确定应该在哪个硬件设备上执行应用程序。
软件开发工具的考虑事项:
■ 需要怎样的控制循环速率?
■ 该应用所需的可靠性程度如何?
■ 用户将如何与系统进行交互?
■ 是否考虑使用模块化硬件平台
控制工程网版权所有,以适应未来的技术发展?
■ 是否需要连接到现有的硬件设备或者企业管理系统?
■ 针对所采用的目标硬件,需要什么样的开发工具?
■ 是否考虑使用系统设计工具,从而避免在开发过程中考虑操作系统或所采用的硬件目标?
■ 使用全新系统设计工具进行开发的性价比如何?
一旦在项目开始之前,根据上述清单挑选了合适的软件开发工具之后,工程师就能够全力以赴,实现系统功能以满足控制系统的需求,而不需要考虑如何在各种不同的工具、设备和技术中进行连接和通讯。
总结:控制系统设计考虑事项:
1. 选择控制系统技术和平台
■ 需要怎样的控制循环速率?
■ 该应用所需的可靠性程度如何?
■ 用户将如何与系统交互?
■ 模块化硬件平台能否用于未来技术?
2. 构建系统通信架构
■ 需要怎样的控制循环速率?
■ 该应用所需的可靠性程度如何?
■ 用户将如何与系统进行交互?
■ 是否考虑使用模块化硬件平台
控制工程网版权所有,以适应未来的技术发展?
■ 是否需要连接到现有的硬件设备或者企业管理系统?
3.选择软件开发工具
■ 需要怎样的控制循环速率?
■ 该应用所需的可靠性程度如何?
■ 用户将如何与系统进行交互?
■ 是否考虑使用模块化硬件平台
控制工程网版权所有,以适应未来的技术发展?
■ 是否需要连接到现有的硬件设备或者企业管理系统?
■ 针对所采用的目标硬件,需要什么样的开发工具?
■ 是否考虑使用系统设计工具,从而避免在开发过程中考虑操作系统或所采用的硬件目标?
■ 使用全新系统设计工具进行开发的性价比如何?