⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 test6-18.c

📁 固高GT400运动控制卡
💻 C
字号:
#include "userlib.h"
#include <stdio.h>

void initial(void);
void home(long);
void error(short);
short rtn;

void initial()
{
  rtn=GT_Open();            error(rtn);
  rtn=GT_Reset();           error(rtn);
  rtn=GT_LmtSns(0);         error(rtn);
  rtn=GT_EncSns(0);         error(rtn);

  rtn=GT_Axis(1);           error(rtn);
  rtn=GT_ClrSts();          error(rtn);
  rtn=GT_SetKp(20);         error(rtn);
  rtn=GT_SetKi(2);          error(rtn);
  rtn=GT_SetKd(60);         error(rtn);
  rtn=GT_SetKvff(0);        error(rtn);
  rtn=GT_SetKaff(0);        error(rtn);
  rtn=GT_SetILmt(100);      error(rtn);
  rtn=GT_Update();          error(rtn);
  rtn=GT_AxisOn();          error(rtn);

}

void home(long pos)
{
   unsigned short status;
   long actl_pos;
   rtn=GT_ClrSts();         error(rtn);
   rtn=GT_CaptHome();       error(rtn);
   rtn=GT_PrflT();          error(rtn);
   rtn=GT_SetVel(4);        error(rtn);
   rtn=GT_SetAcc(1);        error(rtn);
   rtn=GT_SetPos(pos);      error(rtn);
   rtn=GT_Update();         error(rtn);
   rtn=GT_GetSts(&status);  error(rtn);
   while(!(status&0x8))
   {
     if(status&0x1)  return;
     rtn=GT_GetSts(&status); error(rtn);
    }
   rtn=GT_GetCapt(&pos);     error(rtn);
   rtn=GT_SetPos(pos);       error(rtn);
   rtn=GT_Update();          error(rtn);
   rtn=GT_ClrSts();          error(rtn);
   rtn=GT_GetSts(&status);   error(rtn);
   while(!(status&0x1))
   {
     rtn=GT_GetSts(&status); error(rtn);
     }
   rtn=GT_ClrSts();          error(rtn);
   rtn=GT_CaptIndex();       error(rtn);
   pos=pos+8000;
   rtn=GT_SetPos(pos);       error(rtn);
   rtn=GT_Update();          error(rtn);
   rtn=GT_GetSts(&status);   error(rtn);
   while(!(status&0x8))
   {
     rtn=GT_GetSts(&status); error(rtn);
   }
   rtn=GT_ClrSts();          error(rtn);
   rtn=GT_GetCapt(&pos);     error(rtn);
   rtn=GT_SetPos(pos);       error(rtn);
   rtn=GT_Update();          error(rtn);
   rtn=GT_GetSts(&status);   error(rtn);
   while(!(status&0x1))
   {
     rtn=GT_GetSts(&status); error(rtn);
    }
   rtn=GT_ClrSts();          error(rtn);
   rtn=GT_ZeroPos();         error(rtn);
}

void error(short rtn)
{
   switch (rtn)
   {
      case -1:
	   printf("error: communciation error\n");
	   break;
      case 0:
	   /* No error */
	   break;
      case 1:
	   printf("error: command error\n");
	   break;
      case 2:
	   printf("error: radius is zero or too large\n");
	   break;
      case 3:
	   printf("error: the length of line is zero or too large\n");
	   break;
      case 4:
	   printf("error: acceleration or velocity is zero or too large\n");
	   break;
      case 5:
	   printf("error: parameter conflict\n");
	   break;
      case 6:
	   printf("error: nonexistence solution for the equation\n");
	   break;
      case 7:
	   printf("error: process parameter error\n");
	   break;
      default:
	   break;
   }
}

void main()
{
  initial();
  home(-20000000);
  rtn=GT_Close();             error(rtn);
 }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -