登录
首页 PLC论坛 三菱Mitsubishi
回帖 发帖
正文

主题:一个小程序大家给我指点一下!

点击:1316 回复:7

首先要先把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,导通,经过中高电平的互锁使红灯亮。(在这里还可以用上升沿微分)
中高电平与之同理
结束!
06-05-16 15:54
附件
06-05-16 16:04
附件
附件
06-05-16 16:14
i 不是很明的哟
06-05-16 20:52
呵呵,没看明白,
不知楼主想干啥.
也不知楼主想大家指点啥.呵呵.
06-05-16 20:55
也许我说的不对,
编程第一步应该是:  理清要完成的功能
06-05-16 21:03
忘记把题目传上来了!
当输入为高频信号时,经TTL反相器后,是低电平。也是先通过带通滤波器分为高A,中B,低C,再交直流变换,适当幅度调节,送入TTL反相器,如果有高频信号,高频那一路的TTL输出为低电平,作为PLC的输入,同理。另两路。
两种控制:(加转换开关)
(1)假如检测到A为低电平,则0~7个灯按照0.2秒的延时滚动,直到变为高电平全部熄灭;如果检测到B为低电平,则0~7的灯按按照0 .5秒延时滚动,直到变为高电平全部熄灭;如果检测到C为低电平,则0~7的灯按按照1秒延时滚动,直到变为高电平全部熄灭;
(2))假如检测到A为低电平,则所有红灯亮,直到变为高电平全部熄灭;如果检测到B为低电平,则所有绿灯亮,直到变为高电平全部熄灭;如果检测到C为低电平,则所有黄灯亮,直到变为高电平全部熄灭;
0红
4绿
2黄
6红
1绿绿
7绿
5黄
3红
06-05-17 10:46
图有点模糊看不太清.好象梯形图没全吧!!!!!!!!!!!!!1
06-06-19 19:26

工控新闻

更多新闻资讯