您现在所在的是:

西门子SIEMENS

回帖:2个,阅读:1853 [上一页] [1] [下一页]
12704
lixiaobai
文章数:7780
年度积分:49
历史总积分:12704
注册时间:2006/4/5
发站内信
08年最佳博客奖
发表于:2008/11/12 20:14:00
#0楼
在S7200中如何将实数转化为整数
说说
38113
cvlsam 版主
文章数:12488
年度积分:724
历史总积分:38113
注册时间:2001/12/22
发站内信
2018论坛贡献奖
2017论坛贡献奖
2016论坛贡献奖
2015论坛贡献奖
2013论坛贡献奖
2012论坛贡献奖
2011论坛贡献奖
2011国庆活动
2010论坛杰出贡献奖
发表于:2008/11/12 22:59:00
#1楼
第一步:使用TRNUC(截尾取整)指令将浮点数转换为整数(32位),如果你要得到DINT的整数,那么无需下一步了,如果你要16位的INT数据类型,那么继续第二步。
第二步:判断第一部的数据正负,同时判断第一步中数据的大小是否在+32767~-32768之间。
第三步:如果数据大于32767,那么输出32767,如果小于-32768,那么输出-32768,如果在这两者之间,那么进行第四步。
第四步:将Dint的低16位数据字节读取,使用MOV指令,如果为负数,那么需要使用或指令给最高位置1。

以上
38113
cvlsam 版主
文章数:12488
年度积分:724
历史总积分:38113
注册时间:2001/12/22
发站内信
2018论坛贡献奖
2017论坛贡献奖
2016论坛贡献奖
2015论坛贡献奖
2013论坛贡献奖
2012论坛贡献奖
2011论坛贡献奖
2011国庆活动
2010论坛杰出贡献奖
发表于:2008/11/12 23:02:00
#2楼
当然,如果你自己能确定你需要转换的值在INT数据类型规定的范围之内的话,截尾取整后直接读取低字并在最高位赋予符号位也可以。

以上

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 非法和不良信息举报

工控网客服热线:0755-86369299
版权所有 工控网 Copyright©2025 Gkong.com, All Rights Reserved

31.2002