目前发现有三种操作会导致堆栈丢失:
1.自动运行执行到程序中途,然后切换到手动,选择并打开了其他程序。
2.自动运行执行到程序中途,然后切换到手动,用了“直接打开”按钮查看了CALL命令调用的子程序。
3.自动运行执行到程序中途,然后切换到手动,使用了“平行移动程序”功能。
让堆栈丢失产生报警方法如下:
1.信号定义:
10055 堆栈丢失检测
71014 自定义用户报警“警告!程序堆栈丢失!”
2.开启堆栈丢失检测功能时,在非示教模式子程序堆栈丢失0.2秒以上,产生用户报警,提示程序堆栈丢失,梯形图如下:
STR #10055 通用输出:堆栈丢失检测
AND-NOT #50053 专用输出:非示教模式
AND-NOT #50770 专用输出:子程序堆栈无
TMR M016,2 计时指令:延时0.2秒
OUT #71014 辅助继电器:自定义用户报警“警告!
程序堆栈丢失!”
以下为用户自定义报警部分:
STR #71000
OR #71001
OR #71002
OR #71003
OR #71004
OR #71005
OR #71006
OR #71007
OR #71010
OR #71011
OR #71012
OR #71013
OR #71014
OR #71015
OR #71016
OR #71017
OUT #40012
STR #40012
OUT #40013
STR #71001
OR #71003
OR #71005
OR #71007
OR #71011
OR #71013
OR #71015
OR #71017
OUT #40220
STR #40220
OUT #40240
STR #71002
OR #71003
OR #71006
OR #71007
OR #71012
OR #71013
OR #71016
OR #71017
OUT #40221
STR #40221
OUT #40241
STR #71004
OR #71005
OR #71006
OR #71007
OR #71014
OR #71015
OR #71016
OR #71017
OUT #40222
STR #40222
OUT #40242
STR #71010
OR #71011
OR #71012
OR #71013
OR #71014
OR #71015
OR #71016
OR #71017
OUT #40223
STR #40223
OUT #40243
3.#71014对应的报警需在9076内添加报警文本内容“警告!程序堆栈丢失!”,可导出梯形图在电脑上修改。
4.程序内添加堆栈丢失检测功能:
主程序MEARST调用子程序MAIN_465
子程序MAIN_465***行添加DOUT OT#(38) ON,堆栈丢失检测功能打开
子程序MAIN_465第***后一行添加DOUT OT#(38) OFF,堆栈丢失检测功能关闭
经过以上操作,在子程序MAIN_465***行和***后一行之间发生堆栈丢失,如果继续再现模式或者远程模式运行,就会发生用户报警“警告!程序堆栈丢失!”,阻止和提示用户继续运行程序,以防发生撞机事故。
- 下一篇:暂无
- 上一篇:安川机器人DX100机器人控制柜故障排除手册【技术干货】