各位师傅:有这么一个程序,我有好几处不明白,还望各位不吝赐教!
这是一个地铁排水控制系统,按照地势先把水集中在多个集水池里面,然后对各个池进行抽水。本控制系统的抽水控制的顺序按照固定的顺序进行抽水。在抽水的过程中同一个时间一般只对一个池抽水,等待完毕后再抽另外一个池的水。以下依次是主程序,开阀门控制子程序,关阀门控制子程序,泵开/关及抽水顺序控制子程序,停止控制子程序。
Network 1 // 使用开机脉冲,把循环字节清零
LD SM0.1
MOVB 0, VB100
Network 2 // 启动抽水控制系统,调用: 开阀门控制子程序 关阀门控制子程序 开/关泵控制子程序
LD I1.2
CALL SBR0
CALL SBR1
CALL SBR2
Network 3 // 当需要关闭时,调用关闭抽水系统控制子程序
LDN I1.2
CALL SBR3
Network 1 // 开阀门控制子程序
// 网络注释
LDB<= VB100, 0
OB>= VB100, 32
MOVB 1, VB100
Network 2
LD V100.0
A I0.0
S Q0.0, 1
Network 3
LD V100.1
A I0.1
S Q0.1, 1
Network 4
LD V100.2
A I0.2
S Q0.2, 1
Network 5
LD V100.3
A I0.3
S Q0.3, 1
Network 6
LD V100.4
A I0.4
S Q0.4, 1
TITLE=子程序注释
Network 1 // 关阀门控制子程序
// 网络注释
LD V100.0
A I0.5
R Q0.0, 1
Network 2
LD V100.1
A I0.6
R Q0.1, 1
Network 3
LD V100.2
A I0.7
R Q0.2, 1
Network 4
LD V100.3
A I1.0
R Q0.3, 1
Network 5
LD V100.4
A I1.1
R Q0.4, 1
TITLE=子程序注释
Network 1 // 泵开/关及抽水顺序控制子程序
// 网络注释
LD SM0.0
MOVB 16#1F, AC3
ANDB QB0, AC3
Network 2
LDB<> AC3, 0
S Q0.5, 1
NOT
R Q0.5, 1
Network 3
LDN Q0.5
RLB VB100, 1
TITLE=子程序注释
Network 1 // 停止控制子程序
// 网络注释
LD SM0.0
R Q0.0, 6
MOVB 100, VB100
我对这个循环查询VB100这功能是怎么实现的不明白,怎么用MOV就能实现循环查询的呢,还有
LDB<= 循环查询:VB100, 0
OB>= 循环查询:VB100, 32
MOVB 1, 循环查询:VB100
为什么要有这一步?
停止控制子程序中100传送给VB100具体起什么作用。
归根结底,我就是对如何用传送指令进行循环查询?