自动化与控制中的实时处理基础,第2部分

实时系统中最重要的约束是处理输入和产生输出所需的时间必须是已知的。实时控制系统系列文章的第2部分。

通过马里奥老爹 2014年7月31日

这是系列文章的第二部分,涉及实时系统、实时处理和实时自动化与控制系统设计与开发的基础。

上一篇文章解释了实时系统的特征。实时系统中最重要的约束是处理输入和产生输出所需的时间必须是已知的。换句话说,实时系统获得解决方案的处理时间是解决方案的一部分。当然,对于一个特定的系统,这样的时间并不总是完全相同的;情况可能会有所不同。这种偏差,我们称之为“延迟抖动”或Δt,本质上定义了实时系统所提供的“确定性”。越接近Δt接近零时,实时系统的确定性越高。

为了进行管理,任何实体工厂都需要一个实时控制器,即,本身,一个实时系统。控制器Δt必须比植物的潜伏期至少小5倍。这是一个非常普遍的经验法则,但根据应用程序和其他考虑因素和权衡,可能会有所不同。在任何情况下,控制器设计者在某些时候都必须设计具有特定属性的实时控制器Δt

那么,现在的问题是:我们如何可靠地设计一个控制器来保证某些特定的?为简单起见,这里的讨论将:

  • 考虑一个工厂的电子控制器的设计。
  • 假设所有传感器、换能器和执行器随时可用,并且所有输入和输出都是电信号。
  • 考虑该控制器将是一个数字控制器,即进行模拟到数字的转换,并通过逻辑和数学运算来实现控制功能。

因此,简而言之,该控制器将使用(主要)数字电子元件,PC板和相关部件开发。

对于任何电子设计师来说,设计控制器最基本的方法就是使用分立元件。任何数字控制器都可以使用逻辑门、触发器和缓冲器来实现。这些组件在延迟抖动方面有很好的性能。的Δt大多数这些组件是非常低的(取决于门技术,它大约是40-50纳秒),所以总体控制器延迟抖动通常不会超过1微秒,这对于大多数实时应用来说已经足够好了,甚至是硬实时。

这种“硬件”方法的主要问题是缺乏灵活性和可扩展性。如果需要额外输入或更改控制器功能,则必须设计新的控制器。然而,必须指出的是,这种硬件方法在过去被广泛使用,并且仍然在非常具体的应用程序中使用,其中大多数在硬实时领域。

迄今为止,几乎所有的数字控制器都是基于微处理器的控制器。设计师不再有权为控制器构建硬件。控制器硬件已经标准化,所有的信号处理、滤波和处理都由微处理器管理。根据控制器的类型和用途,它们中的大多数都有几个处理核心。这听起来可能很简单,但到目前为止,控制器设计人员的工作已经简化为:1)根据应用选择合适的控制器硬件;2)选择要使用的操作系统;3)选择将进一步帮助开发的编程环境或框架,以及4)开发一个软件应用程序来实现控制设计人员设想控制的工厂所需的实际控制器功能。

为应用程序选择合适的硬件控制器本身可能是一项复杂的任务。硬件控制器的特性将取决于所经过的时间t需要为控制器提供解决方案,并且延时抖动Δt这是这样的控制器所期望的。它还由许多其他因素和条件决定,这些因素和条件超出了这里的考虑范围。对于这个讨论,我们假设正确的硬件选择标准将需要满足以下要求:1)必须足够快,以处理所需的运行时间和延迟抖动;2)必须能够实时处理处理器中断,3)必须提供“适当的”开发和运行时软件环境,设计人员可以在其中设计和部署所需的软件应用程序。

一旦选定了硬件,设计人员就根据选定的软件开发环境,使用一种计算机语言来创建软件应用程序。如今,硬件控制器包括丰富、直观的软件开发环境,其中应用程序可以在某些特定的操作系统和编程框架上运行。虽然不是强制性的,但建议使用硬件制造商建议的编程框架。请注意,如前所述,在不使用任何软件环境的情况下设计软件应用程序类似于用分立组件和芯片构建硬件。

假设设计人员已经选择了硬件,并准备使用一种编程语言在所选择的操作系统之上设计一个新的软件应用程序。根据首选的编程语言,在硬件和实际控制器应用程序之间可能有更多的“软件层”:框架(如Microsoft . net)、虚拟机(如Oracle Java),甚至是硬件制造商专有的框架或编程接口。

所有这些层进一步将控制器应用程序与输入和输出信号分开。另外,必须注意的是,每一层都会增加延迟和处理时间。图1显示了典型控制器实现的处理层。

如图1所示,输入事件必须从它的发生开始,经过所有层,直到处理它的实际应用程序。处理后,应用程序必须将结果发送到实际的输出端口,该端口也必须经过相同的层。使用上述硬件和软件层堆栈,这个简单控制应用程序的总响应时间可以计算为:

然而,在这种情况下,设计人员如何保证总响应时间t是工厂需要的吗?控件设计人员如何确保这样的响应时间将在特定的延迟抖动范围内Δt?该表显示了对每个时间组件的详细解释以及每个组件的影响,并就如何实现预期结果给出了一些初步建议。

上面提到的每个时间组件都提供了总结果控制器延迟抖动的一部分Δt。控制器设计师的主要职责之一是评估每一个组件,并适当权衡它们,以确保:1)导致控制器延迟t是必需的;的总和Δts从所有的时间组件将不会超过期望的延迟抖动。

这不是一件容易的事。请注意,表1所展示的是一个非常简单的实时控制器设计的第一个视图。控制器设计者和指派的团队必须考虑更多因素,这些因素也会影响硬件、操作系统和框架的选择,远远超出控制器的严格实时性能。

在这一点上,只提出了一些非常基本的建议,针对每个控制器处理层。下一篇文章将回顾控制器处理层,并讨论设计和开发有效控制器的其他指导方针和最佳实践,该控制器可以以稳健和可靠的方式管理实时工厂。

Mario Torre是实时系统设计和架构师专家,专注于数字油田自动化,控制和实时信息系统。他是一名电子工程师,拥有系统工程硕士学位。他目前是哈里伯顿公司智能运营解决方案(IOS)全球集团的咨询顾问,位于德克萨斯州休斯顿的Landmark软件和服务公司。bmerchut@cfemedia.com

看到控制工程PLC和PAC页面

请使用下面的界面发布任何问题或评论。

-请参阅下面自动化和控制中的实时处理基础的第1部分。