1、打开控制器         GT_Open
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二次开发基本流程总结的更多相关文章

  1. qduoj前端二次开发简略流程

    为缩减篇幅,已略去nodejs.git等软件安装操作,若有疑问请搜索相关教程. 为区分win和ubuntu的命令,作如下约定: $ cd //以$标记win下命令 # cd //以#标记linux命令 ...

  2. 解析大型.NET ERP系统 窗体、查询、报表二次开发

    详细介绍Enterprise Solution 二次开发的流程步骤,主要包括数据输入窗体(Entry Form),查询(Query/Enquiry),报表(Report)三个重要的二次开发项目. 数据 ...

  3. ccflow表机构与运行机制(二次开发必看)

    驰骋工作流引擎,工作流程管理系统,表结构与运行机制. ------------------------------------------------------- 前言: 1, ccflow 有自动 ...

  4. 基于VB语言对SolidWorks参数化设计的二次开发

    0 引言 随着数字信息化进程的快速推进,如今三维CAD技术在越来越多的企业当中得到运用.为了降低在设计生产中的成本,缩短设计周期,增强企业竞争力,三维参数化技术随之应声,它凭借更贴近现代概念的设计以及 ...

  5. OMCS开发手册(04) -- 二次开发流程

    在掌握了前面几篇关于OMCS的详细介绍后,我们就可以正式基于OMCS进行二次开发了.下面我们就从服务端和客户端的角度分别介绍开发的步骤. 一.服务端开发 抛开具体的业务逻辑而言,就OMCS的服务端的开 ...

  6. C#开发BIMFACE系列2 二次开发流程

    系列目录     [已更新最新开发文章,点击查看详细] BIMFACE 平台是一个对外开放的平台,建筑行业的相关公司.软件公司或者有 BIM 业务需求的公司都可以注册成为开发者并使用其提供的强大功能. ...

  7. Ecshop系统二次开发教程及流程演示

      来源:互联网 作者:佚名 时间:03-01 16:05:31 [大 中 小] Ecshop想必大家不会觉得陌生吧,大部分的B2C独立网店系统都用的是Ecshop系统,很受用户的喜爱,但是由于Ecs ...

  8. 【工业串口和网络软件通讯平台(SuperIO)教程】三.二次开发流程

    1.1    二次开发流程图 1.2    引用相关组件 找到“开发包”,引用里边的相关组件.如下图: 1.3    开发设备驱动模块 1.3.1    开发发送协议驱动 继承SuperIO.Devi ...

  9. [连载]《C#通讯(串口和网络)框架的设计与实现》- 12.二次开发及应用

    目       录 第十二章     二次开发及应用... 2 12.1        项目配制... 3 12.2        引用相关组件... 4 12.3        构建主程序... 5 ...

随机推荐

  1. HDU 1160

    FatMouse believes that the fatter a mouse is, the faster it runs. To disprove this, you want to take ...

  2. bzoj4195(并查集+离散化)

    题目大意:给出n个变量互相的相等或不等关系,求这些关系是否矛盾 思路:把相等的变量加入并查集,不等的查询是否合法 eg:数据很大,离散化(然而我用的是map) #include<stdio.h& ...

  3. redis解决高并发下脏读问题

    //解决并发情况下卡脏读的问题 protected function BingFa($mobile, $ent_id){ $obj = EnterpriseMembers::getNewMemberC ...

  4. js语言精粹

    1.typeof null == “object” ,所以不能通过typeof ~ == "object",判断为对象   : a.判断为null的,直接~ === null:b. ...

  5. FTR-B3GA003Z-信号继电器

    IC名称:B3GA003Z 数据手册:链接:https://pan.baidu.com/s/1MNe-fcKNAnuXyRLxhfUhjA 密码:6mo2 芯片自拍照: 封装尺寸以及引脚说明: 信号电 ...

  6. 模块 import 与from

    什么是模块:就是一系列功能的集合体 模块的来源 :1内置模块   2 第三方模块   3 自定义模块 模块的格式: 1 使用python编写的.py文件 2 已被编译为共享库或DLL的C或C++扩展 ...

  7. Linux 创建自定义命令

    Linux 创建自定义命令 Linux 可以创建自定义使用命令 这里我们采取使用“alias”命令.这里我们首先了解两个文件,通过这两个文件我们可以根据环境配置相应的自定义命令. 该文件内创建的自定义 ...

  8. ORA-12805: parallel query server died unexpectedly ORA-04030 (sort subheap,sort key) 原因排查与解决方法

    今日,某服务器pga调整为30G,_pga_max_size调整为8G之后(原来是2G,但是one passes语句较多,性能太低),执行出现ORA-12805: parallel query ser ...

  9. Cmd Markdown 编辑阅读器

    我们理解您需要更便捷更高效的工具记录思想,整理笔记.知识,并将其中承载的价值传播给他人,Cmd Markdown 是我们给出的答案 -- 我们为记录思想和分享知识提供更专业的工具. 您可以使用 Cmd ...

  10. UVA11995 I Can Guess the Data Structure!

    思路 简单题,用栈,队列,优先队列直接模拟即可 代码 #include <cstdio> #include <algorithm> #include <cstring&g ...