wangkeming07
学无止境。
级别: 家园常客
精华主题: 0
发帖数量: 97 个
工控威望: 826 点
下载积分: 851 分
在线时间: 49(小时)
注册时间: 2011-05-27
最后登录: 2023-04-21
查看wangkeming07的 主题 / 回贴
楼主  发表于: 2013-05-16 19:47
Y1 Y2 Y3 Y4 四个灯依次闪烁一秒。A 闪烁一秒后B在闪烁一秒,以此类推,直到D闪烁一秒。D闪烁一秒后再停止一秒,之后ABCD同时闪烁一秒最后D再停止一秒。

依次循环8次。最后用最简单的方法编程。
liuliangdt
liuliangdt
级别: 家园常客
精华主题: 0
发帖数量: 447 个
工控威望: 681 点
下载积分: 66146 分
在线时间: 988(小时)
注册时间: 2010-09-05
最后登录: 2024-10-29
查看liuliangdt的 主题 / 回贴
1楼  发表于: 2013-05-19 14:10
我用三菱的格式写的。在仿真上试,跟楼主要求貌似差不多,不知道大家还能不能简化。
/**************************************/
LD M8002             //开机脉冲
SET  M20              //循环8次后的停止标志位
/**************************************/
LD M20
MPS
ANI T1
OUT T0 K10          //一秒时钟
MPP
AND T0
OUT T1 K10          //复位定时器0用
/***********************************/
LD T0
INCP D0                 //一秒计时
/***********************************/
LD = D0 K1            //第一秒
OUT M0                  //接通Y0
/***********************************/
LD= D0 K3             //第三秒
OUT M1                  //接通Y1
/***********************************/
LD= D0 K5             //第五秒
OUT M2                  //接通Y2
/**********************************/
LD= D0 K7             //第七秒
OUT M3                  //接通Y3
/**********************************/
LD= D0 K9             //第九秒
OUT M10                //接通Y0
OUT M11                //接通Y1
OUT M12                //接通Y2
OUT M13                //接通Y3
/**********************************/
LD= D0 K11           //第十一秒
INCP D1                 //循环次数加一次
RST D0                   //复位一秒计时,重新计时
/***********************************/
LD= D1 K8             //当循环次数达到8次时
RST M20                //复位循环8次后标志位M20
RST D0                   //复位一秒计时(这步可以不写,上面有了)
/***********************************/
LD M0
OR M10
OUT Y0                   //物理外部Y0输出
/***********************************/
LD M1
OR M11
OUT Y1                   //物理外部Y1输出
/***********************************/
LD M2
OR M12
OUT Y2                   //物理外部Y2输出
/***********************************/
LD M3
OR M13
OUT Y3                   //物理外部Y3输出
/***********************************/
liuliangdt
liuliangdt
级别: 家园常客
精华主题: 0
发帖数量: 447 个
工控威望: 681 点
下载积分: 66146 分
在线时间: 988(小时)
注册时间: 2010-09-05
最后登录: 2024-10-29
查看liuliangdt的 主题 / 回贴
2楼  发表于: 2013-05-19 16:40
引用
引用第16楼liuliangdt于2013-05-19 14:10发表的  :
我用三菱的格式写的。在仿真上试,跟楼主要求貌似差不多,不知道大家还能不能简化。
/**************************************/
LD M8002             //开机脉冲
SET  M20              //循环8次后的停止标志位
/**************************************/
.......





