标准转换指令:DFTR
双精度浮点到实数: 将双精度浮点值 IN 转换为实数值,并将结果存入分配给 OUT 的地址处。如果转换的值过大以至于无法在输出中表示,则溢出位将置位,并且输出不受影响。
替代指令库
LGF_DataConvert指令库及其使用
LGF_DataConvert 库文件夹下包含一个库指令: LGF_LREALToREAL
注意:
此指令库使用STEP 7 MicroWIN SMART V2.6版本编写,请在STEP 7 MicroWIN SMART V2.6或更高版本软件中使用该库指令。
此指令库/程序的作者和拥有者对于该软件的功能性和兼容性不负任何责任。使用该软件的风险完全由用户自行承担。由于它是免费的,所以不提供任何担保,错误纠正和热线支持,用户不必为此联系西门子技术支持与服务部门。
在项目中使用库
创建完成的指令库文件扩展名为".smartlib"。库文件可以作为单独的文件拷贝、移动,将库文件移动至系统库文件夹下即可使用库指令(STEP 7-Micro/WIN SMART库文件夹一般存储路径为"C:\Users\Public\Documents\Siemens\STEP 7-MicroWIN SMART\Lib")。如果操作完成打开软件后未找到库指令,在库菜单栏下单击右键选择"刷新库"即可。
成功添加指令库后,用户可以在STEP7 Micro/win的指令树中找到‘LGF_DataConvert(v1.2)'
图1.LGF_DataConvert库
LGF_DataConvert简介
对从起始地址存储的双精度浮点数进行转换,转换成单精度浮点数。Smart200系列PLC不支持双精度浮点数。双精度浮点数占用存储空间为起始地址开始的8个Byte,单精度浮点数占用地址为4个Byte。
使用库指令LGF_LREALToREAL需注意:
使用库指令进行浮点数转换,并不是所有的双精度浮点数都可以转换成单精度,因为双精度浮点数所表示的范围比单精度大很多,所以当超过单精度浮点数所表示的范围时,程序块会报错;
注意单精度浮点数在smart200系列PLC中有效位数为7位,当输入有效位数超过7位时会忽略掉多余的位数,在进行运算过程中需要注意;
由于单精度浮点数有效位数的限制,双精度浮点数转单精度浮点数时可能造成结果不准,使用者需自行判断该程序块是否适用并承担其后果。
程序块:
图 2. LGF_LREALToREAL
表 1. LGF_LREALToREAL参数
参数 | 声明 | 数据类型 | 注释 |
---|---|---|---|
inputAdress | IN | DWORD | 双精度浮点数的起始地址 |
outReal | OUT | DWORD | 单精度浮点数的存储位置 |
error | OUT | BOOL | 错误标识位 |