电工学习网

 找回密码
 立即注册

西门子S7-300的任意位数据连续循环移位多位的程序

2013-8-22 08:54| 编辑:电工学习网| 查看: 19192| 评论: 0

  FC的输入数据IN(DWord)是要移位的双字,Bit_No(Int)是移位位数。输出数据OUT(DWord)是移位的结果。本文以输入IN的低20位数据连续循环移位1~20位为例。Tmp1和Tmp2分别用来暂存移位后的数据和移位次数剩余值。L1.4是Tmp1(LD0)的第20位。
    将L1.4改为LD0的其他位,可以改变要移位数据的位数。例如改为L2.4时,被移位数据的位数为12位。
      L     #IN
      T     #Tmp1                       //保存被移位的双字
      L     #Bit_No
BACK: T     #Tmp2                       //保存移位次数剩余值
      L     1
      L     #Tmp1
      RLD                               //循环移位1位
      T     #Tmp1
      A     L      1.4
      S     L      3.0                  // Tmp1的第20位为1则将最低位置位
      AN    L      1.4
      R     L      3.0                  // Tmp1第20位为0则将最低位复位
      CLR  
      =     L      1.4                  //将Tmp1第20位清零
      L     #Tmp2                       //取移位次数剩余值
      LOOP  BACK                        //减1后非零则返回
      L     #Tmp1
      T     #OUT                        //输出循环移位的结果

      CALL  FC     1
       IN    :=MD10
       Bit_No:=MW14
       OUT  :=MD16
    用十六进制格式监控MD10和MD16,移位次数MW14的值最好是4的整倍数,监控比较方便。

看过《西门子S7-300的任意位数据连续循环移位多位的程序》的人还看了以下文章:

发表评论

最新评论

  • PLC输入端和输出端怎么接线
  • 什么是COM端口?PLC中COM端口如何接线?
  • plc控制电动机正反转梯形图
  • 西门子S7-200系列PLC全套接线图
  • PLC十字路口的交通灯控制编程实例
  • plc基础知识指令27个
热点文章

电工学习网 ( )

GMT+8, 2023-3-8 11:48

Powered by © 2011-2022 www.shop-samurai.com 版权所有 免责声明 不良信息举报

技术驱动未来! 电工学习网—专业电工基础知识电工技术学习网站。

栏目导航: 工控家园 | 三菱plc | 西门子plc | 欧姆龙plc | plc视频教程

返回顶部