发布于 2010-12-18 21:09:33
28楼
ORGANIZATION_BLOCK 主程序:OB1
TITLE=
BEGIN
Network 1
LD SM0.1
MOVW 0, VW100
AENO
MOVW 0, VW102
Network 2
// 调用
LD M0.0
CALL SBR0, 10, 20, 30, VW100, QB0
Network 3
// 调用
LD M0.1
CALL SBR0, 10, 20, 30, VW102, QB1
END_ORGANIZATION_BLOCK
SUBROUTINE_BLOCK SBR_0:SBR0
TITLE=
VAR_INPUT
延时1:WORD; // 第一个动作时刻S
延时2:WORD; // 第二个动作时刻S
延时3:WORD; // 结束动作时刻S
END_VAR
VAR_IN_OUT
计时器:WORD; // 计时器,单位S
END_VAR
VAR_OUTPUT
输出:BYTE; // 需要多点控制时可分别置位
END_VAR
BEGIN
Network 1
LDW>= LW6, LW4
EU
MOVW 0, LW6
Network 2
// 计时累加器
LD SM0.5
EU
INCW LW6
Network 3
LDW>= LW6, LW0
= L8.0
Network 4
LDW>= LW6, LW2
= L8.1
END_SUBROUTINE_BLOCK
INTERRUPT_BLOCK INT_0:INT0
TITLE=中断程序注释
BEGIN
Network 1 // 网络标题
// 网络注释
END_INTERRUPT_BLOCK
这个例子只是说明可以在多次调用的子程序中用计数方式实现计时,且不会串扰!
《12-21,收回“不会串扰!”结论,确如芳侠所说“一定会影响的”。在此,本人向被本篇误导的同仁致歉!》
制冷、热工-许可证试验室承建,给了我深究测量与控制的绝好机会。分享-值得期待!