12
深圳市高川自动化技术有限公司 - 1 - 高川激光功能使用说明 目录 功能说明 .............................................................................................................................................. - 2 - 接口列表 .............................................................................................................................................. - 3 - 硬件接口说明 ...................................................................................................................................... - 4 - 立即模式编程说明 .............................................................................................................................. - 5 - 波形控制模式编程说明 ...................................................................................................................... - 9 - 位置比较控制模式编程说明 ............................................................................................................ - 10 - 文件版本 版本 时间 说明 1.0 2018.04.16 初稿-ou.cg

高川激光功能使用说明gcau170227.sk2.yithin.com/upLoad/file/20180509/...注:1.以上模拟量输出引脚以GCN800A 参考。具体参考硬件手册 立即模式编程说明

  • Upload
    others

  • View
    30

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 高川激光功能使用说明gcau170227.sk2.yithin.com/upLoad/file/20180509/...注:1.以上模拟量输出引脚以GCN800A 参考。具体参考硬件手册 立即模式编程说明

深圳市高川自动化技术有限公司

- 1 -

高川激光功能使用说明

目录

功能说明 .............................................................................................................................................. - 2 -

接口列表 .............................................................................................................................................. - 3 -

硬件接口说明 ...................................................................................................................................... - 4 -

立即模式编程说明 .............................................................................................................................. - 5 -

波形控制模式编程说明 ...................................................................................................................... - 9 -

位置比较控制模式编程说明 ............................................................................................................ - 10 -

文件版本

版本 时间 说明

1.0 2018.04.16 初稿-ou.cg

Page 2: 高川激光功能使用说明gcau170227.sk2.yithin.com/upLoad/file/20180509/...注:1.以上模拟量输出引脚以GCN800A 参考。具体参考硬件手册 立即模式编程说明

深圳市高川自动化技术有限公司

- 2 -

功能说明

激光控制包括三种控制模式(通过 NMC_LaserSetMode),如下:

模式 说明

基本控制模式 用户通过指令(立即或者缓冲区)直接控制激光的开关和能量

也可以设定为自动速度能量跟随

波形控制模式 用户下载‘能量—时间’数组到控制器,控制器在激光输出时,自动

按照数组设定的关系控制激光,如下示意(激光开):

分为点焊和线焊,

点焊,用户在调用 NMC_LaserTimeArrayOn 后,控制器按照设定的能

量-时间数组控制激光能量,直到最后一个点,然后关闭激光输出。

线焊,用户在调用 NMC_LaserTimeArrayOn 后,控制器按照设定的能

量-时间数组控制激光能量,直到最后一个点,并一直保持最后一个

点的能量。用户调用 NMC_LaserTimeArrayOff 后,控制器同样按照指

令新设定的数组控制激光能量,直到最后一个点,然后关闭激光输出。

位置比较控制模式 位置比较控制模式(SHIO),用于对门控信号进行控制,通常应用是

自动通过位置变化量(规划或者编码器)对门控信号进行打开或关闭

的控制方式,如下图示意:

Page 3: 高川激光功能使用说明gcau170227.sk2.yithin.com/upLoad/file/20180509/...注:1.以上模拟量输出引脚以GCN800A 参考。具体参考硬件手册 立即模式编程说明

深圳市高川自动化技术有限公司

- 3 -

接口列表

以下为激光控制相关的指令,具体原型及参数请参考头文件:

接口 说明

NMC_LaserSetMode 设置激光控制的模式。该模式的设定,约束相

应指令的功能和操作

NMC_LaserSetOutputType 激光物理信号输出类型配置

NMC_LaserSetParam 设置激光参数

NMC_LaserSetPower 设置立即输出激光的能量

NMC_LaserOnOff 激光立即输出开关

NMC_CrdBufLaserSetFollow 设置缓冲区激光能量跟随

NMC_CrdBufLaserPower 缓冲区设置激光能量

NMC_CrdBufLaserOnOff 缓冲区激光开关

Page 4: 高川激光功能使用说明gcau170227.sk2.yithin.com/upLoad/file/20180509/...注:1.以上模拟量输出引脚以GCN800A 参考。具体参考硬件手册 立即模式编程说明

深圳市高川自动化技术有限公司

- 4 -

NMC_LaserSetTimeArrayPower 设置时间序列激光的能量

NMC_LaserTimeArrayOn 打开时间序列激光

NMC_LaserTimeArrayOff 关闭时间序列激光

NMC_SHIOConfigPara 配置 SHIO 功能的参数

NMC_SHIOChangeAxisMask 切换轴(允许和坐标系不完全一致)

NMC_SHIOGateOn 允许 GATE 输出

NMC_SHIOGateOff 禁止 GATE 输出

NMC_SHIOTriggerOn 设置 Trigger 输出

