JZGKCHINA
工控技术分享平台
1
引言
当您学习 PLC 编程时,您需要了解五种常用的编程语言:梯形图语言(LD)、结构化文本语言(ST)、顺序功能流程图语言(SFC)、功能模块图语言(FBD)和指令表语言(IL)。这些语言都可以用来编写正确的程序代码,以控制机器的运行。
但是,PLC 初学者往往会对使用哪种语言感到困惑。了解这些语言的优缺点可以帮助他们更容易地确定最适合编写 PLC 程序的语言。因此,本文将详细介绍这些语言之间的区别,并帮助您确定最适合您使用的编程语言。
2
语言优缺点
梯形图语言(LD):
优点:
- 易于理解和学习,尤其适用于初学者。
- 可以直观地表示逻辑关系和控制流程。
缺点:
- 编写复杂逻辑和大型程序时,梯形图语言显得冗长且难以维护。
- 不适用于数学计算和高级算法的表示。
结构化文本语言(ST):
优点:
- 具有良好的可读性和可维护性。
- 支持复杂的逻辑和算法计算。
- 允许使用各种控制结构和函数。
缺点:
- 语法较为复杂,需要掌握编程基础知识。
顺序功能流程图语言(SFC):
优点:
- 可以直观地表示系统的状态和跳转关系。
- 适合描述并行控制和状态机。
缺点:
- 对于简单的控制逻辑,SFC 语言相对复杂。
功能模块图语言(FBD):
优点:
- 图形化表示逻辑,具有直观性。
- 可以直接映射到硬件逻辑电路。
缺点:
- 对于复杂的逻辑,FBD 可能会变得冗长。
指令表语言(IL):
优点:
- 支持指针以及间接寻址,对于集中数据处理方面有很大的优势
- 适用于简单的控制逻辑和小型程序。
- 系统利用率高,处理时间短。
缺点:
- 复杂逻辑和大型程序不直观,不便于维护。
- 缺乏结构化控制语句。
3
梯形图逻辑(LD)
梯形图逻辑是最基本的 PLC 编程语言类型。它与电气接线控制图相关联,使得编程更加直观。在传统的电气控制接线中,输入操作会根据电气接线控制图来控制输出。
梯形图逻辑图由触点和线圈组成,在梯形图逻辑编程中以相同的方式实现。每个梯级都有一系列的触点和线圈,当梯级通电时,线圈根据其类型运行。
可以根据需要编写任意数量的梯级,代码将按照设计的顺序执行。由于其形状类似于梯子,因此被称为梯形图逻辑。请参阅下面的图例以加深理解,可以看到其操作过程非常简单。
在上图中,继电器逻辑图中与开关设备相关的输入在梯形图中显示为触点。继电器逻辑图中的 M1 输出线圈在梯形图中用输出线圈符号表示。
梯形图中每个触点/线圈符号上方显示的地址号是对逻辑控制器外部输入/输出连接位置的引用。因此,在两个末端电源轨之间,您可以放置所需的元素并在其中写入逻辑。梯级从上到下以循环方式执行。
4
结构化文本(ST)
结构化文本是一种类似于本地 IT 语言的编程语言。与软件语言编写的代码相似,结构化文本是以作业方式编写的一系列文本。
指令必须以分号结尾。在执行赋值时,单个或多个元素变量的当前值将被替换为表达式的计算结果。
赋值由左侧的变量规范组成,后跟赋值运算符:=,后跟要计算的表达式。两个变量(赋值运算符的左侧和右侧)必须具有相同的数据类型。为了更好地理解,请参考下面的示例。
如您所见,它具有不同类型的操作和条件。在上面的示例中,if-else 语句用于计算表达式。如果条件为真,则输出端分配的变量打开,当条件变为假时,变量将关闭。因此,ST 语言最适合数学计算,因为它看起来清醒且易于理解。
5
顺序流程图(SFC)
当您需要以重复或顺序的方式编写复杂的程序时,顺序流程图是最先进的工具。顾名思义,SFC(Sequential Function Chart)语言允许您通过流程图编写程序。它以步骤、分支、链接、跳转和过渡等方式工作。
SFC 中的部分是“状态机”,即状态由活动步骤创建,转换通过切换/更改行为传递。步骤和过渡通过方向链接相互链接。
两个步骤永远不能直接链接,必须始终通过过渡分隔。活动信号状态过程沿定向链路发生,并通过切换转换触发。为了更好地理解,请参考下面的图示。
链过程的方向遵循方向链接,从上一步的末尾运行到下一步的顶部。分支从左到右处理。每个步骤都有零个或多个操作。
每个过渡都需要一个过渡条件。链中的最后一个过渡始终连接到链中的第一个步骤以创建闭环。因此,步进链是循环处理的。
6
功能框图(FBD)
通常用于微处理器的功能块图(FBD)语言在 PLC 编程中也以类似的格式提供。它是相互连接的块图,每个块都有其输入和输出。
使用 FBD 语言进行编程有很多优点。首先,它能够使程序结构更加清晰,易于理解和维护。其次,它能够提高编程效率,因为可以在单个视图中查看整个代码,无需上下滚动。此外,FBD 语言还具有直观的图形界面,使得编程变得更加容易和直观。最后,它还有助于快速排除故障,因为可以更方便地找到和解决问题。
为了帮助您更好地理解,请参考下面的图示。图中展示了使用 FBD 语言编写的 PLC 程序的示例。每个块都有其输入和输出,并通过线连接在一起,形成一个完整的程序。这种结构使得程序易于阅读和理解,同时也有助于快速找到和解决问题。
如您所见,您可以通过线条轻松连接各种类型的函数和块,这显示了逻辑中如何发生流。您只需要分配输入和输出引脚,连接这些引脚之间的线,您的代码就会相应地工作。
7
指令列表(IL)
用指令列表语言编写的程序由一系列指令组成,这些指令由逻辑控制器按顺序执行。
每条指令由单个程序行表示,由以下组件组成:
- 行号:表示指令在程序中的位置。
- 当前值:只能在线查看的当前值,表示在执行指令之前存储在特定地址中的值。
- 指令运算符:表示要执行的操作的类型。
- 操作数:表示要参与操作的值或地址。
请参考下面的图以获得更详细的理解。
您可以看到每行仅执行一个操作。与梯形逻辑中使用的触点和线圈不同,您具有相应的负载指令和设置/复位指令。它是梯形图逻辑和结构化文本的混合体。这就是为什么,它也被称为类似于汇编语言。当您在 PLC 中联机时,您可以在此窗口中看到动画值。
8
总结
当我们看到这五种语言时,我们看到程序员通常使用的最多的是梯形逻辑、结构化文本和功能框图。每种语言都有其优点和缺点。但是,这三个都很容易理解、解释和设计。这有助于程序员正确设计逻辑。
这并不意味着不使用其余两种语言。这取决于程序员的技能,取决于他要实现什么类型的功能。因此,很难评论最好的语言。但是,在这五种语言当中,最常用的还是梯形图逻辑。