您现在所在的是:

台达论坛

回帖:7个,阅读:9189 [上一页] [1] [下一页]
1453
孤鴻獨自飛
文章数:231
年度积分:50
历史总积分:1453
品牌积分(台达):0
注册时间:2015/3/17
发站内信
发表于:2015/12/8 21:59:23
#0楼
请问台达EH3的PLC怎么给D1336和D1338里面赋值。
我是这有操作的
LD M1
DMOV D200 D1336
LD M2
DMOV D202 D1338
这有当M1,M2通时为什么这两个寄存器里的值不会改变为D200和D202的值?
是不是当脉冲发出时不能改变这两个寄存器的值呀?
在什么时候可以给这两个寄存器赋值?




我已经找到我的程序的问题了,我之前用的是个DDRVI的相对指令,在指令结束时用M1029给寄存器赋值的,接着就执行DPPMA的指令了,导致赋值失败。
我的指令如下

LD M1-----DDRVI D400 D402 Y0 Y1
     /DMOV D1336 D200
     /LD M1029-----DMOV D200 D1336
                /----RST M1029
               /SET M2
LD M2 ----DPPMA D300 D302 D304 Y0
这有导致我赋值失败了,我在改为这有后可以了
LD M1-----DDRVI D400 D402 Y0 Y1
     /DMOV D1336 D200
     /LD M1029---- /----RST M1029
                  /SET M3
LD M3---TMR T0 K1
    /-DMOV D200 D1336
    /--LD T0 --RST M3
              / SET M2
LD M2 ----DPPMA D300 D302 D304 Y0



附上台达EH3的编程手册
[此贴子已经被作者于2015/12/9 22:43:34编辑过]
948
340241994
文章数:95
年度积分:50
历史总积分:948
品牌积分(台达):0
注册时间:2015/11/4
发站内信
发表于:2015/12/9 9:05:14
#1楼
原点复位时,D1336和D1338自动清除为0.后面开始记脉冲数了!
应该开机时,只能付一次值
85318
ZCMY 版主
文章数:47403
年度积分:1377
历史总积分:85318
品牌积分(台达):193
注册时间:2004/3/16
发站内信
2018论坛贡献奖
2018春节活动(三)
2017论坛优秀版主
2017国庆活动(三)
2016论坛优秀版主
2015论坛优秀版主
2014论坛优秀版主
2014相约国庆
2013论坛优秀版主
2012论坛优秀版主
2011论坛贡献奖
2010年论坛优秀版主
发表于:2015/12/9 9:11:50
#2楼
D1336属于特殊寄存器,先搞清楚具体是什么再使用;
18553
qjj740210
文章数:4779
年度积分:1322
历史总积分:18553
品牌积分(台达):58
注册时间:2005/9/24
发站内信
2018春节活动(二)
2017国庆活动(二)
2017春节活动(二)
2016国庆活动(二)
西门子触摸屏(一)
三菱电机活动(二)
西门子logo体验(三)
西门子PLC体验(二)
2013辞旧迎新
发表于:2015/12/9 9:15:16
#3楼
查一下手册,D1336与D1338这两个如果是特殊D寄存器,有可能就不能人为改变值。
苦逼的奋斗者
1453
孤鴻獨自飛
文章数:231
年度积分:50
历史总积分:1453
品牌积分(台达):0
注册时间:2015/3/17
发站内信
发表于:2015/12/9 22:27:40
#4楼
以下是引用3402419942015/12/9 9:05:14的发言:
原点复位时,D1336和D1338自动清除为0.后面开始记脉冲数了!
应该开机时,只能付一次值
不对吧,这也只是个寄存器,在不读取寄存器时应该是可以赋值的。
我已经找到我的程序的问题了,我之前用的是个DDRVI的相对指令,在指令结束时用M1029给寄存器赋值的,接着就执行DPPMA的指令了,导致赋值失败。
我的指令如下

LD M1-----DDRVI D400 D402 Y0 Y1
      /DMOV D1336 D200
      /LD M1029-----DMOV D200 D1336
                 /----RST M1029
                /SET M2
LD M2 ----DPPMA D300 D302 D304 Y0
这有导致我赋值失败了,我在改为这有后可以了
LD M1-----DDRVI D400 D402 Y0 Y1
      /DMOV D1336 D200
      /LD M1029---- /----RST M1029
                   /SET M3
LD M3---TMR T0 K1
     /-DMOV D200 D1336
     /--LD T0 --RST M3
               / SET M2
LD M2 ----DPPMA D300 D302 D304 Y0
1453
孤鴻獨自飛
文章数:231
年度积分:50
历史总积分:1453
品牌积分(台达):0
注册时间:2015/3/17
发站内信
发表于:2015/12/9 22:40:56
#5楼
以下是引用qjj7402102015/12/9 9:15:16的发言:
查一下手册,D1336与D1338这两个如果是特殊D寄存器,有可能就不能人为改变值。
可以改变的,一般工程师写回原点 程序时如果 不用 专门的回原指令了,就是用这样写
LD M0 ----DDRVI  D200 D202 Y0 Y1
       /---LD M1029----DMOV K0 D1336
这个时候你当前位置就是坐标原点,如果你的屏幕上坐标是用脉冲数算出来的话,这时候坐标也是0,这就是所谓的回原。
当然你也可以用DZRN专门的原点回归指令
1453
孤鴻獨自飛
文章数:231
年度积分:50
历史总积分:1453
品牌积分(台达):0
注册时间:2015/3/17
发站内信
发表于:2015/12/9 22:41:12
#6楼
我已经找到我的程序的问题了,我之前用的是个DDRVI的相对指令,在指令结束时用M1029给寄存器赋值的,接着就执行DPPMA的指令了,导致赋值失败。
我的指令如下

LD M1-----DDRVI D400 D402 Y0 Y1
     /DMOV D1336 D200
     /LD M1029-----DMOV D200 D1336
                /----RST M1029
               /SET M2
LD M2 ----DPPMA D300 D302 D304 Y0
这有导致我赋值失败了,我在改为这有后可以了
LD M1-----DDRVI D400 D402 Y0 Y1
     /DMOV D1336 D200
     /LD M1029---- /----RST M1029
                  /SET M3
LD M3---TMR T0 K1
    /-DMOV D200 D1336
    /--LD T0 --RST M3
              / SET M2
LD M2 ----DPPMA D300 D302 D304 Y0
24524
mjinbao
文章数:13934
年度积分:48
历史总积分:24524
品牌积分(台达):26
注册时间:2013/1/12
发站内信
2018春节活动(三)
2017春节活动(三)
2016国庆活动(三)
发表于:2015/12/13 16:07:59
#7楼
楼主给出了解决结果,很好!

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

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

78.0005