|
|
|
发表人:stdiwei |
发表时间:2007/9/10 16:42:00 |
|
|
本栏论题: |
STEP7怎么没有32位浮点数转换为16位整数指令,好像讲不通呀,怎么做到呀! [24618] |
在过程控制中,需要浮点数运算(32位),最后转换为16位整数,传送到输出模拟量(16位),可是STEP7竟然没有这个重要指令,而且连32位整数转换为16位整数的指令也没有,好像说不通呀。
西门子S7-200都是具备的这类指令的。
大家不知道遇到这个问题没有,遇到过大家是如何解决的 |
|
以下是关于《STEP7怎么没有32位浮点数转换为16位整数指令,好像讲不通呀,怎么做到呀!》论题的回复(共16篇,分2页显示) |
没有不等于不能。
用ROUND指令和MOVE指令,用ROUND指令先将32位浮点数转换为32位整数,再用MOVE指令直接将32位整数传送到16位的指定区。
MOVE指令,好好研究一下。
|
|
rnd指令
格式
RND
描述
RND (32位IEEE浮点数转换为32位整型)将ACCU 1的内容解释为32位IEEE浮点数(32位,IEEE 754)。该指令将32位IEEE浮点数转换位32位整型(长整型),并将结果取整为最接近的整数。如果所转换数字的小数部分介于偶数和奇数结果之间,则该指令选择偶数结果。如果数字超出允许范围,则状态位OV和OS被置位到1。结果存储在累加器1中。
出现错误(使用了不能表示为32位整数的NaN或浮点数)时不执行转换并显示溢出。
|
|
rnd指令
格式
RND
描述
RND (32位IEEE浮点数转换为32位整型)将ACCU 1的内容解释为32位IEEE浮点数(32位,IEEE 754)。该指令将32位IEEE浮点数转换位32位整型(长整型),并将结果取整为最接近的整数。如果所转换数字的小数部分介于偶数和奇数结果之间,则该指令选择偶数结果。如果数字超出允许范围,则状态位OV和OS被置位到1。结果存储在累加器1中。
出现错误(使用了不能表示为32位整数的NaN或浮点数)时不执行转换并显示溢出。
|
|
没有不等于不能。
用ROUND指令和MOVE指令,用ROUND指令先将32位浮点数转换为32位整数,再用MOVE指令直接将32位整数传送到16位的指定区。
MOVE指令,好好研究一下。
|
|
是不是想把程序里浮点数的运算结果通过AO卡件输出啊?如果是这样的话直接有个功能块调用一下就可以了。好像是FC106
|
|
|