5 S7-200 可编程控制器 编程

57
5 S7-200 可可可可可可 可可

description

5 S7-200 可编程控制器 编程. S7--200 周而复始地执行应用程序,控制一个任务或过程。利用 STEP 7--Micro/WIN 可以创建一个用户程序并将它下载到 S7--200 中。 STEP 7--Micro/WIN 软件中提供了多种工具和特性用于完成和调试应用程序。. 主要内容. 5 . 1 设计一个微型 PLC 系统的指导原则 5 . 2 程序的基本组件 5 . 3 用 STEP 7--Micro/WIN 创建用户程序 5 . 4 选择 SIMATIC 和 IEC 1131--3 指令集 5 . 5 理解程序编辑器中使用的惯例 - PowerPoint PPT Presentation

Transcript of 5 S7-200 可编程控制器 编程

Page 1: 5 S7-200 可编程控制器 编程

5 S7-200可编程控制器编程

Page 2: 5 S7-200 可编程控制器 编程

S7--200 周而复始地执行应用程序,控制一个任务或过程。利用 STEP 7--Micro/WIN 可以创建一个用户程序并将它下载到 S7--200 中。 STEP 7--Micro/WIN 软件中提供了多种工具和特性用于完成和调试应用程序。

Page 3: 5 S7-200 可编程控制器 编程

主要内容5.1 设计一个微型 PLC 系统的指导原则 5.2 程序的基本组件5.3 用 STEP 7--Micro/WIN 创建用户程序5.4 选择 SIMATIC 和 IEC 1131--3 指令集 5.5 理解程序编辑器中使用的惯例 5.6 使用向导帮您创建控制程序 5.7 S7--200 中的出错处理 5.8 在数据块中指定地址和初始值5.9 用符号表来定义变量的符号地址5.10 使用局部变量 5.11 用状态图来监视用户程序 5.12 创建一个指令库5.13 应用程序的调试

Page 4: 5 S7-200 可编程控制器 编程

5.1 设计一个微型 PLC 系统的指导原则 1 分解控制过程或者机器2 创建功能说明3 安全电路的设计4 指定操作员站5 创建配置图6 建立符号名表(可选)

Page 5: 5 S7-200 可编程控制器 编程

1 分解控制过程或者机器将控制过程或者机器分解成相互独立的部

分。分解决定了控制器之间的界限,并将影响功能描述和资源的分配。

Page 6: 5 S7-200 可编程控制器 编程

2 创建功能说明写出过程或者机器每一部分的操作描述。

它包括以下内容: I/O 点、操作的功能描述、每个执行机构(例如线圈、电机和驱动器等)在动作之前需要满足的状态、操作员接口的描述以及过程或机器与其他部分的接口。

Page 7: 5 S7-200 可编程控制器 编程

3 安全电路的设计识别要求设计硬件安全线路的设备。控制

设备在不安全的条件下出现故障,会造成不可预料的启动或者机器操作的变化。在不可预料或者不正确的机器操作会造成人身伤害或严重的财产损失的场合,应该考虑采用独立于 S7--200 的机电超驰控制来防止不安全的操作。在设计安全电路时,应考虑以下几点:

Page 8: 5 S7-200 可编程控制器 编程

识别有可能不合适或者不可预料操作有可能会造成危害的执行机构。

识别确保操作不发生危害的条件,并决定如何独立于 CPU 来检测这些条件。

识别上电或断电时, CPU 和 I/O 对过程有何影响,识别错误何时被检测出来。这个信息只能用于常规的和可以预料的异常操作,不能用于保障安全的目的。

设计独立于 CPU 的手动或机电超驰控制来阻止危险的操作。

向 CPU 提供独立电路的状态信息,便于程序和操作员界面得到需要的信息。

识别其它与过程安全操作相关的安全要求。

Page 9: 5 S7-200 可编程控制器 编程

4 指定操作员站根据功能描述的要求建立操作员站的配置

图。包括如下内容:与过程或者机器有关的每个操作员站的位置总

图。操作员站与 CPU 或扩展模块有关的电气图

Page 10: 5 S7-200 可编程控制器 编程

5 创建配置图根据功能描述的要求建立控制设备的配置

