常见激光器控制协议

常见激光器控制协议

AMENG
2023-06-08 / 0 评论 / 20 阅读 / 正在检测是否收录...
温馨提示:
本文最后更新于2023年06月08日,已超过486天没有更新,若内容或图片失效,请留言反馈。

Fiber激光器转接板输出接口说明如下表,通过EXIO_DIR设置好IO方向后,便可通过右侧的IO编号控制激光器。

D0和D7一共8位组合设置激光器的功率,激光出光口为OUT8,激光出光前先设置好激光器的功率并打开激光使能开关OUT47,红光的开关为OUT48。

→EXIO扩展IO配置

说明:采用EXIO接口扩展后, 均需要使用EXIO_DIR指令对扩展IO进行方向配置才可正常使用。

按上节接线完成后,配置好EXIO扩展IO接口的IO方向之后才能控制激光器,扩展IO功能设置EXIO_DIR(0, $8FFFF)。

指令语法:
EXIO_DIR(isel, dirbit)
Isel:0(指定激光器类型)
dirbit: 按位设置是否输出, 0- 输入, 1-输出 (自定义配置转接口对应的信号类型)

控制器与激光器的接线参考图如下:

3.激光控制说明

例如某激光器的控制端口针脚说明如下表,对比上表可知,Fiber-DB25头转接板输出接口采用与该激光器匹配的标准端口,针脚定义一致,可直接与该激光器相连,再通过OUT引脚控制激光器。

主要控制端子说明:

功率信号定义:设置针 1~8 的 TTL 信号,通过 TTL 信号的组合来设置泵浦激光二极管的电流,从而控制激光器的输出功率。通过 1~8 针可以设置 0~255 范围内的编码,对应于 0~100%的功率输出。

电源:针17和GND组成激光器控制端口的供电回路,采用5V直流供电。

4.打标应用例程

编程界面如下图,采用Basic和HMI混合编程,Basic完成控制过程,HMI编写界面。


初始化定义相关变量,初始化轴参数,配置好FIBER转接板的方向为输出,后续的激光加工控制由HMI界面的按钮触发。

D0和D7一共8位组合设置激光器的功率,通过AOUT3配置激光功率;激光出光口为OUT8,激光出光前先设置好激光器的功率并打开激光使能开关OUT47,红光的开关为OUT48。

(1)Basic程序如下

'**********************************************************HMI初始化

Global Sub Sub_HmiInit()

Sub_VarDefine() '定义变量

Sub_AxisInit() '初始轴参数

Sub_SetExioFiber 'Fiber转化板参数设置

End Sub

'**********************************************************HMI刷新扫描

Global Sub Sub_HmiScan()

End Sub

'**********************************************************变量定义初始化

Global Sub Sub_VarDefine()

Global Const Gc_AxisX = 4

Global Const Gc_AxisY = 5

Global Const Gc_Out_Laser = 8 '出光OUT口

Global Const Gc_Out_LaserEnable = 47 '激光使能

Global Const Gc_Out_Red = 48 '红灯

Global Const Gc_Aout_Laser = 3 '激光能量模拟量输出口

Global Gv_StartDelay '开光延时us

Gv_StartDelay = 1000

Global Gv_LastDelay '关光延时us

Gv_LastDelay = 1000

Global Gv_CorDelay '拐角延时us

Gv_CorDelay = 1000

Global Gv_JumpDelay '跳转延时us

Gv_JumpDelay = 1000

Global Gv_LaserPower '激光功率0-2^8

Gv_LaserPower = 128

Global Gv_EmpSp '空移速度

Gv_EmpSp = 10000

Global Gv_WorkSp '加工速度

Gv_WorkSp = 5000

Global Gv_WorkMode '加工模式 0-红光 1-激光

Gv_WorkMode = 0

Global Gv_MarkSize '标刻大小

Gv_MarkSize = 80

End Sub

'**********************************************************轴参数初始化

Global Sub Sub_AxisInit()

base(Gc_AxisX,Gc_AxisY)

Atype = 21,21 '轴类型 振镜轴

Units = 500,500 '脉冲当量

speed = 100,100 '运动速度

Accel = 10000,10000 '加速度

AXIS_ZSET = 3,3 '开启精准输出

End Sub

'**********************************************************切换红光

Global Sub Sub_Btn_Red()

if op(Gc_Out_Red) THEN

op(Gc_Out_Red,OFF)

ELSE

op(Gc_Out_Red,ON)

endif

End Sub

'**********************************************************切换出光

Global Sub Sub_Btn_Laser()

if op(Gc_Out_Laser) THEN

Aout(Gc_Aout_Laser) = 0

op(Gc_Out_Laser,OFF)

DELAY(100)

op(Gc_Out_LaserEnable,OFF)

ELSE

Aout(Gc_Aout_Laser) = Gv_LaserPower '设置能量

op(Gc_Out_LaserEnable,ON) '打开激光使能

DELAY(100)

op(Gc_Out_Laser,ON) '出光

endif

End Sub