NMC_SHIOTriggerOff 禁止 GATE 输出

NMC_BufSHIOGateOn 允许 GATE 输出

NMC_BufSHIOGateOff 禁止 GATE 输出

硬件接口说明

激光控制输出通道位于控制器的扩展接口上,扩展接口阵脚排列如下:

Page 5: 高川激光功能使用说明gcau170227.sk2.yithin.com/upLoad/file/20180509/...注:1.以上模拟量输出引脚以GCN800A 参考。具体参考硬件手册 立即模式编程说明

深圳市高川自动化技术有限公司

- 5 -

以下为信号及引脚:

类型 引脚

PWM 输出 GND:引脚 3

PWM:引脚 5

DA(模拟量输出)

GND:引脚 3

DA:引脚 23

SHIO Gate Gate+:引脚 8

Gate-:引脚 7

注:1.以上模拟量输出引脚以 GCN800A 参考。具体参考硬件手册

立即模式编程说明

一般控制流程:

1.配置激光控制模式及信号输出模式

// g_hDev为控制器设备句柄,设置激光通道0为立即模式

rtn = NMC_LaserSetMode(g_hDev,BASIC_OUTPUT_MODE,0);

if(rtn != 0){ return ;}

// 激光通道0配置为占空比,使用PWM输出通道0,频率为10HZ

rtn = NMC_LaserSetOutputType(g_hDev,LASER_PWM_DUTY,0,10,0);

if(rtn != 0){ return ;}

Page 6: 高川激光功能使用说明gcau170227.sk2.yithin.com/upLoad/file/20180509/...注:1.以上模拟量输出引脚以GCN800A 参考。具体参考硬件手册 立即模式编程说明

深圳市高川自动化技术有限公司

- 6 -

2.激光控制

2.1.直接设置激光能量/开关激光

short rtn;

HAND g_hDev;

// 打开第一个运动控制器

rtn = NMC_DevOpen(0,&g_hDev);

if(rtn != 0) { return ;}

// g_hDev为控制器设备句柄,设置激光通道0为立即模式

rtn = NMC_LaserSetMode(g_hDev,BASIC_OUTPUT_MODE,0);

if(rtn != 0){ return ;}

// 激光通道0配置为占空比,使用PWM输出通道0,频率为10HZ

rtn = NMC_LaserSetOutputType(g_hDev,LASER_PWM_DUTY,0,10,0);

if(rtn != 0){ return ;}

// 直接设置激光能量

rtn = NMC_LaserSetPower(g_hDev,10,0);

if(rtn != 0){ return ;}

// 开光

rtn = NMC_LaserOnOff(g_hDev,1,0);

if(rtn != 0){ return ;}

2.2.也可以在插补缓冲区中对激光进行控制,如下:

short rtn;

HAND g_hDev;

HAND g_hCrd;

// 打开第一个运动控制器

rtn = NMC_DevOpen(0,&g_hDev);

if(rtn != 0) { return ;}

//设置激光通道0为立即模式

rtn = NMC_LaserSetMode(g_hDev,BASIC_OUTPUT_MODE,0);

if(rtn != 0){ return ;}

// 激光通道0配置为占空比,使用PWM输出通道0,频率为10HZ

rtn = NMC_LaserSetOutputType(g_hDev,LASER_PWM_DUTY,0,10,0);

if(rtn != 0){ return ;}

// 创建坐标系句柄

rtn = NMC_CrdOpenEx(g_hDev,0,&g_hCrd);

Page 7: 高川激光功能使用说明gcau170227.sk2.yithin.com/upLoad/file/20180509/...注:1.以上模拟量输出引脚以GCN800A 参考。具体参考硬件手册 立即模式编程说明

深圳市高川自动化技术有限公司

- 7 -

if(rtn != 0) { return ;}

// 配置坐标系

TCrdConfig crdCfg;

memset(&crdCfg,0,sizeof(TCrdConfig));

crdCfg.axCnts = 2;

crdCfg.pAxArray[0] = 0;

crdCfg.pAxArray[1] = 1;

crdCfg.pAxArray[2] = -1;

crdCfg.pAxArray[3] = -1;

crdCfg.port[0] = 0;

crdCfg.port[1] = 0;

crdCfg.port[2] = 0;

rtn = NMC_CrdConfig(g_hCrd,&crdCfg);

if(rtn != 0) { return ;}

TCrdPara crdPrm;

memset(&crdPrm,0,sizeof(TCrdPara));

crdPrm.synAccMax = 10;

crdPrm.synVelMax = 100;

crdPrm.orgFlag = 1;

crdPrm.offset[0] = 0;

rtn = NMC_CrdSetPara(g_hCrd,&crdPrm);

if(rtn != 0) { return ;}

