快速入门指南R&S FSL - Rohde & Schwarz

快速入门指南R&S FSL - Rohde & Schwarz 快速入门指南R&S FSL - Rohde & Schwarz

rohde.schwarz.cz
from rohde.schwarz.cz More from this publisher
12.07.2015 Views

远 程 控 制 编 程 的 基 本 步 骤R&S FSL远 程 控 制 编 程 的 基 本 步 骤下 面 这 些 例 子 解 释 了 如 何 进 行 仪 器 编 程 , 可 作 为 解 决 高 级 编 程 任 务 的 基 础 。其 中 采 用 了 Visual Basic 作 为 编 程 语 言 。 然 而 , 也 可 以 通 过 其 它 语 言 来 实 现 这 些 程 序 。注 : 在 C、C++ 等 编 程 语 言 或 MATLAB、NI Interactive Control 程 序 中 , 换 码 顺序 以 反 斜 线 开 头 ( 例 如 “\n” 用 于 换 行 )。 在 这 些 编 程 语 言 和 程 序 中 , 远 程 命 令必 须 使 用 双 反 斜 线 而 不 是 单 反 斜 线 。 例 如 , 在 保 存 仪 器 设 置 时 , 不 应 使 用MMEM:STOR:STAT 1,'D:\USER\DATA\TEST1'的 形 式 , 而 应 使 用MMEM:STOR:STAT 1,'D:\\USER\\DATA\\TEST1'连 接 Visual Basic 远 程 控 制 库编 程 提 示 :• 利 用 “print” 功 能 输 出 文 本这 个 例 子 利 用 print 方 法 , 在 Visual Basic 开 发 环 境 的 Immediate 窗 口 中 , 显 示 出 了 变 量MyVar 的 值 。 注 意 print 方 法 仅 适 用 于 可 显 示 文 本 的 对 象 。Debug.Print MyVar• 访 问 VISA32.DLL 的 函 数为 使 用 户 能 够 创 建 Visual Basic 控 制 程 序 , 必 须 把 VISA32.BAS 添 加 到 项 目 中 , 这 样 就 可以 调 用 VISA32.DLL 的 函 数 了 。 另 外 , 文 件 VPPTYPE.BAS 也 必 须 添 加 到 项 目 中 。 该 文 件包 含 了 错 误 处 理 、 超 时 值 等 的 常 量 和 定 义 。在 \WinNT\include (typically C:\VXIpnp\WinNt\include) 中 可 以 找 到 模 块 Thevisa32.bas 和 vpptype.bas。还 有 一 种 可 供 选 择 的 方 法 , 即 把 一 个 对 VISA32.DLL 的 参 考 添 加 到 项 目 中 。11300.2519.69 6.2 ZH-4

R&S FSL远 程 控 制 编 程 的 基 本 步 骤• 创 建 一 个 应 答 缓 冲 区由 于 DLL 在 应 答 的 情 况 下 返 回 以 零 作 为 结 尾 的 字 符 串 , 在 调 用 InstrRead() 和 ilrd() 函数 之 前 要 先 生 成 一 个 足 够 长 度 的 字 符 串 , 这 是 因 为 Visual Basic 在 未 被 DLL 所 更 新 的 字 符串 前 面 加 了 一 个 长 度 说 明 。 下 面 提 供 了 两 个 建 立 字 符 串 长 度 值 的 例 子 :– Dim Rd as String * 100– Dim Rd as String– Rd = Space$(100)• 创 建 写 入 和 读 出 的 封 装 程 序由 于 VISA 函 数 需 要 有 命 令 、 应 答 字 符 串 以 及 两 个 独 立 参 数 的 对 应 长 度 , 因 此 如 果 封 装 了read 和 write 函 数 的 话 , 主 程 序 代 码 就 更 易 于 查 看 和 维 护 了 。 在 此 , 程 序 InstrWrite() 封装 了 函 数 viWrite(),InstrRead() 封 装 了 viRead()。 另 外 , 这 些 封 装 程 序 还 包 括 了状 态 检 测 功 能 :Public Sub InstrWrite(ByVal vi As Long, ByVal Cmd As String)Dim status As LongDim retCount As Long'Send command to instrument and check for statusstatus = viWrite(vi, Cmd, Len(Cmd), retCount)'Check for errors – this will raise an error if status is not VI_SUCCESSCALL CheckError(vi, status)End Sub1300.2519.69 6.3 ZH-4

R&S <strong>FSL</strong>远 程 控 制 编 程 的 基 本 步 骤• 创 建 一 个 应 答 缓 冲 区由 于 DLL 在 应 答 的 情 况 下 返 回 以 零 作 为 结 尾 的 字 符 串 , 在 调 用 InstrRead() 和 ilrd() 函数 之 前 要 先 生 成 一 个 足 够 长 度 的 字 符 串 , 这 是 因 为 Visual Basic 在 未 被 DLL 所 更 新 的 字 符串 前 面 加 了 一 个 长 度 说 明 。 下 面 提 供 了 两 个 建 立 字 符 串 长 度 值 的 例 子 :– Dim Rd as String * 100– Dim Rd as String– Rd = Space$(100)• 创 建 写 入 和 读 出 的 封 装 程 序由 于 VISA 函 数 需 要 有 命 令 、 应 答 字 符 串 以 及 两 个 独 立 参 数 的 对 应 长 度 , 因 此 如 果 封 装 了read 和 write 函 数 的 话 , 主 程 序 代 码 就 更 易 于 查 看 和 维 护 了 。 在 此 , 程 序 InstrWrite() 封装 了 函 数 viWrite(),InstrRead() 封 装 了 viRead()。 另 外 , 这 些 封 装 程 序 还 包 括 了状 态 检 测 功 能 :Public Sub InstrWrite(ByVal vi As Long, ByVal Cmd As String)Dim status As LongDim retCount As Long'Send command to instrument and check for statusstatus = viWrite(vi, Cmd, Len(Cmd), retCount)'Check for errors – this will raise an error if status is not VI_SUCCESSCALL CheckError(vi, status)End Sub1300.2519.69 6.3 ZH-4

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!