1     免责声明

本使用手册及样例包目录内所包含文档、PLC程序、机床可执行程序(MPF、SPF、…)、电气图,可能与用户实际使用不同,用户可能需要先对例子程序做修改和调整,才能将其用于测试。本例程的作者和拥有者对于该例程的功能性和兼容性不负任何责任,使用该例程的风险完全由用户自行承担。由于它是免费的,所以不提供任何担保,错误纠正和热线支持,用户不必为此联系西门子技术支持与服务部门。

对于在使用中发生的人员、财产损失本公司不承担任何责任,由使用者自行承担风险。

以上声明内容的最终解释权归西门子(中国)有限公司所有,后续内容更新不做另行通知。

2     概述

       本文介绍在TIA_V15_1下如何通过840DSL的基本程序块 FB4&FC9激活ASUP异步子程序。


要求

2.1      硬件要求


硬件

工艺

NCU710

NCU720

NCU730


车床


铣床


磨床


2.2      软件版本要求

        当前测试版本4.8SP4

3     注意事项

1:设置OB100里面NCKomm接口需要设置TRUE,下载后重起PLC

                                              image.png

 

4     调试或使用步骤

4.1      参数设置

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

image.png

b.    11602 $MN_ASUP_START_MASK=1H

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

image.png

4.2      创建中断程序

image.png

image.png

image.png 

 

4.3      程序名转换以及传输

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

image.png

 

 

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

image.png

 

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'

image.png

image.png

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

image.png

image.png

 


4.4      编程示例:新建FC888块(ASUP_SLT)

1.    FB888(ASUP_1)接口定义

image.png

image.png

2.    FB888(ASUP1)程序内容     

image.png

image.png

image.png

image.png

image.png

 

3.    主程序调用

image.png

 

OB100中加入此段程序

image.png

 

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号启动后再启动其他中断会立即打断当前的中断程序,执行优先级高的中断程序

 

image.png

5     应用实例

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

image.png

image.png

 

 

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

image.png

image.png

image.png

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

image.png

image.png

image.png

6     参考文献

1.    SINUMERIK 840D sl / 828D Basic Functions

7     作者/联系人

Zhao Qingya

2020.09.06

8     版本信息

版本

日期

修改内容

V1.0

2020.09.06