回复:老板说不会做就滚蛋,这么简单的程序傻子都会!

yanxiao

版主

  • 帖子

    12318
  • 精华

    49
  • 被关注

    193

论坛等级:至圣

注册时间:2003-06-06

钻石 钻石 如何晋级?

发布于 2017-03-31 23:26:25

16楼

参与这个题目的,小车在两点间来回行走,编程没问题吧。
我觉得亮灯还有点搞,试着讲一下本人的思路:
1、区分第一遍亮灯,和后续的亮灯。因为第一遍灯若点不全,直接没有灯输出;若是后续的灯点不全,则从第一遍亮灯重新开始。
2、如是第一遍亮灯。准备输入数据。复制一份亮灯开关输入,IB0-->MB0
3、清亮灯输出QB0
4、从M0.0开始找,有闭合的开关,就把该位对应的灯点亮,同时清掉开关输入状态;
   如果没找到闭合的开关,表示一个灯都不亮,清第一遍亮灯完成标记,选灯结束。
   如果找到,且只亮一个灯,置第一遍亮灯完成标记,选灯结束;否则继续找下一个。
6、再从M0.0开始找,有闭合的开关,就把该位对应的灯点亮,同时清掉开关输入状态;
   如果没找到闭合的开关,表示第二个灯点不亮,清第一遍亮灯完成标记,选灯结束。
   如果找到,且只亮二个灯,置第一遍亮灯完成标记,选灯结束;否则继续找下一个。
7、再从M0.0开始找,有闭合的开关,就把该位对应的灯点亮,同时清掉开关输入状态;
   如果没找到闭合的开关,表示第三个灯点不亮,清第一遍亮灯完成标记,选灯结束。
   如果找到,置第一遍亮灯完成标记,选灯结束。
8、如果上面程序下来,第一遍亮灯完成标记没有置位,表示没有点亮足够的灯,则再清亮灯输出QB0,并且2-7重走一遍。

数开关和点灯,请参考编解码指令 ENCO 、DECO。ENCO/DECO是16位操作,使用时请调整字节顺序,以适合本案的情况。
可以for/next做,也可以使用jump。

 

评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-200

共有33299条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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