图。包括如下内容: 和过程或者机器有关的每个 CPU 的位置图。 CPU 和扩展 I/O 模块的机械布局图(包括控

制柜和其它设备)。 每个 CPU 和扩展模块的电气图(包括设备型

号、通讯地址和 I/O 地址)。

Page 11: 5 S7-200 可编程控制器 编程

6 建立符号名表(可选)如果选择了符号名寻址,需要对绝对地址

建立一个符号名表。符号名表不仅包括物理输入/输出信号,还包括程序中用到的其它元件。

Page 12: 5 S7-200 可编程控制器 编程

5.2 程序的基本组件一个程序块由

可执行代码和注释组成。可执行代码由

主程序和若干子程序或者中断服务程序组成。可执行代码被编译并下载到 S7--200 中,

而程序注释不会被下载。您可以使用组织组件(主程序、子程序和中断服务程序)来结构化您的控制程序。

以下例子程序包括一个子程序和一个中断服务程序。该例子程序使用一个定时中断,每 100 ms读一次模拟量的输入值。

Page 13: 5 S7-200 可编程控制器 编程
Page 14: 5 S7-200 可编程控制器 编程

⑴主程序主程序中包括控制应用的指令。 S7--200 在每

一个扫描周期中顺序执行这些指令。主程序也被表示为 OB1 。

⑵子程序子程序是应用程序中的可选组件。只有被主程

序、中断服务程序或者其它子程序调用时,子程序才会执行。当希望重复执行某项功能时,子程序是非常有用的。与其在主程序中的不同位置多次使用相同的程序代码,不如将这段程序逻辑写在子程序中,然后在主程序中需要的地方调用。

Page 15: 5 S7-200 可编程控制器 编程

⑶中断服务程序中断服务程序是应用程序中的可选组件。当特

定的中断事件发生时,中断服务程序执行。可以为一个预先定义好的中断事件设计一个中断服务程序。当特定的事件发生时, S7--200 会执行中断服务程序。

中断服务程序不会被主程序调用。只有当中断服务程序与一个中断事件相关联,且在该中断事件发生时, S7--200才会执行中断服务程序。

Page 16: 5 S7-200 可编程控制器 编程

⑷程序中的其它组件其它块中也包含了 S7--200 的信息。当下

载程序时,可以选择同时下载这些块。系统块

系统块允许您为 S7--200 配置不同的硬件参数。数据块

数据块存储应用程序中所使用的不同变量值( V存储器)。可以用数据块输入数据的初始值。

Page 17: 5 S7-200 可编程控制器 编程

5.3 用 STEP 7--Micro/WIN 创建用户程序要打开 STEP 7--Micro/WIN ,可以双击 S

TEP 7--Micro/WIN 图标,也可以在命令菜单中选择开始 >SIMATIC > STEP 7 MicroWIN 32 V4.0 。如图 5-1所示, STEP 7--Micro/WIN项目窗口为创建控制程序提供了一个便利的工作环境。

工具栏提供有常用的菜单命令的快捷按钮。可以显示或者隐藏任意工具栏。

Page 18: 5 S7-200 可编程控制器 编程
Page 19: 5 S7-200 可编程控制器 编程

操作栏为访问 STEP 7--Micro/WIN 中不同的程序组件提供了一组图标。

指令树显示了所有的项目对象和创建控制程序所需要的指令。可以将指令从指令树中拖到应用程序中,也可用双击指令的方法将该指令插入到程序编辑器中的当前光标所在地。

Page 20: 5 S7-200 可编程控制器 编程

程序编辑器中包括程序逻辑和局部变量表。可以在局部变量表中为临时的局部变量定义符号名。在程序编辑器的底部有子程序和中断服务程序的标签。点击这些标签,可以在主程序、子程序和中断服务程序之间切换。

Page 21: 5 S7-200 可编程控制器 编程

STEP 7--Micro/WIN 提供三种编辑器来创建用户程序:梯形图( LAD )、语句表( STL )和功能块图( FBD )。尽管有一定限制,但是用任何一种程序编辑器编写的程序都可以用另外一种程序编辑器来浏览和编辑。

Page 22: 5 S7-200 可编程控制器 编程

STL 编辑器的特点STL 编辑器按照文本语言的形式显示程序。 S

