您现在所在的是:

PLC论坛

回帖:1个,阅读:605 [上一页] [1] [下一页]
* 帖子主题:

显示ASCII码的问题

6047
liaosun
文章数:1398
年度积分:50
历史总积分:6047
注册时间:2003/5/4
发站内信
2015论坛贡献奖
2014论坛贡献奖
2013论坛贡献奖
2012论坛贡献奖
2011博客贡献奖
2010博客杰出贡献奖
发表于:2011/9/28 10:57:14
#0楼

[/URL]   有网友在留言中问我,用通信得到的ASCII码温度数据如下:30H 31H 31H 32H 2E 35H , 怎么也弄不出来在上位机显示112.5度。最多只能显示12.5度,就是说百位丢失了,用FC94以后不知怎么转换,希望老师能给个思路。
   下面是我的回答:用FC 94转换的确有问题,可能是因为处理不了小数点。
   如果用IEC的FC39转换,它要求ASCII码的格式必须是±v.nnnnnnnE±xx ,±为符号位,v是1位整数,nnnnnnn是7位小数,xx是两位指数。
   我想了两个方案:
   1.用原始的ASCII码组建满足FC 39的字符串,然后转换。
   2.如果ASCII码的小数点位置是固定的,可编一个程序来转换。例如假设温度以0.1度为单位,用字的“与”运算将各位(不包括小数点)ASCII码的低4位数字取出来,乘以该位的权值(如果以0.1度为单位,例如百位为1000)后相加,得到以0.1度为单位的整数值。
   数字0~9的ASCII码是16#30~16#39,下面的程序将MB0中数字的ASCII码转换为原数字:
     L     MB     0
     L     B#16#F
     AW  
     T     MB     1
   我在网上征集方案,qzcq提出用人机界面直接显示字符串的方案就很好,已用仿真验证。需要补充一下,标准字符串有两个字节的头部,分别是最大字符数和实际的字符数。
此帖来自中华工控网工控博客
原文件地址:http://blog.gkong.com/more.asp?id=144451&Name=liaochangchu
我是廖常初,是一个高校的老师,曾在企业从事机械、电气技术工作,长期从事工业控制和PLC应用的教学、科研和工程应用工作。博客中的日志除注明外均为原创。愿意在此与大家探讨工控的问题!
廖常初工控博客地址:http://blog.gkong.com/blog.asp?name=liaochangchu
我曾写过几本小书: 《PLC编程及应用》第3版(S7-200)、《S7-300/400 PLC应用技术》第3版、《FX系列PLC编程及应用》第2版、《S7-200 PLC编程及应用》、《PLC基础及应用》第2版(FX系列大专教材)、《西门子人机界面(触摸屏)组态与应用技术》、《西门子工业通信网络组态编程与故障诊断》、《S7-1200 PLC编程及应用》第2版、《跟我动手学S7-300/400 PLC》、《跟我动手学FX系列PLC》
机械工业出版社廖常初图书专题:http://www.gkong.com/zt/liaochangchu/
匿名用户
文章数:N/A
年度积分:0
历史总积分:0
注册时间:2005/5/2
发站内信
发表于:2011/9/28 15:59:28
#1楼
该用户被锁定,回复内容不予显示!

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 非法和不良信息举报

工控网客服热线:0755-86369299
版权所有 工控网 Copyright©2025 Gkong.com, All Rights Reserved

31.2002