快速入门_6.docx

上传人:安*** 文档编号:17739609 上传时间:2022-05-26 格式:DOCX 页数:21 大小:700.18KB
返回 下载 相关 举报
快速入门_6.docx_第1页
第1页 / 共21页
快速入门_6.docx_第2页
第2页 / 共21页
点击查看更多>>
资源描述

《快速入门_6.docx》由会员分享,可在线阅读,更多相关《快速入门_6.docx(21页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、快速入门快速入门|篇十一:正运动技术运动控制器中断的应用正运动技术导语:之前正运动技术与大众共享了,运动控制器的固件晋级、ZBasic程序开发、ZPLC程序开发、与触摸屏通讯和输入/输出IO的应用、运动控制器数据与存储的应用、运动控制器ZCAN、EtherCAT总线的使用、示波器的应用、多任务运行的特点等。今天,我们来讲解一下正运动技术运动控制器中断(掉电中断、外部中断、定时器中断)的应用。视频教程:1、材料准备与控制器接线参考1)材料准备2)控制器接线参考2、中断概念 “中断即CPU在执行程序的时候出现了某些异常或者突发情况,需要紧急处理,CPU必须暂停当前的任务去处理紧急突发事件,处理完之

2、后,返回原程序被打断的地方。中断处理分为三个阶段:1)中断响应翻开中断总开关,发送中断恳求。2)中断处理中断处理包括两个局部的内容:保护断点和现场,执行中断程序处理。响应中断恳求后转到中断程序的入口,执行中断程序。3)中断返回中断程序全部处理完成后完毕中断,等待下次中断触发。3、三种中断控制器的中断分为三种,分别为掉电中断、外部中断、定时器中断。使用中断前必须开启中断总开关,为了防止程序没有初始化完成便进入中断,控制器上电时中断开关缺省是关闭的。这三类中断Basic编程与PLC编程方式均支持。1)掉电中断必须是全局的SUB函数。控制器只有1个掉电中断。掉电中断执行的时间十分有限,只能写少数几条

3、语句,将数据存储在VR里。相关函数:INT_ENABLE,ONPOWEROFF。2)外部中断可设置上升沿触发或者下降沿触发,必须是全局的SUB函数,目前只有中断IN口0-31可以使用。必须是支持PLC功能的固件才可使用。相关函数:上升沿中断INT_ONn,下降沿中断INT_OFFn。3)定时器中断到达设定时间后执行定时器中断函数,必须是全局的SUB函数,定时器个数根据控制器型号,使用?*max打印查看。相关函数:ONTIMERn,n的取值范围为:“0-“定时器最大编号减1。4、中断函数1)Basic中断相关函数INT_ENABLE:中断总开关,1-开启,0-关闭ONPOWEROFF:掉电中断I

4、NT_ONn:外部输入中断,上升沿有效,n-输入口编号INT_OFFn:外部输入中断,下降沿有效,n-输入口编号ONTIMERn:定时器中断,n-定时器编号GLOBALSUB:定义中断函数ENDSUB:中断完毕返回主函数2)PLC中断相关函数EI:允许中断,同BASIC命令,INT_ENABLE=1开启DI:制止中断,同BASIC命令,INT_ENABLE=0关闭ONPOWEROFF:掉电中断INT_ONn:外部输入中断,上升沿有效,n-输入口编号INT_OFFn:外部输入中断,下降沿有效,n-输入口编号ONTIMERn:定时器中断,n-定时器编号LBL:定义中断函数IRET:中断完毕返回主函

5、数5、三种中断使用(Basic)三类中断运行时,中断程序单独占用一个任务号。不同类型中断使用例程如下:1)掉电中断中断使用仅支持一个,掉电瞬间触发执行,执行时间短,只能写少数几条语句。例如:主程序INT_ENABLE=1DPOS(0)=VR(0)上电读取保存的数值,恢复坐标DPOS(1)=VR(1)DPOS(2)=VR(2)END主程序完毕GLOBALSUBONPOWEROFF()掉电中断VR(0)=DPOS(0)保存坐标到VRVR(1)=DPOS(1)VR(2)=DPOS(2)ENDSUB2)外部中断(上升沿/下降沿)中断使用支持PLC功能的控制器才可以使用外部中断,必须是全局的SUB经过。

6、INT_ONn()上升沿触发,INT_OFFn()下降沿触发,n是IN输入编号,只能选择控制器自带的编号0-31。例如:INT_ENABLE=1开启中断END主程序完毕GLOBALSUBINT_ON0()外部上升沿中断程序PRINT输入IN0上升沿触发ENDSUBGLOBALSUBINT_OFF0()外部下降沿中断程序PRINT输入IN0下降沿触发ENDSUB3)定时器中断使用定时器中断支持同时开启多个,中断个数由定时器个数决定,必须是全局的SUB经过。ONTIMERn()中n是定时器编号。定时器开启:TIMER_START(定时器编号,定时时间ms)定时器完毕:TIMER_STOP(定时器编

7、号)定时器状态:value=TIMER_IFEND(定时器编号),只读参数,返回值:0-正在定时,1-定时完成。例如:INT_ENABLE=1开启中断TIMER_START(0,100)定时器0开启,100ms后执行一次ENDGLOBALSUBONTIMER0()中断程序PRINTontimer0enterTIMER_START(0,100)祈望周期执行中断,在SUB里再次翻开定时器ENDSUB6、三种中断使用(PLC)在PLC编程中,使用LBL指令定义要调用的中断函数,中断函数与Basic通用。PLC编程下三类中断使用的简单例如如梯形图程序所示。外部中断使用时要注意X编号为8进制,如:LBL

