USB通讯,可写入指令但不能读取返回

2019-07-17 15:40发布

程控电源艾德克斯IT6332A,USB通讯时(Instr类),可以成功写入指令并且仪器会正常响应,但是却无法读取返回值,每次都提示如下图1的读取超时的错误。另外,在MAX里用VISA测试面板测试是没有问题的,能够正确返回,如图3。然后就是,通过图2所示程序写入与VISA测试面板中相同的指令时,依然会提示图1所示错误,但是在VISA测试面板中选择读取却会正确返回,再次说明图2程序能够正确写入指令却不能读取返回。既然能够写入指令,应该说明通讯是成功了的,可是为什么不能读取返回呢?不知道可有谁碰到类似问题,还望不吝赐教,先谢了。
1 1
2 2
3 3
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
13条回答
sszx2007
1楼-- · 2019-07-17 19:29
hejin515 发表于 2017-10-9 08:51
真的好神奇,按你说的把读取的字节数设置大点真的就可以了。但是不知道为什么,还请道明原委。因为之前一直做串口,知道如果设置读取的字节数过大(当然一般用端口字节数属性节点),相反会报错。可是这里,理论上和实际上我读取的返回是20字节,但是我只有设置的读取字节数比20大才能成功过,这个和串口完全相反,不知道 ...

通过VISA测试面板可以看到,你接收到的数据是带终止符的,当你设置的读取字节数比实际字节数大时,它就会以读到终止符为止返回完整的数据给你,其实在串口里面,如果返回数据带终止符,也可以这样做,你可以不用管返回的数据字节数是多少,只要你设置的读取字节数肯定比实际字节数大就行了,它会自动以终止符作为返回数据的结尾。 最佳答案
zjwabc
2楼-- · 2019-07-18 01:18
读写间加个这个试下
QQ图片20171008175521.png
老蜗牛
3楼-- · 2019-07-18 01:22
在MAX中创建任务,然后程序框图中直接调用。
hejin515
4楼-- · 2019-07-18 04:00
 精彩回答 2  元偷偷看……
hejin515
5楼-- · 2019-07-18 08:45
老蜗牛 发表于 2017-10-8 17:58
在MAX中创建任务,然后程序框图中直接调用。

不是DAQ的,是带指令的,如何创建任务?
sszx2007
6楼-- · 2019-07-18 09:23
你把那个七改大点试试

一周热门 更多>