青海回收西门子S71200数字量扩展
更新:2023-12-07 10:10 编号:18609046 发布IP:114.82.101.41 浏览:27次- 发布企业
- 上海地友自动化设备有限公司商铺
- 认证
- 资质核验:已通过营业执照认证入驻顺企:第3年主体名称:上海地友自动化设备有限公司组织机构代码:91310117MA1J20GF1A
- 报价
- 请来电询价
- 品牌
- 西门子
- 型号
- 参数详情
- 产地
- 德国
- 关键词
- 回收西门子S71200数字量扩展
- 所在地
- 上海市金山区枫泾镇朱枫公路8678弄 8134号
- 手机
- 18721545542
- 经理
- 方祖付 请说明来自顺企网,优惠更多
详细介绍
青海回收西门子S71200数字量扩展青海回收西门子S71200数字量扩展
在用下面3条指令将浮点数转换为双整数时,发现了一个神秘的现象。
L MD0
RND //浮点数四舍五入
T MD4
我们知道,大的正的双整数是2147483647,大于这个数,RND指令转换会出错。
他的帖子说实际上能转换的大的浮点数不是2147483647.0,而是2147483583.0。
这一段本应正常转换的区间转换会出错,为什么转换出错的分界点是2147483583.0,这里面隐藏了什么秘密?
这件事引起我极大的兴趣,为此我用仿真做了大量的实验,下面是我做实验发现的更多的现象:
1.转换出错的情况
RND指令的帮助中说:“如果超出允许范围,则状态位OV和OS被置位为1。结果存在累加器1中”。“出现错误(使用了不能表示为32位整数的NaN或浮点数)时不执行转换并显示溢出。”。
下图用程序状态监控状态字STATUS WORD。
大于2147483647.0时转换出错。
大于2147483584.0到2147483647.0这一段照理说在应该在能转换的范围里,转换也会出错,状态字的OV和OS位(第4、5位)被置位为1(见下图)。MD4中是没有转换的浮点数,而不是双整数。转换出错的分界点是2147483584.0。
2.转换成功的情况
小于16777215.0左右转换结果完全正确。转换成功时OV和OS为0。
小于2147483584.0到16777215.0这一段可以转换,转换有误差。
接近2147483584.0时,大误差为64。
大于2147483456.0 ~2147483584.0时(区间范围为128.0),转换后得到的双整数均为2147483520(16#7FFFFF80,见下图)。转换结果2147483520是区间中点的值,(2147483456 + 2147483584)/2=2147483520。
大于2147483328.0 ~ 2147483456.0时,转换后得到的双整数均为2147483392(16#7FFFFF00)。
大于2147483200.0 ~ 2147483328.0时,转换后得到的双整数均为2147483264(16#7FFFFE80)。
经过分析,我已经找到了上述现象的原因,结果暂不公布,希望有兴趣的网友一起来分析一下,共享解决问题的快乐。
3.转换结果分析
大于2147483456.0 ~ 2147483584.0时转换后得到2147483520(16#7FFF FF80)。
大于2147483328.0 ~ 2147483456.0时转换后得到2147483392(16#7FFF FF00)。
大于2147483200.0 ~ 2147483328.0时转换后得到2147483264(16#7FFF FE80)。
上述3个区间内部的间隔为128.0,转换结果为区间的中点(2147483456 + 2147483584)/2=2147483520。
这种转换并不**,大误差为128/2=64。
浮点数转换为双整数的转换误差的根本原因是32位浮点数和32位双整数的有效位数的差异造成的。
浮点数由一位符号位、8位指数和尾数的小数部分(23位)组成。尾数的位数决定了浮点数的精度。尾数的整数部分为1,小数部分为23位,尾数的有效数字为24位。
双整数除去一位符号位,其有效位数为31位,浮点数的有效位数比双整数少7位。
2147483456.0 ~ 2147483584.0相差128.0,它们对应的整数为31位有效数字,这些浮点数输入plc后,因为浮点数的有效位数只有24位,它们的尾数相同,对应的十六进制表示的浮点数均为16#4EFFFFFF,或2.17484e+009(注意有效尾数为十进制7位,而不是对应的整数的10位)。转换为双整数后均为2147483520。
ktissot网友说:“这就像看一片湖水一样,你可以看到水和浪花,看不到水分子。”由于有效位数较小,浮点数不能分辨“水分子”2147483457.0~ 2147483584.0,我们只能看到“浪花”2147483520(16#7FFF FF80)。
如果浮点数较小,例如小于16777215(16#FFFFFF),整数部分只有24位,转换后就没有上述的误差了。在此基础上增大,整数部分的位数越大,误差越大。
因为有效位数相差7位,在接近双整数大值的区段,浮点数的尾数相差一个数时,转换为双整数后,相差128。2的7次方等于128。
4.高端转换出错的原因分析
法定代表人 | 方祖付 | ||
注册资本 | 100 | ||
主营产品 | S7-200CN、S7-200、Smart200、S7-300、S7-400、S7-1200、触摸屏、6FC、6SN、S120、V10、V20、G110、G120、6RA、伺服数控备件、NCU、MM系列变频器 | ||
经营范围 | 自动化设备、机电设备、电气设备、机械设备及配件、五金交电、电子元器件、仪器仪表、电线电缆批发零售;自动化科技领域内的技术开发、技术咨询、技术转让、技术服务 | ||
公司简介 | 上海地友自动化设备有限公司本着“以人为本、科技先导、顾客满意、持续改进”的工作方针,致力于工业自动化控制领域的产品开发、工程配套和系统集成,拥有丰富的自动化产品的应用和实践经验以及雄厚的技术力量,尤其以PLC复杂控制系统、传动技术应用、伺服控制系统、数控备品备件、人机界面及网络/软件应用为公司的技术特长,几年来,上海地友公司在与德国SIEMENS公司自动化与驱动部门的长期紧密合作过程中,建立了良好 ... |
- 四川6GT2801-2BA10行情欢迎来电四川6GT2801-2BA10行情四川6GT2801-2BA10行情并... 2023-12-07
- 浙江1FL6064-1AC61-0AA1厂家批发欢迎来电浙江1FL6064-1AC61-0AA1厂家批发浙江1FL6064-1... 2023-12-07
- 江西6SL3202-0AE16-1CA0门市价欢迎来电江西6SL3202-0AE16-1CA0门市价江西6SL3202-0A... 2023-12-07
- 陕西6ES7288-1SR40-0AA1一级代理欢迎来电陕西6ES7288-1SR40-0AA1一级代理陕西6ES7288-1... 2023-12-07
- 贵州6ES7288-1SR60-0AA1经销商欢迎来电贵州6ES7288-1SR60-0AA1经销商贵州6ES7288-1S... 2023-12-07
- 贵州回收西门子S71200数字量扩展品牌:西门子
- 山东回收西门子S71200数字量扩展品牌:西门子
- 福建回收西门子S71200数字量扩展品牌:西门子
- 宁夏回收西门子S71200数字量扩展品牌:西门子
- 浙江回收西门子S71200数字量扩展品牌:西门子
- 甘肃回收西门子S71200数字量扩展品牌:西门子
- 江西回收西门子S71200数字量扩展品牌:西门子
- 海南回收西门子S71200数字量扩展品牌:西门子
- 黑龙江回收西门子S71200数字量扩展品牌:西门子
- 河北回收西门子S71200数字量扩展品牌:西门子