TL 编辑器允许输入指令助记符来创建控制程序。语句表也允许创建用 LAD 和 FBD 编辑器无法创建的程序。这是因为在使用 S7--200 的本族语言进行编程,而在图形编辑器中,为了正确地画出图形,必须遵守一些规则。如图 5-2所示,文本方式与汇编语言的编程方式十分相象。

Page 23: 5 S7-200 可编程控制器 编程
Page 24: 5 S7-200 可编程控制器 编程

S7--200从上到下按照程序的次序执行每一条指令,然后回到程序的开始重新执行。STL 使用一个逻辑堆栈来分析控制逻辑。插入 STL 指令来处理堆栈操作。

Page 25: 5 S7-200 可编程控制器 编程

LAD 编辑器的特点LAD 编辑器以图形方式显示程序,与电气接线

图类似。梯形图程序允许程序仿真来自电源的电流通过一系列的逻辑输入条件,决定是否使能逻辑输出。一个 LAD 程序包括左侧提供能流的能量线。闭合的触点允许能量通过它们流到下一个元素,而打开的触点阻止能量的流动。

Page 26: 5 S7-200 可编程控制器 编程

逻辑控制是分段的,程序在同一时间执行一段,从左到右,从上到下。图 5-3给出了LAD 程序的一个例子。不同的指令用不同的图形符号表示。它包括三种基本形式。触点代表逻辑输入条件,例如;开关、按钮或

者内部条件等。线圈通常表示逻辑输出结果,例如:灯负载、

电机启动器、中间继电器或者内部输出条件。盒表示其它一些指令,例如:定时器、计数器

或者数学运算指令。

Page 27: 5 S7-200 可编程控制器 编程
Page 28: 5 S7-200 可编程控制器 编程

FBD 编辑器的特点FBD 编辑器以图形方式显示程序,由通用逻辑门图形组成。在 LAD 编辑器中看不到触点和线圈,但是有等价的、以盒指令形式出现的指令。

图 5-4 中给出了 FBD 程序的一个例子。FBD 不使用左右能量线,因此“能流”这个术语用于表示通过 FBD逻辑块控制流这样一个类似的概念。

Page 29: 5 S7-200 可编程控制器 编程
Page 30: 5 S7-200 可编程控制器 编程

逻辑“ 1” 通过 FBD元素称为能流。能流的原始输入和最终的输出可以直接分配给操作数。

程序逻辑由这些盒指令之间的连接决定。也就是说,一条指令(例如 AND盒)的输出可以用来允许另一条指令(例如定时器),这样可以建立所需要的控制逻辑。这样的连接概念使我们可以解决各种各样的逻辑问题。

Page 31: 5 S7-200 可编程控制器 编程

5.4 选择 SIMATIC 和 IEC 1131--3 指令集

大部分 PLC 产品提供相似的基本指令,但是不同厂商的 PLC 产品在它们的表示和操作上常常有小的差别。近年来,国际电工委员会( IEC )推出了一个有关 PLC 编程各个方面的一个全球标准。这个标准鼓励不同的 PLC厂商向用户提供与 IEC 指令集的表示和操作一致的指令。

S7--200 提供两种指令集用于完成各种自动化任务。 IEC 指令集符合 PLC 编程的 IEC 1131--3标准,而 SIMATIC 指令集是专门为 S7--200 设计的。

Page 32: 5 S7-200 可编程控制器 编程

5.5 理解程序编辑器中使用的惯例 STEP 7--Micro/WIN 在所有程序编辑器中

使用以下惯例: 在符号名前加 # ( #Var1 )表示该符号为局

部变量。 在 IEC 指令中 % 表示直接地址。 操作数符号“ ?.?” 或“ ????” 表示需要一个

操作数组态。

Page 33: 5 S7-200 可编程控制器 编程

LAD 程序被分为程序段。一个程序段是按照顺序安排的以一个完整电路的形式连接在一起的触点、线圈和盒,不能短路或者开路,也不能有能流倒流的现象存在。 STEP 7--Micro/WIN允许您为 LAD 程序中的每一个程序段加注释。FBD 编程使用程序段的概念对程序进行分段和注释。

STL 程序不用分段,但是您可以用关键词 NETWORK 将程序分段。

Page 34: 5 S7-200 可编程控制器 编程

LAD 编辑器中使用的惯例在 LAD 编辑器中,您可以使用 F4 、 F6 和 F9

