ZBasic中断分为三种,分别为掉电中断、外部中断、定时器中断。
1)掉电中断
必须是全局的SUB函数。控制器只有1个掉电中断。掉电中断执行的时间特别有限,只能写少数几条语句,将数据存储在VR里。
相关函数:INT_ENABLE,ONPOWEROFF。
2)外部中断
可设置上升沿触发或下降沿触发,必须是全局的SUB函数,目前只有中断IN口0-31可以使用。必须是支持PLC功能的固件才可使用。
相关函数:上升沿中断INT_ONn,下降沿中断INT_OFFn。
3)定时器中断
达到设定时间后执行定时器中断函数,必须是全局的SUB函数,定时器个数根据控制器型号,使用?*max打印查看。
相关函数:ONTIMERn,n的取值范围为:“0”-“定时器最大编号减1”。
达到设定时间后执行定时器中断函数,必须是全局的SUB函数,定时器个数根据控制器型号,使用?*max打印查看。
使用中断前必须开启中断总开关,为了避免程序没有初始化好进入中断,控制器上电时中断开关缺省是关闭的。三类中断运行时,中断程序单独占用一个任务号运行,不存在压栈的情况。
中断使用注意事项:
各中断之间无优先级,支持中断嵌套,多个中断可以同时执行,同一时间处理的中断函数不宜过多。
控制器内部只有一个任务在处理所有的中断信号响应,有一个固定的中断任务号,如果中断处理函数过多,并且中断处理函数的代码太长,会造成所有的中断响应变慢,甚至是中断堵塞,影响其他中断执行。
解决办法:
尽量减少中断的数量,很多应用都可以用循环扫描来处理。
如果有一个中断处理函数特别长的话,调用一个单独的任务来处理中断中的复杂任务,这样就不会堵塞其他的中断响应。
控制器的中断分为三种,分别为掉电中断、外部中断、定时器中断。
使用中断前必须开启中断总开关,为了避免程序没有初始化完成便进入中断,控制器上电时中断开关缺省是关闭的。
楼主最近还看过