中国自动化学会专家咨询工作委员会指定宣传媒体
免费注册 登录 广告服务 | 客服中心
您现在所在的是:

PLC论坛

抖音 德嘉 泓格论坛 FLIR红外热像论坛
工控论坛首页 PLC论坛 → 浏览主题: 怎样实现64位循环左移?
发表新帖 回复该主题
回帖:0个,阅读:703 [上一页] [1] [下一页]
* 帖子主题:

怎样实现64位循环左移?

分享到
5994
liaosun
文章数:1398
年度积分:50
历史总积分:5994
注册时间:2003/5/4
发站内信
2015论坛贡献奖
2014论坛贡献奖
2013论坛贡献奖
2012论坛贡献奖
2011博客贡献奖
2010博客杰出贡献奖
发表于:2011/4/3 17:36:05
#0楼

   S7-300/400只有32位的循环移位指令,和32位加CC1的循环移位指令。下面是我编的程序,MD10和MD14组成64位数据,MD10在高32位。
   在I0.0的上升沿,分别将MD10和MD14循环左移1位,然后交换它们的最低位M13.0和M17.0的值,就能实现64位数据的循环左移1位。
     A     I      0.0
     FN    M      1.0
     JCN   _001                      //不是I0.0的上升沿则跳转
     L     MD    10
     RLD   1                            //双字左移一位
     T     MD    10
     L     MD    14
     RLD   1                            //双字左移一位
     T     MD    14
     A     M     13.0
     =     M      1.1                   //暂存M13.0
     A     M     17.0
     S     M     13.0                 //以下程序交换M13.0和M17.0的值
     AN    M     17.0
     R     M     13.0
     A     M      1.1
     S     M     17.0
     AN    M      1.1
     R     M     17.0
_001: NOP   0
   此程序已用仿真验证,下图中的修改数值是移位之前MD10和MD14的值,状态值是循环左移4位后的值。
图
此帖来自中华工控网工控博客
原文件地址:http://blog.gkong.com/more.asp?id=135426&Name=liaochangchu
我是廖常初,是一个高校的老师,曾在企业从事机械、电气技术工作,长期从事工业控制和PLC应用的教学、科研和工程应用工作。博客中的日志除注明外均为原创。愿意在此与大家探讨工控的问题!
廖常初工控博客地址:http://blog.gkong.com/blog.asp?name=liaochangchu
我曾写过几本小书: 《PLC编程及应用》第3版(S7-200)、《S7-300/400 PLC应用技术》第3版、《FX系列PLC编程及应用》第2版、《S7-200 PLC编程及应用》、《PLC基础及应用》第2版(FX系列大专教材)、《西门子人机界面(触摸屏)组态与应用技术》、《西门子工业通信网络组态编程与故障诊断》、《S7-1200 PLC编程及应用》第2版、《跟我动手学S7-300/400 PLC》、《跟我动手学FX系列PLC》
机械工业出版社廖常初图书专题:http://www.gkong.com/zt/liaochangchu/
工控学堂推荐视频:

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 非法和不良信息举报

工控网客服热线:0755-86369299
版权所有 工控网 Copyright©2024 Gkong.com, All Rights Reserved

31.2002