查看: 71686|回复: 425
收起左侧

[教程经验] 【PLC高级编程语言之ST文本】4.ST语言的运算符介绍

邀请回答

马上注册,享受更多特权

您需要 登录 才可以下载或查看,没有帐号?立即注册   

x
【π³实操派】准备连载H3U & H5U & 中大型PLC 教程--点击了解

点击访问:

【10000水滴】朋友整了一个工业自动化导航网站,帮找内测

解码未来活动banner.png

本节微课将为大家讲解ST文本中的常用运算符。本节微课主要给大家讲解以下内容:

1.介绍ST文本中的赋值运算符和算术运算符
2.介绍比较运算符的基本用法
3.介绍AND和OR 逻辑运算符的基本
4.介绍置位和复位运算符的用法

1.ST文本中的赋值运算符和算术运算符

1.1 赋值运算符

1.1.1赋值运算符的讲解

本小结为大家讲解ST语法中的赋值语句。什么是赋值语句呢,就是指把一个“数值”或者“变量中的内容”转移给另一个变量。

以下是3种编程语言的赋值语句,放在下面给大家做个对比

ST语言 梯形图 C语言
:= MOV\DMOV\DEMOV =

ST文本中使用的“:=”作为赋值运算符,注意所有符号 都是英文状态下的(半角符号)

1.1.2赋值运算符的应用

ST语言的赋值语句 使用的是“:=”.下面我们来看看使用案例

vi_NumOfPeople := 100;
vi_人数 := 100;

上面两句话的意思,其实就是将 100这个数值赋值给我们 变量中。程序运行之后,“vi_NumOfPeople”这个变量中的数值为 100,而这个变量“vi_人数”中的数值也是100.

vb_StopButton := TRUE;
vb_启动按钮 := FALSE;

赋值语句顺序是 "从后向前",也就是把后面变量里的 值,赋值给前面的变量。这个和数学上的等于是不一样的哈,大家注意。

再强调一遍,ST语言中“:=”赋值语句,是将 后面变量里的值,赋值给前面的变量的。顺序是“从后向前”。

1.1.3 不同数据类型赋值需要进行强制类型转换

如果不强制类型转换,提示效果如下

使用强制类型转换后:

强制类型转换的含义就是,将等式右边的数据类型和左边的数据类型统一。

常用的数据类型转换格式:当前数据类型_TO_目标数据类型(变量);
REAL_TO_DINT(变量B);//把 浮点型变量B 强制转换成 DINT型
DINT_TO_REAL(变量C);//把 32位整型数据 强制转换成 REAL浮点型
INT_TO_DINT(变量D);//把16位整型数据强制转换成32位整型数据
INT_TO_REAL(变量E);//把16位整型变量强制转换成浮点型

1.2 算术运算符

算术运算符就是我们数学上的加减乘除,这里呢拿出来简单讲一下。会小学数学,就肯定会PLC编程中的加减乘除!

1.2.1加法 +

在ST语法中,加法就是"+"数学上的加法符号。假如已知变量:
vi_VarA := 10;
vi_VarB := 90;
则:vi_Num := vi_VarA + vi_VarB;
经过运算,vi_Num输出值为 100;

1.2.2减法 -

在ST语法中,减法就是“-”数学上的减号。假如已知变量:
vi_VarA := 10;
vi_VarB := 90;
则:vi_Num := vi_VarA - vi_VarB;
经过运算,vi_Num输出值为 -80;

1.2.3 乘法 *

在ST语法中,乘法就是“”星号。假如已知变量:
//-----乘法的运用----------------------------
vf_圆周率        := 3.1415926;
vi_半径        := 8;        //----8mm
vf_圆面积        := vf_圆周率
INT_TO_REAL(vi_半径 * vi_半径);
运算结果就是半径为8mm的圆面积。

1.2.4 除法 /

ST语法中的除法就是"/"
//-----已知 vf_圆周长 := 15mm,求直径.--------
vf_圆周长        := 15;
vf_直径        := vf_圆周长 / vf_圆周率;

