控制器函数
- 更新时间2025-07-30
- 阅读时长9分钟
控制器函数用于配置控制器或发送所有仪器都响应的IEEE 488命令。
cac-控制器转入活动状态
| 语法 | cac 0(同步取得控制权) |
| cac 1(立即取得控制权) |
cac 同步或立即取得控制权,在某些情况下为异步。 You generally do not need to use the cac function because other functions, such as cmd and rpp, take control automatically.
如尝试在数据握手过程中同步取得控制权,函数将暂停取得控制权操作,直至握手完成。如握手已经结束,该函数将立即执行取得控制权操作。同步取得控制权并不能保证读取或写入操作在超时或出错时能够完成。
在不能同步取控制权的情况下应当异步取得控制权,例如,在超时错误之后。
如GPIB控制器不是“管理控制器”(CIC),将产生ECIC错误。
cmd-发送IEEE 488命令
| 语法 | cmd string |
cmd 发送GPIB命令消息。这些命令消息包括设备的通话和侦听地址、次地址、串行和并行轮询配置消息,以及设备清零和触发消息。
不要使用cmd向设备传输程序命令。 The GPIB Read and GPIB Write functions transmit programming instructions and other device-dependent information.
字符串 包含控制器发送的命令字节。 ASCII characters represent these bytes in cmd string. 如果必须发送无法显示的字符,可以在字符串控件或字符串常量上 启用反斜杠代码( ),或者使用格式函数以十六进制形式列出命令。
dma-设置DMA模式或程序控制I/O模式
| 语法 | dma 0(使用程序控制I/O) |
| dma 1(使用DMA) |
dma 表明数据传输是否使用DMA。
某些GPIB控制器不具备DMA功能。如果尝试执行 dma 1,函数返回 GPIB 错误 11,表示没有能力。
gts-控制器由活动状态转入待命状态
| 语法 | gts 0(非影子握手) |
| gts 1(影子握手) |
gts 设置GPIB控制器为“控制器待命”状态,如控制器处于活动状态,将置ATN信号无效。GPIB控制器通常会参与数据传输。gts允许GPIB设备在GPIB控制器不参与的情况下传输数据。
如影子握手处于活动状态,GPIB控制器将作为侦听器参与GPIB传输,不接收任何数据。如GPIB控制器检测到“结束”(END)消息,GPIB控制器置“数据未准备好”(NRFD)有效并产生握手释抑状态。
如影子握手未处于活动状态,GPIB控制器将不执行影子握手或握手释抑。
如启用影子握手,GPIB控制器将作为侦听器参与数据握手,实际上并不读取数据。GPIB控制器监视END信息的传输并停止后续传输。 This mechanism allows the GPIB controller to take control synchronously on subsequent operations such as cmd or rpp.
发送gts命令后,在初始化另一个GPIB命令前等待END消息。使用GPIB等待函数可完成上述操作。
如GPIB控制器不是“管理控制器”(CIC),将产生ECIC错误。
ist-设置个别状态位
| 语法 | ist 0(个别状态位清零) |
| ist 1(个别状态位置位) | |
| ist sets the sense of the individual status (ist) bit. |
如GPIB控制器不是“管理控制器”(CIC),但参与了活动控制器执行的并行轮询,可使用ist 。“管理控制器”(CIC)通过置EOI和ATN信号(发送“标识”信息)有效执行并行轮询。如消息处于活动状态,配置参与轮询的设备将通过置预先确定的数据线有效(TRUE或FALSE)的方式进行响应,这取决于设备的本地ist位的值。例如,您可以指定GPIB控制器在 ist 为1时驱动DIO3数据线TRUE,在 ist 为0时驱动DIO3数据线FALSE。反之,如果 ist 为 0,您可以指定它驱动 DIO3 TRUE;如果 ist 为 1,您可以指定它驱动 DIO3 FALSE。
“启用并行轮询”(PPE)消息对设备是否有效,取决于ist中各值之间的关系、被驱动的线和被驱动的线的状态。GPIB控制器可在本地使用ppc或通过来自“管理控制器”(CIC)的命令远程接收该消息。PPE消息执行后,ist改变将GPIB在并行轮询时所驱动的线的状态,GPIB控制器可向控制器传递一位设备相关消息。
llo-本地锁定
| 语法 | llo |
llo 将所有设备置为本地锁定状态。该操作通常会阻止识别来自设备前面板的输入。
llo 发送“本地锁定”(LLO)命令。
loc-使控制器处于本地状态
| 语法 | loc |
loc 如GPIB控制器未锁定在远程模式(由LOK状态位表明),通过发送“返回本地”(RTL)的本地消息可使GPIB控制器处于本地状态。loc可在计算机仿真一个仪器时,仿真前面板RTL开关。
off-使控制器离线
| 语法 | off |
off 使控制器离线。只在与使用NI-488库的应用程序共享控制器时使用。
ppc-并行轮询配置(启用和禁用)
| 语法 | ppc byte |
ppc configures the GPIB Controller to participate in a parallel poll by setting its Local Poll Enable (LPE) message to the value of byte. 如字节 为0,GPIB控制器将自行取消配置。
16条“启用并行轮询”(PPE)消息中的每一条都可选择GPIB数据线(DIO1-DIO8)及状态(1或0),设备在并行轮询时必需使用该状态响应“标识”(IDY)消息。设备读取已分配的消息和个别状态( ist )位的当前值,以确定选中的线被驱动为TRUE或FALSE。例如,如果PPE=0x64,当 ist 为0时,DIO5被驱动为 "真",当 ist 为1时,DIO5被驱动为 "假"。如果 PPE=0x68,则 DIO1 PPE 信息生效。必须通过发送的PPE和PPD消息,确定响应的含义。
ppu-并行轮询配置取消
| 语法 | ppu |
ppu 使所有设备不响应并行轮询。
ppu 发送“并行轮询配置取消”(PPU)命令。
rpp-执行并行轮询
| 语法 | rpp |
rpp 通过置ATN和EOI信号有效(发送IDY消息)执行先前配置设备的并行轮询。
rpp 将并行轮询响应作为ASCII字符置于输出字符串。
rsc-释放或请求系统控制权
| 语法 | rsc 0(释放系统控制权) |
| rsc 1(请求系统控制权) |
rsc releases or requests the capability of the GPIB controller to send the Interface Clear (IFC) and Remote Enable (REN) messages to GPIB devices using the sic and sre functions. 对于响应由另一控制器发送的IFC的GPIB控制器,该GPIB控制器必须是非系统控制器。
在绝大多数应用程序中,GPIB控制器总是系统控制器。如在程序执行期间,计算机不是系统控制器,可使用rsc。
rsv-请求服务和/或设置串行轮询状态字节
| 语法 | rsv byte |
rsv sets the serial poll status byte of the GPIB controller to byte. 如字节 设置为0x40,GPIB控制器将通过置GPIB“请求服务”(RQS)线有效请求控制器服务。例如,如需置GPIB“请求服务”RQS线有效,可发送ASCII字符@,设置0x40。
rsv 可使用“服务请求”(SRQ)信号请求控制器服务并在控制器串行轮询GPIB端口时提供系统相关状态字节。
sic-发送接口清零
| 语法 | sic |
sic 使控制器在拥有系统控制器权限的情况下,置IFC信号有效至少100毫秒。该操作可初始化GPIB并使控制器端口成为“管理控制器”(CIC)。如需使设备成为“管理控制器”(CIC)或清除总线错误条件,通常使用sic。
“接口清零”(IFC)信号仅重置总线设备的GPIB函数;而不重置内部设备函数。“设备清零”(DCL)和“选中设备清零”(SDC)命令可重置设备函数。如需确定这些消息的作用,请查询仪器文档。
sre-置远程启用无效/有效
| 语法 | sre 0(置远程启用无效) |
| sre 1(置远程启用有效) |
sre 置GPIB “远程启用”(REN)线无效/有效。选择本地或远程操作模式时,设备将监视REN。在收到侦听地址前,设备实际上并未进入远程模式。
如设备控制器不是系统控制器,将发生ESAC错误。