// 清除缓冲区,压入缓冲区指令

rtn = NMC_CrdBufClr(g_hCrd);

if(rtn != 0) { return ;}

//设置激光通道0的能量为10

rtn = NMC_CrdBufLaserPower(g_hCrd,100,10,0);

if(rtn != 0){ return ;}

// 开激光

rtn = NMC_CrdBufLaserOnOff(g_hCrd,101,1,0);

if(rtn != 0){ return ;}

// 启动直线插补

tgtPos[0] = 10000;

tgtPos[1] = 0;

rtn = NMC_CrdLineXYZ(g_hCrd,154,0x3,tgtPos,0,10,1);

if(rtn != 0){ return ;}

//插补完成后关闭激光输出

rtn = NMC_CrdBufLaserOnOff(g_hCrd,101,0,0);

if(rtn != 0){ return ;}

//指令压入结束

Page 8: 高川激光功能使用说明gcau170227.sk2.yithin.com/upLoad/file/20180509/...注:1.以上模拟量输出引脚以GCN800A 参考。具体参考硬件手册 立即模式编程说明

深圳市高川自动化技术有限公司

- 8 -

rtn = NMC_CrdEndMtn(g_hCrd);

if(rtn != 0){ return ;}

//启动缓冲区运动

rtn = NMC_CrdStartMtn(g_hCrd);

if(rtn != 0){ return ;}

2.3.速度能量跟随输出

以下仅给出激光控制相关的代码,控制器及坐标系初始化请参考 2.2,或高川编程手册或例

程。

// 打开激光速度能量跟随,跟随倍率为5,跟随规划位置

rtn = NMC_CrdBufLaserSetFollow(g_hCrd,1,5,0,0);

if(rtn != 0){ return ;}

// 关闭激光

rtn = NMC_CrdBufLaserOnOff(g_hCrd,101,0,0);

if(rtn != 0){ return ;}

// 运动到起始点

tgtPos[0] = 20000;

tgtPos[1] = 0;

rtn = NMC_CrdLineXYZ(g_hCrd,154,0x3,tgtPos,0,vel,acc);

if(rtn != 0){ return ;}

// 开光

rtn = NMC_CrdBufLaserOnOff(g_hCrd,101,1,0);

if(rtn != 0){ return ;}

// 加工(插补过程中,激光自动根据速度变化)

tgtPos[0] = 100000;

tgtPos[1] = 0;

rtn = NMC_CrdLineXYZ(g_hCrd,154,0x3,tgtPos,0,vel,0.01);

if(rtn != 0){ return ;}

// 加工完成,关闭激光

rtn = NMC_CrdBufLaserOnOff(g_hCrd,101,0,0);

if(rtn != 0){ return ;}

Page 9: 高川激光功能使用说明gcau170227.sk2.yithin.com/upLoad/file/20180509/...注:1.以上模拟量输出引脚以GCN800A 参考。具体参考硬件手册 立即模式编程说明

深圳市高川自动化技术有限公司

- 9 -

波形控制模式编程说明

一般编程流程:

以下编程说明仅给出激光控制相关的代码,控制器及坐标系初始化请参考 2.2,或参考高川

编程手册或例程。

1.配置激光控制模式及信号输出模式

// g_hDev为控制器设备句柄,设置激光通道0为波形控制模式

rtn = NMC_LaserSetMode(g_hDev, TIME_ARRAY_OUTPUT_MODE,0);

if(rtn != 0){ return ;}

// 激光通道0配置为占空比,使用PWM输出通道0,频率为10HZ

rtn = NMC_LaserSetOutputType(g_hDev,LASER_PWM_DUTY,0,10,0);

if(rtn != 0){ return ;}

……

2.激光控制

2.1 点焊

// 点焊,配置时间能量数组

TLaserPower lserPw;

memset(&lserPw,0,sizeof(TLaserPower));

lserPw.count = 40;

for(int i=0;i<20;i++)

{

lserPw.time[i] = 100;

lserPw.power[i] = i*2;

}

for(int i=0;i<20;i++)

{

lserPw.time[i+20] = 100;

lserPw.power[i+20] = (20-i)*2;

}

rtn = NMC_LaserSetTimeArrayPower(g_hDev,0,&lserPw);

if(rtn != 0){ return ;}

// 点焊,开光

rtn = NMC_LaserTimeArrayOn(g_hDev,0,SPOT_WELDING,0);

if(rtn != 0){ return ;}

Page 10: 高川激光功能使用说明gcau170227.sk2.yithin.com/upLoad/file/20180509/...注:1.以上模拟量输出引脚以GCN800A 参考。具体参考硬件手册 立即模式编程说明

深圳市高川自动化技术有限公司

- 10 -

2.2 线焊

// 线焊,开光能量控制数组

