Agilent 34970A利用RS-232碰着问题
问题: 超时, 数据毁坏, 数据丧失, 上传数据的错误信息
原因: PC上利用的RS-232 I/O芯片(UART)只要16字节缓冲器。在没有实时流量掌握时,可能会发作缓冲器超限,招致数据丧失。假设丧失的字符刚好是线路输进,软件不断没有看到行尾完毕符,从而可能会招致超时。其它字符丧失可能会招致返回的数据错误。
微软串行驱动法式没有实现实正的硬件流量掌握功用。它完全在软件驱动法式中实现流量掌握,因而很随便遭到PCI总线锁定、优先权较高的中断及中断失效的影响。摘用基于软件的流量掌握具有汗青原因,因为早期的硬件设想很不成靠:其时曾利用大量的克隆版16550 UART,许多设备存在缺陷。微软独一的处理办法是开发一种利用尽可能少的功用的软件驱动法式,因而硬件流量掌握在驱动法式中完成。目前,微软不克不及改动驱动法式,修复那个问题。
只要在条记本电脑上才会呈现那个问题,可能是因为与功率治理和/或PCMCIA适配器有关的软件开销所致,但从理论上讲,它也可能会发作在台式机上。进步处置器速度及降慢RS-232波特率都不敷以实现称心的成果。
处理办法: 对关键事务型利用不要利用RS-232,而是利用34970A的GPIB端口。
展开全文
注:任何选项都必须改动掌握法式。号令串连结不异,但需要改动通信设置。能够利用SCPI号令"SYSTem:INTerface {GPIB | RS232}"或通过前面板,以编程体例改动仪器形式。此外,用来初始化RS-232参数的任何代码,如波特率、奇偶性和流量掌握,都能够从法式中删除。必须改动翻开RS-232端口利用的代码,以翻开GPIB接口。
那能够在Visual Basic中通过下述号令实现:
Dim A_34970A As AgtIOServer
Dim iomgr As KeysightIOUtilsLib.AgtIOManager
Set iomgr = New AgtIOManager
Set A_34970A = io_mgr.ConnectToInstrument ("GPIB::9")
假设必需把GPIB地址改动为默认值(9)之外的其它地址,只能畴前面板上改动地址。如需更多信息,请查看手册。