设为首页收藏本站积分获取及使用技巧附件上传须知[求助-西门子PLC300/400]s7-300的RS232通信模块采集问题

追梦工控论坛|工控论坛-专业的Intouch论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

总共8197条微博

动态微博

查看: 7120|回复: 2

[求助-西门子PLC300/400]s7-300的RS232通信模块采集问题

[复制链接]

升级  35%

该用户从未签到

发表于 2014-7-10 20:20:14 | 显示全部楼层 |阅读模式

上传分享工控资料得追梦点,下载积分获取办法点击进入 ☆追梦点充值入口
发帖回帖赚金币兑换下载积分。上传附件须知点击进入

×

马上注册,结交更多工控达人,分享经验,让你轻松玩转追梦工控论坛。

已有帐号?  点击登录   或者        

支付宝扫一扫领红包
S7-300通过RS232通信模块采集到的信息,如何转换成一个实数类型的,比如S7-300通过RS232通信模块采集到一个仪器的ASCII码的压力值,但是这个压力值的每个数字是分别存储在单个连续字节里面的,我如何把它转换成一个实数类型的数据啊?万分感谢</p>
让我们联手拒绝网络伸手党,下载积分获取办法&附件上传须知 ☆追梦点充值入口





+1
7122°C
2
  • 83393570
  • ULxbhnVd
过: 他们

升级  26.5%

该用户从未签到

发表于 2014-7-10 21:19:00 | 显示全部楼层
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)。
、编程时要注意万、千、百、十、个位的位置。
                                                                                                                                                                                                                                                              
                                                        

升级  24%

该用户从未签到

发表于 2014-7-10 21:41:30 | 显示全部楼层
这个要看你的仪器通讯协议中是怎么表示一个实数的,通常有:
1、1-2个字节表示整数,1个字节表示小数
2、BCD码
3、IEEE 浮点数格式
仔细看你仪表的说明书,应该有明确的协议以及实例的。
                                                                                                                                                                                                                                                                                                                                   
                                                                                                                                                                                                            直接把这四个字节传到以0开头的DB里,比如DB1.DBB0--DB1.DBB3,那么对应的浮点地址就是DB1.DBD0,就是你要显示的浮点值。
*滑块验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

请珍惜自己的ID,严禁发布垃圾水贴,诸如adsf......顶......纯表情......多次重复回帖刷积分......轻则删帖警告,重则封禁!★请分享资料、经验或者赞助论坛,贡献一份力量★

关闭

最新活动上一条 /1 下一条

小黑屋|手机版|追梦工控论坛|工控论坛-专业的Intouch论坛 ( 皖ICP备10012005号 )|网站地图

GMT+8, 2025-5-10 10:25 , Processed in 0.093611 second(s), 21 queries , Gzip On, APCu On.

Powered by Dreamyiyi

© 2009-2025 工控论坛

快速回复 返回顶部 返回列表