1.2.5 变量区代码:

PROGRAM PLC_PRG
VAR
vi_VarA        : INT;
vi_VarB        : INT;
vi_Var1        : INT;
vi_Var2        : INT;
vf_圆周率        : REAL;
vi_半径        : INT;        //mm
vf_圆面积        : REAL;        //mm^2
vf_圆周长        : REAL; //mm
vf_直径: REAL;
END_VAR

1.2.6 程序段代码:

vi_VarA        := 10;
vi_VarB        := 90;

//-----加法指令的运用,运算结果100-----------
vi_Var1        := vi_VarA + vi_VarB;

//-----减法指令的运用,运算结果-80-----------
vi_Var2        := vi_VarA - vi_VarB;

//-----乘法的运用----------------------------
vf_圆周率        := 3.1415926;
vi_半径        := 8;        //----8mm

vf_圆面积        := vf_圆周率 * INT_TO_REAL(vi_半径 * vi_半径);

//-----除法的应用----------------------------
//-----已知 vf_圆周长 := 15mm,求直径.--------
vf_圆周长        := 15;
vf_直径        := vf_圆周长 / vf_圆周率;

程序运行结果

好了,大家应该会ST语法中的加减乘除了吧,自己练练哈!

请用程序写出下面的练习题:
1.科幻书每套有3本,每套12元,漫画书每本8元。买一本科幻书和一本漫画书共要多少元?  
2.面包:每个3元,饼干:每包4元,饮料:每瓶6元;小刚:买4个面包和1瓶饮料,应付多少元?小强有50元,买5包饼干,找回多少元?

2.比较运算符的基本用法

ST中关系运算符实际上就是我们数学中常用的“大于”、“等于”、“小于”、“不等于”。关系运算符常一般有2种常用用法:
用法1:配合IF语句,作为IF语句的判断条件使用
用法2:在赋值语句的右侧,作为一个表达式,返回TRUE or FALSE给赋值语句的左侧。

(咱们大家在自己以后项目中,变量命名尽量不要太相似,不然不容易辨认。这里因为是测试程序,我为了方便就起相似的名字了)

2.1大于 >

请看以下代码:
vi_Num1 := 200;
vi_Num2 := 1000;
则运行:vb_Test1 := (vi_Num1 > vi_Num2);
输出结果:vb_Test实际为 false,因为vi_Num1(200)并不大于vi_Num2(1000);运行结果为假。
继续看下一段代码:
vi_Num3 := 888;
vi_Num4 := 666;
则运行:vb_Test2 := (vi_Num3 > vi_Num4);
运行结果:vb_Test实际输出结果为true,因为888确实是大于666。所以运行结果为真!

2.2小于 <

vi_Num5 := 888;
vi_Num6 := 666;
则运行:vb_Test3 := (vi_Num5 < vi_Num6);
则vb_Test3运算结果为false,因为888不小于666.所以运算结果为假
vi_Num7 := 233;
vi_Num8 := 2333;
则运行vb_Test4 := (vi_Num7 < vi_Num8);
则vb_Test4运行结果为true,因为233<2333,所以运算结果为真。

2.3 等于 =

同样的道理,当比较的两个变量相等的时候,运行结果就为true,否则运行结果就为false。
vi_Num9 := 233;
vi_Num10 := 233;
vb_Test5 := (vi_Num9 = vi_Num10);
vb_Test5的运行结果为true。当两个变量内的值不相等的时候,运行结果就为false了。。

3.4 不等于 <>

这个符号是不等于的意思,如果两个值相等,则输出结果为false为假。如果两个数值不相等,则输出结果为true,运行结果为真。
vi_Num11 := 233;
vi_Num12 := 233;
vb_Test6 := (vi_Num11 <> vi_Num12);
vb_Test6运行结果为false,因为vi_Num11和vi_Num12这两个变量存储的数值相等,所以vb_Test6运行结果为假。

3.5 大于等于 >=

C := (A >= B);
当A中保存的数值大于等于B数值的时候,则C输出TRUE;否则C输出FALSE.

2.6 小于等于 < =

C := (A < = B);
当A数值小于等于B数值的时候,则C输出结果为true,否则输出结果为false。

3.AND和OR逻辑运算符的基本用法

逻辑运算符主要有两种使用方式:
1.与IF语句配合使用
2.作为赋值语句的 右边部分表达式的连接符如:
变量A := (变量B > 10) AND (变量C < 0)
变量A的结果就是赋值语句右侧的表达值。

4.置位和复位运算符的用法

样例如下

等效于:

报名咨询手机/微信 15850116008


目前实操派开3门课,每门课400多节课,从0到1,90%以上常用功能。到实操派,学PLC就是快!采用项目式,实操教学

像中型PLC包含ST编程(基础、进阶、高阶),软件基础使用,伺服应用(基础,进阶,高阶),步进应用,变频器基础使用,以太网通信(多种协议),485通信(多种协议),CAN通信(CANLINK  CAN open),运动控制基础,运动控制进阶(凸轮,齿轮基础),运动控制高阶(简单工艺应用),pid控制器&常用滤波,一些小项目实战等;

点击访问->π³实操派官网

自己折腾半年,都不如来“实操派”学习半个月收获大!你学PLC浪费的时间,都够你挣几倍学费了?!

π³实操派介绍

4.1 π³实操派官网

https://shicaopai.com

4.2 π³实操派课程理念

到“π³实操派”,学PLC就是快!自己折腾半年,都不如来实操派学习半个月收获大。公司前辈不教你的,我们来系统化教你!以终为始,从用出发;实操项目式培训;

4.3 π³实操派的教具


此为通用基础实操台,后续还将上线 工艺设备实操台,培训行业工艺算法;

4.4 π³实操派的课程体系

4.5 π³实操派学员成长对比


image.png

image.png

4.ST语言的常用运算符.project.7z

65.33 KB, 下载次数: 326

售价: 5 水滴  [记录]

4.ST语言的常用运算符.pptx

3.66 MB, 下载次数: 375

售价: 20 水滴  [记录]

点评

感谢分享!!!  发表于 2023-1-9 08:51
感谢分享!!!  发表于 2022-12-1 14:25
感谢分享,内容详细  发表于 2022-10-6 23:00
感谢分享,***了,谢谢!  发表于 2022-5-11 09:58
感谢分享  发表于 2022-3-31 19:39

评分

参与人数 4水滴 +22 贡献 +9 收起 理由
1212 + 10
lianjiamin + 2 + 1 很给力!
twq + 10 + 4 很给力!
Mack.Zhang + 4 很给力!谢谢

查看全部评分





上一篇:AM600/400plc升级固件在哪里下载呢
下一篇:7.通信章节:3 CANLink使用介绍

已有 4 人打赏作者

通用市场用户 赏了楼主5水滴 15220286590 赏了楼主5水滴 10013036 赏了楼主25水滴
3 喜欢他/她就送朵鲜花吧,赠人玫瑰,手有余香! 鲜花榜单
回复 邀请回答送花

使用道具 举报

xcaq123 发表于 2020-2-23 20:38
在这个社区学了不少知识

那你也要贡献自己的知识呀

点评

***滴充值  发表于 2022-12-28 13:52
回复 送花

使用道具 举报

xcaq123 发表于 2020-2-23 20:38
在这个社区学了不少知识

那你也要贡献自己的知识呀

点评

是的,技术只有***了,才会提升  发表于 2023-1-26 10:21
回复 送花

使用道具 举报

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

本版积分规则

有技术问题,就上汇川技术社区

INOVANCE汇川技术 公众号

汇川控制技术 公众号

全国服务热线:8:30-17:30

4000-300124

苏州地址:江苏省苏州市吴中区越溪友翔路16号

深圳地址:深圳市龙华新区观澜街道高新技术产业园汇川技术总部大厦

Copyright © 2003-2100 汇川技术 Powered by Discuz! X3.4 ( 苏ICP备12002088号 )
快速回复 返回列表 返回顶部