SMC_SegmentAnalyzer

这个功能块位于CODESYS SoftMotion 函数库 SM3_CNC

It can manage the division of a CNC path in several segments independent of the interpolator function block. With every call, the SMC_SegmentAnalyzer outputs basic information about the current path segment and adds up the time that will be needed for its interpolation.

限制因素

这个功能块通过读取数据结构体 OutQueue 进行操作,因此在功能块启动之前,完整的路径必须映射到此。当 SMC_SegmentAnalyzer 功能块已经完全分析队列之后,下一个功能块的 OutQueue 处理 (通常为 SMC_Interpolater) 也可以启动。

默认情况下,功能块在特殊模式下不能进行停止、单步执行或者在线修改等用于接口操作。

功能块 SMC_SegmentAnalyzer

名称

类型

初始值

描述

VAR_IN

     

bExecute

BOOL

FALSE

当为 TRUE,功能块被激活

poqDataIn

POINTER TO SMC_OUTQUEUE

NULL

这个变量指向 SMC_OUTQUEUE对象,其中包含路径的 SMC_GEOINFO-对象;通常情况下他指向预处理模块(例如:SMC_NCDecoder)的 DataOut 输出。 SMC_OUTQUEUE应该定义一个适当的尺寸大小(见上文)!

iVelMode

SMC_INT_VELMODE

TRAPEZOID

速度模式 (等同于 SMC_Interpolator)。

dwIpoTime

DWORD

0

插补周期的循环时间 (定义类似于 SMC_Interpolator)

bMFunctionsPreAcknowledged

BOOL

FALSE

如果输入设置为 TRUE,每个 M-函数都会被提前获得。如果输入被设置为 FASLE,M-函数将会产生一个停止,但是他们会立即获得。

dJerkMax

LREAL

0

允许最大的加加速度的值 (与 相同)。

VAR_OUT

     

bDone

BOOL

FALSE

一旦输入数据..DataIn 被完全处理输出将会被设置为 TRUE 。从此之后模块将不会在有其他动作直到下次复位。如果输入bExecute为 FALSE , bDone将会被复位为 FALSE。

bBusy

BOOL

FALSE

TRUE,功能块的处理没有完成。

bError

BOOL

FALSE

如果功能块内部发生错误信号

wErrorID

SMC_ERROR

SMC_NOERROR

错误ID

可能的错误

  • SMC_SA_QUEUE_NOT_IN_BUFFER
  • SMC_SA_QUEUE_CHANGED_DURING_OP

segCurrentSegment

SMC_SEGMENT

NULL

当前段落的描述

dTime

LREAL

 

插补时间,必须指定并可以添加

SMC_SEGMENT类型

名称

类型

描述

eType

SMC_SEGMENTTYTE

ACC, CONST, DEC, M

dLength

LREAL

对象的长度

dTiime

LREAL

插补需要时间

dVelStart

LREAL

起始程序的速度

dVelEnd

LREAL

最后程序的速度

iStartObj

INT

队列中启动对象的位置

dPosInStartObj

LREAL

对象启动点相关的初始化语句

iDestObj

INT

队列中最后对象的位置

dPosInDestObj

LREAL

起始端相对于起点的位置

dAccStart

LREAL

起点加速度 (正弦曲线)

dAccEnd

LREAL

终点加速度 (正弦曲线)

dJerk

LREAL

加加速度 (正弦曲线),只用于改变加速度