用一组定时器实现脉冲宽度可调的脉冲信号
OB1
TITLE=程序注释
Network 1
LD SM0.0
= L60.0
LD M0.1
= L63.7
LD L60.0
CALL SBR2, L63.7, VD100, VD200, VD300, VD400, VB500, Q0.3
Network 2
LD SM0.0
= L60.0
LD M0.0
= L63.7
LD L60.0
CALL SBR0, L63.7, VD0, VD4, VD8, VD12, VB16, Q0.0
SBR0
TITLE=子程序注释
Network 1
// 初始化
LD SM0.1
ON L0.0
MOVD 0, LD9
MOVD 0, LD13
R L17.0, 1
Network 2
// 时间非负数
LD SM0.0
LPS
A L1.7
R L1.7, 1
LPP
A L5.7
R L5.7, 1
Network 3
// 单位转换
LD SM0.0
LPS
AR>= LD1, 2147483.0
MOVR 2147483.0, LD1
LRD
AR>= LD5, 2147483.0
MOVR 2147483.0, LD5
LRD
MOVR LD1, LD19
AENO
*R 1000.0, LD19
AENO
ROUND LD19, LD23
LPP
MOVR LD5, LD19
AENO
*R 1000.0, LD19
AENO
ROUND LD19, LD27
Network 4
// VD8 断开时间
LD L0.0
LPS
AD>= LD13, LD27
S L17.0, 1
LPP
A L17.0
LPS
AN L17.1
MOVD 0, LD9
MOVD 0, LD13
BITIM LD9
LPP
= L17.1
Network 5
// VD12 接通时间
LD L0.0
LPS
AD>= LD13, LD23
R L17.0, 1
LPP
AN L17.0
LPS
AN L17.2
MOVD 0, LD9
MOVD 0, LD13
BITIM LD9
LPP
= L17.2
Network 6
LD L0.0
CITIM LD9, LD13
Network 7
LD L17.0
= L18.0
SBR1
TITLE=子程序注释
Network 1
// 初始化
LD SM0.1
ON L0.0
MOVD 0, LD9
MOVD 0, LD13
R L17.0, 1
Network 2
// 时间非负数
LD SM0.0
LPS
A L1.7
R L1.7, 1
LPP
A L5.7
R L5.7, 1
Network 3
// 单位转换
LD SM0.0
LPS
AR>= LD1, 2147483.0
MOVR 2147483.0, LD1
LRD
AR>= LD5, 2147483.0
MOVR 2147483.0, LD5
LRD
MOVR LD1, LD19
AENO
*R 1000.0, LD19
AENO
ROUND LD19, LD23
LPP
MOVR LD5, LD19
AENO
*R 1000.0, LD19
AENO
ROUND LD19, LD27
Network 4
LD L0.0
CITIM LD9, LD13
Network 5
// VD8 断开时间
LD L0.0
LPS
AD>= LD13, LD27
S L17.0, 1
LPP
A L17.0
LPS
AN L17.1
MOVD 0, LD9
MOVD 0, LD13
BITIM LD9
LPP
= L17.1
Network 6
// VD12 接通时间
LD L0.0
LPS
AD>= LD13, LD23
R L17.0, 1
LPP
AN L17.0
LPS
AN L17.2
MOVD 0, LD9
MOVD 0, LD13
BITIM LD9
LPP
= L17.2
Network 7
LD L17.0
= L18.0
SBR0与SBR1 功能一样,但是将
LD L0.0
CITIM LD9, LD13 放在不同位置有不同效果,利用PLC扫描机制在合适的“时间"将时间复位很关键。