流程图:
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代码文本。
查看错误:仿真后,鼠标移到错误处,如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搭建好,就能用了。
https://content.helpme-codesys.com/zh-CHS/CODESYS%20SoftMotion/_sm_components.html
轴配置,凸轮,CNC数控,轴组机器人
如果使用机械臂,就需要用到轴组,组态好后,调用 SM3_Robotics 这个库
G解释:
| 无需工具操作直接移动;直线运动 | |
| 工具操作的直线运动 | |
| 圆段或圆,顺时针 | |
| 圆段或圆,逆时针 | |
| 停留时间 | |
| 二维基数样条的点 | |
| 抛物线 | |
| 椭圆弧或椭圆,顺时针 | |
| 椭圆弧或椭圆,逆时针 | |
| 3D 基数样条的点 | |
| 切换到 2D | |
| 通过使用法线向量激活 3D 模式切换到 3D | |
| 通过激活 3D 模式切换到 3D | |
| 通过激活 3D 模式切换到 3D | |
| 通过激活 3D 模式切换到 3D | |
| 条件跳转 | |
| 写入值 | |
| 增量变量 | |
| 刀具半径补偿结束 | |
| 刀具半径补偿开始,行进方向左侧 | |
| 刀具半径补偿开始,行进方向右侧 | |
| 刀具长度补偿开始。 | |
| 末端圆角/平滑 | |
| 开始角度平滑 | |
| 圆角开始 | |
| 结束坐标变换并将解码器坐标系重置为原始位置(=机器坐标系) | |
| 坐标的绝对变换 | |
| 坐标的相对变换 | |
| 设置 DCS 的当前方向、位置和缩放设置为参考点 | |
| 循环结束抑制 | |
| 循环抑制开始 | |
| 平滑附加轴结束 看: | |
| 开始平滑附加轴 看: | |
| 与内插器的时间同步 | |
| 该坐标 ( | |
| 该坐标 ( | |
| 跳跃定位 | |
| 轴中点 ( | |
| 轴中点 ( |