用step7-mincro/win把实数转换成整数出现问题,从实数转换字符串的时候转换错误。说明看了很长时间解决不了!
希望高手能帮我解答下,有实例更好。非常感谢!
谢谢了!
仔细看帮助说明吧!说的够清楚了!
将实数转换为字符串 指令将实数值IN转换为ASCII字符串。格式(FMT)指定小数 点右面的转换精度, 无论小数点是显示为逗号还是句点,亦无论输出字符串的长度是多少。转换结果放置在以OUT开始的字符串中。结果字符串长度在格式中指定,可以是3至15个字符。S7-200使用的实数格式最多可支持7个高位数字。尝试显示7个以上高位数字会产生取整错误。设置ENO = 0的错误条件: 0006 间接地址 0091 操作数范围非法格式: nnn > 5 ssss < 3 ssss < 要求的字符数
ASCII常数字符串数据类型的格式: 字符串是一系列字符,每个字符作为一个字节存储。字符串的第一个字节定义字符串的长度,即字符数。如果常数字符串被直接输入程序编辑器或数据块,那么该字符串必须用双引号字符起始和结束 ("字符串常数")。
下面的内存图显示了字符串数据类型的格式。此字符串的长度可为0至254个字符。字符串的最大长度是255个字节(254个字符加上长度字节)。
以下是RTS指令的格式(FMT)操作数定义:
MSB7 6 5 4 3 2 1 LSB0
s s s s c n n n
ssss = 输出字符串长度c = 逗号(1)或小数点(0)nnn = 小数点右面的位数
输出字符串的长度由ssss域指定。0、1或2个字节无效。输出缓冲区中的小数点右面的位数由nnn域指定。nnn域的有效范围是0至5。将小数点右面的位数指定为0会使值显示为不带小数点。当nnn值大于5时或当指定的输出字符串长度太小无法存储转换的值时,输出字符串用ASCII空格字符填充。c位指定是使用逗号(c = 1)还是使用小数点(c = 0)作为整数和小数之间的分隔符。
下表显示几个使用小数点(c = 0)和小数点右面有一位数(nnn = 001)以及输出字符串长度为6个字符(ssss = 0110)格式的值范例。位于OUT位置的值是字符串长度。
Out Out+1 Out+2 Out+3 Out+4 Out+5 Out+6
in = 1234.5 6 1 2 3 4 . 5
in = -0.0004 6 0 . 0
in = -3.67526 6 - 3 . 7
in = 1.95 6 2 . 0
提示:根据以下规则制定格式的输出字符串:?整数不带符号写入输出缓冲区。?负数带起始减号(-)写入输出缓冲区。?小数点左面的起始零(除紧靠小数点的数字外)被压缩。?小数点右面的数值被取整,使之符合指定的小数点右面的位数。?输出字符串的大小最小必须比小数点右面的位数大三个字节。?输出字符串中的值必须右对齐。