这个功能块位于CODESYS SoftMotion 函数库 ⇘ SM3_CNC.library。这个功能块 SMC_NCDecoder 用于转化一个CNC程序 (Din 66025, G-Code),此程序是由CNC编辑器创建的,并转化为 SoftMotion-GEOINFO-结构体对象列表。在每个循环周期内一行程序将会被解析。
从 V3.5 SP2 程程统统后后,iLineNumberDecoded 仅仅储储码码 0-based CNC 文件的行号。在之前的版本中,尤其是 CODESYS V2.3,语句的序号 (= 关键字 N-之后的数字) 将会被存储在这里。 |
类型 |
初始值 |
描述 |
|
---|---|---|---|
VAR_IN_OUT |
|||
ncprog |
在这个变量CNC程序 (结构体 SMC_CNC_REF)将会被处理 。这个程序可能是由IEC程序创建的或者是由内部CNC编辑器创建的。 |
||
VAR_IN |
|||
bExecute |
BOOL |
FALSE |
当 TRUE 时,功能块被激活 |
bAbort |
BOOL |
FALSE |
如果为 TRUE ,功能块当前的处理将会被中断 |
bAppend |
BOOL |
FALSE |
只要输入一直为 FALSE, DataOutQueue 将会在每次复位时都被清除。一旦保持为 TRUE,新增加的数据将会被写入到 DataOutQueue 的结尾 |
bStepSuppress |
BOOL |
FALSE |
当次输入为 TRUE,以 ‚/’ 开始的CNC程序中的行将会被忽略。否则将会进行处理。 |
piStartPosition |
0 |
点的位置,从这里插补运动将会启动 |
|
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: 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-对象 |
iStatus |
WAIT_PROG |
这个枚举变量表示当前模块的状态。可能的状态: WAIT_PROG (0) : 没有发现程序 READ_WORD (1) : 按字读取 PROG_READ (2) : 到达程序结尾 |
|
iLineNumberDecoded |
INT |
0 |
这个变量包含最后一行处理的行序号 (不是实例序号) 。 |
GCodeText |
|
|