购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

3.1 PLC的编程语言与程序结构

与个人计算机相比,PLC的硬件、软件的体系结构都是封闭的而不是开放的。各厂家的PLC的编程语言和指令系统的功能和表达方式也不一致,互不兼容。IEC 61131是IEC(国际电工委员会)制定的PLC标准,其中的第三部分IEC 61131-3是PLC的编程语言标准。IEC 61131-3是世界上第一个、也是至今为止唯一的工业控制系统的编程语言标准。

目前已有越来越多的PLC生产厂家提供符合IEC 61131-3标准的产品,IEC 61131-3已经成为各种工控产品事实上的软件标准。

IEC 61131-3详细地说明了句法、语义和下述5种编程语言(见图3-1):

图3-1 PLC的编程语言

1)顺序功能图(Sequential Function Chart, SFC)。

2)梯形图(Ladder Diagram, LD)。

3)功能块图(Function Block Diagram, FBD)。

4)指令表(Instruction List, IL)。

5)结构文本(Structured Text, ST)。

顺序功能图、梯形图和功能块图是图形编程语言,指令表和结构文本是文字语言。

1.顺序功能图

这是一种位于其他编程语言之上的图形语言,用来编制顺序控制程序。顺序功能图提供了一种组织程序的图形方法,第5章将详细介绍顺序功能图的使用方法。

2.梯形图

梯形图是使用得最多的PLC图形编程语言。梯形图与继电器控制系统的电路图很相似,具有直观易懂的优点,很容易被工厂中熟悉继电器控制的电气人员掌握,特别适合数字量逻辑控制。有时把梯形图称为电路。使用编程软件可以直接生成和编辑梯形图。

梯形图由触点、线圈和方框指令组成。触点代表逻辑输入条件,例如外部的开关、按钮和内部条件等。线圈通常代表逻辑输出结果,用来控制外部的指示灯、交流接触器和内部的标志位等。方框用来表示定时器、计数器或者数学运算等指令。

在分析梯形图中的逻辑关系时,为了借用继电器电路图的分析方法,可以想象左右两侧垂直“电源线”之间有一个左正右负的直流电源电压,S7-200 SMART的梯形图(见图3-2)省略了右侧的垂直电源线。当I0.0与I0.1的触点接通,或者Q0.0与I0.1的触点接通时,有一个假想的“能流”(Power Flow)流过Q0.0的线圈。利用能流这一概念,可以帮助我们更好地理解和分析梯形图。能流只能从左向右流动。

梯形图程序被划分为若干个程序段,一个程序段只能有一块不能分开的独立电路。在程序段中,逻辑运算按从左到右的方向执行,与能流的方向一致。没有跳转指令时,各程序段按从上到下的顺序执行,执行完所有的程序段后,下一个扫描周期返回最上面的程序段1,重新开始执行程序。

3.语句表

S7系列PLC将指令表称为语句表。语句表程序由指令组成,PLC的指令是一种与计算机的汇编语言中的指令相似的助记符表达式。图3-3是图3-2对应的语句表。语句表比较适合熟悉PLC和程序设计的经验丰富的程序员使用。

4.功能块图

功能块图是一种类似于数字逻辑电路的编程语言。它用类似于与门、或门的方框来表示逻辑运算关系,方框的左侧为逻辑运算的输入变量,右侧为输出变量,输入、输出端的小圆圈表示“非”运算,方框被“导线”连接在一起,信号从左向右流动。图3-4中的控制逻辑与图3-2中的相同。

图3-2 梯形图

图3-3 语句表

图3-4 功能块图

5.结构文本

结构文本是为IEC 61131-3标准创建的一种高级编程语言。与梯形图相比,它能实现复杂的数学运算,编写的程序非常简洁和紧凑。

6.编程语言的相互转换和选用

在编程软件中,用户可以用“视图”菜单中的命令切换编程语言,选用梯形图、功能块图和语句表来编程。国内很少有人使用功能块图语言。

梯形图与继电器电路图的表达方式极为相似,梯形图中输入信号(触点)与输出信号(线圈)之间的逻辑关系一目了然,易于理解。语句表程序较难阅读,其中的逻辑关系很难一眼看出。在设计复杂的数字量控制程序时建议使用梯形图语言。

但是语句表程序的输入方便快捷,还可以为每一条语句加上注释,便于复杂程序的阅读。在设计通信、数学运算等高级应用程序时,建议使用语句表。

7.S7-200 SMART的程序结构

S7-200 SMART CPU的控制程序由主程序、子程序和中断程序组成。

(1)主程序

主程序(OB1)是程序的主体,每一个项目都必须有并且只能有一个主程序。主程序可以调用子程序,子程序又可以调用其他子程序。每个扫描周期都要执行一次主程序。

(2)子程序

子程序是可选的,仅在被其他程序调用时执行。同一个子程序可以在不同的地方被多次调用。使用子程序可以简化程序代码和减少扫描时间。

(3)中断程序

中断程序用来及时处理与用户程序的执行时序无关的操作,或者用来处理不能事先预测何时发生的中断事件。中断程序不是由用户程序调用,而是在中断事件发生时由操作系统调用。中断程序是用户编写的。

8.S7-200 SMART与S7-200的指令比较

两者的指令基本上相同。S7-200 SMART用GET/PUT指令取代了S7-200的网络读、写指令NETR/NETW。用获取非致命错误代码指令GET_ERROR取代了诊断LED指令DIAG_LED。S7-200 SMART还增加了“通信”文件夹、“PROFINET”文件夹和指令列表的“库”文件夹中用于以太网通信的指令。 Xo8D67MeIs/DjrYpHrH1zFOnDcurfcdAiwbWdXTiekBfmUOPGj3kbtrKuYrLmXC3

点击中间区域
呼出菜单
上一章
目录
下一章
×