賞心悦目
级别: 论坛先锋
精华主题: 0
发帖数量: 351 个
工控威望: 1388 点
下载积分: 1667 分
在线时间: 869(小时)
注册时间: 2008-12-24
最后登录: 2024-12-22
查看賞心悦目的 主题 / 回贴
楼主  发表于: 2015-01-02 15:21
最近在做台机器,用条码扫描器扫描条码到三菱3U控制器里,PLC再根据条码内容进行相应设置。现在碰到一个情况,比如我要扫描12345到机器里,也就是一万两千三百四十五,plc会接收到这样的数据:D0分到12,D1分到34,D2分到5。那现在问题来了,我该怎么弄,才可以把D0,D1,D2里的值再转换为一万两千三百四十五呢?注意一点,条码内容有可能是三位数,也有可能是四位数或者五六位数。                           
 补充请教下高手们,条码扫描器读出来的数据是ASC码,0读出来是48,1读出来是49,2读出来是50,应该用什么指令把他们转换成10进制数字呢?
[ 此帖被賞心悦目在2015-01-06 22:57重新编辑 ]
賞心悦目
级别: 论坛先锋
精华主题: 0
发帖数量: 351 个
工控威望: 1388 点
下载积分: 1667 分
在线时间: 869(小时)
注册时间: 2008-12-24
最后登录: 2024-12-22
查看賞心悦目的 主题 / 回贴
1楼  发表于: 2015-01-03 10:47
引用
引用第1楼chenqingquan于2015-01-03 09:56发表的  :
D1*1000+D*10+D2=12345

假如条码只是三位数的呢,比如900,这样应该要PLC怎么算呢?
賞心悦目
级别: 论坛先锋
精华主题: 0
发帖数量: 351 个
工控威望: 1388 点
下载积分: 1667 分
在线时间: 869(小时)
注册时间: 2008-12-24
最后登录: 2024-12-22
查看賞心悦目的 主题 / 回贴
2楼  发表于: 2015-01-04 21:00
引用
引用第5楼lk546-工控于2015-01-04 11:28发表的  :
读完缓存区数值后清零,或者是写FF,下次读之前判断

呵呵,它是这样,假如要读取的条码数值是900的话,D0的值就是90,D1的值就是0,这样的话你让PLC还傻乎乎得乘1000的话那就跟实际值相差了10倍了。