• «
  • 1
  • 2
  • »
  • Pages: 1/2     Go
yd031wcy
级别: 探索解密
精华主题: 0
发帖数量: 24 个
工控威望: 155 点
下载积分: 782 分
在线时间: 16(小时)
注册时间: 2013-09-07
最后登录: 2022-07-19
查看yd031wcy的 主题 / 回贴
楼主  发表于: 2018-11-11 21:16
图片:
图片:
图片:
各位前辈好
                我使用MX 控件读取FX3S中浮点数遇到了一些问题,恳请前辈指导
          1.我使用c#调用 ReadDeviceBlock2("D0",2, out arr[0])方法读取D0中小数 为何都是16320呢 ?
           2.当DMOV k7000 D2 时 只要是用到两个寄存器 都不对 这个应该怎么换算呢
      接受被喷 毕竟太菜了 虚心请教
kiwso
级别: 略有小成
精华主题: 0
发帖数量: 301 个
工控威望: 405 点
下载积分: 2686 分
在线时间: 350(小时)
注册时间: 2011-05-19
最后登录: 2024-04-18
查看kiwso的 主题 / 回贴
1楼  发表于: 2018-11-11 21:37
int  !!!!!!!!
yd031wcy
级别: 探索解密
精华主题: 0
发帖数量: 24 个
工控威望: 155 点
下载积分: 782 分
在线时间: 16(小时)
注册时间: 2013-09-07
最后登录: 2022-07-19
查看yd031wcy的 主题 / 回贴
2楼  发表于: 2018-11-11 21:45
引用
引用第1楼kiwso于2018-11-11 21:37发表的  :
int  !!!!!!!!

我试过INT16 32感觉都不对 这个好像是基础知识全忘记了 可以告诉我怎么修改吗
030403118
自动项目、PLC、视觉、通讯等工控软件开发QQ3515716
级别: 工控侠客

精华主题: 3 篇
发帖数量: 1968 个
工控威望: 2883 点
下载积分: 25115 分
在线时间: 1366(小时)
注册时间: 2014-01-05
最后登录: 2024-04-19
查看030403118的 主题 / 回贴
3楼  发表于: 2018-11-11 21:50
因为你是浮点数 转成浮点数就好了
项目、视觉、通讯QQ3515716
yd031wcy
级别: 探索解密
精华主题: 0
发帖数量: 24 个
工控威望: 155 点
下载积分: 782 分
在线时间: 16(小时)
注册时间: 2013-09-07
最后登录: 2022-07-19
查看yd031wcy的 主题 / 回贴
4楼  发表于: 2018-11-11 22:02
引用
引用第3楼030403118于2018-11-11 21:50发表的  :
因为你是浮点数 转成浮点数就好了

short[] arr = new short[2];
            float[] b = new float[arr.Length];

            int rtn=  com.ReadDeviceBlock2("D0",2, out arr[0]);
            
          
            for (int ia= 0; a < arr.Length; a++)
            {
                b[a] = (float)arr[a];
            }


我这样输出的还是一样的 我很懵逼
030403118
自动项目、PLC、视觉、通讯等工控软件开发QQ3515716
级别: 工控侠客

精华主题: 3 篇
发帖数量: 1968 个
工控威望: 2883 点
下载积分: 25115 分
在线时间: 1366(小时)
注册时间: 2014-01-05
最后登录: 2024-04-19
查看030403118的 主题 / 回贴
5楼  发表于: 2018-11-12 08:02
图片:
晕倒 我说你那D0 D1是浮点数 你以整型读出来了,所以要在二进制上或者十六机制上转换,不是整型转浮点型
[ 此帖被030403118在2018-11-12 08:09重新编辑 ]
项目、视觉、通讯QQ3515716
instanttw
级别: 探索解密
精华主题: 0
发帖数量: 26 个
工控威望: 155 点
下载积分: 2292 分
在线时间: 39(小时)
注册时间: 2013-04-25
最后登录: 2021-11-04
查看instanttw的 主题 / 回贴
6楼  发表于: 2018-11-12 10:26
IEEE754:基本观念

