*OPC? 查询同步
这种同步方法最简单,也最为常用。
向仪器发送 *OPC? 查询命令后,仪器会延迟响应,直到完成所有待处理的操作。因此,程序会在 VISA Read 操作中进入空闲,等待仪器响应 *OPC? 查询。相比仪器响应,仪器产生的延迟才重要。
注意,由于 *OPC? 是一个查询命令,您必须使用 VISA Read() 函数读取仪器的响应。否则,仪器将在下一次查询时生成错误消息“Query Interrupted”。使用 *OPC? 查询和所有其他查询时,都必须注意这一点。
使用这种同步方法时,另一个参数也非常重要,那就是 VISA Timeout。VISA Timeout 机制可用于定义 VISA Read 操作在因 VISA 超时错误而结束之前等待的最长时间。由于这是一个独立数值,并且取决于当前任务的持续时间,因此您需要确保正确设置 VISA 超时。如果超时值过小,常规操作期间可能出现意外错误,超时值过大则会导致真正发生错误时程序无响应。
优点:
- 在大多数情况下都简单有效。
- 不使用会话的控制通道(参阅 STB 轮询方法),因此也适用于 RawSocket和 串行连接。
缺点:
- 阻止程序与仪器通信,直到仪器响应。这在长时间操作中是个严重的问题,因为应用程序会长时间无响应。