您现在的位置是:首页 > PLC技术 > PLC技术

S7-300/400延时中断组织块

来源:艾特贸易2017-06-05

简介PLC 中的普通定时器的工作与扫描工作方式有关,其定时精度受到不断变化的循环周期的影响。延时中断组织块的延迟时间为 1~60000ms ,延时精度为 1ms ,优于定时器的精度。 S7 提供了

    PLC中的普通定时器的工作与扫描工作方式有关,其定时精度受到不断变化的循环周期的影响。延时中断组织块的延迟时间为1~60000ms,延时精度为1ms,优于定时器的精度。

   S7提供了4个延时中断OB( OB20~ OB23),它们用SFC 32SRT_DINT”启动,延时时间在SFC 32中设置,启动后经过设定的延时时间之后触发中断,调用SFC 32指定的OB。需要延时执行的操作放在OB中,例如立即输出一个数字量信号。必须将延时中断OB作为用户程序的一部分下载到CPU

   CPU 316及以下的CPU只能使用OB20,其他CPU可以使用的日期时间中断OB的个数与CPU的型号有关。

    如果延时中断已被启动,延时时间还没有到达,可以用SFC 33CAN_DINT”取消延时中断的执行。SFC 34QRY DINT”用来查询延时中断的状态字STATUS

    如果有下列任何一种情况发生,操作系统将会调用异步错误OB

   1) OB已经被SFC 32启动,但是没有下载到CPU

   2)延时中断OB正在执行延时,又有一个延时中断OB被启动。

    【例6-3  在主程序OB1中实现下列功能:

   1)I0.0的上升沿用SFC 32启动延时中断OB2010sOB20被调用,在OB20中将Q4.0置位,并立即输出。I0.21Q4.0被复位。

   2)在延时过程中如果I0.10变为1,用SFC 33取消延时中断,停止调用OB20

    项目的名称为“OB20例程”(见随书光盘中的同名例程)。下面是OB1中的程序代码:程序段1:在I0.0的上升沿启动延时中断

   A    I    0.0

   FP    M    1.0

   JNB    m001    //不是I0.0的上升沿时跳转

   CALL  SRT_DINT   //启动延时中断OB20

   OB_NR    =20    //组织块编号

   DTIME    =T#10S    //延时时间为10s

   SIGN    =MW12    //保存延时中断是否启动的标志

   RET_VAL  =MW100    //保存执行时可能出现的错误代码,为0时无错误

 m001    NOP 0

  程序段2:查询延时中断

   CALLQRY_DINT"    //调用SFC 34,查询延时中断OB20的状态

   OB_NR    =20    //组织块编号

   RET_VAL  =MW102    //保存执行时可能出现的错误代码,为0时无错误

   STATUS    =MW4    //保存延时中断的状态字,MB5为低字节程序段3:在10.1的上升沿取消延时中断

   A    1    0.1

   FP    M    1.1   //I0.1的上升沿检测

   A    M5.2    //延时中断未被激活或已完成(状态字第2位为0)时跳转

   JNB    m002

   CALL  CAN_DINT   //调用SFC 33禁止OB20延时中断

   OB_NR    =20    //组织块编号

   RET_VAL  =MW104    //保存执行时可能出现的错误代码,为0时无错误

m002    NOP    0

   A    1    0.2

   R    Q    4.0   //0.2为“1”时复位Q4.0

    下面是用STL编写的OB20的程序代码:

   SET

   =    Q    4.0   //Q4.0无条件置位

   LQW  4

   TPQW  4    //立即输出Q4.0

    可以用PLCSIM仿真软件模拟运行上述例程,运行时监视M5.2M5.4。将程序下载到仿真PLC,进入RUN模式时,M5.4马上变为1状态,表示OB20已经下载到了CPU中。用I0.0启动延时中断后,M5.2变为1状态,延时时间到时Q4.0变为1状态,M5.2变为0状态。在延时过程中用I0.1禁止OB20延时,M5.2也会变为0状态。可以用I0.2复位Q4.0