VB6 RS232 命令不起作用

发布于 2024-11-09 11:31:35 字数 773 浏览 0 评论 0原文

我有以下代码:

MSCommProj.CommPort = 6
MSCommProj.RThreshold = 1
MSCommProj.Settings = "19200,N,8,1"
MSCommProj.InputLen = 0
MSCommProj.PortOpen = True

但是当我尝试发送命令时:

MSCommProj.Output = "21 8901 5057 31 0A" & Chr$(13)

并且

MSCommProj.Output = "21 89 01 50 57 31 0A" & Chr$(13)

它打开得很好并连接,

MSCommProj.Output = "3F 89 01 50 57 0A" & Chr$(13)

按照用户手册的指示,它不会出现。

这是手册中显示这一点的页面。也许我只是做错了?: 在此处输入图像描述 在此处输入图像描述 在此处输入图像描述 在此处输入图像描述

I have the following code:

MSCommProj.CommPort = 6
MSCommProj.RThreshold = 1
MSCommProj.Settings = "19200,N,8,1"
MSCommProj.InputLen = 0
MSCommProj.PortOpen = True

And it opens just fine and connects but when i try sending the command:

MSCommProj.Output = "21 8901 5057 31 0A" & Chr$(13)

and

MSCommProj.Output = "21 89 01 50 57 31 0A" & Chr$(13)

and

MSCommProj.Output = "3F 89 01 50 57 0A" & Chr$(13)

as instructed by the user manual, it does not come on.

Here is the pages in the manual that shows this. Maybe i am just doing it wrong?:
enter image description here
enter image description here
enter image description here
enter image description here

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

油饼 2024-11-16 11:31:35

确定要为此向RS232接口发送字符数据吗?对我来说,这些看起来像是二进制序列。

而不是:

MSCommProj.Output = "3F 89 01 50 57 0A" & Chr$(13)

我会考虑这样传输二进制数据:

MSCommProj.Output = chr$(63) & chr$(137) & chr$(1) & chr$(80) & chr$(87) & chr(10)

您会注意到最后没有 chr$(13) ,规范没有要求这样做。


如果您想知道这些十六进制值的转换是什么,请启动 Windows 计算器,将视图更改为科学,切换到十六进制模式,输入值,切换到十进制模式。

或者,您可以为此目的下载 ASCII 表 。或者在此处查看我关于该主题的大量文章。

Are you sure that you're meant to be sending character data to the RS232 interface for that? Those look like binary sequences to me.

Rather than:

MSCommProj.Output = "3F 89 01 50 57 0A" & Chr$(13)

I'd be looking at transmitting the binary data thus:

MSCommProj.Output = chr$(63) & chr$(137) & chr$(1) & chr$(80) & chr$(87) & chr(10)

You'll note that there's no chr$(13) at the end, the spec doesn't call for that.


If you want to know what the conversions are for those hex values, start up the Windows calculator, change the view to scientific, switch to hex mode, enter the value, the switch to decimal mode.

Or you can download an ASCII table for this purpose. Or view one of my voluminous essays on the subject here.

草莓味的萝莉 2024-11-16 11:31:35

您需要发送给定的字节。
相反,您可以发送这些内容的字符串表示形式。

发送实际字节。
chr$(&h21) & chr$(&h89) & chr$(&h01) & chr$(&h50)

You are required to send bytes given.
You instead send string representation of those.

Send actual bytes.
chr$(&h21) & chr$(&h89) & chr$(&h01) & chr$(&h50) etc.

唱一曲作罢 2024-11-16 11:31:35

这是因为我没有使用交叉电缆...所有的rs232代码都是正确的。废话。

It was because i did not use a cross-over cable... All the rs232 codes were correct. Blah.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文