TLaserPower lserPw;

memset(&lserPw,0,sizeof(TLaserPower));

lserPw.count = 20;

for(int i=0;i<20;i++)

{

lserPw.time[i] = 100;

lserPw.power[i] = i*2;

}

rtn = NMC_LaserSetTimeArrayPower(g_hDev,0,&lserPw);

if(rtn != 0){ return ;}

// 线焊,开光,能量自动按照设定的数组上升,直到最后的值,并最终保持

rtn = NMC_LaserTimeArrayOn(g_hDev,0,LINE_WELDING,0);

if(rtn != 0){ return ;}

// ……

// 线焊关光规划

TLaserPower lserPw;

memset(&lserPw,0,sizeof(TLaserPower));

lserPw.count = 20;

for(int i=0;i<20;i++)

{

lserPw.time[i] = 100;

lserPw.power[i] = (19-i)*2;

}

rtn = NMC_LaserSetTimeArrayPower(g_hDev,0,&lserPw);

if(rtn != 0){ return ;}

// 线焊,关光,能量自动按照设定的数组下降,直到最后的值,并最终降为0

rtn = NMC_LaserTimeArrayOff(g_hDev,0,LINE_WELDING,0);

if(rtn != 0){ return ;}

位置比较控制模式编程说明

一般编程流程:

Page 11: 高川激光功能使用说明gcau170227.sk2.yithin.com/upLoad/file/20180509/...注:1.以上模拟量输出引脚以GCN800A 参考。具体参考硬件手册 立即模式编程说明

深圳市高川自动化技术有限公司

- 11 -

以下编程说明仅给出激光控制相关的代码,控制器及坐标系初始化请参考 2.2,或参考高川

编程手册或例程。

1.配置激光控制模式及信号输出模式

// g_hDev为控制器设备句柄,设置激光通道0为位置比较控制模式

rtn = NMC_LaserSetMode(g_hDev,SHIO_OUTPUT_MODE,0);

if(rtn != 0){ return; }

……

2.控制

2.1 根据位移间距输出 gate(缓冲区)

//位置比较控制模式参数配置

TSHIOPara shioPrm;

shioPrm.isArray = 0;

shioPrm.outMode = 2; // 根据位移间隔输出gate

shioPrm.posSrc = 0; // 位置源为外部编码器

shioPrm.axisMask = 0x3; // XY合成位置

shioPrm.delay = 0; // 无延时

shioPrm.gateTime = 0.00001; // gate打开时间为10微秒

shioPrm.gateDistance = 20; // 位移间距为20 pulse

rtn = NMC_SHIOConfigPara(g_hDev,&shioPrm,0);

if(rtn != 0){ return; }

//……

// 缓冲区中控制gate信号

// 启动gate信号输出

rtn = NMC_BufSHIOGateOn(g_hCrd,1,0);

if(rtn != 0){ return; }

// 运动到起始点

tgtPos[0] = 20000;

tgtPos[1] = 0;

rtn = NMC_CrdLineXYZ(g_hCrd,154,0x3,tgtPos,0,vel,acc);

if(rtn != 0){ return; }

// 关闭gate信号控制

rtn = NMC_BufSHIOGateOff(g_hCrd,1,0);

if(rtn != 0){ return; }

// 加工,加工过程中,gate信号按照设定自动输出

tgtPos[0] = 100000;

tgtPos[1] = 0;

rtn = NMC_CrdLineXYZ(g_hCrd,154,0x3,tgtPos,0,vel,0.01);

Page 12: 高川激光功能使用说明gcau170227.sk2.yithin.com/upLoad/file/20180509/...注:1.以上模拟量输出引脚以GCN800A 参考。具体参考硬件手册 立即模式编程说明

深圳市高川自动化技术有限公司

- 12 -

if(rtn != 0){ return; }

2.2 立即开关 gate 信号

//位置比较控制模式参数配置

TSHIOPara shioPrm;

shioPrm.isArray = 0;

shioPrm.outMode = 1; // 立即输出

shioPrm.posSrc = 1;

shioPrm.axisMask = 0x3;

shioPrm.delay = 0;

shioPrm.gateTime = 0.0008;

shioPrm.gateDistance = 20;

rtn = NMC_SHIOConfigPara(g_hDev,&shioPrm,0);

if(rtn != 0){ return; }

//……

// 缓冲区中控制gate信号

// 启动gate信号输出

rtn = NMC_BufSHIOGateOn(g_hCrd,1,0);

if(rtn != 0){ return; }

// 关闭gate信号输出

rtn = NMC_BufSHIOGateOff(g_hCrd,1,0);

if(rtn != 0){ return; }

// 也可以在非缓冲区中,调用NMC_SHIOGateOn/NMC_SHIOGateOff对gate信号

进行控制