Gcode文件处理和执行

流程图: 

1:SMC_OutQueue  不带参数
                                    >>>SMC_Interpolator  插补算法
2:CMC_CNC_REF 带参数
                                  >>>smc_NCDecoder 图型解析
                                  >>>ToolCorr  刀补
                                  >>>SmoothPath  圆弧
                                  >>>checkVelocities  速度
3:File 文件.txt/.cnc/.gcode
                                  >>>ReadNCFile 文件解析
                                  >>>smc_NCDecoder 图型解析
                                  >>>ToolCorr  刀补
                                  >>>SmoothPath  圆弧
                                  >>>checkVelocities  速度 (最后处理)
SMC_Interpolator  插补算法
SMC_TRAFO_Gantry3      轴组坐标// 这个轴组模型有多种样式
SMC_ControlAxisByPos   电机定位

轴组坐标: 

// O:以理论坐标点反向计算实轴位置
SMC_TRAFO_5Axes (FB)             解析,XYZ,+倾斜+方位(5轴加工中心)
SMC_TRAFO_Gantry2 (FB)           解析,XY轨迹
SMC_TRAFO_Gantry2Tool1 (FB)      解析,XY+刀具距离
SMC_TRAFO_Gantry2Tool2 (FB)      解析,带刀补的XY轨迹
SMC_TRAFO_Gantry3 (FB)           解析,XYZ轨迹(笛卡尔坐标)
SMC_TRAFO_GantryCutter2 (FB)     解析,XYR轨迹(R刀片方位)// 裁纸机
SMC_TRAFO_GantryCutter3 (FB)     解析,XYZR轨迹 //雕核桃机,雕刻鸡蛋
SMC_TRAFO_GantryH2 (FB)          解析H,由XY计算出辅助AB轴位置(皮带串联型龙门)
SMC_TRAFO_GantryT2 (FB)          解析T,由XY计算出辅助AB轴位置
SMC_TRAFO_GantryT2_O (FB)        具有固定驱动器的T型龙门架系统的反向转换(替代驱动器配置)。

————————————————
版权声明:本文为CSDN博主「cfqq1989」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/cfqq1989/article/details/130835670

  

SMC_NCDecoder (FB)    // 用于加载  CMC_CNC_REF 的实例

接口:
ncprog    SMC_CNC_REF实例,由CNC编辑器创建(如绑定 CNC2)

输入:
bExecute    上升沿开始。
bAbort        TRUE,处理中止
bAppend        TRUE,文本追加
bStepSuppress        TRUE,忽略 \\/ ' 文本
piStartPosition        路径的起始位置。
vStartToolLength    开始刀具长度。
nSizeOutQueue         数据缓冲区的大小
pbyBufferOutQueue    SMC_OUTQUEUE结构数组
bEnableSyntaxChecks    检测无效的g代码
eOriConv                定义解释A/B/C单词方向的方式。
dCircleTolerance        过滤圆

输出:
bDone        TRUE处理完毕
bBusy        TRUE,忙
bError        错误
wErrorID      错误识别
poqDataOut    SMC_GEOINFO对象
iStatus        当前状态。
iLineNumberDecoded    CNC文件的行号
GCodeText             g代码文本。

 

SMC_ERROR (ENUM)

查看错误:仿真后,鼠标移到错误处,如1259,缓存过小 ,解决如下

b1: ARRAY[0..500] OF SMC_GCODE_WORD;   //读程序缓存
b2:ARRAY [1..500] OF SMC_GEOINFO;       //刀具处理缓存
b3:ARRAY [1..1000] OF SMC_GEOINFO;		//REF
b4:ARRAY [1..1000] OF SMC_GEOINFO;       //kd 
b5:ARRAY [1..100] OF SMC_GEOINFO;

G代码文件》保存到PlcLogic文件内》_cnc文件夹内

_cnc文件夹内》 文件必须要有后缀,如(.txt)  .cnc等等

举例   BaiPiao3.txt    test.cnc
N000 G01 X653.718873935723 Y300.00000011946759 F11000 E600000 E-600000 
N010 M10 
N020 G03 I-30 J0 T360 F11000 E600000 E-600000 
N030 M11 
N040 G01 X1685.6174468465749 Y250.00000082461159 F11000 E600000 E-600000 
N050 M10 
N060 G03 I-75 J0 T360 
N070 M11 
N080 G01 X1947.1607807058319 Y300.00000030854062 F11000 E600000 E-600000 
N090 M10 
N100 G03 I-75 J0 T360 F11000 E600000 E-600000 
N110 M11 
N120 G01 X1902.1603955222131 Y-149.9999994683094 F11000 E600000 E-600000 
N130 M10 
N140 G03 I-30 J0 T360 F11000 E600000 E-600000 
N150 M11 
N160 G01 X2477.87813524244 Y-816.40000000000327 F11000 E600000 E-600000 
N170 M10 
N180 G01 X17.999999999999549 F11000 E600000 E-600000 
N190 G01 Y816.40000000000146 F11000 E600000 E-600000 
N200 G01 X2477.87813524244 F11000 E600000 E-600000 
N210 G01 Y-816.40000000000327 F11000 E600000 E-600000 
N220 M11 

