通过示例学习三菱ST编程(条件语句及定时器的综合应用示例)
今天跟大家分享的是三菱结构化文本ST编程的条件语句和定时器的综合应用示例。
什么是条件语句?
在我前面的文章和西门子SCL专栏中都有明确的介绍,这里不做过多的介绍,简要就如下图所示:
那么定时器在三菱ST编程中怎么用?
指令格式:
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。就如下面的用法:
下面就看看今天这个示例:
功能要求:一个小车在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;
注:在上面程序中,用局部标签来记录过程值,来用于判断。本例定义的标签如下图所示:
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;
到此,一个完整的程序就编写完了。完整程序如下图所示:
仿真示例图:
小车前进:
第二次到达B点,小车依然前进:
第一次到达C点,小车停止:
定时时间到,小车自动后退:
S7-1200 PLC跳转与标签指令的使用
对于PLC的指令中有一部分是程序控制指令,程序控制指令就包括了用来改变程序执行顺序的跳转指令,以及在程序运行中用于控制的指令。
这一篇文章中先介绍一下跳转与标签指令。
对于S7-200/200 SMART PLC的跳转指令只有JMP这么一个指令,但是对于S7-1200 PLC来说,则是新增了一些指令,比如定义跳转列表的跳转指令JMP_LIST,和跳转分支指令SWITCH等,我们会介绍指令的不同的地方。
下面我们就开始吧~
首先提个问题?
什么是跳转,使用跳转指令可以实现什么功能?
所谓跳转,就是跳过某段程序不去执行,使用跳转指令可以实现改变程序的执行顺序的功能。如果我们没有执行跳转指令的话,各个程序段是按照从上往下的顺序进行执行的,当执行了跳转指令之后,跳转指令会中止程序的顺序执行,跳转到指定的位置的程序开始往下执行。
那么我们怎么去指定这个位置呢?
这时我们就需要用到标签指令了!
所以,跳转指令和标签指令是配对使用的。跳转时,跳转指令和标签指令之间的程序,CPU是不再进行扫描执行的,这个是我们需要注意的。
S7-1200 PLC的跳转指令包括了逻辑结构跳转指令、定义跳转列表的跳转指令JMP_LIST,和跳转分支指令SWITCH。
我们分别看一下这几个指令的功能是怎么样的。
1、逻辑结果跳转指令
逻辑运算结果为1时,执行跳转指令JMP,逻辑运算结果为0时,执行跳转指令JMPN。配套使用的标签指令是LABLE,标签指令上需要标上标签号,可以是数字,也可以是字母或汉字哦。
对于S7-200/200 SMART PLC的跳转指令只有JMP和配套的LBL指令,并不是根据逻辑结果的跳转指令,所以也没有JMPN这个指令,而且对于标签LBL指令,S7-200/200 SMART PLC的标签号只能是数字,不可以是字母和汉字的哦。
2、定义跳转列表的跳转指令JMP_LIST
JMP_LIST指令可以定义多个有条件的跳转,跳转到由K管脚的值指定的标签段的程序去继续执行,而跳转的标签号是在指令框的输出端进行指定的。
我们可以通过点击指令上的增加输出管脚的按钮去增加输出管脚,最多可以增加到32个管脚,也就是DEST0~DEST31,所以K的值的范围也应该是在0~31之间,如果不是这些编号是不执行跳转的。
如上图程序,当JMP_LIST指令的EN驱动条件满足,会根据K的值决定跳转到相应的标签处开始执行,K的值是1,就代表是跳转到DEST1管脚所链接的标签_002处开始执行。
3、跳转分支指令SWITCH
SWITCH指令是根据一个或多个比较指令的结果,定义要执行的多个程序标签处跳转,在管脚K中指定的是要比较的值,将这个值跟各个输入管脚提供的值进行比较,如果比较条件满足的话,就跳转到对于的标签处开始执行程序。
如上图程序中,当K的值等于47.0时,就跳转到DEST0管脚对应的001标签处开始执行,当K的值等于24.6时,就跳转到DEST1管脚对应的002标签处开始执行,当K的值小于或等于14.9时,就跳转到DEST2管脚对应的003标签处开始执行,如果K的值与以上三个比较条件的比较结果都不满足的话,就跳转到ELSE管脚对应的004标签处开始执行。
我们在使用跳转指令的时候有一些注意事项需要注意一下的,
1、跳转指令可以往前跳转,也可以往后跳转。
2、只能在同一个代码块中跳转,不能从一个代码块跳转到另外的代码块中。
3、在一个块中跳转标签的名称只能使用一次。
4、一个程序断中只能设置一个跳转标签。
在执行跳转的过程中又有这样的一个问题,如果跳转执行后的程序希望执行到指定的地方可以自动返回,不再往下执行,这时怎么办呢?
其实这种情况下我们可以利用另外一个指令——返回指令RET实现,返回指令RET是可以用来实现对程序执行的控制,当执行到RET指令时,退出代码块的执行,也就是说RET指令之后的程序段CPU将不再执行。
所以说跳转指令和返回指令RET一起配合使用,可以实现对程序段的选择执行。
比如在每个标签段中加入这个RET指令,那么执行完这个标签到RET指令之间的程序之后,可以自动返回,不再去执行后续的程序。
以上就是S7-1200 PLC的跳转指令相关内容,这个指令可以用于做手自动切换等功能,应用的还是比较多的,大家还是需要掌握好这个指令的使用哦。
在下一篇文章中继续给大家介绍运行时的控制指令,大家可以继续关注哦~
(培训网原创,作者:蔡慧荥,未经授权不得转载,违者必究)
相关问答
三菱PLC编程使用标签是什么意思,怎么使用啊,万分感谢?
标签和变量,可以认为是一个意思,都是PLC编程中的重要基础概念,一般美系和日系的称作标签,比如三菱和AB,而欧系的称为变量,比如西门子。PLC的实质就是计算机...标...
西门子PLC软件怎样将程序标签导出与导入?
“导出”命令能够导出POU(主程序、子程序和中断程序)和数据块。?如果您选择导出OB1(主程序),则所有现有项目POU均作为ASCII文本文件组合和导出。?如...
plc程序启动几秒停几秒循环?
“在线和...你可以设置这一值,同样是在“周期”标签页,勾选“启用循环OB的最小循环时间”,然后输入你想要的值即可。在“在线和诊断”页面下可以看到循环周期...
三菱PLC跳转指令怎么用?
在三菱PLC中,跳转指令用于在程序中实现跳转到指定的程序段或标签。使用跳转指令可以实现程序的灵活控制和流程的跳转。要使用跳转指令,首先需要定义跳转的目标...
西门子1200plc上升沿怎么用?
在西门子1200PLC中,上升沿常常被用作触发PLC输入信号的方式,类似于按钮按下的那一瞬间。以下是如何在西门子1200PLC上使用上升沿的步骤:1.在PLC编程软件中...
三菱plc怎么建立标签?
以下是在三菱PLC编程软件MELSOFTGXWorks3中建立标签的步骤:1.打开三菱PLC编程软件MELSOFTGXWorks3,选择要建立标签的工程,选择系列、机型和梯形图语言。...
远程模拟量输入模块求助?
在往PLC添加模块的时候,会在controllertags(机器级标签)中自动添加全局标签,一般都是结构体数据,结构体里面有你要的数据。本地模块Tag名会用Local开头,...
世界自动化技术的成就?
1913年,福特汽车公司在新建的工厂中引进了汽车生产装配线。因此,装配线可以被认为是制造业中最早的自动化形式之一。制造自动化福特的流水线和量产世界第一...
ABPLC在使用MSG指令时,通常要在梯形图前加控制标签EN位的常闭节点,请问作用是什么?
EN是MSG的ENABLE的状态位,这样的逻辑是如果MSG没有ENABLE你就ENABLE,一旦ENABLE了就不再重复ENABLE了EN是MSG的ENABLE的状态位,这样的逻辑是如...
上位机可以改变fx5u标签的数据吗?
上位机可以通过编程或者使用专门的软件来改变FX5U标签的数据。这通常需要通过PLC(可编程逻辑控制器)与上位机之间的通讯来实现。具体步骤如下:1.首先,...