I1的通断由T1和T2控制,T1控制导通时间,T2控制关断时间,不断循环。I1导通时,Q1导通,Q2比Q1延迟T3导通,输出波形相同,以此类推一直到Q13为一个周期。T1+T2>13*T3
我是这样来做的,但感觉太冗长了,不知各位仁兄是否有更好的办法。
请看SBR1和SBR2部分。
SUBROUTINE_BLOCK SBR_1:SBR1
TITLE=子例行程序注释
BEGIN
Network 1 // 一循环结束给计时复
LD Q2.2
ED
R T5, 1
Network 2 // T5: I1 on time . 100ms为一单位
LD I0.1
TONR T5, +32767
= Q0.0
Network 3 // 模拟电位器的值转化为0-30000ms的时间值。即T3 以10ms为一单位.0-255 ----0---30s
smw28/17*100 作为T3的脉冲
// 网络注释
LD SM0.0
LPS
MOVW SMW28, VW0
AENO
ITD VW0, VD2
AENO
DTR VD2, VD6
AENO
LPS
MOVR VD6, VD14
AENO
*R 5.88, VD14
AENO
ROUND VD14, VD18
LPP
MOVR VD6, VD10
/R 8.5, VD10
LPP
CALL SBR_2, VW50
Network 4
LD V50.4
LD I0.1
EU
OLD
MOVW +1, VW50
Network 5 // 产生延时脉冲。
LDN V50.4
AN T34
TON T33, VW20
Network 6
LD T33
TON T34, VW20
Network 7
LD I0.1
OW>= VW50, +2
A T33
EU
SLW VW50, 1
END_SUBROUTINE_BLOCK
SUBROUTINE_BLOCK SBR_2:SBR2
TITLE=子例行程序注释
VAR_INPUT
vw_n:INT;
END_VAR
BEGIN
Network 1
LDW= LW0, +2
S Q0.1, 1
Network 2
LD Q0.1
TON T37, T5
Network 3
LD T37
R Q0.1, 1
Network 4
LDW= LW0, +4
S Q0.2, 1
Network 5
LD Q0.2
TON T38, T5
Network 6
LD T38
R Q0.2, 1
Network 7
LDW= LW0, +8
S Q0.3, 1
Network 8
LD Q0.3
TON T39, T5
Network 9
LD T39
R Q0.3, 1
Network 10
LDW= LW0, +16
S Q0.4, 1
Network 11
LD Q0.4
TON T40, T5
Network 12
LD T40
R Q0.4, 1
Network 13 // 网络标题
// 网络注释
END_SUBROUTINE_BLOCK
做了四个,余下的暂时省略。
点击此处查看附件