发表于:2007-01-03 20:58:00
4楼
TITLE=程序注释
Network 1 // 网络标题
// I0.1启动
LD I0.1
EU
MOVB 16#1, MB0
MOVW 16#FF, VW0
S M1.0, 1
MOVB 16#81, VB2
Network 2
// I0.2总停止
LD I0.2
MOVB 16#0, MB0
MOVW 16#0, VW0
R M1.0, 2
MOVB 16#0, VB2
Network 3
// 8路灯管单独停止
LD I0.2
MOVB 16#0, MB0
MOVW 16#0, VW0
Network 4
// 24l路循环灯管单独停
LD I0.3
R M1.0, 2
MOVB 16#0, VB2
Network 5
// 8路灯管控制,Q0----7(QB0)为8路灯管输出控制点
LD SM0.0
LPS
A M0.0
LPS
A SM0.5
EU
RLW VW0, 1
LPP
AW= 16#FF00, VW0
EU
RLB MB0, 1
LRD
A M0.1
LPS
TON T37, 100
A T37
A SM0.5
EU
RRW VW0, 1
LPP
AW= 16#FF, VW0
EU
RLB MB0, 1
LRD
A M0.2
LPS
TON T38, 20
A T38
A SM0.5
EU
RRW VW0, 1
LPP
AW= 16#FF00, VW0
EU
RLB MB0, 1
LRD
A M0.3
LPS
TON T39, 50
A T39
A SM0.5
EU
RLW VW0, 1
LPP
AW= 16#FF, VW0
TON T40, 20
LPP
A T40
MOVB 16#1, MB0
Network 6
// 需要闪烁时去掉这个网络6,不需要闪烁时去掉网络7,这两个网络不要同时存在
LD SM0.0
MOVB VB1, QB0
Network 7
// 这个是最后的要求闪烁的程序段,需要闪烁时删掉网络6同时要将T37时间改小,如果不需要闪烁就直接删掉这个网络7。
LD SM0.0
LPS
A SM0.5
MOVB VB1, QB0
LPP
AN SM0.5
A M0.1
AN T37
MOVB 16#0, QB0
Network 8
// 24路循环灯控制,由于2个灯同时亮,所以每2个共用一个输出点。QB1单数灯管,QB2双数灯管(双数的灯管安装顺序与单数灯管相反,即Q1.0-----Q1.5对应灯管1,3-------21,23,Q2.0-----Q2.5对应灯管24.22-------4,2,这样可以省掉一些程序)
LD SM0.0
LPS
A M1.0
LPS
A SM0.5
EU
RLB VB1, 1
LRD
AN M1.1
TON T42, 300
LRD
A T42
EU
S M1.1, 1
LRD
A M1.1
TON T43, 300
LPP
A T43
EU
R M1.1, 1
LRD
AN M1.1
MOVB VB1, QB1
MOVB 16#0, QB2
LPP
A M1.1
MOVB VB1, QB2
MOVB 16#0, QB1
西门子的PLC很灵活,输出点既可以位寻址又可以字节寻址,为了方便我直接把数据按字节传送了,要是想分别单独传送位,就把VW0,VB2换成MW3,MB5之类的,然后拆开了单独位控制就可以。