浅谈ST 语言编程

梯形图语言编程是PLC编程首选语言之一,其图形化的形象结构完全符合电工继电器控制电路当中的思路模式,备受工程师青睐!

而很多实际应用场合当中,需要用到很多复杂的算法来分析工艺要求,计算实际数据。如果采用梯形图指令编程,那么需要使用各种四则运算指令,根据公式求解,程序编写繁多,指令繁多。

ST 语言类似于PACSAL语法,是一种计算机编程高级语言,简单高效的编程方式能表达任何复杂的运算公式,简化复杂的数学工程。

如:var_5:= (var_1-var_2+var_3)*var_4;

ST 语言使用了传统的很多高级语言的特性,包括:变量,操作符和控制流程语句,还可以和PLC 梯形图语言一起工作,相互协调,发挥各自其优势。ST语言结构中,“表达式”代表了整个语法的共通性,表达式由操作符和操作数组成,操作数可以是常量或者变量,可以任意建立符合规则的变量,制作流程表达式,所以看程序的读者看懂了表达式即看懂了程序,这是梯形图不能所及的。

如:IF temp THEN

FOR temp_循环 :=0 TO 9 DO

temp_总和:= temp_总和+SUM_累计[ temp_循环 ];

END_FOR;

END_IF;

在编写程序的时候,我们要养成编写程序注释的习惯。虽然注释经常被删掉,但它们是源代码中非常重要的一部分。它们解释了一部分代码,使程序更易读懂。注释帮助你或其他人读你的程序,即使过去了很长时间。注释不被编译,因此不会影响程序的执行。

一个优秀的工程师编写的程序,不但是能完成工艺要求,程序简洁明了,可移植性!更重要的是能够让更多的人能够通过你编写的程序来了解工艺和了解你!

在ST结构当中,一个表达式中常用多个操作符,很多时候忽略了操作符优先级顺序,造成在调试程序时,明明程序代码没问题,却怎么也达不到理想状态。所以操作符的优先级顺序处理是整个语法的关键。

在任何一个表达式中,首先执行最高级别的操作符,接着执行低一级的操作符,直到执行完所有的操作符。具有相同级别的操作符按照书写顺序从左至右依次执行。

如:var_5:= var_1-var_2*var_4; (*先执行乘法,再执行减)

在PLC 梯形图编程当中,如果没有跳转,或者调用子程序的情况下,所有的程序都是按照从上到下,从左到右依次扫,所有的指令都是依次执行,完全没有优先级之分,这就是梯形图编程与ST语法编程最大区别之一。

之前我调试过一段程序,就是因为忽略的优先级,造成程序的不稳定,经过无数次的查找原因之后,才找到问题的关键是由“逻辑与”“逻辑或”的优先级顺序引起的。

原始程序如:

IF

Real_weight>SV_weight_low OR Real_weight=SV_weight_low  AND Real_weight <SV_weight_high THEN

output:= TRUE;

ELSE

output:= FALSE;

END_IF;

修改后程序:

IF

(Real_weight>SV_weight_low OR Real_weight=SV_weight_low)

AND Real_weight <SV_weight_high THEN

output:= TRUE;

ELSE

output:= FALSE;

END_IF;

在ST语法当中,有5种命令组,需要我们加强学习,对这5种命令组掌握程度的与否,决定着你对ST语言编程的熟悉度。

1:布尔逻辑操作

2:算数操作

3:比较操作

4:判断

5:C ase语句

例:

ST 编写如下:KM1:=( SB1 OR KM1) AND  NOT  SB2 ;大家应该注意的是,在这个表达式当中,命令组采用的是布尔逻辑操作,而“与”的优先级高,执行“或”逻辑时,要使用括号增加优先级。

来源:技成培训网(唐倩)

(0)