不好意思,上面错了。上面是两秒闪烁一次。
把定时器改成特殊继电器M8013。
不是闪烁一秒而是依次亮一秒灭一秒,
最后全亮一秒再重新循环。
/**************************************/
LD M8002              //开机脉冲
SET  M20               //循环8次后的停止标志位
/**************************************/
LD M20
AND M8013           //一秒特殊继电器
INCP D0                 //一秒计时
/***********************************/
LD = D0 K1            //第一秒
OUT M0                  //接通Y0
/***********************************/
LD= D0 K3             //第三秒
OUT M1                  //接通Y1
/***********************************/
LD= D0 K5             //第五秒
OUT M2                  //接通Y2
/**********************************/
LD= D0 K7             //第七秒
OUT M3                  //接通Y3
/**********************************/
LD= D0 K9             //第九秒
OUT M10                //接通Y0
OUT M11                //接通Y1
OUT M12                //接通Y2
OUT M13                //接通Y3
/**********************************/
LD= D0 K11           //第十一秒
INCP D1                 //循环次数加一次
RST D0                   //复位一秒计时,重新计时
/***********************************/
LD= D1 K8             //当循环次数达到8次时
RST M20                //复位循环8次后标志位M20
RST D0                   //复位一秒计时(这步可以不写,上面有了)
/***********************************/
LD M0
OR M10
OUT Y0                   //物理外部Y0输出
/***********************************/
LD M1
OR M11
OUT Y1                   //物理外部Y1输出
/***********************************/
LD M2
OR M12
OUT Y2                   //物理外部Y2输出
/***********************************/
LD M3
OR M13
OUT Y3                   //物理外部Y3输出
/***********************************/
liuliangdt
liuliangdt
级别: 家园常客
精华主题: 0
发帖数量: 447 个
工控威望: 681 点
下载积分: 66146 分
在线时间: 988(小时)
注册时间: 2010-09-05
最后登录: 2024-10-29
查看liuliangdt的 主题 / 回贴
3楼  发表于: 2013-05-19 22:49
引用
引用第19楼wangkeming07于2013-05-19 17:59发表的  :

我说了怎么是M8012 ,大神都在民间啊。。。。。。。学习的路太长了




这里其实要按你的要求的话要用M8012来闪烁的,M8012是100毫秒特殊继电器。是我没按你的要求编写,因为我觉得你的出题可能是没写清楚。如果按你的要求写的话应该在外部输出Y0/Y1/Y2/Y3前连M8012的。如下:
/***********************************/
LD M0
OR M10
AND M8012           //100毫秒特殊继电器
OUT Y0                   //物理外部Y0输出
/***********************************/
LD M1
OR M11
AND M8012           //100毫秒特殊继电器
OUT Y1                   //物理外部Y1输出
/***********************************/
LD M2
OR M12
AND M8012           //100毫秒特殊继电器
OUT Y2                   //物理外部Y2输出
/***********************************/
LD M3
OR M13
AND M8012           //100毫秒特殊继电器
OUT Y3                   //物理外部Y3输出
/***********************************/
liuliangdt
liuliangdt
级别: 家园常客
精华主题: 0
发帖数量: 447 个
工控威望: 681 点
下载积分: 66146 分
在线时间: 988(小时)
注册时间: 2010-09-05
最后登录: 2024-10-29
查看liuliangdt的 主题 / 回贴
4楼  发表于: 2013-05-19 23:13
引用
引用第20楼sdm0768于2013-05-19 22:29发表的  :
18楼的朋友思路很清晰,但好像不能用D1啊,如果D1变成1的话就是一个32位存储器了,建议改成别的,还有你那个M11,12,13是否可以不要,都变成M10不知是否行呢,最后灯是闪烁的,你的设计是不闪的,可以在驱动几个输出的时候用上M8012或M8011.我虽不是发贴的人,但也想找更多的内行人沟通,毕竟我是个菜鸟。说得不好的地方请多包涵。




呵呵,大家都是菜鸟,共同学习交流的。
我编写的思路清晰可能是因为写了注释吧?并且还比较详细,Y输出还放在最后很明了。
三菱的数据寄存器是16位的,16位数据变成32位的是取决于使用的功能指令用的16还是32位。
在那里,M10/M11/M12/M13是必须要的。因为下面还使用M0/M1/M2/M3的话在同一个程序里出现了双线圈。
如果大家有更好的解决办法的话就一起分享吧!!!
我没有写成闪烁是因为我觉得楼主的出题可能有误,他的意思可能是每个灯亮一秒,四个灯依次闪烁。但在发帖是写成了灯亮闪一秒,我这么主观的揣测是因为楼主没有要求在亮的那一秒里闪烁的时间间隔、闪烁的频率是多少。
大家一起学习、交流、分享、进取!!!
我现在的工作与电气控制无关,我只是厂里的一个普通操作工,请多多指教!