课程中心
HOME
课程中心
正文内容
plc fbd编程语言 S7 300PLC之旅——STEP7的三种基本编程语言:LAD,FBD,STL
发布时间 : 2024-10-27
作者 : 小编
访问数量 : 23
扫码分享至微信

S7 300PLC之旅——STEP7的三种基本编程语言:LAD、FBD、STL

在上一篇文章《复盘“运料小车程序”,聊一聊PLC编程》中,驼子假定了一个运料小车的控制程序,简单的聊了一下一下PLC控制项目的编程步骤。有小伙伴认为程序体理解起来稍微有点难度,为了使有需要的小伙伴能有一个更为清晰的认识,驼子将在本文介绍以下STEP7 的三种基本编程语言:LAD、FBD以及STL。

一、梯形图LAD

梯形图语言是从常用的继电器与接触器逻辑控制基础上简化了符号演变而来的,具有形象、直观、实用等特点,电气技术人员容易接受,是目前运用上最多的一种PLC的编程语言。

在PLC程序图中,左、右母线类似于继电器与接触器控制电源线,输出线圈类似于负载,输入触点类似于按钮。梯形图由若干阶级构成,自上而下排列,每个阶级起于左母线,经过触点与线圈,止于右母线。图1为一段典型的梯形图语言编写的程序。

图1 梯形图语言

上图中,“常开点”I0.3、I1.2、I1.1及“常闭点”I0.2串联后,与“常开点”M0.0并联,然后为“线圈”Q4.2供电。在“继电器与接触器“型电路中,用梯形图编程会显得一目了然,犹如看电气连接图一般。

二、功能块图FBD

FBD用方框图的形式来表示控制逻辑,类似于数字逻辑门电路的编程语言。驼子在大学时,对数字电路情有独钟,因而后来对FBD语言有了天然的好感,工作中倾向于用FBD进行编程。FBD语言对于有数字电路基础的人来说很容易掌握,该编程语言用类似与门、或门的方框来表示逻辑运算关系,方框的左侧为逻辑运算的输入变量,右侧为输出变量;信号也是由左向右流向的,各个功能方框之间可以串联,也可以插入中间信号。在每个最后输出的前面组合逻辑操作方框数是有限的,同一组逻辑运算的输出结果的数目也要根据操作系统的不同而不同;经过扩展,不但可以表示各种简单的逻辑操作,并且也可以表示复杂的运算、操作功能。图1的梯形图控制逻辑用FBD编程的话,如图2所示。

图2 FBD语言

图2中,方框”&“为“与”运算,“>="为或运算,其真值表如下:

图3 真值表

FBD语言的编程过程类似于数字电路中用集成模块搭建电路,每个模块都有其自己的功能,根据控制需要,选用合适的模块,用“线”连起来即可。

三、语句表STL

STL是一种与汇编语言类似的助记符编程语言,用一个或几个容易记忆的字符来代表PLC的某种操作功能,每个语句由地址(步序号)、操作码(指令)和操作数(数据)三部分组成。语句表可以实现某些不易用梯形图或功能块图来实现的功能。玩过单片机的小伙伴再学习STL,可能会有些优势。图4为用STL编写的同一控制逻辑的程序。

图4 STL语言

其中,“A”为与运算,“AN”为与非运算,“O”为或运算,“=”为赋值运算。

用STL编程,需要对PLC的微观逻辑结构有相当的了解,比如:需要了解各种存储模式,熟悉各种寻址方式,同时还要能熟练使用各种编程助记符。可以说,能够熟练运用STL编程的小伙伴,siemens的PLC一定玩的相当的溜。驼子我的STL编程仍处在初学者阶段,犹记得去年用STL编写过一段光电测距仪的接口程序,不知死了多少脑细胞,实在是不堪回首。

四、三种语言,该如何抉择?

1、三种语言互相转换

在STEP7中,可以通过菜单选择,在三种语言中相互切换显示。如图5所示。

图5 LAD、FBD、STL切换显示

当然,通常LAD和FBD直接可以互相切换,LAD、FBD也可以转换为STL语言,但STL却不一定可以转换为LAD或FBD语言。

