PLC中的梯形图(LAD)与结构化编程语言(SCL)的对比?
众所周知,在电气控制中经常会用到可编程逻辑控制器(PLC),以下简称:PLC。大到工业领域的各种生产设备,小到游乐场里的各种游乐设备(如:过山车、旋转木马等)。那么,在PLC编程中绝大多数PLC编程人员用到最多的编程方式是梯形图(LAD),同样也是各大PLC生产厂商的一种标配。与此同时,德国西门子PLC旗下的博图编程软件在很早就推出与梯形图(LAD)相媲美的另一种编程方式:结构化编程语言(SCL)。
下面就浅薄分析对比下梯形图(LAD)与结构化编程语言(SCL),不到之处。敬请指正!
梯形图(LAD)程序由可在程序段电源线上串联或并联的各个元素组成。必须给多数程序元素提供变量。至少有一个梯级从电源线引出。程序段编程从梯级左边缘开始。可以通过使用多个梯级和分支来延伸电源线。 例如,下图所示为一个梯形图(LAD)程序:
1) 电源线、2) 梯级、3) 分支、4) 触点、5) 线圈、6) 函数框
以上便是针对梯形图(LAD)的基本介绍!
SCL结构化控制语言,是一种基于PASCAL的高级编程语言。在PLC控制中主要包含的元素:输入、输出、定时器、存储器位及高级编程语言中的表达式、赋值运算、运算符。在程序控制上提供了如:创建程序分支、循环或跳转等指令。其主要应用于:数据管理、 过程优化、 配方管理、 数学计算/统计任务方面。
在SCL结构化控制语言中,最基本的5大块也是尤为重要的组成部分。如: 组织块 (OB): 组织块定义用户程序的结构。
函数块(FC): 功能包含用于处理重复任务的程序例程。 功能没有“存储器”。
功能块(FB): 一种代码块,它将值永久地存储在背景数据块中,从而即使在块执行完后,这些值仍然可用。
背景数据块: 调用背景数据块来存储程序数据时,该背景数据块将分配给功能块。
全局数据块: 用于存储数据的数据区,任何块都可以使用这些数据。
相对来说,已经聊得不少了。当然,以上所谈到的内容绝不是全部。想要完全掌握梯形图(LAD)和SCL结构化控制语言,还需努力学习,天天向上哦!
本文出自:从零开始学电工基础知识到驱动电气自动化_电工电气学习网
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语言了。
相关问答
plc编程语言排名?
PLC目前有5种标准的编程语言,包括图形化编程语言和文本化编程语言。图形化编程语言包括:梯形图(LD-LadderDiagram)、功能块图(FBD-FunctionBlockDia......
plc梯形图怎么看对错呀?
plc梯形图怎么看对错呀梯形图的对错分好多种,一种是程序编译出现的错误,二就是控制功能异常或者逻辑错误。编译引起的如双线圈、指令使用错误、软元件使用有误...
为什么PLC要运用到浮点数运算-POPPIN_CHAXILY的回答-懂得
PLC总是用16进制(二进制),或者BCD码,是难以满足越来越复杂的控制需要的。如果是单纯的逻辑控制当然用到的都是开关量,一般的数据采集和PID控制用BC...
plc梯形图的一个程序movk8d20是什么意思?
2)确定PLC的输入信号和输出负载,以及与它们对应的梯形图中的输入位和输出位的地址,画出PLC的外部接线图。3)确定与继电器电路图的中间继电器、时间...继电...
求解题,题目如下,设计周期为5s,占空比为20%的方波输出信号程序(用plc设计)?
周期为5s,占空比为20%,也就是ON的时间为1S,OFF的时间为4S。图形如下:Y0为输出信号周期为5s,占空比为20%,也就是ON的时间为1S,OFF的时间为4S。图形如下:Y0为...
plc怎么刷程序?
PLC的程序刷新可以通过以下步骤进行:1.首先,确保你有PLC的编程软件和相应的通信线缆。2.将PLC和电脑通过通信线缆连接起来。通常来说,PLC的通信端口是一个...
s7200模拟量输入程序编写步骤?
1步骤:配置硬件连接,设置CPU型号和内存大小,配置输入输出模块;2明确地址:设定模拟量输入地址,如0-3为一组,4-7为另一组;3编写程序:使用指令LAD、MOV...1...
PLC结构化编程中,EN和ENO是什么意思?
ENO是LAD和FBD中方框的布尔输出。ENO允许您以串联(水平方向)方式连接方框,不允许以并联(垂直方向)方式连接方框。如果方框在EU输入位置有使能位,且方框执...
为什么PLC要运用到浮点数运算-138****8550的回答-懂得
PLC总是用16进制(二进制),或者BCD码,是难以满足越来越复杂的控制需要的。如果是单纯的逻辑控制当然用到的都是开关量,一般的数据采集和PID控制用BC...
初学者想系统的学习PLC,请问应该怎么学?有没有好的学习方法或学习步骤?
大家好,我是王俊杰,做项目的,从2010年接触电气自动化编程到现在已经有11年时间了。还记得第一次做工程的情景,那是一个夏天,天气炎热,我负责做公司PLC编程...现...