用STEP7编交通灯的控制怎么有问题呢:
红灯先亮10S,黄灯亮5S,之后在是绿灯10S如此轮巡执行。可是按照下面的程序只有红灯能亮10S之后 就没有动静了
NETWORK1
A(
O I 12.0
O(
A T 2
FP M 0.5
)
O Q 4.0
)
AN T 0
L S5T#10S
SD T 0
= Q 4.0
NETWORK2
A(
O T 0
O Q 4.1
)
AN T 1
L S5T#5S
SD T 1
= Q 4.1
NETWORK3
A(
O T 1
O Q 4.2
)
AN T 2
L S5T#10S
SD T 2
= Q 4.2
?
network1..........................................................
A(
O I 12.0
O(
A T 2
FP M 0.5
)
O Q 4.0
)
AN T 0
= L 20.0
A(
A L 20.0
L S5T#1S
SF T 10
NOP 0
NOP 0
NOP 0
A T 10
)
L S5T#10S
SD T 0
NOP 0
NOP 0
NOP 0
NOP 0
A L 20.0
BLD 102
= Q 4.0
network2.......................................
A(
O T 0
O Q 4.1
)
AN T 1
= L 20.0
A(
A L 20.0
L S5T#1S
SF T 11
NOP 0
NOP 0
NOP 0
A T 11
)
L S5T#5S
SD T 1
NOP 0
NOP 0
NOP 0
NOP 0
A L 20.0
BLD 102
= Q 4.1
network3...............................
A(
O T 1
O Q 4.2
)
AN T 2
= L 20.0
A(
A L 20.0
L S5T#1S
SF T 12
NOP 0
NOP 0
NOP 0
A T 12
)
L S5T#10S
SD T 2
NOP 0
NOP 0
NOP 0
NOP 0
A L 20.0
BLD 102
= Q 4.2
我也是刚学习PLC一个月时间,也出现过这样的问题,可能是因为:1ms和10ms分辨率的定时器,如果用其本身作自复位,只能运行一个周期,程序此后只能用其"当前值"而不能用其"位"作为能流过渡,建议换成100ms分辨率的定时器试试或加一个中间继电器M.
1毫秒分辨率
1毫秒定时器记录自现用1毫秒定时器启用以来1毫秒定时器间隔的数目。执行定时器指令即开始计时;但是,1毫秒定时器每毫秒更新一次(定时器位及定时器当前值),不与扫描循环同步。换言之,在超过1毫秒的扫描过程中,定时器位和定时器当前值将多次更新。
定时器指令用于打开和复原定时器,如果是TONR定时器,则用于关闭定时器。
因为可在1毫秒内的任意时刻启动定时器,预设值必须设为比最小要求定时器间隔大一个时间间隔。例如,使用1毫秒定时器时,为了保证时间间隔至少为56毫秒,则预设时间值应设为57。
10毫秒分辨率
10毫秒定时器记录自现用10毫秒定时器启用以来10毫秒定时器间隔的数目。执行定时器指令即开始计时;但是,在每次扫描循环的开始更新10毫秒定时器,其方法是以当前值加上积累的10毫秒间隔的数目(自前一次扫描开始算起)(换言之,在整个扫描过程中,定时器当前值及定时器位保持不变)
因为可在10毫秒内的任意时刻开始定时器,预设值必须设为比最小要求定时器间隔大一个时间间隔。例如,使用10毫秒定时器时,为了保证时间间隔至少为140毫秒,则预设时间值应设为15。
100毫秒分辨率
100毫秒定时器记录自现用100毫秒定时器上一次更新以来100毫秒定时器间隔的数目。这种定时器的更新方法是在执行定时器指令时以当前值加上积累的100毫秒间隔的数目(自前一次扫描开始算起)。
只有在执行定时器指令时才对100毫秒定时器的当前值进行更新。因此,如果启用了100毫秒定时器但并未对各扫描循环执行定时器指令,则仍不能更新定时器当前值并将丧失时间。同样,如果在单个扫描循环内多次执行100毫秒定时器指令,将向定时器的当前值多次增加100毫秒间隔数,赢得时间。只有在每次扫描循环仅仅执行一次定时器指令时,才应该使用100毫秒定时器。
因为可在100毫秒内的任意时刻启动定时器,预设值必须设为比最小要求定时器间隔大一个时间间隔。例如,使用100毫秒定时器时,为了保证时间间隔至少为2100毫秒,则预设时间值应设为22。
?