grrrmeng
级别: 正式会员
精华主题: 0
发帖数量: 3 个
工控威望: 96 点
下载积分: 673 分
在线时间: 1(小时)
注册时间: 2017-02-07
最后登录: 2024-01-09
查看grrrmeng的 主题 / 回贴
楼主  发表于: 2017-06-02 14:37
图片:
初次使用欧姆龙系类的PLC,CP1H的 见图片 为啥 数据转换的那步指令FIX不执行,实在是找不出毛病,求救对欧姆龙熟悉的老司机!
cvlsam
富士低压,POD(觸摸屏),PLC专卖
级别: VIP会员

精华主题: 3 篇
发帖数量: 6770 个
工控威望: 38371 点
下载积分: 3142 分
在线时间: 9509(小时)
注册时间: 2006-09-13
最后登录: 2024-11-23
查看cvlsam的 主题 / 回贴
1楼  发表于: 2017-06-02 14:45
FIX已经执行了。

看到E后面的那个负号么,代表你的浮点数已经是只剩下小数部分了,小于0的浮点数的转换结果就是0了。

Good Luck~
本帖最近评分记录:
  • 下载积分:+1(grrrmeng) 怎么会出现负值了 我这都 ..
    cvlsam
    富士低压,POD(觸摸屏),PLC专卖
    级别: VIP会员

    精华主题: 3 篇
    发帖数量: 6770 个
    工控威望: 38371 点
    下载积分: 3142 分
    在线时间: 9509(小时)
    注册时间: 2006-09-13
    最后登录: 2024-11-23
    查看cvlsam的 主题 / 回贴
    2楼  发表于: 2017-06-02 14:59
    引用
    引用第1楼cvlsam于2017-06-02 14:45发表的  :
    FIX已经执行了。

    看到E后面的那个负号么,代表你的浮点数已经是只剩下小数部分了,小于0的浮点数的转换结果就是0了。

    Good Luck~


    您需要去看一下浮点数的科学表示法章节!

    1.0E+001,代表10.0
    1.0E-001,代表0.1

    以上只是浮点数中很肤浅的例子,你仍然需要去看浮点数的相关知识!

    Good Luck~
    本帖最近评分记录:
  • 下载积分:+1(penn_yuan)
    cvlsam
    富士低压,POD(觸摸屏),PLC专卖
    级别: VIP会员

    精华主题: 3 篇
    发帖数量: 6770 个
    工控威望: 38371 点
    下载积分: 3142 分
    在线时间: 9509(小时)
    注册时间: 2006-09-13
    最后登录: 2024-11-23
    查看cvlsam的 主题 / 回贴
    3楼  发表于: 2017-06-02 15:41
    引用
    引用第3楼grrrmeng于2017-06-02 15:29发表的  :
    OK 问题已经找到了 原来是浮点乘法的时候 使用常数 他本身不能够变为浮点。增加了一部赋值就好了 谢谢 谢谢


    原因并不是本身不能够变成浮点,而是浮点数在内存中排列与有符号数不同。

    你可以对一个32位数进行随意赋值一个不为0的常数,最终都能出现浮点数。

    出现你目前的原因是:
    因为你将一个常数赋予浮点数,也可以认为你将一个常数给了一个32位存储空间,而这个常数在32位存储空间中排列所得到的浮点数是一个很小的值。

    由于这个值非常小,导致乘法结果是一个小数,最终导致一个小数被转化指令转化为0了。

    这才是导致你认为FIX没有执行的真正原因,因此,如果你希望在这个领域水平有所提高的话,你还是需要去看IEEE754浮点数的相关内容,特别是浮点数在内存中的排列格式。

    Good Luck~
    本帖最近评分记录:
  • 下载积分:+5(hlq_0815) 耐心教人