[西门子] TON定时器在IL和ST编程语言用法有何不同

[复制链接]
查看209 | 回复0 | 2024-5-31 08:32:08 | 显示全部楼层 |阅读模式
下面是一个使用IL语句表编程的定时器示例
    A         I0.0      // 如果输入I0.0为真(接通)
    TON   T1, #5S    // 启动定时器T1,并设置其延时时间为5秒
    A   T1.Q       // 如果定时器T1的完成位(Q)为真(即5秒已过去)
    =     Q0.0       // 则将输出Q0.0置为真(接通)

A 是逻辑与指令,用于检查其后的条件是否为真。
I0.0 是输入地址,表示输入模块的第一个位。
TON 是定时器开启指令,用于启动一个定时器。T1 是定时器的标识符,#5S 是定时器的延时时间,设置为5秒。
T1.Q 是定时器T1的完成位(或称为"Done"位),当定时器达到其设定时间时,这个位会被置为真。
= 是赋值指令,用于设置输出或其他内部变量的值。Q0.0 是输出地址,表示输出模块的第一个位。

在ST中,你可以使用预定义的函数和指令来创建定时器。以下是一个使用ST创建定时器的简单示例:
VAR
    Timer : TON; // 定义一个TON(接通延时)定时器
END_VAR

// 启动定时器
IF  I0.0  THEN
    Timer(IN:=TRUE, PT:=T#5s); // 启用定时器并设置时间为5秒
END_IF;

// 检查定时器是否完成
IF Timer.Q THEN
Q0.0:= TRUE; // 假设有一个输出信号需要设置
    Timer(IN:=FALSE); // 重置定时器输入,停止定时器
END_IF;

在上面的示例中,TON是一个预定义的定时器数据类型,它包含了定时器所需的所有属性和方法。IN 是定时器的输入,当它为TRUE时,定时器开始计时。PT 是定时器的预设时间,这里设置为5秒(T#5s)。Q 是定时器的输出,当定时时间到达时,它会被置为TRUE。

用法注意⚠️

IL语句表定时器用完后不需要主动复位定期器,而ST编程语言,在IF语句调用定时器后一定在后面要复位,不然下一个扫描周期无法使用

// 检查定时器是否完成
IF Timer.Q THEN
Q0.0:= TRUE; // 假设有一个输出信号需要设置
    Timer(IN:=FALSE); // 重置定时器输入,停止定时器
END_IF;


您需要登录后才可以回帖 登录 | 注册哦

本版积分规则