• «
  • 1
  • 2
  • »
  • Pages: 1/2     Go
szrunluo
级别: *
精华主题: * 篇
发帖数量: * 个
工控威望: * 点
下载积分: * 分
在线时间: (小时)
注册时间: *
最后登录: *
查看szrunluo的 主题 / 回贴
楼主  发表于: 2008-07-15 00:14
使用除法运算时,DIV,    10000 / 6=1666,   余数是0.666667.       但在PC运行中计算出来的余数是4,我百思不解PC是怎样转换过来的结果,
请求高手指点.
cvlsam
富士低压,POD(觸摸屏),PLC专卖
级别: VIP会员

精华主题: 3 篇
发帖数量: 6769 个
工控威望: 38370 点
下载积分: 2965 分
在线时间: 9505(小时)
注册时间: 2006-09-13
最后登录: 2024-11-18
查看cvlsam的 主题 / 回贴
1楼  发表于: 2008-07-15 05:48
這是因爲您的PLC或者您的程式有問題!

如果您的PLC不支持浮點運算,那麽將會以整除來計算,其結果自然是商+餘數,而餘數就是4了。

如果您的PLC支持浮點運算,而您卻未使用帶有E的浮點運算指令,那麽也是如上的結果。

以上!
本帖最近评分记录:
  • 下载积分:+1(lgf1008)
    王睿
    一切随意
    级别: 网络英雄
    精华主题: 0
    发帖数量: 987 个
    工控威望: 6748 点
    下载积分: 31090 分
    在线时间: 437(小时)
    注册时间: 2008-03-20
    最后登录: 2024-08-16
    查看王睿的 主题 / 回贴
    2楼  发表于: 2008-07-15 05:59
    恩  同意1楼的  谢谢
    pony123
    级别: *
    精华主题: * 篇
    发帖数量: * 个
    工控威望: * 点
    下载积分: * 分
    在线时间: (小时)
    注册时间: *
    最后登录: *
    查看pony123的 主题 / 回贴
    3楼  发表于: 2008-07-15 08:35
    支持一楼
    工控小生
    级别: 家园常客
    精华主题: 0
    发帖数量: 450 个
    工控威望: 623 点
    下载积分: 5828 分
    在线时间: 796(小时)
    注册时间: 2008-05-19
    最后登录: 2024-11-16
    查看工控小生的 主题 / 回贴
    4楼  发表于: 2008-07-15 09:34
    解释的很好。
    lgf1008
    危机=机会
    级别: 略有小成
    精华主题: 0
    发帖数量: 227 个
    工控威望: 457 点
    下载积分: 511 分
    在线时间: 30(小时)
    注册时间: 2008-05-26
    最后登录: 2023-06-20
    查看lgf1008的 主题 / 回贴
    5楼  发表于: 2008-07-15 11:11
    一楼解释得很清楚
    szrunluo
    级别: *
    精华主题: * 篇
    发帖数量: * 个
    工控威望: * 点
    下载积分: * 分
    在线时间: (小时)
    注册时间: *
    最后登录: *
    查看szrunluo的 主题 / 回贴
    6楼  发表于: 2008-07-16 06:44
    一楼,我是没有用浮点运算,小数点后被PC换成整数,我奇怪的就是这点,我自己换算了一下,却不知用的是哪个公式,结果才会等于4。请你把这个说明一下好吗,谢谢。
    szrunluo
    级别: *
    精华主题: * 篇
    发帖数量: * 个
    工控威望: * 点
    下载积分: * 分
    在线时间: (小时)
    注册时间: *
    最后登录: *
    查看szrunluo的 主题 / 回贴
    7楼  发表于: 2008-07-16 06:50
    我心急想知道这个结果,不知怎样把贴子顶上去,只用这个方法了,请不要见笑,望有知道这是怎么回事的高手们解答一下,谢谢,谢谢。
    colourpine
    级别: *
    精华主题: * 篇
    发帖数量: * 个
    工控威望: * 点
    下载积分: * 分
    在线时间: (小时)
    注册时间: *
    最后登录: *
    查看colourpine的 主题 / 回贴
    8楼  发表于: 2008-07-16 08:35
    ding ding
    cvlsam
    富士低压,POD(觸摸屏),PLC专卖
    级别: VIP会员

    精华主题: 3 篇
    发帖数量: 6769 个
    工控威望: 38370 点
    下载积分: 2965 分
    在线时间: 9505(小时)
    注册时间: 2006-09-13
    最后登录: 2024-11-18
    查看cvlsam的 主题 / 回贴
    9楼  发表于: 2008-07-16 09:01
    引用
    引用第9楼szrunluo于2008-07-16 06:46发表的  :
    一楼,我是没有用浮点运算,小数点后被PC换成整数,我奇怪的就是这点,我自己换算了一下,却不知用的是哪个公式,结果才会等于4。请你把这个说明一下好吗,谢谢。


    您無需重復頂貼以引起關注,您完全可以使用站內短訊聯系……

    請您翻開您的《FX1S,FX1N,FX2N編程手冊》至185頁,上面所述的DIV指令的用法。

    三菱對于除法的原則是:被除數/除數=商……余數,也就是說,例如:10除以3,三菱的結果將會在地址1中保留商3,然后在地址1+1上保留余數1.



    而您的概念是存在一定模糊的,其最終原因在于您混淆了余數與尾數的概念,以10除3為例,余數為1,尾數為0.3333333……

    以上~~
    本帖最近评分记录:
  • 下载积分:+10(YMMFA) 热心助人!
    zxdha
    级别: 略有小成
    精华主题: 0
    发帖数量: 182 个
    工控威望: 247 点
    下载积分: 1264 分
    在线时间: 47(小时)
    注册时间: 2007-05-17
    最后登录: 2021-05-30
    查看zxdha的 主题 / 回贴
    10楼  发表于: 2008-07-16 10:26
    简单点说,div或ddiv是整数运算指令,在运算时它不会去计算小数点后面的数据,也就是说它只运算到个位数为止,所以余数也一定是整数。如1000除以6等于166,余数肯定为4。

    而使用浮点运算从理论上来说是不存在余数的!!!实际应用中主要看你使用32位计算、还是使用64位计算、还是用128位计算,位数越高精确度也越高。如1000除以6等于166.66666666666.......7。请注意小数点后面的0.66666666666.......7它其实是商,而不是余数!!!
    本帖最近评分记录:
  • 下载积分:+3(YMMFA) 热心助人!
    ymmfa
    不想大江大河,不想浪起潮落,只愿一湾小湖,静待岁月安好。
    级别: 管理员

    精华主题: 8 篇
    发帖数量: 9666 个
    工控威望: 8552 点
    下载积分: 16664 分
    在线时间: 5323(小时)
    注册时间: 2006-08-10
    最后登录: 2024-11-17
    查看ymmfa的 主题 / 回贴
    11楼  发表于: 2008-07-16 10:54
    如果要计算,并且除不尽,而PLC又不支持浮点,我一般喜欢把分子放大

    比如  10万/6

    因为运算可能有多个步骤,如果每个步骤都有余数,这些误差累计到最后会很大

    我一般把分子放大10倍左右,算到最后再除10,这样好一点
    特别提醒大家:
    偶尔修改下自己的密码,以防被盗
    不要在多个网站都用一样账号密码
    偶尔还是要发发贴,回回贴,不要总潜水
    • «
    • 1
    • 2
    • »
    • Pages: 1/2     Go