[西门子] AB PLC | RSLogix/Studio 5000编程之数据篇

[复制链接]
查看80272 | 回复0 | 2024-1-8 00:10:29 | 显示全部楼层 |阅读模式


前言:当今时代是数字信息时代,是互联网时代,很多高大上的云计算、雾计算、边缘计算应运而生,它们究竟在计算什么?答案很明确,是数据。数据又来自哪里呢,主要来自于传感器、采集器、控制器等,离开了这些底层的数据,这些所谓的计算,都无异于空中楼阁、海市蜃楼,如梦幻泡影,如露亦如电。那么,今天,我们来看看AB的LOGIX5000控制器编程软件是如何存储与应用数据的.

数据处理原则

1. 在LOGIX5000控制器内部,标签(即变量,下同)的最小内存为4个字节,即使建立一个BOOL数据,其占用内存也为4个字节。常用的几种数据类型以及其结构、大小范围详见下图.



2. RSLogix/Studio 5000最优的数据类型为DINT或REAL,其默认数据类型为DINT,不建议修改。所以,创建变量时尽量使用DINT或REAL,尽可能少的使用BOOL、SINT、INT.



3. Studio 5000数据类型主要为有以下5种:

(1)User-Defined:用户自定义数据类型,即编程者根据需要创建的数据类型;

(2)String:字符串数据类型,用于存储ASCII字符;

(3)Add-On-Defined:AOI数据类型,当创建了AOI程序,就会生成AOI数据;

(4)Predefined:预定义的数据类型,比如常用的BOOL、DINT、REAL、TIMER、COUNTER等;

(5)Module-Defined:模块数据类型,当组态了硬件模块,就会生成模块数据类型.



4.RSLogix/Studio 5000编程是基于标签寻址,且数据内存最小单位为4个字节,运算时无需数据类型之间先进行转换,这大大的提高了编程效率.

标签和常用数据类型

1. 硬件组态,根据需求及设计顺序组态配置硬件模块,详见下图,当完成时,在Module-Defined自动生成模块数据,以及在控制器标签域内生成基于地址寻址的I/O数据.



2. I/O数据,在控制器标签域内,I/O数据格式为Local:x:C、Local:x:I、Local:x:O,

其中Local表示本地机架,x(=2,3,4,5)表示模块所在机架上的槽号,C表示模块配置数据,I表示DI/AI模块的输入数据,O表示DO/AO模块输出数据.



3. 模块配置数据,以1756-IB32为例,来说明模块配置数据的存储情况,当使用默认配置时,其配置数据均为1,详见下图.



4. 当修改了1756-IB32某些配置项,其相应的配置数据变为为0,详见下图.



5. 别名标签,为I/O数据创建别名标签,详见下图。何为别名标签,即已经存在的标签,再给它取一个别的名称,用它来映射原标签,这两者的数据完全一样。前面已经讲过,Studio 5000是基于标签编程的,而使用基于地址寻址的I/O数据就不太友好,例如,直接使用I/O地址编程,当某个点位损坏,需更换其他点位时,程序中所有涉及该点的指令都需修改,不仅工作量比较大,还容易出错,如果使用了别名标签,无需修改程序,直接将现有标签映射到新的I/O地址即可.



6. 控制器标签,也叫全局标签,即在控制器域内创建的标签,其名称唯一,在所有程序均能使用,且适用于所有的数据类型。下图为在控制器标签域创建了几个常用数据类标签.



7. 本地标签,也叫局部标签,即在程序域内创建的标签,通常情况只能在当前程序中使用(特殊应用时,通过设置,也可在其他程序中使用),不同程序域里的本地标签名称可以相同。不是所有的数据类型都适应于本地标签,例如Message结构体,只能在控制器域里创建。本地标签可以通过别名映射控制域标签,例如下图中M01和M02程序域中的Motor标签,映射了控制标签MO1和M02,其显示方式为M01(C)和M02(C).



字符串数据

1. 字符串(STRING)数据用于存储ASCII字符,系统默认单个字符串数据最大能存储82个字符。



2. 如果需要存储的字符长度大于82,可创建新的字符串数据类型,如下图,创建了一个长度为200的字符串数据类型STRING_200.



3. 创建字符串标签时,数据类型选择STRING_200即可,其可存储200个字符,见下图.



用户自定义数据

1. 编程者可以根据需要创建用户自定义数据类型,其通常是由多种数据类型组合而成,如下图,有BOOL、DINT、REAL、结构体、数组(只能是一维数组)。创建时,建议使用UDT_前缀,这样可读性更强。用户自定义数据类型非常适用于多个同一类型的设备,因为它们的数据属性一样,如本文创建的电机数据,适用于同一属性的电机M01、M02.



2. 创建用户自定义数据类型时,建议BOOL数据连续,且位置在前面,因为根据数据原则,这样创建的UDT数据,不仅占用内存适当,且使用效率更高。如下图,根据这一原则创建的电机数据UDT,其内存大小为80个字节.



3. 如果BOOL数据不连续,中间间隔其他数据类型,其占用内存就较前者大,使用效率就低些。如下图,其内存大小为84个字节,比前者多了4个字节.



结构体数据类型

1. RSLogix/Studio 5000预定义了很多结构体数据类型,如常用的定时器(TIMER)、计数器(COUNTER)结构体.



2. 当然,还有很多的结构体数据,如MESSAGE、AXIS_CIP_DRIVE、PID等.



数组数据类型

1. 数组支持使用常用数据类型、结构体、用户自定义数据等类型来创建,其维度又分为一维数组、二维数组、三维数组.



2. 创建数组时,其大小不能超过2MB,否则会报错,且无法创建。



结束语:综上所述,LOGIX5000控制器编程软件RSLigox/Studio5000数据类型结构清晰,运算方便,且基于标签,使用效率高,可读性超强,使编程者摆脱I/O地址的束缚,我的标签我做主。

【AB PLC工作室】

微信公众号ID:abseme



      坚持原创  注重实用

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册哦

x
您需要登录后才可以回帖 登录 | 注册哦

本版积分规则