各位老铁, 这个浮点数转换为双整数为什么有两个指令呢? 是连着把VD10 存储的浮点数转换后存放在VD14 里面, 浮点数 7.7转换后 存放在VD18 里面嘛 ?? 是SM0.0 通了的话这两个指令都进行转换嘛?
最佳答案
是这个链接中的图吗?
http://www.ad.siemens.com.cn/service/answer/tobe_solution.aspx?Q_ID=230431&cid=1028
ENO(使能输出)是 LAD 和 FBD 中指令块的布尔输出。如果指令的 EN 输入有能流并且指令正确执行,则 ENO 输出会将能流传递给下一元素。如果指令的执行出错,则能流在出错的指令处被中断。
结合你附图的指令串,则前一个正常执行无误,它的 ENO 有输出,这个能流接通串在它后面的下一个指令的使能 EN,则串在后面的指令能运行。否则后一个指令不运行。
你的这两个指令串,不存在非法操作数的可能性,串连在SM0.0后面是都执行的。
前一个是四舍五入指令( ROUND)将VD10转为一个双整数值,并将四舍五入的结果存入 VD14 中。
后一个是取整指令( TRUNC)将实数 7.7 转为一个双整数值,并将实数的整数部分作为结果存入VD18中。
如果在有的时候想确保两个指令都执行,那就将后一个指令与前一个指令并列成上现两行,使能端都用 SM0.0,上下指令互不影响,都是要执行的。
如系统手册中的截图。
S7-200 可编程序控制器 系统手册
https://support.industry.siemens.com/cs/document/1109582
图片说明:
提问者对于答案的评价:
我还有一点小疑问,上一个回答者说,如果浮点数介于两个整数之间,则返回偶数。我理解的ROUND指令就是四舍五入7.7转换后变成8, 8.5变成9。 他说 介于之间,又返回偶数怎么理解嘞?
最佳答案作者回复:
只有一个结果。
原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc361566.html