setp7-micro/win实数转换问题 点击:872 | 回复:1



sugar

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 18回
  • 年度积分:0
  • 历史总积分:188
  • 注册:2009年3月05日
发表于:2009-11-12 10:29:19
楼主

用step7-mincro/win把实数转换成整数出现问题,从实数转换字符串的时候转换错误。说明看了很长时间解决不了!

希望高手能帮我解答下,有实例更好。非常感谢!

邮箱:chenqi7@vip.qq.com

谢谢了!




miy_gongkong

  • 精华:0帖
  • 求助:2帖
  • 帖子:23帖 | 3065回
  • 年度积分:0
  • 历史总积分:12421
  • 注册:2008年9月18日
发表于:2009-11-12 16:55:27
1楼

 

仔细看帮助说明吧!说的够清楚了!

将实数转换为字符串 指令将实数值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
提示:根据以下规则制定格式的输出字符串:?整数不带符号写入输出缓冲区。?负数带起始减号(-)写入输出缓冲区。?小数点左面的起始零(除紧靠小数点的数字外)被压缩。?小数点右面的数值被取整,使之符合指定的小数点右面的位数。?输出字符串的大小最小必须比小数点右面的位数大三个字节。?输出字符串中的值必须右对齐。


热门招聘
相关主题

官方公众号

智造工程师