三菱st编程手册_通过示例学习三菱ST编程(条件语句及定时器的综合应用示例)...

今天跟大家分享的是三菱结构化文本ST编程的条件语句和定时器的综合应用示例。

什么是条件语句?

在我前面的文章和西门子SCL专栏中都有明确的介绍,这里不做过多的介绍,简要就如下图所示:

c0744f0e4a41a5d804a4885e3307b463.png

那么定时器在三菱ST编程中怎么用?

指令格式:

684ac8f1e0b35619a77b0c32c972624b.png

BOOL_EN:定时器使能信号

BOOL_TCoil:定时器线圈(定时器编号)

TValue:定时时间设定

比如下面示例中会用到的:

OUT_T( ( B点 AND NOT B点记忆)OR (C点 AND NOT C点记忆)OR (D点 AND NOT D点记忆) OR E点, TC3 , K20 );

这条指令就是当(( B点 AND NOT B点记忆)OR (C点 AND NOT C点记忆)OR (D点 AND NOT D点记忆) OR E点)条件满足,则启动定时器T3,定时2s。

定时器的输出就是TS3。就如下面的用法:

1fc6dad31fa2b068bff56571b0032ee6.png

下面就看看今天这个示例:

1f5c81738f722bffb7dc34ba4309518a.png

功能要求:一个小车在A、B、C、D、E五点间自动往返运动,流程示意图就上图所示,当按下启动按钮,小车前进到B点,当到达B点后,停止2s后,自动后退到A点,再前进到C点,停2s,再退回A点。如此循环。

编程说明:

1、首先考虑是小车的前进条件,第一次启动时通过按启动按钮,小车前进,第二次之后就是当A点的行程开关动作,小车前进。当第二次到达B点后,小车依然要前进,同理当第二次到达C点和D点,都是要前进。

其次考虑小车的停止条件:当第一次到达B点、C点、D点、E点,小车都是要停止的。因此,我们编写第一段条件语句:

IF 启动 OR A点 THEN 前进:=1;

ELSIF 前进 AND (B点 AND B点记忆) THEN 前进:=1;

ELSIF 前进 AND (C点 AND C点记忆) THEN 前进:=1;

ELSIF 前进 AND (D点 AND D点记忆) THEN 前进:=1;

ELSIF (B点 AND NOT B点记忆) OR (C点 AND NOT C点记忆) OR (D点 AND NOT D点记忆) OR E点 THEN

前进:=0;

END_IF;

注:在上面程序中,用局部标签来记录过程值,来用于判断。本例定义的标签如下图所示:

fe46e5ff5ad3e340fbb6c64d67e1aca3.png

2、我们来编写后退程序:

首先就是当第一次到达B点、C点、D点、E点要停止2s,这时我们就用定时器指令来完成:

OUT_T( ( B点 AND NOT B点记忆)OR (C点 AND NOT C点记忆)OR (D点 AND NOT D点记忆) OR E点, TC3 , K20 );

其次就是后退程序,当定时时间到,则小车后退,后退的停止条件就是到达A点。程序如下:

IF TS3 THEN 后退:=1;

ELSIF A点 THEN 后退:=0;

END_IF;

3、过程记忆程序的编写。

对小车经过的点进行记忆,当到达E点后,则对记忆值进行清零。

IF B点 AND TS3 THEN B点记忆:=1;

ELSIF E点 THEN B点记忆:=0;

END_IF;

IF C点 AND TS3 THEN C点记忆:=1;

ELSIF E点 THEN C点记忆:=0;

END_IF;

IF D点 AND TS3 THEN D点记忆:=1;

ELSIF E点 THEN D点记忆:=0;

END_IF;

到此,一个完整的程序就编写完了。完整程序如下图所示:

f04388bec67ba4eeec4a776cdf1fbe62.png

仿真示例图:

小车前进:

5b1830037e93d8df32989d7fe6c78e94.png

第二次到达B点,小车依然前进:

0a5c92c740f617831e5f8fc48a9aed7c.png

第一次到达C点,小车停止:

7235b3ac42c3ae1d874f24977fd0c88c.png

定时时间到,小车自动后退:

f4018db6cc3f84ec3aed942d7c4eb246.png