SMC_ReadNCFile_0  : SMC_ReadNCFile ;   //(ascii)文件路径 '_cnc/BaiPiao3.txt' 
SMC_NCDecoder_0  // G代码解析
SMC_CheckVelocities_0  //检查速度
//=======================
SMC_Interpolator   //插补算法
SMC_TRAFO_Gantry3  //3轴坐标      SMC_TRAFO_5Axes  //5轴坐标
SMC_ControlAxisByPos // 轴定位

x轴当前位置 := SMC_NCDecoder_0.piStartPosition.dX;

//  SMC_CheckVelocities_0.bBusy

SMC_Interpolator_0    // 插补算法
SMC_TRAFO_Gantry3_0 : SMC_TRAFO_Gantry3 ; // 3轴坐标

SMC_ControlAxisByPos_x   // x轴定位
SMC_ControlAxisByPos_y   // y轴定位
SMC_ControlAxisByPos_z   // z轴定位

OR

另外PLC可以读取PC的d盘,需要用到sysfile和 文件访问的库函数。

常用函数库名称:SysFile/SysDir/File Access

电子齿轮:
        主轮:虚轴坐标
        从轮:(比如X轴)

//==================================================================

 1编程软件

 2添加G代码文件

SMC_OutQueue   1:不带参数的G代码文件
SMC_CNC_REF    2:带刀具参数的G代码文件  解析函数用: SMC_NCDecoder
File           3:G代码文本   文件扩展名: TXT, GCODE, CNC


https://content.helpme-codesys.com/zh-CHS/CODESYS%20SoftMotion/_sm_cnc_edt_basics.html

一般用第2个:    SMC_CNC_REF

 

 可以加载2种文件: .dxf .cnc   格式

 

 如果没有N编号,点击》重新对CNC程序编号

 

SM3_CNC.SMC_NCDecoder

就是用来加载对象的。  所以 对象的名字必须一致。
上面用CNC2 命名,那 ncprog 就必须填 CNC2

参考前面的框架图,把CFC搭建好,就能用了。

SMC_GSentenceQueue

SMC_CNC_REF

SMC_NCDecoder (FB)

 

https://content.helpme-codesys.com/zh-CHS/CODESYS%20SoftMotion/_sm_components.html

轴配置,凸轮,CNC数控,轴组机器人

如果使用机械臂,就需要用到轴组,组态好后,调用 SM3_Robotics 这个库

G解释: 

G0

无需工具操作直接移动;直线运动

定位

G1

工具操作的直线运动

直线运动

G2

圆段或圆,顺时针

G3

圆段或圆,逆时针

G4

停留时间

停留时间

G5

二维基数样条的点

样条

G6

抛物线

抛物线

G8

椭圆弧或椭圆,顺时针

椭圆

G9

椭圆弧或椭圆,逆时针

椭圆

G10

3D 基数样条的点

样条

G15

切换到 2D

3D 模式

G16

通过使用法线向量激活 3D 模式切换到 3D I/J/K 到飞机

3D 模式

G17

通过激活 3D 模式切换到 3D X/Y 飞机

3D 模式

G18

通过激活 3D 模式切换到 3D Z/X 飞机

3D 模式

G19

通过激活 3D 模式切换到 3D Y/Z 飞机

3D 模式

G20

条件跳转 L, 如果 K <> 0

G36

写入值 D 变 O

改变变量的值

G37

增量变量 O 按价值 D

改变变量的值

G40

刀具半径补偿结束

预处理

G41

刀具半径补偿开始,行进方向左侧

预处理

G42

刀具半径补偿开始,行进方向右侧

预处理

G43

刀具长度补偿开始。

预处理

G50

末端圆角/平滑

预处理

G51

开始角度平滑

预处理

G52

圆角开始

预处理

G53

结束坐标变换并将解码器坐标系重置为原始位置(=机器坐标系)

移动、旋转和缩放坐标系

G54

坐标的绝对变换

移动、旋转和缩放坐标系

G55

坐标的相对变换

移动、旋转和缩放坐标系

G56

设置 DCS 的当前方向、位置和缩放设置为参考点

移动、旋转和缩放坐标系

G60

循环结束抑制

预处理

G61

循环抑制开始

预处理

G70

平滑附加轴结束

看: SMC_SmoothAddAxes

预处理

G71

开始平滑附加轴

看: SMC_SmoothAddAxes

预处理

G75

与内插器的时间同步

与内插器的时序同步

G90

该坐标 (X/Y/Z/A/B/C/P/Q/U/V/W) 被解释为绝对值。 (这是默认设置。)

模式

G91

该坐标 (X/Y/Z/A/B/C/P/Q/U/V/W) 被解释为相对于当前位置的值。

模式

G92

跳跃定位

模式

G98

轴中点 (I/J/K) 被解释为绝对值。

模式

G99

轴中点 (I/J/K) 被解释为相对于起始位置的值。 (这是默认设置。)

模式

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值