指令delphi教程

delphi教程  时间:2021-04-04  阅读:()
务必将此手册交给用户非常感谢您选购GE连续轨迹运动控制器在您使用之前,请仔细阅读此手册,确保正确使用.
请将此手册妥善保存,以备随时查阅.
固高科技(深圳)有限公司地址:深圳市高新技术产业园南区深港产学研基地西座二层W211室电话:0755-269708232697081726970824传真:0755-26970846电子邮件:support@googoltech.
com网址:http://www.
googoltech.
com.
cn固高科技(香港)有限公司地址:香港九龙清水湾香港科技大学新翼楼3639室电话:(852)2358-1033传真:(852)2358-4931电子邮件:info@googoltech.
com网址:http://www.
googoltech.
com/GE系列运动控制器编程手册版权申明固高科技有限公司保留所有权力固高科技有限公司(以下简称固高科技)保留在不事先通知的情况下,修改本手册中的产品和产品规格等文件的权力.
固高科技不承担由于使用本手册或本产品不当,所造成直接的、间接的、特殊的、附带的或相应产生的损失或责任.
固高科技具有本产品及其软件的专利权、版权和其它知识产权.
未经授权,不得直接或者间接地复制、制造、加工、使用本产品及其相关部分.
运动中的机器有危险!
使用者有责任在机器中设计有效的出错处理和安全保护机制,固高科技没有义务或责任对由此造成的附带的或相应产生的损失负责.
前言感谢选用固高运动控制器为回报客户,我们将以品质一流的运动控制器、完善的售后服务、高效的技术支持,帮助您建立自己的控制系统.
固高产品的更多信息固高科技的网址是http://www.
googoltech.
com.
cn.
在我们的网页上可以得到更多关于公司和产品的信息,包括:公司简介、产品介绍、技术支持、产品最新发布等等.
您也可以通过电话(0755-26970839)咨询关于公司和产品的更多信息.
技术支持和售后服务您可以通过以下途径获得我们的技术支持和售后服务:电子邮件:support@googoltech.
com;电话:(0755)26970835发函至:深圳市高新技术产业园南区园深港产学研基地西座二楼W211室固高科技(深圳)有限公司邮编:518057编程手册的用途用户通过阅读本手册,能够了解GE系列运动控制器的控制功能,掌握函数的用法,熟悉特定控制功能的编程实现.
最终,用户可以根据自己特定的控制系统,编制用户应用程序,实现控制要求.
编程手册的使用对象本编程手册适用于具有C语言编程基础或Windows环境下使用动态链接库的基础,同时具有一定运动控制工作经验,对伺服或步进控制的基本结构有一定了解的工程开发人员.
编程手册的主要内容本手册由十二章内容组成.
详细介绍了GE系列运动控制器的控制功能及编程实现.
相关文件关于GE系列运动控制器调试和安装,请参见与产品配套的运动控制器用户手册.
型号说明GE系列运动控制器主要包括两大类:单卡运动控制器及GUC运动控制器,具体型号说明如下:1、单卡运动控制器GX–X00–X1X2–XXX–X运动控制器系列型号GE:经济型GT:通用型GH:高性能型可控轴数200:2轴300:3轴400:4轴800:8轴X1:运动控制类型P:点位运动S:连续轨迹运动Y:同步运动X2:控制输出信号类型G:脉冲输出V:模拟电压/脉冲输出接口板类型G:标准型A:A/D转换型R:驱动继电器型O:定制型运动控制器总线形式ISA:ISA/PC104总线PCI:PCI总线2、GUC运动控制器型号运动控制类型控制轴数控制电机输出方式GE-X00-SV连续轨迹运动4/3/2伺服/步进电机模拟电压输出/脉冲输出GE-X00-SG连续轨迹运动4/3/2伺服/步进电机脉冲输出GE-X00-PV点位运动8/4/3/2伺服/步进电机模拟电压输出/脉冲输出GE-X00-PG点位运动8/4/3/2伺服/步进电机脉冲输出GUC-X00-ESV连续轨迹运动4/3伺服/步进电机模拟电压输出/脉冲输出GUC-X00-ESG连续轨迹运动4/3伺服/步进电机脉冲输出GUC-X00-EPV点位运动4/3伺服/步进电机模拟电压输出/脉冲输出GUC-X00-EPG点位运动4/3伺服/步进电机脉冲输出GUC-X00–X1X2X3-(XXXX)-XXX-XX-FXG系列符号GUC:GUC系列控制轴数300:3轴400:4轴800:8轴X1:运动控制产品系列E:GE系列T:GTS系列X2:运动控制类型P:点位运动控制S:连续规迹运动控制X3:输出信号类型V:模拟电压输出/脉冲输出G:脉冲输出专用型号无:通用型LASER:激光控制功能SCAN:振镜控制功能ML:数控、雕铣类CPU类型标识M01:CeleronM600MHzM02:CeleronM1GHz结构标识L2:双层端子结构L3:三层端子结构电子盘容量F1G:1G的DOMF4G:4G的DOM目录第一章运动控制器函数库的使用11.
1DOS系统下函数库的使用11.
2Windows系统下动态链接库的使用21.
3WinCE系统下动态链接库的使用.
3第二章指令返回值及其意义42.
1指令返回值42.
2指令错误寄存器52.
3记录指令执行流程8第三章控制系统初始化103.
1运动控制器初始化103.
2专用输入信号参数设置113.
3控制轴初始化123.
4控制轴实际位置设置163.
5运动控制器初始化例程16第四章运动控制器状态检测194.
1指令列表194.
2重点说明194.
3控制轴状态寄存器194.
4控制轴模式寄存器214.
5连续轨迹运动状态寄存器22第五章点位运动235.
1梯形曲线235.
2S曲线.
275.
3速度控制305.
4参数刷新机制335.
5停止控制轴的运动33第六章连续轨迹运动356.
1进给速度、加速度设置356.
2轨迹运动的轨迹描述376.
3多段连续轨迹运动的基本实现396.
4小线段连续轨迹运动的速度规划策略446.
5连续轨迹运动中的速度倍率466.
6连续轨迹运动的机床坐标系和加工坐标系.
476.
7连续轨迹运动的运动信息反馈47第七章Home/Index高速捕获507.
1指令列表507.
2Home回原点507.
3Home+Index回原点517.
4例程527.
5重点说明56第八章安全机制588.
1设置跟随误差超限自动停止588.
2设置输出电压饱和极限588.
3限位状态处理598.
4控制轴驱动报警处理59第九章数字I/O.
609.
1通用数字I/O.
609.
2专用数字I/O.
60第十章运动控制器可选功能6210.
1模拟电压输入6210.
2手脉功能6310.
3主轴转速控制64第十一章指令列表66第十二章指令说明73第一章运动控制函数库的使用1第一章运动控制器函数库的使用GE系列运动控制器提供DOS下的C语言函数库和Windows下的动态链接库,若为GUC运动控制器且内嵌系统为WinCE系统,运动控制器还会提供对应WinCE下的动态链接库.
用户只要调用函数库中的指令,就可以实现运动控制器的各种功能.
下面分别讲述DOS、Windows系统、WinCE系统下函数库的使用方法.
1.
1DOS系统下函数库的使用GE系列连续轨迹运动控制器(GE-X00-SX/GUC-X00-ESX)DOS系统下的函数库和头文件存放在产品配套光盘的DOS\UserLib文件夹下,共七个文件.
分别为:ges.
h头文件gest.
lib微模式(Tiny)的函数库gess.
lib小模式(Small)的函数库gesm.
lib中模式(Medium)的函数库gesc.
lib紧凑模式(Compact)的函数库gesl.
lib大模式(Large)的函数库gesh.
lib巨大模式(Huge)的函数库GE系列点位运动控制器(GE-X00-PX/GUC-X00-EPX)DOS系统下的函数库和头文件存放在产品配套光盘的DOS\UserLib文件夹下,共七个文件.
分别为:gep.
h头文件gept.
lib微模式(Tiny)的函数库geps.
lib小模式(Small)的函数库gepm.
lib中模式(Medium)的函数库gepc.
lib紧凑模式(Compact)的函数库gepl.
lib大模式(Large)的函数库geph.
lib巨大模式(Huge)的函数库该函数库是用BorlandC++3.
1编译生成的,用户可在BorlandC++3.
1或更高版本的开发环境下链接该函数库.
使用函数库开发应用程序的流程如下:1.
确定编译模式——启动BorlandC++3.
1;选择"Project"菜单下"OpenProject",打开已有工程文件或建立新工程文件;选择"Options"菜单下"Compiler"中的"Codegeneration…"菜单第一章运动控制函数库的使用2项;在"Model"一栏中选择当前工程文件的编译模式.
2.
添加函数库——选择相应编译模式的函数库和头文件,复制到用户当前的工程文件夹中;选择"Window"菜单下的"Project"菜单项,切换到工程窗口;选择"Project"菜单下的"AddItem…"菜单项;在"Name"栏中输入"*.
lib"后回车;在"Files"栏中选择将要加入工程的函数库,然后点击"Add"按钮.
3.
添加源程序文件——选择"File"菜单下的"New"菜单项,新建一个.
CPP或.
C文件;在新建的.
CPP或.
C文件中加入函数库头文件的声明,例如:#include"ges.
h";//声明连续轨迹运动控制器函数库头文件保存该文件,然后将该源程序文件添加到当前工程当中.
1.
2Windows系统下动态链接库的使用在Windows系统下使用GE系列运动控制器,首先要安装驱动程序,GE系列运动控制器的驱动程序存放在产品配套光盘的Windows\Driver文件夹下.
运动控制器指令函数动态链接库存放在产品配套光盘的Windows\VC(Windows\VB或Windows\Delphi)文件夹下.
连续轨迹运动控制器(GE-X00-SX/GUC-X00-ESX)的动态链接库文件名为ges.
dll,点位运动控制器(GE-X00-PX/GUC-X00-EPX)的动态链接库文件名为gep.
dll.
在Windows系统下,用户可以使用任何能够支持动态链接库的开发工具来开发应用程序.
下面分别以VisualC++、VisualBasic和Delphi为例讲解如何在这些开发工具中使用运动控制器的动态链接库.
1.
2.
1VisualC++中的使用1.
启动VisualC++,新建一个工程;2.
将产品配套光盘Windows\VC文件夹中的动态链接库、头文件和lib文件复制到工程文件夹中;3.
选择"Project"菜单下的"Settings…"菜单项;4.
切换到"Link"标签页,在"Object/librarymodules"栏中输入lib文件名(例如ges.
lib);5.
在应用程序文件中加入函数库头文件的声明,例如:#include"ges.
h"6.
至此,用户就可以在VisualC++中调用函数库中的任何函数,开始编写应用程序.
第一章运动控制函数库的使用31.
2.
2VisualBasic中的使用1.
启动VisualBasic,新建一个工程;2.
将产品配套光盘Windows\VB文件夹中的动态链接库和函数声明文件复制到工程文件夹中;3.
选择"工程"菜单下的"添加模块"菜单项;4.
切换到"现存"标签页,选择函数声明文件(例如ges.
bas),将其添加到工程当中;5.
至此,用户就可以在VisualBasic中调用函数库中的任何函数,开始编写应用程序.
1.
2.
3Delphi中的使用1.
启动Delphi,新建一个工程;2.
将产品配套光盘Windows\Delphi文件夹中的动态链接库和函数声明文件复制到工程文件夹中;3.
选择"Project"菜单下的"AddtoProject…"菜单项;4.
将函数声明文件添加到工程当中;5.
在代码编辑窗口中,切换到用户的单元文件;6.
选择"File"菜单下的"UseUnit…"菜单项,添加对函数声明文件的引用;7.
至此,用户就可以在Delphi中调用函数库中的任何函数,开始编写应用程序.
1.
3WinCE系统下动态链接库的使用若控制器为GUC运动控制器且内嵌系统为WinCE系统,运动控制器还会提供对应的动态链接库及SDK.
运动控制器指令函数动态链接库存放在产品配套光盘的WinCE\EVC文件夹下,SDK存放在产品配套光盘的WinCE\SDK文件夹下.
连续轨迹运动控制器(GUC-X00-ESX)的动态链接库文件名为ges.
dll,点位运动控制器(GUC-X00-EPX)的动态链接库文件名为gep.
dll.
GUC运动控制器内嵌WinCE5.
0系统,软件开发环境为MicrosofteVC4.
0.
使用该运动控制器开发控制软件时,一般选用该控制器作为开发用的目标机,另使用一台PC机作为开发机,在系统开发完毕后,再直接在GUC控制器上运行.
具体开发步骤如下:1.
开发机上安装eMbeddedVisualC++4.
0;2.
开发机上安装GUC产品基于WinCE5.
0的SDK(SoftWareDevelopmentKit);3.
将开发机和目标机通过网线互联,网线连接图如图1-1所示.
第一章运动控制函数库的使用44.
将开发机和目标机接入同一网关,连接方法如下:从我的电脑-控制面板-网络和拨号连接打开目标机的IP设置对话框,设置相应的地址如图1-2所示.
设置完毕后请点击开始-挂起,保存设置.
从开始-程序-命令提示符打开文本控制台,使用Ping命令检查目标机与开发机的连接,确保连接成功如图1-3.
5.
开发机上启动eMbeddedVisualC++4.
0(以下简称EVC)设置连接.
从Tools-ConfiguePlatformManager打开设置对话框,选中安装的目标机如图1-4.
图1-3图1-2IP地址设置方法图1-1调试用的网线连接图第一章运动控制函数库的使用5点击properties按钮打开目标机属性对话框如图1-5,Transport列表框选择TCP/IPTransportforWindowsCE,Startup选择ManualServer.
点击Transport列表框右手边的Configure按打开设置对话框,可以选中Fixedport,输入端口号如图1-6所示,点击OK按钮关闭TCP/IPTransportConfigure对话框.
图1-5图1-4第一章运动控制函数库的使用6点击DeviceProperties对话框的Test按钮,开发机弹出ManualServer-Action对话框如图1-7,按照对话框下方的提示,目标机的文本控制台输入命令行CEMGRC.
EXE/S/T:TCPIPC.
DLL/Q/D:192.
168.
2.
146:1234,并回车如图1-8.
图1-6图1-7第一章运动控制函数库的使用7目标机处于等待状态,开发机点击ManualServer-Action对话框OK按钮,即可连接成功.
如不能连接成功试着改变Fixedport的值、不使用Fixedport或者重新启动目标机和开发机6.
完成以上设置后,就可使用EVC开发Wince应用程序在File-new如图1-9所示,选择X86CPU,使用默认设置,完成MFC应用程序的设置.
图1-8第一章运动控制函数库的使用8应用程序完成后,执行Build菜单下Rebuildall命令,成功编译后,会出现如图1-10窗口.
在下载完毕之后,即可进行程序的调试,执行.
下面描述在EVC下进行开发的具体步骤:1.
启动eMbeddedVisualC++,新建一个工程;2.
将产品配套光盘WinCE\EVC文件夹中的动态链接库、头文件和lib文件复制到工程文件夹中;3.
选择"Project"菜单下的"Settings…"菜单项;图1-10图1-9第一章运动控制函数库的使用94.
切换到"Link"标签页,在"Object/librarymodules"栏中输入lib文件名(例如ges.
lib);5.
在应用程序文件中加入函数库头文件的声明,例如:#include"ges.
h"6.
至此,用户就可以在eMbeddedVisualC++中调用函数库中的任何函数,开始编写应用程序.
第二章指令返回值及其意义4第二章指令返回值及其意义2.
1指令返回值运动控制器按照主机发送的指令工作.
运动控制器指令封装在C语言函数库(DOS环境)和动态链接库(Windows\WinCE环境)中.
用户在编写应用程序时,通过调用运动控制器指令来操纵运动控制器.
运动控制器在接收到主机发送的指令时,将执行结果反馈到主机,指示当前指令是否正确执行.
指令返回值的定义如表2-1及表2-2所示:表2-1GE-X00-PX/GUC-X00-EPX运动控制器指令返回值定义返回值意义处理方法-3指令重入不要在多个线程当中同时调用运动控制器指令.
-1通讯出错检查运动控制器是否工作正常.
0指令执行成功继续.
1指令错误调用GT_GetCmdSts指令,确定出错原因,予以改正.
7指令参数错误检查指令参数是否正确.
表2-2GE-X00-SX/GUC-X00-ESX运动控制器指令返回值定义返回值意义处理方法-3指令重入不要在多个线程当中同时调用运动控制器指令.
-1通讯出错检查运动控制器是否工作正常.
0指令执行成功继续.
1指令错误调用GT_GetCmdSts指令,确定出错原因,予以改正.
2圆弧半径为零或弦长为零(整圆除外)圆弧指令相关参数出错时返回该值.
检查该指令的参数,改正后重发此指令.
3直线长度为零或溢出直线插补指令相关参数出错时返回该值.
检查该指令的参数,改正后重发此指令.
4(加)速度小于等于零或溢出合成速度、合成加速度指令相关参数出错时返回该值.
检查该指令的参数,改正后重发此指令.
5圆弧弦长大于直径圆弧指令相关参数出错时返回该值.
检查该指令参数是否正确合理,改正后重发.
7指令参数错误检查该指令的参数是否正确,改正后重发此指令.
第二章指令返回值及其意义5建议在用户程序中,检测每条指令的返回值,以判断指令的执行状态.
并建立必要的错误处理机制,保证程序安全可靠地运行.
如果指令返回值为-1,而且重复调用该指令仍返回-1,说明运动控制器的通讯出现故障,运动控制器没有正确地接收主机的指令;或是运动控制器工作不正常,不能正确处理主机指令.
此时请按照如下步骤进行检查:1.
在Windows系统下使用运动控制器时,请检查驱动程序是否正确安装;2.
检查运动控制器、接插件和连接线是否插牢;3.
检查运动控制器的基地址跳线是否正确,请确认运动控制器的基地址跳线与应用程序中所指定的基地址相一致(针对ISA/PC104总线的运动控制器);4.
检查PC机的插槽是否能够正常工作,并尝试更换插槽或PC机(针对PCI运动控制器);5.
检查JP4跳线是否正确,JP4跳线默认为1-2脚短接(针对PCI运动控制器).
2.
2指令错误寄存器当运动控制器指令的返回值为1时,说明指令执行错误,此时应当调用指令GT_GetCmdSts进一步确认具体出错原因.
指令错误寄存器的具体定义如表2-3,当某个状态位为1时,指示了相应的错误原因.
表2-3GE-X00-PX/GUC-X00-EPX运动控制器指令错误寄存器定义0指令参数溢出.
1指令参数非法.
2GT_MltiUpdt的参数值为0.
3伺服使能时调用GT_DrvRst.
4保留.
5设置捕获状态指令出错:已经对控制轴设置了捕获方式,但还没有捕获到信息,或者捕获了信息后没有清除该标志,主机就再次调用设置捕获方式的指令.
6在运动状态下修改控制轴的工作模式.
7保留.
8保留.
9在控制轴产生驱动报警时调用GT_AxisOn.
10保留.
11控制轴在运动状态时调用GT_ZeroPos或GT_SetAtlPos;控制轴在运动状态时调用GT_Update或GT_MltiUpdt刷新在运动状态位定义第二章指令返回值及其意义6下不允许修改的运动控制参数(例如梯形曲线不允许在运动状态下修改加速度,S曲线不允许在运动状态下修改速度和加速度.
).
12保留.
13保留.
14保留.
15保留.
表2-4GE-X00-SX/GUC-X00-ESX运动控制器指令错误寄存器定义位定义0保留.
1控制轴指令参数非法.
2GT_MltiUpdt的参数值为0.
3控制轴电机状态错误:控制轴处在伺服使能状态时,调用GT_DrvRst指令复位驱动器,或调用GT_AlarmOff/GT_AlarmOn指令管理报警信号,或调用GT_EncOff/GT_EncOn指令关闭或打开编码器;控制轴产生驱动报警时,调用GT_AxisOn指令.
4保留.
5设置捕获状态指令出错:已经对控制轴设置了捕获方式,但还没有捕获到信息,或者捕获了信息后没有清除该标志,主机就再次调用设置捕获方式的指令.
6控制轴状态指令错误:控制轴处于脉冲输出方式下时,调用GT_SetKp等与伺服控制相关的指令;控制轴处于伺服使能状态下时,调用GT_CtrlMode指令;控制轴处于模拟量输出方式下时,调用GT_StepDir/GT_StepPulse指令;调用GT_MapCnt指令修改坐标系偏移量时,有控制轴处于运动状态,或者缓冲区没有关闭,或者参数超限.
7保留.
8连续轨迹运动指令错误:调用GT_StrtList指令打开缓冲区后,没有发送定位指令就直接调用连续轨迹运动指令(如GT_LnXY指令);调用立即轨迹指令时,轨迹运动没有停止;关闭缓冲区后,仍调用定位指令;重复调用定位指令,或定位指令参数不正确;缓冲区输入方式下调用指令GT_SetSynAcc;设置最大速度、启动速度、加速度和急停加速度时,轨迹运动没有停止;轨迹运动参数指令的参数不正确.
9缓冲区状态管理指令出错:调用GT_StrtMtn指令时有轨迹运动且没有停止;调用GT_StrtList指令时缓冲区连续轨迹运动没有停止或者缓冲区已经第二章指令返回值及其意义7位定义打开;缓冲区处于打开状态时调用GT_AddList指令;调用GT_RestoreMtn指令时轨迹运动没有停止,或缓冲区中没有未执行的轨迹运动描述指令.
10保留.
11控制轴处于运动状态时调用GT_ZeroPos或GT_SetAtlPos指令.
12保留.
13保留.
14该指令不属于连续轨迹运动控制器的指令集.
15由于运动控制器缓冲区满,刚刚调用的运动描述指令没有被运动控制器接收;主机需要继续重复调用该指令,直至接收该指令为止.
下面这段程序以标准C语言为例,简单说明了利用指令返回值进行错误处理的方法.
当指令返回值异常时,发出蜂鸣声并显示错误信息.
在实际应用系统中,应当根据具体情况采取相应的处理方法.
例程2-1利用指令返回值进行错误处理voiderror(shortrtn){switch(rtn){case-1:printf("\a\nCommunicationError!
");break;case0:break;case1:printf("\a\nCommandError!
");break;case2:printf("\a\nRadiusorchordis0!
");break;case3:printf("\a\nLengthis0oroverflow!
");break;case4:printf("\a\nVelocityoraccelerationislessthen0!
");break;case5:printf("\a\nChordisgreaterthandiameter!
");break;case7:printf("\a\nParametererror!
");break;default:printf("\a\nErrorCode=%d",rtn);break;}}第二章指令返回值及其意义8voidmain(){shortrtn;rtn=GT_Open();error(rtn);//打开运动控制器rtn=GT_Reset();error(rtn);//复位运动控制器rtn=GT_ClrSts(1);error(rtn);//清除1轴状态寄存器…//其它指令rtn=GT_Close();error(rtn);//关闭运动控制器}2.
3记录指令执行流程在调试应用程序时,需要检查发送到运动控制器的指令流和指令参数,使用函数库所提供的GT_HookCommand指令可以简化这方面的工作.
用户通过调用GT_HookCommand指令将自己编写的指令处理程序挂接到函数库.
当用户调用运动控制器指令时,函数库在指令执行完成以后自动调用所挂接的指令处理程序,并将当前的指令名称、指令参数和指令返回值传递给指令处理程序.
指令处理程序可以将这些信息记录到文件当中,以便用户对其进行分析.
用户可在指令处理程序中检查指令返回值,集中进行错误处理,简化错误处理程序.
2.
3.
1VisualC++中的指令处理函数的声明和挂接在VisualC++中调用GT_HookCommand指令挂接指令处理程序时,所挂接的指令处理程序必须声明为标准调用(在函数名之前添加关键字_stdcall).
例程2-2在VisualC++中使用void_stdcallCommandHandle(char*command,shorterror){…}voidmain(){GT_HookCommand(CommandHandle);//挂接指令处理函数…}2.
3.
2VisualBasic中指令处理过程的声明和挂接在VisualBasic中调用GT_HookCommand指令挂接指令处理程序时,所挂第二章指令返回值及其意义9接的指令处理程序必须定义在独立的标准模块当中,参数必须定义为传值方式.
指令名称参数应当调用函数StrConv()转化为Unicode编码.
例程2-3在VisualBasic中使用SubCommandHandle(ByValcommandAsString,ByValerrorAsInteger)DimMsgAsStringMsg=StrConv(command,vbUnicode)//转化成为Unicode编码…EndSubPrivateSubCommand1_Click()GT_HookCommandAddressOfCommandHandle//挂接指令处理程序…EndSub2.
3.
3Delphi中指令处理过程的声明和挂接在Delphi中调用GT_HookCommand指令挂接指令处理程序时,所挂接的指令处理程序必须声明为标准调用(在函数名之后添加关键字stdcall).
例程2-4在Delphi中使用procedureCommandHandle(command:PChar;error:SmallInt);stdcall;begin…endprocedureTForm1.
Button1Click(Sender:TObject);beginGT_HookCommand(CommandHandle);//挂接指令处理程序…end;第三章控制系统初始化10第三章控制系统初始化GE系列运动控制器包含GE连续轨迹运动控制器(GE-X00-SX/GUC-X00-ESX)和GE点位运动控制器(GE-X00-PX/GUC-X00-EPX).
在开发应用程序之前,必须结合实际系统正确选择和设置运动控制器.
3.
1运动控制器初始化本章描述如何将GE系列运动控制器进行初始化,并给出了相关的例程.
如没有特别标注,本章中使用的指令可适用于GE系列中所有的运动控制器.
3.
1.
1指令列表表3-1运动控制器初始化指令列表指令说明GT_Open打开运动控制器ISA总线的运动控制器需要设置基地址PCI总线的运动控制器不需要设置基地址GT_Reset复位运动控制器3.
1.
2重点说明3.
1.
2.
1打开运动控制器必须首先调用指令GT_Open打开运动控制器,和运动控制器建立通讯.
对于ISA总线的运动控制器,调用指令GT_Open时必须指定运动控制器的基地址.
基地址必须和运动控制器的基地址跳线一致,基地址跳线的设置方法请参见《GE系列运动控制器用户手册》中的"基地址选择:JP1"一栏.
对于PCI总线的运动控制器,调用指令GT_Open时不必指定运动控制器的基地址.
在退出应用程序时应当调用指令GT_Close关闭运动控制器.
3.
1.
2.
2复位运动控制器调用指令GT_Reset将使运动控制器的所有寄存器恢复到默认状态,一般在打开运动控制器之后调用该指令.
第三章控制系统初始化113.
2专用输入信号参数设置3.
2.
1指令列表表3-2专用输入信号参数设置指令列表指令说明GT_LmtSns设置运动控制器各轴限位开关触发电平(默认为0,高电平触发)GT_HomeSns设置运动控制器各轴Home信号触发沿(默认为0,下降沿触发)GT_EncSns设置运动控制器各轴编码器计数方向3.
2.
2重点说明3.
2.
2.
1设置限位开关触发电平运动控制器为每个控制轴都提供了正负限位信号输入接口.
各轴限位开关应与端子板上相应的限位信号输入端子和OGND相连.
其接线方式请参见对应的运动控制器用户手册中的"专用输入、输出连接方法"一栏.
当某个方向上的限位开关触发时,运动控制器将自动停止该方向上的运动,以保障系统安全.
当离开限位开关以后,必须调用指令GT_ClrSts才能清除该轴的限位状态.
运动控制器默认的限位开关为常闭开关,即各轴处于正常工作状态时,其限位开关信号输入为低电平;当限位开关信号输入为高电平时,与其对应轴的限位状态将被触发.
如果使用常开开关,需要通过调用指令GT_LmtSns改变限位开关触发电平.
指令GT_LmtSns的参数设置各轴正负限位开关的触发电平,当该参数的某个状态位为0时,表示将对应的限位开关设置为高电平触发,当某个状态位为1时表示将对应的限位开关设置为低电平触发.
指令参数和各轴限位的对应关系如下所示:表3-3指令GT_LmtSns的参数和各轴限位的对应关系状态位1514131211109876543210轴8轴7轴6轴5轴4轴3轴2轴1限位开关3.
2.
2.
2原点信号触发沿设置运动控制器为每个控制轴提供了一个原点信号输入接口.
各轴原点开关应与端子板上相应的原点信号输入端子和OGND相连.
其接线方式请参见对应的运动控制器用户手册中的"专用输入、输出连接方法"一栏.
默认情况下运动控制器原点信号为下降沿触发,调用指令GT_HomeSns能第三章控制系统初始化12够改变运动控制器原点信号的边沿触发方式.
当指令参数的某个状态位为0时,所对应控制轴的原点信号为下降沿触发;当指令参数的某个状态位为1时,所对应控制轴的原点信号为上升沿触发.
指令参数的状态位和各轴原点的对应关系如表3-4所示:表3-4指令GT_HomeSns的参数和各轴原点的对应关系状态位76543210Home开关Home7Home6Home5Home4Home3Home2Home1Home03.
2.
2.
3编码器计数方向设置只有电机旋转的正方向和编码器计数的正方向一致,才能保证运动控制器正常工作.
在实际应用中,可能由于接线错误或者电机设置不当,造成电机转向与编码器计数方向相反,导致运动控制器不能正常工作.
此时可以调用指令GT_EncSns修改运动控制器各轴的编码器计数方向.
当指令参数的某个状态位为1时,将所对应的控制轴的编码器计数方向取反,指令参数的状态位定义如表3-5所示:表3-5指令GT_EncSns的参数和各轴编码器的对应关系状态位76543210对应轴轴8轴7轴6轴5轴4轴3轴2轴13.
2.
2.
4驱动报警信号运动控制器为每个控制轴都提供了驱动报警信号的输入接口.
如果不需要驱动报警输入信号,可调用指令GT_AlarmOff,使驱动报警无效,其接线方式请参见对应的运动控制器用户手册中的"专用输入、输出连接方法"一栏.
当控制轴处于驱动报警状态时,运动控制器拒绝针对该控制轴的运动指令.
在伺服电机驱动器的报警消除以后,必须调用指令GT_ClrSts清除该轴的驱动报警状态.
GE-X00-XG/GUC-X00-EXG运动控制器默认驱动报警输入信号无效.
GE-X00-XV/GUC-X00-EXV运动控制器默认驱动报警输入信号有效.
3.
3控制轴初始化3.
3.
1指令列表表3-6运动控制轴初始化指令列表指令说明GT_AxisOn使能指定控制轴第三章控制系统初始化13GT_ClrSts清除指定控制轴状态GT_StepDir设置指定控制轴的脉冲输出方式为"脉冲/方向"方式GT_StepPulse设置指定控制轴的脉冲输出方式为"正/负脉冲"方式GT_CtrlMode设置指定控制轴的模拟量输出或脉冲输出模式(GE-X00-XV/GUC-X00-EXV)GT_CloseLp将指定控制轴设置为闭环控制模式(GE-X00-PV/GUC-X00-EPV)GT_OpenLp将指定控制轴设置为开环模式(GE-X00-PV/GUC-X00-EPV)GT_SetKp设置指定控制轴的误差比例增益(GE-X00-XV/GUC-X00-EXV)GT_SetKi设置指定控制轴的误差积分增益(GE-X00-XV/GUC-X00-EXV)GT_SetKd设置指定控制轴的误差微分增益(GE-X00-XV/GUC-X00-EXV)GT_SetKvff设置指定控制轴的速度前馈增益(GE-X00-XV/GUC-X00-EXV)GT_SetKaff设置指定控制轴的加速度前馈增益(GE-X00-XV/GUC-X00-EXV)GT_SetILmt设置指定控制轴的误差积分极限(GE-X00-XV/GUC-X00-EXV)GT_SetMtrLmt设置指定控制轴输出电压饱和极限(GE-X00-XV/GUC-X00-EXV)GT_SetMtrBias设置指定控制轴的零漂电压补偿(GE-X00-XV/GUC-X00-EXV)3.
3.
2例程例程3-1指令返回值处理函数voiderror(shortrtn){switch(rtn){case-1:printf("\a\nCommunicationError!
");break;case0:break;case1:printf("\a\nCommandError!
");break;case2:printf("\a\nRadiusorchordis0!
");break;case3:printf("\a\nLengthis0oroverflow!
");break;case4:printf("\a\nVelocityoraccelerationislessthen0!
");break;case5:printf("\a\nChordisgreaterthandiameter!
");break;case7:printf("\a\nParametererror!
");break;default:第三章控制系统初始化14printf("\a\nErrorCode=%d",rtn);break;}}例程3-2GE-X00-XG/GUC-X00-EXG运动控制器的控制轴初始化voidAxisInitial(shortaxis_num,unsignedshortlimit){//控制轴初始化函数shortrtn;rtn=GT_LmtSns(limit);//设置限位开关触发电平error(rtn);for(shorti=1;i#include"ges.
h"voidCommandHandle(char*command,shorterror){switch(error){case-1:printf("\a\nCommunicationError!
");break;case0:break;case1:printf("\a\nCommandError!
");break;case2:printf("\a\nRadiusorchordis0!
");break;case3:printf("\a\nLengthis0oroverflow!
");break;case4:第三章控制系统初始化17printf("\a\nVelocityoraccelerationislessthen0!
");break;case5:printf("\a\nChordisgreaterthandiameter!
");break;case7:printf("\a\nParametererror!
");break;default:printf("\a\nErrorCode=%d",error);break;}}voidmain(){GT_HookCommand(CommandHandle);//挂接指令处理函数GT_Open(0x300);//打开ISA总线的控制器,//其基地址为0x300.
//打开PCI总线的控制器,//不需要传入参数.
GT_Reset();//复位运动控制器GT_LmtSns(0);//设置限位开关触发电平for(shorti=1;i#include"ges.
h"voiderror(shortrtn){switch(rtn){case-1:printf("\a\nCommunicationError!
");break;case0:break;case1:printf("\a\nCommandError!
");break;case2:printf("\a\nRadiusorchordis0!
");break;第三章控制系统初始化18case3:printf("\a\nLengthis0oroverflow!
");break;case4:printf("\a\nVelocityoraccelerationislessthen0!
");break;case5:printf("\a\nChordisgreaterthandiameter!
");break;case7:printf("\a\nParametererror!
");break;default:printf("\a\nErrorCode=%d",rtn);break;}}voidmain(){shortrtn;rtn=GT_Open(0x300);//打开ISA总线的控制器,其基//地址为0x300.
//打开PCI总线的控制器,则不//需传入参数.
error(rtn);rtn=GT_Reset();error(rtn);rtn=GT_LmtSns(0);//设置限位开关触发电平error(rtn);for(shorti=1;i<=3;++i){rtn=GT_StepPulse(i);//设置轴输出正负脉冲信号error(rtn);rtn=GT_ClrSts(i);//控制轴状态寄存器复位error(rtn);rtn=GT_AxisOn(i);//驱动使能error(rtn);}}第四章运动控制器状态检测19第四章运动控制器状态检测用户可以从运动控制器提供的状态寄存器读取控制轴状态、连续轨迹运动状态(GE-X00-SX/GUC-X00-ESX)和指令状态.
4.
1指令列表表4-1状态检测指令列表指令说明GT_GetSts读取指定控制轴状态.
GT_GetCrdSts读取连续轨迹运动状态(仅用于GE-X00-SX/GUC-X00-ESX).
GT_ClrSts清除指定控制轴状态.
GT_GetMode读取指定控制轴工作模式(仅用于GE-X00-PX/GUC-X00-EPX).
GT_RstSts清除指定控制轴的指定状态位.
4.
2重点说明对于GE-X00-PX/GUC-X00-EPX运动控制器,调用指令GT_GetSts读取控制轴的状态寄存器,控制轴状态寄存器的bit10指示控制轴的运动状态.
对于GE-X00-SX/GUC-X00-ESX运动控制器,调用指令GT_GetCrdSts读取连续轨迹运动状态寄存器,连续轨迹运动状态寄存器的bit0指示连续轨迹运动状态.
对于GE-X00-SX/GUC-X00-ESX运动控制器,不建议调用指令GT_GetSts检测bit10来判断是否有轨迹运动(轨迹运动的准备和预处理需要一定时间,启动轨迹运动时该标志位尚未置1,因此存在一段时间的滞后).
控制轴运动状态标志位和连续轨迹运动状态标志位表示控制器内部加/减速运动规划的状态,而不是控制轴的实际运动状态.
即只表示控制器的加/减速控制是否已完成一次规划任务,规划到目标位置.
控制轴是否真正到达目标位置还取决于实际系统的伺服滞后,稳定性及其它条件.
4.
3控制轴状态寄存器运动控制器为每个控制轴提供一个状态寄存器.
在运动过程中,用户可以通过调用指令GT_GetSts查询这些状态位,全面了解控制轴的运动情况.
GE-X00-SX/GUC-X00-ESX的控制轴状态寄存器为16位,各状态位的定义如表4-2所示;GE-X00-PX/GUC-X00-EPX的控制轴状态寄存器为32位,各状态位定义如表4-3所示.
其中标志位8-15指示控制轴的运行状态信息和轴号,用户第四章运动控制器状态检测20不能对其进行修改,而0-7位表示控制轴不同的事件状态.
这些事件一旦发生,相应的标志位置1,并一直保持.
用户可调用指令GT_ClrSts清除标志位.
表4-2GE-X00-SX/GUC-X00-ESX运动控制器控制轴状态寄存器定义位定义0保留.
1伺服电机驱动器报警标志位.
如果控制轴连接的伺服电机驱动器报警,该位置1.
2保留.
3Index/Home标志位.
在设置位置捕获指令后,控制器检测到要求的Index/Home捕获条件,该位置1.
4控制轴跟随误差超过所设定的位置误差极限时置1.
5正向限位开关触发标志位.
如果正向限位开关触发,该位置1.
6负向限位开关触发标志位.
如果负向限位开关触发,该位置1.
7保留.
8保留.
9电机伺服使能/禁止状态:1表示使能,0表示禁止(默认).
10运动状态标志位.
1表示运动,0表示静止(默认).
11限位开关输入"有效/无效"状态:1表示有效(默认),0表示无效.
1213控制轴号标志(13bit=高位,12bit=低位).
控制轴号的编码如下:Bit13Bit12轴00101210314指示控制轴Home捕获使能:0表示禁止(默认),1表示使能.
15指示控制轴Index捕获使能:0表示禁止(默认),1表示使能.
第四章运动控制器状态检测21表4-3GE-X00-PX/GUC-X00-EPX运动控制器控制轴状态寄存器定义位定义0保留.
1伺服电机驱动器报警标志位.
如果控制轴连接的伺服电机驱动器报警,该位置1.
2保留.
3Index/Home标志位.
在设置位置捕获指令后,控制器检测到要求的Index/Home捕获条件,该位置1.
4控制轴跟随误差超过所设定的位置误差极限时置1.
5正向限位开关触发标志位.
如果正向限位开关触发,该位置1.
6负向限位开关触发标志位.
如果负向限位开关触发,该位置1.
7控制轴指令出错时置1.
8指示控制轴控制模式:0表示开环,1表示闭环(默认).
9电机伺服使能/禁止状态:1表示使能,0表示禁止(默认).
10运动状态标志位.
1表示运动,0表示静止(默认).
11限位开关输入"有效/无效"状态:1表示有效(默认),0表示无效.
12~13保留.
14指示控制轴Home捕获使能:0表示禁止(默认),1表示使能.
15指示控制轴Index捕获使能:0表示禁止(默认),1表示使能.
16~26保留.
27控制轴的编码器异常时置1.
28~30指示控制轴的轴号:Bit30Bi29Bit28轴0001001201030114100510161107111831保留.
4.
4控制轴模式寄存器GE-X00-PX/GUC-X00-EPX运动控制器为每个控制轴提供一个16位的模式寄存器.
用户调用指令GT_GetMode查询运动控制器控制轴的工作模式.
控制轴模式寄存器的定义如下表所示:表4-4GE-X00-PX/GUC-X00-EPX运动控制器控制轴模式寄存器定义位定义0~6保留.
7指示运动出错自动停止是否有效:0表示无效(默认),1表示有效.
8~10保留.
第四章运动控制器状态检测22位定义11~13指示当前轴的运动模式:Bit13Bit12Bit11运动模式000梯形曲线(默认)001速度模式010S曲线14~15保留.
4.
5连续轨迹运动状态寄存器GE-X00-SX/GUC-X00-ESX控制器提供一个寄存器记录连续轨迹运动状态.
该寄存器由运动控制器统一管理.
用户调用指令GT_GetCrdSts读取该寄存器,用户程序不能直接清除或设置该寄存器的状态.
连续轨迹运动状态寄存器定义如下表所示:表4-5连续轨迹运动状态寄存器定义位定义0指示轨迹运动状态:0表示有轨迹运动,1表示无轨迹运动(默认).
1缓冲区是否打开:0表示打开,1表示关闭(默认).
2轨迹运动预处理是否正常:0表示正常(默认),1表示预处理时间不够,运动控制器不能正常工作.
3保留.
4指示一段轨迹运动状态,0表示正在进行轨迹运动,1表示一段轨迹运动完成(默认).
5~6保留.
7指示指令输入状态,0表示缓冲区指令输入或执行状态,1表示立即指令输入状态(默认).
8保留.
9轨迹运动中相关控制轴是否出现异常(如限位开关触发),0表示相关控制轴正常(默认),1表示相关控制轴出现异常,并自动停止连续轨迹运动.
10指示脉冲输出是否出现异常,0表示正常(默认),1表示脉冲输出异常.
11~12保留.
13缓冲区是否空,0表示不空,1表示空(默认).
14~15保留.
第五章点位运动23第五章点位运动GE-X00-PX/GUC-X00-EPX运动控制器可以进行位置控制或速度控制.
在位置控制模式下提供了2种加减速方式:梯形曲线加减速和S曲线加减速.
梯形曲线加减速允许在运动过程当中随时修改目标位置和目标速度;S曲线加减速允许在运动过程当中随时修改目标位置.
在加速度相等的情况下梯形曲线具有较短的加减速时间,而S曲线的运动比较平滑.
应当针对具体应用场合选择相应的加减速模式.
在速度控制模式下,运动控制器按照所设定的加速度加速或减速到目标速度,在运动过程当中可以随时修改目标速度.
5.
1梯形曲线5.
1.
1指令列表表5-1设置梯形曲线指令列表指令说明GT_PrflT设置指定控制轴为梯形曲线GT_SetAcc设置指定控制轴的加速度GT_SetVel设置指定控制轴的目标速度GT_SetPos设置指定控制轴的目标位置GT_Update刷新指定控制轴的运动控制参数梯形曲线参数设置范围参数取值范围单位目标位置-1,073,741,824~1,073,741,823pulse最大速度0~40,957pulse/ms加速度0~102,400pulse/ms25.
1.
2例程控制轴1所对应的伺服电机工作在速度模式下,丝杆导程为10mm,电机每转脉冲数为10000pulse/r(四倍频后),则脉冲当量为1um/pulse.
该轴采用梯形曲线加减速,加速度为4m/s2,目标速度为10m/min,目标位置为200mm.
第五章点位运动24加速度=pulseumsm/1/42=pulseummsum/1)10/(10*4236=2/4mspulse速度=pulseumm/1min/10=pulseummsum/1)10*60/(10*1036=mspulse/166.
7位置=pulseummm/1200=pulseumum/110*2003=pulse200000例程5-1梯形曲线例程voidAxisRunT(unsignedshortaxis,longpos,doublevel,doubleacc){GT_PrflT(axis);//设置为梯形曲线加减速GT_SetPos(axis,pos);//设置控制轴目标位置GT_SetVel(axis,vel);//设置控制轴速度GT_SetAcc(axis,acc);//设置控制轴加速度GT_Update(axis);//刷新控制轴参数}voidCommandHandle(char*command,shorterror){switch(error){case-1:printf("\a\nCommunicationError!
");break;case0:break;case1:printf("\a\nCommandError!
");break;case7:printf("\a\nParameterError!
");break;default:printf("\a\nErrorCode=%d",error);break;}}voidmain(){GT_HookCommand(CommandHandle);//挂接错误处理函数GT_Open(0x300)//打开运动控制器GT_Reset();//复位运动控制器第五章点位运动25AxisInitial(1,0,10);//控制轴初始化,引用例程3-4AxisRunT(1,200000,166.
7,4);//控制轴按照梯形曲线运动}5.
1.
3重点说明梯形曲线加减速的"速度-时间"曲线如图所示:梯形曲线的运动规律可以划分为3个阶段:1.
加速段:速度按照设定的加速度从0加速到目标速度;2.
匀速段:保持目速度,直至到达减速点;3.
减速段:速度按照设定的加速度从目标速度减速到0.
梯形曲线可以在运动过程当中修改目标位置和目标速度.
如果在运动过程中增大目标位置,运动控制器根据新的目标位置重新计算减速点,到达新的减速点后开始减速.
如果在运动过程当中减小目标位置,运动控制器根据新的目标位置重新计算减速点.
如果当前位置已经超越新的减速点,运动控制器首先减速到0,然后反向运动到新的目标位置.
如果当前位置没有超越新的减速点,运动控制器到达新的减速点后开始减速.
时间速度132图5-1梯形曲线速度曲线第五章点位运动26时间速度图5-3梯形曲线在运动过程中减小目标位置反向运动时间速度增大目标位置以后的速度改变目标位置以前的速度图5-2梯形曲线在运动过程中增大目标位置减小目标位置以后的速度改变目标位置以前的速度时间速度图5-4梯形曲线在运动过程中增大目标速度增大目标速度以后的速度改变目标速度以前的速度第五章点位运动275.
2S曲线5.
2.
1指令列表表5-2设置S曲线指令列表指令说明GT_PrflS设置指定控制轴为S曲线GT_SetMAcc设置指定控制轴的最大加速度GT_SetJerk设置指定控制轴的加加速度GT_SetVel设置指定控制轴的目标速度GT_SetPos设置指定控制轴的目标位置GT_Update更新指定控制轴的运动控制参数S曲线参数设置范围参数取值范围单位目标位置-1,073,741,824~1,073,741,823pulse最大速度0~40,957pulse/ms加速度0~102,400pulse/ms2加加速度0~256,000pulse/ms35.
2.
2例程控制轴1所对应的伺服电机工作在速度模式,丝杆导程为10mm,电机每转脉冲数为10000pulse/r(四倍频后),则脉冲当量为1um/pulse.
该轴采用S曲线加减速,加加速度为1m/s3,加速度为4m/s2,目标速度为10m/min,目标位置为200mm.
加加速度=pulseumsm/1/13=pulseummsum/1)10/(10336=3/001.
0mspulse加速度=pulseumsm/1/42=pulseummsum/1)10/(10*4236=2/4mspulse速度=pulseumm/1min/10=pulseummsum/1)10*60/(10*1036=mspulse/166.
7第五章点位运动28位置=pulseummm/1200=pulseumum/110*2003=pulse200000例程5-2S曲线例程voidAxisRunS(unsignedshortaxis,longpos,doublevel,doublemacc,doublejerk){GT_PrflS(axis);//设置为S曲线加减速GT_SetPos(axis,pos);//设置控制轴目标位置GT_SetVel(axis,vel);//设置控制轴速度GT_SetMAcc(axis,macc);//设置控制轴加速度GT_SetJerk(axis,jerk);//设置控制轴加加速度GT_Update(axis);//刷新控制轴参数}voidCommandHandle(char*command,shorterror){switch(error){case-1:printf("\a\nCommunicationError!
");break;case0:break;case1:printf("\a\nCommandError!
");break;case7:printf("\a\nParameterError!
");break;default:printf("\a\nErrorCode=%d",error);break;}}voidmain(){GT_HookCommand(CommandHandle);//挂接错误处理函数GT_Open(0x300)//打开运动控制器GT_Reset();//复位运动控制器AxisInitial(1,0,10);//控制轴初始化,引用例程3-4AxisRunS(1,200000,166.
7,4,0.
001);}第五章点位运动295.
2.
3重点说明S曲线加减速的"速度-时间"曲线如下所示:S曲线的运动规律可以划分为7个阶段:1.
变加速段:加速度按照设定的加加速度从0递增到最大加速度,速度按照加速度递增;2.
匀加速段:加速度保持最大加速度不变,速度按照最大加速度递增;3.
变加速段:加速度按照设定的加加速度从最大加速度递减到0,速度按照加速度递增;4.
匀速段:加速度为0,速度保持目标速度不变;5.
变减速段:加速度按照设定的加加速度从0递增到最大加速度,速度按照加速度递减;6.
匀减速段:加速度保持最大加速度不变,速度按照最大加速度递减;7.
变减速段:加速度按照设定的加加速度从最大加速度递减到0,速度按照加速度递减.
S曲线可以在运动过程当中修改目标位置.
如果在运动过程当中增大目标位置,运动控制器根据新的目标位置重新计算减速点,到达新的减速点后才开始减速.
如果在运动过程当中减小目标位置,运动控制器根据新的目标位置重新计算减速点.
如果当前位置已经超越新的减速点,运动控制器首先减速到0,然后反向运动到新的目标位置.
如果当前位置没有超越新的减速点,运动控制器到达新的减速点后开始减速.
时间速度1234567图5-5S曲线速度曲线第五章点位运动305.
3速度控制5.
3.
1指令列表表5-3设置速度控制指令列表指令说明GT_PrflV设置指定控制轴为速度控制模式GT_SetAcc设置指定控制轴的加速度GT_SetVel设置指定控制轴的目标速度GT_Update更新指定控制轴的运动控制参数时间速度1234567图5-6S曲线在运动过程中增大目标位置时间速度12345671357图5-7S曲线在运动过程中减小目标位置增大目标位置以后的速度曲线改变目标位置以前的速度曲线减小目标位置以后的速度曲线改变目标位置以前的速度曲线第五章点位运动31参数设置范围参数取值范围单位最大速度-40,958~40,957pulse/ms加速度0~102,400pulse/ms25.
3.
2例程控制轴1所对应的伺服电机工作在速度模式,丝杆导程为10mm,电机每转脉冲数为10000pulse/r(四倍频后),则脉冲当量为1um/pulse.
该轴采用速度控制模式,加速度为4m/s2,目标速度为10m/min,脉冲当量为1um/pulse.
加速度=pulseumsm/1/42=pulseummsum/1)10/(10*4236=2/4mspulse速度=pulseumm/1min/10=pulseummsum/1)10*60/(10*1036=mspulse/166.
7例程5-3速度控制例程voidAxisRunV(unsignedshortaxis,doublevel,doubleacc){GT_PrflV(axis);//设置为速度控制模式GT_SetVel(axis,vel);//设置控制轴速度GT_SetAcc(axis,acc);//设置控制轴加速度GT_Update(axis);//刷新控制轴参数}voidCommandHandle(char*command,shorterror){switch(error){case-1:printf("\a\nCommunicationError!
");break;case0:break;case1:printf("\a\nCommandError!
");break;case7:printf("\a\nParameterError!
");break;default:printf("\a\nErrorCode=%d",error);break;第五章点位运动32}}voidmain(){GT_HookCommand(CommandHandle);//挂接错误处理函数GT_Open(0x300)//打开运动控制器GT_Reset();//复位运动控制器AxisInitial(1,0,10);//控制轴初始化,引用例程3-4AxisRunV(1,166.
7,4);}5.
3.
3重点说明在速度控制模式下,控制轴以设定的加速度加速到目标速度以后,一直保持目标速度.
在运动过程当中可以随时改变目标速度.
时间速度图5-8速度控制模式下改变目标速度目标速度1目标速度2目标速度3第五章点位运动335.
4参数刷新机制GE-X00-PX运动控制器的指令按照生效方式分为2类:立即生效指令和刷新生效指令.
立即生效指令在指令发送成功以后生效.
刷新生效指令在调用指令GT_Update或GT_MltiUpdt之后生效.
指令GT_Update可实现控制轴多个参数的同时更新.
指令GT_MltiUpdt可实现多个控制轴多个参数的同时更新.
表5-4刷新生效指令列表指令说明GT_SetPos设置指定控制轴的目标位置GT_SetVel设置指定控制轴的目标速度GT_SetAcc设置指定控制轴的加速度GT_SetMAcc设置指定控制轴的最大加速度,仅用于S曲线GT_SetJerk设置指定控制轴的加加速度,仅用于S曲线GT_SetKp设置指定控制轴的比例增益GT_SetKi设置指定控制轴的积分增益GT_SetKd设置指定控制轴的微分增益GT_SetKvff设置指定控制轴的速度前馈GT_SetKaff设置指定控制轴的加速度前馈GT_SetMtrBias设置指定控制轴的零漂电压补偿GT_SetMtrLmt设置指定控制轴的输出电压饱和极限GT_SetILmt设置指定控制轴的误差积分饱和极限GT_SetPosErr设置指定控制轴的跟随误差极限5.
5停止控制轴的运动5.
5.
1指令列表表5-5停止控制轴运动指令列表指令说明GT_SmthStp平滑停止控制轴GT_AbptStp急停控制轴第五章点位运动345.
5.
2重点说明如果需要在运动过程当中停止控制轴,可以调用指令GT_SmthStp或GT_AbptStp.
GT_SmthStp是立即指令,能够平滑停止控制轴的运动.
调用指令GT_SmthStp时,运动控制器将目标速度设置为0,并根据用户所设定的加速度平滑减速到0.
当控制轴平滑停止运动完成之后,用户才能重新设置控制轴的运动参数继续运动.
指令GT_SmthStp的效果如下所示:GT_AbptStp是立即指令,能够紧急停止控制轴的运动.
调用GT_AbptStp指令时,无论控制轴处于何种加减速模式,都将立即减速到0.
指令GT_AbptStp的效果如下所示:时间速度梯形曲线平滑停止S曲线平滑停止调用GT_SmthStp图5-9平滑停止速度曲线时间速度急停图5-10急停速度曲线第六章连续轨迹运动35第六章连续轨迹运动GE-X00-SX/GUC-X00-ESX运动控制器(GE连续轨迹运动控制器)可以实现直线插补、圆弧插补,通过前瞻预处理能够实现小线段高速平滑的连续轨迹运动.
6.
1进给速度、加速度设置6.
1.
1指令列表表6-1设置轨迹运动进给速度、加速度指令列表指令说明GT_SetSynVel设置轨迹运动的进给速度GT_SetSynAcc设置轨迹运动的加速度GT_SetStrtVel设置轨迹运动的启动速度GT_SetStpAcc设置轨迹运动的急停加速度GT_SetMaxVel设置轨迹运动的最大速度6.
1.
2例程例程6-1设置轨迹运动的进给速度、加速度该程序示例一个轨迹运动的进给速度、加速度的设置以及单位说明:丝杆导程5mm,电机每转脉冲数为10000pulse(四倍频后).
进给速度(WorkVel)为3m/min,进给加速度(WorkAcc)为0.
9m/s2,启动速度(StartVel)为300pulse/s,最大速度(MaxVel)为15m/min,急停加速度(StopAcc)为3m/s2.
mspulsemmpulsemsmmWorkVel/10051000010*6030003223/8.
1510000)10(900mspulsemmpulsemsmmWorkAccmspulsemspulseStartVel/3.
0103003mspulsemmpulsemsmmMaxVel/50051000010*60150003第六章连续轨迹运动36223/6510000)10(3000mspulsemmpulsemsmmStopAccvoidMotionInitial(){shortrtn;doubleStartVel,MaxVel,StopAcc;StartVel=0.
3;//启动速度为300HZMaxVel=500;//最大速度为15m/minStopAcc=6;//急停加速度为3m/s2rtn=GT_SetStrtVel(StartVel);//设置系统启动速度error(rtn);rtn=GT_SetMaxVel(MaxVel);//设置系统最大速度error(rtn);rtn=GT_SetStpAcc(StopAcc);//设置系统急停加速度error(rtn);}voidmain(){shortrtn;doubleWorkVel,WorkAcc;AxisInitial(3,0);//参考例程3-2~3-4MotionInitial();WorkVel=100;//进给速度为3m/minWorkAcc=1.
8;//进给加速度为0.
9m/s2rtn=GT_SetSynAcc(WorkAcc);//设置进给加速度error(rtn);rtn=GT_SetSynVel(WorkVel);//设置进给速度error(rtn);}6.
1.
3重点说明6.
1.
3.
1GT_SetStrtVel该指令设置轨迹运动的启动速度,单位为pulse/ms.
一般在对运动控制器进行参数初始化时调用该指令,该指令调用后立即生效.
在运动过程中可以改变启动速度,但会影响运动控制器的速度规划,建议用户只在初始化时调用该指令.
对于步进电机,总存在一个起跳频率,步进电机可以直接以起跳频率为启第六章连续轨迹运动37动速度(不必是零速)开始加速到进给速度,可减少加速时间,提高加工效率.
运动控制器的默认起跳速度为:500HZ.
6.
1.
3.
2GT_SetMaxVel该指令设置轨迹运动的最大速度,单位为pulse/ms.
一般在对运动控制器进行参数初始化时调用该指令,该指令在调用后立即生效.
在运动过程中可以改变最大速度,但会影响运动控制器的速度规划,建议用户只在初始化时调用该指令.
根据步进电机的矩频特性,运行频率高于某个频率时,输出力矩下降非常快,可能出现带动不了负载且电机堵转的情况.
建议用户在初始化时根据机床负载和电机工作情况调用指令GT_SetMaxVel设置最大速度.
GE-X00-SX-PCI(ISA)运动控制器的默认最大速度为256KHZ,GUC-X00-ESX运动控制器的默认最大速度为1MHZ.
6.
3.
1.
3GT_SetSynVel该指令设置轨迹运动的进给速度,单位为pulse/ms.
该指令影响此后所有直线插补和圆弧插补指令的进给速度,直到再次调用该指令设置新的进给速度为止.
6.
3.
1.
4GT_SetSynAcc该指令设置轨迹运动的进给加速度,单位为pulse/ms2.
该指令只能在立即指令工作方式下调用,对于缓冲区中的连续轨迹运动,该指令无效.
6.
3.
1.
5GT_SetStpAcc该指令设置轨迹运动的急停加速度,单位为pulse/ms2.
在运动过程中,系统出现限位触发、伺服报警等异常情况时,GE-X00-SX/GUC-X00-ESX将按照该加速度实现减速停止,防止从高速立即停止下来造成对电机和系统的损害.
一般在对运动控制器进行参数初始化时调用该指令.
用户在设置急停加速度时应注意使急停加速度大于进给加速度,并保证当系统运行在最高速度时急停,不会对系统和电机产生过度损伤.
6.
2轨迹运动的轨迹描述6.
2.
1指令列表表6-2轨迹运动的轨迹描述指令列表指令说明GT_LnXYG0两维直线插补(含完整的加减速速度规划曲线)GT_LnXYZG0三维直线插补(含完整的加减速速度规划曲线)GT_LnXYZAG0四维直线插补(含完整的加减速速度规划曲线)第六章连续轨迹运动38指令说明GT_LnXY两维直线插补GT_LnXYZ三维直线插补GT_LnXYZA四维直线插补GT_ArcXYXY平面圆弧插补(以圆心位置和角度为输入参数)GT_ArcXYPXY平面圆弧插补(以终点位置和半径为输入参数)GT_ArcYZYZ平面圆弧插补(以圆心位置和角度为输入参数)GT_ArcYZPYZ平面圆弧插补(以终点位置和半径为输入参数)GT_ArcZXZX平面圆弧插补(以圆心位置和角度为输入参数)GT_ArcZXPZX平面圆弧插补(以终点位置和半径为输入参数)6.
2.
2例程例程6-2单段轨迹运动的实现本例在例程6-1的基础上调用轨迹描述指令,实现立即执行的单段轨迹运动.
voidmain(){shortrtn;doubleWorkVel,WorkAcc;AxisInitial(3,0);//参考例程3-2~3-4MotionInitial();//参考例程6-1WorkVel=100;//进给速度为3m/minWorkAcc=1.
8;//进给加速度为0.
9m/s2rtn=GT_SetSynAcc(WorkAcc);//设置进给加速度error(rtn);rtn=GT_SetSynVel(WorkVel);//设置进给速度error(rtn);rtn=GT_LnXY(10,10);//两轴直线插补从当前点error(rtn);//运动到坐标(10,10)}6.
2.
3重点说明GE-X00-SX/GUC-X00-ESX运动控制器提供的轨迹描述指令都是在正交坐标系中描述的.
轨迹描述指令的长度单位为pulse,要求用户在系统机械设计方面确保各控制轴的脉冲当量一致,以保证轨迹描述的正确和速度的一致性.
第六章连续轨迹运动39GT_LnXYG0/GT_LnXYZG0/GT_LnXYZAG0和GT_LnXY/GT_LnXYZ/GT_LnXYZA直线插补指令的区别在于:1.
用户若调用GT_LnXYG0、GT_LnXYZG0、GT_LnXYZAG0指令,产生一个完整的加减速速度规划过程,即以设定加速度,从启动速度向目标速度加速,到达减速点时,以加速度减速到启动速度后停止;2.
用户若调用GT_LnXY、GT_LnXYZ、GT_LnXYZA指令,且运动控制器处于缓冲区连续轨迹运动方式时,运动控制器根据前后轨迹描述指令的进给速度、终点速度决定当前轨迹的速度规划曲线.
为正确描述圆弧插补运动,将圆弧插补指令描述的运动轨迹放在正交坐标系平面内,圆弧插补的旋转正方向按照右手螺旋定则定义为:从坐标平面的"上方"(即垂直于坐标平面的第三个轴的正方向)看,逆时针方向为正(图6-1).
可以这样简单记忆:将右手拇指前伸,其余四指握拳,拇指指向第三个轴的正方向,其余四指的方向即为旋转的正方向.
6.
3多段连续轨迹运动的基本实现例程6-2给出的是在立即运动指令工作方式下,调用相关指令产生立即轨迹运动的范例.
在这种工作方式下,执行了最后一行rtn=GT_LnXY(10,10)后,若运动控制器连接的外部设备(如机床)的工作状态正常(无限位触发、伺服报警等),将产生一个立即的轨迹运动,从当前点运动到(10pulse,10pulse)位置.
当运动控制器处于立即指令工作方式且轨迹运动未完成时(GT_GetCrdSts返回状态的BIT0为0),运动控制器不接受新的轨迹描述指令.
如果用户希望实现多段连续轨迹运动,必须启动缓冲区指令输入和缓冲区指令执行方式.
为了方便地实现多段连续轨迹运动,运动控制器提供一个大小为8k字的缓冲区.
用户可先将部分轨迹描述或参数指令存放在该缓冲区中(以缓冲区满为XYZOXOY平面YZXOYOZ平面YZXOZOX平面图6-1圆弧插补正方向第六章连续轨迹运动40限),然后发出执行指令.
在运动控制器执行缓冲区内轨迹描述指令的同时,用户可继续向这个缓冲区内下载轨迹描述或参数指令.
运动控制器通过对缓冲区内的多段轨迹描述指令的前瞻预处理,能够获得良好的速度规划特性.
下面分两部分讲述利用缓冲区实现连续轨迹运动的方法:将轨迹描述指令和参数指令输入缓冲区;执行缓冲区连续轨迹运动.
6.
3.
1将轨迹描述指令和参数指令输入缓冲区6.
3.
1.
1指令列表表6-3缓冲区输入管理指令列表指令说明GT_StrtList打开并清空缓冲区GT_MvXY定位运动起点位置(二维),设置进给速度和加速度GT_MvXYZ定位运动起点位置(三维),设置进给速度和加速度GT_MvXYZA定位运动起点位置(四维),设置进给速度和加速度GT_EndList关闭缓冲区GT_AddList再次打开缓冲区可输入缓冲区的轨迹描述指令和参数指令,见表6-4:表6-4可输入缓冲区的指令列表指令说明GT_SetSynVel设置进给速度GT_LnXYG0两维直线插补(含完整的加减速速度规划曲线)GT_LnXYZG0三维直线插补(含完整的加减速速度规划曲线)GT_LnXYZAG0四维直线插补(含完整的加减速速度规划曲线)GT_LnXY两维直线插补GT_LnXYZ三维直线插补GT_LnXYZA四维直线插补GT_ArcXYXY平面圆弧插补(以圆心位置和角度为输入参数)GT_ArcXYPXY平面圆弧插补(以终点位置和半径为输入参数)GT_ArcYZYZ平面圆弧插补(以圆心位置和角度为输入参数)GT_ArcYZPYZ平面圆弧插补(以终点位置和半径为输入参数)GT_ArcZXZX平面圆弧插补(以圆心位置和角度为输入参数)GT_ArcZXPZX平面圆弧插补(以终点位置和半径为输入参数)GT_SetDccVel设置轨迹段的终点速度第六章连续轨迹运动416.
3.
1.
2重点说明打开并清空缓冲区GT_StrtList:打开并清空缓冲区.
启动缓冲区连续轨迹运动之前,必须先调用指令GT_StrtList进入缓冲区指令输入状态.
该指令在缓冲区关闭且无缓冲区连续轨迹运动时有效.
定位运动起点位置,设置进给速度和加速度运动控制器规定,打开并清空缓冲区(GT_StrtList)后,必须紧接定位运动起点位置指令(GT_MvXY、GT_MvXYZ、GT_MvXYZA).
当用户调用指令GT_StrtMtn启动缓冲区连续轨迹运动后,运动控制器将从当前位置按照直线插补的方式,以定位指令中给定的加速度和速度,运动到指定的起点位置,并降速到0,然后顺序执行缓冲区中的轨迹描述指令.
调用GT_MvXY、GT_MvXYZ或GT_MvXYZA设定的进给速度和加速度参数,作为此后输入缓冲区的轨迹描述指令的进给速度和加速度,用户可以调用指令GT_SetSynVel修改进给速度,但加速度将保持为定位指令中的设定值.
关闭缓冲区GT_EndList:关闭缓冲区.
该指令在缓冲区处于打开状态时有效.
再次打开缓冲区GT_AddList:打开已经被关闭的缓冲区,允许用户向缓冲区增加新的缓冲区指令.
当增加的连续轨迹指令发送完毕后,可再次调用指令GT_EndList关闭缓冲区.
该指令在缓冲区处于关闭状态时有效.
用户可多次调用指令GT_AddList打开被关闭的缓冲区.
连续轨迹运动指令存入缓冲区的注意事项用户能够在调用指令GT_StrtList之后的任意时刻,调用指令GT_EndList结束缓冲区指令输入状态;此后,可以调用指令GT_AddList继续缓冲区指令输入状态,又可再次调用指令GT_EndList结束缓冲区指令输入状态.
GT_AddList和GT_EndList构成的组合,可以使用任意多次.
当整个运动轨迹描述完成时,一定要调用GT_EndList指令通知运动控制器运动轨迹描述完成.
控制器对缓冲区中轨迹运动指令的处理机制用户可以不断向缓冲区中添加轨迹描述或参数指令,直到缓冲区满.
缓冲区满时,运动控制器拒绝接收用户输入的轨迹描述指令和参数指令,并返回缓冲区满的信息.
第六章连续轨迹运动42启动缓冲区连续轨迹运动后,随着轨迹描述指令的执行完成,缓冲区会有新的空间,用户可以继续发送轨迹描述或参数指令.
6.
3.
2启动、停止缓冲区连续轨迹运动6.
3.
2.
1指令列表表6-5启动、停止指令列表指令说明GT_StrtMtn启动缓冲区连续轨迹运动GT_StpMtn平滑停止轨迹运动GT_EstpMtn紧急停止轨迹运动GT_RestoreMtn暂停后恢复缓冲区连续轨迹运动6.
3.
2.
2例程例程6-3缓冲区连续轨迹运动的基本实现例6-3实现三段连续轨迹运动,用户可参考实现多段的连续轨迹运动.
voidmain(){shortrtn;AxisInitial(3,0);//参考例程3-2~3-4rtn=GT_StrtList();error(rtn);rtn=GT_MvXYZ(0,0,0,100,1.
8);error(rtn);//定位运动起点坐标//(0,0,0),设置//进给速度为3m/min//加速度为0.
9m/s2rtn=GT_LnXY(10,10);//运动到坐标(10,10)error(rtn);rtn=GT_ArcXY(0,0,123);error(rtn);//以坐标(0,0)为圆心//以坐标(10,10)为起点//正向123度圆弧rtn=GT_LnXYZ(0,0,10);//运动到坐标(0,0,10)error(rtn);rtn=GT_EndList();//关闭缓冲区error(rtn);rtn=GT_StrtMtn();//启动缓冲区第六章连续轨迹运动43//连续轨迹运动error(rtn);}6.
3.
2.
3重点说明启动缓冲区连续轨迹运动用户调用指令GT_StrtMtn成功后,缓冲区中的指令被顺序执行.
启动缓冲区连续轨迹运动前,用户应确保运动控制器的缓冲区内有轨迹描述指令.
启动缓冲区连续轨迹运动后,运动控制器将用户传送的轨迹描述或参数指令放入缓冲区的同时,执行缓冲区连续轨迹运动,直到用户调用指令GT_EndList关闭缓冲区指令输入方式.
中断缓冲区中指令的执行调用指令GT_StpMtn后,运动控制器按照设定的加速度平滑停止轨迹运动;调用指令GT_EStpMtn后,运动控制器按照急停加速度停止轨迹运动.
调用指令GT_StpMtn(GT_EStpMtn)成功后,缓冲区被立即关闭,相当于调用了指令GT_EndList.
当缓冲区连续轨迹运动规划停止后,运动控制器记录当前位置信息和当前段段号(又称断点信息),以确保恢复缓冲区轨迹运动时,能够准确地回到断点位置继续缓冲区连续轨迹运动.
当轨迹运动停止且缓冲区没有被再次打开,用户调用的轨迹描述指令将被运动控制器立即执行.
GT_StpMtn和GT_EStpMtn指令也可中断正在进行的立即轨迹运动,但不保留立即轨迹运动的断点信息,即立即轨迹运动被中断后无法恢复,必须重新调用轨迹描述指令启动立即轨迹运动.
恢复缓冲区中指令的执行当调用GT_StpMtn(GT_EStpMtn)使缓冲区连续轨迹运动停止(调用GT_GetCrdSts获取的状态信息中的BIT0为1),用户可以调用GT_RestoreMtn指令,再次启动缓冲区连续轨迹运动.
这时运动控制器从当前坐标位置以直线插补方式运动到断点位置处,并减速到启动速度,然后继续缓冲区连续轨迹运动.
调用GT_RestoreMtn指令前,用户必须确保曾经调用GT_StrtMtn启动了缓冲区的运行,否则可能引起错误的运动.
暂停后恢复缓冲区连续轨迹运动必须调用GT_RestoreMtn指令,若调用GT_StrtMtn来恢复运动,可能会引起错误的运动.
第六章连续轨迹运动446.
4小线段连续轨迹运动的速度规划策略连续轨迹运动的进给速度采用梯形曲线加减速策略,定位指令中的加速度参数设置了连续轨迹运动的进给加速度,指令GT_SetSynVel可改变进给速度.
如果设定的进给速度超过了用户设定的最大速度,取最大速度为进给速度.
为解决速度和精度的矛盾,GE-X00-SX/GUC-X00-ESX运动控制器提供基于前瞻预处理的速度规划策略.
用户通过设定本身机床的工艺特征参数(脉冲当量、进给速度、最大加速度、允许拐弯时间等),结合GE-X00-SX/GUC-X00-ESX运动控制器的前瞻预处理功能模块,可实现小线段连续轨迹加工.
运动控制器将实现速度规划预处理功能的指令称为前瞻预处理指令.
图6-2所示为使用前瞻预处理功能模块来规划速度,在小线段加工过程中同样精度下,对速度的显著提升:6.
4.
1前瞻预处理指令列表表6-6前瞻预处理指令列表指令说明GT_InitLookAhead初始化前瞻预处理参数使用前瞻预处理功能模不使用前瞻预处理功能模块图6-2使用和不使用前瞻预处理功能模块的速度曲线对比图第六章连续轨迹运动45GT_AddLookData将轨迹段信息添加到预处理缓冲区GT_CalVel计算轨迹段终点速度GT_CalVelEx计算轨迹段目标速度和终点速度GT_SetDccVel设置轨迹段终点速度6.
4.
2重点说明6.
4.
2.
1初始化前瞻预处理参数GT_InitLookAhead:设置前瞻预处理功能模块的初始化参数表6-7前瞻预处理初始化参数列表参数名称参数意义说明T时间常数T越大,计算出来的终点速度越大,但会降低加工精度;反之,提高了加工的精度,但计算出的终点速度偏低acc_max系统能承受的最大加速度(单位:mm/s2)根据不同的机械系统和电机驱动器取值不同,经验范围:100~10000mm/s2acc_run系统加速度(单位:mm/s2)设定加速度一定小于最大加速度vel_run系统进给速度(单位:mm/s)参数T和acc_max会影响拐点处的位置误差:观察图6-3,当T或acc_max参数设置较大时,降速较少,但位置误差E2较大;若T和acc_max参数设置合理,可以保证位置误差E进入系统能接受的精度范围.
6.
4.
2.
2传送轨迹特征数据进入预处理缓冲区GT_AddLookData:将轨迹特征数据加入预处理缓冲区EE2图6-3不同T和Acc_max参数的位置误差比较第六章连续轨迹运动46表6-8传递轨迹特征数据列表参数名称参数意义说明0G00直线1G01直线2G02顺圆弧Code曲线类型3G03逆圆弧17XY平面18ZX平面PlaneGroup平面代码19YZ平面R圆弧半径若当前段不是圆弧,设为0x,y,z坐标终点位置单位:mmF当前段进给速度允许每段有不同的进给速度(单位:mm/s)cx,cy圆心坐标若当前段不是圆弧,设为06.
4.
2.
3计算终点速度GT_Calvel:计算预处理当前轨迹段的终点速度;调用该指令的返回值若为0表示预处理正在进行,若为1表示预处理结束.
GT_CalvelEx:计算预处理当前轨迹段的目标速度和终点速度;调用该指令的返回值若为0表示预处理正在进行,若为1表示预处理结束.
6.
5连续轨迹运动中的速度倍率6.
5.
1指令列表表6-8速度倍率指令列表指令说明GT_OverrideG0修改GT_LnXYG0、GT_LnXYZG0、GT_LnXYZAG0指令以及定位指令的速度倍率GT_Override修改除GT_LnXYG0、GT_LnXYZG0、GT_LnXYZAG0指令以及定位指令以外的轨迹描述指令的速度倍率6.
5.
2重点说明用户可调用GT_Override、GT_OverrideG0指令修改当前的速度倍率,达到在线修改当前轨迹运动的进给速度的目的,同时也改变了以后所有轨迹运动的进给速度.
一旦成功修改速度倍率,该倍率值将一直有效,直到再次调用GT_Override或GT_OverrideG0指令修改速度倍率.
运动控制器默认的速度倍率均为100%.
第六章连续轨迹运动47一般来说速度倍率的可调整范围在0%~200%之间,如果用户调整速度倍率使进给速度大于系统初始化设置的最大速度,运动控制器取最大速度为进给速度.
6.
6连续轨迹运动的机床坐标系和加工坐标系6.
6.
1指令说明表6-9坐标偏移指令指令说明GT_MapCnt设置指定控制轴坐标偏移量6.
6.
2重点说明机床坐标系是以机床零点为原点的坐标系;加工坐标系是相对于加工原点坐标系.
GE-X00-SX/GUC-X00-ESX运动控制器上电时默认两个坐标系重合.
当用户需要建立加工坐标系时,可调用GT_MapCnt指令设置指定控制轴的坐标偏移量.
6.
7连续轨迹运动的运动信息反馈6.
7.
1指令列表表6-10连续轨迹运动信息反馈指令列表指令说明GT_GetPrfPnt读取所有控制轴的规划位置GT_GetAtlPos读取指定控制轴的实际位置GT_GetSegPnt读取当前轨迹段的所有控制轴终点目标位置GT_GetPrfVel读取规划速度GT_GetCrdSts读取连续轨迹运动状态GT_GetSts读取指定控制轴限位、报警、原点捕获信号状态GT_GetMtnNm读取当前轨迹段编号GT_GetBrkPnt读取所有控制轴的断点位置6.
7.
2重点说明6.
7.
2.
1读取规划位置和实际位置GT_GetPrfPnt:调用该指令读取连续轨迹运动中所有控制轴的规划位置.
GT_GetAtlPos:调用该指令读取指定控制轴的实际位置.
第六章连续轨迹运动48GE-X00-SX/GUC-X00-ESX运动控制器处于脉冲输出方式时,系统处于开环控制,默认关闭编码器.
用户可以调用GT_EncOn指令打开指定控制轴的编码器,调用GT_GetAtlPos读取编码器的实际位置值.
若关闭编码器,调用GT_GetAtlPos读取的位置信息为规划位置值.
6.
7.
2.
2轨迹段号GT_GetMtnNm:该指令返回当前轨迹段编号.
轨迹段编号规则1.
启动缓冲区中指令执行后,轨迹段编号随输入缓冲区段数递增,GT_MvXY、GT_MvXYZ或GT_MvXYZA定位指令不计入段号(段号为0);2.
段号由1开始累加,当计数到最大值32768时段号溢出并从1开始重新累计;3.
当缓冲区内的轨迹段已经执行完毕,但用户又没有执行GT_EndList指令关闭缓冲区,连续轨迹运动状态字的bit0和bit1为0,轨迹段号保持在当前段;4.
用户若调用GT_StpMtn或GT_EStpMtn指令中断缓冲区连续轨迹运动,连续轨迹运动状态字的Bit1和Bit0为1,段号保持当前值,直到恢复缓冲区连续轨迹运动;5.
当前段运动结束时,若没有连续轨迹运动段,段号保持当前值;6.
调用GT_StrtList指令,段号清零.
6.
7.
2.
3连续轨迹运动状态和其它状态GT_GetCrdSts:调用该指令读取连续轨迹运动状态,其标志位定义见表6-11.
表6-11连续轨迹运动状态定义位定义0指示轨迹运动状态:0表示有轨迹运动,1表示无轨迹运动(默认).
1缓冲区是否打开:0表示打开,1表示关闭(默认).
2轨迹运动预处理是否正常:0表示正常(默认),1表示预处理时间不够,运动控制器不能正常工作.
3保留.
4指示一段轨迹运动状态,0表示正在进行轨迹运动,1表示一段轨迹运动完成(默认).
5~6保留.
7指示指令输入状态,0表示缓冲区指令输入或执行状态,1表第六章连续轨迹运动49位定义示立即指令输入状态(默认).
8保留.
9轨迹运动中相关控制轴是否出现异常(如限位开关触发),0表示相关控制轴正常(默认),1表示相关控制轴出现异常,并自动停止连续轨迹运动.
10指示脉冲输出是否出现异常,0表示正常(默认),1表示脉冲输出异常.
11~12保留.
13缓冲区是否空,0表示不空,1表示空(默认).
14~15保留.
GT_GetSts:调用该指令获取指定控制轴的外部信号状态.
正在进行连续轨迹运动的控制轴出现限位、伺服报警等异常状态时,GE-X00-SX/GUC-X00-ESX运动控制器自动停止轨迹运动,并将控制轴状态相应标志位置位,便于用户检测后进行相应处理.
第七章Home/Index高速捕获50第七章Home/Index高速捕获7.
1指令列表表7-1Home/Index捕获指令列表指令说明GT_CaptHome将指定控制轴设置为Home捕获GT_CaptIndex将指定控制轴设置为Index捕获GT_GetCapt读取指定控制轴的捕获位置7.
2Home回原点(1)工作台向原点(Home)开关方向运动,启动Home捕获;(2)当Home信号产生时,平滑停止工作台;(3)调用指令GT_GetCapt读取Home信号触发时工作台的实际位置,然后反向运动回到该位置;(4)继续向前运动一段指定距离,离开Home开关,等工作台停稳以后调用指令GT_ZeroPos将工作台位置清零,建立机床坐标系.
Home开关工作台第七章Home/Index高速捕获517.
3Home+Index回原点(1)工作台向原点(Home)开关方向运动,启动Home捕获;(2)当Home信号产生时,平滑停止工作台;(3)调用指令GT_GetCapt读取Home信号触发时工作台的实际位置,然后反向运动回到该位置;(4)启动Index捕获,继续运动一圈多一点,当Index信号产生时,平滑停止工作台;(5)调用指令GT_GetCapt读取Index信号触发时工作台的实际位置,然后反向运动到该位置;(6)反向运动一段指定距离,消除丝杠的反向间隙,等工作台停稳以后调用指令GT_ZeroPos将工作台位置清零,建立机床坐标系.
Home开关工作台第七章Home/Index高速捕获527.
4例程例程7-1Home回原点例程(以GE-300-SG/GUC-300-ESG运动控制器为例)voidCommandHandle(char*command,shorterror){switch(error){case-1:printf("\a\nCommunicationError!
");break;case0:break;case1:printf("\a\nCommandError!
");break;case2:printf("\a\nRadiusorchordis0!
");break;case3:printf("\a\nLengthis0oroverflow!
");break;case4:printf("\a\nVelocityoraccelerationislessthen0!
");break;case5:printf("\a\nChordisgreaterthandiameter!
");break;case7:printf("\a\nParametererror!
");break;default:printf("\a\nErrorCode=%d",error);break;}}shortHome(unsignedshortaxis,longpos,longoffset,doublevel_high,doublevel_low){doubleprf_pos[4];unsignedshortstatus,crd_status;GT_ClrSts(axis);//清回原点轴状态GT_CaptHome(axis);//将回原点轴设置为//原点捕获方式GT_SetSynVel(vel_high);//设置回原点的速度GT_SetSynAcc(0.
01);//设置回原点的加速度GT_GetPrfPnt(prf_pos);//读取各轴的规划位置第七章Home/Index高速捕获53prf_pos[axis-1]=pos;//设置回原点轴的目标位置GT_LnXYZ(prf_pos[0],prf_pos[1],prf_pos[2]);do{GT_GetCrdSts(&crd_status);//读取坐标系状态if(crd_status&1)//如果运动已经完成{//仍然没有触发Home信号return1;//返回错误代码1}GT_GetSts(axis,&status);//读取控制轴状态}while(!
(status&0x8));//等待Home信号触发GT_StpMtn();//平滑停止do{GT_GetCrdSts(&crd_status);//读取坐标系状态}while(!
(crd_status&1));//等待运动完成GT_GetCapt(axis,&pos);//读取捕获位置GT_SetSynVel(vel_low);//低速运动到原点prf_pos[axis-1]=pos;rtn=GT_LnXYZ(prf_pos[0],prf_pos[1],prf_pos[2]);do{GT_GetCrdSts(&crd_status);//读取坐标系状态}while(!
(crd_status&1));//等待运动完成prf_pos[axis-1]+=offset;//运动一小段距离离开Home开关GT_LnXYZ(prf_pos[0],prf_pos[1],prf_pos[2]);do{GT_GetCrdSts(&crd_status);//读取坐标系状态}while(!
(crd_status&1));//等待运动完成Sleep(1000);//插入适当延时,等待工作台停稳GT_ZeroPos(axis);//工作台位置清零建立机床坐标系return0;}voidmain(){GT_HookCommand(CommandHandle);GT_Open();//打开运动控制器GT_Reset();//复位运动控制器AxisInitial(1,0);//引用例程3-2或3-3第七章Home/Index高速捕获54if(0!
=Home(1,-1000000,1000,20,2))//调用回零函数{printf("\nHomeError!
");}}例程7-2Home+Index回原点例程(以GE-800-PV运动控制器为例)voidCommandHandle(char*command,shorterror){switch(error){case-1:printf("\a\nCommunicationError!
");break;case0:break;case1:printf("\a\nCommandError!
");break;case7:printf("\a\nParametererror!
");break;default:printf("\a\nErrorCode=%d",error);break;}}shortHome(unsignedshortaxis,longpos,longoffset,doublevel_high,doublevel_low){unsignedlongstatus;GT_ClrSts(axis);//清回原点轴状态GT_CaptHome(axis);//将回原点轴设置为原点捕获方式GT_SetPos(axis,pos);GT_SetVel(axis,vel_high);//高速查找原点GT_SetAcc(axis,0.
01);GT_Update(axis);do{GT_GetSts(axis,&status);//读取回原点轴状态if(!
(status&0x400)){//回原点轴已经停止return1;//Home信号仍然没有触发}第七章Home/Index高速捕获55}while(!
(status&0x8))//等待Home捕获GT_SmthStp(axis);//平滑停止回原点轴do{GT_GetSts(axis,&status);}while(status&0x400);//等待运动完成GT_GetCapt(axis,&pos);//读取Home捕获位置GT_SetPos(axis,pos);//低速运动到原点捕获位置GT_SetVel(axis,vel_low);GT_Update(axis);do{GT_GetSts(axis,&status);}while(status&0x400);//等待运动完成GT_ClrSts(axis);//清除Home捕获触发标志GT_CaptIndex(axis);//将回原点轴设置为//Index捕获GT_SetPos(axis,pos+11000);//继续运动一圈多一点GT_Update(axis);do{GT_GetSts(axis,&status);if(!
(status&x400)){//回原点轴已经停止return2;//Index信号仍然没有触发}}while(!
(status&0x8));//等待Index信号触发GT_SmthStp(axis);//平滑停止回原点轴do{GT_GetSts(axis,&status);}while(status&0x400);//等待运动完成GT_GetCapt(axis,&pos);//读取Index捕获位置GT_SetPos(axis,pos);//运动到Index捕获位置第七章Home/Index高速捕获56GT_SetVel(axis,vel_low);GT_Update(axis);do{GT_GetSts(axis,&status);}while(status&0x400);//等待运动完成GT_SetPos(axis,pos+offset);//运动到Index捕获位置GT_Update(axis);do{GT_GetSts(axis,&status);}while(status&0x400);//等待运动完成Sleep(1000);//插入适当延时,等待工作台停稳GT_ZeroPos(axis);//工作台位置清零建立机床坐标系return0;}voidmain(){GT_HookCommand(CommandHandle);GT_Open();//打开运动控制器GT_Reset();//复位运动控制器AxisInitial(1,0);//引用例程3-2或3-3if(0!
=Home(1,-1000000,1000,20,2))//调用回零函数{printf("\nHomeError!
");}}7.
5重点说明GE系列运动控制器为每个控制轴提供一个高速位置捕获寄存器,用来保存触发信号产生时控制轴的实际位置.
Home信号来自原点开关,调用指令GT_CaptHome将指定控制轴的位置捕获方式设置为Home信号触发.
如果指定控制轴已经处于Home捕获模式或者Index捕获模式,且捕获信号尚未触发,不能再次调用该指令.
如果捕获信号已经触发,必须调用指令GT_ClrSts清除指定控制轴"捕获触发标志位"bit3以后,才能再次调用该指令.
第七章Home/Index高速捕获57Index信号来自编码器C相(编码器每转一圈产生一个C相脉冲)或者光栅尺(每隔固定距离产生一个脉冲),调用指令GT_CaptIndex将指定控制轴的位置捕获方式设置为Index信号触发.
如果指定控制轴已经处于Home捕获模式或者Index捕获模式,且捕获信号尚未触发,不能再次调用该指令.
如果捕获信号已经触发,必须调用指令GT_ClrSts清除指定控制轴"捕获触发标志位"bit3以后,才能再次调用该指令.
Home信号和Index信号都是边沿触发模式.
可调用指令GT_HomeSns设置Home信号是上升沿触发还是下降沿触发,运动控制器默认为下降沿触发.
当Home信号或者Index信号产生时,运动控制器将自动锁存Home/Index信号产生时触发轴的实际位置(来自编码器或光栅尺),并将触发轴状态寄存器的bit3"Home/Index捕获触发标志位"置1,关闭Home/Index捕获(触发轴状态寄存器的bit14/bit15"Home/Index捕获状态位"清0).
调用指令GT_GetCapt可以读取指定控制轴的捕获位置值.
注意:使用Home+Index方式回原点时,应将Home开关安装在相邻的2个Index信号的中间.
当Home开关和Index信号重叠时可能造成Index信号捕获错误.
第八章安全机制58第八章安全机制8.
1设置跟随误差超限自动停止8.
1.
1指令列表表8-1设置跟随误差超限自动停止指令列表指令说明GT_SetPosErr设置指定控制轴的跟随误差极限GT_GetPosErr读取指定控制轴的跟随误差极限GT_AuStpOn使能指定控制轴跟随误差超限自动停止模式GT_AuStpOff关闭指定控制轴跟随误差超限自动停止模式8.
1.
2重点说明对于伺服控制系统而言,在某些异常情况下,电机的实际位置可能与规划位置差距很大.
这时通常存在一些危险情况,例如电机故障、编码器A、B相信号接反或断线、机械摩擦太大或者机械故障造成电机堵转等.
为了及时检测这些情况,增强系统的安全性并延长设备使用寿命,运动控制器提供跟随误差超限自动停止的安全保护机制.
运动控制器在每个控制采样周期内都检查控制轴的实际位置与规划位置的误差是否超越所设定的跟随误差极限.
对于GE-X00-PX/GUC-X00-EPX运动控制器,如果位置误差超越所设定的跟随误差极限,运动控制器将该轴状态寄存器的bit4标志位置1;如果已使能跟随误差超限自动停止功能,运动控制器自动紧急停止该轴的运动.
对于GE-X00-SX/GUC-X00-ESX运动控制器,如果正在进行连续轨迹运动的控制轴位置误差超越所设定的跟随误差极限,运动控制器紧急停止连续轨迹运动,并将该轴状态寄存器的bit4标志位置1.
8.
2设置输出电压饱和极限8.
2.
1指令列表表8-2设置输出电压饱和极限指令说明GT_SetMtrLmt设置指定控制轴的输出电压饱和极限第八章安全机制598.
2.
2重点说明运动控制器各控制轴默认电压输出范围是±10V.
在某些场合下,需要对控制轴输出电压进行限制,可以调用指令GT_SetMtrLmt设定控制轴输出电压饱和值.
8.
3限位状态处理运动控制器能够通过限位开关限制各控制轴的运动范围.
装有限位开关的控制轴的"安全运动范围"如图所示:工作台碰到限位开关时,运动控制器紧急停止工作台的运动,此时会产生较大的冲击.
建议用户不要使用限位开关回原点,而应当使用原点开关完成回原点的操作,详细步骤请参阅第七章.
限位开关触发以后,运动控制器禁止向触发限位方向上继续运动,同时将控制轴状态寄存器的相应状态位置1.
离开限位开关回到安全运动范围以后,需要调用指令GT_ClrSts将控制轴状态寄存器的限位触发状态位清0,才能使控制轴从超限状态回到正常状态,否则控制轴不能正常运动.
8.
4控制轴驱动报警处理运动控制器提供专用的驱动报警信号输入接口,若已经打开监视驱动报警信号功能,且检测到驱动器报警信号,运动控制器将控制轴状态寄存器的相应标志位置1,紧急停止发生报警轴的运动(GE-X00-PX/GUC-X00-EPX)或连续轨迹运动(GE-X00-SX/GUC-X00-ESX),并关闭驱动器的伺服使能信号.
驱动器报警信号产生以后,应当执行以下操作:1.
确定引起驱动器报警的原因,并加以改正;2.
复位驱动器;3.
重新回机床原点.
正超限行程负超限行程安全运动范围正限位开关负限位开关图8-1控制轴运动行程范围定义第九章数字I/O60第九章数字I/O9.
1通用数字I/O9.
1.
1指令列表表9-1通用数字I/O指令列表指令说明GT_ExInpt读取16路通用数字I/O输入的电平状态GT_ExOpt设置16路通用数字I/O输出的电平状态9.
1.
2重点说明运动控制器提供带光电隔离的16路通用数字量输入和16路通用数字量输出接口.
调用指令GT_ExInpt可以读取16路通用数字量输入.
指令参数的状态位与端子板上外部输入接口的对应关系如表9-2所示:表9-2通用I/O输入接口定义状态位15141312111098端子板EXI15EXI14EXI13EXI12EXI11EXI10EXI9EXI8状态位76543210端子板EXI7EXI6EXI5EXI4EXI3EXI2EXI1EXI0调用指令GT_ExOpt可以设置16路通用数字量输出.
指令参数的状态位与端子板上外部输出接口的对应关系如表9-3所示:表9-3通用I/O输出接口定义状态位15141312111098端子板EXO15EXO14EXO13EXO12EXO11EXO10EXO9EXO8状态位76543210端子板EXO7EXO6EXI5EXO4EXO3EXO2EXO1EXO09.
2专用数字I/O9.
2.
1指令列表第九章数字I/O61表9-4专用数字I/O指令列表指令说明GT_GetLmtSwt读取限位开关的电平状态GT_GetHomeSwt读取原点开关的电平状态9.
2.
2重点说明调用指令GT_GetLmtSwt能够读取限位开关的电平状态,指令参数的状态位与端子板上各控制轴的限位信号输入接口的对应关系如表9-5所示:表9-5指令参数状态位与端子板上各控制轴限位信号输入接口的对应关系状态位15141312111098端子板Limit7-Limt7+Limit6-Limt6+Limit5-Limt5+Limit4-Limt4+状态位76543210端子板Limit3-Limt3+Limit2-Limt2+Limit1-Limt1+Limit0-Limit0+调用指令GT_GetHomeSwt能够读取原点开关的电平状态,指令参数的状态位与端子板上各控制轴的原点信号输入接口的对应关系如表9-6所示:表9-6指令参数状态位与端子板上各控制轴原点信号输入接口的对应关系状态位76543210端子板Home7Home6Home5Home4Home3Home2Home1Home0第十章运动控制器可选功能62第十章运动控制器可选功能10.
1模拟电压输入10.
1.
1指令列表表10-1模拟电压输入指令列表指令说明GT_GetAdc读取指定通道输入的模拟电压.
GT_SetAdcChn设置模拟电压输入通道数目(GE-X00-SX).
10.
1.
2例程例程10-1读取通道1的模拟电压输入voidmain(){shortvoltage;GT_Open();//打开运动控制器GT_Reset();//复位运动控制器if(0==GT_GetAdc(1,&voltage))//读取通道1的模拟电压值{printf("\nChannel1Voltage:%d",voltage);//打印通道1的模拟电压值}else{printf("\nCommandError!
");}GT_Close();//关闭运动控制器}10.
1.
3重点说明GE-X00-PX和GE-X00-SX系列运动控制器提供了8路12位精度的外部模拟电压输入通道.
调用指令GT_GetAdc读取指定通道的外部输入模拟电压值.
输入电压按照表10-4进行计算.
表10-2模拟电压值和指令读取数值的对应关系输入电压值(V)所对应的数值+102047第十章运动控制器可选功能63输入电压值(V)所对应的数值00-10-2048GE-X00-PX的8路A/D的采样频率为4KHZ,GE-X00-SX的8路A/D的采样频率为770HZ.
GE-X00-SX提供GT_SetAdcChn指令设置A/D通道数目,提高A/D的采样频率.
当只有一路A/D时,采样频率可以提高到8*770HZ=6.
16KHZ.
10.
2手脉功能GE-X00-SX/GUC-X00-ESX运动控制器可通过手脉直接控制电机的运动,实现手动模式下的精确定位.
10.
2.
1指令列表表10-3手脉功能指令列表指令说明GT_HandWheel设置指定控制轴为手脉控制模式,并设置跟随倍率.
GT_ExitHWheel设置指定控制轴退出手脉控制模式.
GT_SetSynVel设置处于手脉控制模式下控制轴的最大跟随速度.
GT_SetSynAcc设置处于手脉控制模式下控制轴的加速度.
10.
2.
2例程例程10-2根据通用I/O的输入,将对应的控制轴切换到手脉控制模式shortInMPG(){shortrtn;unsignedshortaxis=1;doublerate=0.
1;unsignedshortCurInpt;rtn=GT_ExInpt(&CurInpt);//读取当前外部输入值if(rtn!
=0)returnrtn;if(CurInpt&0x1)axis=1;//0号IO输入,选中第一轴if(CurInpt&0x2)axis=2;//1号IO输入,选中第二轴if(CurInpt&0x4)axis=3;//2号IO输入,选中第三轴if(CurInpt&0x8)rate=0.
001;//3号IO输入,倍率设定位if(CurInpt&0x10)rate=0.
01;//4号IO输入,倍率设定位if(CurInpt&0x20)rate=0.
1;//5号IO输入,倍率设定位rtn=GT_HandWheel(axis,rate);//将指定控制轴切换到//手脉控制模式并设置手脉倍率第十章运动控制器可选功能64if(rtn!
=0)returnrtn;}10.
2.
3重点说明GE-X00-SX/GUC-X00-ESX提供一路专用的手脉输入接口,该接口可接收差动或单端的脉冲输入信号.
只能有一个控制轴处于手脉控制模式.
如果将某个控制轴切换到手脉控制模式,原先处于手脉控制模式的控制轴自动退出手脉控制模式.
用户只能在没有任何轨迹运动时将控制轴切换到手脉控制模式.
控制轴处于手脉控制模式时,必须设定控制轴的最大跟随速度和加速度.
控制轴按照跟随倍率跟踪手脉的速度和位置,并保证到位准确.
控制轴从启动速度开始,按照给定加速度加速到目标跟随速度(由跟随倍率和手脉速度计算求出),在运动过程中按照倍率跟随手脉速度的变化,并在手脉运动停止时降速到启动速度且停止.
若根据倍率和当前手脉速度计算出的跟随速度大于设定的最大跟随速度,取最大跟随速度为当前跟随速度.
对于步进电机,应当使控制轴跟随速度尽量避开系统的共振区(即设置合理的启动速度、加速度和最大跟随速度),否则在跟随过程中可能产生较大的振动.
10.
3主轴转速控制10.
3.
1指令列表表10-4主轴转速控制指令列表指令说明GT_SetSpindleVel设置主轴转速.
GT_CloseSpindle关闭主轴.
10.
3.
2例程例程10-3设定主轴转速voidmain(){GT_Open();//打开运动控制器GT_Reset();//复位运动控制器if(0==GT_SetSpindleVel(32767)//设置主轴转速{printf("\nGT_SetSpindleVelOK!
");}第十章运动控制器可选功能65Sleep(10000);//延时10sif(0==GT_CloseSpindle()//关闭主轴{printf("\nGT_CloseSpindleOK!
");}GT_Close();//关闭运动控制器}10.
3.
3重点说明GE-400-SX/GUC-400-ESX提供一路专用的主轴控制输出接口.
调用指令GT_SetSpindleVel可立即改变主轴控制输出电压,调节主轴的转速.
表10-5输出电压值和设定数值的对应关系输入电压值(V)所对应的数值+103676700-10-32768调用指令GT_CloseSpindle可以停止主轴.
不要采取调用指令GT_SetSpindleVel将控制电压设置为0的方式停止主轴,避免由于零漂电压使主轴不能完全停止而产生意外.
第十一章指令列表66第十一章指令列表表11-1GE-X00-PX/GUC-X00-EPX运动控制器指令列表指令说明设置运动控制器GT_Open打开运动控制器GT_Close关闭运动控制器GT_Reset复位运动控制器GT_HardRst硬件复位运动控制器GT_HookCommand挂接用户自定义的指令处理函数设置控制轴GT_AlarmOn控制轴驱动报警信号有效GT_AlarmOff控制轴驱动报警信号无效GT_LmtsOn控制轴限位信号有效GT_LmtsOff控制轴限位信号无效GT_LmtSns设置控制轴限位触发电平GT_EncSns设置控制轴编码器的记数方向GT_HomeSns设置Home信号的触发沿GT_IndexSns设置Index信号的触发沿GT_CloseLp将控制轴设置为闭环控制模式GT_OpenLp将控制轴设置为直接电压输出模式GT_CtrlMode设置控制轴为模拟量输出或脉冲输出GT_StepDir将控制轴的脉冲输出模式设置为"脉冲+方向"GT_StepPulse将控制轴的脉冲输出模式设置为"正负脉冲"GT_AuStpOn控制轴跟随误差越限自动停止有效GT_AuStpOff控制轴跟随误差越限自动停止无效GT_DrvRst清除指定控制轴的伺服报警信号GT_EncOn打开控制轴的编码器输入GT_EncOff关闭控制轴的编码器输入设置控制轴运动模式GT_PrflT将控制轴设置为梯形曲线运动模式GT_PrflS将控制轴设置为S曲线运动模式GT_PrflV将控制轴设置为速度控制模式设置控制轴运动参数GT_SetPos设置控制轴的目标位置GT_GetPos读取控制轴的目标位置GT_SetVel设置控制轴的目标速度GT_GetVel读取控制轴的目标速度第十一章指令列表67指令说明GT_SetAcc设置控制轴的加速度GT_GetAcc读取控制轴的加速度GT_SetMAcc设置控制轴的加速度,仅用于S曲线GT_GetMAcc读取控制轴的加速度,仅用于S曲线GT_SetJerk设置控制轴的加加速度GT_GetJerk读取控制轴的加加速度GT_ZeroPos控制轴的实际位置清零GT_SetAtlPos设置控制轴的实际位置GT_GetAtlPos读取控制轴的实际位置GT_GetPrfPos读取控制轴的规划位置GT_GetAtlErr读取控制轴的跟随误差GT_GetAtlVel读取控制轴的实际速度GT_GetPrfVel读取控制轴的规划速度设置控制轴控制参数GT_SetKp设置控制轴的比例增益GT_GetKp读取控制轴的比例增益GT_SetKi设置控制轴的积分增益GT_GetKi读取控制轴的积分增益GT_SetKd设置控制轴的微分增益GT_GetKd读取控制轴的微分增益GT_SetKvff设置控制轴的速度前馈增益GT_GetKvff读取控制轴的速度前馈增益GT_SetKaff设置控制轴的加速度前馈增益GT_GetKaff读取控制轴的加速度前馈增益GT_SetMtrBias设置控制轴的零漂电压补偿值GT_GetMtrBias读取控制轴的零漂电压补偿值GT_SetMtrLmt设置控制轴的输出电压饱和极限值GT_GetMtrLmt读取控制轴的输出电压饱和极限值GT_SetILmt设置控制轴的积分饱和极限值GT_GetILmt读取控制轴的积分饱和极限值GT_GetIntgr读取控制轴的误差积分值GT_SetPosErr设置跟随误差极限值GT_GetPosErr读取跟随误差极限值控制轴运动控制指令GT_AxisOn打开控制轴伺服使能GT_AxisOff关闭控制轴伺服使能GT_Update控制轴参数(包括运动参数和控制参数)刷新GT_MltiUpdt多个控制轴参数(包括运动参数和控制参数)刷新第十一章指令列表68指令说明GT_SmthStp平滑停止控制轴GT_AbptStp急停控制轴状态检测GT_GetSts读取控制轴状态GT_GetCmdSts读取指令执行出错原因GT_ClrSts清除控制轴状态GT_RstSts清除控制轴的指定状态GT_GetMode读取控制轴模式Home/Index捕获GT_CaptHome将控制轴设置为Home信号捕获GT_CaptIndex将控制轴设置为Index信号捕获GT_GetCapt读取位置捕获值数字I/OGT_ExInpt读取通用数字I/O的输入信号GT_ExOpt设置通用数字I/O的输出信号GT_GetHomeSwt读取原点开关电平状态GT_GetLmtSwt读取限位开关电平状态D/AGT_SetMtrCmd设置控制轴的输出电压,仅在直接电压输出模式下有效GT_GetMtrCmd读取控制轴的输出电压多卡操作指令GT_GetCurrentCardNo读取当前工作的运动控制器卡号GT_SwitchtoCardNo设置当前工作的运动控制器卡号A/D(可选)GT_GetAdc读取指定通道的模拟电压输入值第十一章指令列表69表11-2GE-X00-SX/GUC-X00-ESX运动控制器指令列表指令说明设置运动控制器GT_Open打开运动控制器GT_Close关闭运动控制器GT_Reset复位运动控制器GT_HardRst硬件复位运动控制器GT_HookCommand挂接用户自定义的指令处理函数设置控制轴GT_AlarmOn控制轴驱动报警信号有效GT_AlarmOff控制轴驱动报警信号无效GT_LmtsOn控制轴限位信号有效GT_LmtsOff控制轴限位信号无效GT_LmtSns设置控制轴限位触发电平GT_EncSns设置控制轴编码器的记数方向GT_HomeSns设置Home信号的触发沿GT_CtrlMode设置控制轴为模拟量输出或脉冲输出GT_StepDir将控制轴的脉冲输出模式设置为"脉冲+方向"GT_StepPulse将控制轴的脉冲输出模式设置为"正负脉冲"GT_DrvRst清除指定控制轴所连接驱动器的伺服报警信号GT_EncOn打开控制轴的编码器输入GT_EncOff关闭控制轴的编码器输入设置控制轴运动参数GT_ZeroPos控制轴的实际位置清零GT_SetAtlPos设置控制轴的实际位置GT_GetAtlPos读取控制轴的实际位置GT_GetPrfPnt读取轨迹运动中所有控制轴的规划位置值GT_GetSegPnt读取轨迹运动中所有控制轴的当前段终点位置GT_GetBrkPnt读取所有控制轴缓冲区连续轨迹运动中断时的断点位置GT_GetPrfVel读取控制轴的规划速度设置控制轴控制参数GT_SetKp设置控制轴的比例增益GT_GetKp读取控制轴的比例增益GT_SetKi设置控制轴的积分增益GT_GetKi读取控制轴的积分增益GT_SetKd设置控制轴的微分增益GT_GetKd读取控制轴的微分增益GT_SetKvff设置控制轴的速度前馈增益第十一章指令列表70指令说明GT_GetKvff读取控制轴的速度前馈增益GT_SetKaff设置控制轴的加速度前馈增益GT_GetKaff读取控制轴的加速度前馈增益GT_SetMtrBias设置控制轴的零漂电压补偿值GT_GetMtrBias读取控制轴的零漂电压补偿值GT_SetMtrLmt设置控制轴的输出电压饱和极限值GT_GetMtrLmt读取控制轴的输出电压饱和极限值GT_SetILmt设置控制轴的积分饱和极限值GT_GetILmt读取控制轴的积分饱和极限值GT_SetPosErr设置跟随误差极限值GT_GetPosErr读取跟随误差极限值控制轴运动控制指令GT_AxisOn打开控制轴伺服使能GT_AxisOff关闭控制轴伺服使能GT_Update控制轴参数(包括运动参数和控制参数)刷新GT_MltiUpdt多个控制轴参数(包括运动参数和控制参数)刷新连续轨迹运动指令GT_LnXY二维直线插补运动GT_LnXYG0二维直线插补定位运动GT_LnXYZ三维直线插补运动GT_LnXYZG0三维直线插补定位运动GT_LnXYZA四维直线插补运动GT_LnXYZAG0四维直线插补定位运动GT_ArcXYXY平面内的两轴圆弧插补(圆心位置,角度)GT_ArcXYPXY平面内的两轴圆弧插补(终点位置,半径)GT_ArcYZYZ平面内的两轴圆弧插补(圆心位置,角度)GT_ArcYZPYZ平面内的两轴圆弧插补(终点位置,半径)GT_ArcZXZX平面内的两轴圆弧插补(圆心位置,角度)GT_ArcZXPZX平面内的两轴圆弧插补(终点位置,半径)GT_SetSynVel设置轨迹运动的进给速度GT_SetSynAcc设置轨迹运动的进给加速度GT_SetStrtVel设定轨迹运动的启动速度GT_SetStpAcc设定轨迹运动的停止加速度GT_SetMaxVel设定轨迹运动的最大速度GT_Override设定除GT_LnXYG0、GT_LnXYZG0、GT_LnXYZAG0和定位指令之外的轨迹运动的速度倍率GT_OverrideG0设定GT_LnXYG0、GT_LnXYZG0、GT_LnXYZAG0和定位指令的速度倍率第十一章指令列表71指令说明GT_StpMtn平滑停止连续轨迹运动GT_EStpMtn紧急停止连续轨迹运动GT_MapCnt设置坐标偏移量缓冲区管理指令GT_StrtList打开并清空缓冲区GT_Delay缓冲区内轨迹运动之间的运动延时指令GT_MvXY在二维坐标系中,定位缓冲区连续轨迹运动坐标起点GT_MvXYZ在三维坐标系中,定位缓冲区连续轨迹运动坐标起点GT_MvXYZA在四维坐标系中,定位缓冲区连续轨迹运动坐标起点GT_EndList关闭缓冲区GT_AddList重新打开被关闭的缓冲区GT_StrtMtn启动多段连续轨迹运动GT_RestoreMtn恢复被中断的多段连续轨迹运动GT_GetMtnNm读取轨迹段编号状态检测GT_GetSts读取控制轴状态GT_GetCmdSts读取指令执行出错原因GT_GetCrdSts读取连续轨迹运动状态GT_ClrSts清除指定控制轴状态GT_RstSts清除指定控制轴的指定状态Home/Index捕获GT_CaptHome将控制轴设置为Home信号捕获GT_CaptIndex将控制轴设置为Index信号捕获GT_CaptProb设置探针捕获功能GT_GetCapt读取位置捕获值数字I/OGT_ExInpt读取通用数字I/O的输入信号GT_ExOpt设置通用数字I/O的输出信号GT_GetHomeSwt读取原点开关电平状态GT_GetLmtSwt读取限位开关电平状态GT_BufIO缓冲区内通用IO输出指令运动速度控制指令GT_SetDccVel设定线段的终点速度前瞻预处理指令GT_AddLookData将轨迹特征数据加入预处理缓冲区GT_CalVel计算预处理当前轨迹段的终点速度GT_CalVelEx计算预处理当前轨迹段的目标速度和终点速度GT_InitLookAhead设置前瞻预处理功能模块的初始化参数第十一章指令列表72指令说明辅助编码器指令GT_EncPos读取辅助编码器的位置多卡操作指令GT_GetCurrentCardNo读取当前工作卡号GT_SwitchtoCardNo设置当前工作卡号手脉控制指令(可选)GT_HandWheel将控制轴切换到手脉控制模式GT_ExitHWheel退出手脉控制模式主轴控制指令(可选)GT_CloseSpindle关闭主轴控制输出GT_SetSpindleVel设置主轴控制输出A/D(可选)GT_GetAdc读取指定通道的模拟电压输入值GT_SetAdcChn设置指定通道数第十二章指令说明73第十二章指令说明运动控制器所有指令按照字母顺序排列,指令原型以C语言描述.
如果正在学习使用运动控制器,或者应用程序正处于调试阶段,请不要连接机械系统,以免误操作损坏设备.
在首次连接机械系统时,仔细检查限位开关的设置、编码器计数方向是否正确、PID参数是否合适、运动控制参数是否合理,以确保机械系统的安全.
GT_AbptStp指令原型:shortGT_AbptStp(unsignedshortaxis)指令说明:急停指定控制轴,并将指定控制轴的目标速度和规划速度同时设置为0.
该指令执行以后立即生效.
详细说明参阅第五章.
指令参数:指定控制轴编号.
适用板卡:GE-X00-PX,GUC-X00-EPX.
指令示例:当通用数字量输入接口的EXI15为高电平时,急停1轴.
voidmain(){unsignedshortexInpt;GT_HookCommand(CommandHandle);//例程5-1GT_Open();//打开运动控制器GT_Reset();//复位运动控制器AxisInitial(1,0);//例程3-2AxisRunT(1,1000000,1,0.
1);//例程5-1do{GT_ExInpt(&exInpt);//读取通用数字量输入接口状态if((exInpt&0x8000)==0x8000){GT_AbptStp(1);//急停1轴}}while((exInpt&0x8000)!
=0x8000);}GT_AddList指令原型:shortGT_AddList(void)指令说明:在调用指令GT_EndList关闭缓冲区之后,如果用户需要继续增加轨迹描述或参数指令,可以调用本指令再次打开缓冲区.
当缓冲区处于打开状态,该指令无效.
适用板卡:GE-X00-SX,GUC-X00-ESX.
指令示例:在用GT_EndList指令关闭缓冲区后,再次打开缓冲区.
第十二章指令说明74shortAddList(){shortrtn;rtn=GT_StrtList();//打开缓冲区if(0!
=rtn)returnrtn;rtn=GT_MvXYZ(0,0,0,0,5,0.
1);//定位运动的起点if(0!
=rtn)returnrtn;…//继续添加指令rtn=GT_EndList();//指令发送结束后,结束缓冲区if(0!
=rtn)returnrtn;rtn=GT_AddList();//重新打开缓冲区if(0!
=rtn)returnrtn;rtn=GT_LnXY(20000,30000);//向缓冲区中添加运动指令if(0!
=rtn)returnrtn;…//继续添加指令}GT_AddLookData指令原型:shortGT_AddLookData(charcode,charplane_group,doubler,doublex,doubley,doublez,doublevel,doublecx,doublecy,inti,longn,boolflag)指令说明:将数据发送到预处理缓冲区.
指令的返回值若为"0"表示预处理缓冲区接收成功,为"1"表示该指令传送的位置数据与前次相同,此时需要发下一条.
指令参数:参数说明——参数名称参数意义说明0G00直线1G01直线2顺圆弧code曲线类型3逆圆弧17XY平面18ZX平面plane_group平面代码19YZ平面r圆弧半径若当前段不是圆弧,r设为0x,y,z终点位置单位:mmvel当前段目标速度单位:mm/scx,cy圆弧圆心位置若当前段不是圆弧,cx,cy设为0i压入到缓冲区的具体位置n当前段的标识用户加工代码的段号flag当前段是否降速到0一般情况下设为false.
当工艺特征需要系统停止时(如换刀等操作),第十二章指令说明75flag为true.
适用板卡:GE-X00-SX,GUC-X00-ESX.
GT_AlarmOff指令原型:shortGT_AlarmOff(unsignedshortaxis)指令说明:将指定控制轴的驱动报警输入信号设置为无效.
指令参数:指定控制轴编号.
适用板卡:GE-X00-PX,GUC-X00-EPX,GE-X00-SX,GUC-X00-ESX.
指令示例:参阅GT_AlarmOn.
GT_AlarmOn指令原型:shortGT_AlarmOn(unsignedshortaxis)指令说明:将指定控制轴的驱动报警输入信号设置为有效,默认情况下驱动报警有效.
指令参数:指定控制轴编号.
适用板卡:GE-X00-PX,GUC-X00-EPX,GE-X00-SX,GUC-X00-ESX.
指令示例:shortAlarmConfig(unsignedshortaxis,shortenable){if(enable){returnGT_AlarmOn(axis);//控制轴轴驱动报警输入信号有效}else{returnGT_AlarmOff(axis);//控制轴轴驱动报警输入信号无效}}GT_ArcXY指令原型:shortGT_ArcXY(doublex_center,doubley_center,doubleangle)指令说明:该指令实现XOY平面内的两轴圆弧插补.
圆弧插补运动的起点位置是前一段轨迹描述的终点位置(缓冲区命令)或者是当前位置(立即命令);如果是缓冲区第一条运动轨迹段,则起点是定位指令指定的位置.
指令参数:x_center、y_center是圆弧圆心位置,单位是pulse;angle是旋转角度,其单位是度,正负代表旋转方向,旋转角度的取值范围为[-360,360]度.
旋转方向参见图6-1圆弧插补正方向的相关说明.
适用板卡:GE-X00-SX,GUC-X00-ESX.
指令示例:举例——立即执行XOY平面圆弧插补命令.
shortArcXY()第十二章指令说明76{shortrtn;rtn=GT_SetSynVel(5);//设定运动速度if(0!
=rtn)returnrtn;rtn=GT_SetSynAcc(0.
1);//设定运动加速度if(0!
=rtn)returnrtn;rtn=GT_ArcXY(40000,30000,180);//开始XOY平面圆弧插补运动if(0!
=rtn)returnrtn;return0;}GT_ArcXYP指令原型:shortGT_ArcXYP(doublex_end,doubley_end,doubler,shortdirection)指令说明:该指令实现XOY平面内的两轴圆弧插补.
圆弧插补运动的起点位置是前一段轨迹描述的终点位置(缓冲区命令)或者是当前位置(立即命令);如果是缓冲区第一条运动轨迹段,则起点是定位指令指定的位置.
指令参数:x_end、y_end是圆弧终点位置;r是圆弧半径并带符号,其符号表示此段圆弧是优弧还是劣弧(正:劣弧,负:优弧),位置和半径的单位是pulse;direction是圆弧旋转方向,取值为1表示正向旋转,-1表示负向旋转.
旋转方向参见图6-1圆弧插补正方向的说明.
适用板卡:GE-X00-SX,GUC-X00-ESX.
指令示例:举例——发送XOY平面圆弧插补命令到缓冲区.
shortArcXYP(){shortrtn;rtn=GT_StrtList();if(0!
=rtn)returnrtn;rtn=GT_MvXY(0,0,5,0.
1);if(0!
=rtn)returnrtn;rtn=GT_ArcXYP(40000,0,20000,-1);if(0!
=rtn)returnrtn;rtn=GT_EndList();if(0!
=rtn)returnrtn;return0;}GT_ArcYZ指令原型:shortGT_ArcYZ(doubley_center,doublez_center,doubleangle)指令说明:该指令实现YOZ平面内的两轴圆弧插补.
圆弧插补运动的起点位置是前一段轨迹描述的终点位置(缓冲区命令)或者是当前位置(立即命令);如果是缓冲区第一条运动轨迹段,则起点是定位指令指定的位置.
第十二章指令说明77指令参数:y_center、z_center是圆弧圆心位置,单位是pulse;angle是旋转角度,其单位是度,正负代表旋转方向,旋转角度的取值范围为[-360,360]度.
适用板卡:GE-X00-SX,GUC-X00-ESX.
指令示例:举例——立即执行YOZ平面圆弧插补命令.
shortArcYZ(){shortrtn;rtn=GT_SetSynVel(5);if(0!
=rtn)returnrtn;rtn=GT_SetSynAcc(0.
1);if(0!
=rtn)returnrtn;rtn=GT_ArcYZ(40000,30000,180);if(0!
=rtn)returnrtn;reurn0;}GT_ArcYZP指令原型:shortGT_ArcYZP(doubley_end,doublez_end,doubler,shortdirection)指令说明:该指令实现YOZ平面内的两轴圆弧插补.
圆弧插补运动的起点位置是前一段轨迹描述的终点位置(缓冲区命令)或者是当前位置(立即命令);如果是缓冲区第一条运动轨迹段,则起点是定位指令指定的位置.
指令参数:y_end、z_end是圆弧终点位置;r是圆弧半径并带符号,其符号表示此段圆弧是优弧还是劣弧(正:劣弧,负:优弧),位置和半径的单位是pulse;direction是圆弧旋转方向,取值为1表示正向旋转,-1表示负向旋转.
适用板卡:GE-X00-SX,GUC-X00-ESX.
指令示例:举例——立即执行YOZ平面圆弧插补命令.
shortArcYZP(){shortrtn;rtn=GT_StrtList();if(0!
=rtn)returnrtn;rtn=GT_MvXYZ(0,0,0,5,0.
1);if(0!
=rtn)returnrtn;rtn=GT_ArcYZP(40000,0,20000,-1);if(0!
=rtn)returnrtn;rtn=GT_EndList();if(0!
=rtn)returnrtn;return0;}第十二章指令说明78GT_ArcZX指令原型:shortGT_ArcZX(doublez_center,doublex_center,doubleangle)指令说明:该指令实现ZOX平面内的两轴圆弧插补.
圆弧插补运动的起点位置是前一段轨迹描述的终点位置(缓冲区命令)或者是当前位置(立即命令);如果是缓冲区第一条运动轨迹段,则起点是定位指令指定的位置.
指令参数:z_center、x_center是圆弧圆心位置,单位是pulse;angle是旋转角度,其单位是度,正负代表旋转方向,旋转角度的取值范围为[-360,360]度.
适用板卡:GE-X00-SX,GUC-X00-ESX.
指令示例:举例——立即执行ZOX平面圆弧插补命令.
shortArcZX(){shortrtn;rtn=GT_SetSynVel(5);if(0!
=rtn)returnrtn;rtn=GT_SetSynAcc(0.
1);if(0!
=rtn)returnrtn;rtn=GT_ArcZX(40000,30000,180);if(0!
=rtn)returnrtn;return0;}GT_ArcZXP指令原型:shortGT_ArcZXP(doublez_end,doublex_end,doubler,shortdirection)指令说明:该指令实现ZOX平面内的两轴圆弧插补.
圆弧插补运动的起点位置是前一段轨迹描述的终点位置(缓冲区命令)或者是当前位置(立即命令);如果是缓冲区第一条运动轨迹段,则起点是定位指令指定的位置.
指令参数:z_end、x_end是圆弧终点位置;r是圆弧半径并带符号,其符号表示此段圆弧是优弧还是劣弧(正:劣弧,负:优弧),位置和半径的单位是pulse;direction是圆弧旋转方向,取值为1表示正向旋转,-1表示负向旋转.
适用板卡:GE-X00-SX,GUC-X00-ESX.
指令示例:举例——发送ZOX平面圆弧插补命令到缓冲区.
shortArcZxp(){shortrtn;rtn=GT_StrtList();if(0!
=rtn)returnrtn;rtn=GT_MvXYZ(0,0,0,5,0.
1);if(0!
=rtn)returnrtn;rtn=GT_ArcZXP(40000,0,20000,-1);第十二章指令说明79if(0!
=rtn)returnrtn;rtn=GT_EndList();if(0!
=rtn)returnrtn;return0;}GT_AuStpOff指令原型:shortGT_AuStpOff(unsignedshortaxis)指令说明:关闭指定控制轴的跟随误差超限自动停止功能.
执行该指令以后,如果该轴的实际位置和规划位置之间的误差超过所设定的跟随误差极限,那么运动控制器不会停止该轴的运动.
指令参数:指定控制轴编号.
适用板卡:GE-X00-PX,GUC-X00-EPX,GE-X00-SX,GUC-X00-ESX.
指令示例:参阅GT_AuStpOn.
GT_AuStpOn指令原型:shortGT_AuStpOn(unsignedshortaxis)指令说明:使能指定控制轴的跟随误差超限自动停止功能.
执行该指令以后,如果该轴的实际位置和理论位置之间的误差超过所设定的跟随误差极限,那么运动控制器自动停止该轴的运动,并将指定控制轴状态寄存器的相应标志位置1.
跟随误差极限默认值为32767,可以调用GT_SetPosErr指令重新设置跟随误差极限.
指令参数:指定控制轴编号.
适用板卡:GE-X00-PX,GUC-X00-EPX,GE-X00-SX,GUC-X00-ESX.
指令示例:shortAutoStopConfig(unsignedshortaxis,shortenable){if(enable){returnGT_AuStpOn(axis);//控制轴跟随误差越限自动停止有效}else{returnGT_AuStpOff(axis);//控制轴跟随误差越限自动停止无效}}GT_AxisOff指令原型:shortGT_AxisOff(unsignedshortaxis)指令说明:关闭指定控制轴所连电机的伺服使能信号.
指令参数:指定控制轴编号.
适用板卡:GE-X00-PX,GUC-X00-EPX,GE-X00-SX,GUC-X00-ESX.
第十二章指令说明80指令示例:参阅GT_AxisOn.
GT_AxisOn指令原型:shortGT_AxisOn(unsignedshortaxis)指令说明:打开指定控制轴所连电机的伺服使能信号,使指定控制轴进入控制状态.
如果指定控制轴连接伺服电机,并且输出控制量为模拟电压,那么必须首先设置指定控制轴位置环的PID参数.
为了保证系统安全,调用该指令时,运动控制器会自动将目标位置和规划位置同步到实际位置.
指令参数:指定控制轴编号.
适用板卡:GE-X00-PX,GUC-X00-EPX,GE-X00-SX,GUC-X00-ESX.
指令示例:当通用数字量输入接口的EXI15为高电平时,1轴伺服使能;当通用数字量输入接口的EXI15为低电平时,1轴伺服关闭.
shortAxisEnable(unsignedshortaxis){unsignedshortexInpt;rtn=GT_ExInpt(&exInpt);//读取通用数字量输入接口的状态if(0!
=rtn)returnrtn;if(exInpt&0x8000){returnGT_AxisOn(axis);//如果EI15为高电平,打开控制轴的伺服}else{returnGT_AxisOff(axis);//如果EI15为低电平,关闭控制轴的伺服}}GT_BufIO指令原型:shortGT_BufIO(unsignedshortio_status)指令说明:在缓冲区方式下,控制通用IO的输出.
该指令只能在运动控制器处于缓冲区输入方式下被调用.
如果在立即指令下调用,返回值为-1.
两条运动指令之间最多允许两条该指令,用于在前一条轨迹运动指令结束和后一条轨迹运动指令开始之前控制通用IO的输出状态.
指令参数:io_status:表示16位通用IO输出的状态,取值范围为[0,0xffff].
适用板卡:GE-X00-SX,GUC-X00-ESX.
GT_Calvel指令原型:shortGT_CalVel(double*vel,long*number)指令说明:计算预处理缓冲区中当前轨迹段的终点速度.
指令返回值若为"0"表示预处理缓冲区中还存在需要处理的数据,为"1"表示预处理结束.
指令参数:vel:返回终点速度.
第十二章指令说明81number对应的用户加工代码段号,对应GT_AddLookData()参数中的n数.
适用板卡:GE-X00-SX,GUC-X00-ESX.
GT_CalvelEx指令原型:shortGT_CalVelEx(double*dccvel,long*number,double*synvel)指令说明:计算预处理缓冲区中当前轨迹段的目标速度和终点速度.
指令返回值若为"0"表示预处理缓冲区中还存在需要处理的数据,为"1"表示预处理结束.
指令参数:dccvel:返回终点速度.
number对应的用户加工代码段号,对应GT_AddLookData()参数中的n数.
synvel:返回目标速度.
适用板卡:GE-X00-SX,GUC-X00-ESX.
GT_CaptHome指令原型:shortGT_CaptHome(unsignedshortaxis)指令说明:将指定控制轴的位置捕获设置为由Home信号触发.
执行GT_CaptHome指令以后,当Home信号产生时,运动控制器自动锁存该控制轴的实际位置,并将该控制轴状态寄存器的位置捕获触发标志位(bit3)置1.
因此可以通过检查该控制轴状态寄存器的位置捕获触发标志位(bit3)确定Home捕获是否已经触发.
当Home捕获触发以后,调用GT_GetCapt指令可以读取Home信号触发时该控制轴的实际位置.
完成了一次Home捕获以后,在启动下一次Home捕获之前,必须首先调用GT_ClrSts指令清除该控制轴状态寄存器的位置捕获触发标志位(bit3),然后重新调用GT_CaptHome指令.
指令参数:指定控制轴编号.
适用板卡:GE-X00-PX,GUC-X00-EPX,GE-X00-SX,GUC-X00-ESX.
指令示例:参阅例程7-1.
GT_CaptIndex指令原型:shortGT_CaptIndex(unsignedshortaxis)指令说明:将指定控制轴的位置捕获设置为由编码器C相脉冲信号或者光栅尺的Index信号触发.
执行GT_CaptIndex指令以后,当编码器C脉冲信号产生时,运动控制器自动锁存该控制轴的实际位置,并将该控制轴状态寄存器的位置捕获触发标志位(bit3)置1.
因此可以通过检查该控制轴状态寄存器的位置捕获触发标志位(bit3)确定Index捕获是否已经触发.
当Index捕获触发以后,调用GT_GetCapt指令可以读取Index信号触发时该控制轴的实际位置.
完成了一次Index捕获以后,在启动下一次Index捕获之前,必须首先调用GT_ClrSts指令清除该控制第十二章指令说明82轴状态寄存器的位置捕获触发标志位(bit3),然后重新调用GT_CaptIndex指令.
指令参数:指定控制轴编号.
适用板卡:GE-X00-PX,GUC-X00-EPX,GE-X00-SX,GUC-X00-ESX.
指令示例:参阅例程7-2.
GT_CaptProb函数原型:shortGT_CaptProb(void);函数说明:该函数设置捕获探针输入信号事件.
本运动控制器以通用IO输入中的0号通道(EXI0)作为探针输入,调用该函数后,所有控制轴的位置捕获寄存器以及辅助编码器的位置捕获寄存器将记录探针信号到来时的实际位置.
当捕获事件发生时,所有控制轴状态字中表示有捕获发生的标志(即bit3)置位.
执行一次GT_CaptProb()只能捕获到一次探针输入信号的位置信息.
要想捕获下一个位置信息,必须重新调用本函数设置捕获探针输入信号事件.
捕获到的实际位置同样可以作为控制轴的精确坐标原点.
捕获探针输入信号的逻辑采用硬件完成,与运动轴的速度无关.
指令参数:无适用板卡:GE-X00-PX,GUC-X00-EPX,GE-X00-SX,GUC-X00-ESX.
指令示例:举例——设置捕获探针输入信号事件,在运动过程中循环检测状态,在产生捕获时读取第二轴捕获到的实际位置值并打印.
voidmain(){shortrtn;unsignedshortstatus;longactl_pos;rtn=GT_CaptProb();error(rtn);….
rtn=GT_Axis(2);error(rtn);rtn=GT_GetSts(&status);error(rtn);while(status&0x400){if(status&0x8){rtn=GT_GetAtlPos(&actl_pos);error(rtn);printf("thecaptureposofaxis2is:%ld\n",actl_pos);break;}rtn=GT_GetSts(&status);error(rtn);}}第十二章指令说明83GT_Close指令原型:shortGT_Close(void)指令说明:关闭运动控制器.
当退出应用程序时,调用该指令以释放运动控制器的访问权.
指令参数:无.
适用板卡:GE-X00-PX,GUC-X00-EPX,GE-X00-SX,GUC-X00-ESX.
GT_CloseLp指令原型:shortGT_CloseLp(unsignedshortaxis)指令说明:将指定控制轴设置为闭环控制模式.
各控制轴默认情况下为闭环控制模式.
为了保证系统安全,在调用该指令之前,应当首先关闭伺服,然后再调用该指令切换到闭环控制模式.
指令参数:指定控制轴编号.
适用板卡:GE-X00-PX,GUC-X00-EPX.
GT_CloseSpindle指令原型:shortGT_CloseSpindle(void)指令说明:关闭主轴信号输出.
适用板卡:GE-400-SX,GUC-400-ESX.
指令示例:参阅例程10-6.
GT_ClrSts指令原型:shortGT_ClrSts(unsignedshortaxis)指令说明:将指定控制轴状态寄存器的bit0~7清0,其它状态位不受影响.
状态寄存器的定义请参阅第四章.
指令参数:指定控制轴编号.
适用板卡:GE-X00-PX,GUC-X00-EPX,GE-X00-SX,GUC-X00-ESX.
指令示例:参阅例程3-2、3-3、3-4.
GT_CtrlMode指令原型:shortGT_CtrlMode(unsignedshortaxis,unsignedshortmode)指令说明:设置指定控制轴为模拟量输出或脉冲输出.
GE-X00-XV运动控制器的所有控制轴都能输出模拟电压或脉冲.
调用GT_CtrlMode(axis,0)可将控制轴的设置为输出模拟电压,调用GT_CtrlMode(axis,1)可将控制轴设置为输出脉冲.
当伺服电机工作在速度模式下时,运动控制器应当设置为输出模拟电压.
当伺服电机工作在位置模式下,或者使用步进电机,运动控制器应当设置为输出脉冲.
GE-X00-XV运动控制器所有控制轴上电时默认为电压输出模式.
如果运动控制器的输出模式和电机工作模式不匹配,电机将无法运动.
第十二章指令说明84指令参数:axis指定控制轴编号;mode设置控制量的输出模式:0表示模拟量控制方式,1表示脉冲控制方式.
适用板卡:GE-X00-PV,GUC-X00-EPV,GE-X00-SV,GUC-X00-ESV.
指令示例:shortControlModeConfig(unsignedshortaxis){unsignedshortexInpt;rtn=GT_ExInpt(&exInpt);//读取通用数字量输入接口的状态if(0!
=rtn)returnrtn;if(exInpt&0x8000){returnGT_CtrlMode(axis,1);//如果EI15为高电平,设置为脉冲输出}else{returnGT_CtrlMode(axis,0);//如果EI15为低电平,设置为模拟电压输出}}GT_Delay指令原型:shortGT_Delay(longdelay_time)指令说明:设置缓冲区运动指令的延时时间.
只能在缓冲区输入方式下调用该命令,两条运动指令之间只允许一条该指令,用于指定前一段运动完成到下一段运动开始的延时时间.
利用该指令可以完成多种复杂的延时操作,很好的完成复杂的工艺要求.
指令参数:指定运动延时的时间.
取值范围为0适用板卡:GE-X00-SX,GUC-X00-ESX.
GT_DrvRst指令原型:shortGT_DrvRst(unsignedshortaxis)指令说明:清除指定控制轴的驱动报警.
控制轴状态寄存器的bit1指示控制轴是否处于报警状态.
如果需要清除驱动器报警,那么必须首先调用GT_AxisOff指令关闭控制轴的伺服使能,然后延时一段时间,再调用GT_DrvRst指令即可清除控制轴的报警信号.
指令参数:指定控制轴编号.
适用板卡:GE-X00-PX,GUC-X00-EPX,GE-X00-SX,GUC-X00-ESX.
指令示例:清除指定控制轴的驱动报警信号.
shortClearAlarmSignal(unsignedshortaxis){shortrtn;rtn=GT_AxisOff(axis);//关闭控制轴的伺服使能if(0!
=rtn)returnrtn;第十二章指令说明85Sleep(10000);//延时10秒rtn=GT_DrvRst(axis);//清除控制轴的驱动报警returnrtn;}GT_EncOff指令原型:shortGT_EncOff(unsignedshortaxis)指令说明:关闭指定控制轴的编码器输入,若指定控制轴处于伺服使能的工作状态(已调用过GT_AxisOn()命令)时,调用该指令非法.
指令参数:指定控制轴编号.
适用板卡:GE-X00-PX,GUC-X00-EPX,GE-X00-SX,GUC-X00-ESX.
GT_EncOn指令原型:shortGT_EncOn(unsignedshortaxis)指令说明:打开指定控制轴的编码器输入,若指定控制轴处于伺服使能的工作状态(已调用过GT_AxisOn()命令)时,调用该指令非法.
指令参数:指定控制轴编号.
适用板卡:GE-X00-PX,GUC-X00-EPX,GE-X00-SX,GUC-X00-ESX.
GT_EncPos指令原型:GT_EncPos(unsignedshortaxis,long*pos)指令说明:该指令用来读取辅助编码器实际位置值.
指令参数:axis表示需要读取的辅助编码器号,*pos读取指定辅助编码器的实际位置.
对于带有辅助编码器的运动控制器(可选),可调用该函数读取辅助编码器的位置采样值.
适用板卡:GE-X00-SX,GUC-X00-ESX.
指令示例:该例程读取GE-X00-SX的1号辅助编码器位置值并打印.
shortReadEncPos(){shortrtn;longposrtn=GT_EncPos(1,&pos);if(0!
=rtn)returnrtn;printf("pos:%ld",pos);}GT_EncSns指令原型:shortGT_EncSns(unsignedshortsense)指令说明:设置运动控制器各轴编码器计数方向.
只有电机旋转的正方向和编码器计数的正方向相一致,运动控制器才能正常工作.
在实际应用中,可能由于电机设置不当或是接线错误,造成电机转向与编码器计数反向相反,导致运动控制器不能正常工作.
此时可以调用GT_EncSns指第十二章指令说明86令修改运动控制器所有控制轴的编码器计数方向.
指令参数:设置各轴编码器的记数方向.
适用板卡:GE-X00-PX,GUC-X00-EPX,GE-X00-SX,GUC-X00-ESX.
指令示例:参阅例程3-2.
GT_EndList指令原型:shortGT_EndList(void)指令说明:在缓冲区命令输入状态下,调用本指令结束缓冲区命令输入状态.
适用板卡:GE-X00-SX,GUC-X00-ESX.
指令示例:举例——在缓冲区命令输入状态下,结束缓冲区命令输入状态.
shortEndList(){shortrtn;rtn=GT_StrtList();//打开缓冲区if(0!
=rtn)returnrtn;rtn=GT_MvXYZ(0,0,0,16,3.
7);//定位缓冲区运动的起点if(0!
=rtn)returnrtn;rtn=GT_LnXYZ(1234,5678,9013);//向缓冲区中添加直线指令if(0!
=rtn)returnrtn;rtn=GT_ArcXY(2345,6789,360);//向缓冲区中添加圆弧指令if(0!
=rtn)returnrtn;rtn=GT_EndList();//结束缓冲区if(0!
=rtn)returnrtn;}GT_EStpMtn指令原型:shortGT_EStpMtn(void)指令说明:该指令立即紧急停止轨迹插补运动.
调用该指令后,运动控制器按照设定的急停加速度减速停止连续轨迹运动.
若缓冲区连续轨迹运动状态,该指令关闭缓冲区,并在运动停止后保存断点信息,以便此后调用GT_RestoreMtn指令继续缓冲区连续轨迹运动.
用户若在执行定位指令时发出急停指令使运动停止,可能无法正确恢复缓冲区连续轨迹运动.
适用板卡:GE-X00-SX,GUC-X00-ESX.
GT_ExInpt指令原型:shortGT_ExInpt(unsignedshort*input)指令说明:读取16路通用数字量输入.
指令参数的状态位与端子板外部输入接口的对应关系请参阅第九章.
指令参数:读取16路通用数字I/O的输入信号.
适用板卡:GE-X00-PX,GUC-X00-EPX,GE-X00-SX,GUC-X00-ESX.
指令示例:参阅GT_ExOpt.
第十二章指令说明87GT_ExitHWheel指令原型:shortGT_ExitHWheel(void)指令说明:使处于手脉控制模式的控制轴退出手脉控制模式.
适用板卡:GE-X00-SX,GUC-X00-ESX.
GT_ExOpt指令原型:shortGT_ExOpt(unsignedshortoutput)指令说明:设置16路通用数字量输出.
指令参数的状态位与端子板外部输出接口的对应关系请参阅第九章.
指令参数:设置16路通用数字I/O的输出信号.
适用板卡:GE-X00-PX,GUC-X00-EPX,GE-X00-SX,GUC-X00-ESX.
指令示例:当外部输入接口EXI1为高电平时,外部输出接口EXO2为高电平.
shortDigitalInputOutput(){shortrtn;unsignedshortexInpt;rtn=GT_ExInpt(&exInpt);//读取外部输入if(0!
=rtn)returnrtn;if(exInpt&0x2){returnGT_ExOpt(0x4);//外部输出接口EXO2为高电平}}GT_GetAcc指令原型:shortGT_GetAcc(unsignedshortaxis,double*acc)指令说明:读取指定控制轴的加速度.
指令参数:axis是指定控制轴编号;*acc读取指定控制轴的加速度.
适用板卡:GE-X00-PX,GUC-X00-EPX.
指令示例:参阅GT_GetPos.
GT_GetAdc指令原型:shortGT_GetAdc(unsignedshortchannel,short*voltage)指令说明:运动控制器提供了8路12位精度的外部模拟电压输入通道.
调用GT_GetAdc指令可以读取指定通道的外部输入模拟电压值.
外部输入模拟电压值和GT_GetAdc指令读取数值的对应关系请参阅第十章.
指令示例:参阅例程10-4.
指令参数:channel指定模拟电压输入通道;*voltage读取指定输入通道的模拟电压.
适用板卡:GE-X00-PX,GUC-X00-EPX,GE-X00-SX,GUC-X00-ESX.
第十二章指令说明88GT_GetAtlErr指令原型:shortGT_GetAtlErr(unsignedshortaxis,long*error)指令说明:读取指定控制轴规划位置与实际位置之间的偏差.
指令参数:axis指定控制轴编号;*error读取指定控制轴的跟随误差.
适用板卡:GE-X00-PX,GUC-X00-EPX,GE-X00-SX,GUC-X00-ESX.
指令示例:1轴规划运动到位时(控制轴状态寄存器的bit10为0),读取控制轴规划位置与实际位置之间的偏差.
voidmain(){unsignedlongstatus;longerror;GT_HookCommand(CommandHandle);AxisInitial(1,0,1);//引用例程3-4AxisRunT(1,10000,10,1);//引用例程5-1do{GT_GetSts(1,&status);}while(status&0x400);//等待控制轴运动停止GT_GetAtlErr(1,&error);//读取控制轴的实际位置printf("\nError=%ld",error);}GT_GetAtlPos指令原型:shortGT_GetAtlPos(unsignedshortaxis,long*pos)指令说明:读取指定控制轴的实际位置.
指令参数:axis指定控制轴编号;*pos读取指定控制轴的实际位置.
GE-X00-SX控制卡中调用该指令时,在步进控制卡或伺服控制卡工作在步进模式下时,取回当前规划位置值,在伺服控制卡工作在伺服模式时,指令取回编码器的实际位置值.
适用板卡:GE-X00-PX,GUC-X00-EPX,GE-X00-SX,GUC-X00-ESX.
指令示例:1轴规划运动到位时(控制轴状态寄存器的bit10为0),读取控制轴的实际位置和规划位置.
voidmain(){unsignedlongstatus;longatlPos,prfPos;GT_HookCommand(CommandHandle);AxisInitial(1,0,1);//引用例程3-4AxisRunT(1,10000,10,1);//引用例程5-1do{第十二章指令说明89GT_GetSts(1,&status);}while(status&0x400);//等待控制轴运动停止GT_GetAtlPos(1,&atlPos);//读取控制轴的实际位置GT_GetPrfPos(1,&prfPos);//读取控制轴的规划位置printf("\nActualPosition=%ldProfilePosition=%ld",atlPos,prfPos);}GT_GetAtlVel指令原型:shortGT_GetAtlVel(unsignedshortaxis,double*vel)指令说明:读取指定控制轴的实际速度.
指令参数:axis指定控制轴编号;*vel读取指定控制轴的实际速度.
适用板卡:GE-X00-PX,GUC-X00-EPX.
指令示例:1轴规划运动到位时(控制轴状态寄存器的bit10为0),读取控制轴的实际速度和规划速度.
voidmain(){unsignedlongstatus;doubleatlVel,prfVel;GT_HookCommand(CommandHandle);AxisInitial(1,0,1);//引用例程3-4AxisRunT(1,10000,10,1);//引用例程5-1do{GT_GetSts(1,&status);}while(status&0x400);//等待控制轴运动停止GT_GetAtlVel(1,&atlVel);//读取控制轴的实际速度GT_GetPrfVel(1,&prfVel);//读取控制轴的规划速度printf("\nActualVel=%lfProfileVel=%lf",atlVel,prfVel);}GT_GetBrkPnt指令原型:shortGT_GetBrkPnt(double*point)指令说明:在缓冲区运行过程中,主机能够使用GT_EStpMtn和GT_StpMtn指令中断缓冲区连续轨迹运动.
调用该指令可读取断点位置信息.
指令参数:*point返回中断点的位置.
按照X,Y,Z的顺序存放在数组中.
适用板卡:GE-X00-SX,GUC-X00-ESX.
GT_GetCapt指令原型:shortGT_GetCapt(unsignedshortaxis,long*pos)指令说明:读取指定控制轴的Home信号或者Index信号触发时,其实际位置捕获值.
该值捕获以后一直不变,直到下次位置捕获触发.
指令参数:axis指定控制轴编号;*pos读取指定控制轴的捕获位置.
第十二章指令说明90适用板卡:GE-X00-PX,GUC-X00-EPX,GE-X00-SX,GUC-X00-ESX.
指令示例:参阅例程7-1.
GT_GetCmdSts指令原型:shortGT_GetCmdSts(unsignedshort*status)指令说明:确定指令执行出错的原因.
运动控制器函数库的每条指令都有返回值,指示该指令是否执行成功.
当指令返回值为1时,表示指令执行出错,这时可以调用该指令进一步确定出错原因.
错误定义请参阅第二章.
指令参数:读取指令执行出错原因.
适用板卡:GE-X00-PX,GUC-X00-EPX,GE-X00-SX,GUC-X00-ESX.
GT_GetCrdSts指令原型:shortGT_GetCrdSts(unsignedshort*status)指令说明:该指令获得轨迹运动状态.
指令参数:*status返回该状态,意义参阅第六章-连续轨迹运动的运动信息反馈.
适用板卡:GE-X00-SX,GUC-X00-ESX.
指令示例:举例——读取轨迹运动状态,当发现bit2置位时,将所有轴伺服关断.
shortCoordState(){shortrtn;unsignedshortstatus;rtn=GT_GetCrdSts(&status);if(0==rtn)returnrtn;if(status&0x4){rtn=GT_AxisOff(1);if(0==rtn)returnrtn;rtn=GT_AxisOff(2);if(0==rtn)returnrtn;rtn=GT_AxisOff(3);if(0==rtn)returnrtn;}return0;}GT_GetCurrentCardNo指令原型:shortGT_GetCurrentCardNo(void)指令说明:该指令获取当前运动控制器的卡号.
运动控制器的卡号取值范围为0—15.
适用板卡:GE-X00-PX,GUC-X00-EPX,GE-X00-SX,GUC-X00-ESX.
指令示例:打开两个运动控制器,关闭第一个运动控制器,打印第二个运动控制器的卡号并关闭第二个运动控制器.
第十二章指令说明91shortmain(){longpos[3];shortCardNo;rtn=GT_Open();//打开第一块控制卡if(0!
=rtn)returnrtn;rtn=GT_Open();//打开第二块控制卡if(0!
=rtn)returnrtn;CardNo=GT_GetCurrentCardNo();//读取当前控制卡卡号printf("CardNo:%d",CardNo);rtn=GT_SwitchtoCardNo(0);//切换到第一块控制卡if(0!
=rtn)returnrtn;rtn=GT_Close();//关闭当前控制卡if(0!
=rtn)returnrtn;rtn=GT_SwitchtoCardNo(1);//切换到第二块控制卡if(0!
=rtn)returnrtn;CardNo=GT_GetCurrentCardNo();//读取当前控制卡卡号if(0!
=rtn)returnrtn;printf("CardNo:%d",CardNo);rtn=GT_Close();if(0!
=rtn)returnrtn;return0;}GT_GetHomeSwt指令原型:shortGT_GetHomeSwt(unsignedshort*home)指令说明:读取运动控制器Home开关的状态.
当Home开关为高电平时,指令参数所对应的状态位为1,当Home开关为低电平时,指令参数所对应的状态位为0.
指令示例:读取运动控制器各轴Home开关的状态.
详细说明请参阅第九章.
指令参数:读取各轴原点开关的电平状态.
适用板卡:GE-X00-PX,GUC-X00-EPX,GE-X00-SX,GUC-X00-ESX.
指令示例:读取运动控制器各轴Home开关的状态.
shortDisplayHomeSwitch(){unsignedshorthome,i,bit=1;shortrtn;rtn=GT_GetHomeSwt(&home);if(0!
=rtn)returnrtn;for(i=0;i<8;++i){第十二章指令说明92if(home&bit){printf("\nHome%dishigh",i);}else{printf("\nHome%dislow",i);}bit<<=1;}return0}GT_GetILmt指令原型:shortGT_GetILmt(unsignedshortaxis,unsignedshort*limit)指令说明:读取指定控制轴的误差积分极限.
指令参数:axis指定控制轴编号;*limit读取指定控制轴的误差积分饱和极限.
适用板卡:GE-X00-PV,GUC-X00-EPV,GE-X00-SV,GUC-X00-ESV.
指令示例:参阅GT_GetKp.
GT_GetIntgr指令原型:shortGT_GetIntgr(unsignedshortaxis,short*integral)指令说明:读取指定控制轴的误差积分值.
指令参数:axis指定控制轴编号;*integral读取指定控制轴的误差积分.
适用板卡:GE-X00-PV,GUC-X00-EPV,GE-X00-SV,GUC-X00-ESV.
指令示例:参阅GT_GetKp.
GT_GetJerk指令原型:shortGT_GetJerk(unsignedshortaxis,double*jerk)指令说明:读取指定控制轴的加加速度.
指令参数:axis指定控制轴编号;*jerk读取指定控制轴的加加速度.
适用板卡:GE-X00-PX,GUC-X00-EPX.
指令示例:参阅GT_GetPos.
GT_GetKaff指令原型:shortGT_GetKaff(unsignedshortaxis,double*kaff)指令说明:读取指定控制轴的加速度前馈系数.
指令参数:axis指定控制轴编号;*kaff读取指定控制轴的加速度前馈系数.
适用板卡:GE-X00-PV,GUC-X00-EPV,GE-X00-SV,GUC-X00-ESV.
指令示例:参阅GT_GetKp.
GT_GetKd第十二章指令说明93指令原型:shortGT_GetKd(unsignedshortaxis,double*kd)指令说明:读取指定控制轴的误差微分增益.
指令参数:axis指定控制轴编号;*kd读取指定控制轴的误差微分增益.
适用板卡:GE-X00-PV,GUC-X00-EPV,GE-X00-SV,GUC-X00-ESV.
指令示例:参阅GT_GetKp.
GT_GetKi指令原型:shortGT_GetKi(unsignedshortaxis,double*ki)指令说明:读取指定控制轴的误差积分增益.
指令参数:axis指定控制轴编号;*ki读取指定控制轴的误差积分增益.
适用板卡:GE-X00-PV,GUC-X00-EPV,GE-X00-SV,GUC-X00-ESV.
指令示例:参阅GT_GetKp.
GT_GetKp指令原型:shortGT_GetKp(unsignedshortaxis,double*kp)指令说明:读取指定控制轴的误差增益.
指令参数:axis指定控制轴编号;*kp读取指定控制轴的误差比例增益.
适用板卡:GE-X00-PV,GUC-X00-EPV,GE-X00-SV,GUC-X00-ESV.
指令示例:读取1轴的误差比例增益、误差积分增益、误差微分增益、速度前馈系数、加速度前馈系数、误差积分饱和极限、输出电压饱和极限.
shortGetPid(){shortrtn;doublekp,ki,kd,kaff,kvff;shortbias;unsignedshortmotorLimit,intgrLimit,intgr,posErr;rtn=GT_GetKp(1,&kp);//读取1轴的误差比例增益if(0!
=rtn)returnrtn;rtn=GT_GetKi(1,&ki);//读取1轴的误差积分增益if(0!
=rtn)returnrtn;rtn=GT_GetILmt(1,&intgrLimit);//读取1轴的误差积分饱和极限if(0!
=rtn)returnrtn;rtn=GT_GetKd(1,&kd);//读取1轴的误差微分增益if(0!
=rtn)returnrtn;rtn=GT_GetKaff(1,&kaff);//读取1轴的加速度前馈if(0!
=rtn)returnrtn;rtn=GT_GetKvff(1,&kvff);//读取1轴的速度前馈if(0!
=rtn)returnrtn;rtn=GT_GetMtrBias(1,&bias);//读取1轴的零漂电压补偿值if(0!
=rtn)returnrtn;rtn=GT_GetMtrLmt(1,&motorLimit);//读取1轴的输出电压饱和极限if(0!
=rtn)returnrtn;第十二章指令说明94rtn=GT_GetIntgr(1,&intgr);//读取1轴的输出电压饱和极限if(0!
=rtn)returnrtn;rtn=GT_GetPosErr(1,&posErr);//读取1轴的跟随误差极限if(0!
=rtn)returnrtn;printf("\nkp=%lfki=%lfkd=%lfkvff=%lfkaff=%lfbias=%dIntgrLimit=%dMotorLimit=%dintgr=%dPosErr=%d",kp,ki,kd,kvff,kaff,bias,intgrLimit,motorLimit,intgr,posErr);}GT_GetKvff指令原型:shortGT_GetKvff(unsignedshortaxis,double*kvff)指令说明:读取指定控制轴的速度前馈系数.
指令参数:axis指定控制轴编号;*kvff读取指定控制轴的速度前馈系数.
适用板卡:GE-X00-PV,GUC-X00-EPV,GE-X00-SV,GUC-X00-ESV.
指令示例:参阅GT_GetKp.
GT_GetLmtSwt指令原型:shortGT_GetLmtSwt(unsignedshort*limit)指令说明:读取运动控制器各轴的限位开关状态.
当限位开关为高电平时,指令参数所对应的状态位为1,当限位开关为低电平时,指令参数所对应的状态位为0.
详细说明请参阅第九章.
指令参数:读取各轴正负限位开关的电平状态.
适用板卡:GE-X00-PX,GUC-X00-EPX,GE-X00-SX,GUC-X00-ESX.
指令示例:读取运动控制器各轴限位开关的电平状态.
shortDisplayLimitSwitch(){unsignedshortlimit,i,bit=1;shortrtn;rtn=GT_GetLmtSwt(&limit);if(0!
=rtn)returnrtn;for(i=0;i<8;++i){if(limit&bit){printf("\nLimit%d+ishigh",i);}else{printf("\nLimit%d+islow",i);}bit<<=1;f(limit&bit)第十二章指令说明95{printf("\nLimit%d-ishigh",i);}else{printf("\nLimit%d-islow",i);}bit<<=1;}return0;}GT_GetMAcc指令原型:shortGT_GetMAcc(unsignedshortaxis,double*macc)指令说明:读取指定控制轴的最大加速度,仅用于S曲线加减速.
指令参数:axis指定控制轴编号;*macc读取指定控制轴的最大加速度.
适用板卡:GE-X00-PX,GUC-X00-EPX.
指令示例:参阅GT_GetPos.
GT_GetMode指令原型:shortGT_GetMode(unsignedshortaxis,unsignedshort*mode)指令说明:读取指定控制轴的模式寄存器.
模式寄存器的定义请参阅第四章.
指令参数:axis指定控制轴编号;*mode读取指定控制轴的模式寄存器.
适用板卡:GE-X00-PX,GUC-X00-EPX.
指令示例:参阅GT_GetPos.
GT_GetMtnNm指令原型:shortGT_GetMtnNm(unsignedshort*number)指令说明:本指令返回当前缓冲区中正在执行的轨迹段编号.
当主机使用GT_EStpMtn和GT_StpMtn指令中断缓冲区命令执行状态后,调用本指令则返回中断处的轨迹段编号.
缓冲区中,轨迹描述命令可产生有效段号的累加,轨迹参数命令(如GT_SetSynVel,GT_SetDccVel等)不产生段号的变化.
段号范围为:[1,32767],当执行段号超过32767时,运动控制器从1开始重新累加段号.
指令参数:*number返回轨迹段编号.
适用板卡:GE-X00-SX,GUC-X00-ESX.
GT_GetMtrBias指令原型:shortGT_GetMtrBias(unsignedshortaxis,short*bias)指令说明:读取指定控制轴的零漂电压补偿.
指令参数:axis指定控制轴编号;*bias读取指定控制轴的零漂电压补偿值.
适用板卡:GE-X00-PV,GUC-X00-EPV,GE-X00-SV,GUC-X00-ESV.
第十二章指令说明96指令示例:参阅GT_GetKp.
GT_GetMtrCmd指令原型:shortGT_GetMtrCmd(unsignedshortaxis,short*voltage)指令说明:读取指定控制轴在直接电压输出模式下的输出电压值.
指令参数:axis指定控制轴编号;*voltage读取指定控制轴的输出电压值.
适用板卡:GE-X00-PV,GUC-X00-EPV.
GT_GetMtrLmt指令原型:shortGT_GetMtrLmt(unsignedshortaxis,unsignedshort*limit)指令说明:读取指定控制轴的输出电压饱和极限.
指令参数:axis指定控制轴编号;*limit读取指定控制轴的输出电压饱和极限.
适用板卡:GE-X00-PV,GUC-X00-EPV,GE-X00-SV,GUC-X00-ESV.
指令示例:参阅GT_GetKp.
GT_GetPos指令原型:shortGT_GetPos(unsignedshortaxis,long*pos)指令说明:读取指定控制轴的目标位置.
指令参数:axis指定控制轴编号;*pos读取指定控制轴的目标位置.
适用板卡:GE-X00-PX,GUC-X00-EPX.
指令示例:读取1轴的目标位置、目标速度、加速度、加加速度、最大加速度、控制轴状态、控制轴模式.
shortGetMotionParameter(){shortrtn;longpos;doublevel,acc,macc,jerk;unsignedlongstatus;unsignedshortmode;rtn=GT_GetPos(1,&pos);if(0!
=rtn)returnrtn;rtn=GT_GetVel(1,&vel);if(0!
=rtn)returnrtn;rtn=GT_GetAcc(1,&acc);if(0!
=rtn)returnrtn;rtn=GT_GetMAcc(1,&macc);if(0!
=rtn)returnrtn;rtn=GT_GetJerk(1,&jerk);if(0!
=rtn)returnrtn;rtn=GT_GetSts(1,&status);if(0!
=rtn)returnrtn;rtn=GT_GetMode(1,&mode);第十二章指令说明97if(0!
=rtn)returnrtn;printf("\nPos=%ldVel=%lfAcc=%lfMAcc=%lfJerk=%lfStatus=%lxMode=%x",pos,vel,acc,macc,jerk,status,mode);return0;}GT_GetPosErr指令原型:shortGT_GetPosErr(unsignedshortaxis,unsignedshort*error)指令说明:读取指定控制轴的跟随误差极限.
指令参数:axis指定控制轴编号;*error读取指定控制轴的跟随误差极限.
适用板卡:GE-X00-PV,GUC-X00-EPV,GE-X00-SV,GUC-X00-ESV.
指令示例:参阅GT_GetKp.
GT_GetPrfPnt指令原型:shortGT_GetPrfPnt(double*point)指令说明:该指令获得轨迹运动中各轴的规划位置值.
指令参数:双精度型*point作为指针,指向一个长度为3的数组,按X、Y、Z轴的顺序返回各轴的当前规划位置值,即各轴的内部计数值.
用户调用该指令时,应自行定义一个长度为3的双精度整型数组,并将数组首地址作为该指令的实参.
适用板卡:GE-X00-SX,GUC-X00-ESX.
指令示例:举例——获得轨迹运动中各轴的规划位置值,并打印.
shortGetPrfPnt(){shortrtn;doublecrd_prf_pos[3];rtn=GT_GetPrfPnt(crd_prf_pos);if(0!
=rtn)returnrtn;printf("thecoordinateposare:%ld,%ld,%ld\n",crd_prf_pos[0],crd_prf_pos[1],crd_prf_pos[2]);return0;}GT_GetPrfPos指令原型:shortGT_GetPrfPos(unsignedshortaxis,long*pos)指令说明:读取指定控制轴的规划位置.
指令参数:axis指定控制轴编号;*pos读取指定控制轴的规划位置.
适用板卡:GE-X00-PX,GUC-X00-EPX.
指令示例:参阅GT_GetAtlPos.
GT_GetPrfVel第十二章指令说明98指令原型:shortGT_GetPrfVel(unsignedshortaxis,double*vel)指令说明:读取指定控制轴的规划速度.
指令参数:axis指定控制轴编号;*vel读取指定控制轴的规划速度.
适用板卡:GE-X00-PX,GUC-X00-EPX.
指令示例:参阅GT_GetAtlVel.
GT_GetPrfVel指令原型:shortGT_GetPrfVel(double*vel)指令说明:该指令返回轨迹运动的当前进给速度.
指令参数:*vel返回当前进给速度.
适用板卡:GE-X00-SX,GUC-X00-ESX.
GT_GetSegPnt指令原型:shortGT_GetSegPnt(double*point)指令说明:该指令读取所有轴的目标位置,在进行轨迹运动时,可调用该指令读取当前执行轨迹段的终点位置.
该指令读回三个轴的终点位置.
指令参数:*point返回目标位置值.
适用板卡:GE-X00-SX,GUC-X00-ESX.
GT_GetSts指令原型:shortGT_GetSts(unsignedshortaxis,unsignedlong*status)指令说明:读取指定控制轴的状态寄存器.
状态寄存器的定义请参阅第四章.
指令参数:axis指定控制轴编号;*status读取指定控制轴的状态寄存器.
适用板卡:GE-X00-PX,GUC-X00-EPX,GE-X00-SX,GUC-X00-ESX.
指令示例:参阅GT_GetPos.
GT_GetVel指令原型:shortGT_GetVel(unsignedshortaxis,double*vel)指令说明:读取指定控制轴的目标速度.
指令参数:axis指定控制轴编号;*vel读取指定控制轴的目标速度.
适用板卡:GE-X00-PX,GUC-X00-EPX.
指令示例:参阅GT_GetPos.
GT_HardRst指令原型:shortGT_HardRst(void)指令说明:调用该指令以后将复位运动控制器,并重新加载DSP程序.
调用该指令后运动控制器寄存器的状态如下:1.
所有运动参数寄存器设置为02.
所有位置捕获寄存器设置为03.
各轴为梯形曲线加减速模式4.
所有PID参数设置为0(GE-X00-XV)5.
所有控制轴的误差积分极限为32767(GE-X00-XV)第十二章指令说明996.
所有控制轴的输出电压饱和极限为32767(GE-X00-XV)7.
所有控制轴的跟随误差极限为32767(GE-X00-XV)8.
禁止跟随误差超限自动停止(GE-X00-PV)9.
所有控制轴工作在闭环控制模式(GE-X00-XV)10.
所有控制轴的输出控制量为默认值指令参数:无.
适用板卡:GE-X00-PX,GUC-X00-EPX,GE-X00-SX,GUC-X00-ESX.
指令示例:当通用数字I/O的EXI0为高电平时硬件复位运动控制器.
shortHardReset(){shortrtn;unsignedshortexInpt;rtn=GT_ExInpt(&exInpt);if(0!
=rtn)returnrtn;if(exInpt&1){returnGT_HardRst();}}GT_HomeSns指令原型:shortGT_HomeSns(unsignedshortsense)指令说明:设置运动控制器各轴Home信号的触发沿.
详细内容请参阅第三章.
指令参数:设置所有控制轴Home信号的触发沿.
适用板卡:GE-X00-PX,GUC-X00-EPX,GE-X00-SX,GUC-X00-ESX.
指令示例:当通用数字I/O的EXI0为高电平时将1轴的Home捕获设置为上升沿触发,为低电平时将1轴的Home捕获设置为下降沿触发.
shortHomeConfig(){shortrtn;unsignedshortexInpt;rtn=GT_ExInpt(&exInpt);if(0!
=rtn)returnrtn;if(exInpt&1){returnGT_HomeSns(1);}else{returnGT_HomeSns(0);}}第十二章指令说明100GT_HandWheel指令原型:shortGT_HandWheel(unsignedshortaxis,doubleratio)指令说明:手脉功能.
运动控制器提供一个手脉输入接口,可以接收单端和差动的手脉或辅助编码器信号.
当系统运动停止时,用户调用该指令将指定控制轴设置为手脉输出的方式,并设定好跟随倍率后,若用户转动手脉,指定控制轴会跟随手脉运动.
一旦进入手脉输出工作方式,系统不接收任何运动命令和启动缓冲区等命令——除非调用解除手脉输出方式的指令.
当某个控制轴工作在手脉控制模式下时,若经过一段时间(2s)的采样发现手脉位置没有发生变化,即认为手脉运动停止,可以改变手脉的跟随轴和跟随倍率.
指令参数:axis指定要跟随手脉运动的轴号,ratio设定跟随轴的倍率.
适用板卡:GE-X00-SX,GUC-X00-ESX.
指令示例:参阅例程10-5.
GT_HookCommand指令原型:shortGT_HookCommand(TCommandHandleCommandHandle)指令说明:挂接指令处理程序.
详细内容请参阅第二章.
指令参数:CommandHandle是所挂接的指令处理程序的地址,TCommandHandle的定义为:typedefvoid(_stdcall*TCommandHandle)(char*command,shorterror).
适用板卡:GE-X00-PX,GUC-X00-EPX,GE-X00-SX,GUC-X00-ESX.
指令示例:参阅例程2-2、2-3、2-4.
GT_IndexSns指令原型:shortGT_IndexSns(unsignedshortsense)指令说明:设置运动控制器各轴编码器C相信号或者光栅尺Index信号的触发沿.
指令参数:设置各控制轴编码器C相信号或者光栅尺Index信号的触发沿.
适用板卡:GE-X00-PX,GUC-X00-EPX.
GT_InitLookAhead指令原型:shortGT_InitLookAhead(doublet,doubleacc_max,doubleacc,doublevel,intn,doublecon)指令说明:初始化预处理功能模块的各项参数.
指令参数:参数说明——t:拐弯时间.
单位:s,用户在调用预处理功能指令时注意其时间单位的统一,即速度和加速度的时间单位均为S,求出的终点速度也以秒为时间单位.
t的经验范围:0.
001~0.
01S.
t越大,计算出来的终点速度越大,但却降低了加工精度.
反之,提第十二章指令说明101高了加工的精度,但计算出的终点速度的偏低.
因此要合理选择T值.
acc_max:系统能承受的最大加速度,单位:mm/s2.
根据不同的机械系统和电机驱动器取值不同,经验范围:100~10000mm/s2.
acc:系统设定加速度,单位:mm/s2.
vel:用户加工的目标速度,单位:mm/s.
n:需预处理的段数.
con:脉冲数与标准长度单位对应值,单位:pulse/mm.
适用板卡:GE-X00-SX,GUC-X00-ESX.
GT_LmtSns指令原型:shortGT_LmtSns(unsignedshortsense)指令说明:设置运动控制器各轴限位开关的触发电平.
当指令参数某个状态位为1时,所对应的限位开关为低电平触发;当指令参数某个状态位为0时,所对应的限位开关为高电平触发.
默认情况下各轴限位开关为高电平触发.
指令参数:设置运动控制器各轴限位开关的触发电平.
适用板卡:GE-X00-PX,GUC-X00-EPX,GE-X00-SX,GUC-X00-ESX.
指令示例:参阅例程3-2、3-3、3-4.
GT_LmtsOff指令原型:shortGT_LmtsOff(unsignedshortaxis)指令说明:将指定控制轴的正负限位开关设置为无效.
调用该指令以后,即使指定控制轴的限位开关触发,运动控制器也不会停止越限轴的运动.
但是仍然可以调用GT_GetLmtSwt指令读取限位开关的状态.
指令参数:指定控制轴编号.
适用板卡:GE-X00-PX,GUC-X00-EPX,GE-X00-SX,GUC-X00-ESX.
指令示例:参阅GT_LmtsOn.
GT_LmtsOn指令原型:shortGT_LmtsOn(unsignedshortaxis)指令说明:将指定控制轴的正负限位开关设置为有效.
默认情况下,所有控制轴的正负限位开关有效.
指令参数:指定控制轴编号.
适用板卡:GE-X00-PX,GUC-X00-EPX,GE-X00-SX,GUC-X00-ESX.
指令示例:将1轴的正负限位开关设置为无效,2轴的正负限位开关设置为有效.
shortLimitConfig(){shortrtn;rtn=GT_LmtsOff(1);if(0!
=rtn)returnrtn;rtn=GT_LmtsOn(2);第十二章指令说明102if(0!
=rtn)returnrtn;returnGT_ClrSts(1);}GT_LnXY指令原型:shortGT_LnXY(doublex,doubley)指令说明:该指令实现二维直线插补运动.
参数x、y分别为相应控制轴的终点位置,单位是pulse.
直线插补运动的起点位置是前一段轨迹描述的终点位置(缓冲区命令)或者是当前位置(立即命令);如果是缓冲区第一条运动轨迹段,则起点是定位指令指定的位置.
适用板卡:GE-X00-SX,GUC-X00-ESX.
指令示例:二维直线插补命令.
shortLineXY(){shortrtn;rtn=GT_SetSynVel(3);if(0==rtn)retrunrtn;rtn=GT_SetSynAcc(1);if(0==rtn)retrunrtn;rtn=GT_LnXY(12345,67890);if(0==rtn)retrunrtn;return0;}GT_LnXYZ指令原型:shortGT_LnXYZ(doublex,doubley,doublez)指令说明:该指令实现三维直线插补运动.
参数x、y、z分别为相应控制轴的终点位置,单位是pulse.
直线插补运动的起点位置是前一段轨迹描述的终点位置(缓冲区命令)或者是当前位置(立即命令);如果是缓冲区第一条运动轨迹段,则起点是定位指令指定的位置.
适用板卡:GE-X00-SX,GUC-X00-ESX.
指令示例:缓冲区中的三维直线插补命令.
shortLineXYZ(){shortrtn;rtn=GT_StrtList();if(0==rtn)retrunrtn;rtn=GT_MvXYZ(0,0,0,6,0.
3);if(0==rtn)retrunrtn;rtn=GT_LnXYZ(12945,58372,65473);if(0==rtn)retrunrtn;第十二章指令说明103rtn=GT_StrtMtn();if(0==rtn)retrunrtn;…}GT_LnXYZA指令原型:shortGT_LnXYZA(doublex,doubley,doublez,doublea)指令说明:该指令实现四维直线插补运动.
参数x、y、z、a分别为相应控制轴的终点位置,单位是pulse.
直线插补运动的起点位置是前一段轨迹描述的终点位置(缓冲区命令)或者是当前位置(立即命令);如果是缓冲区第一条运动轨迹段,则起点是定位指令指定的位置.
适用板卡:GE-X00-SX,GUC-X00-ESX.
指令示例:缓冲区中的四维直线插补命令.
shortLineXYZA(){shortrtn;rtn=GT_StrtList();if(0==rtn)retrunrtn;rtn=GT_MvXYZA(0,0,0,6,0.
3,0.
5);if(0==rtn)retrunrtn;rtn=GT_LnXYZA(12945,58372,65473,65473);if(0==rtn)retrunrtn;rtn=GT_StrtMtn();if(0==rtn)retrunrtn;…}GT_LnXYG0指令原型:shortGT_LnXYG0(doublex,doubley)指令说明:该指令实现二维直线插补运动.
参数x、y分别为相应控制轴的终点位置,单位是pulse.
直线插补运动的起点位置是前一段轨迹描述的终点位置(缓冲区命令)或者是当前位置(立即命令);如果是缓冲区第一条运动轨迹段,则起点是定位指令指定的位置.
用户在使用速度倍率时,GT_OverrideG0影响该指令产生的轨迹运动的速度.
适用板卡:GE-X00-SX,GUC-X00-ESX.
指令示例:二维直线插补命令.
shortLineXYG0(){shortrtn;rtn=GT_SetSynVel(30);第十二章指令说明104if(0==rtn)retrunrtn;rtn=GT_SetSynAcc(1);if(0==rtn)retrunrtn;rtn=GT_LnXYG0(12345,67890);if(0==rtn)retrunrtn;return0;}GT_LnXYZG0指令原型:shortGT_LnXYZG0(doublex,doubley,doublez)指令说明:该指令实现三维直线插补运动.
参数x、y、z分别为相应控制轴的终点位置,单位是pulse.
直线插补运动的起点位置是前一段轨迹描述的终点位置(缓冲区命令)或者是当前位置(立即命令);如果是缓冲区第一条运动轨迹段,则起点是定位指令指定的位置.
用户在使用速度倍率时,GT_OverrideG0影响该指令产生的轨迹运动的速度.
适用板卡:GE-X00-SX,GUC-X00-ESX.
指令示例:缓冲区中三维直线插补命令.
shortLineXYZG0(){shortrtn;rtn=GT_StrtList();if(0==rtn)retrunrtn;rtn=GT_MvXYZ(0,0,0,6,0.
3);if(0==rtn)retrunrtn;rtn=GT_LnXYZG0(12945,58372,65473);if(0==rtn)retrunrtn;rtn=GT_StrtMtn();if(0==rtn)retrunrtn;…}GT_LnXYZAG0指令原型:shortGT_LnXYZG0(doublex,doubley,doublez,doublea)指令说明:该指令实现四维直线插补运动.
参数x、y、z、a分别为相应控制轴的终点位置,单位是pulse.
直线插补运动的起点位置是前一段轨迹描述的终点位置(缓冲区命令)或者是当前位置(立即命令);如果是缓冲区第一条运动轨迹段,则起点是定位指令指定的位置.
用户在使用速度倍率时,GT_OverrideG0影响该指令产生的轨迹运动的速度.
适用板卡:GE-X00-SX,GUC-X00-ESX.
指令示例:缓冲区中四维直线插补命令.
shortLineXYZAG0(){第十二章指令说明105shortrtn;rtn=GT_StrtList();if(0==rtn)retrunrtn;rtn=GT_MvXYZA(0,0,0,6,0.
3,0.
5);if(0==rtn)retrunrtn;rtn=GT_LnXYZAG0(12945,58372,65473,65473);if(0==rtn)retrunrtn;rtn=GT_StrtMtn();if(0==rtn)retrunrtn;…}GT_MapCnt指令原型:shortGT_MapCnt(unsignedshortaxis,doublecount)指令说明:设置坐标偏移量.
调用该指令专门管理坐标偏移量,建立区别于机床坐标系的加工坐标系.
指令参数:axis指定控制轴编号,count设定要偏移的脉冲数.
适用板卡:GE-X00-SX,GUC-X00-ESX.
GT_MltiUpdt指令原型:shortGT_MltiUpdt(unsignedshortmask)指令说明:同时更新多个控制轴的参数.
当指令参数某个状态位为1时,所对应控制轴的参数将被更新.
指令参数状态位和控制轴的对应关系如下所示:状态位bit7bit6bit5bit4bit3bit2bit1bit0控制轴87654321指令参数:控制轴刷新参数.
适用板卡:GE-X00-PX,GUC-X00-EPX.
指令示例:同时更新1轴和3轴的参数.
voidmain(){GT_HookCommand(CommandHandle);GT_Open();//打开运动控制器GT_Reset();//复位运动控制器GT_SetKp(1,10);//设置1轴比例增益GT_SetKp(3,10);//设置3轴比例增益GT_MltiUpdt(5);//同时更新1轴和3轴GT_AxisOn(1);//1轴伺服使能GT_AxisOn(3);//3轴伺服使能printf("\nPressanykeytocontinue…");//按任意键继续第十二章指令说明106getch();GT_PrflV(1);//设置1轴运动参数GT_SetVel(1,10);GT_SetAcc(1,0.
1);GT_PrflV(3);//设置3轴运动参数GT_SetVel(3,10);GT_SetAcc(3,0.
1);GT_MltiUpdt(5);//同时更新1轴和3轴}GT_MvXY指令原型:shortGT_MvXY(doublex,doubley,doublevel,doubleacc)指令说明:对于二维坐标系,该指令必须作为指令GT_StrtList后的第一条缓冲区命令,放在命令缓冲区中用来定义二维连续轨迹的缓冲区命令的起点位置.
参数x、y是起点位置,单位是pulse;参数vel设定进给速度,单位是pulse/ms;参数acc设定进给加速度,单位是pulse/ms2.
此后调用GT_StrtMtn指令时,运动控制器控制X、Y轴(1、2轴)从当前位置以直线插补的方式运动到相应起点位置,然后顺序执行缓冲区命令.
适用板卡:GE-X00-SX,GUC-X00-ESX.
相关指令:GT_MvXYZ指令示例:该指令只能在打开缓冲区,还没有传送轨迹描述和参数命令的情况下调用.
一旦缓冲区打开时调用了该指令,缓冲区中以后的轨迹描述命令只能是二维轨迹命令.
举例——在缓冲区打开状态下,将缓冲区运动的起点定位在X轴1000个pulse,Y轴2000个pulse的位置,并设速度为100pulse/ms,加速度为1.
8pulse/ms2移动到定位点.
shortMoveXY(){shortrtn;rtn=GT_StrtList();if(0==rtn)retrunrtn;rtn=GT_MvXY(1000,2000,100,1.
8);if(0==rtn)retrunrtn;…rtn=GT_StrtMtn();if(0==rtn)retrunrtn;return0;}GT_MvXYZ指令原型:shortGT_MvXYZ(doublex,doubley,doublez,doublevel,doubleacc)第十二章指令说明107指令说明:对于三维坐标系,该指令必须作为指令GT_StrtList后的第一条缓冲区命令,放在命令缓冲区中用来定义三维连续轨迹的缓冲区命令的起点位置.
参数x、y、z是起点位置,单位是pulse;参数vel设定进给速度,单位是pulse/ms;参数acc设定进给加速度,单位是pulse/ms2.
此后调用GT_StrtMtn指令时,运动控制器控制X、Y、Z轴(1、2、3轴)从当前位置以直线插补的方式运动到相应起点位置,然后顺序执行缓冲区命令.
适用板卡:GE-X00-SX,GUC-X00-ESX.
相关指令:GT_MvXY指令示例:参阅GT_MvXY.
GT_MvXYZA指令原型:shortGT_MvXYZA(doublex,doubley,doublez,doublea,doublevel,doubleacc)指令说明:对于四维坐标系,该指令必须作为指令GT_StrtList后的第一条缓冲区命令,放在命令缓冲区中用来定义四维连续轨迹的缓冲区命令的起点位置.
参数x、y、z、a是起点位置,单位是pulse;参数vel设定进给速度,单位是pulse/ms;参数acc设定进给加速度,单位是pulse/ms2.
此后调用GT_StrtMtn指令时,运动控制器控制X、Y、Z、A轴(1、2、3、4轴)从当前位置以直线插补的方式运动到相应起点位置,然后顺序执行缓冲区命令.
适用板卡:GE-X00-SX,GUC-X00-ESX.
相关指令:GT_MvXY指令示例:参阅GT_MvXY.
GT_Open指令原型:shortGT_Open(unsignedlongaddress=65535)指令说明:调用GT_Open指令打开运动控制器,以获取对运动控制器的访问权.
对于ISA总线的运动控制器,需要指定运动控制器的基地址.
对于PCI总线的运动控制器,不需要指定运动控制器的基地址,只需将默认参数65535传递给函数库即可.
指令参数:ISA总线的运动控制器需要指定基地址;PCI总线的运动控制器不用指定基地址.
适用板卡:GE-X00-PX,GUC-X00-EPX,GE-X00-SX,GUC-X00-ESX.
指令示例:参阅例程5-1.
GT_OpenLp指令原型:shortGT_OpenLp(unsignedshortaxis)指令说明:将指定控制轴设置为直接电压输出模式.
在该模式下可以调用GT_SetMtrCmd指令直接设置指定控制轴的输出电压.
输出电压可以第十二章指令说明108按照下表进行计算.
输出电压值(V)所对应的数值+103276700-10-32768指令参数:指定控制轴编号.
适用板卡:GE-X00-PV,GUC-X00-EPV.
指令示例:参阅GT_SetMtrCmd.
GT_Override指令原型:shortGT_Override(doubleoverride)指令说明:设置除GT_LnXYG0、GT_LnXYZG0、GT_LnXYZAG0以及定位指令以外的轨迹描述指令所产生运动的速度倍率.
调用该指令可以在线改变后续轨迹运动的进给速度,使设定速度改变为原设定速度的override倍,且一直有效,直到再次调用该指令.
指令参数:override是设置的速度倍率.
适用板卡:GE-X00-SX,GUC-X00-ESX.
GT_OverrideG0指令原型:shortGT_OverrideG0(doubleoverride)指令说明:设置GT_LnXYG0、GT_LnXYZG0、GT_LnXYZAG0以及定位指令的速度倍率.
调用该指令后,使原设定速度改变为原设定速度的override倍,且一直有效,直到再次调用该指令.
指令参数:override是设置的速度倍率.
适用板卡:GE-X00-SX,GUC-X00-ESX.
GT_PrflS指令原型:shortGT_PrflS(unsignedshortaxis)指令说明:将指定控制轴设置为S曲线加减速.
只能在指定控制轴静止时执行该指令,否则该指令无效,并返回1.
指令参数:指定控制轴编号.
适用板卡:GE-X00-PX,GUC-X00-EPX.
指令示例:参阅例程5-2.
GT_PrflT指令原型:shortGT_PrflT(unsignedshortaxis)指令说明:将指定控制轴设置为梯形曲线加减速.
只能在指定控制轴静止时执行该指令,否则该指令无效,并返回1.
指令参数:指定控制轴编号.
适用板卡:GE-X00-PX,GUC-X00-EPX.
指令示例:参阅例程5-1.
第十二章指令说明109GT_PrflV指令原型:shortGT_PrflV(unsignedshortaxis)指令说明:将指定控制轴设置为速度追踪模式.
只能在指定控制轴静止时执行该指令,否则该指令无效,并返回1.
指令参数:指定控制轴编号.
适用板卡:GE-X00-PX,GUC-X00-EPX.
指令示例:参阅例程5-3.
GT_Reset指令原型:shortGT_Reset(void)指令说明:复位运动控制器.
调用该指令以后,各寄存器的状态和调用GT_HardRst指令相同,但是GT_Reset指令不会重新装载DSP程序.
该指令一般用于运动控制器初始化.
指令参数:无.
适用板卡:GE-X00-PX,GUC-X00-EPX,GE-X00-SX,GUC-X00-ESX.
指令示例:参阅例程5-1.
GT_RestoreMtn指令原型:shortGT_RestoreMtn(void)指令说明:在缓冲区运动暂停后,使用此命令可使中断的运动从断点处继续运动.
注意:调用该指令之前,确保已经发送GT_StrtMtn,否则电机可能出现不正确运动.
适用板卡:GE-X00-SX,GUC-X00-ESX.
GT_RstSts指令原型:shortGT_RstSts(unsignedshortaxis,unsignedshortmask)指令说明:将指定控制轴状态寄存器的指定状态位清0.
指令参数的状态位和状态寄存器定义相同.
当指令参数的某个状态位为1时,保留状态寄存器的相应位;当指令参数的某个状态位为0时,将状态寄存器的相应位清0.
该指令只能清除状态寄存器的bit0~bit7.
指令参数:axis指定控制轴编号;mask指定清除指定控制轴状态寄存器的哪些状态位.
适用板卡:GE-X00-PX,GUC-X00-EPX,GE-X00-SX,GUC-X00-ESX.
指令示例:参阅GT_SetAtlPos.
GT_SetAcc指令原型:shortGT_SetAcc(unsignedshortaxis,doubleacc)指令说明:设置指定控制轴的加速度.
参数取值范围是[0,102400].
该指令仅对速度追踪模式和梯形曲线加减速有效.
指令参数的单位是"pulse/ms2",换算方法请参阅第五章.
该指令为刷新生效指令.
指令参数:axis指定控制轴编号;acc设置指定控制轴的加速度.
第十二章指令说明110适用板卡:GE-X00-PX,GUC-X00-EPX.
指令示例:参阅例程5-1、5-3.
GT_SetAdcChn指令原型:shortGT_SetAdcChn(unsignedshortchannel)指令说明:设置A/D通道数目,用来提高A/D的采样频率.
当只有一个A/D通道时,采样频率可以提高到8*770Hz=6.
16KHz.
指令参数:通道数.
适用板卡:GE-X00-SX,GUC-X00-ESX.
GT_SetAtlPos指令原型:shortGT_SetAtlPos(unsignedshortaxis,longpos)指令说明:将指定控制轴的实际位置、目标位置和规划位置设置为指定值.
参数取值范围是[-230,230-1].
只能在指定控制轴静止时执行该指令,否则该指令无效,并返回1.
指令参数:axis指定控制轴编号;pos设置指定控制轴的实际位置.
适用板卡:GE-X00-PX,GUC-X00-EPX,GE-X00-SX,GUC-X00-ESX.
指令示例:1轴运动停止以后,将该轴的实际设置设为0,并且清除该轴状态寄存器的bit0.
voidmain(){GT_HookCommand(CommandHandle);GT_Open();GT_Reset();AxisInitial(1,0);//引用例程3-2.
AxisRunT(1,10000,1,0.
1);//引用例程5-1.
unsignedlongstatus;do{GT_GetSts(1,&status);//读取1轴的控制轴状态寄存器}while(status&0x400);GT_SetAtlPos(1,0);GT_RstSts(1,0xfe);}GT_SetDccVel指令原型:shortGT_SetDccVel(doublevel)指令说明:设定线段的终点位置,单位是pulse/ms.
该指令在缓冲区下确定轨迹段的终点速度,运动控制器将按照该指令设定的速度进行加减速控制.
指令参数:vel设定轨迹段终点速度.
适用板卡:GE-X00-SX,GUC-X00-ESX.
第十二章指令说明111GT_SetILmt指令原型:shortGT_SetILmt(unsignedshortaxis,unsignedshortlimit)指令说明:设置指定控制轴的误差积分饱和极限.
参数取值范围是[0,215-1].
第一次设置误差积分增益Ki时要小心.
如果系统正在运行而积分项的值比较大,把Ki设置为非0值将引起电机突然跳跃.
为了避免这种情况,应当首先将误差积分饱和极限设置为0,这样就能够将误差积分项清0,保证电机平稳运动.
然后再将误差积分增益Ki和误差积分极限设置为期望值.
该指令为刷新生效指令.
指令参数:axis指定控制轴编号;limit设置指定控制轴的误差积分饱和极限.
适用板卡:GE-X00-PV,GUC-X00-EPV,GE-X00-SV,GUC-X00-ESV.
指令示例:参阅GT_SetKp.
GT_SetJerk指令原型:shortGT_SetJerk(unsignedshortaxis,doublejerk)指令说明:设置指定控制轴的加加速度.
参数取值范围是[0,256000].
该指令仅对S曲线加减速有效.
指令参数的单位是pulse/ms3,换算方法请参阅第五章.
该指令为刷新生效指令.
指令参数:axis指定控制轴编号;jerk设置指定控制轴的加加速度.
适用板卡:GE-X00-PX,GUC-X00-EPX.
指令示例:参阅例程5-2.
GT_SetKaff指令原型:shortGT_SetKaff(unsignedshortaxis,doublekaff)指令说明:设置指定控制轴的加速度前馈系数.
参数取值范围是[0,215-1].
该指令为刷新生效指令.
指令参数:axis指定控制轴编号;kaff设置指定控制轴的加速度前馈系数.
适用板卡:GE-X00-PV,GUC-X00-EPV,GE-X00-SV,GUC-X00-ESV.
指令示例:参阅GT_SetKp.
GT_SetKd指令原型:shortGT_SetKd(unsignedshortaxis,doublekd)指令说明:设置指定控制轴的误差微分增益.
参数取值范围是[0,215-1].
该指令为刷新生效指令.
指令参数:axis指定控制轴编号;kd设置指定控制轴的误差微分增益.
适用板卡:GE-X00-PV,GUC-X00-EPV,GE-X00-SV,GUC-X00-ESV.
指令示例:参阅GT_SetKp.
GT_SetKi指令原型:shortGT_SetKi(unsignedshortaxis,doubleki)指令说明:设置指定控制轴的误差积分增益.
参数取值范围是[0,215-1].
该指令为刷新生效指令.
第十二章指令说明112指令参数:axis指定控制轴编号;ki设置指定控制轴的误差积分增益.
适用板卡:GE-X00-PV,GUC-X00-EPV,GE-X00-SV,GUC-X00-ESV.
指令示例:参阅GT_SetKp.
GT_SetKp指令原型:shortGT_SetKp(unsignedshortaxis,doublekp)指令说明:设置指定控制轴的误差比例增益.
参数取值范围是[0,215-1].
该指令为刷新生效指令.
指令参数:axis指定控制轴编号;kp设置指定控制轴的误差比例增益.
适用板卡:GE-X00-PV,GUC-X00-EPV,GE-X00-SV,GUC-X00-ESV.
指令示例:设置1轴的误差比例增益、误差积分增益、误差微分增益、加速度前馈系数、速度前馈系数、零漂电压补偿值、输出电压饱和极限、误差积分饱和极限.
shortPidConfig(){shortrtn;rtn=GT_SetKp(1,10);//设置1轴的误差比例增益if(0!
=rtn)returnrtn;rtn=GT_SetKi(1,20);//设置1轴的误差积分增益if(0!
=rtn)returnrtn;rtn=GT_SetILmt(1,20000);//设置1轴的误差积分饱和极限if(0!
=rtn)returnrtn;rtn=GT_SetKd(1,5);//设置1轴的误差微分增益if(0!
=rtn)returnrtn;rtn=GT_SetKaff(1,10);//设置1轴的加速度前馈if(0!
=rtn)returnrtn;rtn=GT_SetKvff(1,10);//设置1轴的速度前馈if(0!
=rtn)returnrtn;rtn=GT_SetMtrBias(1,-200);//设置1轴的零漂电压补偿值if(0!
=rtn)returnrtn;rtn=GT_SetMtrLmt(1,6*3276);//设置1轴的输出电压饱和极限if(0!
=rtn)returnrtn;rtn=GT_SetPosErr(1,32767);//设置1轴的跟随误差极限if(0!
=rtn)returnrtn;returnGT_Update(1);//使1轴的控制参数生效}GT_SetKvff指令原型:shortGT_SetKvff(unsignedshortaxis,doublekvff)指令说明:设置指定控制轴的速度前馈系数.
参数取值范围是[0,215-1].
该指令第十二章指令说明113为刷新生效指令.
指令参数:axis指定控制轴编号;kvff设置指定控制轴的速度前馈系数.
适用板卡:GE-X00-PV,GUC-X00-EPV,GE-X00-SV,GUC-X00-ESV.
指令示例:参阅GT_SetKp.
GT_SetMAcc指令原型:shortGT_SetMAcc(unsignedshortaxis,doublemacc)指令说明:设置指定控制轴的最大加速度.
参数取值范围是[0,102400].
该指令仅对S曲线加减速有效.
指令参数的单位是"pulse/ms2",换算方法请参阅第五章.
该指令为刷新生效指令.
指令参数:axis指定控制轴编号;macc设置指定控制轴的最大加速度.
适用板卡:GE-X00-PX,GUC-X00-EPX.
指令示例:参阅例程5-2.
GT_SetMaxVel指令原型:shortGT_SetMaxVel(doublevel)指令说明:该指令设定系统最高运行速度,当用户设定速度大于此速度时按此速度运行.
单位:pulse/ms.
指令参数:设定控制卡最高运行速度.
适用板卡:GE-X00-SX,GUC-X00-ESX.
GT_SetMtrBias指令原型:shortGT_SetMtrBias(unsignedshortaxis,shortbias)指令说明:设置指定控制轴的零漂电压补偿.
参数取值范围是[-32768,32767].
因为运动控制器各控制轴可能存在不同的零漂电压,所以必须正确设置零漂电压补偿,才能保证运动控制器的准确定位.
该指令为刷新生效指令.
指令参数:axis指定控制轴编号;bias设置指定控制轴的零漂电压补偿值.
适用板卡:GE-X00-PV,GUC-X00-EPV,GE-X00-SV,GUC-X00-ESV.
指令示例:参阅GT_SetKp.
GT_SetMtrCmd指令原型:shortGT_SetMtrCmd(unsignedshortaxis,shortvoltage)指令说明:在直接电压输出模式下,设置指定控制轴的输出电压.
参数取值范围是[-32768,32767].
输出电压值与GT_SetMtrCmd指令参数的对应关系参阅GT_OpenLp.
指令参数:axis指定控制轴编号;voltage设置指定控制轴的输出电压.
适用板卡:GE-X00-PV,GUC-X00-EPV.
指令示例:设置控制轴1输出3V模拟电压.
shortOutputVoltage(){shortrtn;第十二章指令说明114rtn=GT_OpenLp(1);//将控制轴1切换到直接电压输出模//式if(0!
=rtn)returnrtn;returnGT_SetMtrCmd(1,3*3276);//控制轴1输出3V模拟电压}GT_SetMtrLmt指令原型:shortGT_SetMtrLmt(unsignedshortaxis,unsignedshortlimit)指令说明:设置指定控制轴输出电压饱和极限.
参数取值范围是[0,32767].
指定控制轴默认电压输出范围是±10V.
在某些场合下,需要对输出电压进行限制,这时可以调用GT_SetMtrLmt指令设定输出电压饱和值.
该指令为刷新生效指令.
指令参数:axis指定控制轴编号;limit设置指定控制轴的输出电压饱和极限.
适用板卡:GE-X00-PV,GUC-X00-EPV,GE-X00-SV,GUC-X00-ESV.
指令示例:参阅GT_SetKp.
GT_SetPos指令原型:shortGT_SetPos(unsignedshortaxis,longpos)指令说明:设置指定控制轴的目标位置.
参数取值范围是[-1073741824,1073741823].
指令参数的单位是pulse,换算方法请参阅第五章.
该指令为刷新生效指令.
指令参数:axis指定控制轴编号;pos设置指定控制轴的目标位置.
适用板卡:GE-X00-PX,GUC-X00-EPX.
指令示例:参阅例程5-1、5-2、5-3.
GT_SetPosErr指令原型:shortGT_SetPosErr(unsignedshortaxis,unsignedshorterror)指令说明:设置指定控制轴的跟随误差极限.
参数取值范围是[0,32767].
各控制轴默认的跟随误差极限为32767,调用GT_SetPosErr指令可以修改跟随误差极限.
该指令为刷新生效指令.
详细内容参阅第八章.
指令参数:axis指定控制轴编号;error设置指定控制轴的跟随误差极限.
适用板卡:GE-X00-PV,GUC-X00-EPV,GE-X00-SV,GUC-X00-ESV.
指令示例:参阅GT_SetKp.
GT_SetSpindleVel指令原型:shortGT_SetSpindleVel(shortvel)指令说明:设定主轴转速并开始主轴运动.
指令参数:vel:主轴速度,16位模拟量输出值,对应-10V~+10V,取值范围[-32768,32767].
第十二章指令说明115适用板卡:GE-400-SX,GUC-400-ESX.
指令示例:参阅例程10-6.
GT_SetStpAcc指令原型:shortGT_SetStpAcc(doubleacc)指令说明:设定系统的停止加速度.
该指令用来设定系统紧急停止时的加速度,例如碰到限位开关.
一般情况下取正常加速度的2-3倍,单位:pulse/ms2.
指令参数:acc停止加速度值.
适用板卡:GE-X00-SX,GUC-X00-ESX.
GT_SetStrtVel指令原型:shortGT_SetStrtVel(doublevel)指令说明:设定连续轨迹运动的启动速度.
该指令用来设定在连续轨迹运动的启动速度,启动速度与电机特性和机械系统特性有直接关系,请用户根据实际系统进行设置.
运动控制器上电默认的启动速度为500HZ,单位:pulse/ms.
指令参数:vel启动速度值.
适用板卡:GE-X00-SX,GUC-X00-ESX.
GT_SetSynAcc指令原型:shortGT_SetSynAcc(doubleacc)指令说明:该指令设置连续轨迹运动的进给加速度.
指令参数:acc是设定的进给加速度值.
其单位是pulse/ms2.
该指令在立即指令输入方式下有效,且决定此后所有立即轨迹运动的加速度,直到再次调用该指令为止.
适用板卡:GE-X00-SX,GUC-X00-ESX.
GT_SetSynVel指令原型:shortGT_SetSynVel(doublevel)指令说明:该指令设置轨迹段的进给速度.
指令参数:vel是设定的轨迹运动的进给速度值.
其单位是pulse/ms.
该指令影响此后调用的所有直线插补和圆弧插补轨迹描述指令的进给速度,直到再次调用该指令为止.
适用板卡:GE-X00-SX,GUC-X00-ESX.
GT_SetVel指令原型:shortGT_SetVel(unsignedshortaxis,doublevel)指令说明:设置指定控制轴的目标速度.
速度控制模式下参数取值范围是[-40958,40957],梯形曲线加减速和S曲线加减速模式下参数取值范围是[0,40957].
该指令为刷新生效指令.
第十二章指令说明116指令参数:axis指定控制轴编号;vel设置指定控制轴的目标速度.
适用板卡:GE-X00-PX,GUC-X00-EPX.
指令示例:参阅例程5-1、5-2、5-3.
GT_SmthStp指令原型:shortGT_SmthStp(unsignedshortaxis)指令说明:根据指定控制轴的加减速模式平滑减速到0.
详细内容参阅第五章.
该指令为刷新生效指令.
指令参数:参数是指定控制轴编号.
适用板卡:GE-X00-PX,GUC-X00-EPX.
指令示例:参阅例程7-1、7-2.
GT_StepDir指令原型:shortGT_StepDir(unsignedshortaxis)指令说明:将指定控制轴的脉冲输出方式设置为"脉冲+方向".
指令参数:参数是指定控制轴编号.
适用板卡:GE-X00-PX,GUC-X00-EPX,GE-X00-SX,GUC-X00-ESX.
指令示例:当通用数字I/O的EXI0为高电平时将1轴的输出脉冲设置为"脉冲+方向",为低电平时将1轴的输出脉冲设置为"正负脉冲".
shortPulseConfig(){shortrtn;unsignedshortexInpt;rtn=GT_ExInpt(&exInpt);//读取通用数字I/O的输入if(0!
=rtn)returnrtn;if(exInpt&1){returnGT_StepDir(1);//将1轴的输出脉冲设置为//"脉冲+方向"}else{returnGT_StepPulse(1);//将1轴的输出脉冲设置为//"正负脉冲"}}GT_StepPulse指令原型:shortGT_StepPulse(unsignedshortaxis)指令说明:将指定控制轴的脉冲输出方式设置为"正负脉冲".
指令参数:参数是指定控制轴编号.
适用板卡:GE-X00-PX,GUC-X00-EPX,GE-X00-SX,GUC-X00-ESX.
第十二章指令说明117指令示例:参阅GT_StepDir.
GT_StpMtn指令原型:shortGT_StpMtn(void)指令说明:该指令按照设定的进给加速度停止轨迹运动.
若处于缓冲区连续轨迹运动状态,该指令将关闭缓冲区,并在运动停止后保存断点信息,以便此后调用GT_RestoreMtn指令继续缓冲区连续轨迹运动.
用户若在执行定位指令时发出停止指令停止运动,可能无法恢复正确的缓冲区连续轨迹运动.
适用板卡:GE-X00-SX,GUC-X00-ESX.
GT_StrtList指令原型:shortGT_StrtList(void)指令说明:该指令打开并清空缓冲区.
已经处于缓冲区命令输入状态时,该指令无效.
适用板卡:GE-X00-SX,GUC-X00-ESX.
指令示例:请参阅GT_LnXYZ.
GT_StrtMtn指令原型:shortGT_StrtMtn(void)指令说明:该指令启动缓冲区连续轨迹运动.
运动控制器顺序执行存储在缓冲区中的轨迹运动描述指令.
适用板卡:GE-X00-SX,GUC-X00-ESX.
指令示例:请参阅GT_LnXYZ.
GT_SwitchtoCardNo指令原型:shortGT_SwitchtoCardNo(unsignedshortnumber)指令说明:该指令用于切换当前运动控制器卡号.
一台PC机上使用多个运动控制器时,本指令用于指定当前运动控制器.
当指令执行成功后,后随的所有指令只操作当前运动控制器.
在多运动控制器系统中,每个运动控制器在操作系统启动时被分配一个卡号(0-15),该卡号在系统重新启动之前一直有效,用于区别不同控制卡.
卡号分配原则遵循PNP规则,第一个被系统识别的运动控制器卡号为0,所以在硬件配置没有改变的情况下,系统每次分配的卡号是相同的.
指令参数:number将被设为当前运动控制器的卡号.
取值范围为0-15.
适用板卡:GE-X00-PX,GUC-X00-EPX,GE-X00-SX,GUC-X00-ESX.
指令示例:参阅例程GT_GetCurrentCardNo.
GT_Update指令原型:shortGT_Update(unsignedshortaxis)指令说明:使指定控制轴参数生效.
指令参数:参数是指定控制轴编号.
第十二章指令说明118适用板卡:GE-X00-PX,GUC-X00-EPX,GE-X00-SX,GUC-X00-ESX.
指令示例:参阅例程5-1、5-2.
GT_ZeroPos指令原型:shortGT_ZeroPos(unsignedshortaxis)指令说明:将指定控制轴的实际位置、目标位置和规划位置设置为0.
只能在指定控制轴静止(GE点位运动控制器)或无轨迹运动(GE连续轨迹运动控制器)时执行该指令,否则该指令无效,并返回1.
指令参数:参数是指定控制轴编号.
适用板卡:GE-X00-PX,GUC-X00-EPX,GE-X00-SX,GUC-X00-ESX.
指令示例:参阅例程7-1、7-2.
固高科技(深圳)有限公司地址:深圳市高新技术产业园南区深港产学研基地西座二层W211室电话:0755-269708232697081926970824传真:0755-26970821电子邮件:support@googoltech.
com网址:http://www.
googoltech.
com.
cn/固高科技(香港)有限公司地址:香港九龙清水湾香港科技大学新翼楼3639室电话:(852)2358-1033传真:(852)2358-4931电子邮件:info@googoltech.
com网址:http://www.
googoltech.
com/

PhotonVPS:$4/月,KVM-2GB/30GB/2TB/洛杉矶&达拉斯&芝加哥等

很久没有分享PhotonVPS的消息,最近看到商家VPS主机套餐有一些更新所以分享下。这是一家成立于2008年的国外VPS服务商,Psychz机房旗下的站点,主要提供VPS和独立服务器等,数据中心包括美国洛杉矶、达拉斯、芝加哥、阿什本等。目前,商家针对Cloud VPS提供8折优惠码,优惠后最低2G内存套餐每月4美元起。下面列出几款主机配置信息。CPU:1core内存:2GB硬盘:30GB NVm...

TTcloud(月$70)E3-1270V3 8GB内存 10Mbps带宽 ,日本独立服务器

关于TTCLOUD服务商在今年初的时候有介绍过一次,而且对于他们家的美国圣何塞服务器有过简单的测评,这个服务商主要是提供独立服务器业务的。目前托管硬件已经达到5000台服务器或节点,主要经营圣何塞,洛杉矶以及日本东京三个地区的数据中心业务。这次看到商家有推出了新上架的日本独立服务器促销活动,价格 $70/月起,季付送10Mbps带宽。也可以跟进客户的需求进行各种DIY定制。内存CPU硬盘流量带宽价...

PacificRack 下架旧款方案 续费涨价 谨慎自动续费

前几天看到网友反馈到PacificRack商家关于处理问题的工单速度慢,于是也有后台提交个工单问问,没有得到答复导致工单自动停止,不清楚商家最近在调整什么。而且看到有网友反馈到,PacificRack 商家的之前年付低价套餐全部下架,而且如果到期续费的话账单中的产品价格会涨价不少。所以,如果我们有需要续费产品的话,谨慎选择。1、特价产品下架我们看到他们的所有原来发布的特价方案均已下架。如果我们已有...

delphi教程为你推荐
百度爱好者如何加入知道记者团,有什么条件吗,加入以后都干些什么?安徽汽车网安徽什么汽车网站比较好?硬盘的工作原理硬盘的工作原理?是怎样存取数据的?地陷裂口山崩地裂的意思丑福晋历史上真正的八福晋是什么样子的?haole16.com高手们帮我看看我的新网站WWW.16mngt.com怎么不被收录啊?789se.comwuwu8.com这个站长是谁?www.15job.com广州天河区的南方人才市场javlibrary.comSSPD-103的AV女主角是谁啊1!!!!求解铂金血痕手上出现这种血痕是什么情况。有谁知道能告诉下吗? 怎么治疗!
免备案空间 万网优惠券 云鼎网络 韩国网名大全 免费个人空间申请 毫秒英文 卡巴斯基官方免费版 工信部icp备案号 国外ip加速器 无限流量 smtp虚拟服务器 论坛主机 石家庄服务器托管 lamp是什么意思 镇江高防 架设代理服务器 winserver2008r2 weblogic部署 连连支付 paypal兑换 更多