S7-300任意位数的循环移位

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

S7-300任意位数的循环移位
S7-200和S7-1200有字节、字和双字的循环移位指令。

S7-300/400只有双字循环移位指令。

在它的基础上,可以实现任意位的循环移位,下面以8位循环移位为例。

本例来源于作者的《跟我动手学S7-300/400 PLC》。

MB0是双字MD0的最高字节,MD0每次循环左移1位后,最高位M0.7的数据被移到MD0最低位的M3.0(见下图)。

为了实现MB0的循环移位,移位后如果M3.0为1状态,将MB0的最低位M0.0置位为1,反之将M0.0复位为0,相当于MB0的最高位M0.7移到了MB0的最低位M0.0。

MD0每次循环右移1位之后,MB0的最低位M0.0的数据被移到MB1最高位的M1.7。

移位后根据M1.7的状态,将MB0的最高位M0.7置位或复位,相当于MB0的最低位M0.0移到了MB0的最高位M0.7。

在程序段3,用MOVE指令将MB0的值传送到QB4,可用QB4来控制8位彩灯。

根据本例的思路,不难实现任意位的循环移位。

阅读(5465)评论(0)。

相关文档
最新文档