恭喜,你发布的帖子
发布于 2025-01-14 19:55:54
1楼
关于这个话题,我这里有个文本可以参考:
相对840D SL数控系统,可通过参数写入实现锁定:首先,需要在PLC程序中调用功能块FB 5,将用户自定义变量转换为一个10字节的变量指针。例如,要锁定主轴,可以将与主轴使能相关的变量(假设为“SPINDLE_ENABLE”)转换为变量指针,通过实例DB 111调用和参数设置FB 5:
CALL FB 5, DB 111(
Req := M 100.0, //触发读取的脉冲沿
Addr := DB_GUDVAR.SPINDLE_ENABLE,
Area := B#16#2, //通道变量
Unit := B#16#1, //通道1
Index1 := 0, //无数组索引
Index2 := 0, //无数组索引
CnvtToken := TRUE, //转换为10字节Token
VarToken := DB_GUDVAR.SPINDLE_ENABLE_Token,
Error := M 102.0,
Done := M 100.1,
State := MW 104,
RD := DB_GUDVAR.string_of_SPINDLE_ENABLE);
在FB 5调用完成后,使用FB 3通过返回的FB 5参数地址(“VarToken”)执行写入操作,将主轴使能变量的值写为0,实现主轴锁定。调用示例:
CALL FB 3, DB 112(
Req := M 200.0,
NumVar := 1, //写入1个GUD变量
Addr1 := DB_GUDVAR.SPINDLE_ENABLE_Token,
Error := M 102.0,
Done := M 100.1,
State := MW 104,
SD1 := P#DB99.DBX0.0 DINT 0); //将主轴使能变量值写为0;
满足条件后解锁:在PLC程序中设置条件判断,当满足解锁条件时,再次调用FB 3,将主轴使能变量的值写为1,实现主轴解锁。例如,当某个传感器信号(假设为I0.0)为1时解锁主轴:
//条件判断
IF I0.0 THEN
CALL FB 3, DB 112(
Req := M 200.0,
NumVar := 1, //写入1个GUD变量
Addr1 := DB_GUDVAR.SPINDLE_ENABLE_Token,
Error := M 102.0,
Done := M 100.1,
State := MW 104,
SD1 := P#DB99.DBX0.0 DINT 1); //将主轴使能变量值写为1
END_IF;
而828D系统:
828D在软件版本SW04.05.SP2以后,可以通过PLC侧读写NC或驱动变量。在PLC编程工具中,通过NC变量选择器选择与主轴使能相关的R参数。例如,假设主轴使能相关的R参数为R100:
打开PLC Programming Tool,检视窗口点击[NC变量],进入参数选取界面。
将光标定位在变量名称区域,快捷键[Ctrl+F]打开搜索,输入相关参数标识找到R100。
双击R100变量名称,[范围编号]和[行]都填0。
点击[确认],完成对参数的选定,编译生成数据块DB9910。
在PLC程序中设置条件判断,当满足解锁条件时,将R100的值写为1,实现主轴解锁。例如,当某个按钮信号(假设为I0.1)为1时解锁主轴:
//条件判断
IF I0.1 THEN
//通过PLC信号设定将R100的值修改为1
END_IF;
请填写推广理由:
分享
只看
楼主