与个人计算机相比,PLC的硬件、软件的体系结构都是封闭的而不是开放的。各厂家的PLC编程语言和指令系统的功能和表达方式也不一致,有的甚至有相当大的差异,因此各厂家的PLC互不兼容。IEC(国际电工委员会)是为电工电子技术的所有领域制订标准的世界性组织。IEC于1994年5月公布了PLC标准(IEC61131),该标准鼓励不同的PLC制造商提供在外观和操作上相似的指令。它由以下5部分组成:通用信息、设备与测试要求、编程语言、用户指南和通信。其中的第三部分(IEC 61131-3)是PLC的编程语言标准。IEC 61131-3标准使用户在使用新的PLC时,可以减少重新培训的时间;对于厂家,使用标准将减少产品开发的时间,可以投入更多的精力去满足用户的特殊要求。
目前,已有越来越多的生产PLC的厂家提供符合IEC 61131-3标准的产品,有的厂家推出的在个人计算机上运行的“软件PLC”软件包也是按IEC 61131-3标准设计的。
IEC 61131-3详细地说明了句法、语义和下述5种编程语言的表达方式如图2-10所示:
①顺序功能图(Sequential Function Chart,SFC);
②梯形图(Ladder Diagram,LD);
③功能块图(Function Block Diagram,FBD);
④指令表(Instruction List,IL);
⑤结构文本(Structured Text,ST)。
图2-10 PLC的编程语言
标准中有两种图形语言——梯形图(LD)和功能块图(FBD),还有两种文字语言——指令表(IL)和结构文本(ST)。可以认为,顺序功能图(SFC)是一种结构块控制程序流程图。
1.顺序功能图(SFC)
这是一种位于其他编程语言之上的图形语言,用来编制顺序控制程序,顺序功能图提供了一种组织程序的图形方法,在顺序功能图中可以用别的语言嵌套编程。步、转换和动作是顺序功能图中的3种主要元件。可以用顺序功能图来描述系统的功能,根据它可以很容易地画出梯形图程序。
2.梯形图(LD)
梯形图是使用得最多的PLC图形编程语言。梯形图与继电器控制系统的电路图很相似,具有直观、易懂的优点,很容易被工厂熟悉继电器控制的电气人员掌握,特别适用于数字量逻辑控制。有时把梯形图称为电路或程序。
梯形图由触点、线圈和用方框表示的功能块组成。触点代表逻辑输入条件,例如外部的开关、按钮和内部条件等。线圈通常代表逻辑输出结果,用来控制外部的指示灯、交流接触器和内部的输出条件等。功能块用来表示定时器、计数器或者数学运算等附加指令。
在分析梯形图中的逻辑关系时,为了借用继电器电路图的分析方法,可以想象左右两侧垂直“电源线”之间有一个左正右负的直流电源电压(S7-200 PLC的梯形图中省略了右侧的垂直电源线),当图2-11中的I0.1与I0.2的触点接通,或M0.3与I0.2的触点接通时,有一个假想的“能流”(Power Flow)流过Q1.1的线圈。利用能流这一概念,可以帮助我们更好地理解和分析梯形图,能流只能从左向右流动。
触点和线圈等组成的独立电路称为网络(Network),用编程软件生成的梯形图和语句表程序中有网络编号,允许以网络为单位,给梯形图加注释。本书为节约篇幅,一般没有标注网络号。在网络中,程序的逻辑运算按从左到右的方向执行,与能流的方向一致。各网络按从上到下的顺序执行,执行完所有的网络后,返回最上面的网络重新执行。
使用编程软件可以直接生成和编辑梯形图,并将它下载到PLC。
(www.xing528.com)
图2-11 梯形图与语句表
3.功能块图(FBD)
这是一种类似于数字逻辑门电路的编程语言,有数字电路基础的人很容易掌握。该编程语言用类似与门、或门的方框来表示逻辑关系,方框的左侧为逻辑运算的输入变量,右侧为输出变量,输入、输出端的小圆圈表示“非”运算,方框被“导线”连接在一起,信号自左向右流动。图2-12中的控制逻辑与图2-11中相同。西门子公司的“LOGO!”系列微型PLC使用功能块图语言,除此之外,国内很少有人使用功能块图语言。
4.语句表(STL)
图2-12 功能块图
S7系列PLC将指令表称为语句表。PLC的指令表是一种与微机的汇编语言中的指令相似的助记符表达式,由指令组成的程序叫做指令表程序或语句表程序。
语句表比较适合熟悉PLC和逻辑程序设计的经验丰富的程序员使用。
5.结构文本(ST)
结构文本(ST)是为IEC 61131-3标准创建的一种专用的高级编程语言。与梯形图相比,它能实现复杂的数学运算,编写的程序非常简洁和紧凑。
6.编程语言的相互转换和选用
在S7-200 PLC的编程软件中,用户可以选用梯形图、功能块图和语句表这3种编程语言。语句表不使用网络,但是可以用Network(网络)这个关键词对程序分段,这样的程序可以转换为梯形图。
语句表程序较难阅读,其中的逻辑关系很难一眼看出,所以在设计复杂的数字量控制程序时一般使用梯形图语言。语句表可以处理某些不能用梯形图处理的问题,梯形图编写的程序一定能转换为语句表。
梯形图程序中输入信号与输出信号之间的逻辑关系一目了然,易于理解,与继电器电路图的表达方式极为相似,设计数字量控制程序时建议选用梯形图语言。语句表输入方便快捷,梯形图中功能块对应的语句只占一行的位置,还可以为每一条语句加上注释,便于复杂程序的阅读。在设计通信、数学运算等高级应用程序时建议使用语句表语言。
7.SIMATIC指令集与IEC 61131-3指令集
供S7-200 PLC使用的STEP 7-Micro/WIN编程软件提供两种指令集:SIMATIC指令集与IEC 61131-3指令集。前者由西门子公司提供,它的某些指令不是IEC61131-3中的标准指令。通常SIMATIC指令的执行时间短,可以使用梯形图、功能块图和语句表语言,而IEC 61131-3指令集只提供前两种语言。
IEC 61131-3指令集的指令较少,其中的某些“块”指令可以接受多种数据格式。例如SIMATIC指令集的加法指令被分为ADD_I(整数加)、ADD_DI(双字整数加)与ADD_R(实数加)等,IEC 61131-3的加法指令ADD则未做区分,而是通过检验数据格式,由CPU自动选择正确的指令。IEC指令通过检查参数中的数据格式错误还可以减少程序设计中的错误。
在IEC 61131-3指令编辑器中,有些是SIMATIC指令集中的指令,它们作为IEC 61131-3指令集的非标准扩展,在编程软件的指令树内用红色的“+”号标记。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。