怎样用VB mscomm发送十六位进制格式的数据 点击:5049 | 回复:7



    
  • 精华:0帖
  • 求助:0帖
  • 帖子:4帖 | 6回
  • 年度积分:0
  • 历史总积分:66
  • 注册:2002年1月19日
发表于:2003-07-01 09:44:00
楼主
我们可以用MSCOMM的output命令 发送字符串或者BYTE格式的数据,但怎样发十六进制的数据呢? 有的PLC在用串口编程时,其控制命令要用十六进制的形式发出,难道解决这个问题只有用API? (大家知道"串口编程助手2.2"就可以发十六进制的数据).



亦梵

  • 精华:3帖
  • 求助:0帖
  • 帖子:19帖 | 50回
  • 年度积分:0
  • 历史总积分:126
  • 注册:2002年1月21日
发表于:2002-09-04 21:09:00
1楼
无论采用采用那种发送数据格式,在MSCOMM输出的都是二进制串行数据流。所以说你就可以直接用MSCOMM控件的BINARY输入输出模式编制任何进制数的通信协议。

gongkongedit

  • 精华:1099帖
  • 求助:0帖
  • 帖子:14392帖 | 54470回
  • 年度积分:0
  • 历史总积分:622
  • 注册:2008年9月08日
发表于:2002-09-05 11:10:00
2楼
先把十六进制数转换成字符串,再把字符串转换成十六进制字符串(函数Hex(strings)),就可以发送了.

  • 精华:0帖
  • 求助:0帖
  • 帖子:4帖 | 6回
  • 年度积分:0
  • 历史总积分:66
  • 注册:2002年1月19日
发表于:2002-09-10 20:48:00
3楼
现在我找到了正确方法,与大家共享: 我要发送的是十六进制数据(DF1 half duplex protocol):10 05 01 FF 先定义一个BYTE类型的数组: dim OutString(0 to 3) as Byte 给数组赋值: OutString(0) = "&H10" OutString(1) = "&H05" OutString(2) = "&H01" OutString(3) = "&HFF" 发送命令: mscomm1.out = OutString

yinmimi

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 2回
  • 年度积分:0
  • 历史总积分:8
  • 注册:2003年2月28日
发表于:2003-02-28 10:58:00
4楼
又没有其他的方法?或者更好的方法?

arker

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 10回
  • 年度积分:0
  • 历史总积分:75
  • 注册:2002年12月19日
发表于:2003-07-01 09:44:00
5楼
这是最好的方法,其他方法 FF 是发不出去的。

张伟坤

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 48回
  • 年度积分:0
  • 历史总积分:62
  • 注册:2002年3月28日
发表于:2004-09-09 16:00:00
6楼
好用.

风儿飘

  • 精华:1帖
  • 求助:0帖
  • 帖子:24帖 | 58回
  • 年度积分:0
  • 历史总积分:271
  • 注册:2002年10月18日
发表于:2004-09-09 16:05:00
7楼
我刚做完一个,方法和骠的方法的一样,好使,放心用吧

热门招聘
相关主题

官方公众号

智造工程师