首页 百科知识 的编程语言及程序结构

的编程语言及程序结构

时间:2022-10-26 百科知识 版权反馈
【摘要】:不同的PLC生产厂家提供的编程语言和指令系统的功能及表达方式存在或多或少的差异,这种差异限制了PLC的开放性、可复用性和互换性。在S7-200PLC中,对某些指令提供了相应IEC 61131—3的指令。由于IEC 61131—3指令集的指令较少,以及西门子公司提供的编程环境和IEC 61131—3在资源配置、任务组态等方面差距较大,所以使用S7-200PLC时,一般采用SIMATIC指令集进行编程。

4.1 PLC的编程语言及程序结构

4.1.1 PLC的编程语言

与计算机相比,PLC的软件是封闭的而不是开放的。不同的PLC生产厂家提供的编程语言和指令系统的功能及表达方式存在或多或少的差异,这种差异限制了PLC的开放性、可复用性和互换性。S7-200系列的PLC中有两类指令集:IEC 61131—3指令集和SIMATIC指令集。

IEC 61131—3指令集是国际电工委员会(IEC)1994年制定的PLC国际标准IEC 61131中推荐的标准编程语言,可以使用梯形图和功能块图两种编程语言,通常指令执行时间较长。

SIMATIC指令集是西门子公司为S7-200PLC设计的编程语言,可以使用梯形图、功能块图和语句表三种编程语言,通常指令执行时间短。

在S7-200PLC中,对某些指令提供了相应IEC 61131—3的指令。由于IEC 61131—3指令集的指令较少,以及西门子公司提供的编程环境和IEC 61131—3在资源配置、任务组态等方面差距较大,所以使用S7-200PLC时,一般采用SIMATIC指令集进行编程。因此,本书主要介绍SIMATIC指令集中的指令及使用方法。

编程语言是PLC的重要组成部分,S7-200PLC指令系统提供的编程语言有梯形图(ladder diagram,LAD)、语句表(statement list,STL)和功能块图(function block diagram,FBD),此外,还提供顺序功能图(sequential function chart,SFC)编程功能。

1.梯形图

梯形图是使用最多的PLC图形编程语言。不论从PLC的产生原因(主要替代继电器控制系统)还是从广大电气工程技术人员的使用习惯来讲,梯形图直观易懂,特别适用于电气顺序逻辑系统。有时也把梯形图称为电路或程序。本书以梯形图为主,结合语句表讲解PLC的编程。

2.语句表

语句表也称指令表,是一种与计算机的汇编语言相似的助记符表达式。语句表不够直观,但输入方便快捷,比较适合熟悉PLC程序设计的编程人员使用。作为一种基本训练,本书配合梯形图来讲解语句表编程语言。

图4-1所示的是一个简单的PLC程序,其中图4-1(a)所示的是梯形图程序,图4-1 (b)所示的是相应的语句表。

img101

图4-1 梯形图和语句表编程语言比较

3.功能块图

功能块图是一种类似于数字逻辑电路的编程语言,有数字电路基础的人很容易掌握。它没有梯形图编程器中的触点和线圈,而是用类似与门、或门的方框或指令盒来表示逻辑关系,程序逻辑由这些指令盒之间的连接决定的。指令盒的左边为逻辑变量的输入变量,右边为输出变量,输入、输出端的小圆圈表示“非”运算。指令盒由“导线”连接在一起,信号从左向右流动。功能块图编程语言有利于程序流的跟踪,但在我国的电气工程师较少有人使用,因此,本书将不做进一步的介绍。

图4-2所示的为功能块图的一个简单例子,梯形图中的逻辑与功能块图中的相同。

img102

图4-2 梯形图和功能块图编程语言比较

4.顺序功能图

顺序功能图是一种典型的编程语言,也是未来使用最多的编程语言之一,它在复杂逻辑顺序任务的程序设计中得到了广泛应用。在S7-200PLC中,顺序功能图并不是一种编程语言,而只是提供了几条指令,使用这些指令可以完成一般程序的设计。因为顺序功能图的重要性,本书将在第5章中专门介绍它的使用。

5.编程语言的相互转换

在S7-200PLC的编程软件STEP 7-Mirco/WIN中,用户可使用梯形图、语句表或功能块图来进行编程,编程软件可以自动将三种编程语言进行转换。

一般初学者在设计复杂开关量控制程序时,建议使用梯形图编程语言。对于有经验的编程人员,在设计中断、通信和数学运算等高级应用程序时,建议使用语句表。目前较少有人使用功能块图语言。

在梯形图中,一个网络只能有一块独立电路。在语句表中,几块独立电路对应的语句可以放在一个网络中,不过,这样的网络不能转换为梯形图,但梯形图程序一定能转换为语句表。这在第5章和第7章将有详细介绍。

4.1.2 S7-200 PLC的程序结构

S7-200PLC的程序由三部分构成:用户程序、数据块和参数块。

1.用户程序

用户程序在存储器空间中也称为组织块(organization block,OB),它处于最高层次,可以管理其他块,可以使用各种语言(如梯形图、语句表或功能块图等)编写用户程序。

用户程序由主程序、子程序和中断程序组成。程序结构如图4-3所示。

1)主程序

主程序是程序的主体,每一个项目都必须并且只能有一个主程序。在主程序中,可以调用子程序。

主程序通过指令编程控制整个应用程序的执行,每个扫描周期都要执行一次主程序。

img103

图4-3 程序结构图

2)子程序

子程序的有无和多少是可选的,它的使用要根据具体情况来决定。如在重复执行某项功能的时候,使用子程序可以简化程序代码和减少扫描周期,但它仅在被其他程序调用时执行。

3)中断程序

中断程序的有无和多少也是可选的,它用来及时处理与用户程序的执行时序无关的操作,或事先无法预测的中断事件。

在STEP7-Micro/WIN编程软件的程序编辑器窗口下部有主程序(OB1)、子程序(SRB_0)和中断程序(INT_0)的标签,用来选择不同的程序。因为各个程序都存放在独立的程序块中,因此各程序结束时,不需要加入无条件结束指令或无条件返回指令。

2.数据块

数据块为可选部分,它主要用于存放控制程序运行所需的数据。数据块不一定在每个控制系统的程序设计中都使用,但使用数据块可以完成一些有特定数据处理功能的程序设计,比如,为变量存储器V指定初始值。

3.参数块

参数块也为可选部分,用于存放CPU组态数据。如果在编程软件或其他编程工具上未进行CPU的组态,则系统以默认值进行自动配置。在有特殊需要时,用户可以对系统的参数块进行设定,比如,有特殊要求的输入、输出设定和掉电保持设定等,但大部分情况下使用默认值。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