CAPL RS232控制IT6700系列程控电源

引言

测试过程中,有部分测试用例有频繁上掉电、改变电流或电压等参数的需求,因此需要支持远程控制的电源,并通过CAPL和电源建立通信以实现自动化控制。本文通过RS232接口实现和CANoe通信。

IT6722A程控电源连接和配置

  1. 通过DB-9转USB口连接到PC

  2. 通讯设置

  • 进入菜单
    在这里插入图片描述
    在这里插入图片描述
  • 设置通信方式及参数:通信接口:RS232,波特率:9600,NONE:8个数据位都无校验
    在这里插入图片描述在这里插入图片描述在这里插入图片描述
  1. 设备管理器确认设备信息
    在这里插入图片描述

CAPL RS232实现

  1. RS232初始化
int RS232Init(dword port,dword baudrate,dword numberOfDataBits,dword numberOfStopBits,dword parity)
{ 
  dword ConfigureFlag;
  
  dword RS232OpenFlag;
  
  int flag=0;
  
  if(Rs232Close(port)==1)
  {
    //writeLineEx(0,kINFO, "Serial port %d successfully closed.", port); 
  }
       
  else
    write("An error occurred during closing of the serial port %d.", port);
  
  RS232OpenFlag=RS232Open(port);
  
  if(RS232OpenFlag!=1)
  {
    flag=1;
  }
  else
  {
    //writeLineEx(0,kINFO, "Serial port %d successfully opened.", port);
    ConfigureFlag = RS232Configure(port,baudrate,numberOfDataBits,numberOfStopBits,parity);
    
    if(ConfigureFlag!=1)
    {
      flag=2;
    }
    else
    {
      //writeLineEx(0,kINFO, "Serial port %d successfully initialized.", port);
    }
       
  }  
  if(Rs232Receive(port, gReceiverCallbackBuffer, kBUFFER_SIZE))
    write("Receiver buffer for serial port %d successfully set.", port);    
  else
    write("An error occurred during setting the receiver buffer for serial port %d.", port);
  return flag;
}
  1. 指令字符串处理
void sendcmd(char text[])  
{
    byte buffer[100];
    int i;
    int length;
    for (i=0;i<elcount(buffer);i++) buffer[i]=0;
    length=strlen(text);
    for (i=0;i<length;i++) 
    {
      buffer[i]=text[i];
    }
    
    if ( RS232Send(UART_Port,buffer,length) != 1 )
      write("send from port %d failed.",UART_Port);
}
  1. 运行
MainTest()
{
   if(RS232Init(UART_Port,9600,8,1,0)==0) /* Jugde if the Power connect and UART connect OK */
  {
    write("Power connect and UART connect OK");
	//发送远程控制指令
   sendcmd("SYST:REM\n");
  }
   else
  {
     testStepFail("Volt","Power Supply - PORT %dCANNOT OPEN",UART_Port);    
  }
   //开启电源
   sendcmd("OUTPut 1\n");
   //设置电压为13V
   sendcmd("VOLT 13\n");
   //设置电流为10A
   sendcmd("CURR 10\n");

  testWaitForTimeout(5000);
  rs232Close(UART_Port);/* Close Port */
}
Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