恭喜,你发布的帖子
发布于 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
这程序我很早之前发过的了。我自己一直在用。
请填写推广理由:
分享
只看
楼主