
内容
本手册及样例包内所包含的文档、PLC程序、软件代码、机床可执行程序(MPF、SPF等)、电气样例图等因用户需求和应用场景不同可能与实际交付物不完全一致。我公司将对内容进行不定期更新,但不对内容的时效性、准确性或完整性提供任何保证,也不因出现任何相关问题承担责任。由于内容是免费的,我公司不承担使用过程中的任何风险和责任,提供错误纠正或热线支持服务。任何一方在对内容使用前需要根据自己的需求进行专业的修改和调整,并自行承担后续使用中的风险。对于在后续使用中可能发生的人员、财产损失由使用者自行承担风险和责任。我公司保留对全部内容的版权和知识产权,并保留对任何侵权使用行为进行追索的权利。
本案例主要是介绍面板复位按键取消cycle800的方法。
复位、取消cycle800、M43选项、事件程序
硬件 | ||||
工艺 | PPU24x/PPU/NCU1740 | PPU26x/NCU1750 | PPU28x/NCU1760 | PPU28x.Advance |
车床 | ● | ● | ● | ● |
铣床 | ● | ● | ● | ● |
磨床 | ● | ● | ● | ● |
• 无
选项要求或其他特殊要求,如额外组件等
SINUMERIK ONE通过事件程序取消cycle800需要M43选项
使用事件程序时不能直接修改或者新建PROG_EVENT.SPF
复位取消cycle800有两种方法,其一是通过事件程序取消,其二是通过PLC写入MD20126参数取消。对于828D来说,事件程序无需选项,因此参考方法1即可。而对于SINUMERIK ONE来说,复位触发事件程序需要M43选项,如果已有该授权,可以参考方法1,如果无该授权,可参考方法2。
对于828D,无需激活额外授权,可以调过这一步,对于SINUMERIK ONE,需要在授权界面找到M43授权并勾选,如下图所示,如果未绑定该授权,还需要激活试用授权,否则该授权无法正常使用。

需要设置调用事件程序的事件,MD20108说明如下:
位 | 说明 |
Bit0 | 零件程序启动时调用事件程序 |
Bit1 | 零件程序结束时调用事件程序 |
Bit2 | 按下机床控制面板复位时调用事件程序 |
Bit3 | 上电启动时调用事件程序 |
根据需要设置调用事件程序的事件,比如本案例需要机床控制面板复位时调用事件程序,则需要勾选bit2,如下图所示:

MD20108是PO生效,因此修改后需要进行一次PO复位。
PROG_EVENT.SPF是一个西门子标准循环,该循环不能被修改及替换,因此需要从标准循环拷贝该循环进行修改,也不要在用户循环或者制造商循环目录新建该循环。PROG_EVENT.SPF事件程序预留了2个制造商循环及2个用户循环,分别如下:
用户循环:
· CYCPE1US.SPF,可以放在用户循环或者制造商循环目录
· CYCPE_US.SPF,可以放在用户循环或者制造商循环目录
制造商循环:
· CYCPE1MA.SPF,放在制造商循环目录
· CYCPE_MA.SPF,放在制造商循环目录
PROG_EVENT.SPF会检查是否存在以上循环,如果存在则会进行调用,因此我们在需要使用事件程序时,需要使用以上4个预留的循环,而不是直接修改或者新建PROG_EVENT.SPF。
本案例使用CYEPE_MA.SPF,拷贝到制造商循环目录,如下:

事件程序需要用到变量$P_PROG_EVENT,该变量不同的值对应的事件如下:
Ø 1:程序启动
Ø 2:程序结束
Ø 3:面板复位
Ø 4:上电启动
Ø 5:程序段搜索
本案例需要面板复位按键取消cycle800,因此需要在该子程序里判断变量是否面板复位,然后执行取消cycle800指令,如下:

如此即可实现面板复位按键取消cycle800的功能。
执行cycle800回转后及按下复位按键后状态对比:
当SINUMERIK ONE上没有M43选项时,可以用该方法实现复位按键取消cycle800。
在执行cycle800后,如果想复位按键取消,需要修改参数MD20126=0,该参数复位生效,此时按下面板上的复位按键,即可取消cycle800,但是MD20126在每次执行cycle800后,都会自动变成最后一次生效的Tool Carrier号,也就是如果想复位按键取消cycle800,每次都需要修改该参数。此时我们可以通过编写PLC程序,在按下面板复位按键时,写入MD20126=0。步骤如下:
MD20126不能通过博途里面的NC变量进行选择,需要通过NC-VAR-Selector进行选择。打开NC-VAR-Selector,界面如下:

在开始选择变量之前,需要进行一些简单的设置,点击菜单“Code-Selections”,分别设置符号语言及DB块号:

设置完成后,需要选择变量MD20126,在变量窗口右键,选择“Search, filter variables”:

然后在弹出的窗口里,Number一栏输入20126:

点击OK,此时会显示筛选结果:

此时会显示变量名称以及系统变量名和数据类型,可以确认变量是不是我们需要的变量。确认是需要的变量后,对着变量右键,点击“Get NC-variables”,此时会弹出以下窗口:

对于该变量来说,Area No.代表的是通道号,我们需要写通道1的MD20126,因此这里设置1,然后点击“Insert into project”,然后会弹出一个窗口,需要在该窗口设置变量名称,这个名称在博途编程时需要用到,本案例变量命名为“MD20126”:

点击OK后,该变量会被插入到项目中。此时点击保存项目,将项目保存到选择的目录,然后再点击“Generate”:

注意:在保存项目之前,“Generate”不可用。
然后把生成的文件保存到选择的目录,生成的文件格式为.awl,为外部源文件,可以直接导入到博途项目的外部源文件目录。
打开博途的PLC项目,在目录“CNC_1àPLC_1à外部源文件”里,双击“添加新的外部文件”:

然后找到刚才NC-VAR-Selector生成的.awl文件,导入即可,导入后如下:

然后对着这个源文件右键,点击“从源生成块”:

注意:从源生成块时,将会直接覆盖现有的号码相同的数据块,因此需要注意原先的PLC程序里,是否存在数据块号相同的块,如存在,则需要修改源文件里的块号。
本案例在生成的DB500块里,建立用于FB3调用的相关变量,DB500结构如下:

编写PLC程序,在按下面板复位按键时,通过FB3给参数MD20126写入0,PLC如下:



下载PLC,就可以实现复位取消cycle800。
1. SINUMERIK ONE PLC 基本程序
Zhou Guan Bing
2024-04-22
版本 | 日期 | 修改内容 |
V1.0 | 2024.04.22 | |