本节微课将为大家讲解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.置位和复位运算符的用法

样例如下

等效于:

plc程序ST语言接近C语言,【PLC高级编程语言之ST文本】4.ST语言的运算符介绍相关推荐

  1. 三菱PLC程序三菱Q系列案例三菱plc大型自动化程序生产线程序

    三菱PLC程序三菱Q系列案例三菱plc大型自动化程序生产线程序 规格如下: Q系列大型程序伺服12轴Q01U RS232通讯CCD 应用 实际使用中程序,详细中文注释 2个模块QD70P8,QD70P ...

  2. 西门子plc程序代写代写西门子plc程序包括200smart,1200plc和1500plc和上位机系统

    西门子plc程序代写代写西门子plc程序包括200smart,1200plc和1500plc和上位机系统,注释详细,易懂上手,并且录制视频讲解程序 编号:69100640625555877西门子PLC ...

  3. codesys 串口通讯实例_常见的PLC程序实例,车库自动门的PLC控制!

    点击箭头处"工业之家",选择"关注公众号"! PLC控制车库自动门实例 车库自动门控制 (1)明确系统控制要求 系统要求车库门在车辆进出时能自动打开关闭,车库门 ...

  4. 基于c的语言开发,基于CC++等高级编程语言开发电子系统的设计自动化系统.doc

    基于CC等高级编程语言开发电子系统的设计自动化系统 基于CC++等高级编程语言开发电子系统的设计自动化系统 摘 要:当前电子系统设计自动化技术已广泛地应用于各个领域,随着科技的发展,对电子系统设计自动 ...

  5. 米家扩展程序初始化超时_28条规范和建议,教你如何设计出一套完美的PLC程序...

    一套完整的PLC程序,并不仅仅是使系统能够运行起来这么简单,它也需要完整的注释.精良的架构.良好的可扩展性.完备的报警保护系统.运行前的模拟系统. 1. 简单性 使PLC程序尽可能简单.简单的含义就是 ...

  6. 米家扩展程序初始化超时_一套完整的PLC程序是什么样子

    完美的PLC程序需满足的设计要求 一套完整的PLC程序,并不仅仅是使系统能够运行起来这么简单,它也需要完整的注释.精良的架构.良好的可扩展性.完备的报警保护系统.运行前的模拟系统. 1. 简单性 使P ...

  7. 如何写出完美的PLC程序?

    工业控制中,plc程序编写是一项基础的工作,但也是确保生产正常运行的重要环节.PLC最好的评判标准是实践,看程序是否达到生产预期的目的,但这是远远不够的,因为能达到控制要求的程序还有优劣之分,到底什么 ...

  8. 怎么判断计算机语言的好坏,PLC程序好坏的判断方法

    PLC是一种可编程控制器,在很多行业中都有一定的应用.PLC程序最好的评价标准就是它的实践,要看这个程序可以达到怎样的效果.那么程序在没有达到效果之间就不可以判断PLC程序的好坏了吗?其实是可以的那么 ...

  9. python可以plc编程_自己动手做一个PLC

    我们自己来做一个PLC(Programmable Logic Controller,即可编程逻辑控制器)怎么样?就像很多计算机专业的同学都自己写过最简单的操作系统一样,作为工控领域的软件人,怎么能不自 ...

  10. 三菱PLC CCD控制ST程序 本PLC程序中CCD控制用的ST结构化语言,程序都有注释

    三菱PLC CCD控制ST程序 本PLC程序中CCD控制用的ST结构化语言,程序都有注释.注释全面,用的三菱fx3u系列plc,可借鉴,本程序已经设备实际批量应用.稳定生产.成熟可靠,借鉴价值高,是三 ...

最新文章

  1. Semaphore源码分析
  2. android动画效果 --- 设置activity 跳转动画
  3. mac azure git_将Azure Data Studio与Git和GitHub集成
  4. 【Mybatis】Mybatis三大组件之ResultSetHandler
  5. windows优化大师怎么用_曾经辉煌的装机必备软件,你用过几个?
  6. VC密码正确无法登陆。证书过期。处理。
  7. 计算机专业如何发表论文,如何发表一篇计算机研究生论文
  8. 高德地图获取坐标距离_高德地图计算两坐标之间距离
  9. 数据库系统(DBS)组成
  10. 香港站群多段服务器VPS大带宽服务器日本站群多段服务器
  11. WeChat 微信公众号开发步骤
  12. 游戏渲染建模常用到的相关名词 AlvinCR个人理解-(烘焙、法线、LOD、UV坐标、各向异性)
  13. 妻子决定你未来事业的高度
  14. Navicat设置表的外键
  15. Java菜鸟起飞日记-每天五分钟(Hello World)
  16. bootsrap table editable 中文文档
  17. FIR 滤波器设计软件
  18. UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte 0x80 in...
  19. 前端:实现各样的验证码
  20. GJB 5000B二级-VV验证与确认

热门文章

  1. 【EasyAR实战项目】图像识别+模型交互(全网首发,保姆级教程)
  2. NTP授时服务器(网络校时服务器)对医院信息化建设的重要
  3. 【1stopt】批处理拟合
  4. kali linux下的嗅探工具介绍
  5. 知识表示-马尔科夫链(MC)
  6. Swift 使用AVPlayer 和 AVPlayerItem 做语音播放
  7. 【仿真】carsim、prescan、simulink联合仿真教程、笔记、操作
  8. java开发需要英语吗_学习Java开发英语不好的可以学吗?
  9. word 转html回显至富文本编辑器中(渲染页面)——mammoth.js
  10. 计算机高配置表cpu,高配置电脑配置清单