BSR(向右移动位)
BSR 指令将数组元素中的位向右移动。
支持的语言︰功能块图、梯形图和结构化文本。
该指令适用于 L20E、L50E 和 L70E 控制器。
操作详细信息︰
BSR 指令是 false-true 梯级转换时的即时进程,并同步更新输出。当 Execution 为 TRUE 时,将最右侧位(元素的第 0 位,通过 Src + SrcOffset 寻址)复制到 Unload 位,并且数组或非数组中的所有位向右移一位。考虑 Length 和 16 位边界,BOOL 数据类型除外。然后,外部位移动到第一个元素的 0 位 (Src + SrcOffset)。
对于环绕操作,将 BitAddr 的位置设置为最后一个位或 Unload 位。BSL 指令的一种可能使用情况是通过容器生产线跟踪容器(其中每个位表示一个容器)。
BSR

参数 | 参数类型 | 数据类型 | 描述 |
|---|---|---|---|
Execute | 输入 | BOOL | 启用指令。
|
Scr | 输入 | ANY_ELEMENTARY | 要移动的 Src(位)的地址。支持的数据类型:BOOL、DWORD、INT、UINT、WORD、DINT 和 UDINT。
|
SrcOffset | 输入 | UINT | 如果 SrcOffset 为 0,则从第一个元素开始。
|
BitAddr | 输入 | BOOL | 移动到 Src 中的位的位置。 |
Length | 输入 | UINT | Length 包含 Src 中要移动的位的数量。支持在数组元素之间移动。
|
Unload | 输出 | BOOL | 位从 Src 地址移出。 |
Error | 输出 | BOOL | 当发生故障时,Error 设置为 True。 |
ErrorID | 输出 | USINT | 当发生故障时,ErrorID 包含错误代码。 |
Done | 输出 | BOOL | 为 TRUE 时,操作成功完成。为 FALSE 时,操作遇到错误条件。 |
错误代码 | 错误描述 |
|---|---|
01 | 不支持维度。 |
02 | 不支持数据类型。 |
03 | 位长度超出 2048。 |
04 | 源偏移超出数组大小。 |
05 | 位长度超出数组大小。 |
07 | 参数无效。 |
BSR 示例
BSR 功能块图示例

BSR 梯形图示例

BSR 结构化文本示例

结果

提供反馈