BitConverter.GetBytes、BitConverter.ToSingle:本问题核心,您的场合不应使用型别转换

EndiannessArray.Reverse:补充资料
030403118
自动项目、PLC、视觉、通讯等工控软件开发QQ3515716
级别: 工控侠客

精华主题: 3 篇
发帖数量: 1968 个
工控威望: 2883 点
下载积分: 25115 分
在线时间: 1366(小时)
注册时间: 2014-01-05
最后登录: 2024-04-19
查看030403118的 主题 / 回贴
7楼  发表于: 2018-11-12 13:55
代码给你  拿走吧
//第一种方法:
            short D0 = 0;
            short D1 = 16320;
            byte[] L = System.BitConverter.GetBytes(D0);
            byte[] H = System.BitConverter.GetBytes(D1);          
            byte[] f = new byte[H.Length + L.Length];
            Buffer.BlockCopy(L, 0, f, 0, L.Length);
            Buffer.BlockCopy(H, 0, f, L.Length, H.Length);
            float FF = BitConverter.ToSingle(f, 0);
           textBox1.Text  = "结果应该是:" + FF.ToString();
    //第二种方法:
            int HH=0;
            short D0 = 0;
            short D1 = 16320;
            HH |= (D1 & 0x0000ffff);
            HH = (HH << 16) | (D0 & 0x0000ffff);
            byte[] intBuff = BitConverter.GetBytes (HH);
            float FF = BitConverter.ToSingle(intBuff, 0);
            textBox1.Text = "结果应该是:" + FF.ToString();
项目、视觉、通讯QQ3515716
yd031wcy
级别: 探索解密
精华主题: 0
发帖数量: 24 个
工控威望: 155 点
下载积分: 782 分
在线时间: 16(小时)
注册时间: 2013-09-07
最后登录: 2022-07-19
查看yd031wcy的 主题 / 回贴
8楼  发表于: 2018-11-12 20:35
引用
引用第6楼instanttw于2018-11-12 10:26发表的  :
IEEE754:基本观念

BitConverter.GetBytes、BitConverter.ToSingle:本问题核心,您的场合不应使用型别转换

EndiannessArray.Reverse:补充资料

谢谢 前辈
yd031wcy
级别: 探索解密
精华主题: 0
发帖数量: 24 个
工控威望: 155 点
下载积分: 782 分
在线时间: 16(小时)
注册时间: 2013-09-07
最后登录: 2022-07-19
查看yd031wcy的 主题 / 回贴
9楼  发表于: 2018-11-12 20:39
引用
引用第7楼030403118于2018-11-12 13:55发表的  :
代码给你  拿走吧
//第一种方法:
            short D0 = 0;
            short D1 = 16320;
            byte[] L = System.BitConverter.GetBytes(D0);
.......

谢谢前辈 真心非常感谢 想给你打个赏 给个途径
030403118
自动项目、PLC、视觉、通讯等工控软件开发QQ3515716
级别: 工控侠客

精华主题: 3 篇
发帖数量: 1968 个
工控威望: 2883 点
下载积分: 25115 分
在线时间: 1366(小时)
注册时间: 2014-01-05
最后登录: 2024-04-19
查看030403118的 主题 / 回贴
10楼  发表于: 2018-11-12 20:45
引用
引用第9楼yd031wcy于2018-11-12 20:39发表的  :

谢谢前辈 真心非常感谢 想给你打个赏 给个途径

不用了 谢谢
项目、视觉、通讯QQ3515716
yd031wcy
级别: 探索解密
精华主题: 0
发帖数量: 24 个
工控威望: 155 点
下载积分: 782 分
在线时间: 16(小时)
注册时间: 2013-09-07
最后登录: 2022-07-19
查看yd031wcy的 主题 / 回贴
11楼  发表于: 2018-11-16 21:35
引用
引用第10楼030403118于2018-11-12 20:45发表的  :

不用了 谢谢
再次感谢
  • «
  • 1
  • 2
  • »
  • Pages: 1/2     Go