发布于 2012-04-06 10:35:25
5楼
N大侠您好,看了你跑马灯程序,很受启发。我刚弄了个Q点循环输出的程序,用来测试用的,刚开始我想用地址寄存器寻址做的,但AR1的指针值不能保存,在PLC下一个扫描周期重新置位为0.0了,原来得用M存储器保存下啊。后来我改成用存储器寻址做的,下面是我得程序,请指点下,我现在是学着用语句表的,呵呵
首先将Q0.0置1
md40为当前指针
md60为前一指针
MD50为数据长度,比如监视QB0,长度就为8
MD70为最后一个要显示位指针
必须延迟T2时间断开T1,不能用T1常闭点来断开T1,否则指针始终指向第一位地址
网络一
A M 30.0 //启动Q点循环输出
JCN M1
AN M 30.4
AN T 2
L S5T#10S
SD T 1 //Q输出位点亮时间,为10秒
A T 1
FP M 30.1
S Q [MD 40]
R Q [MD 60]
A T 1
L S5T#2S
SD T 2
网络二
A M 30.0
AN M 30.4
L S5T#1S
SD T 4
A T 4
FP M 30.3
S Q 0.0 //首先点亮Q0.0
A Q [MD 40]
FP M 30.2
JNB m2
L MD 40
L L#1
+D
T MD 40
m2: NOP 0
网络三
L MD 40
L MD 50
>=D
S M 30.4
L MD 40
L L#1
-D
T MD 60
L MD 50
L L#1
-D
T MD 70
网络四
A M 30.4
L S5T#6S
SD T 3
A T 3
R Q [MD 70]
R M 30.4
R M 30.0
A T 3
JCN m3
L L#1
T MD 40
L L#0
T MD 60
m3: NOP 0
M1: NOP 0