跳转至

位置比较输出

1.1 简介

位置比较输出用于将编码器位置或者内部脉冲计数器位置与设定的位置进行比较,当位置准确达到设定的位置或者位置差达到设定的误差范围内,在通用输出(GPO)或者高速输出(HSO)硬件口输出脉冲或者设定的电平。

控制器和网络型模块内都有位置比较输出功能资源,两者之间的工作原理见下图。

位置比较输出原理示意图
重要
  1. 资源映射请参考“基本操作指南”章节,在开卡时已明确控制器和网络模块之间的资源映射。
  2. 网络模块中的1路位置比较输出资源可以同时控制多路HSO输出和多路GPO输出。
  3. 位置比较输出资源和硬件输出通道需要在同一个网络模块,不支持跨模块输出。

1.1.1 控制器资源

不同类型的控制器位置比较输出软件资源个数不一样,详细请参考下表,也可以通过指令GTN_GetResCount(参数type = MC_POS_COMPARE)获取控制器的位置比较输出软件资源个数。

型号 核1 核2
GSN-008-G-00 10 -
GSN-008-V-00 10 -
GSN-008-LT-01 10 -
GSN-024-G-01 10 10
GSN-024-V-01 10 10
GSN-024-LT-01 10 10
GSN-048-G-01 12 12

1.1.2 网络模块资源

网络型模块的位置比较输出资源和硬件输出类型及资源个数:

模块类型 位置比较输出个数 5V位置比较输出
(硬件通道路数)
24V位置比较输出
(硬件通道路数)
GNM401/601/602 2 - 10
GNM402 2 4 10
GNM403 2 2 10
伺服驱动器 1 1 7
GTM+位置比较子板 4 4 -
重要
  1. 伺服驱动器指的gLink-II驱动器,例如GSHD/GSFD等,具体型号请咨询我司工程师。
  2. 目前伺服驱动器仅支持1维位置比较输出。
  3. GTM中的位置比较输出子板是每个子板支持4路5V硬件输出通道。每个GTM可根据实际情况接多个位置比较输出子板。

1.2 位置比较硬件通道

1.2.1 指令列表

硬件通道控制权配置指令

指令 说明
GTN_SetTerminalPermitEx 设置硬件通道口的控制权。
GTN_GetTerminalPermitEx 获取硬件通道口的控制权。

1.2.2 重点说明

网络型模块包括2种硬件输出通道,即高速输出(HSOXX±,例如:HSO00±)和通用输出(GPOXX,例如:GPO00)。HSOXX和GPOXX硬件通道可以根据不同需求和不同的软件功能模块绑定,具体的软件功能可参考指令GTN_SetTerminalPermitEx中的参数permit解释说明。

默认状态下,GNM-402-00 和GNM-403-00 等模块的HSO00±、HSO01± 分别配置为激光功能的开关信号(Laser+ 和Laser-)和激光能量通道(即使能PWM 信号输出(PWM+ 和PWM-)),具体可参考《GNM系列GNM 模块用户手册》。此时,只能通过激光相关功能指令控制该硬件通道的输出,调用其他软件功能模块的指令对此硬件通道无效,默认状态下,GNM-402-00模块的HSO02±、HSO03±分别设置为第一路和第二路位置比较输出软件功能,可以通过位置比较输出功能控制该硬件通道的输出。获取所有HSOXX±硬件通道的控制权可以调用指令GTN_GetTerminalPermitEx

默认状态下,所有模块的GPOXX作为通用IO指令输出,可以通过GTN_SetDo等IO指令访问。获取所有GPOXX±硬件通道的控制权可以调用指令GTN_GetTerminalPermitEx

如果用户需要通过非默认功能模块控制HSOXX±或者GPOXX通道的输出,则可以调用指令GTN_SetTerminalPermitEx设置控制权。以GNM网络模块为例,设置硬件高速输出HSOxx的控制权如下图所示。

硬件通道控制权示意图

硬件通道控制权示意图

1.3 位置比较模式设置

1.3.1 指令列表

基础指令

指令 说明
GTN_SetPosCompareModeEx 设置位置比较模式参数。
GTN_GetPosCompareModeEx 获取位置比较模式参数。
GTN_SetPosCompareReference 设置位置比较参考轴参数。
GTN_GetPosCompareReference 获取位置比较参考轴参数。
GTN_SetPosCompareAddition 设置位置比较叠加轴参数。
GTN_GetPosCompareAddition 获取位置比较模式参数。
GTN_PosCompareStart 启动位置比较输出功能。
GTN_PosCompareStop 停止位置比较输出功能。
GTN_PosCompareClear 清除位置比较状态和数据。
GTN_PosCompareStatus 获取位置比较状态参数。
GTN_PosCompareInfo 获取位置比较信息参数。

