西门子博途SCL:ROR:循环右移的方法

描述

说明

使用“循环右移”指令,将参数 IN 的内容逐位向右循环移位,并将结果赋值给指定的操作数。参数 N 用于指定应将特定值循环移位的位数。用移出的位填充因循环移位而空出的位。

如果参数 N 的值为“0”,则将输入 IN 的值作为结果。

如果参数 N 的值大于可用位数,则输入 IN 中的操作数值将循环移动指定位数个位。

下图显示了如何将 DWORD 数据类型操作数的内容向右循环移动 3 位:

S7-1500

参数

下表列出了该指令的参数:

参数 声明 数据类型 存储区 说明
S7-1200 S7-1500
IN Input 位字符串、整数 位字符串、整数 I、Q、M、D、L 要循环移位的值
N Input USINT、UINT、UDINT USINT、UINT、UDINT、ULINT I、Q、M、D、L 要将值进行 (IN) 循环移位的位数
函数值 位字符串、整数 位字符串、整数 I、Q、M、D、L 指令的结果

示例

以下示例说明了该指令的工作原理:

SCL
"Tag_Result" := ROR(IN := "Tag_Value",
N := "Tag_Number");

下表将通过具体的操作数值对该指令的工作原理进行说明:

参数 操作数
IN Tag_Value 0000 1111 1001 0101
N Tag_Number 5
函数值 Tag_Result 1010 1000 0111 1100

将“Tag_Value”操作数的内容将向右循环移动 5 位。该指令的结果作为函数值在“Tag_Result”操作数中返回。





审核编辑:刘清

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分