新闻资讯
看你所看,想你所想

VISA(虚拟仪器软体结构)

VISA(虚拟仪器软体结构)

VISA(虚拟仪器软体结构)

VISA(Virtual Instrument Software Architecture,简称为"Visa"),即虚拟仪器软体结构,是VXI plug&play联盟制定的I/O接口软体标準及其规範的总称。VISA提供用于仪器编程的标準I/O函式馆,称为VISA库。VISA函式馆驻留在计算机系统内,是计算机与仪器的标準软体通信接口,计算机通过它来控制仪器。

基本介绍

  • 外文名:VISA
  • 全称:Virtual Instrument Software
  • 简称:Visa
  • 类别:虚拟仪器软体结构

基本信息

VISA(Virtual Instrument Software Architecture,简称为"Visa"),即虚拟仪器软体结构,是VXI plug&play联盟制定的I/O接口软体标準及其规範的总称。VISA提供用于仪器编程的标準I/O函式馆,称为VISA库。VISA函式馆驻留在计算机系统内,是计算机与仪器的标準软体通信接口,计算机通过它来控制仪器。
作为通用I/O标準,VISA提供了统一的设备资源管理、操作和使用机制,它独立于硬体设备、接口、作业系统和程式语言,具有与硬体结构无关的特点。VISA的这一特性使之适用于各种仪器接口,无论仪器使用的串口还是其他任何一种汇流排,诸如GPIB、VXI、PXI和LXI等,都具有相同的操作函式,从而实现了控制操作上的统一。Visa基于自底向上的结构模型,创造了一个统一形式的I/O控制函式集。一方面,对初学者或是简单任务的设计者来说,Visa提供了简单易用的控制函式集,在套用形式上相当简单;另一方面,对複杂系统的组建者来说,Visa提供了非常强大的仪器控制功能与资源管理。

详细说明

