SMC_ExtendedVelocityChecks

这个功能块位于CODESYS SoftMotion 函数库 SM3_CNC。用于减少路径的速度,加速度以及减速度以至于得到的速度,加速度和减速度可以被附加轴 (Z, P, Q, U, V, W) 使用并且不会处理设置在 SMC_GEOINFO 中的变量 adVelAddAx[0..6], adAccAddAx[0..6] 以及 adDecAddAx[0..6]值。

这些限制通常是使用 G代码中的关键字FZ, FP, FQ, FU, FV, FW 以及 EZ, EP, EQ, EU, EV, EW.定义在 G-代码中。

更多的,G代码中的关键字FF 以及 EF 在使用G0时定义附加轴的速度,加速度和减速度。

FF0, FZ0, FP0, FQ0, ..., FW0复位附加轴的速度限制。EF0, EZ0, ..., EW0复位附加轴的加速度或者减速度设置。

FZ 以及 EZ 只在二维模式下可以使用。

附加的EA, EB, EC 以及 FA, FB 以及 FC 关联到 A, B 和 C 覆盖轴 U, V 和 W。

Function block SMC_ExtendedVelocityChecks

名称

类型

初始值

描述

VAR_IN

     

bExecute

BOOL

FALSE

当为 TRUE,功能块被激活

bAbort

BOOL

FALSE

中止功能块执行

bAppend

BOOL

FALSE

如果位于bExecute的上升沿为 FALSE,输出队列poqDataOut为空。

poqDataIn

POINTER TO SMC_OUTQUEUE

0

这个输入指向SMC_OUTQUEUE结构体对象,此对象描述了路径中的SMC_GEOINFO对象;通常情况下指向预处理模块的poqDataOut输出 (例如:SMC_NCDecoder/SMC_SmoothPath).

SMC_OUTQUEUE

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

     

bBusy

BOOL

FALSE

TRUE,功能块的处理没有完成并且路径对象仍旧在运行

bDone

BOOL

FALSE

 

bError

BOOL

FALSE

功能块内部发生错误信号

wErrorID

SMC_ERROR

SMC_NOERROR

错误ID

poqDataOut

POINTER TO SMC_OUTQUEUE

0

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

SMC_OUTQUEUE

示例

加速度和减速度用于对附加轴进行限制。在表达式N0中,附加轴 P 的加速度被限制为 10,加速度被限制为 13。在表达式N1中,附加轴 P 的限制会被重置。在语句N1通过关键字EP0将两者设置为0.

G-code

N0 G1 X100 EP10 EP-13 P100 
N1 G1 X200 EP0 P0
 

G-code

N20 M9
N030 F10 E40.0 E-40.0
N040 M8
N050 G92 X0.0 Y0.0 Z570.0 U35.0 V225.0 W20.0 P382.0 (Starting position)
N060 G1 X0.0 Y0.0 Z570.0 U35.0 V225.0 W20.0 P382.0
N230 G0 X0.0 F200.0 E200.0 E-200.0
N240 M7
N250 F50.0 E40.0 E-40.0
N260 G0 U100.0 V158.0 W100.0 P260.0 Y100.0 Z400.0 F50.0
N270 G0 V125.0 P260.0 Z400.0 FV1.25 EV500 EV-500 (additional axis V is set)
N280 G0 V170.0 P260.0 Z400.0 FV50.0
N285 G0 V170.0 P260.0 Z400.0 FP100.0 EP500 EP-500 (additional axis P is set)
N290 G0 X0.0 F200.0 E200.0 E-200.0
N300 M7
N310 F50.0 E40.0 E-40.0
N320 G0 U100.0 V158.0 W100.0 P260.0 Y100.0 Z400.0 F50.0
N330 G0 V125.0 P260.0 Z400.0 F1.25
N340 G0 V170.0 P260.0 Z400.0 F50.0
N350 M8