回复:帮我看看,为啥这个子程序里面的时间跑的特别快。

已锁定

芳季

西门子1847工业学习平台

  • 帖子

    15511
  • 精华

    101
  • 被关注

    961

论坛等级:至圣

注册时间:2007-08-03

钻石 钻石 如何晋级?

发布于 2021-06-10 22:58:50

27楼

1毫秒以上就变成1.1毫秒扫描周期,smw22每次都显示2毫秒,

20.1毫秒扫描周期,smw22显示21毫秒。

反正bitime就不会这么错啦。用bitime啦。


SUBROUTINE_BLOCK 星角启动:SBR12

TITLE=程序目的:

//  仅使用一个触点控制星三角启动的三个输出线圈。达到普遍的转换过程。

//  一个子程序允许通过多次调用,控制多个电机进行启动。

//  

//  适用范围:

//  仅建议在主程序中无条件调用。用有条件调用也可,但不推荐。

//  

//  程序接口:

//  启动 用这个触点控制电机的运行。

//  设定值 启动时间。单位毫秒。

//  间隔 启动过后,经历间隔时间进入运行。单位毫秒。

//  

//  过程值 程序运行需要的一个双字的储存空间。用户不要修改此值。

//  主线圈;启动圈;运行圈。对应的输出,控制接触器。

//  

//  执行过程:

//  【启动】端未接通时子程序一直进行内部跳转。

//  【启动】端接通,随即【启动圈】和【主线圈】同时接通。

//  经过【设定值】时间后,启动圈断开,主线圈保留。

//  经过【间隔】时间后,【主线圈】和【运行圈】同时接通。

//  运行线圈接通后,大部分程序也再跳转。消耗很少的执行时间。

//  【启动】端随时断开,输出点即时断开。

// 

//  补充说明:

//  本程序免费使用。也许不会适用于你的程序。当由于任何原因不适用时,程序作者不负有责任。请用户仔细复核程序内容,再继续使用。

//  

//  程序密码:XJQD

// 

VAR_INPUT

启动:BOOL;

设定值:DINT;

间隔:DINT;

END_VAR

VAR_IN_OUT

过程值:DINT;

主线圈:BOOL;

启动圈:BOOL;

运行圈:BOOL;

END_VAR

VAR

当前值:DINT;

间隔当前:DINT;

END_VAR

BEGIN

Network 1 

LDN    L0.0

R      L13.0, 3

CRET

Network 2 

LD     L13.0

JMP    0

Network 3 

LD     SM0.0

BITIM  LD9

=      L13.0

=      L13.1

Network 4 

LBL    0

Network 5 

LD     L13.2

JMP    1

Network 6 

LD     L0.0

CITIM  LD9, LD14

MOVD   LD1, LD18

+D     LD5, LD18

Network 7 

LDD>=  LD14, LD1

R      L13.1, 1

Network 8 

LDD>=  LD14, LD18

=      L13.2

Network 9 

LBL    1

END_SUBROUTINE_BLOCK

这程序我很早之前发过的了。我自己一直在用。


评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-200 SMART

共有8945条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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