回复:这样的逻辑如何实现?

n次看你的背影

  • 帖子

    2321
  • 精华

    73
  • 被关注

    53

论坛等级:奇侠

注册时间:2008-03-11

普通 普通 如何晋级?

发布于 2011-08-21 09:15:18

2楼

楼主:我对你这个工艺要求比较感兴趣,也抽了点时间试着写了一下代码,仿真测试了一下,基本能达到你的要求。现贴出来给你参考一下!希望多交流,共同进步!
L MB 10 //选择状态依次放入M10.1至M10.6,顺序对应于1#泵至6#泵, 状态“1”为被选择上了
L MB 11 //故障状态依次放入M11.1至M11.6,顺序对应于1#泵至6#泵, 状态“1”为无故障
AW //MB10、MB11相与
T LW 100 //临时存储相与的结果
L LB 101 //提取MB10、MB11相与的结果(即泵的启动条件)
T MB 12 //将与的结果存放入MB12,M12.1至M12.6顺序对应于1#泵至6#泵
A M 13.0 //画面上按钮对应运行标志位M13.0=1运行,M13.0=0停止
FP M 13.1 //判断运行标志位的上升沿
JC M001 //启动运行那个时刻,初始化地址指针和定时器T10
A M 13.0 //画面上按钮对应运行标志位M13.0=1运行,M13.0=0停止
FN M 13.2 //判断运行标志位的下降沿
JC M001 //停止运行那个时刻,初始化地址指针和定时器T10
JU M002 //如果运行标志位没有变化,JUMP M002
M001: LAR1 P#12.1 //初始化地址指针
SET
R T 10 //初始化定时器
L 6 //初始化6个bit
NEXT: T LW 100 //临时存储循环次数
SET
R Q [AR1,P#0.0] //初始化输出驱动6个bit
+AR1 P#0.1
L LW 100
LOOP NEXT
L P#12.1 //再初始化地址指针一次
T MD 14 //并将指针存储在MD14内
M002: LAR1 MD 14 //将MD14内的地址指针装载到AR1
A M 13.0 //画面上按钮对应运行标志位M13.0=1运行,M13.0=0停止
JCN END //如果运行停止跳转到END
A M [AR1,P#0.0] //判断当前泵的状态(是否被选择是否故障)
JCN M003 //如果当前泵被选择也没有故障往下执行,否则跳转到M003
A T 10 //定时器运行的位状态
A M 13.0 //画面上按钮对应运行标志位M13.0=1运行,M13.0=0停止
A M [AR1,P#0.0] //当前的泵状态
= Q [AR1,P#0.0] //驱动当前的泵
A Q [AR1,P#0.0]
A T 10 //定时器运行的位状态
A M 13.0 //画面上按钮对应运行标志位M13.0=1运行,M13.0=0停止
FN M 13.3 //判断下降沿
JC M003 //如果T10下升沿到来,JUMP M003
JU M005 //如果没有下降沿到来JUMP M005
M003: SET
R Q [AR1,P#0.0] //如果当前泵选择取消或者故障,停止该泵
+AR1 P#0.1 //当前的地址指针加P#0.1
TAR1 MD 14 //将地址指针存储到MD14
L MD 14
L P#12.7
>=D
JC M004 //如果地址指针超出P#12.7 JUMP M004
JU M005 //如果地址指针不超出P#12.7 JUMP M005
M004: LAR1 P#12.1 //循环返回起始地址->第一台泵
M005: TAR1 MD 14 //存储当前的地址指针到MD14
END: A M 13.0 //画面上按钮对应运行标志位M13.0=1运行,M13.0=0停止
AN T 10
L S5T#1M //设定单个泵的运行时间
SE T 10 //启动SE类型的定时器
用此法可以实现很多泵进行跑马灯游戏,泵如果跑累了,还可以自动退出休息,后面的泵紧接着接替工作,等休息恢复了,再自动投入跑马。呵呵......理论上从长期运行时间来看,每台泵的运行时间几乎是相等的。
佛对我说:“你的痛苦来自于你的欲望,没有欲望也就没有痛苦!”
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54659条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
X 图片
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。