下面的例子用西门子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个字
标题:定时中断
//***********主程序**********
//在主程序的第一部分指定起始时问基准。
//为两个定时中断分别指定对应的中断处理程序。
LDSM0.1//仅首次扫描处理。
MOVB50,SMB34//设置定时中断0的时为基准为50ms
MOVB100,SMB35//设置定时中断1的时{}J基准为100ms
ATC0,10//指定定时中断事件10调用中断程序O
ATC1,11//指定定时中断事件11调用中断程序1
ENI、、允许中断。
//当输入10.1有上升沿(从0到1)时,定时中断的时问基准加信。
//为了执行这一新的指令,必须断开中断事件与中断程序HMXPS9,HOMATIC2-083-02-7024之问的联系,否则小承认新的时问基准。
//用D丁CH指令来切断两者之问的联系。
//用指定了新的时问基准后,必须用ATCH指令来恢复中断事件与中断程序之问的联系。
LD10,1
EU
DTCH10
DTCH11
MOVB100,SMB34
MOVB200,SMB35
ATCH0,10
ATCH1,11
当输入10.0有上升沿时,恢复使用原频率。
LD10.0
EU
DTCH10
DTCH11
MOVB50,SMB34
MOVB100,SMB35
ATCH0,10
ATCH1,11
MEND//主程序结束。
//中断程序0
//当调用中断程序0时,把输出Q0.0置位(Q0.0=1)a
INT0
LDSM0.0
SQ0.0,0
RNTI
0
//中断程序1
//当调用中断程序1时,把输出Q0.0复位(Q0.0=0)a
//因为调用中断程序1的时问基准是调用中断程序0的两信。
//所以输出端Q0.0输出的脉冲频率发生闪烁。
INT1
LDSM0.0
RQ0.0,1
RETI
Contact: 吴经理
Phone: 13808548642
Tel:
Add: 福建省泉州市洛江区万虹路99号