Home  >  Article  >  Backend Development  >  Share GTS-800 secondary development process steps

Share GTS-800 secondary development process steps

零下一度
零下一度Original
2017-06-23 16:13:282559browse
1. Open the controller GT_Open
2. Start the servo enable GT_ClrSts
3. Clear the axis planning position GT_SetPrfPos
4. Axis motion mode GT_PrfTrap
5. Axis target position GT_SetPos
6. Axis rotation speed GT_SetVel
7. Start axis GT_Update
8. Close enable GT_AxisOff
9. Close the controller 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;

}

The above is the detailed content of Share GTS-800 secondary development process steps. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn