前面以完成了新建一个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论坛-全力打造可编程控制器专业技术论坛)