ST语言是在规定逻辑记述方式的国际标准IEC61131-3中定义的语言。ST语言是具有与C语言等相似的语法结构的文本形式的程序语言。适用于对梯形图语言难以表现的复杂处理进行编程的情况。

ST语言支持控制语法、运算式、功能块(FB)、函数(FUN),可以进行如下的记述。

例:通过条件语句进行选择分支,通过重复语句进行重复等的控制语法

例:使用运算符(*、/、+、-、、=等)的表达式

例:定义的FB的调用

例:通用函数的调用

例:汉字等全角字符的使用

01

配置

ST语言中的编程由运算符与语句组成。

语句的终端必须添加“;”(分号)。

空格、制表、换行可以插入到运算符及数据中。

可以在程序中插入注释。

02

程序的结构要素

ST程序由以下要素构成。

1.段落符号

在ST语言中,为了明确程序的结构,设有下述的段落符号。

2.运算符

在ST程序中使用的运算符、对象数据类型与运算结果的数据类型如下所示。

运算符的优先顺序如下所示。

注:1.在一个公式中有多个优先顺序相同的运算符的情况下,从左侧开始运算。

2. 一个公式中可以记述的运算符的使用个数最多为1024个。

3.语句

可以在ST程序中使用的语句如下所示。

应用半角字符记述语句。

4.常数

常数的标记方法

ST程序中字符串的标记方法如下所示。

5.标签与软元件

指定方法

在ST程序中可以直接记述并使用标签与软元件。标签与软元件可以在表达式的左边、右边、通用函数/FB的自变量、返回值等中使用。

■ 附带类型指定的软元件标记

字软元件通过向软元件名附加软元件型指定符,可以作为任意的数据类型在ST语言内使用。

可以使用软元件类型指定符的软元件如下所示。

数据寄存器(D)

链接寄存器(W)

模块访问软元件(U\G)

文件寄存器(R)

■ 软元件的指定方法

关于软元件的指定可以使用下述方法。

变址修饰

位指定

位数指定

间接指定

注意事项

在ST程序中无法使用指针型。

使用位数指定代入的情况下,应使右边和左边的数据类型相一致。

例:D0 := K5X0;

在上述情况下,因为K5X0为双字型、D0为字型,程序出错。

使用位数指定代入的情况下,右边>左边时,在左边的对象点数范围内进行数据传送。

例:K5X0 := 2#1011_1101_1111_0111_0011_0001;

在上述情况下,因为K5X0的对象点数20点,向K5X0代入1101_1111_0111_0011_0001(20位)。

将计数器(C)、定时器(T)、累计定时器(ST)的当前值(TNn等)在字[无符号]/位列[16位]以外的类型中使用时,或将长计数器(LC)的当前值(LCNn等)在双字[无符号]/位列[32位]以外的类型中使用时,应使用类型转换函数。

例:varInt := WORD_TO_INT(TN0); (*使用类型转换函数*)

6.注释

可以在ST程序中使用的注释如下所示。

在多行注释中请勿记述含有结束符号的注释。

st语言和c语言一样,什么是ST语言,一文带你了解ST语言相关推荐

  1. 一文带你入门go语言

    一文带你入门go语言 go/golang是一门google开发的编程语言,其代码简洁易读,天生支持并发,完美契合当今互联网生态. 目前Go语言已经⼴泛应用于人工智能.云计算开发.容器虚拟化.⼤数据开发 ...

  2. r语言和python的区别_机器学习怎样开始比较好?Python还是R语言?

    全文共3077字,预计学习时长11分钟 图源:unsplash 机器学习是近几年来最热门的技术之一,也许你对机器学习很感兴趣,但却不知从何处下手.别担心,兴趣是最好的老师这里有你开启该领域职业生涯的完 ...

  3. 一文带你回顾go语言常见语法现象

    前言 一门语言中的语法现象都是固定的,基础语法几乎都差不多,本篇文章涉及到go入门脚本,变量,条件语句,函数等语法现象的案例, 用一篇文章梳理go基础中可能出现的所有语言现象. 先从宏观上了解一些语法 ...

  4. 一文带你学C语言,详细知识点思维导图!

    本文作者为CSDN博主「龙跃十二」 原文地址:https://blog.csdn.net/qq_38646470/article/details/79139212 -END- 猜你喜欢 再论PID,P ...

  5. 一文带你深入浅出C语言数组

    目录

  6. 一文带你深入浅出C语言运算符、表达式和语句

    目录

  7. 一文带你深入浅出C语言数据

    目录

  8. 一文带你深入浅出C语言指针(初阶)

    目录

  9. 易语言和python混合编程_关于易语言与Python的一点想法

    易语言与python的一点想法">关于易语言与Python的一点想法 小香蕉 2019年7月11日 说在前面 最近吃饭的时候总是会想很多关于易语言的事情.易语言是我学会的第一门语言,虽 ...

  10. java c语言语法对比_c语言和java语法有区别吗?

    c语言和java语法有区别吗? c语言和java在语法上有区别,区别是: 1.C语言有指针,java没有指针: C语言的语法比较简单,但是它的亮点指针很容易出错,想要好好的运用指针是件很难的事情,用好 ...

最新文章

  1. 开发者进阶之路 |UIBPlayer (视频播放)demo分享
  2. AJAX, callback,promise and generator
  3. java 里面matches什么意思_Java Regex中的matches()和find()之间的区别
  4. 苹果2019款iPad新机曝光:后置浴霸三摄
  5. Pytorch框架实战——102类花卉分类
  6. 三菱PLC编程线缆制作
  7. python使用多线程(二)
  8. b+树的增删改查_EF Core / 基础_从建库到增删改查
  9. 【iOS】Web Color 的 Swift 实现
  10. Python竟然可以玩转微信emoji
  11. java 过载_过载保护【转载】
  12. CodeForces - 558DGuess Your Way Out! II(map 扫描线)
  13. EXCEL无法插入公式
  14. 大厂技术博客学习(2)​——5G时代下淘宝直播高清低延时技术jie秘
  15. 基于eclipse+swing+mysql的汽车保养记录系统的开发1-----登录界面的实现
  16. 【中间件系列】Nacos注册中心妙用
  17. play 1.2.7
  18. 手写数字识别Mnist数据集和读取代码分享
  19. 【AxureRP9】V1.0网易课堂课程
  20. 查看jenkins端口linux,Jenkins修改端口号(成功率高)

热门文章

  1. apache+php环境配置
  2. 汉诺塔 java 递归_如何实现java汉诺塔递归算法
  3. Java 生成随机数并进行查找
  4. odb访问mysql数据库(odb的简单用法1)
  5. cholesky分解java代码_cholesky分解的实现
  6. 有向图的深度优先遍历
  7. kali linux下的嗅探工具介绍
  8. NiFi ListSFTP精讲
  9. 文献阅读-CSC-中文错别字-有关论文搜集-+CGED
  10. 微信微页面源码H5页面