相关推荐

  • 关于PLC一直说结构化编程,到底什么才是结构化编程

    结构化文本编程语言是一种高级语言,类似于 Pascal,是一种特别为工业控制应用而开发的一种语言,也是在 InoProShop中最常用的一种语言, 对于熟悉计算机高级语言开发的人员来说,结构化文本语言 ...

  • 全栈必备JavaScript基础

    1995年,诞生了JavaScript语言,那一年,我刚刚从大学毕业.在今年RedMonk 推出的2017 年第一季度编程语言排行榜中,JavaScript 排第一,Java 第二,Python 反超 ...

  • SCL语言基本语法规则:表达式

    SCL:Structured Control Language,结构化控制语言. SCL是一种类似于计算机高级语言的编程方式,只是这种语言编写的程序,可以在PLC中运行.如果学过C语言或者VB语言,就 ...

  • 2.5. 运算符与表达式 |《Python 简明教程 2018》| Python 技术论坛

    运算符与表达式# 通常你所写出的程序语句(逻辑行)会包含若干表达式. 如 2 + 3 即为一个简单的表达式.表达式由运算符与操作数构成. 运算符是一些可以用 + 号或其他关键词符号替代的功能.运算符会 ...

  • C语言丨还没搞懂逻辑运算符?一篇文章教你区分“真假”!

    这两天有遇到一些小伙伴,对于逻辑运算符号都不认识,不知道它代表什么意思,今天就来简单讲讲逻辑运算符.   逻辑运算符 关系运算符只是测试左右两个值之间的关系(把它们相互比较),逻辑运算符(logica ...

  • 为什么Lisp如此先进,却永远成为不了编程主流语言?深度解析Lisp的优势与劣势

    Lisp 的争议 由于 Lisp 语言的 "过于灵活而神秘存在" 的特性使得 Lisp 成了世界上最受争议的编程语言,实际上独树一帜的 Lisp 也在(针对不同的产品,总有热衷「语 ...

  • 专题阅读:浅谈戏剧语言潜台词的赏析

    --以<雷雨>为例(节选) 周光珍 一.什么是潜台词? 潜台词是指隐藏在台词背后的言外之意.弦外之音,是潜藏在台词背后的人物的思想.愿望和目的,是台词的真实含意. 潜台词能够准确地传达出人 ...

  • ​【一方水土】浅谈黎城语言分布

    作者:水风景    编辑:刘彦汷 浅谈黎城语言分布 中国的语系分布大体上就是闽南语.川语.藏语.浙赣湘语.晋语等,北方语系比较单一,但是除了晋语.由于晋语的庞大复杂,所以成为语言学专家的主要研究课题. ...

  • 浅谈语言材料中逻辑推理的“还原”

    浅谈语言材料中逻辑推理的"还原" 邓旺林 不少语言材料尤其是说理性语言材料中包含着逻辑推理,而这些逻辑推理大都不像逻辑学教材所概括的那样单纯.完整和规范,难以让人一目了然.因而将其 ...

  • 浅谈诗歌的语言/樊子

    浅谈诗歌的语言 作者:樊子 毋庸置疑,诗歌是语言的艺术.在诗歌作品中,语言绝对不是随意的.杂乱的或者零碎的堆积.现代汉语诗歌受到一定诟病的主要原因之一是很多诗人语言能力的局限性和随意性,"吟 ...

  • 浅谈语言对思维的影响

    1.1语言和思维 什么是语言呢?卡西尔在<人论>中认为:"语言是'符号'".萨皮尔把语言定义为"人类本能地通过自觉产生的象征性符号交流思想,情感和愿望的手段. ...

  • 【STL 源码剖析】浅谈 STL 迭代器与 traits 编程技法

    大家好,我是小贺. 点赞再看,养成习惯 文章每周持续更新,可以微信搜索「herongwei」第一时间阅读和催更,本文 GitHub : https://github.com/rongweihe/Mor ...

  • 贾浅浅谈自己诗作 语言力求清丽

    都说女孩文艺清新范才是传统,确实最近出现一位才女.诗人贾浅浅,贾平凹的女儿,贾平凹是中国作家协会副主席,陕西省作家协会主席.近日网友对评论员唐小林发表的文章中"贾浅浅突显诗坛乱象" ...

  • 创作笔谈:提炼语言精髓 升华诗意美感——浅谈诗的语言

    提炼语言精髓 升华诗意美感 --浅谈诗的语言 周 波 写诗,要在短小篇幅里表现尽可能多的内容,尤其要求有精美的语言,尤其是语言的艺术. 高尔基说:"文学的根本材料,是语言--是给我们的一切印 ...

  • 浅谈尽快抢救白族濒危语言必要性

    随着人口流动的加快,信息传播的迅捷,各种语言呈现了趋同化之势.语言是人文交流的主要工具之一.如果某些白语在交流中的功能弱化,甚至丧失,那么在历史进程中就会逐渐消亡. 白语从南诏国开始,由于没有自己的文 ...