huamantang
级别: 家园常客
精华主题: 0
发帖数量: 336 个
工控威望: 541 点
下载积分: 1826 分
在线时间: 271(小时)
注册时间: 2010-01-08
最后登录: 2024-11-20
查看huamantang的 主题 / 回贴
楼主  发表于: 2013-05-05 15:54
图片:
已知数据寄存器d66中的数据从1递增到20,d40中的值随时间变化,现在我想把d66从0变到1的瞬间把D40的值赋给D400,从1到2的瞬间把D40的值赋给D401,以此类推,直到D66值变为20,开始下一循环。我目前的单段写法如附件图中所示,从节省扫描周期的角度,哪位有更简洁的做法?我目前的做法,要写20段,每段占14步
lib0
lib0
级别: 探索解密
精华主题: 0
发帖数量: 21 个
工控威望: 123 点
下载积分: 689 分
在线时间: 9(小时)
注册时间: 2010-10-14
最后登录: 2024-08-25
查看lib0的 主题 / 回贴
1楼  发表于: 2013-05-05 22:38
可以定义地址指针啊,我用西门子做过。大概就是先判断D66的变化,然后将D400的地址进行累加,三菱初学,占楼,等高手解答
gaogaiga
新会是全广东工资最低。
级别: 家园常客
精华主题: 0
发帖数量: 817 个
工控威望: 870 点
下载积分: 8842 分
在线时间: 777(小时)
注册时间: 2008-02-21
最后登录: 2024-11-19
查看gaogaiga的 主题 / 回贴
2楼  发表于: 2013-05-05 23:20


这样行不,周期头是D66的变化输入和与上一周期值比较,最末时用D67记录本次周期的值,下一周期如果D66有变化就mov D40到D400Z
john42tw
级别: 网络英雄
精华主题: 0
发帖数量: 1276 个
工控威望: 6107 点
下载积分: 52058 分
在线时间: 1120(小时)
注册时间: 2012-04-24
最后登录: 2024-09-30
查看john42tw的 主题 / 回贴
3楼  发表于: 2013-05-06 08:52
M8001
---||-------------------------[MOV  K0  Z0]                  初始設定Z0=0    
--[> Z0  K20]--|                                                     當Z0>20 歸零


X0                                                                         每一次觸發
--|||-------------------------[M0VP  D40  D400Z0]        將D40 傳送到D400+(0~20)位置
                               |---[ADDP  Z0   K1   Z0  ]         每觸發一次加1
                               |---[MOVP  Z0   D66       ]        將次數傳送到D66
zhangchao
级别: 略有小成
精华主题: 0
发帖数量: 165 个
工控威望: 322 点
下载积分: 6931 分
在线时间: 90(小时)
注册时间: 2012-12-27
最后登录: 2021-10-16
查看zhangchao的 主题 / 回贴
4楼  发表于: 2013-05-06 12:49
路过 学习一下