设为首页收藏本站积分获取及使用技巧附件上传须知[求助-西门子PLC300/400]如何在step7程序中将16进制数转换成10进制?

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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

总共8197条微博

动态微博

查看: 22789|回复: 2

[求助-西门子PLC300/400]如何在step7程序中将16进制数转换成10进制?

[复制链接]

升级  26%

该用户从未签到

发表于 2014-5-14 17:04:24 | 显示全部楼层 |阅读模式

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

×

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

已有帐号?  点击登录   或者        

支付宝扫一扫领红包
有一组变量格式为16进制数,比如B#16#14,我在程序中需要使用 "14"来做些逻辑判断,请问应该怎么转换好?14转成10进制为20,又不方便做逻辑,请教下怎么处理这个问题好</p>
        问题补充:
感谢您的回答,我尝试用SCL中直接比较16进制是可行的,比如地址为,DB1.DBB0,比较时直接写 IF DB1.DBB0 = 16#14 THEN
但是LAD中怎么进行方便的这样的逻辑呢
让我们联手拒绝网络伸手党,下载积分获取办法&附件上传须知 ☆追梦点充值入口





+1
22791°C
2
  • CnUjVxOQ
  • 大飞机
过: 他们

升级  33%

该用户从未签到

发表于 2014-5-14 18:07:06 | 显示全部楼层
1、问题很简单,不要顾及在PLC中存储的数据格式,因为都是十六进制数的。只考虑用来比较的数据14,如果这个14是十六进制数,则直接进行比较。如果这个14是十进制数,则将其转换为十六进制数0E,再进行比较。
2、在编程时,如果一个字长数据与14(十进制数)进行比较,直接应用:
L   14指令取数即可,系统会自动将14(十进制数)转换为十六进制数0E。
3、问题补充:LAD中怎么进行方便的这样的逻辑呢?
比较的输入端直接写入十进制数或十六进制数均可,但注意要采用正确的数据类型。见:
见《S7-300的数据类型》其中,8、常数的表示方法。连接:
http://blog.gkong.com/more.asp?name=zhyo720211&id=2005
                                                                                                                                                                                                                                                              
                                                        

升级  37%

该用户从未签到

发表于 2014-5-14 18:39:25 | 显示全部楼层
你可以用stl:
L  DB1.DBB0
l 16#14
=I
jcn m1
等16#14时的程序
m1:nop 0
                                                                                                                                                                                                                                                                                                                                   
                                                                                                                                                                                                            LAD中的比较指令有整数、双整数、实数,所以你要先用中间变量把16进制转换为十进制,再使用比较指令。转换进制时使用MOVE指令即可,把IN、OUT端变量的数据类型定义好久可以了。
*滑块验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

关闭

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

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

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

Powered by Dreamyiyi

© 2009-2025 工控论坛

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