如何通过GPIB进行电脑-电脑的通讯



主要软件: Driver Software>>NI-488.2
主要软件版本: N/A
主要软件修正版本: N/A
次要软件:

问题: 如何通过GPIB进行电脑-电脑的通讯


解答: 下面是关于通过GPIB进行电脑-电脑的通讯的设定顺序,基本的程序如下:

  1. 将所有GPIB相关的设定回归原始状态.
  2. 先确定哪一台电脑为Controller 而另外一台电脑为Non-Controller.
  3. 接下来使用Interactive Control (IBIC)来测试下面的命令. 成功之后即可在程序中执行同样指令.

    Non-Controller的电脑上进行下面的动作:

    1. 输入指令 ibfind GPIB0 与GPIB卡进行连线.
    2. 输入指令 ibrsc 0解除系统控制权(i.e., 设定此卡片为non-controller).
    3. 输入指令 ibpad 1 改变 Non-Controller 的primary GPIB address由 0 变成 1.
    4. 检查ATN状态是否改变,电脑变成listener的状态
    5. 接收由Controller发出的指令, 使用 ibrd #命令, # 代表接收的位元长度.
您可以把这个指令放在loop中,直到 Non-Controller 被指定为listener为止(i.e., Controller 送出一些数据) , 接着重复步骤 e 去接受这些数据. 您可以使用相同的方式在writes上, 但此时必须要等待已被通知要发送讯息(talk). 以下是用C语言所写上面步骤的程序码:

static int noncontroller;
static char buffer[100];
static int panelHandle;

int main ()
{
// Open a session to the GPIB board
noncontroller = ibfind ("gpib0");

// Release system control
ibrsc (noncontroller, 0);

// Change primary address from 0 to 1
ibpad (noncontroller, 1);

while (1)
{
// Update Status variable
ibwait (noncontroller, 0);

// Wait until non-controller is listener and ATN line is dropped.
if ((ibsta&LACS)&&(!(ibsta&ATN)))
{
ibrd (noncontroller, buffer, 100); // Read data bytes
buffer[ibcnt] = '\n'; // Add linefeed and 0 to string.
buffer[ibcnt + 1] = 0;
printf ("%s",buffer); print buffer
return 0;
} // first if

// If addressed to talk, send the response "I am a talker"
if ((ibsta&TACS)&&(!(ibsta&ATN)))
{
// Send data across the bus.
ibwrt (noncontroller, "I am a talker", strlen("I am a talker"));
return 0;
} // second if
} // while
} // main


在controller这一端,必须要注意的是, 是否成功与non-controller这一端建立了通讯(如上例是primary address 1,例如

  1. 使用 ibfind GPIB0 连接到GPIB介面卡.
  2. 使用ibsic 指令清除bus上的指令.
  3. 使用 ibsre 1 指令允许设定的仪器接受远端控制.
  4. 使用 ibdev 0 1 0 13 1 0 指令打开与 Non-Controller的通讯.
  5. 使用 ibwrt "HELLO" 送出一个string资料给Non-Controller
建议您要允许readdressing以确保Non-Controller可以每一次都被设定为listen.否则您会接收到一个ENOL error.要允许readressing,可以使用ibconfig ibcreaddr 1指令。(对controller您只需进行上面这些动作)

相关链接: Product Manuals: NI-488.2 User Manual for Windows
Product Manuals: NI-488.2 Function Reference Manual for Windows

KnowledgeBase 2I4E7MXH: Disabling a GPIB Interface as System Controller (SC)

附件:





报告日期: 03/30/1998
最近更新: 03/26/2004
文档编号: 17TGL4TR