各位大佬,请教个问题:有10个风机事先决定开那几个,在启动后按顺序延时启动事先选定的风机;用循环写了点程序,有点问题不能正常启动,请大神指点下,还有什么好一点的思路呢 ?谢谢
一、启动风机
OPN "pump_ctrl" //打开定义好的db块一个风机2个字节;0.0代表是否要启动,0.1顺序启动,0.2输出
L DBLG
L 2
/D
T #demp_BI_NUM
L 20
T MW 30 //定时器号初始号
A M 9.0 //启动信号
FP M 9.1
S DBX 0.1//第一个风机的顺序启动
L P#0.0 /
LAR1
L #demp_BI_NUM
NEXT: T #count //计数
A DBX [AR1,P#0.1]//判断有无启动信号
JNB k001
A DBX [AR1,P#0.0]//是否事先选中,选中为1
JNB k002
= DBX [AR1,P#0.2]//输出
A DBX [AR1,P#0.2]
L S5T#3S
SD T [MW 30]
A T [MW 30]
A(
L #count
L 1
>D
)
JNB k003 //判断最后一次不给下一个输出启动信号;
k002: S DBX [AR1,P#2.1]//给下一个电机启动信号
k003: +AR1 P#2.0 //AR1的内容加上偏移量2.0,结果送AR1
L MW 30
L 1
+I
T MW 30
L #count
LOOP NEXT //累加器1低字的内容减1,如果减1后大于0,跳转到标号NEXT处
k001: NOP 0
二、停止复位
AN M 9.0
FP M 9.3
JNB k010
OPN "pump_ctrl"
L DBLG //计算开关量个数
L 2
/D
T #num1
L P#0.0 //将32位指针常数装入累加器1
LAR1
L #num1
next: T #count1
R DBX [AR1,P#0.1]
R DBX [AR1,P#0.2]
+AR1 P#2.0
L #count1
LOOP next
k010: NOP 0