下面的例子用西门子s7-200PLC定时中断来产生闪烁频率脉冲。当连在输入端10.1的开关接通时,闪烁频率减半;当连在输入端10.1的开关接通时,又恢复成原有的闪烁频率。
本例叙述由定时中断引起的一般性的处理以及改变其时问基准。
程序流程图
程序和注释
用特殊存储字节SMB34指定第一定时中断的时问基准,由此产生的定时中断称为中断事件10。
用特殊存储字节SMB35指定第二定时中断的时问基准,由此产生的定时中断称为中断事件11。仅CPU214支持第二定时中断。
这两种定时中断的时问基准的设定值只能以1ms(毫秒)为单位增加,允许最小值是5ms,最大值是255ms。本例程序组成如下:
Main 主程序
初始化和指定时问基准
IN丁0
中断程序1
对输出Q0.0置位(Q0.0=1
IN丁1
中断程序2
对输出Q0.0复位(Q0.0=0)
本程序长度为51个字
标题:定时中断
//***********主程序**********
//在主程序的第一部分指定起始时问基准。
//为两个定时中断分别指定对应的中断处理程序。
LD SM0.1 //仅首次扫描处理。
MOVB 50, SMB34//设置定时中断0的时为基准为50ms
MOVB 100,
SMB35//设置定时中断1的时{}J基准为100ms
ATC 0, 10 //指定定时中断事件10调用中断程序O
ATC 1, 11 //指定定时中断事件11调用中断程序1
ENI
、、允许中断。
//当输入10.1有上升沿(从0到1)时,定时中断的时问基准加信。
//为了执行这一新的指令,必须断开中断事件与中断程序之问的联系,否则小承认新的时问基准。
//用D丁CH指令来切断两者之问的联系。
//用指定了新的时问基准后,必须用ATC
H指令来恢复中断事件与中断程序之问的联系。
LD 10, 1
EU
DTCH 10
DTCH 11
MOVB 100,
SMB34
MOVB 200,
SMB35
ATCH 0, 10
ATCH 1,11
当输入10.0有上升沿时,恢复使用原频率。
LD 10.0
EU
DTCH 10
DTCH 11
MOVB 50, SMB34
MOVB 100, SMB35
ATCH 0, 10
ATCH 1, 11
MEND //主程序结束。
//中断程序0
//当调用中断程序0时,把输出Q0.0置位(Q0.0=1
)a
INT 0
LD SM0.0
S Q0.0, 0
RNTI
0
//中断程序1
//当调用中断程序1时,把输出Q0.0复位(Q0.0=0)a
//因为调用中断程序1的时问基准是调用中断程序0的两信。
//所以输出端Q0.0输出的脉冲频率发生闪烁。
INT 1
LD SM0.0
R Q0.0, 1
RETI