这个功能块位于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) 也可以启动。
默认情况下,功能块在特殊模式下不能进行停止、单步执行或者在线修改等用于接口操作。
名称 |
类型 |
初始值 |
描述 |
---|---|---|---|
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 可能的错误
|
segCurrentSegment |
SMC_SEGMENT |
NULL |
当前段落的描述 |
dTime |
LREAL |
插补时间,必须指定并可以添加 |
名称 |
类型 |
描述 |
---|---|---|
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 |
加加速度 (正弦曲线),只用于改变加速度 |