我用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