例1 SIMATIC S7-200 ∥输入10 ∥上升沿 DTCH 10 ∥切断定时中断事件10与中断程序0的联系。 DTCH 11 ∥切断定是中断事件11与中断程序1的联系 MOVB 50, SMB34 ∥设置定时中断0的时间基准为50ms MOVB 100, SMB35 ∥设置定时中断1的时间基准为100ms ATCH0,10 ∥恢复定时中断事件10与中断程序0的联系 ATCH 1, 11 恢复定时中断事件11与中断程序1的联系 MEND ∥主程序结束。 ∥中断程序0。 当调用中断程序0时,把输出Q0.0置位(Q0.0=1) INT ∥中断程序0 SMO. 0 ∥特殊存储器位SM0总是1 Q0.0,1 ∥把输出Q00置位(Q0.0=1) ∥中断程序0结束 ∥中断程序1 当调用中断程序1时,把输出Q0.0复位(Q0.0=0) ∥因为调用中断程序1的时间基准是调用中断程序0的两倍。 ∥所以输出端Q0.0输出的脉冲频率发生闪烁 INT ∥中断程序1 SMO.0 ∥SM00总是1 R Q0.0,1 ∥把输出Q0.0复位(Q0.0=0 RET ∥中断程序1结束 请参考 SIMATIC STEP7编程参考手册62节“中断指令”,为您提供了更多的关于定时中断的信息。 version 2.1 门子版权所有
*+'"%# ¸¹ºW ý< op n # ê op n # &' #eÏÐÙ -' &' #eÏÐÙ -' ÄÅ op n # ÄÅ op n # ïn n ¾1 n 0 ' 0 1 n ÑÒÓÔ ê 0 ' 0 1 n n ¾1 n 0 Å 0 1 Ù1 n #eÏÐê1 n #ß ºÌ¿ 0 #/¡¢¼½ n ê 0 Å 0 1 n * Õ Ùbc#ÀD # |
SIMATIC S7-200 2处理输入/输出中断 概述 本程序适用于 SIMATIC S7-212和S7-214的计数器,可以从0计到255,这要取决于输 入10.0的状态。如果将输入100置为1,则程序减计数;如果将输入100置为0,则程 序加计数。 如果输入10.0的状态改变,则将立即激活输入输出中断程序,中断程序0或1分别将存 储器位M00置成1或0 例图 TUJU. SIEMENS CPU 212 00 24 VDC 西门子版权所有 Version 2.1
¸¹ºW *+'"%# »nCD 4 # =̳ þ ÞD # ! í"# 'Ù nÁ í"# 'Ù nå í" # !EF #$%&' n n ( ÷ø#Ó Ô ' (
例2 SIMATIC S7-200 程序框图 开始主始序 首次扫描时 计数器清零 中断程序1 中断程序0: 当100为off时 当100为ON时 当存储器的标志 将存储器的标志 位M00置0 位M00置1 M001=1吗? 加计数器 直到等于255 直到等于0 结束主始序 程序和注解 本程序是一个输入/输出中断程序的范例,计数器从0计到255。如果输入10.0为0,则 程序加计数:如果输入10.0为1,则程序减计数。 本程序包括以下三个程序 Main (主程序) 初始化和计数 NTO (中断程序0) 输入10.0为1时,减计数。 (中断程序1) 输入10.0为0时,加计数。 本程序长度为32个 version 2.1 门子版权所有
*+'"%# ¸¹ºW ! "#$%& ' ( ' ( ')*$+,- .)*$+,- /"#$ 0"#$ 1234 1234 »nê] n#( ³ þ í" Ù nå í" Ù nÁ »n)*ÌîGn ."# ïn ðñò4 / n Ù Á / n Ù å »nd~Ù )
SIMATIC S7-200 标题:事件中断 ********主程序* ∥主程序包括初始化程序和计数程序。 ∥计数器的存储器标志位M00的0或1状态,决定计数方向为加或减计数。 当输入10.0由0变为1时,产生中断事件0,激活中断程序0(|NT0) 中断程序0将存储器位M00置成1,导致主程序减计数 当输入10.0由1变为0时,产生中断事件1,激活中断程序1(NT1) ∥中断程序1将存储器位M00置成0,导致主程序加计数 ∥主程序 ∥仅首次扫描时,SM0.1才为1,进行以下初始化 MOVB +O, ACO ∥将计数累加器ACO清0。 ∥允许中断。 ATCH+0,0 ∥输入10.0为上升沿时激活事件中断0 ATCH +1, ∥输入10.0为上升沿时激活事件中断 LDNMO0 ∥如果存储器的标志位M00为0状态 AB>= 16#FE, ACO ∥且计数累加器ACO的当前计数值小于或等于254 SM0.5 ∥且0.5秒脉冲 且上升沿 INCW ACO ∥那么计算累加器AC0加1 M0.0 ∥如果存储器的标志位M00为1状态 AB<=16#1,AC0 ∥且计数累加器ACo的当前计数值大于或等于1 A SM0.5 且0.5秒脉冲 ∥且上升沿 DECW ACO ∥那么计算器累加器ACO减1 ∥SM00总是1。 MOVB ACO, QB0 在输出端Q0.0至Q0.7显示ACO的当前计数值。 MEND ∥主程序结束 ******中断程序0****** 事件中断程序0将存储器的标志位M0置成1。 此情况下程序减计数。 0 ∥中断事件0减计数 M0.0,1 ∥将存储器的标志位M00置成1。 RETI ∥中断程序0结束 西门子版权所有 Version 2.1
¸¹ºW *+'"%# õôõõôõõôõõôõõôõõôõõôõõôõ ôõõôõõôõõôõõôõõôõõôõõôõõô ! " #$ % &'()"* ¾ FÙ ¬ op &' n / n #ÓÔ ' +,ïnÁ ¾ FÙ ¬ op &' n / n #ÓÔ ' +,ïnå ïn Ûùúûü -Ù aÌîðñò . #å / æç . Ùý<&'op Ùý<&'op í"ÓÔ#01 Ù ! 2å #¾3¦éD(4D 2 ã/ 2ý< 56¤å å í"ÓÔ#01 Ù ! 2å #¾3¦ëD(4D 2 ã/ 2ý< 56¤å Á ê ¿ 0 7 0 8 #¾3¦ ïn ôõõôõõôõõôõõôõõôõ õôõõôõõôõõôõõôõõô op n #ÓÔ#01 ' ×9:înÁ op Á #ÓÔ#01 ' n
例2 SIMATIC S7-200 *中断程序1* 事件中断程序1将存储器的标志位M00置成0 此情况下程序增计数。 INT ∥中断事件1加计数。 M0.0,1 ∥将存储器的标志位M00置成0。 RET ∥中断程序1结束 请参考 SIMATIC STEP7编程参考手册的62节“中断指令”,为您提供了更多的有关输入输出中断的信 息 version 2.1 门子版权所有
*+'"%# ¸¹ºW õôõõôõõôõõôõõôõõôõõ õõôõõôõõôõõôõõôõõô op n #ÓÔ#01 ' ×9:înä op å #ÓÔ#01 ' n # * Õ Ùbc#WÀ # |