SMC_TranslateQueue3D

这个功能块位于CODESYS SoftMotion library SM3_CNC.library。处理此功能块存储在 poqDataIn 中的路径将会根据给定的矢量 vec进行转换,此矢量的结构体类型为 SMC_VECTOR3D

输入变量 poqDataIn 是一个指向结构体 SMC_OUTQUEUE的指针,描述了需要进行转化的路径。输入变量 bEnable 的初始值 FALSE 将会阻止路径的旋转。一旦 bEnable 被置为TRUE,poqDataIn中所有的 GEOINFO-对象都将会被进行处理。当 bEnable 被置为 FALSE,模块将不会处理任何修改。

如果输入变量 bReset 的初始值为 FALSE ,那么在poqDataIn中找打的 GEOINFO-对象将不会进行处理,只执行一个路径的添加。

因此,在路径处理过程中,转化过程中字符参数 vec 的突然变换将会导致路径被破坏,对当前输入的修改将不会立即起作用,直到 poqDataIn 中的 SMC_OUTQUEUE 或者一个复位 (bReset) 发生时。

 

类型

初始值

描述

VAR_IN

 

 

 

bExecute

BOOL

FALSE

当为 TRUE,功能块将会被激活

bAppend

BOOL

FALSE

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

poqDataIn

指向 SMC_OUTQUEUE

0

指向一个 IEC 应用定义的足够大的,空的数据区域(缓冲区)。

vec

SMC_VECTOR3D

1

 

nSizeOutQueue

UDINT

0

这个变量包含数据缓冲区的大小,GEOINFO 结构体对象列表将会被写入。缓冲区的大小至少应为 GEOINFO 结构体的五倍大小。否则 SMC_NCDecoder将不会有任何的效果。尺寸大小可以预定义 ,并且可以在下次复位之前进行修改。可以通过以下方式进行缓冲区的定义

ExampleBuf: Array of SMC_GeoInfo

可以使用的缓冲区大小可以通过操作 sizeof(ExampleBuf)获取。

dbyBufferOutQueue

指向 BYTE

0

以位为单位缓冲区大小

VAR_OUT

 

 

 

bDone

BOOL

FALSE

一旦 poqDataIn 进行处理,此变量将会被设置为 TRUE 。一旦此变量被置位模块的任何输入都不会被执行知道下次复位。如果输入 bExecute 为 FALSE, bDone 将会被复位为 FALSE。

bBusy

BOOL

FALSE

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

bError

BOOL

FALSE

功能块内部发生错误信号。

wErrorID

SMC_ERROR

SMC_NO_ERROR

错误ID

poqDataOut

指向 SMC_OUTQUEUE

0

指向 SMC_OutQueue 结果