[三菱PLC] ST语言赋值与逻辑运算(三菱plc中stl指令)

前面以完成了新建一个ST语言编程环境的项目,下面来看一下关于ST语言编程时的赋值运算和逻辑表达式。

1、赋值运算

在ST语言中赋值运算符“:=”格式为(只能是英文下的符号):

变量名 := 表达式 ;

含义:将表达式的值赋值给一个变量。变量名也可以是表达式,但是最后只看表达式的值,后面的表达式也可以使用函数,只是将函数运算最终的值赋值给左边的变量。

赋值运算的数据类型是由左边的变量类型决定,所以后面表达式的最终数据类型必须与前面的变量保持一样。

在PLC编程中ST语言中出现的变量必须提前定义,否则将导致语句无法正常运行。

2、逻辑表达式

逻辑表达式就是我们常见的与(AND)或(OR)异或(XOR)、取反(NOT)等的逻辑运算。

PS:在学习ST语言编程前最好先复习一下关于数制的相关内容。

逻辑运算符可以处理当前CPU支持的所有数据类型。最终的数据类型由参与运算的两个操作数类型决定;

两个都是BOOL类型,逻辑表达式的结果也是BOOL类型;

两个中至少有一个位字符串,结果也是位字符串,并且由最高操作数的类型决定。如一个BOOL,另一个WORK类型,结果就是WORK类型。

·位逻辑“取反”运算NOT

NOT是“取反”的意思,在梯形图中常用与表示常闭触点,而通常情况下将触点的常开状态当做正常状态,常闭就是取反状态,如下所示梯形图中:

与ST语言表达式就可以表示为:

run := NOT stop;//表达式后面的分号一定要加

·位逻辑“与”运算AND

“与”运算AND可以理解为“并且”的意思,常用于串联的两个操作数,两个操作数同时满足条件,才可以输出信号;

结合上面取反运算的写法,表达式可以写成:

run := start AND (NOT stop);

·位逻辑的或运算OR

为逻辑的或运算“或者”的意思,常用于两个操作数的并联,只要有其中一个操作数满足条件就可以使输出导通。如下图所示梯形图关系:

转为ST语言表达式可以写为:

run := start OR start2 ;

·位逻辑运算异或XOR

位逻辑“异或”意思是当两个条件相异时输出结果为TURE,相同时结果为FALSE。如下图所示:

转换ST语言表达式为:

run := start XOR start2 ;

按以上ST语言表达式规则,如果要写一个电机的正反转电路应该如何写呢?可评论区留下你的答案!

ST语言赋值与逻辑运算

http://bbs.plcjs.com/forum.php?mod=viewthread&tid=501386&fromuid=1

(出处: PLC论坛-全力打造可编程控制器专业技术论坛)

#非标自动化#

原文链接:,转发请注明来源!