[求助]在S7200中如何将实数转化为整数

发布网友

我来回答

2个回答

热心网友

第一步:使用TRNUC(截尾取整)指令将浮点数转换为整数(32位),如果你要得到DINT的整数,那么无需下一步了,如果你要16位的INT数据类型,那么继续第二步。第二步:判断第一部的数据正负,同时判断第一步中数据的大小是否在+32767~-32768之间。第三步:如果数据大于32767,那么输出32767,如果小于-32768,那么输出-32768,如果在这两者之间,那么进行第四步。第四步:将Dint的低16位数据字节读取,使用MOV指令,如果为负数,那么需要使用或指令给最高位置1。以上

热心网友

当然,如果你自己能确定你需要转换的值在INT数据类型规定的范围之内的话,截尾取整后直接读取低字并在最高位赋予符号位也可以。以上

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com