回复:如何把小数(比如0.1)转转成16进制的、而且是16位的数据

已锁定

昔日如诗

  • 帖子

    838
  • 精华

    3
  • 被关注

    10

论坛等级:侠圣

注册时间:2018-04-17

白金 白金 如何晋级?

发布于 2023-11-27 14:06:44

22楼

展开查看
以下是引用甫哥在2023-11-25 16:43:06的发言 >20楼

按线性转换对比一下:

1)65536(十进制)*0.00(十进制)=0(十进制)=0000(十六进制)=0000 0000 0000 0000(二进制);

2)65536(十进制)*0.25(十进制)=16384(十进制)=4000(十六进制)=0100 0000 0000 0000(二进制);

3)65536(十进制)*0.75(十进制)=49152(十进制)=C000(十六进制)=1100 0000 0000 0000(二进制);

4)65536(十进制)*0.85(十进制)=55,705.6(十进制)四舍五入后=D99A(十六进制)=1101 1001 1001 1010(二进制);

5)65536(十进制)*1.00(十进制)=65536(十进制)=10000(十六进制)=0001 0000 0000 0000 0000(二进制);

另外,PLC中的 整数(无符号整数、有符号整数的正数)与 十六进制数(正整数)的二进制编码相同;又:PLC中,无论是何种格式的数据,均采用二进制方式保存。


结论:

    1)可以理解为:0.0~1.0对应0~65536

     2)说白了就是将0.25~0.75,线性转换为,两字节无符号整数 16384~49152。也就是所需的:十六进制数 4000~C000;二者的二进制编码相同。

     转换换程序还需要提示不?

模拟量标定:整数线性转换为实数;

针对本贴:实数线性转换为整数;

针对本贴:线性转换公式简化后:

65536.0*数字设定值(0.25~0.75)的积,转换为整数后的值。就是要传送出去的【数字设定值】;其中 数字设定值(0.25~0.75)是实数格式的设定值。即:有单位的工程量设定值。

SMART200:【实数】的积转换为【双精度整数】,假如保存至VD0,则低字VW2就是要传送出去的无符号整数【数字设定值】。也就是十六进制【数字设定值】;

我对1200了解甚少,不知道是否支持转为【无符号整数】,以及转为【十六进制数】。



清晰。谢谢!

评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-1200系列

共有15692条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
X 图片
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。