串口通信

我用mscomm控件做串口通信,wincc和电参数测量仪通信.串口已打开,发送十六进制数后,电参数测量仪没有回传参数.现在问题是:我不知道如何判断发送成功,接收成功.我用Text控件接收电参数测量仪传回的参数,如何变成十六进制显示出来.
 各位大虾,帮个忙啊;搞两天都没搞出来!急ing

问题补充:
现在可以和电参数测量仪通信上了;但是我想把接收的参数转换为十进制如何转换啊?

最佳答案

1.做串行通讯不能着急,要循序渐进。先不要急着和设备通讯,这样不好诊断发送的内容以及发送是否成功。装个虚拟串口软件(推荐VSPD XP),添加虚拟端口对(如COM3,COM4),当然如果的计算机有两个串口(如COM1,COM2)也可以用电缆将端口短接起来。
  WinCC使用COM3(COM1)端口,再使用串口调试工具使用COM4(COM2)端口来接收。
  2.网上关于16进制的资料很多,多利用网络资源:
  实现16进制接收实质就是按2进制接收 
  设置MSComm控件的属性InputMode = comInputModeBinary ‘二进制接收 
  接收后由HEX函数转为16进制字符串形式显示 
  Dim   ABuffer()  
  MSComm1.InputMode   =   comInputModeBinary 
  If   MSComm1.InBufferCount   >   0   Then 
   ABuffer   =   MSComm1.Input 
          Dim   iLoop
   Dim   ByteArrayToHexString
          ByteArrayToHexString   =   " " 
          For   iLoop   =   LBound(ABuffer)   To   UBound(ABuffer) 
                  ByteArrayToHexString   =   ByteArrayToHexString   &   Right( "0 "   &   Hex(ABuffer(iLoop)),   2)   &   "   " 
          Next   iLoop 
          ByteArrayToHexString   =   Trim(ByteArrayToHexString) 
   Text4.Text   =   "接收数据: "   &   ByteArrayToHexString(ABuffer) 
  End   If

 补充:添加成对端口了吗?WinCC和串口调试软件中的COM设置需要一致(端口号除外).

提问者对于答案的评价:
谢谢你的回答;但是照你说的做行不通;我采用VB编了;还是得谢谢你门

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc275962.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2019年6月11日
下一篇 2019年6月11日

相关推荐