'**********************************************************fiber转换板处理

GLOBAL SUB Sub_SetExioFiber()

'修改扩展接口方向为输出

EXIO_DIR(0, $FFFFF)

END SUB

'**********************************************************空移到起点

Global Sub Sub_MoveEmp(StartX,StartY)

base(Gc_AxisX,Gc_AxisY)

FORCE_SPEED = Gv_EmpSp

MOVESCANABS(StartX,StartY) '空移到起点

MOVE_DELAY(Gv_JumpDelay/1000) '跳转延时

if Gv_WorkMode =1 then

MOVE_OP(Gc_Out_Laser, ON)

ELSE

MOVE_OP(Gc_Out_Red, ON)

endif

MOVE_DELAY(Gv_StartDelay/1000) '开光延时

End Sub

'**********************************************************直线运动

'XPos 运行结束点X坐标

'YPos 运行结束点Y坐标

'If_End 是否最后的结束点,是启动关光参数

Global Sub Sub_MoveLine(XPos,YPos,If_End)

FORCE_SPEED = Gv_WorkSp

MOVESCANABS(XPos,YPos) '运动到加工点

if(If_End) then

MOVE_DELAY(Gv_LastDelay/1000) '关光延时

if Gv_WorkMode =1 then

MOVE_OP(Gc_Out_Laser, OFF)

ELSE

MOVE_OP(Gc_Out_Red, OFF)

endif

endif

End Sub

'**********************************************************画矩形运动

'XPos 运行结束点X坐标

'YPos 运行结束点Y坐标

'If_End 是否最后的结束点,是启动关光参数

Global Sub Sub_MoveRect(StartX, StartY, EndX,EndY,If_End)

FORCE_SPEED = Gv_WorkSp

MOVESCANABS(StartX,EndY)

MOVE_DELAY(Gv_CorDelay/1000)

MOVESCANABS(EndX, EndY)

MOVE_DELAY(Gv_CorDelay/1000)

MOVESCANABS(EndX, StartX)

MOVE_DELAY(Gv_CorDelay/1000)

MOVESCANABS(StartX, StartY)

if(If_End) then

MOVE_DELAY(Gv_LastDelay/1000) '关光延时

if Gv_WorkMode =1 then

MOVE_OP(Gc_Out_Laser, OFF)

ELSE

MOVE_OP(Gc_Out_Red, OFF)

endif

endif

End Sub

'**********************************************************

Global Sub Sub_Move9Point()

Local dScanSize

dScanSize = Gv_MarkSize

MOVE_Aout(Gc_Aout_Laser,Gv_LaserPower) '设置能量

MOVE_op(Gc_Out_LaserEnable,ON) '打开激光使能

MOVE_DELAY(10)


TRIGGER


'绘制横线

Sub_MoveEmp((-dScanSize/2 - dScanSize/10), 0)

Sub_MoveLine((dScanSize/2 + dScanSize/10), 0,TRUE)

'绘制竖线

Sub_MoveEmp(0, (-dScanSize/2 - dScanSize/10))

Sub_MoveLine(0,(dScanSize/2 + dScanSize/10),TRUE)

'矩形

Sub_MoveEmp(-dScanSize/2, -dScanSize/2)

Sub_MoveRect(-dScanSize/2, -dScanSize/2, dScanSize/2, dScanSize/2,TRUE)

'绘制X

Sub_MoveEmp((dScanSize/2-0.06*dScanSize), -0.02*dScanSize)

Sub_MoveLine((dScanSize/2-0.02*dScanSize), -0.08*dScanSize,TRUE)

Sub_MoveEmp((dScanSize/2-0.02*dScanSize), -0.02*dScanSize)

Sub_MoveLine((dScanSize/2-0.06*dScanSize), -0.08*dScanSize,TRUE)

'绘制Y

Sub_MoveEmp(0.02*dScanSize, (dScanSize/2-0.02*dScanSize))

Sub_MoveLine(0.04*dScanSize, (dScanSize/2-0.05*dScanSize),TRUE)

Sub_MoveEmp(0.06*dScanSize, (dScanSize/2-0.02*dScanSize))

Sub_MoveLine(0.04*dScanSize, (dScanSize/2-0.05*dScanSize),FALSE)

Sub_MoveLine(0.04*dScanSize, (dScanSize/2-0.08*dScanSize),TRUE)

'回原点

FORCE_SPEED = Gv_EmpSp

MOVESCANABS(0,0) '空移到原点

MOVE_Aout(Gc_Aout_Laser,0) '关闭能量

MOVE_op(Gc_Out_LaserEnable,OFF) '关闭激光使能

End Sub

'**********************************************************

Global Sub Sub_Bnt_TaskRun() '九点标定按钮

STOPTASK 1

RUNTASK 1,Sub_Move9Point

End Sub

'**********************************************************

Global Sub Sub_Btn_TaskStop() '停止按钮

STOPTASK 1

base(Gc_AxisX,Gc_AxisY)

Cancel(2)

End Sub

0

评论 (0)

取消