1.3.2 重点说明

位置比较包括一维位置比较和二维位置比较。一维位置比较是对单轴编码器位置或者脉冲计数器位置进行比较,准确达到设定的位置在对应的硬件通道输出脉冲或者设定电平。二维位置比较是对双轴编码器位置或者脉冲计数器位置合成值进行比较,达到设定的位置误差范围内在对应的硬件通道输出脉冲或者设定电平。位置比较输出支持多种模式,例如:FIFO模式、线性模式、PSO模式等等。

1.4 位置比较FIFO模式

1.4.1 指令列表

Fifo模式相关指令

指令 说明
GTN_PosCompareData 压位置比较一维Fifo模式输出点。
GTN_PosCompareData2D 压位置比较二维Fifo模式输出点。
GTN_PosCompareData2DMass 批量传输二维位置比较输出数据。目前仅模式16支持

1.4.2 重点说明

如果位置比较点是无规律的非等间距位置值,可以选择FIFO模式。通过指令GTN_SetPosCompareModeEx设置位置比较输出模式为FIFO模式。

1.4.2.1 一维Fifo模式

用户通过指令GTN_PosCompareData压入所有位置比较点数据和输出通道及类型等参数,当编码器位置或者脉冲计数器位置准确达到设置的位置比较点,对应的硬件通道输出脉冲和电平。

例程

请参考位置比较一维Fifo模式例程

1.4.2.2 二维Fifo模式

