以文本方式查看主题
- Foxtable(狐表) (http://foxtable.com/bbs/index.asp)
-- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2)
---- rs485通讯 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=169164)
|
-- 作者:shyilin
-- 发布时间:2021/6/4 17:09:00
-- rs485通讯
Ports.Add("COM5") With Ports("COM5") .Close() .Parity = Parity.Odd \'奇效验 .StopBits = StopBits.One \'停止位 1 .Encoding=Encoding.ASCII .BaudRate = 9600 .DataBits = 8 .ReadBufferSize() = 4096 .WriteBufferSize() = 2048 .Open End With Dim Val() As Byte = New Byte(){&H17,&H03,&H00,&H0A,&H00,&H25,&HA6,&HE5} Ports("COM5").Write(val,0,val.length) 老是报写入超时 老师帮我看看呢 此主题相关图片如下:1622797655(1).jpg
|
-- 作者:有点蓝
-- 发布时间:2021/6/4 17:21:00
--
打开端口后单独测试下面代码有没有问题
If Ports("COM5").Open then Dim Val() As Byte = New Byte(){&H17,&H03,&H00,&H0A,&H00,&H25,&HA6,&HE5} Ports("COM5").Write(val,0,val.length) endif
发送其它内容试试有没有问题,比如只有一个字节
|
-- 作者:shyilin
-- 发布时间:2021/6/4 17:24:00
--
--------------------------- 错误 --------------------------- 编译错误:表达式不产生值。
错误代码:If Ports("COM5").Open Then --------------------------- 确定 ---------------------------
|
-- 作者:有点蓝
-- 发布时间:2021/6/4 17:26:00
--
If Ports("COM5").IsOpen Then
|
-- 作者:shyilin
-- 发布时间:2021/6/4 17:28:00
--
--------------------------- 版本:2020.5.1.8 --------------------------- 代码执行出错,错误信息:
System.TimeoutException: 写入超时。
在 System.IO.Ports.SerialStream.Write(Byte[] array, Int32 offset, Int32 count, Int32 timeout)
在 System.IO.Ports.SerialPort.Write(Byte[] buffer, Int32 offset, Int32 count)
在 UserCode.Test() --------------------------- 确定 ---------------------------
|
-- 作者:有点蓝
-- 发布时间:2021/6/4 17:31:00
--
写一个字节呢?硬件是不是没有连接好,端口是不是被占用了。硬件是不是要发送固定规则的内容才接收?
[此贴子已经被作者于2021/6/4 17:31:55编辑过]
|
-- 作者:shyilin
-- 发布时间:2021/6/4 17:33:00
--
写一个字节也是这样的
|
-- 作者:shyilin
-- 发布时间:2021/6/4 17:33:00
--
端口没被占用呢
|
-- 作者:有点蓝
-- 发布时间:2021/6/4 17:35:00
--
使用其它串口软件能不能连接?
|
-- 作者:shyilin
-- 发布时间:2021/6/4 17:39:00
--
用原厂的软件就可以正常读取数据
|