硬件要求:
中型PLC(汇川AM600,禾川HCQ0),且带 SM3_CNC.library 库(3.5.6支持离线仿真)
G代码标准: DIN66025
DIN66025-1标准
G0 运动定位
G1 线性插补
G2 顺圆插补
G3 逆圆插补
G4 等待
G6 抛物线插补
G8 椭圆插补
M指令块:SMC_Interpolator 插补算法(按时间节拍,截取位置)
SMC_Interpolator //插补器(遇到M指令会暂停)
bAcknM置位(继续插补)
wM输出M指令值
H点胶指令:开关量
SMC_Interpolator //插补器(遇到H指令不停顿)
N90 G1 X20
N100 G1 X100 H2 L20 H-2 L-10 //起点加20位置点胶,终点-10位置取消
// H指令不会影响运动速度
辅助轴:
插补轴:X,Y,Z
辅助轴:A,B,C,P,Q,U,V,W // 8个辅助轴
轴排序:ALL := 16#FFFF;
X := 2#1 ;
Y := 2#10 ;
Z := 2#100 ;
A,B,C,P,Q,U,V,W,A6,ALL,
库的用法:解析G代码文件
SMC_Interpolator 插补算法(按时间节拍,截取位置)
SMC_OutQueue,SMC_CNC_REF,File //位置流,带参位置流,文件流
SMC_ReadNCFile // G代码文件读取//仿真路径
// C:\ProgramData\CODESYS\Simulation\PlcLogic\
SMC_NCDecoder // G代码文件解码》输出poqDataOut(位置坐标流/轨迹坐标)
SMC_ToolCorr // 工具参数
SMC_SmoothPath // 轨迹平滑
SMC_CheckVelocities // 轨迹速度检查》输出的轨迹数据要给插补器 poqDataOut
SMC_Interpolator // 插补器,运算: 》输入:轨迹数据poqDataOut
// 》输出:piSetPosition
SMC_TRAFO_Gantry3 // 解析出3轴坐标 》输入:pi
// 》输出:dx,dy,dz分发给轴定位控制
SMC_ControlAxisByPos // X axis 轴定位 XYZABC
1读取G代码文件解析
G代码文件》保存到 _cnc文件夹内
NC文件路径: STRING := '_cnc/gcode.cnc'; //PLC参考路径在本体主根目录下,G代码放在_cnc文件夹内
// (后续以这个路径参考点再添加文件深度)
放该文件夹内 ,文件名例如: SouJiKe.txt // 雕刻手机壳的G代码文件
2插补运算:SMC_Interpolator插补器, poqDataOut轨迹
利用 SMC_CheckVelocities(轨迹速度检查)的输出做输入
poqDataOut轨迹流
SMC_Interpolator 插补算法(按时间节拍,截取位置)
piSetPosition 输出以时间为节拍的坐标流
SMC_TRAFO_Scara2 解析出节拍坐标位置》并发给对应的伺服电机
库函数:POU 功能块
SM3_CNC , ( 3.5.8.0 )
SM_CNC_POUs》SoftMotion CNC》SoftMotion Function Blocks
SM3_CNC, 3.5.8.0
Project Information // get项目信息
SM_CNC_Data types // SM_CNC_数据类型
SM_CNC_POUs // CNC程序块 SMC_ReadNCFile文件 SMC_ReadNCQueue队列
SM_Trafo_Data type // 轴组,龙门,机器人,数据类型
SM_Trafo_POUs // 轴组转换功能块 Gantry systems龙门系统
Visu_Templates // 模板
Visu_Templates_New // 新模板
轴组:龙门轴组,6轴机械臂,码垛机,行架 等
添加轴组后,可以选轴组类型,龙门数控或者搬运机械臂等。。。
转换FB块为5轴_龙门。
5轴由:X,Y,Z,A,B 轴组成
4是A轴:是旋转轴。(垂直于Z轴旋转,比如刀片)
3是B轴:是倾斜轴。(与Z角度角度调节,如铣刀倒角)
刀具长度(u) :
双X轴龙门:
这里涉及到2个电机:x1轴和x2轴
x1轴为主,x2轴为从,x2轴一直去追赶x1轴的坐标位置。
在齿条型的X大梁,x2轴如果与x1轴位置超差过大,会导致X大梁卡死。所以x2轴要配置成:(力矩加定位)的混合模式。
函数使用: MC_GearIN 电子齿轮功能 (注:注意从轴的追赶速度值大小)
脱开: MC_GearOut 断开耦合
另一种方案是:
新建一个虚轴。
x1和x2去追赶虚轴的坐标。
圆弧插补:
SMC_RoundPath
轴组状态:
SMC_GroupPower 电源
MC_GroupEnable 使能
MC_MoveLinearAbsolute 直线绝对运动
MC_AddAxisToGroup 添加轴组