用户通过指令GTN_PosCompareData2D增加位置比较输出数据(如[二维位置比较输出示意图](#center-二维位置比较输出示意图-center)中圆点T(Tx,Ty)为其中一个数据点)和输出通道及类型等参数。对于二维位置点T(Tx,Ty),运动位置到达[二维位置比较输出示意图](#center-二维位置比较输出示意图-center)的矩形内,对应的位置比较输出通道会输出电平或脉冲,其中 Mx = My = errorBand。

二维位置比较输出范围示意图

二维位置比较输出范围示意图

1.5 位置比较输出线性模式

1.5.1 指令列表

线性模式相关指令

指令 说明
GTN_SetPosCompareLinear 设置位置比较一维线性模式输出参数。
GTN_GetPosCompareLinear 获取位置比较一维线性模式输出参数。
GTN_SetPosCompareLinearBuf 设置位置比较一维线性模式多组输出参数。
GTN_SetPosCompareLinear2D 设置位置比较二维线性模式输出参数。
GTN_GetPosCompareLinear2D 获取位置比较二维线性模式输出参数。
GTN_SetPosCompareLinear2DBuf 设置位置比较二维线性模式多组输出参数。

1.5.2 重点说明

如果位置比较点是等间距位置值,可以选择线性模式。通过指令GTN_SetPosCompareModeEx设置位置比较输出模式为线性模式。

1.5.2.2 一维线性模式

一维线性模式下,用户通过指令GTN_SetPosCompareLinear设置起始位置、间隔距离、输出次数和输出类型。运控控制器自动根据上述参数转化成位置比较点发送给网络型模块,当编码器位置或者脉冲计数器位置准确达到设置的位置比较点,对应的硬件通道输出脉冲和电平。

如果用户想要设置一组线性模式参数,并且顺序执行相应的设定值,可以通过多次调用指令GTN_SetPosCompareLinearBuf实现。

例程

1.5.2.2 二维线性模式

二维线性模式下,用户通过指令GTN_SetPosCompareLinear2D设置起始位置、间隔距离、输出次数和输出类型。运控控制器自动根据上述参数转化成位置比较点发送给网络型模块,当编码器位置或者脉冲计数器位置准确达到设置的位置比较点,对应的硬件通道输出脉冲和电平。

如果用户想要设置一组线性模式参数,并且顺序执行相应的设定值,可以通过多次调用指令GTN_SetPosCompareLinear2DBuf实现。

例程

请参考位置比较二维linear模式设置多组参数例程

1.6 位置比较输出PSO模式

1.6.1 指令列表

PSO模式相关指令

指令 说明
GTN_SetPosComparePsoPrm 设置位置比较PSO参数。
GTN_GetPosComparePsoPrm 获取位置比较PSO参数。
GTN_BufPosCompareStartEx 插补缓冲区中启动位置比较输出PSO功能。
GTN_BufPosCompareStopEx 插补缓冲区中关闭位置比较输出PSO功能。

1.6.2 重点说明

如果比较位置点是等间距位置值,可以选择PSO模式。PSO模式的位置比较功能,需要搭配支持位置比较功能的网络型模块才可以实现。

通过指令GTN_SetPosCompareModeEx设置位置比较输出相关参数,支持一维、二维、三维PSO立即模式和一维、二维、三维PSO等待到位触发模式,PSO开关都是通过插补指令实现。

1.6.2.1 PSO立即模式(mode=2)

通过指令GTN_SetPosComparePsoPrm设置间隔距离。运控控制器把参数发送给网络型模块,在调用指令GTN_PosCompareStart启动位置比较后,PSO功能立即生效,不用等到插补缓冲区执行到指令GTN_BufPosCompareStartEx

在等间距输出开启时,当编码器位置或者脉冲计数器位置累积量达到设定间距的误差内,对应的硬件通道输出对应的脉冲和电平。

当插补缓冲区中指令执行到指令GTN_BufPosCompareStartEx时,会立即开始开始等间距输出。

当插补缓冲区中指令执行到指令GTN_BufPosCompareStopEx时,会立即停止输出。

1.6.2.2 PSO等待到位触发模式(mode=3)

PSO立即模式(mode=2)下,在插补缓冲区中执行到对应开关指令时,就立即打开或者关闭等间距输出。该行为对于伺服滞后系统,电机还没有到预期的位置就执行了PSO开关,会影响加工效果。

PSO 等待到位触发模式(mode=3),PSO的开关会等待编码器或者脉冲器计数到达预期位置的误差带以内,并且满足寻优条件后才执行PSO开关操作,能最大程度地保证电机到位才开关光,保证加工效果。

例程

1.6.2.3 脉冲当量不一致的PSO功能

标准PSO功能,默认要求X、Y、Z的当量必须一致,PSO距离为脉冲单位,如果X、Y、Z当量不一致时,会导致沿不同方向的打点距离不一致。脉冲当量不一致的PSO功能支持X、Y、Z 的当量不一致。

例如,对于二维空间,X轴的一个脉冲为0.2um,Y轴的当量为一个脉冲0.1um,PSO距离为1个脉冲。如果不考虑当量问题,按照原来X2+Y2的方式计算,那么会出现如图所示的情况,沿X轴运动时每0.2um输出脉冲,沿Y轴运动时每0.1um输出脉冲。

脉冲当量不一致的PSO功能示意图

脉冲当量不一致的PSO功能示意图

1.7 位置比较立即输出操作

1.7.1 指令列表

立即输出相关指令

指令 说明
GTN_PosComparePulseEx 位置比较通道立即输出多个设定脉冲的形态或者反转输出电平。
GTN_SetPosComparePulseCount 设置位置比较通道立即输出的脉冲个数。

1.7.2 重点说明

控制器支持立即输出模式。调用指令GTN_PosComparePulseEx设置HSIO 输出模式和高低电平持续时间等参数,再调用指令GTN_SetPosComparePulseCount立即输出对应的个数。

1.8 位置比较DMA功能

1.8.1 指令列表

dma功能相关指令

指令 说明
GTN_PosCompareHsOn 打开位置比较数据传输DMA功能。
GTN_PosCompareHsOff 关闭位置比较数据传输DMA功能。

1.8.2 重点说明

FIFO模式下,用户将位置比较数据通过指令压入控制卡,控制卡再将数据压入相应的网络型模块。DMA可以提高用户数据压入控制卡的传输速率,改善位置比较输出跑空的情况。

(1)每次压入控制器的数据段数量由用户设定,默认为200段。开启DMA后,数据段会先被压入DMA的缓存区中,当数据段数到达阈值,如200段后,系统会自动将缓存区中的指令下发到控制器。压完所有的数据段之后,再循环调用GTN_PosCompareDataGTN_PosCompareData2D指令将DMA缓存区中的剩余数据段(剩余的段数未达到阈值)压入运动控制器,直到指令返回值为0。

开启DMA功能后,位置比较输出功能的GTN_PosCompareStatus将查询的为PC端的剩余数据段空间,共有1000段空间。

插补、振镜和位置比较输出等不同功能或者不同通道同时开启DMA功能时,开启DMA功能指令(例如:GTN_CrdHsOnGTN_ScanHsOnGTN_PosCompareHsOn中的link参数应设为不同值。

例程

请参考位置比较一维Fifo模式例程