2、启动伺服使能 gt_clrsts
3、轴规划位置清零 gt_setprfpos
4、轴运动模式 gt_prftrap
5、轴目标位置 gt_setpos
6、轴转动速度 gt_setvel
7、启动轴 gt_update
8、关闭使能 gt_axisoff
9、关闭控制器 gt_close
c#: using system; using system.collections.generic; using system.linq; using system.text; using gts; namespace gts { class program { static void command(string sz, short nr) { console.writeline(sz + " = " + nr); } static void main(string[] args) { short maxis = 2; short nr = mc.gt_open(0, 1); if (nr != 0) { command("gt_open", nr); console.writeline("open error"); return; } command("gt_open", nr); // 清除各轴的报警和限位 command("gt_clrsts", mc.gt_clrsts(maxis, 1)); // 伺服使能 command("gt_axison", mc.gt_axison(maxis)); // 位置清零 command("gt_zeropos", mc.gt_zeropos(maxis, 1)); // 轴规划位置清零 command("gt_setprfpos", mc.gt_setprfpos(maxis, 0)); // 设置指定轴为点位运动模式。 command("gt_prftrap", mc.gt_prftrap(maxis)); // 设置点位运动参数 mc.ttrapprm trap = new mc.ttrapprm(); trap.acc = 0.25; trap.dec = 0.125; trap.smoothtime = 25; command("gt_settrapprm", mc.gt_settrapprm(maxis, ref trap)); // 设置轴的目标位置 command("gt_setpos", mc.gt_setpos(maxis, 50000)); // 设置轴的目标速度 command("gt_setvel", mc.gt_setvel(maxis, 25)); // 启动轴运动 command("gt_update", mc.gt_update(1 << maxis - 1)); mc.gt_close(); console.readkey(); } } }
c++源码: #include "stdafx.h" #include "windows.h" #include "conio.h" #include "gts.h" #define axis 1 // 该函数检测某条gt指令的执行结果,command为指令名称,error为指令执行返回值 void commandhandler(char *command, short error) { // 如果指令执行返回值为非0,说明指令执行错误,向屏幕输出错误结果 if(error) { printf("%s = %d\n", command, error); } } int main(int argc, char* argv[]) { short srtn; ttrapprm trap; long sts; double prfpos; // 打开运动控制器 srtn = gt_open(); // 指令返回值检测,请查阅例2-1 commandhandler("gt_open", srtn); // 配置运动控制器 // 注意:配置文件取消了各轴的报警和限位 srtn = gt_loadconfig("test.cfg"); commandhandler("gt_loadconfig ", srtn); // 清除各轴的报警和限位 srtn = gt_clrsts(1, 8); commandhandler("gt_clrsts", srtn); // 伺服使能 srtn = gt_axison(axis); commandhandler("gt_axison", srtn); // 位置清零 srtn = gt_zeropos(axis); commandhandler("gt_zeropos", srtn); // axis轴规划位置清零 srtn = gt_setprfpos(axis, 0); commandhandler("gt_setprfpos", srtn); // 将axis轴设为点位模式 srtn = gt_prftrap(axis); commandhandler("gt_prftrap", srtn); // 读取点位运动参数 srtn = gt_gettrapprm(axis, &trap); commandhandler("gt_gettrapprm", srtn); trap.acc = 0.25; trap.dec = 0.125; trap.smoothtime = 25; // 设置点位运动参数 srtn = gt_settrapprm(axis, &trap); commandhandler("gt_settrapprm", srtn); // 设置axis轴的目标位置 srtn = gt_setpos(axis, 50000l); commandhandler("gt_setpos", srtn); // 设置axis轴的目标速度 srtn = gt_setvel(axis, 50); commandhandler("gt_setvel", srtn); // 启动axis轴的运动 srtn = gt_update(1<<(axis-1)); commandhandler("gt_update", srtn); do { // 读取axis轴的状态 srtn = gt_getsts(axis, &sts); // 读取axis轴的规划位置 srtn = gt_getprfpos(axis, &prfpos); printf("sts=0x%-10lxprfpos=%-10.1lf\r", sts, prfpos); }while(sts&0x400); // 等待axis轴规划停止 // 伺服关闭 srtn = gt_axisoff(axis); printf("\ngt_axisoff()=%d\n", srtn); getch(); return 0; }
以上就是分享gts-800二次开发流程步骤的详细内容。