• «
  • 1
  • 2
  • »
  • Pages: 2/2     Go
dv0429
级别: 略有小成
精华主题: 0
发帖数量: 205 个
工控威望: 221 点
下载积分: 837 分
在线时间: 96(小时)
注册时间: 2008-02-27
最后登录: 2023-09-18
查看dv0429的 主题 / 回贴
12楼  发表于: 2008-11-10 08:54
真是晕倒,我的已经说得很清楚~!!
在乘法上32767是用16位寄存器还是32位的分界点,这是毫无疑问的地方
但是在除法上无论你是16位除法还是32位除法都是占用32位,第一个结果是商,第二个是余数.比如DIV D0 D10 D20来说,D20是商,D21是余数.DDIV d100 D110 D120,那么D120.D121是商,D122,D123是余数,当然如果出来的值少于32767的话你可以直接调用低位的D来作以后的运算,不必一定要用32位指令.总之还是那个原则,32767是16位和32位的分界点
目前来说PLC不支持64位
小蜜蜂
你让我滚,我滚了。你让我回来,对不起,滚远了...
级别: 论坛先锋

精华主题: 0
发帖数量: 1402 个
工控威望: 1507 点
下载积分: 13266 分
在线时间: 2204(小时)
注册时间: 2008-03-19
最后登录: 2024-11-26
查看小蜜蜂的 主题 / 回贴
13楼  发表于: 2008-11-10 17:17
明白,明白,   
ljc2008
一学到老
级别: 家园常客
精华主题: 0
发帖数量: 406 个
工控威望: 562 点
下载积分: 499 分
在线时间: 172(小时)
注册时间: 2008-10-04
最后登录: 2024-03-04
查看ljc2008的 主题 / 回贴
14楼  发表于: 2008-11-11 14:45
书上是对的,在PLC的程序运算中,你事先并不知道运算结果,因此,两个16位相乘,不管结果是否超过16位,都必须按32位结果来做下一步处理,这样才保证以后处理不会错。知道了二个数相乘不超过16位,拿这种情况来讨论没有普遍意义。
小蜜蜂
你让我滚,我滚了。你让我回来,对不起,滚远了...
级别: 论坛先锋

精华主题: 0
发帖数量: 1402 个
工控威望: 1507 点
下载积分: 13266 分
在线时间: 2204(小时)
注册时间: 2008-03-19
最后登录: 2024-11-26
查看小蜜蜂的 主题 / 回贴
15楼  发表于: 2008-11-11 15:02
有意义的,我只是想知道两个数相乘结果不超过16位,那下一行是否可以用16位的指令比如MUL,DIV等,因为按照书上的讲的话,两个16位的相乘结果的32位,那下一行的乘法或除法肯定要用32位的,加D,那么到第三行了我还要用乘或除法,就不能执行下去了,因为64位的无法处理了。
zhangshichao
级别: *
精华主题: * 篇
发帖数量: * 个
工控威望: * 点
下载积分: * 分
在线时间: (小时)
注册时间: *
最后登录: *
查看zhangshichao的 主题 / 回贴
16楼  发表于: 2009-02-20 23:48
小蜜蜂,呵呵
  
zhouyang
我没有选择,但我有追求!
级别: VIP会员
精华主题: 0
发帖数量: 213 个
工控威望: 419 点
下载积分: 1189 分
在线时间: 94(小时)
注册时间: 2009-02-22
最后登录: 2015-11-02
查看zhouyang的 主题 / 回贴
17楼  发表于: 2009-02-23 12:14
你要看那个值是多少,如果超过32767那就是32位的数据了  就要用32位的指令  在16位指令前加D
32位的数据占用2个数据寄存器 ,也就还是D4  D5
幻想----------设计的灵魂
  • «
  • 1
  • 2
  • »
  • Pages: 2/2     Go