1、viOpen (Sesn1 ,rsrcName,acessMode,timeout,Sesn2)
用途: 打开与指定仪器的通话。
参数说明
Sesn1 输入 资源管理器通话(总应是由viOpenDefaultRM( )返回的VISA默资源理器)。
rsrcName 输入 资源的唯一符号名称
acessMode 输入 指定资源的访问模式。不用,应置0。
timeout 输入 定时时间。默认值为10秒。
Sesn2 输出 通话的唯一逻辑标识符。
返回值: 0表示成功,其余值均表示失败。
注意: rsrcName的格式为:GPIB::Address::INSTR
其中:GPIB:表示GPIB设备。 address:表示GPIB设备地址。
INSTR表示是VISA资源。例如“GPIB::5::INSTR”
各种语言调用说明:
Delph:
Function viOpen(sesn1:Longint;rsrcName:PChar;acessMode:Longint
timeout:Longint;sesn2:PLongint):Longint;
C:
Long viOpen (long sesn1,char *rsrcName, long acessMode, long timeout,long *sesn2)
VB:
Function viOpen (ByVal sesn1 As Long, ByVal rsrcName As String,
ByVal acessMode As Long, ByVal timeout As Long,
sesn2 As Long) As Long
2viClose(sesn)
用途:
关闭指定的通话。
参数说明
Sesn 输入 通话的唯一逻辑标识符。
返回值:
0表示成功,其余值均表示失败。
各种语言调用说明:
Delphi: Function viClose(sesn:Longint):Longint;
C: Long viClose (long sesn);
VB: Function viClose (ByVal sesn As Long) As Long
3、viOpenDefaultRM (sesn)
用途:
返回与默认资源管理器的通话。
参数说明:
Sesn 输出 与默认资源管理器通话的唯一逻辑标识符。
返回值:
0表示成功,其余值均表示失败。
各种语言调用说明:
Delphi: Function viOpenDefaultRM(sesn1:PLongint):Longint;
C: Long viOpenDefaultRM (long *sesn1);
VB: Function viOpenDefaultRM (sesn1 As Long) As Long
4、viWriteSesn ,CommStr ,Count ,retCount
用途: 向仪器写数据
参数说明
Sesn 输入 通话的唯一逻辑标识符。
CommStr 输入 表示向仪器传送数据块的存储单元
Count 输入 指定被写的位元组数。
retCount 输出 表示设定实际传输的整数位元组数存储单元。
返回值:0表示成功,其余值均表示失败。
各种语言调用说明:
Delphi: Function viWrite(sesn:Longint;CommStr:PChar;Count:Longint;
retCount:PLongint):Longint;
C: Long viWrite (long sesn, char *CommStr, long Count,
long *retCount)
VB: Function viWrite (ByVal sesn As Long, ByVal CommStr As String,
ByVal Count As Long, lretCount As Long) As Long
5、viRead(Sesn , CommStr , Count , retCount)
用途: 从仪器读数据。
参数说明:
Sesn 输入 通话的唯一逻辑标识符。
CommStr 输入 表示将接收数据的仪器缓冲区的存储单元。
Count 输入 将读取的位元组数。
retCount 输出 表示一整数的存储地址,该整数表示实际传输的位元组数。
返回值:
0表示成功,其余值均表示失败。
各种语言调用说明:
Delphi:
Function viRead(sesn:Longint;ReadData:PChar;Count:Longint;
retCount:PLongint):Longint;
C:
Long viRead (long sesn, char *ReadData, long Count, long *retCount)
VB:
Function viRead (ByVal sesn As Long, ByVal ReadData As String,
ByVal Count As Long, lretCount As Long) As Long
6、viClear(Sesn)
用途: 使一个仪器清零。
参数说明: Sesn 输入 通话的唯一逻辑标识符。
返回值: 0表示成功,其余值均表示失败。
各种语言调用说明:
Delphi:
Function viClear(sesn:Longint):Longint;
C:
Long viClear (long sesn)
VB:
Function viClear (ByVal sesn As Long) As Long
7、viReadSTB(Sesn)
用途: 读服务请求的状态位元组。
参数说明
Sesn 输入 通话的唯一逻辑标识符。
Status 输出 服务请求的状态位元组。
返回值:
0表示成功,其余值均表示失败。
各种语言调用说明:
Delphi:
Function ReadSTB(sesn:Longint;status:PSmallint):Longint
C:
Long viReadSTB (long sesn, short *status)
VB:
Function viReadSTB (ByVal sesn As Long,status As Integer) As Long
8viAssertTrigger(Sesn)
用途: 设定群触发。
参数说明:
Sesn 输入 通话的唯一逻辑标识符。
protocal 输入 断定所用触发协定。不用置0。
返回值:
0表示成功,其余值均表示失败。
各种语言调用说明:
Delphi:
Function viAssertTrigger(sesn:Longint;protocal:Integer):Longint;
C:
Long viAssertTrigger (long sesn, int protocal)
VB:
Function vAssertTrigger (ByVal sesn As Long,ByVal protocal As Integer) As Long
9、viLock(Sesn)
用途: 建立对指定资源的访问模式,本函式是本地封锁。
参数说明:
Sesn 输入 通话的唯一逻辑标识符。
lockType 输入 表示请求得锁定类型。不用,置0。
timeout 输入 定时时间,默认识是10秒。
requestedKey 输入 不用,置0。
accessKey 输入 不用,置0。
返回值:
0表示成功,其余值均表示失败。
各种语言调用说明:
Delphi:
Function viLock(sesn,lockType,timeout:Longint;requestedKey,
accessKey:PChar):Longint;
C: Long viLock (long sesn, long lockType, long timeout, char *requestedKey, char *accessKey)
VB: Function viLock (ByVal sesn As Long, ByVal lockType As Long,
ByVal timeout As Long, ByVal requestedKey As String,ByVal accessKey As String) As Long
10、viUnlock (Sesn)
用途: 取消对指定资源的封锁,返回本地。
参数说明:
Sesn 输入 通话的唯一逻辑标识符。
返回值:
0表示成功,其余值均表示失败。
各种语言调用说明:
Delphi: Function viUnlock(sesn:Longint):Longint;
C: Long viUnlock (long sesn)
VB: Function viUnlock (ByVal sesn As Long) As Long
GPIB函式详细说明:
1Send(Board_Index,evice_Address,Data_Buffer,Byte_Count,EOT_Mode)
用途:
向仪器写数据。
参数说明:
Board_Index 输入 不用,置0。
Device_Address 输入 仪器地址。
Data_Buffer 输入 向仪器传送数据块的存储单元。
Byte_Count 输入 指定被写的位元组数。
EOT_Mode 输入 0表示没有数据传输结束标誌;
1表示数据串用回车换行结束;
2表示数据用最后一个字元结束。
各种语言调用说明:
Delphi:
Procedure Send(Board_Index:Longint; Device_Address:SmallInt;
Data_Buffer:Pchar;Byte_Count:Longint;
EOT_Mode:Longint);
C:
Void Send(long int Board_Index, short Device_Address, char *Data_Buffer,long int Byte_Count,
long int EOT_Mode);
VB:
Sub Send(ByVal Board_Index As Long, ByVal Device_Address As Short, ByVal Data_Buffer As String,ByVal Byte_Count As Long, ByVal EOT_Mode As Long);
2Receive(Board_Index,_Address,Buffer,Byte_Count,Terminatin )
用途:
从仪器读数据。
参数说明:
Board_Index 输入 不用,置0。
Device_Address 输入 仪器地址。
Data_Buffer 输出 将接收数据的仪器缓冲区的存储单元
Byte_Count 输入 将读取的位元组数。
Termination 输入 不用,置0。
各种语言调用说明:
Delphi:
ProcedureReceive(Board_Index:Longint; Device_Address:SmallInt;Data_Buffer:Pchar; Byte_Count:Longint; Termination:Longint);
C:
Void Receive(long int Board_Index, short Device_Address, char *Data_Buffer,long int Byte_Count, long int Termination);
VB:
Sub Receive(ByVal Board_Index As Long, ByVal Device_Address As Short,ByVal Data_Buffer As String,ByVal Byte_Count As Long,
ByVal Termination As Long);
3、DevClear(Board_Index, Device_Address)
用途:
使一个仪器清零。
参数说明:
Board_Index 输入 不用,置0。
Device_Address 输入 仪器地址。
各种语言调用说明:
Delphi:
ProcedureDevClear(Board_Index:Longint;Device_Address:SmallInt);
C:
Void DevClear(long int Board_Index, short Device_Address);
VB:
Sub DevClear(ByVal Board_Index As Long, ByVal Device_Address As Short);
4、Trigger (Board_Index, Device_Address)
用途:
设定群触发。
参数说明:
Board_Index 输入 不用,置0。
Device_Address 输入 仪器地址。
各种语言调用说明:
Delphi:
Procedure
Trigger(Board_Index:Longint;Device_Address:SmallInt);
C:
Void Trigger(long int Board_Index, short Device_Address);
VB:
Sub Trigger(ByVal Board_Index As Long, ByVal Device_Address As Short);
5、WaitSRQ (Board_Index, SRQ_Occurred)
用途:
等待服务请求。
参数说明:
Board_Index 输入 不用,置0。
SRQ_Occurred 输出 0系统默认的timeout时间内无服务请求,
1系统默认的timeout时间有服务请求。
各种语言调用说明:
Delphi:
Procedure WaitSRQ(Board_Index:Longint; SRQ_Occurred:PSmallInt);
C:
Void WaitSRQ(long int Board_Index, short *SRQ_Occurred);
VB:
Sub WaitSRQ(ByVal Board_Index As Long, SRQ_Occurred As Short);
6、ReadStatusByte(Board_Index, Address, Status_Byte )
用途:
读服务请求的状态位元组。
参数说明
Board_Index 输入 不用,置0。
Device_Address 输入 仪器地址。
Status_Byte 输出 服务请求的状态位元组。
各种语言调用说明:
a00
Delphi:
ProcedureReadStatusByte(Board_Index:Longint; Device_Address:SmallInt;
Status_Byte:PSmallInt);
C:
Void ReadStatusByte(long int Board_Index, short Device_Address,
short *Status_Byte);
VB:
Sub ReadStatusByte(ByVal Board_Index As Long, ByVal Device_Address As Short, Status_Byte As Short);
7、SendIFC (Board_Index)
用途:
接口清除。
参数说明:
Board_Index 输入 不用,置0。
各种语言调用说明:a00
Delphi: Procedure SendIFC(Board_Index:Longint);
C: Void SendIFC(long int Board_Index);
VB: Sub SendIFC(ByVal Board_Index As Long);
8ReceBlock(Board_Index,_Address,Data_Buffer,Byte_Count,Termination)
用途:
从仪器读数据块。
参数:
名 称 方 向 说 明
Board_Index 输入 不用,置0。
Device_Address输入 仪器地址。
Data_Buffer 输出 表示将接收数据的仪器缓冲区的存储单元
Byte_Count 输入 将读取的位元组数。
返回值:
0表示成功,- 1表示失败。
各种语言调用说明:
Delphi: Function ReceBlock(Board_Index:Longint; Device_Address:SmallInt;
Block_Size:Longint;Data_Buffer:PChar);
C: int ReceBlock(long int Board_Index, short Device_Address,
int Block_Size, char *Data_Buffer);
VB: Function ReceBlock(ByVal Board_Index As Integer, ByVal evice_Address As Integer,ByVal Byte_Count As Integer, ByVal Data_Buffer As String);
9、ReceEOI (Board_Index, _Address, Data_Buffer, Byte_Count, Termination)
用途: 以EOI结束方式读仪器数据块。
参数:
名 称 方 向 说 明
Board_Index 输入 不用,置0。
Device_Address输入 仪器地址。
Data_Buffer 输出 表示将接收数据的仪器缓冲区的存储单元
Byte_Count 输入 将读取的位元组数。
Termination 输入 不用,置0。
返回值:
0表示成功,- 1表示失败。
各种语言调用说明:
Delphi: Function ReceEOI(Board_Index:Longint; Device_Address:SmallInt;
Data_Buffer:PChar;Byte_Count:PLongint;Termination:Longint
C: int ReceEOI(long int Board_Index, short Device_Address,
char *Data_Buffer,long int *Byte_Count,lng int Termination);
VB: Function ReceEOI(ByVal Board_Index As Integer, ByVal Device_Address As Integer,ByVal Data_Buffer As String, ByRef Byte_Count As Integer,ByVal Termination As Integer);

转载请注明出处海之美文 » VISA(虚拟仪器软体结构)

相关推荐

    声明:此文信息来源于网络,登载此文只为提供信息参考,并不用于任何商业目的。如有侵权,请及时联系我们:ailianmeng11@163.com