SCPI仪器模型
某些测量需要直接控制仪器的硬件。为实现这种控制,基于SCPI的仪器包含指令子系统来控制特定的仪器功能和设置。
SCPI仪器模型在SCPI指令子系统之间分配。对于2700系列而言,指令子系统分为以下几类:
1.面向信号的测量:获取读数的指令。
2.计算:用于数学表达式、极限测试和统计数据。
3.显示:控制Integra仪器的显示。
4.格式:选择总线传输读数的数据格式。
5.路由:控制前/后输入或开关。
6.感测:配置和控制测量功能。
7.状态:控制状态寄存器。
8.系统:包含仪器设置的各种指令。
9.设置:配置和控制数据存储至缓冲区。
10.触发器:配置触发模型。
11.装置:配置查询所显示的测量单元
SCPI指令 | 注释 |
*RST | 恢复GPIB默认值。 |
:SENS:FUNC ‘VOLT’, (@101:120) | 用通道列表配置DCV功能 |
:ROUT:SCAN(@101:120) | 指定扫描通道 |
:SAMP:COUN 20 | 样本计数至20 |
:TRIG:COUN 1 | 触发一次扫描 |
:ROUT:SCANSEL INT | 启用扫描模式 |
:TRAC:FEED:CONT NEXT | 启用跟踪缓冲器 |
INIT | 初始化扫描 |
DATA? | 请求缓冲读数 |
TSP仪器模型
测试脚本语言(TSL)是3700系列使用的语言。ICL是该仪器的一组预定义的函数和变量。它们是等效于SCPI仪器SCPI指令的仪器指令。下列指令集适于3700系列:
1.蜂鸣器:控制内置蜂鸣器的指令。
2.位:用于对1~2个数字进行逻辑运算。
3.延时:用于控制数字I/O端口的读/写和触发操作。
4.数字I/O:选择在总线上传输读数的数据格式。
5.显示:用于控制3700前面板上显示的消息。
6.错误队列:用于读取错误队列/事件队列中的记录。
7.退出:用于终止当前运行的脚本。
8.格式:适用printnumber和printbuffer指令打印的数据。
9.GPIB:用于设置GPIB地址。
10.LocalNode:用于设置电力线频率、控制(开/关)提示并控制(隐藏/显示)显示器上的错误消息。
11.获取:用于设定和取回属性值。
12.操作完成:在运行完所有异步指令后,将状态寄存器的OPC比特置位。
13.PrintBuffer:用于打印数据和数字。
14.重置:用于恢复3700的默认设置。
15.设置:用于保存/恢复设置并设定上电设置。
16.触发器:用于控制触发。
17.TSPLink:为主机分配节点号并初始化TSP-Link系统。
18.UserString:用于存储/读取非易失存储器中用户定义的字符串。
19.等待完成:等待全部异步指令运行完成。
ICL指令脚本 | 注释 |
Reset() | 恢复GPIB默认值。 |
dmm.setconfig("1001:1020","dcvolts") | 指定扫描通道和相应的功能 |
mybuffer=dmm.makebuffer(20) | 建立名为mybuffer的20读数用户缓冲区 |
reading=dmm.measure(mybuffer) | |
scan.create(“1001:1020”) | 在槽1建立通道1~20的扫描列表 |
scan.scancount=1 | 触发一次扫描 |
scan.execute(mybuffer) | 指定mybuffer为扫描使用的读数缓冲区 |
print(printbuffer(1,20, mybuffer)) | 打印my buffer(我的缓冲区)的内容 |
上面的指令定义清单看起来比2700系列的多一些,却是精简的独立指令集。例如,SCPI“计算”子系统主要通过脚本处理;因此,这些功能不存在ICL指令。请参见本文末尾表1的ICL指令清单和对应的SCPI指令。