S7-300中DI怎么转换为I 点击:1433 | 回复:3



helaian

    
  • 精华:0帖
  • 求助:10帖
  • 帖子:20帖 | 12回
  • 年度积分:0
  • 历史总积分:192
  • 注册:2009年3月19日
发表于:2010-05-11 15:27:53
楼主

大家好,我请教各位朋友,S7-300中双整数(DI),怎么转换为整数(I)

假设我的双整数是MD0,我怎么转换为整数呢,有哪为朋友知道,请帮帮忙




yuanle

  • 精华:0帖
  • 求助:0帖
  • 帖子:9帖 | 10208回
  • 年度积分:2747
  • 历史总积分:48332
  • 注册:2005年4月22日
发表于:2010-05-11 20:17:35
1楼
以西门子的做法就是 直接读取低字    如您的双整数为MD0,那么直接读取MW2  ,L  MW2

包括西门子的SCL中的转换也如此,SCL中,实现该功能的指令为DINT_TO_INT。

实际上,西门子指望用户自己去确保您的DINT数据需要在INT的数据范围内,当然,如果您选用STL或者LAD,那么您需要自行处理符号位。

以我个人的处理方式,我会对于数据进行判断,当数据大于INT的值域范围时,会输出最大或者最小值。

Good Luck~

liuronghai

  • 精华:0帖
  • 求助:0帖
  • 帖子:6帖 | 51回
  • 年度积分:0
  • 历史总积分:0
  • 注册:1900年1月01日
发表于:2010-05-11 20:35:05
2楼

直接用mov指令即可,你可以试一下mov指令输入在符号表中定义为dint,mov输出侧定义为int,300中没有200的转换指令是源于300的mov指令的强大。如果是real型转换成int,你可以将real用round指令转换成dint,然后用mov指令转换成int,这在300系统中通过dp方式外挂200模块,写200模块的地址中会用到。

LIYOUWEI

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 15回
  • 年度积分:0
  • 历史总积分:28
  • 注册:2002年10月25日
发表于:2011-04-11 19:51:50
3楼
但你如果双整数是带符号的,你这样就不行了

热门招聘
相关主题

官方公众号

智造工程师