台达人机宏问题 点击:562 | 回复:7



liuTX

    
  • 精华:0帖
  • 求助:1帖
  • 帖子:15帖 | 38回
  • 年度积分:96
  • 历史总积分:258
  • 注册:2011年8月16日
发表于:2011-11-14 00:25:47
楼主

我是新手想请教各位大虾一个问题;建三个数值输入地址是控制器,1是d60     2是D61    3是d62    就是d62输入的数值只能小于或等于d60与d61的和,当把d62输入数值大于d60与d61的和时按确认ent   而输进d62的数只和d60  d61的和相等。

大家帮忙给个思路这宏该怎么编




gjj

  • 精华:1帖
  • 求助:1帖
  • 帖子:58帖 | 145回
  • 年度积分:1
  • 历史总积分:1480
  • 注册:2006年9月22日
发表于:2011-11-14 11:57:50
1楼

我找出两个方式;

1、

$0=d60+d61

IF  d62 > $0  THEN  GOTO  LABEL  1

END

LABEL 1

d62 =$0

2、

$0=d60+d61

IF d62 > $0  THEN  CALL1

END

子宏1、

d62 =$0

RET

gjj

  • 精华:1帖
  • 求助:1帖
  • 帖子:58帖 | 145回
  • 年度积分:1
  • 历史总积分:1480
  • 注册:2006年9月22日
发表于:2011-11-14 18:24:22
2楼

数字输入执行后宏。

D0=D60+D61

IF D62>D0

D62=D0

ENDIF

gjj

  • 精华:1帖
  • 求助:1帖
  • 帖子:58帖 | 145回
  • 年度积分:1
  • 历史总积分:1480
  • 注册:2006年9月22日
发表于:2011-11-14 18:27:41
3楼

数字输入执行后宏。            

liuTX

  • 精华:0帖
  • 求助:1帖
  • 帖子:15帖 | 38回
  • 年度积分:96
  • 历史总积分:258
  • 注册:2011年8月16日
发表于:2011-11-14 21:10:59
4楼
感谢gjj的帮助,我用人机内部地址可以完成。但是用控制器地址d来编宏,语法检测不能通过,var地址不正确。

ljbcompany

  • 精华:0帖
  • 求助:0帖
  • 帖子:5帖 | 1289回
  • 年度积分:0
  • 历史总积分:5847
  • 注册:2011年4月24日
发表于:2011-11-15 14:48:15
5楼
人机宏指令不直接支持PLC的寄存器地址,必须用$(断电失忆)或$M(断电记忆);所以先用MOV或BMOV将var2的DXX传送到$或$M,运算完毕再将数据传送到DXX即可。

远方的学者

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 14回
  • 年度积分:0
  • 历史总积分:71
  • 注册:2009年9月11日
发表于:2012-01-14 13:39:00
6楼
数字输入执行后宏。

D0=D60+D61

IF D62>D0

D62=D0

ENDIF

ljbcompany

  • 精华:0帖
  • 求助:0帖
  • 帖子:5帖 | 1289回
  • 年度积分:0
  • 历史总积分:5847
  • 注册:2011年4月24日
发表于:2012-01-31 17:36:50
7楼
台达人机宏指令还是蛮好用的,不像维纶通还要定义变量。

热门招聘
相关主题

官方公众号

智造工程师