发表于:2006/5/16 15:54:00
#0楼
首先要先把I/O点分好!
X0 低电平
X1 中电平
X2 高电平
X10 两个功能的转换
T1 0.2秒的脉冲
T2 0.2秒的脉冲
T3 0.5秒的脉冲
T4 0.5秒的脉冲
Y0 红灯
Y1 绿灯
Y2 黄灯
,,
Y7 绿灯
在这里可以用进位循环移位指令,但是三菱的只有十六位与三十二位的操作数,而没有八位的,因选用了8位灯,只能用位移位指令。[SFTR(P) M0 Y0 K8 K1]
[SFTR(P) S D N1 N2] 是位移位的指令(*)里面加P,为脉冲执行方式,左移为SFTL
S(M0)为移入移位单元数据的首地址
D(Y0) 为移位单元中位元件的首地址
N1(K8)为构成移位单元的目标操作数D的长度,N1<=1024(K代表十进制,H为十六进制
N2为每次移动的位数,也是源操作数S的长度,N2<=工N1
因有二个功能,所以在程序里编入子程序,[CALL P19]
CALL 为指令 P19为指针数
在这个程序里还用到[SEND] 为主程序结束指令,无数指令数。
M8002,为仅在运行开始时接通一个扫描周期。所以在程序里用[SET]为M0置位。
M8013为一秒的脉冲
还用到计时器与复位,置位
在程序开始用M8002,为M0置位。
0.2秒的脉冲
0.5秒的脉冲
X10导通时,将进行跳转,停止扫描主程序跳到为指针P19。如为OFF时,将正常
扫描主程序。
当低电平X0导通时,通过一秒的脉冲与中电平高电平的互锁,流入位移位指令,
将M0先传送到Y0,在这里用了脉冲移位指令,所以M8013导通一下,Y0为1,
再导通一下,Y0向Y1移位,Y1同时也为1。以次类推,直到Y7为1。
中电平X1与高电平X2同理
当Y7为1时,将Y0-Y7复位,以进行下一个循环。
在这用到[SEND]将说明主程序已经结束。下面为子程序。
P19,为子程序的指针号。
X0,导通,经过中高电平的互锁使红灯亮。(在这里还可以用上升沿微分)
中高电平与之同理
结束!
X0 低电平
X1 中电平
X2 高电平
X10 两个功能的转换
T1 0.2秒的脉冲
T2 0.2秒的脉冲
T3 0.5秒的脉冲
T4 0.5秒的脉冲
Y0 红灯
Y1 绿灯
Y2 黄灯
,,
Y7 绿灯
在这里可以用进位循环移位指令,但是三菱的只有十六位与三十二位的操作数,而没有八位的,因选用了8位灯,只能用位移位指令。[SFTR(P) M0 Y0 K8 K1]
[SFTR(P) S D N1 N2] 是位移位的指令(*)里面加P,为脉冲执行方式,左移为SFTL
S(M0)为移入移位单元数据的首地址
D(Y0) 为移位单元中位元件的首地址
N1(K8)为构成移位单元的目标操作数D的长度,N1<=1024(K代表十进制,H为十六进制
N2为每次移动的位数,也是源操作数S的长度,N2<=工N1
因有二个功能,所以在程序里编入子程序,[CALL P19]
CALL 为指令 P19为指针数
在这个程序里还用到[SEND] 为主程序结束指令,无数指令数。
M8002,为仅在运行开始时接通一个扫描周期。所以在程序里用[SET]为M0置位。
M8013为一秒的脉冲
还用到计时器与复位,置位
在程序开始用M8002,为M0置位。
0.2秒的脉冲
0.5秒的脉冲
X10导通时,将进行跳转,停止扫描主程序跳到为指针P19。如为OFF时,将正常
扫描主程序。
当低电平X0导通时,通过一秒的脉冲与中电平高电平的互锁,流入位移位指令,
将M0先传送到Y0,在这里用了脉冲移位指令,所以M8013导通一下,Y0为1,
再导通一下,Y0向Y1移位,Y1同时也为1。以次类推,直到Y7为1。
中电平X1与高电平X2同理
当Y7为1时,将Y0-Y7复位,以进行下一个循环。
在这用到[SEND]将说明主程序已经结束。下面为子程序。
P19,为子程序的指针号。
X0,导通,经过中高电平的互锁使红灯亮。(在这里还可以用上升沿微分)
中高电平与之同理
结束!
一切都在努力中!!