CAPL-RS232控制IT6700系列程控电源
测试过程中,有部分测试用例有频繁上掉电、改变电流或电压等参数的需求,因此需要支持远程控制的电源,并通过CAPL和电源建立通信以实现自动化控制。本文通过RS232接口实现和CANoe通信。通过DB-9转USB口连接到PC。
·
CAPL RS232控制IT6700系列程控电源
引言
测试过程中,有部分测试用例有频繁上掉电、改变电流或电压等参数的需求,因此需要支持远程控制的电源,并通过CAPL和电源建立通信以实现自动化控制。本文通过RS232接口实现和CANoe通信。
IT6722A程控电源连接和配置
-
通过DB-9转USB口连接到PC
-
通讯设置
- 进入菜单
- 设置通信方式及参数:通信接口:RS232,波特率:9600,NONE:8个数据位都无校验
- 设备管理器确认设备信息
CAPL RS232实现
- 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;
}
- 指令字符串处理
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);
}
- 运行
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 */
}
更多推荐
所有评论(0)