位左移 (BSL)

下表列出了支持此指令的控制器和应用程序。
架构
标准应用程序
安全应用程序
CompactLogix 5370、ControlLogix 5570、Compact GuardLogix 5370 和 GuardLogix 5570 控制器
CompactLogix 5380、ControlLogix 5580、Compact GuardLogix 5380、GuardLogix 5580 和 ControlLogix 5590 控制器
BSL 指令用于将数组中的指定位左移一位。
使能后,指令将指定位的最高位卸载到 .UL 位,将其余的位左移一位,并将位地址加载到 Array 的位 0。
重要提示: 必须进行测试并确认指令不会更改用户不希望更改的数据。
BSL 指令对连续数据内存进行操作。数据受到指定成员的约束。
在此跳变指令中,继电器梯形图将梯级输入条件由假切换为真时,指令执行。
可用语言
梯形图
操作数
梯形图
操作数
类型
格式
说明
Array
DINT ARRAY
标签
要修改的数组
指定要从其处开始移位的第一个元素
Control
CONTROL
标签
运算的控制结构
Source Bit
BOOL
标签
要移至空出位置的位。
Length
DINT
立即数
数组中要移位的位数
CONTROL 结构
助记符
数据类型
说明
.EN
BOOL
使能位,指示 BSL 指令是否使能。
.DN
BOOL
完成位,置位时指示各位左移一位。
.UL
BOOL
卸载位,是指令的输出。.UL 位用于存储已移出位范围的位的状态。
.ER
BOOL
错误位,当 .LEN < 0 时置位。
.LEN
DINT
长度,指定要移动的数组位数。
影响数学状态标志
严重/轻微故障
在以下情况下发生严重故障
故障类型
故障代码
LEN 超过数组的大小
4
20
有关操作数相关的故障,请参阅 常用属性
执行
梯形图
条件/状态
执行的操作
预扫描
.EN 位设置为假。
.DN 位设置为假。
.ER 位设置为假。
.POS 值清零
梯级输入条件为假
.EN 位设置为假。
.DN 位设置为假。
.ER 位设置为假。
.POS 值清零。
梯级输入条件为真
请参见“BSL 流程图(真)”
后扫描
不适用
BSL 流程图(真)
示例
示例 1
使能后,BSL 指令从 array_dint[0] 中的位 0 开始执行。指令将 array_dint[0].9 的值卸载到 .UL 位,将其余的位移位,并将 input_1 的值加载到 array_dint[0].0 中。其余的位 (10-31) 将无效。
梯形图
示例 2:
使能后,BSL 指令从 array_dint[0] 中的位 0 开始执行。指令将 array_dint[1].25 的值卸载到 .UL 位,将其余的位移位,并将 input_1 的值加载到 array_dint[0].0 中。其余的位(array_dint[1] 中的 31-26)将无效。
提供反馈
对本文档有问题或反馈吗? 请在这里提交您的反馈
Normal