Logic 步骤7-如何调用循环中断

Logic 步骤7-如何调用循环中断,logic,plc,Logic,Plc,我想从OB1调用循环中断,并生成该中断的持续时间。我知道我可以将某种计数器/计时器放入FB中,并以某种方式生成该计时器的值。但是,我不知道如何在循环中执行此操作,因此我不必按下按钮或开关 多谢各位 编辑: 我认为自己是PLC初学者。:) 起初我不打算使用真正的SIMATIC工作站,所以我将使用PLCSIM来测试我的应用程序(程序)。我所说的循环中断是指类似于OB30-OB38的东西 它应该是这样工作的: 我将我的输入设置为“逻辑1”,这将初始化循环。(我不确定这是否必要) 现在,一个非常简单的程

我想从OB1调用循环中断,并生成该中断的持续时间。我知道我可以将某种计数器/计时器放入FB中,并以某种方式生成该计时器的值。但是,我不知道如何在循环中执行此操作,因此我不必按下按钮或开关

多谢各位

编辑: 我认为自己是PLC初学者。:)

起初我不打算使用真正的SIMATIC工作站,所以我将使用PLCSIM来测试我的应用程序(程序)。我所说的循环中断是指类似于OB30-OB38的东西

它应该是这样工作的:

  • 我将我的输入设置为“逻辑1”,这将初始化循环。(我不确定这是否必要)

  • 现在,一个非常简单的程序将在一个循环中执行(设置/重置线圈)-这只是一个示例,程序现在将执行什么并不重要

  • 在执行过程中的某个地方会发生中断。我想这可能是一个函数,我将设置一个随机生成的持续时间值计时器

  • 在函数执行之后/期间(从“3.”),我需要将生成的值保存在DB中

  • 现在,“2.”到“4.”应该在“永无止境”循环中执行,直到我将“1.”的输入设置为逻辑0


  • 无法从OB1调用中断。只有循环、故障和硬件中断可用。 通过使此函数调用/块的启用输入为高,使用定时器准备就绪时调用的FC或FB。它不会像中断一样直接被调用,但速度足够快

    我想你把PLC和微控制器搞混了。
    当有高输入时,为什么需要直接执行代码?这是一个安全需求还是有运动的东西?

    据我所知,循环中断是由PLC本身以预先指定的间隔(或通过使用硬件中断)调用的。这是不能通过在程序中使用计时器调用的(正如我理解您的问题)

    如果我做对了,你想连续地运行一个循环,不时地中断循环以生成一些数据,然后在循环结束之前存储这些数据

    在这种情况下,我可以建议您将数据生成和存储代码包括到循环中吗?您也可以使用在本例中计划的相同触发器。您只需使用它跳过不活动时执行数据生成/存储位的代码


    在大多数情况下,与实际中断相比,你会在这里浪费一段时间,如果这在某种程度上是不可接受的,也许你应该考虑另一种类型的设备而不是PLC。

    < P>我在这里寻找类似的东西。 因为我找不到我需要的东西,我就冒着风险在一个正在运行的工厂里试了试。好东西是什么都没吹,所以一切都好

    现在,简单回答:

    • 循环中断在S7的硬件配置上配置

    • 我将OB35用于创建1ms分辨率时间计数的目的。(CPU 315定时器分辨率仅为10ms)

    • 在硬件配置中双击CPU,然后循环中断,并将执行时间设置为1(1毫秒,这是我的情况,您的情况可能不同)

    • 然后我创建了一个基本的基本计时器,这正是我所需要的,没有什么额外的,因为我在西门子门户网站上看到,在这个时间分辨率内,如果OB35上的代码太多,CPU可能会停止

    • 最后,OB35上的第一个梯级是对temp变量的“add”1指令,第二个梯级是在达到给定毫秒数时复位

    • 如果需要添加执行条件,则只需在第一个梯级上放置一个启用位,即可停止计数

    请注意,不需要“调用”OB35,CPU将在选定的时间间隔(在硬件配置下设置)为您调用OB35


    你的问题没有足够的上下文让其他人回答。你需要解释你使用的是哪种PLC,什么是“循环中断”(我认为自己是PLC专家,但不知道这是什么),或者你为什么想要它。请看一下我的编辑。因为我是Step7和PLC的初学者,所以我不知道你所说的“输入高”是什么意思。正如我上面提到的,我想生成该计时器的持续时间长度。我将研究如何处理复杂系统中的随机事件。但是我需要先学习基础知识:)输入高,我的错误。只是你做了一个标记或输入到1。输入高,我的错误。只需为1做一个标记或输入。如果要测量中断,可以在中断中启动计时器并在最后一个网络中结束。在一次中断中做比必要的更多的任务不是一个好计划。基本上,在运行环境中不需要这些信息。所以,我仍然很好奇,为什么您需要知道中断的执行时间?我认为真正的问题有不同的答案。