主要内容

visadev

使用 VISA 创建与设备的连接

    说明

    visadev 对象表示通过 VISA 接口与设备或仪器的连接。支持以下接口类型:TCP/IP(使用 VXI11 和 HiSLIP)、TCP/IP Socket、USB、GPIB、Serial、VXI 和 PXI。使用 visadevlist 识别可连接到的可用设备。然后,使用 visadev 连接到设备或仪器。

    创建对象

    描述

    v = visadev(resourceName) 使用其 VISA 资源名称创建与设备的连接。使用已安装的 VISA 驱动建立连接。如果您安装多个 VISA 驱动,MATLAB® 将使用在您的 VISA 供应商的配置实用工具软件中设置的首选 VISA。

    示例

    v = visadev(resourceAlias) 使用设备的 VISA 别名(如果存在)创建与设备的连接。如果配置实用工具尚无法识别该设备,则您无法使用别名进行连接,必须使用资源名称。

    示例

    输入参量

    全部展开

    VISA 资源名称,指定为字符向量或字符串标量。您可以使用 visadevlist 返回的信息来识别您要连接的资源的名称。此输入设置 ResourceName 属性。

    示例: gpibdev = visadev("GPIB0::5::INSTR") 连接到由 VISA 资源名称 GPIB0::5::INSTR 指定的 GPIB 设备。

    数据类型: char | string

    与资源关联的 VISA 别名,指定为字符向量或字符串标量。使用 visadevlist 返回的信息识别您要连接的资源的别名。仅当使用 VISA 供应商的配置实用工具软件分配别名时,您才能使用别名。此输入设置 Alias 属性。

    示例: serialdev = visadev("COM4") 连接到由 VISA 资源别名 COM4 指定的串行设备。

    数据类型: char | string

    属性

    有关属性的完整列表,请参阅 visadev Properties

    对象函数

    readRead data from VISA resource
    readlineRead line of ASCII string data from VISA resource
    readbinblockRead one binblock of data from VISA resource
    writeWrite data to VISA resource
    writeline向 VISA 资源写入 ASCII 数据行
    writebinblockWrite one binblock of data to VISA resource
    writereadWrite command to VISA resource and read response
    configureTerminatorSet terminator for ASCII string communication with VISA resource
    flushClear buffers for communication with VISA resource
    visastatusCheck status of VISA resource
    visatriggerSend trigger to GPIB or VXI instruments
    setDTRSet serial DTR pin
    setRTSSet serial RTS pin
    getpinstatusGet serial pin status

    示例

    全部折叠

    搜索并建立与您的 VISA 资源的连接。

    搜索可用的 VISA 资源。

    resourceList = visadevlist
    resourceList =
    
      6×6 table
    
                            ResourceName                         Alias                  Vendor               Model       SerialNumber     Type 
             __________________________________________    _________________    ______________________    ___________    ____________    ______
    
        1    "USB0::0x0699::0x036A::CU010105::0::INSTR"    "NI_SCOPE_4CH"       "TEKTRONIX"               "TDS 2024B"    "CU010105"      usb   
        2    "TCPIP0::169.254.2.20::inst0::INSTR"          "Keysight_33210A"    "Agilent Technologies"    "33210A"       "MY57003523"    tcpip 
        3    "ASRL1::INSTR"                                "COM1"               ""                        ""             ""              serial
        4    "ASRL3::INSTR"                                "COM3"               ""                        ""             ""              serial
        5    "GPIB0::5::INSTR"                             "FGEN_2CH"           "Agilent Technologies"    "33522B"       "MY52800145"    gpib  
        6    "GPIB0::11::INSTR"                            "OSCOPE_2CH"         "TEKTRONIX"               "TDS 1002"     "0"             gpib  
    

    使用资源名称通过 VISA-USB 接口创建与第一个资源的连接。

    usbdev = visadev("USB0::0x0699::0x036A::CU010105::0::INSTR")
    usbdev = 
    
      USB with properties:
    
             ResourceName: "USB0::0x0699::0x036A::CU010105::0::INSTR"
                    Alias: "NI_SCOPE_4CH"
                   Vendor: "TEKTRONIX"
                    Model: "TDS 2024B"
    
      Show all properties, functions
    

    您也可以使用其别名连接到设备。

    serialdev = visadev("COM1")
    serialdev = 
    
      Serial with properties:
    
             ResourceName: "ASRL1::INSTR"
                    Alias: "COM1"
                     Port: "ASRL1"
                 BaudRate: 9600
    
      Show all properties, functions
    

    当您在脚本或 MATLAB 命令行中使用 visadev 时,结果为 MATLAB 工作区中的对象所表示的连接。

    analyzerResource = "TCPIP0::K-N9040B-91124.dhcp.mathworks.com::inst0::INSTR";
    V = visadev(analyzerResource);
    V = 
    
      TCPIP with properties:
    
             ResourceName: "TCPIP0::K-N9040B-91124.dhcp.mathworks.com::inst0::INSTR"
                    Alias: ""
                   Vendor: "Keysight Technologies"
                    Model: "N9040B"
                  LANName: "inst0"
        InstrumentAddress: "172.31.173.155"
                      Tag: ""
    

    当其他变量中不存在对该同一连接的引用时,可以通过清除工作区变量来断开与设备的连接。

    clear(V)

    使用 visadevfind 确认连接已关闭。

    visadevfind
    ans =
    
         []

    如果 visadev 连接存在于 MATLAB 工作区中,或保存为类属性或 App 属性,则在不同的函数或 App 回调中可能无法访问该 visadev 对象。在这种情况下,您可以使用 visadevfind 查找和删除该连接。

    V = visadevfind
    V = 
    
      TCPIP with properties:
    
             ResourceName: "TCPIP0::K-N9040B-91124.dhcp.mathworks.com::inst0::INSTR"
                    Alias: ""
                   Vendor: "Keysight Technologies"
                    Model: "N9040B"
                  LANName: "inst0"
        InstrumentAddress: "172.31.173.155"
                      Tag: "Analyzer"
    

    要关闭此连接,请删除 V

    delete(V)

    此命令删除 visadev 对象并断开与设备的连接。如果您要重新连接到设备,您必须使用 visadev 创建一个新连接。

    在删除后,调用 visadevfind 确认没有现有连接。

    visadevfind
    ans =
    
         []

    请注意,变量 V 仍存在于工作区中,但它现在是无效句柄。

    V
    V = 
    
      handle to deleted TCPIP

    由于 visadev句柄对象,因此该变量在删除接口后仍存在。(有关这种类型的对象的详细信息,请参阅句柄对象行为。)您可以使用 clear 从工作区中删除无效的句柄。

    clear V

    版本历史记录

    在 R2021a 中推出

    全部展开