首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >西门子PLC S7 1200 TOF发行

西门子PLC S7 1200 TOF发行
EN

Stack Overflow用户
提问于 2016-02-28 14:15:08
回答 1查看 1.2K关注 0票数 2

假设我有一个布尔输入,它可以自动切换它的状态。从0到1和从1到0设置一个循环。若要确定该周期是否有效,周期时间必须至少为10秒。

我可以确定一个半圆是否无效,但我不知道如何才能在周期结束时确定它是否无效。

这就是我所拥有的:

EN

回答 1

Stack Overflow用户

发布于 2016-02-28 16:38:46

您似乎在说,如果输入信号的状态在10秒内不稳定,您有一个无效的循环,您需要检查它。

要做到这一点,显然需要一个由每个转换触发的计时器。(我对你的PLC并不特别熟悉,但它们都很相似,所以我假设这就是你所拥有的,而在不同的过渡过程中,你会适当地触发两个。

正向过渡的无效过渡条件是:

代码语言:javascript
复制
        positive_input_transition_timer_q and  not  input

也就是说,定时器必须在运行,输入必须进入错误的状态。

现在,输入可能会很低,然后又会立即上升;您可能不想失去一个事实,即您有一个无效的转换。所以,您真正想要做的是锁定无效转换的检测。

我不擅长漂亮的梯形逻辑图形,所以我会用旧的风格写:

代码语言:javascript
复制
   --+----[ ]----[TON]----+------[/]-----[/]------( )------
     |   Input  Positive  |     Unlatch  Input  Invalid
     |         Transition |     Invalid         Positive
     |                    |     Positive        Cycle
     +--------[]----------+     Cycle
            Invalid
            Positive
            Cycle

负过渡需要相应的梯形。

想必,其他一些代码会注意到InvalidPositive,适当地响应,然后解锁条件。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35683576

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档