8、INT_ON8定义的外部中断的触发条件为X10的上升沿,实际接线使用IN8输入口。中断程序运行时,占用一个任务号,此任务号为自动分配,不用手动设置。如下列图,运行定时器中断时的任务状态。7、中断使用考前须知1)必须支持PLC功能的固件才能使用外部中断。2)中断函数编写为全局SUB经过。3)各中断之间无优先级,支持中断嵌套,多个中断可以同时执行,同一时间处理的中断函数不宜太多。控制器内部只有一个任务在处理所有的中断信号响应,有一个固定的中断任务号,假如中断处理函数太多,并且中断处理函数的代码太长,会造成所有的中断响应变慢,甚至是中断堵塞,影响其他中断执行。解决方法:1)尽量减少中断的数量,很多应

9、用都可以用循环扫描来处理。2)假如有一个中断处理函数十分长的话,调用一个单独的任务来处理中断中的复杂任务,这样就不会堵塞其他的中断响应。中断中开启任务运行例程如下,定时器中断0的大段代码以任务3运行,此时定时器中断0和定时器中断1均能正常触发,不存在中断堵塞的情况。例程:INT_ENABLE=1开启中断TIMER_START(0,1000)定时器0开启TIMER_START(1,1100)定时器1开启ENDGLOBALSUBONTIMER0()中断处理函数RUNTASK3,MyIntHandler()开任务运行ENDSUBGLOBALSUBMyIntHandler()DELAY1000假设大量

10、的堵塞性代码WAITUNTILIN(0)0?第一个中断ENDSUBGLOBALSUBONTIMER1()中断处理函数?第二个中断ENDSUB8、中断演例如程(Basic)主程序BASE(0,1)ATYPE=1,1设为脉冲轴类型UNITS=100,100DPOS=0,0SPEED=100,100ACCEL=1000,1000DECEL=1000,1000SRAMP=100,100INT_ENABLE=1开启中断总开关TIMER_START(2,1000)定时器2开启,1000ms后执行一次DPOS(0)=VR(0)上电读取保存的数值,恢复坐标DPOS(1)=VR(1)PRINTdpos(0),d

11、pos(1),dpos(0),dpos(1)WHILE1IFSCAN_EVENT(IN(0)0THENTRIGGERBASE(0,1)MOVEABS(0,0)MOVECIRC2(100,100,200,0)三点画半圆ENDIFWEND主程序完毕中断程序,均为全局SUBGLOBALSUBONTIMER2()定时器中断程序PRINT定时器中断2TIMER_START(2,1000)在sub里翻开定时器,中断周期执行ENDSUBGLOBALSUBINT_ON2()外部上升沿中断程序PRINT输入IN2下降沿触发.ENDSUBGLOBALSUBINT_OFF2()外部上升沿中断程序PRINT输入IN2

12、下降沿触发.ENDSUBGLOBALSUBONPOWEROFF()掉电中断VR(0)=DPOS(0)保存坐标到VRVR(1)=DPOS(1)ENDSUB9、中断演例如程(PLC)PLC语句表代码:/主程序X0定时中断0,X1-定时中断1,X2-上升沿/下降沿中断,X3-关闭所有中断LBLMAINLDM8002EIEXEPRINTVR(0),VR(0)LDX0TMRT0K2000LDT0OUTY0LDX1ANIY1TMRT1K3000LDT1OUTY1LDX3DIFEND/外部中断,由控制器上的输入口控制LBLINT_ON2LDM8000EXEPRINT外部中断2上升沿IRETLBLINT_OF

13、F2LDM8000EXEPRINT外部中断2下降沿IRET/定时器0中断,定时器到达预设值开启中断LBLONTIMER0LDM8000EXEPRINT定时器中断0IRET/定时器1中断,定时器到达预设值开启中断LBLONTIMER1LDM8000EXEPRINT定时器中断1IRET/掉电中断,控制器断电执行此中断LBLONPOWEROFFLDM8000MOVK12345D0EXEVR(0)=MODBUS_REG(0)IRETEND正运动技术运动控制器中断(掉电中断、外部中断、定时器中断)的应用就共享到这里,更多精彩内容,请关注我们的公众号。本文由正运动小助手原创,欢送大众转载,共同学习,一起进步中国智能制造程度。文章版权归正运动技术所有,如有转载请注明文章;。0

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 技术方案

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