接上篇《Step7中有关时间和定时器的使用和例程1》
4、循环中断(OB35)、延时中断(OB20)、时间中断(OB10)
4.1 循环中断(OB35)
具体步骤如下:
1)创建一个项目并插入一个300站
2)打开Hardware
3)配制300站并双击300CPU打开Properties窗口
4)选择Cycle interrupts
5)将OB35对应的时间修改为需要的时间(例如200ms)并点击OK确认
6)编译保存
7)通过Blocks ->Insert New Object ->Organization Block插入OB35
8)双击打开OB35进行编程即可。
这样OB35每隔200ms执行一次,MW120值加1。
4.2 延时中断(OB20)
1)通过Blocks ->Insert New Object ->Organization Block插入OB20,双击打开OB20并进行编程。
2)打开OB1,调用SFC32 “SRT_DINT”(启动延时中断)
通过SFC 32 "SRT_DINT" (启动延时中断),可以在延迟时间过去(参数DTIME)后立即启动调用延时中断组织块的延时中断。使用SIGN参数,可以输入用于标识延时中断开始的标识符。执行指定的OB时,DTIME和SIGN值将再次显示在该OB的启动事件信息中。
如上图所示,每当M0.0由0变为1时,经过5S后OB20被执行,MW110执行了加1操作。监视变量表如下图所示:
4.3 时间日期中断(OB10)
OB10的执行可由3种办法来设定:
1)方法一:如下图所示在HW config窗口下双击300的CPU打开Properties,设定开始执行的时间和执行频率,然后选中Active下的复选框,点击OK。
通过Blocks ->Insert New Object ->Organization Block插入OB10,双击打开OB10并进行编程。
当程序下载到PLC中后OB10将按设定执行,通过监视变量表可观察到OB10的执行情况。
2)方法二:在HW config窗口下双击CPU300打开Properties,设定开始执行的时间和执行频率,不选中Active下的复选框,点击OK。
在程序中调用SFC30 "ACT_TINT" (激活时间中断),可以激活一个时间中断组织块。
编程OB10,参考前图,编译下载即可。
注意:SFC30只需执行一次,即CPU停机后再启动不需要再次调用SFC30。
3)方法三:在HW config中不作配置,调用SFC28和SFC30,通过SFC 28 "SET_TINT" (设置时间中断),可以设置时间中断组织块的启动日期和时间。将忽略指定的启动时间的秒和毫秒值,并将其设置为0。
在DB1中定义一个DATA_AND_TIME的变量
初始化数据块,将初值作为设定值
调用SFC28和SFC30
当M0.0由0变为1时SFC28被调用,M0.2由0变为1时SFC30被调用,OB10将按设定方式执行。
同样SFC28也只需执行一次即可。
5、时钟寄存器(Clock Memory)
西门子300和400的PLC提供一个Clock Memory的字节,每一位以不同的频率执行0到1的变化,打开HW config界面,双击CPU打开Properties窗口选择Cycle/Clock Memory选项,选中如下图所示的Clock Memory的复选框,在Memory byte后对话框中输入所需要的Memory byte号,如输入100,则MB100被设定为Memory byte。
M100.0-M100.7将按不同的频率变化