关于中断指令的理解及怎样使用

关于中断指令的理解及怎样使用

 在《S7-200可编程控制器系统手册》中关于中断指令的描述:“中断允许指令(ENI)全局地允许所有被连接的中断事件。中断禁止指令(DISI)全局地禁止处理所有中断事件。当进入RUN模式时,初始状态为禁止中断。在RUN模式,您可以执行全局中断允许指令(ENI)允许所有中断。全局中断禁止指令(DISI)不允许处理中断服务程序,但中断事件仍然会排队等候”。
 “当把中断事件和中断程序连接时,自动允许中断。如果采用禁止全局中断指令不响应所有中断,每个中断事件进行排队,直到采用允许全局中断指令重新允许中断,如果不用允许全局中断指令,可能会使中断队伍溢出”。
 我的问题是当进入RUN模式时,由于初始状态为禁止中断,要在主程序执行期间的任何时候响应中断(如设备运行状态的多个报警),必须要使用中断允许指令(ENI)吗?该指令加在主程序的什么位置?是否如《S7-200可编程控制器系统手册》中的(示例:中断指令)那样,在每一个中断连接指令(ATCH)处使用中断允许指令(ENI),还是只使用一次?另外在(示例:用定时中断读取模拟量的数值程序举例)中PLC在第一个扫描周期调用子程序SBR0,并在子程序SBR0中使能全局中断,那么在后面的扫描周期里此中断允许指令还有效吗?能否举一个例子说明。
 请各位高手指点,在此先谢谢了!!
 示例:中断指令
 MAIN
 Network 1 //首次扫描
 //1. 定义I0.0
 // 的下降沿中断服务程序为INT_0
 //2. 全局中断允许。
 LD        SM0.1
 ATCH      INT_0,1
 ENI
 Network 2 //如果检测到I/O错误,
 //禁止I0.0的下降沿中断。
 //该程序段是可选的。
 LD        SM5.0
 DTCH      1
 Network 3 //当M5.0接通时,禁止所有中断。
 LD        M5.0
 DISI

 INT0
 Network 1 //I0.0的下降沿中断服务程序:
 //当有I/O错误时返回。
 LD        SM5.0
 CRETI

 
 示例:用定时中断读取模拟量的数值程序举例
 MAIN
 Network 1 //首次扫描,调用子程序0。
 LD        SM0.1
 CALL      SBR_0

 SBR0
 Network 1 //1. 设置定时中断的时间间隔为100ms。
 //2. 连接INT_0到定时中断0(事件10)。
 //3. 全局中断允许。
 LD        SM0.0
 MOVB      100,SMB34
 ATCH      INT_0,10
 ENI

 INT0
 Network 1 //每100ms读AIW4的值。
 LD        SM0.0
 MOVW      AIW4,VW100

 

最佳答案

你自己说得很明白了,只要在SBR0中使用一次ENI指令就可以了。除非在此之后你使用过DISI指令,否则任何时候,中断都会得到及时响应的。而使用了DISI指令后,如果仍需响应中断,请再次使用ENI指令。

提问者对于答案的评价:
谢谢各位指点!

原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc349703.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2021年7月5日 上午12:09
下一篇 2021年7月5日 上午12:09

相关推荐

  • EM231使用(PLC恒温过程控制)

    通过PLC对恒温箱水温进行控制,想要利用扩张功能模块对三处水温进行监控,现想利用EM231模块,不太了解其使用,想了解是否需要在输入前接电桥或是放大器等器件?需要几个EM231模块…

    SIMATIC S7-200 2021年7月5日
  • 间接寻址的问题

    我看了编程软件帮助文档中关于间接寻址的说明,结果不是很明白。 它有个命令 MOVD   &VB10, AC1&n…

    SIMATIC S7-200 2021年7月5日
  • 关于变量的存取问题

    各位老师好,我是新手,欢迎各位赐教!我的问题如下 1,变在什么情况下是按字节保存,什么情况下按字保存,什么情况按双字保存,什么情况按位保存? 2,如果是按字保存…

    SIMATIC S7-200 2020年11月5日
  • s7-200模拟量

    用s7-200模拟量4-20MA去控制比例阀,变化曲线为1秒到最大,运行一会,再经1S减速到0,怎么编程 最佳答案 如果精度不是很高,直接在主程序中写程序即可。 首先用两…

    SIMATIC S7-200 2021年7月5日
  • 脉冲输出增量如何计算

    请问在做脉冲包络指令时没段的脉冲增量如何计算啊 还有脉冲增量是什么意思啊  谢谢 最佳答案 转帖:(里面有介绍到)PTO/PWM高速脉冲输出功能S72…

    SIMATIC S7-200 2020年11月1日
  • S7-200 周期输出趋势图

    最近写了个小程序,是用定时器实现Q0.01S高低电平输出,程序中还用到SM0.5。用软件上的趋势图看波形,结果波形与理论相差较大。请问,是输出就是误差较大,还是软件显示误差大? 图…

    2017年6月29日
  • RPC

    SIMARTS7-200下载或监控程序时,出现RPC服务器不可用 最佳答案 在服务里面找到RPC服务看看能启动不,不能的话可能系统有问题了,是不是有安装有安全卫士给优化禁用了?参考…

    SIMATIC S7-200 2017年5月29日
  • S7-200时钟

    CPU214是否能实现时钟定时输出控制?如果有,断电重新上电时钟是否能保持?请学长们指教 最佳答案 214可以实现时钟定时输出控制,断电重新上电时钟能保持,前提是断电小于50小时,…

    SIMATIC S7-200 2021年7月4日
  • PC ACCESS通讯需要安装哪些软件

    CP243-1+以太网卡+PC ACCESS,通过OPC通道连接;除了安装PC ACCESS和WINCC外,还需要安装step7和NET软件吗 最佳答案 不需要…

    SIMATIC S7-200 2020年11月1日
  • 小数点变逗号了

    我在电脑上设了个变量是小数,模拟出来的小数也是小数点,但传到屏上后却显示逗号,请问该则么解决这个问题呢? 最佳答案 你可进入屏的控制面板,将系统语言更改为英语,默认的是德语,德语的…

    SIMATIC S7-200 2021年7月5日

发表回复

登录后才能评论