SMC_LimitDynamics

这个功能块位于CODESYS SoftMotion 函数库 “SM3_Basic”。此功能块用于减少路径的速度,加速度以及减速度值这样附加轴(Z, P, Q, U, V, W)的速度,加速度以及减速度值将不会处理功能块的输入变量 dMaxVel, dMaxAcc and dMaxDec。

提示!

此功能块是之前版本中SMC_LIMITADDAXISDYNAMICS 功能块的重命名。

 

类型

初始值

描述

VAR_IN

     

bExecute

BOOL

FALSE

当为 TRUE,此功能块被激活

bAbort

BOOL

FALSE

如果为 TRUE,当前处理的功能块被中止。

bAppend

BOOL

FALSE

如果 bExecute 的上升沿为 FALSE ,那么输出的 poqDataOut 队列将为空

poqDataIn

POINTER TO SMC_OUTQUEUE

0

这个变量指向 SMC_OUTQUEUE-结构体对象, 其中包含未进行路径圆滑的 SMC_GEOINFO-对象;通常情况下指向预处理模块的 ...DataOut 输出

wAxis

WORD

按位指定的需要进行操作的轴:

  • X: Bit0
  • Y: Bit1
  • Z: Bit2
  • A: Bit3
  • B: Bit4
  • C: Bit5
  • P: Bit6
  • Q: Bit7
  • U: Bit8
  • V: Bit9
  • W: Bit10

示例:变量 16#104 将会对Z 轴和U轴有一个限制

dMaxVel

LREAL

0

定义轴的最大速度值

dMaxAccDec

LREAL

0

定义轴的最大加速度以及减速度值

bIncludePath

BOOL

0

TRUE:同时限制路径速度,加速度以及减速度 (F, E+, E-) 通过 dMaxVel 以及 dMaxAccDec指定的特殊变量。

nSizeOutQueue

UDINT

0

这个变量包含数据缓冲区的大小,GEOINFO 结构体对象列表将会被写入。这个缓冲区的大小至少与 GEOINFO 结构体相同。否则, SMC_NCDecoder将根本不会进行任何处理

尺寸大小可以预先定义,但是可以在下次复位之前进行修改。可以通过以下方式创建一个缓冲区:

ExampleBuf:  ARRAY[1..50] OF SMC_GEOINFO  

创建的缓冲区大小可以通过sizeof(ExampleBuf操作进行读取。

pbyBufferOutQueue

POINTER TO ARRAY[0..0] OF SMC_GEOINFO

0

这个输入必须指向 OUTQUEUE-结构体定义的内存区域的第一个字节地址。定义的这个区域至少与 nSizeOutQueue 定义的一样大。通常情况下IEC中存储区域的定义是通过定义一个 SMC_GEOINFO 数组实现的 (例如:BUF: BUF: ARRAY[1..50] OF SMC_GEOINFO这个缓冲区可以存储50个路径元素)。变量值可以预定义,但是在下次复位前不能被修改。

VAR_OUT

     

bDone

BOOL

FALSE

如果输入数据...DataIn 被完全处理,那么这个变量将=会被设置为 TRUE 。因此在复位之前此模块不会执行其他动作。如果输入 bExecute 为 FALSE, bDone 将会被复位为 FALSE。

bBusy

BOOL

FALSE

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

bError

BOOL

FALSE

功能块内部发生错误信号

wErrorID

SMC_ERROR

SMC_NOERROR

错误ID

poqDataOut

POINTER TO SMC_OUTQUEUE

0

这个变量指向 SMC_OUTQUEUE-结构体,用于管理循环路径中的 SMC_GEOINFO-对象