第10章 数据处理指令与移位寄存器

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

立即数, 标签
要存储在 FIFO 内的数据
Source 将转换为数组标签的数据类型。较小的整数将通过符 号扩展转换为较大的整数。
FIFO
SINT ,INT, DINT, REAL 数组标签 字符串, 结构
要修改的 FIFO 指定 FIFO 的第一个元素 不要在下标中使用
CONTROL.POS
Control CONTROL
第10章 数据处理指令与移位寄存器
10.1 目的及目标 10.2 数据处理 10.3 Allen-Bradley数据转移和操作指令 10.4 位和字操作指令的经验设计 10.5 故障诊断 10.6 指令的位置
10.1 目的及目标
• 目的
– 介绍位、字和文件在PLC中是如何处理的 – 讨论由逻辑指令、文件—算术—逻辑指令和移位寄存器(包括
类型
格式
DINT
数组标签
CONTROL 标签
BOOL
标签
DINT
立即数
说明
要修改的数组,指定要开始移位的元素; 不要在下标中使用CONTROL.POS 操作的控制结构 要装载的位 要移位的数组中位的个数
BSL(BSR)指令Control结构
助记符 .EN .DN .UL .ER .LEN
数据类型 BOOL BOOL BOOL BOOL DINT
说明 该使能位指示BSL(BSR)指令是否使能 该完成位置位时表示位移动了一个位置 卸载位是指令的输出。.UL位用于存储移出位的状态 当.LEN<0时,.ER位被置位 长度,用于指定要移位的数组位的个数。
移位指令的操作
指令执行前
B3:2 0 1 1 0 1 0 1 1 0 0 0 1 0 1 0 1
空位指示 FIFO 为空。如果 .LEN ≤ 0 或 .POS < 0,将 置位 .EM 位和 .DN 位。
长度指定 FIFO 可同时容纳元素的最多个数。
位置标识 FIFO 中的位置,指令将在其中装载下一个 值。
说明: FFU 指令可以和 FFL 指令配合使用,按照先入先出的顺 序存储和检 索数据。 使能后, FFU 指令将从 FIFO 的第一个元 素中卸载数据,并将该值放 在 Destination 中。指令每使能一 次,便会卸载一个值,直至 FIFO 清 空为止。如果 FIFO 为空, FFU 将 0 返回到 Destination。
源B
0 0 1 1
目的
0 0 0 1
源A 1 0 1 0 1 0 1 0
源B 1 1 1 0 0 0 1 1
源A
0 1 0 1
源B
0 0 1 1
目的
0 1 1 1
10101010
11100011
源A
0 1 0 1
源B
0 0 1 1
目的
0 1 1 0
10101010
11100011
10.3.2 文件算术逻辑指令
例: 使能后, FFL 指令会将 value_1
装载到 FIFO 中的下一个位置 ( 在本 示例中是 array_dint[5])。
装载 FIFO 之前
装载 FIFO 之后
array_dint[0] 00000
00000
11111
11111
22222 33333 44444
control_1.pos = 5 value_1 = 55555
• 队列加载指令FFL
– FFL指令将Source值加载到FIFO中有.POS值标识的位置。每次启 用该指令时加载一个值,直到FIFO满为止
– 通常Source和FIFO属于相同数据类型 – 使用FFL和FFU指令按先进先出的顺序存储和取回数据。
操作数
类型
格式
说明
Source
SINT ,INT, DINT, REAL 字符串, 结构
一次 扫描
梯级输入条件
.EN位
.DN位
指令的扫描
每当梯级由假变真 ,处理一个数据元
不执素行运算
运算完成
清除状态位和.POS值
用于FAL指令的标准梯形图
将一个单元复制 到一个数组
将一个数组复制 到另一个数组
16
将一个数组复制 到另一个单元
p327,PLC 5转 换成Logix指令
10.3.3 移位寄存器
-
B3:3
0 1 1 0 0 R6:1/UL
指令执行后
1 I:1/2
B3:2 0 0 1 1 0 1 0 1 1 0 0 0 1 0 1 0
B3:3
10110
1
R6:1/UL
1 I:1/2
Length=58,超过一个 DINT长度
指令执行前
指令执行后
tagbool=0
10.3.4 先入先出(FIFO)功能
操作数
类型
Destination SINT,INT,DINT, REAL ,符串,结构
格式
标签
说明
从 FIFO 卸载的值
CONTROL 结构
助记符 .EN .DN
.EM
.LEN .POS
数据类型 BOOL BOOL
BOOL
DINT DINT
说明
该使能位指示 FFL 指令是否使能。
该完成位置位时指示 FIFO 已满 (.POS = .LEN)。 .DN 位将禁止装载 FIFO, 直到 .POS < .LEN 为止。
到程序清零.ER 位。 .POS 值包含产生溢出的元素的位置。
.L•ENLenDgItNhT—文长件度长用于度指及定位FAL置指指令针操作,的立数即组元数素,数在目。指令中输入
.POS DINT 位置包含指令正在访问的当前元素的位置。
• 运算模式 Mode(有3种)
– 整体(ALL)、数值、增量(INC)
• 文件算术逻辑指令FAL对数组内存储的数据进行复制、算 术、逻辑及函数运算操作
• SLC 500不支持FAL指令 • 本节介绍Logix的FAL指令,如图所示
• Control—具有Control数据类型的标签,数据操作的控制 结构。Control结构如下表
助记符 数据类型 说明 .EN BOOL 使能位指示 FAL 指令是否使能。 .DN BOOL 指令对最后一个元素进行运算后 (.POS = .LEN),完成位被置位。 .ER BOOL 如果表达式发生溢出 (S:V 置位 ),错误位置位。指令停止执行直
字0 .EN
.DN
.ER .UL 未使用
字1 Length 位数组的大小( 位数)
字2 Position 指令指向的位的当前位置 (currently not used)
• Logix系统的左移指令 • Logix系统的右移指令
Logix PLC指令BSL(BSR)参数说明
操作数
Array
Control Source bit Length
FIFO和LIFO操作)实现的数据传输和操作 – 展示SLC 500和Logix PLC中如何应用数据处理和位移指令
• 目标
– 能够解释数据是如何由位、字和文件处理的 – 描述逻辑指令:与、或、异或 – 描述文件—算术—逻辑功能 – 解释概念:移位寄存器 – 描述先入先出和后入先出移位功能的操作 – 描述复制和充填指令的操作 – 描述SLC 500和Logix系统的数据处理和操作指令并使用其开发梯
标签
操作的控制结构 通常与关联的 FFU 使用相同的 CONTROL
Length DINT
立即数 FIFO 可同时容纳元素的最多个数
Position DINT
立即数
FIFO 中的下一个位置,指令将在 其 中装载数据 初始值通常为 0
• 队列卸载指令FFU
– FFU指令从FIFO的第一个元素卸载数据,并将该值放置到 Destination。每次卸载一个值,直到FIFO空为止。如果FIFO为 空,FFU向Destination返回0。
数据位=0 时钟
MSB
LSB
0110110001101101
第二次移位时钟之后的移位寄存器格式
数据位=1 时钟
时钟 时钟
MSB
LSB
1011000110110110
MSB
LSB
1101100011011011
MSB
LSB
0110110001101101
具有多寄存器的移位寄存器
MSB
LSB
1011000110110110
卸载 FIFO 之前 卸载
array_dint[0] 00000
卸载 FIFO 之后
11111
11111
22222
22222
33333
33333 44444
移动
44444 55555
array_dint[5]
55555 00000
control_1.pos = 6
00000 00000
control_1.pos = 5 Value_2=00000
• 移位寄存器是一个允许将寄存器中的内容向左或 向右移动的逻辑控制器。
• 通过一个寄存器或一组寄存器,串行地将一个位 移位到相邻的位置。
MSB
LSB
初始格式 1 0 1 1 0 0 0 1 1 0 1 1 0 1 1 0
数据位=1 时钟
MSB
LSB
1101100011011011
第一次移位时钟之后的移位寄存器格式
10.2.2 文件中的字格式
• 构成一个文件的字格式具有不同的起始和结束位置 • 字和文件的转移通常有三种形式,如下图所示
1.文件到文件
源位置
N7:30 473
N7:31 589
N7:32 3490
N7:33
25
目的位置 473 N10:3 589 N10:4
3490 N10:5 25 N10:6
• 对SLC系列PLC而言,先入先出(FIFO)功能是一个字 移位操作。而Logix系列则扩展到字节、字、双字、字符 串乃至结构
• 先入先出的存储空间通常被称为队列(书中叫堆栈) • SLC的队列长度为128字,Logix系列无此限制 • FIFO操作指令有FFL与FFU • 本节重点介绍Logix的FIFO指令
2.字到文件 3.文件到字
N7:10 7589
N7:4 N7:5 N7:6 N7:7
473 589 3490
25
7589 7589 7589 7589
N10:3 N10:4 N10:5 N10:6
25 N10:15
10.3 A-B数据转移和操作指令
10.3.1 AND,OR和XOR指令
源A
0 1 0 1
22222 33333 44444
array_dint[5] 00000
55555
00000
00000 control_1.pos = 6
00000
00000
00000
00000
00000
00000
例: 使能后 FFU 指令将
array_dint[0] 卸载到 value_2 中,并 对 array_dint 中其余的元素进行移位 。
数据数组
一次扫描 二次扫描 下一次扫描
状态位与指令操作之间的关系
指令一旦启动,在完成之 前,不管梯级条件如何, .EN=1,指令继续执行
• 增量模式INC
– 在增量模式下,每次梯级输入条件从假变为真时,将对数组的一 个元 素进行处理。
数据数组
第一次使能 第二次使能 第三次使能
最后一次使能
14
• 状态位与指令操作之间的关系
00000
00000
00000
00000
00000
00000
10.3.5 后入先出(LIFO)功能
• LIFO的功能与FIFO一样,但是移动的顺序相反。即最先 收到的最后输出,最后收到的则最先输出。
• LIFO的存储空间通常被称为堆栈 • SLC系列PLC功能限制与(FIFO)相同。 • LIFO操作指令有LFL与LFU • 本节重点介绍Logix的LIFO指令
形图 – 在经验设计中加入数据处理和操作指令 – 将指令描述用于故障诊断
10.2 数据处理
• 数据处理包括在位、字和文件上进行算术和逻辑操作实现 的数据转移和操作。其中字也叫寄存器,文件被称为表、 块或列
10.2.1 字中的位格式
– 字中的位格式可以转移到另一个字中。 – 可以利用一个掩码来改变一个字中的一个单独的位
MSB
LSB
0101100011011011
右循环移位寄存器
19Байду номын сангаас
左位移(BSL)和右位移(BSR)指令
• SLC的左移指令 将要被移动的位数组的地址
将要被移入的数据位地址 • SLC的右文移件指的令位长度
– Control结构
操作结构的地址
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
– 1.整体模式ALL

在继续执行下一条指令前,数组中的所有指定元素都将进行
运算。当指令的梯级条件从假变为真时开始进行运算,
在.POS=.LEN时运算结束。
数据数组
一次扫描
• 整体模式下FAL指令时序图
一次扫描 梯级输入条件
.EN位 .DN位 指令的扫描 运算完成
清除状态位和.POS值
不执行运算
2.数值模式
– 数值模式将数组运算分配到若干次扫描中。 – 此模式常用于处理非时间性数据或大量 数据。 – 输入每次扫描要运算的元素个数,这样可 缩短扫描时间。
11
当梯级输入条件从假变为真时,将触发执行。指 令将在每次扫描时执 行,扫描次数为完成整个 数组运算所需的次数。一旦触发,梯级输入 条 件即使反复改变,也不会中断指令的执行。
相关文档
最新文档