2、三种语言的优劣比较

LAD是最常用的PLC编程语言,其形象、直观,稍懂电气的人就能很快上手,而且目前市面上几乎所有的PLC都支持LAD编程,一通百通。其在“继电器或接触器型”逻辑功能中应用比较好,但随着STEP7中集成的程序功能单元越来越多,LAD语言写出的程序多少有点“不伦不类”。如图6所示,程序单元“CMP>=D”在FBD程序中,以“块”的形式显示,与其他单元一样;但在LAD语言中,仍以“块”的形式显示,与其它“触点单元”放在一起显得有点格格不入,虽然不影响逻辑,但看起来不工整。

图6 FBD、LAD程序对比

FBD语言写出的程序,个人认为逻辑性较强,在编程过程中,可以根据被控对象的控制逻辑,“轻易”的捋清程序逻辑,编程就会轻松许多。同时,STEP7提供了大量的、功能各异的“程序逻辑单元”,仅需要简单的拖动,就能实现编程。

STL接近于汇编语言,起点较高,不容易掌握。但在一些需要对硬件操作的时候,比如:驼子曾经编写过的激光测距仪的接口程序,就不得不用到STL语言了。

西门子S7-1200PLC编程语言

STEP 7 为 S7-1200 提供以下标准编程语言:

LAD(梯形图逻辑)是一种图形编程语言。它使用基于电路图的表示法。FBD(功能块图)是基于布尔代数中使用的图形逻辑符号的编程语言。SCL(结构化控制语言)是一种基于文本的高级编程语言。 创建代码块时,应选择该块要使用的编程语言。 用户程序可以使用由任意或所有编程语言创建的代码块。

梯形图 (LAD)

电路图的元件(如常闭触点、常开触点和线圈)相互连接构成程序段。

要创建复杂运算逻辑,可插入分支以创建并行电路的逻辑。 并行分支向下打开或直接连接到电源线。 用户可向上终止分支。

LAD 向多种功能(如数学、定时器、计数器和移动)提供“功能框”指令。STEP 7 不限制 LAD 程序段中的指令(行和列)数。

说明

每个 LAD 程序段都必须使用线圈或功能框指令来终止。

创建 LAD 程序段时请注意以下规则:

不能创建可能导致反向能流的分支。 不能创建可能导致短路的分支。

功能块图 (FBD)

与 LAD 一样,FBD 也是一种图形编程语言。 逻辑表示法以布尔代数中使用的图形逻辑符号为基础。

要创建复杂运算的逻辑,在功能框之间插入 并行分支。算术功能和其它复杂功能可直接结合逻辑框表示。STEP 7 不限制 FBD 程序段中的指令(行和列)数。

SCL

结构化控制语言 (SCL, Structured Control Language) 是用于 SIMATIC S7 CPU 的基于 PASCAL 的高级编程语言。 SCL 支持 STEP 7 的块结构 。 可以使用以下三种编程语言之一将程序块包括到项目中:SCL、LAD 和 FBD。

SCL 指令使用标准编程运算符,例如,用 (:=) 表示赋值,算术功能(+ 表示相加,- 表示相减,* 表示相乘,/ 表示相除)。 SCL 也使用标准的 PASCAL 程序控制操作,如 IF-THEN-ELSE、CASE、REPEAT-UNTIL、GOTO 和 RETURN。 SCL

编程语言中的语法元素还可以使用所有的 PASCAL 参考。 许多 SCL 的其它指令(如定时器和计数器)与 LAD 和 FBD 指令匹配。 有关特定指令的更多信息,请参见基本指令 和扩展指令章节中的特定指令。

SCL 程序编辑器

可以在创建该块时指定任何块类型(OB、FB 或 FC)以便使用 SCL 编程语言。 STEP 7

提供包含以下元素的 SCL 程序编辑器:

用于定义代码块参数的接口部分用于程序代码的代码部分包含CPU支持的 SCL 指令的指令树 可以直接在代码部分输入指令的 SCL 代码。

编辑器包含用于通用代码结构和注释的按钮。 要了解更复杂的指令,只需从指令树拖动

