本使用手册及样例包目录内所包含文档、PLC程序、机床可执行程序(MPF、SPF、…)、电气图,可能与用户实际使用不同,用户可能需要先对例子程序做修改和调整,才能将其用于测试。本例程的作者和拥有者对于该例程的功能性和兼容性不负任何责任,使用该例程的风险完全由用户自行承担。由于它是免费的,所以不提供任何担保,错误纠正和热线支持,用户不必为此联系西门子技术支持与服务部门。
对于在使用中发生的人员、财产损失本公司不承担任何责任,由使用者自行承担风险。
以上声明内容的最终解释权归西门子(中国)有限公司所有,后续内容更新不做另行通知。
本文介绍在TIA_V15_1下如何通过840DSL的基本程序块 FB4&FC9激活ASUP异步子程序。
要求
硬件 | ||||
工艺 | NCU710 | NCU720 | NCU730 | |
车床 | ● | ● | ● | |
铣床 | ● | ● | ● | |
磨床 | ● | ● | ● | |
• 当前测试版本4.8SP4
1:设置OB100里面NCKomm接口需要设置TRUE,下载后重起PLC

a. 使用PLC调用异步子程序功能时,需要购买6FC5800-0AM43-0YB0授权

b. 11602 $MN_ASUP_START_MASK=1H
11604 $MN_ASUP_START_PRIO_LEVEL=8 从优先级8开始遵循11602设置的规则,在初始化中断时优先级接口最大只能设置8,否则再启动子程序时会有16963报警



1. 调用扩展指令库中的S_CONV,目的是将整型格式的子程序号转换成字符串

2. 把程序号("ASUP_DB".ASUP_NO)转换成字符串("ASUP_DB".ASUP_NO_STR)

3. 将转换过的程序号字符串区域存储器("ASUP_DB".ASUP_NO_STR[2])传送到("ASUP_DB".FB4.P_name[11])
目的是替换字符串'_N_PLCASUPx_SPF'的x位置的字符.
a.当"ASUP_DB".ASUP_NO=1时, "ASUP_DB".FB4.P_name='_N_PLCASUP1_SPF'


b. 当"ASUP_DB".ASUP_NO=2时, "ASUP_DB".FB4.P_name='_N_PLCASUP2_SPF'


1. FB888(ASUP_1)接口定义


2. FB888(ASUP1)程序内容





3. 主程序调用

OB100中加入此段程序

4. 启动步骤
a.系统数据-NC数据-循环-制造商循环目录('/_N_CMA_DIR/' )下新建异步子程序,本例子程序名称格式PLCASUP1- PLCASUP8总共可以使用8个.子程序个数必须大于等于主程序中ASUP_NUM的个数,否则初始化时系统PLC会报错.
b.设置完成之后,系统重起上电,PLC会自动初始化设置的中断个数.
上电初始化时FB4.Wvar4=1,PLCASUP会等待主程序当前程序段执行完成后启动,同时主程序停止,当PLCASUP执行完后,主程序继续往下执行.
上电初始化时FB4.Wvar4=0,PLCASUP会立即删除主程序剩余行程,当前主程序段剩余的行程在异步子程序执行完后将不再执行,立即启动异步子程序,同时主程序停止,当PLCASUP执行完后,主程序继续往下执行.
C.初始化完成后,可以置位START_ASUP1-START_ASUP8激活1-8号中断程序,
例如:1号优先级最高,8号优先级最低,当1号激活后再启动其他中断,会等待1号执行完成后再执行
8号优先级最低,8号启动后再启动其他中断会立即打断当前的中断程序,执行优先级高的中断程序

1. 没有主程序启动时:置位”异步子程序启动(start_asup1)=1,1号中断子程序(PLCASUP1)立即启动


2. 当主程序启动,FB4.Wvar4=0时,置位”异步子程序启动(start_asup1)=1,1号中断子程序(PLCASUP1)立即启动,主程序执行X到1000位置,在X=651.111位置时启动了异步子程序,剩余行程被删除.



3. 当主程序启动,FB4.Wvar4=1时,置位”异步子程序启动(start_asup1)=1,1号异步子程序(PLCASUP1)会等待主程序当前程序执行完成后,再执行异步子程序.



1. SINUMERIK 840D sl / 828D Basic Functions
Zhao Qingya
2020.09.06
版本 | 日期 | 修改内容 |
V1.0 | 2020.09.06 | |