这个功能块位于CODESYS SoftMotion 函数库   
                     
                        ⇘
                      SM3_CNC.library。模块将检查 OutQueue 中与半径相关的特定元素。当按照常量速度来进行移动时 (v) 将会将一个线按照半径 r 转换为一个圆弧,路径的加速度将会从 0 跳转到 。为了防止这个加速度跳到一个不可预知的值,在弧形转换处的速度值
。为了防止这个加速度跳到一个不可预知的值,在弧形转换处的速度值 必须要进行设定。
必须要进行设定。
模块控制两个元素之间的转换(线与圆弧之间,圆弧与线之间以及圆弧与圆弧之间)并适应第一个元素的结束速度,这样加速度跳跃将不会处理变量 dMaxAccJump。
更多的,模块通过圆弧的路径速度的适当方式将路径的加速度限制为变量 dMaxAcc
| 类型 | 初始值 | 描述 | |
|---|---|---|---|
| VAR_IN | |||
| bExecute | BOOL | FALSE | 当 TRUE 时,功能块被激活 | 
| bAbort | BOOL | FALSE | 如果为 TRUE ,功能块当前的处理将会被中断 | 
| bAppend | BOOL | FALSE | 只要输入一直为 FALSE, DataOutQueue 将会在每次复位时都被清除。一旦保持为 TRUE,新增加的数据将会被写入到 DataOutQueue 的结尾 | 
| poqDataIn | POINTER TO SMC_OUTQUEUE | 0 | 这个变量指向SMC_OUTQUEUE 结构体对象,其中包含路径的 SMC_GEOINFO-对象;通常情况下他指向预处理模块(例如:SMC_NCDecoder)的 DataOut 输出。 ⇘ SMC_OUTQUEUE应该定义一个适当的尺寸大小(见上文)! | 
| dMaxAcc | LREAL | 0 | 这个输入变量定义圆周运动的最大加速度值。变量值为 0 将不会产生任何的检测。 | 
| dMaxAccJump | LREAL | 0 | 这个变量定义两个对象之间跳转的最大加速度(a) 。如果值为 0 表示不进行任何的限制。 | 
| nSizeOutQueue | UDINT | 0 | 这个变量定义数据缓冲区大小,GEOINFO 结构体对象列表将会被写入。这个缓冲区至少应为 GEOINFO 结构体本身的五倍大小。否则,SMC_NCDecoder 将不会进行任何动作的执行。尺寸大小可以预先定义,但是在下次复位之前不能被修改。可以通过以下方法创建缓冲区 ExampleBuf: Array[ 1..50] of SMC_GeoInfo 定义的缓冲区大小可以通过sizeof(ExampleBuf)操作进行读取。 | 
| pbyBufferOutQueue | Pointer TO BYTE | 0 | 这个输入必须指向 OUTQUEUE-结构体定义的内存区域的第一个字节地址。定义的这个区域至少与 nSizeOutQueue 定义的一样大。通常情况下IEC中存储区域的定义是通过定义一个 SMC_GEOINFO 数组实现的 (例如: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-对象 |