SCL 指令并将其放入程序中。 也可以使用任意文本编辑器创建 SCL程序,然后将相应文件导入 STEP 7 中。

在 SCL 代码块接口部分,可以声明下列类型的参数:●Input、Output、InOut 和 Ret_Val: 这些参数定义代码块的输入变量、输出变量和返回值。 执行代码块期间局部使用此处输入的变量名称。 通常不会使用变量表中的全局变量名称。●Static(仅适用于 FB,上述示例适用于 FC): 代码块使用静态变量在背景数据块中存储静态中间结果。 块会一直保留静态数据,直到多个周期后被覆盖。 块的名称(此块将其作为多重背景调用)也存储在静态局部数据中。●Temp:这些参数是执行代码块期间使用的临时变量。●Constant:这些是为代码块指定的常数值。如果从其它代码块调用 SCL 代码块,该 SCL 代码块的参数会显示为输入或输出。

本示例中,“Start”和“On”变量(来自项目变量表)相当于 SCL程序声明表中的“StartStopSwitch”和“RunYesNo”。

相关问答

plc五种编程语言?

plc编程语言如下1、梯形图语言(LD)梯形图语言是PLC程序设计中最常用的编程语言。它是与继电器线路类似的一种编程语言。由于电气设计人员对继电器控制较为熟...

西门子1200PLC变频器程序怎么写?

编写西门子1200PLC变频器程序需要先进行硬件连接和参数设置,然后使用西门子PLC编程软件根据需要编程并进行调试。具体的步骤包括:选择正确的模块并进行硬件连...

西门子编程语言有哪些?

目前比较流行的西门子PLC编程语言有如下几类:1.梯形图。最明了最容易上手的PLC编程语言,一般新手上路都是梯形图。特别方便监测。2.STL语言:STL是高手用的,...

PLC的编程语言标准?

PLC目前有5种标准的编程语言,包括图形化编程语言和文本化编程语言。图形化编程语言包括:梯形图(LD-LadderDiagram)、功能块图(FBD-FunctionBlockDia......

plc编程用什么语法?

PLC的编程语言包括以下五种:梯形图语言(LD)、指令表语言(IL)、功能模块图语言(FBD)、顺序功能流程图语言(SFC)及结构化文本语言(ST)。PLC的用户程序...PLC的...

plc编程语言有哪些?

1、梯形图语言(LD)梯形图语言是PLC程序设计中最常用的编程语言。它是与继电器线路类似的一种编程语言。由于电气设计人员对继电器控制较为熟悉,因此,梯形图...

PLC需要什么语言?

大致用这几种吧,梯形图语言(LD)、结构化文本语言(ST)、(ST指令表语言(IL)、功能模块图语言(FBD)、顺序功能流程图语言(SFC)。日系和欧系有所区别了...大致用...

plc编程语言的国际标准是哪个?

plc编程语言的国际标准是IEC61131。PLC有五种标准化编程语言:顺序功能图(SFC)、梯形图(LD)、功能模块图(FBD)三种图形化语言和语句表(IL)、结构文本(ST...plc...

plc有几种编程语言以及它们的特点?

PLC有五种标准编程语言:梯形图语言(LD)、指令表语言(IL)、功能模块语言(FBD)、顺序功能流程图语言(SFC)、结构文本化语言(ST)。梯形图语言特点:与电...PLC有...

西门子plc怎么控制变频器频率?

要通过西门子PLC控制变频器的频率,可以通过以下步骤来实现:1.连接PLC和变频器:首先,需要通过通讯接口将PLC和变频器进行连接,并进行相应的设置,确保PLC和...

 自力式压差控制阀  洛克王国小灵灵 
王经理: 180-0000-0000(微信同号)
10086@qq.com
北京海淀区西三旗街道国际大厦08A座
©2024  上海羊羽卓进出口贸易有限公司  版权所有.All Rights Reserved.  |  程序由Z-BlogPHP强力驱动
网站首页
电话咨询
微信号

QQ

在线咨询真诚为您提供专业解答服务

热线

188-0000-0000
专属服务热线

微信

二维码扫一扫微信交流
顶部