来快速输入触点、盒和线圈指令。 LAD 编辑器使用下列惯例:符号“ ------>>” 表示开路或者需要能流连接。 符号“ ”表示指令输出能流,可以级连或串联。 符号“ >>” 表示您可以使用能流。

FBD 编辑器中使用的惯例(省略)

Page 35: 5 S7-200 可编程控制器 编程

S7--200 编程的通用惯例EN/ENO 的定义

EN (使能输入)是 LAD 和 FBD 中盒的布尔输入。要使盒指令执行,必须使能流到达这个输入。在 STL 中,指令没有 EN输入,但是要想使 STL 指令执行,堆栈顶部的逻辑值必须是“ 1” 。

ENO (使能输出)是 LAD 和 FBD 中盒的布尔输出。如果盒的 EN输入有能流并且指令正确执行,则 ENO输出会将能流传递给下一元素。如果指令的执行出错,则能流在出错的盒指令处被中断。

在 STL 中没有使能输出,但是 STL 指令象相关的有 ENO输出的 LAD 和 FBD 指令一样,置位一个特殊的 ENO 位。这个位可以用 AND ENO ( AENO )指令访问,并且可以产生与盒的 ENO 位相同的作用。

Page 36: 5 S7-200 可编程控制器 编程

5.6 使用向导创建控制程序STEP 7--Micro/WIN 提供向导编程变得更自动更容易。在第 6章中,具有相关向导的指令会有以下指令向导图标:

Page 37: 5 S7-200 可编程控制器 编程

5.7 S7--200 中的出错处理 S7--200 将错误分为致命错误和非致命错误。可

以通过选择 PLC > Information菜单命令,来查看因错误而产生的错误代码。

图 5-6给出了 PLC 信息对话框,其中包括错误代码和错误描述。

Last Fatal 区显示 S7--200 发生的前一致命错误代码。如果 RAM区是掉电保持的,这个数据也会保持。当 S7--200 全清或者 RAM区掉电保持失败时,该区也被清除。

Total Fatal区是前一次 CPU清除所有存储区后产生致命错误的次数。如果 RAM区是掉电保持的,这个次数也会保持。当 S7--200 全清或者 RAM区掉电保持失败时,该区也被清除。

Page 38: 5 S7-200 可编程控制器 编程

关于错误代码参照 SIEMENS公司的手册说明。

Page 39: 5 S7-200 可编程控制器 编程
Page 40: 5 S7-200 可编程控制器 编程

5.8 在数据块中指定地址和初始值数据块编辑器只用于为 V存储器(变量存储器)指定初始值。可以以字节、字或者双字的形式来分配 V存储器,注释是可选的。

数据块编辑器是一个自由格式的文本编辑器,也就是说,没有特定的区域被定义用于特定类型的信息。当完成一行的输入并按回车键确认后,数据块编辑器将该行格式化(将地址、数据和注释分别列对齐, V存储器地址大写)并重新显示。按下 CTRL--ENTER ,设置行完成后,地址将自动增加到下一个可用的地址处。

Page 41: 5 S7-200 可编程控制器 编程
Page 42: 5 S7-200 可编程控制器 编程

数据块编辑器根据所定义变量的地址和长度(字节、字或者双字)为 V存储器分配空间。

数据块的第一行必须有一个明确的地址分配。接下来的行中可以是明确的地址,也可以使用隐含地址。隐含地址是由编辑器分配的。当在一个地址后面输入多个数据或者在一行中只输入数据时使用的是隐含地址。

数据块编辑器接受大小写字母,并且用逗号、制表符或者空格作为地址与数据之间的分隔符。

Page 43: 5 S7-200 可编程控制器 编程

5.9 用符号表来定义变量的符号地址符号表允许定义和编辑符号名,使得能在

程序中用符号地址访问变量。可以创建多个符号表。也可以在程序中使用系统定义的符号表。符号表还可以作为全局变量表进行参考。

可以使用绝对地址或者符号地址来输入指令操作数。绝对地址用存储区加上位或字节地址来标识地址。符号地址则用一串字母组合来标识地址。

Page 44: 5 S7-200 可编程控制器 编程
Page 45: 5 S7-200 可编程控制器 编程

在 SIMATIC 程序中,可以使用符号表中定义的全局符号。在 IEC 程序中,可以使用全局变量表中定义的全局符号。

