作用:
由于读取G代码文件。解析给SMC_NCDecoder
SMC_ReadNCFile
// in
bExecute 上升沿:开始执行。TRUE时,功能块处于活动状态。
sFileName 文件路径
pvl 如果CNC程序中没有变量,则不会设置此输入。SMC_VARLIST列表
pBuffer 在IEC应用程序中分配的足够大的空闲数据区(缓冲区)上的指针。强烈建议将
缓冲区分配为ARRAY[0..x]OF|ioSMC_GCODE_WORD|,以确保数据对齐正确。
字节数组[0..x]的定义可能会导致某些平台上的数据访问不对齐。
dwBufferSize 缓冲区的大小(以字节为单位)
fDefaultVel 默认速度;(如果CNC文件中未指定速度,则使用。)
fDefaultAccel 默认加速度;
fDefaultDecel 默认减速度
fDefaultVelFF (G0)默认速度
fDefaultAccelFF (G0)默认加速度
fDefaultDecelFF (G0)默认减速度,使用非负值。
b3DMode 如果为TRUE,则隐含执行G17命令(激活3D模式)。
pStringBuffer 指向SMC_StringBuffer类型的对象的指针。该对象用于存储G代码程序中定义的字符
串,以便使用G36和37将其写入变量。如果指针未设置(0),并且G代码程序中使用
了字符串常量,则会生成错误。(SMC_RNCF_NO_STRINGBUFFER)。
bEnableSyntaxChecks 打开语法检查,在这种情况下会检测到无效的G代码并以错误停止
// out
bDone 如果参数可用,则为TRUE
bBusy 功能块执行未完成时为TRUE
bError TRUE表示发生错误。
ErrorID 错误识别,SMC_Error
bExecuteDecoder 用于触发SMC_NC解码器模块的输入执行的信号。
ncprog CNC程序,随后的SMC_NC解码器模块的输入。
dwFileSize %1(%2)文件的大小(以字节为单位)。
dwPos 光标在文件中的当前位置。
SMC_NCDecoder NC解码器
SMC_NCInterpreter |
FUNCTION_BLOCK最终SMC_NC解码器
此功能块用于将CNC程序(Din 66025,G代码)转换为SMC_GEOINFO对象列表。在每个循环中,对程序的一行进行解码。
笔记
一行中M函数的最大数目为64。如果G代码在一行中包含超过64个M函数,则会出现错误SMC_DEC_OUTQUEUE_RAN_EMPTY。这种限制可以通过在序列的第一个M-函数之前插入G75来规避。G4元素也算作M-函数。
笔记
从编程系统的V3.5 SP2开始,iLineNumberDecoded存储CNC文件刚刚编码的基于0的行号。在早期的版本中,特别是CODESYS V2.3,语句编号(=N字的值)已经存储在那里。
笔记
此功能块已被SMC_NCInterpreter取代,仅为兼容性而保留。建议使用SMC_NCInterpreter(以及SMC_ReadNCFile2),它具有其他功能,如中的数学表达式或子程序
SMC_NCDecoder
// in
ncprog
bExecute
bAbort
bAppend
bStepSuppress
piStartPosition
vStartToolLength
nSizeOutQueue
pbyBufferOutQueue
bEnableSyntaxChecks
eOriConv
dCircleTolerance
// out
bDone
bBusy
bError
wErrorID
poqDataOut