2014-11-14 99 views
2

我刚开始学习梯形图编程。我使用的Allen Bradley RSLogix 5000中梯形逻辑 - '简单'咖啡机 - 可选:添加牛奶/添加糖

我一直在负责开发该工作像这样一个“简单”咖啡机:

  • 切换按钮,可开始
  • 落杯(10秒)
  • 进热水(10秒)
  • 如果需要的话,加入牛奶(10秒)
  • 如果需要的话,加白糖(10秒)
  • 进程完成 - 照亮完整的轻(10秒)

我已经实现以外的所有可选的添加牛奶&可选加白糖。

选项包括:

  • 喝杯咖啡或者没有牛奶或糖。
  • 或有一个牛奶和非糖的咖啡。
  • 或者喝杯咖啡加糖&不是牛奶。
  • 或者有一个咖啡与两个糖&牛奶。

我在考虑使用切换按钮来选择/跳转到子程序(选择所需的成分化妆)。但我想知道是否有另一种方式顺序通过程序?

谢谢。 enter image description here

+0

梯形图逻辑编程(如您已经显示)包括编写一大套IF-cond-THEN-action语句(图中以图形方式显示为“梯级”)。要添加“额外”功能,请记下额外功能应该运行的* complete *条件,然后为此创建一个梯级。通常这些条件取决于以前完成的一些行动;您在RLL中使用状态位进行建模,该状态位在操作完成时设置。你可以通过设置一个锁存器来做到这一点通常,管理状态的定时器的输出正是你想要的。 – 2014-11-27 16:07:14

回答

0

另一种方法是给每个步骤(比如1到5)赋值并使用整数跟踪值。然后,当你在第4步(F需要,加白糖(10秒))和选项是假的,你可以“跳”这个步骤,直接转到步骤5

伪代码:

如果currentstep == 4和AddSugar =真,那么

  • 添加糖10秒

  • currentstep = 5

否则
- currentstep = 5

0

我还建议创建步骤,使事情不在意外的时间发生。下面是我将如何设置它(注:我写这非常快,买家当心)

enter image description here enter image description here enter image description here

1

这里是我会做:

步骤1.定义所有动作: - 落杯, - 饲料热水, - 添加牛奶 - 添加糖。 对于这些,做一个专门的例程或AddOnInstruction。如果你觉得太简单并且没有必要,只需要认为你将不得不为每个人编写诊断程序,也许你会在其他项目中重复使用Drop Cup。如果你掉杯,并且你没有杯子,或者掉落装置有缺陷,等等,会发生什么?

第2步。现在你已经隔离了这些,即使没有,也需要把所有事情都做好。

步骤3.创建菜谱格式,把参数成分 - 用于加入牛奶,把作为参数:requiredOrNot,numberOfSeconds

第4步:如你所愿建立尽可能多的食谱。您将永远不会根据配方修改软件。

第5步。创建配方管理。这对您未来的所有项目都非常有用。这是一次性任务。

这就是我为我的婚礼做了一个鸡尾酒吧。我给了我的朋友约20份食谱,到了一天结束时,我在食谱列表中找到了约50份。

P.S.我知道,对于给定的任务,这似乎太复杂了,但是如果您离开您的特定任务并分析我的示例,则会意识到您可以编写任何程序,而不必每次都重新发明轮子。