找答案的高端用户(找答案钻石及双钻级别的用户)将尽可能从此问题下的所有回
答中,为您推荐最佳答案。届时您可以根据推荐数采纳答案。
如果自提问时间起7天内您仍无法选出最佳答案,您可以选择“无满意答案”关闭此问题。
问题
取消精华
首页精华问答
取消推荐
高端用户推荐
申请置评
已申请置评
修改
修改标签
添加标签
官方认证
取消官方认证
修改标签
添加标签
转移分类
删除
{{itemCategory}}
收藏({{answerDetail.Q_FavoriteCounts}})
手机扫码追踪该问题,
觉得实用,立即去分享!
点击复制链接
专家建议
取消最佳答案
修改
1、可以使用 IEC 的标准功能,这些功能块可以实现字符串与其它数据类型(例如双整数)之间的相互的转换。
FC39 STRNG_R: 将字符串转换为实数。
功能FC39将字符串转换为REAL数据类型格式变量。字符串必须为以下格式:
±v.nnnnnnnE±xx ± 符号
v 小数点前1位
n 小数点后7位
x 2位指数
2、上述功能要求被转换的数据格式较为严格。建议:
、可应用FC37( STRNG_DI: )将字符串转换为双整数先将缓冲区中的字符串转换为双整数:
功能FC37将字符串转换为DINT数据类型格式变量。字符串中的第一个字符可以是符
号或数字,随后的字符必须是数字。如果字符串的长度等于零或大于11,或者字符
串中有无效字符,则不进行转换。
、转换为双整数后应用STEP7的STL指令:
DTR: 双整数(32 位)转成浮点数(32 位,IEEE-FP)。
3、有关 IEC 的标准功能,详见:
<S7-300400的系统软件和标准功能>下载:
http://www.ad.siemens.com.cn/download/SearchResult.aspx?searchText=1023
4、有关STEP7的STL指令DTR:
《用于S7-300 和S7-400 的语句表(STL)编程手册》下载:
http://www.ad.siemens.com.cn/download/SearchResult.aspx?searchText= 1008
5、上述有关 IEC 的标准功能均对被转换的数据格式要求较为严格,如果你的数据不适合上述
IEC 的标准功能,可以自己编写,程序十分简单:
、先将ASCII码转换为整数,例如:ASCII码的30(十六进制),31,32.......,对应数值0,1,2,......。两者相差30(十六进制),即将各ASCII码减去30(十六进制),其查值就是对应的数值。
、将转换的数值按万、千、百、十、个位分别乘以10000、1000、100、10、1后相加。结果为双整数。
、将相加的双整数应用STEP7的STL指令DTR( 双整数(32 位))转成浮点数(32 位,IEEE-FP)。
、编程时要注意万、千、百、十、个位的位置。
等您来回答
换一换
{{item.CoinValue}}西币
{{item.VisitNum}}人想问
本版相关问题
换一换
专家置评
首次回答问题,获得
双倍西币积分!
立即成为技术知识分享的一员!
欢迎您访问支持中心!
丰富的视频,全方位的文档,大量的网友交流精华……
为了更好的完善这些内容,我们诚邀您在浏览结束后,花20秒左右的时间,完成一个用户在线调查!
感谢您的支持!

西门子商城