首页 文章

PLC中的定时器 - 结构化文本

提问于
浏览
4

定时器如何在PLC结构化文本(ST)中工作?我们如何申报?

我一直在研究PLC的标准(IEC 61131-3),他们不谈ST的计时器 . 我知道绝大多数PLC程序员都是在梯形逻辑中完成它们,但在这种特殊情况下,我真的需要在ST中声明定时器 .

我正在使用罗克韦尔PLC .

5 回答

  • 1

    您可以在IDE的帮助系统中找到有关计时器以及如何使用(声明)计时器的说明 . 例如,在CODESYS帮助中,您可以阅读有关标准库的计时器的信息 .

    通常,您可以将timer-delay(TON)声明为:

    VAR
        MY_TON: TON;
    END_VAR
    (* standard.library should be added to the project *)
    

    然后你可以使用它:

    MY_TON(IN:= IN_VALUE,PT:= TIME_SET);
    (*IN_VALUE - is BOOL variable that activates your timer
      TIME_SET - is TIME variable*)
    
    SOME_OUTPUT := MY_TON.Q;
    (*Q - is the timer's output, and it can be used as BOOL variable. *)
    

    您还可以使用常量来设置计时器:

    MY_TON(IN:= True, PT:= t#5s);
    

    作为BOOL变量,计时器的输出可用于IF和WHILE语句:

    IF MY_TON.Q THEN
        (*Some statements...*)
    END_IF
    
    WHILE MY_TON.Q DO
        (*Some statements...*)
    END_WHILE
    

    所有示例都在CODESYS v3.5 SP5和v2.3中运行 . 对于其他IDE,可能会有细微差别 .

  • 1

    我在Gx-Works(Mitsubishi / FXCPU)中解决了这个问题:

    TON_1(IN:= Enable_Timer,PT:= PresetTime ,Q:= Output,ET:= TimeLeft);
    

    记得申报TON_1 :)

  • 0

    只有当 TON.IN 持续高电平至少 TON.PT 的持续时间时,定时器才会工作,以便 TON.Q 变为高电平 .

    这确保 TON.Q 仅在 TON.IN 处于稳定高状态时才变高 .

    这可能有用,例如确保仅在按下按钮至少持续 TON.PT 时才启用输出 .

  • 5

    通常,您可以设置预设时间并启用计时器 . 当它过去时,将完成某种完成位设置为真 . 重置启用时,时间也将重置 .

  • 0

    我使用支持ST语言的欧姆龙PLC完成了这项工作 .

    PLC中有一个定时器中断,我们用它在ST中构建我们自己的定时器,然后我们可以跳过PLC的限制 . 当PLC上电时,中断任务中的代码每次中断都会执行,您可以在中断处理程序中写入“A = A 1” .

    当你开始使用计时器时,只记录A的当前数据 . 让我们说A1;间隔是:

    Interval= Current_Data_Of_A-A1
    

    然后将 Interval 与您想要的时间进行比较 . 如果 Interval 大于您想要的时间,则执行下一个代码 .

相关问题