请教台达数据寄存器传送问题 点击:607 | 回复:5



slancmy

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:12帖 | 11回
  • 年度积分:2
  • 历史总积分:92
  • 注册:2013年2月21日
发表于:2019-05-30 14:56:44
楼主

请问图中数据寄存器D9905为什么要传送给d50,直接用不行吗?还有好多这种情况,比如d50再传送给别的寄存器,这样有啥意义吗?为什么不用开始的寄存器本身?




slancmy

  • 精华:0帖
  • 求助:0帖
  • 帖子:12帖 | 11回
  • 年度积分:2
  • 历史总积分:92
  • 注册:2013年2月21日
发表于:2019-05-30 15:22:22
1楼

另外,图中为什么要用32位接点形态比较指令,而不用16位接点形态比较指令。

一颗小小草

  • 精华:8帖
  • 求助:22帖
  • 帖子:148帖 | 4867回
  • 年度积分:1683
  • 历史总积分:39928
  • 注册:2005年6月28日
发表于:2019-05-30 15:56:52
2楼


回复内容:

对: slancmy  另外,图中为什么要用32位接点形态比较指令,而不用16... 内容的回复!

-------------------------

这需要联系编程工艺要求,与你昨天提问监控看到的D100在2处数据为什么不一样是一个道理。

32位比较指令,比较D100与D200大小,实质上比较的是D100+D101组成的一个32位数与D200+D201组成的一个32位数,连带与D101和D201有关。

16位比较指令,比较D100与D200大小,就是只比较D100与D200的大小,与D101和D201无关。

至于你前面的问题:数据寄存器D9905为什么要传送给d50,直接用不行吗?

这个有时候还真不行,有时候直接用可以。特别做数据长度转换以及数学运算时一定要清楚,表面看同样的D100,到底是16位还是32位,是有符号还是无符号还是浮点数……

扯远一点,有些HMI只认V寄存器不认M寄存器,那么要HMI读M寄存器位,你是不是必须要在PLC中做一些表面看无效的MOV转换?

GKstudying

  • [管理员]
  • 精华:4帖
  • 求助:4帖
  • 帖子:1019帖 | 7217回
  • 年度积分:1194
  • 历史总积分:18802
  • 注册:2008年11月11日
发表于:2019-05-30 15:59:10
3楼

回复内容:

对: 一颗小小草 回复内容:对: slancmy  另外,图中为什么要用... 内容的回复!

-------------------------


slancmy

  • 精华:0帖
  • 求助:0帖
  • 帖子:12帖 | 11回
  • 年度积分:2
  • 历史总积分:92
  • 注册:2013年2月21日
发表于:2019-05-30 16:48:55
4楼

回复内容:

对:一颗小小草 回复内容:对: slancmy  另外,图中为什么要用32位接点形态比较指令,而不用16... 内容的回复!-------------------------这需要联系编程工艺要求,与你昨天提问监控看到的D100在2处数据为什么不一样是一个道理。32位比较指令,比较D100与D200大小,实质上比较的是D100+D101组成的一个32位数与D200+D201组成的一个32位数,连带与D101和D201有关。16位比较指令,比较D100与D200大小,就是只比较D100与D200的大小,与D101和D201无关。至于你前面的问题:数据寄存器D9905为什么要传送给d50,直接用不行吗?这个有时候还真不行,有时候直接用可以。特别做数据长度转换以及数学运算时一定要清楚,表面看同样的D100,到底是16位还是32位,是有符号还是无符号还是浮点数……扯远一点,有些HMI只认V寄存器不认M寄存器,那么要HMI读M寄存器位,你是不是必须要在PLC中做一些表面看无效的MOV转换?     内容的回复:

非常感谢您的指教,昨天的问题明白了。今天又看到别人的这些程序时,感觉不太理解,为什么数据寄存器要多次传送。另外,明明mov不是16位传送指令吗?为什么触点形态比较时却用32位,16位不是也够用吗?

liujian5118-PLC技术军团

  • 精华:2帖
  • 求助:8帖
  • 帖子:31帖 | 3109回
  • 年度积分:199
  • 历史总积分:19924
  • 注册:2009年3月25日
发表于:2019-05-31 11:48:45
5楼

这个例子是不合理的;在数据的整个操作看,使用双字的比较的,数值来源都采用单字操作;若果后面没有数据操作的话,程式是可以用单字比较的。另外,D50不直接用D9905,程式开始设计的时候,可能是计划D50(断电不保持)作为变量使用,而D9905(断电保持的)是个初始参数。


热门招聘
相关主题

官方公众号

智造工程师