Logix控制器的数据结构技巧

节省内存和优化罗克韦尔自动化控制器的性能。

通过Fred Habenschuss,洛克威尔自动化公司 二八年二月二十二日

为了从控制系统中获得最大的性能,提前考虑是很重要的。Logix架构(ControlLogix, CompactLogix, FlexLogix, SoftLogix5800和DriveLogix),以下提示可以帮助您节省内存和优化控制系统的性能。

使用32位数据类型

在设计控制体系结构时,首先要考虑的因素之一是数据组织和性能。如果控制器使用32位处理器,则通过使用32位数据类型优化性能和内存使用。如果在32位cpu上使用非32位数据类型,则每条指令都会占用不必要的内存空间,再乘以数千条指令,就会快速消耗可用内存。对于内存有限的小型控制器来说,这一点尤其重要。

例如,使用双整数(DINT)数据类型而不是整数(INT)数据类型有助于减少执行时间和内存使用。执行一个INT数据类型的简单ADD指令,比如INT + INT = INT,占用260字节内存和3.49

内存使用和执行时间有如此显著差异的原因是,控制器在将每个INT相加之前将它们转换为DINT,然后必须将和转换回INT。存储在这些额外转换期间创建的中间值需要额外的执行时间和内存。

充分利用用户定义的结构

用户定义结构允许您将多个数据类型(原子的、预定义的或用户定义的)组合成一个新的数据类型。创建用户定义结构的方式会极大地影响内存使用和性能。

结构中的所有元素都位于字节(8位)边界上,在创建用户定义的结构时将元素分组在一起将有助于减少内存使用和访问数据时的执行时间。

使用数组进行优化

Logix集成架构使用基于标记的编程,在控制器中创建标记的方法直接影响访问数据的执行时间方面的性能。

在程序中创建单独的标记会导致在控制器的内存中创建分散的标记。分散的标记必须具有与之关联的指针数据,这在尝试访问标记时需要更多时间。相反,应该在数组中创建标记,或者在标记数据库中创建用户定义的结构。通过这种方式,在控制器的内存中连续创建标签,这意味着可以更快地读取数据。

Fred Habenschuss是罗克韦尔自动化公司市场营销服务部的应用工程经理。罗克韦尔自动化的集成架构为顺序、过程、驱动和运动控制编程提供了一个环境。RSLogix 5000企业系列软件设计用于罗克韦尔自动化Logix控制器平台。它提供了符合IEC61131-3的接口,结构和数组的符号编程,以及一个全面的指令集。它还支持中继阶梯,结构化文本,功能框图和顺序功能图编辑器,并通过PhaseManager可选特性为批量和机器控制应用程序提供S88设备相位状态模型的支持。