梯形图语言编程

简介: 梯形图语言编程

梯形图语言是从继电器—接触器控制基础上发展起来的一种编程语言,其特点是易学易用,历史悠久。特别是对于具有电气控制背景的人而言,梯形图可以看做是继电器逻辑图的软件延伸和发展。尽管两者的结构非常类似,但梯形图软件的执行过程与继电器硬件逻辑的连接是完全不同的。

IEC 61131-3标准定义了梯形图中用到的元素,包括电源轨线、连接元素、触点、线圈、功能和功能块等。


(1)电源轨线

——电源轨线的图形元素也称为母线。它的图形表示是位于梯形图左侧和右侧的两条垂直线。在梯形图中,能流从左则电源轨线开始,向右流动,经过连接元素和其他连接在该梯级的图形元素到达右电源轨线。


(2)连接元素

——是指梯形图中连接各种触点、线圈、功能和功能块及电源轨线的线路,包括水平线路和垂直线路。连接元素的状态是布尔量。连接元素将最靠近该元素左侧图形符号的状态传递到该元素的右侧图形元素。


(3)触点

——是梯形图的图形元素。梯形图的触点沿用电气逻辑图的触点术语,用于表示布尔变量的状态变化。触点是向其右侧水平连接元素传递一个状态的梯形元素。按静态特性分,触点可分为常开触点和常闭触点。常开触点在正常工况下,触点断开,状态为0;常闭触点在正常工况下,触点闭合,其状态为1。此外,在处理布尔量的状态变化时,要用到触点的上升沿和下降沿。


(4)线圈

——是梯形图的图形元素。梯形图的线圈也沿用电气逻辑图的线圈术语,用于表示布尔量状态的变化。线圈是将其左侧水平连接元素状态毫无保留地传递到其右侧水平连接元素的梯形图元素。在传递过程中,将左侧连接的有关变量和直接地址的状态存储到合适的布尔量中。线圈按照其特性可分为瞬时线圈、锁存线圈和跳变线圈等。


(5)功能和功能块

——梯形图编程语言支持功能和功能块的调用。

图6.12所示为用KW公司的MULTIPROG编程软件编写的梯形图程序,该梯形图中就包括IEC 61131-3标准中的一些常用梯形图编程图形元素。


功能块图

功能块图编程语言是将各种功能块连接起来实现所需控制功能。功能块图编程语言源于信号处理领域。功能块图编程语言是IEC 61499标准的基础。功能块图语言在过程控制中的应用更加广泛。它用一系列相互连接的图形块表达功能、功能块和程序的行为,就如同在电子电路图常见的一样。也可以将它想象为用许多处理元件之间的信号流量图来描述一个系统的行为。功能块图编程语言的图形符号由功能、功能块和连接元素组成。


功能块图编程语言可以通过使用跳转、返回和反馈等元素实现对程序执行的控制。跳转分为无条件跳转和有条件跳转。返回分为条件返回和无条件返回。反馈并不改变执行控制的流向,但它影响下次求值中的输入变量。


该实例的内部网络结构。该实例描述了一个水箱液位控制实现。当实际液位测量值小于等于所设定的最小液位时,输出一个ON信号;当测量值大于等于最高液位时,输出一个OFF信号。当然,由于液体不可能同时低于最低位和高于最高位,程序中用“RS”或“SR”功能块都可以。

c4bce864d2bb42b9bacf753eccf2933a.png

15ed460eccb84225b44e45afb1da535d.png

结构化文本语言

结构化文本语言(ST)是高层编程语言,类似于PASCAL编程语言。它不采用底层的面向机器的操作符,而是采用高度压缩的方式提供大量抽象语句来描述复杂控制系统的功能。一般而言,它可以用来描述功能、功能块和程序的行为,也可以在SFC中描述步、动作块和转移的行为。相比较而言,它特别适合于定义复杂的功能块。这是因为它具有很强的编程能力,可方便地对变量赋值,调用功能和功能块,创建表达式,编写条件语句和迭代程序等。结构化文本语言编写的程序格式自由,可在关键词与标识符之间的任何地方插入制表符、换行符和注释。它还具有易学易用、易读易理解的特点。在拥有了更多高级编程语言的特点时,它也失去了一些面向机器的操作符的特点,特别是结构化文本语言编写的程序执行效率较低,因为源程序要编译为机器语言才能执行。


熟悉高级编程语言工程师会喜欢用结构化文本编程语言,用该语言编程的程序与梯形图程序相比十分的简捷。


该程序的功能是判断当前的时间属于哪个时间区间(如可以定义期间A的时间段为0:00~1:30)。程序中首先取得PLC的系统时钟,这里要注意数据格式的转换。当前时间的小时存储在变量SysHour,分钟存储在变量SysMin。然后定义了衍生功能块“PhaseIs”,该功能块的代码也是采用结构化文本语言编写见图6.15(a)。在“变量和FB实例”中再定义该衍生功能块实例“IsZ1Ja”。然后在整个项目的某个程序中就可以通过对该功能块实例的调用得到判断结果,如图

03499ce12660407c849aaae11a72ba6d.png

相关文章
|
7月前
|
程序员 编译器 Linux
V 语言
V 是一门通用的编程语言,也可以作为系统语言,其网站说它非常简单,你可以在一个周末学会,它还说 Go 程序员会对该语言非常熟悉,因为 V 语言在很多方面借鉴了 Go。
110 2
|
20天前
|
C语言
C 语言解 常见编程题(上)
C 语言解 常见编程题
45 0
|
20天前
|
C语言
C 语言解 常见编程题(下)
C 语言解 常见编程题
44 0
|
2月前
|
网络协议 数据挖掘 编译器
C++语言
C++语言
23 3
|
5月前
|
自然语言处理 JavaScript 前端开发
【100 种语言速成】第 2 节:Emojicode
【100 种语言速成】第 2 节:Emojicode
42 0
|
7月前
|
C++
C++语言学习面向对象编程应用案例
C++语言学习面向对象编程应用案例
|
设计模式 算法 程序员
【译】需要学习的是编程,而不是编程语言
我们不仅是程序员,而且是个(与时俱进的)学习者。鲜见的是有多少人认为他们是在学习编程的呢。
|
Java 程序员 编译器
Yin 语言:学习设计和实现一门编程语言
大多数语言没能吸取历史教训 大多数语言受到宗教性的推崇,拥有一个过于狂热的社区,因此难以改正自己的错误 有些语言为程序员做得太少,有些语言为程序员做得太多 有些语言提供了太少的抽象,有些语言提供了太多的抽象 有些语言太不顾及可用性,游戏语言过于重视可用性而忽视了可用性之外的东西 有些语言从数学和逻辑那里学得太少,有些语言学得太多 有些语言太不顾及类型,有些语言对类型考虑过多
518 0
Yin 语言:学习设计和实现一门编程语言
|
程序员 Python Java
一个不被程序员认为是编程语言的语言
HTML究竟算不算是一门编程语言,这是争执已久的话题。其实,从本质来讲,HTML确实算不上是一门编程语言。关注我,发现更多互联网有趣的无聊的! HTML全称,HyperText Markup Language。