为地址定义符号按如下步骤:1. 在操作栏中单击符号表图标打开符号表。2. 在 Symbol Name列中输入一个符号名(例如: In

put1 ),符号名的最大长度为 23 个字符。3. 在 Address列中输入地址(例如: I0.0 )。4. 对于 IEC 的全局变量表,在数据类型列中输入一个

值或者从列表中选择一个。可以创建多个符号表,但无论是在同一个符号表中还是在不同的符号表中,都不能多次使用同一个字符串作为全局符号。

Page 46: 5 S7-200 可编程控制器 编程

5.10 使用局部变量 可以使用程序编辑器中的局部变量表来为子程序和中断服务程序分别指定变量,如图 5--9所示。

局部变量可用于子程序传递参数,它增强了子程序的可移植性和再利用性。

Page 47: 5 S7-200 可编程控制器 编程
Page 48: 5 S7-200 可编程控制器 编程

5.11 用状态图监视用户程序状态图允许在控制程序运行的过程中对过

程变量的值进行监视和修改。可以跟踪程序的输入、输出或者变量,显示它们的当前值。状态表还允许强制或改变过程变量的值。

为了监控应用程序中不同部分的元素,可以创建多个状态图。

在命令菜单中选择 View > Component > Status Chart 或者在操作过程中单击 Status Chart 图标来访问状态图。

Page 49: 5 S7-200 可编程控制器 编程

当创建状态图时,应该输入要监控的过程变量的地址。无法监视常数、累加器和局部变量的状态。可以按位或者字两种形式来显示定时器和计数器的值。以位形式显示的是定时器和计数器的状态位,而以字形式则显示定时器和计数器的当前值。

Page 50: 5 S7-200 可编程控制器 编程
Page 51: 5 S7-200 可编程控制器 编程

建立一个状态图来监视变量,按以下步骤:1. 在地址区输入需要的地址。2. 在格式列中选择数据类型。3. 在命令菜单中选择 Debug > Chart Status

来监视 S7--200 中过程变量的状态。4. 要连续采样数值或者单次读取状态,可以点击工具栏中相应的按钮。状态图也允许强制或者修改过程变量的值。

在命令菜单中选择 Edit > Insert > Row 可以在状态图中插入一行。

Page 52: 5 S7-200 可编程控制器 编程

5.12 创建一个指令库STEP 7--Micro/WIN允许创建自己的指令

库,也允许使用其它人已建好的库。参见图 5-11

为了创建指令库,必须创建标准的 STEP 7--Micro/WIN子程序和中断服务程序并把它们组合起来。可以在这些程序中隐藏代码来防止意外的改变或者防止机密技术( know--how )泄露。

Page 53: 5 S7-200 可编程控制器 编程
Page 54: 5 S7-200 可编程控制器 编程

要创建一个指令库,需要完成以下任务:1. 创建一个标准的 STEP 7--Micro/WIN项目,并且把

指令库中包括的功能写入一个子程序或者中断服务程序中。

2. 确保在子程序或中断服务程序中使用的 V存储器都定义了符号名。使用连续的 V存储区来最小化其要求的数量。

3. 将子程序或者中断服务程序更名为希望在指令库中显示的名称。

4. 在命令菜单中选择 File > Create Library 来编译新的指令库。

在 STEP 7--Micro/WIN 的在线帮助中,可以得到有关指令库的更多信息。

Page 55: 5 S7-200 可编程控制器 编程

用下列步骤访问指令库中的指令:1. 在命令菜单中选择 File > Add Libraries 在

指令树中增加一个库。2. 选择特定的指令插入程序。(就象使用任何标准指令一样。)

如果库程序要求 V存储器, STEP 7--Micro/WIN 会提示分配一个存储器块。用库存储器对话框来分配存储器块。

Page 56: 5 S7-200 可编程控制器 编程

5.13 应用程序的调试STEP 7--Micro/WIN 具备以下特点有助于

调试应用程序:书签允许在很长的程序中方便地来回移动。交叉参考表允许检查程序的使用参考信息。RUN 模式下编辑允许在小规模修改程序的过

程中,对过程控制产生最小的影响。当在 RUN模式下编辑程序时,同样可以下载程序块。

Page 57: 5 S7-200 可编程控制器 编程

谢谢,欢迎批评指正!