| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1835 人关注过本帖
标题:联系版主吹水佬,如何接收串口缓冲区的数值。
只看楼主 加入收藏
ljy88888
Rank: 1
等 级:新手上路
帖 子:35
专家分:0
注 册:2018-9-15
结帖率:33.33%
收藏
 问题点数:0 回复次数:6 
联系版主吹水佬,如何接收串口缓冲区的数值。
在WIN7(32位)平台上,用VF9.0的mscomm32.ocx控件与西门子PLC(S7 200smart)进行串口通讯,发送命令  thisform.olecontrol1.output=0h010500000000CDCA,正常有效,强制了一组线圈,但在ONCOME事件接收缓冲区接收数据时,接收到的是中文和一个乱码。我设置RTHRESHOLD为8.应该如何接收串口缓冲区数值?试了各种方式,都无法正常接收。求助版主解惑,不胜感激!!
搜索更多相关主题的帖子: 缓冲区 串口 版主 数值 接收 
2019-09-16 19:28
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10539
专家分:42927
注 册:2014-5-20
收藏
得分:0 
不好意思,还没用过mscomm32.ocx控件。
最好提供接收数据和看到是乱码的代码。
mscomm32有个接收数据模式的属性InputMode,不知与“乱码”有无关系。
2019-09-16 21:20
ljy88888
Rank: 1
等 级:新手上路
帖 子:35
专家分:0
注 册:2018-9-15
收藏
得分:0 
回复 2楼 吹水佬
版主果然功力深厚,我把INPUTMODE改了后,就可以接收正常字符了谢谢!!再问一个问题:接收到的字符是0h010101019048,0h是16进制标志符,后面的010101019048是16进制的数值,我要转到10进制的,用了二个方法都不行,一是astring=0h010101019048,用INT('0X'+0h010101019048) ,提示数值类型不符,因为有h字符。另外用substr去提取,想把0h去掉,结果怎么做都进不掉这个h,要怎么处理?先谢谢了。
2019-09-17 00:44
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9799
专家分:26886
注 册:2012-2-5
收藏
得分:0 
a=CHRTRAN("0h010101019048","h","x")
?EVALUATE(a)

坚守VFP最后的阵地
2019-09-17 00:54
ljy88888
Rank: 1
等 级:新手上路
帖 子:35
专家分:0
注 册:2018-9-15
收藏
得分:0 
回复 4楼 sdta
谢谢SDTA!直接是字符串,用你提供的方法可以,但是我用gstring=thisform.olecontrol1.input,取出来的数据存在变量gstring中,这样要怎么转变?把H给转为X,或者去掉H,不胜感激。
2019-09-17 01:37
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10539
专家分:42927
注 册:2014-5-20
收藏
得分:0 
0h010101019048有6个字节
2019-09-17 12:49
ljy88888
Rank: 1
等 级:新手上路
帖 子:35
专家分:0
注 册:2018-9-15
收藏
得分:0 
回复 5楼 ljy88888
字节设置按实际情况设置的,接收回来的数据也正常,就是16进制的标识符 0h 一直处理不了。
2019-09-18 16:12
快速回复:联系版主吹水佬,如何接收串口缓冲区的数值。
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017357 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved