边沿检测指令在子程序中在一个扫描周期内间隔调用 和 多次调用 的实验程序

已锁定

yanxiao

版主

  • 帖子

    12148
  • 精华

    46
  • 被关注

    183

论坛等级:至圣

注册时间:2003-06-06

钻石 钻石 如何晋级?

边沿检测指令在子程序中在一个扫描周期内间隔调用 和 多次调用 的实验程序

1008

1

2025-03-20 14:09:55

许多人谈到边沿指令,就和“周期”“扫描周期”相关联,我写的这一段实验程序可以证明,边沿指令和周期无关。

我要达到的预期目的:

1、一个边沿指令,只能服务一个取沿对象,不能为多个取沿对象共享。

2、边沿指令,和周期、扫描周期等时间概念无关,只与 扫描 行为有关。

3、边沿指令放在子程序中,与在主程序中的行为表现是相同的。在中断程序中也是一样的。

4、一个扫描周期内,子程序被 间隔调用,多次调用,均不会影响 边沿指令的行为,以及输出结果。

STL形式的程序

一、主程序

LD     First_Scan_On:SM0.1         // 初始化

FILL   0, CNT_间调用EU:VW0, 50     // 对变量区清0

// 间隔调用,100ms调用一次

LD     T33

CALL   间隔调用:SBR0, Clock_1s:SM0.5

NOT

TON    T33, 10                     // 100ms周期

// 循环多次调用

LD     Always_On:SM0.0

FOR    AC0, 1, 10                  // 循环10 次

CALL   循环多次调用:SBR1, Clock_1s:SM0.5

NEXT

// 一般多次调用

LD     Always_On:SM0.0

CALL   一般多次调用:SBR2, Clock_1s:SM0.5 // 1#

CALL   一般多次调用:SBR2, Clock_1s:SM0.5 // 2#

CALL   一般多次调用:SBR2, Clock_1s:SM0.5 // 3#

CALL   一般多次调用:SBR2, Clock_1s:SM0.5 // 4#

CALL   一般多次调用:SBR2, Clock_1s:SM0.5 // 5#

CALL   一般多次调用:SBR2, Clock_1s:SM0.5 // 6#

CALL   一般多次调用:SBR2, Clock_1s:SM0.5 // 7#

CALL   一般多次调用:SBR2, Clock_1s:SM0.5 // 8#

CALL   一般多次调用:SBR2, Clock_1s:SM0.5 // 9#

CALL   一般多次调用:SBR2, Clock_1s:SM0.5 // 10#


二、子程序:间隔调用:SBR0

LD     #取沿对象:L0.0

EU

INCW   CNT_间调用EU:VW0            // 检测到上升沿+1

LD     Always_On:SM0.0

INCD   CNT_间隔调用:VD12           // 每调用一次+1


三、子程序:循环多次调用:SBR1

LD     #取沿对象:L0.0

EU

INCW   CNT_循环多次调用EU:VW2      // 检测到上升沿+1

LD     Always_On:SM0.0

INCD   CNT_循环多次调用:VD16       // 每调用一次+1


四、子程序:一般多次调用:SBR2

LD     #取沿对象:L0.0

EU

INCW   CNT_一般多次调用EU:VW4      // 检测到上升沿+1

LD     Always_On:SM0.0

INCD   CNT_一般多次调用:VD20       // 每调用一次+1


五、变量定义:


六、状态监视结果:



七、LAD程序

沿指令间隔调用与多次调用.rar.pdf

自行改名为rar,再解压。

边沿检测指令在子程序中在一个扫描周期内间隔调用 和 多次调用 的实验程序 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-200 SMART

共有8946条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。