qq593859538
级别: 探索解密
精华主题: 0
发帖数量: 28 个
工控威望: 166 点
下载积分: 856 分
在线时间: 70(小时)
注册时间: 2011-12-14
最后登录: 2024-11-21
查看qq593859538的 主题 / 回贴
楼主  发表于: 2023-05-26 16:18
请教各位,如何把小数在触摸屏上以科学计数法的形式显示出来呢? PLC和触摸屏都是三菱的。
sunzengli
级别: 论坛先锋
精华主题: 0
发帖数量: 701 个
工控威望: 1082 点
下载积分: 1586 分
在线时间: 223(小时)
注册时间: 2021-07-09
最后登录: 2024-12-27
查看sunzengli的 主题 / 回贴
1楼  发表于: 2023-09-16 15:49
引用
引用第4楼anlyl2014于2023-09-16 12:56发表的  :

有什么用?触摸屏作为人机界面,把PLC里的人看不懂的数在屏上显示成小数,你倒过来把小数变成人看不懂的科学计数法!有什么实用意义?

当然有意义,电真空行业大气状态的气压是1.01×10^5Pa,抽取真空时达到1x10^-6Pa,如果不用科学记数法,大气状态就会显示成这样101000Pa,真空状态则变成0.000001Pa,你让操作的人去数0的个数吗?
sunzengli
级别: 论坛先锋
精华主题: 0
发帖数量: 701 个
工控威望: 1082 点
下载积分: 1586 分
在线时间: 223(小时)
注册时间: 2021-07-09
最后登录: 2024-12-27
查看sunzengli的 主题 / 回贴
2楼  发表于: 2023-09-16 15:53
图片:
我恰好遇到过这个问题,给你一个方案,你试试。这段程序是一个FB,作用是把浮点数转换为科学记数法,把指数和底数分开用两个数据框显示。

Tp1:=Float_In;
Tp2:=Float_In;

  IF Float_IN>=10.0 THEN
     FOR number:=1 TO 20 BY 1 DO
         Tp1:=Tp1/10.0;
         IF  ( Tp1>=1.0) & ( Tp1<=10.0)THEN
            Exponent := Number;
            Float_Out:= Tp1;
          END_IF;
     END_FOR;

  ELSIF ((Float_In>=1.0)& (Float_In<10.0))THEN
            Exponent := 0;
            Float_Out:= Tp1;

  ELSE
           FOR number:=1 TO 20 BY 1 DO
        Tp1:=Tp1*10.0;
        IF  ( Tp1>1.0) & ( Tp1<10.0)THEN
            Exponent := 0-Number;
            Float_Out:= Tp1;
        END_IF;
        END_FOR;
        

   END_IF;
[ 此帖被sunzengli在2023-09-16 16:04重新编辑 ]