PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf ·...

384
计算机接口技术系列 P L C 可编程控制器系统开发实例导航 汪晓平 编著 人民邮电出版社

Transcript of PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf ·...

Page 1: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

计算机接口技术系列

PL C 可编程控制器系统开发实例导航

汪晓平 编著

人民邮电出版社

Page 2: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

内容提要

本书先向读者介绍了 PLC 的基础知识,包括 PLC 的产生、发展,常用 PLC 介绍及 PLC

通信的一些必备知识。然后介绍了 PLC 在工业控制领域中的一些应用,包括定位自动控制系

统、啤酒发酵自动控制系统、织机自动控制系统、锅炉燃烧自动控制系统、水处理控制系统、

小功率金卤石英吹泡机控制系统、曳引式电梯单控系统等。

本书思路清晰、内容详实、通过本书的学习,可以让读者了解开发 PLC 系统的全过程,

包括总体设计、PLC 的选型及配置和程序设计等。

本书可作为 PLC 初学者的学习资料,也可作为 PLC 应用工程人员的参考手册。

计算机接口技术系列

PLC 可编程控制器系统开发实例导航

◆ 编 著 汪晓平

责任编辑 张立科

◆ 人民邮电出版社出版发行 北京市崇文区夕照寺街 14 号

邮编 100061 电子函件 [email protected]

网址 http://www.ptpress.com.cn

读者热线 010-67194092

北京汉魂图文设计有限公司制作

北京顺义振华印刷厂印刷

新华书店总店北京发行所经销

◆ 开本:787×1092 1/16

印张:24.25

字数:588 千字 2004 年 7 月第 1 版

印数:1— 000 册 2004 年 7 月北京第 1 次印刷

ISBN 7-115-12378-0/TP·4046

定价:39.00 元

本书如有印装质量问题,请与本社联系� 电话:(���)��������

Page 3: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

前前 言言

PLC 的英文全称是 Programmable Logic Controller,中文全称为可编程逻辑控制器,它是

一种数字运算操作的电子系统,专为工业环境的应用而设计。它采用一类可编程的存储器,

用于其内部存储程序,执行逻辑运算、顺序控制、定时、计数与算术操作等面向用户的指令,

并通过数字或模拟式输入/输出控制各种类型的机械或生产过程。

PLC 是微电子技术与自动控制技术相结合的产物,它的应用非常广泛,能方便地直接用

于机械制造、冶金、化工、电力、交通、采矿、建材、轻工、环保、食品等各行各业。既可

用于老设备的技术改造,也可用于新产品的开发和机电一体化。近年来,可编程序控制器的

发展非常快,不仅应用普及非常快,而且新产品的开发速度也是非常快的。

但是,对可编程序控制器技术的教育还是很落后的,许多相关专业的高校毕业生对此知

之甚少,许多人到了工作岗位后不得不进一步补充这方面的知识。同时,不少现场工程技术

人员对可编程序控制器的知识也相当缺乏,所有这些都给现场维护和技术革新带来困难。

本书从推广、应用的角度出发,尽可能深入浅出地讲述 PLC 应用的一些基本知识,力求

为广大初学者使用 PLC 提供有效的帮助,争取在 PLC 推广应用中起到积极的作用。

本书共分 11 章。分为 2 个部分,第 1 部分是第 1 章~第 3 章,主要介绍 PLC 的基本知

识。第 2 部分从第 4 章~第 11 章,主要以实例的形式介绍工业现场的应用,在介绍实例的过

程中还详细地介绍了与实例相关的设备的工作原理。关于本书的代码,读者可登录

http://www.ucbook.com/plc.rar 下载。

PLC 应用的领域很广泛,现场条件千差万别,控制方案多种多样,只有掌握好基本知识,

配合丰富现场经验才能真正将 PLC 用熟用透,做出高质量的工程。

由于时间仓促,加之水平有限,书中的缺点和不足之处在所难免,敬请读者批评指正。

欢迎提出您宝贵的意见和建议。对于您遇到的任何问题,可以发送邮件到 [email protected]

[email protected] 咨询,我们将尽快予以解答。

编者

2004.6

Page 4: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

目目 录录

第 1 章 可编程控制器概述 ································································································· 1

1.1 PLC 的产生和发展 ······································································································ 1 1.1.1 PLC 的由来 ······································································································· 1 1.1.2 PLC 的发展 ······································································································· 2

1.2 PLC 的应用介绍 ·········································································································· 2 1.2.1 PLC 基本应用介绍···························································································· 2 1.2.2 PLC 的优点 ······································································································· 4

1.3 PLC 的组成及工作原理 ······························································································ 4 1.3.1 PLC 的组成 ······································································································· 4 1.3.2 PLC 的工作原理 ······························································································· 5

1.4 PLC 控制系统的一般设计步骤 ··················································································· 7 1.4.1 输入回路的设计································································································ 8 1.4.2 输出回路的设计································································································ 8 1.4.3 扩展模块的选用································································································ 9 1.4.4 PLC 的网络设计 ······························································································· 9 1.4.5 软件编制 ··········································································································· 9

第 2 章 常用 PLC 介绍 ······································································································ 10

2.1 西门子 S7-200 系列 PLC ··························································································· 10 2.1.1 PLC 系统结构 ································································································· 10 2.1.2 软件编程 ········································································································· 14 2.1.3 S7-200 指令介绍 ····························································································· 23

2.2 Omron C200H PLC ···································································································· 29 2.2.1 简介················································································································· 29 2.2.2 OMRON C200H PLC 指令系统 ······································································ 30

2.3 松下 PLC 介绍··········································································································· 48 2.3.1 功能简介 ········································································································· 48 2.3.2 CPU 单元指令系统 ························································································ 49

第 3 章 PLC 通信知识 ······································································································· 56

3.1 通信基本知识(硬件原理篇) ················································································· 56 3.2 通信基本知识(软件协议篇) ················································································· 68 3.3 几种常用的 PLC 的通信方式 ···················································································· 71

3.3.1 西门子 S7-200 系列 ························································································ 71

Page 5: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PP LLCC �������������������� ��

–2–

3.3.2 三菱 FX 系列 PLC··························································································· 76 3.3.3 松下 FP 系列 PLC ··························································································· 84

第 4 章 定位自动控制系统 ······························································································· 92

4.1 定位自控系统总体设计 ····························································································· 92 4.1.1 功能分析 ········································································································· 92 4.1.2 控制原理分析·································································································· 92

4.2 定位自控系统工艺流程 ····························································································· 94 4.3 定位自控系统 PLC 选型和资源配置········································································· 94

4.3.1 PLC 选型 ········································································································· 94 4.3.2 PLC 的 I/O 资源配置 ······················································································ 95 4.3.3 其他资源的配置······························································································ 96

4.4 控制系统 PLC 程序流程···························································································· 97 4.5 定位自控系统 PLC 程序说明 ···················································································· 97 4.6 设计小结·················································································································· 108

第 5 章 啤酒发酵自动控制系统 ···················································································· 109

5.1 啤酒发酵自控系统总体设计 ··················································································· 109 5.1.1 功能分析 ······································································································· 109 5.1.2 控制原理分析································································································ 110

5.2 啤酒发酵自控系统工艺流程 ··················································································· 110 5.3 啤酒发酵自控系统 PLC 选型和资源配置 ································································111

5.3.1 PLC 选型 ········································································································111 5.3.2 PLC 的 I/O 资源配置 ···················································································· 112 5.3.3 PLC 其他资源配置························································································ 112

5.4 自控系统 PLC 程序设计·························································································· 112 5.4.1 程序流程图设计···························································································· 112 5.4.2 PLC 功能模块程序设计 ················································································ 112

5.5 啤酒发酵自控系统 PLC 程序说明 ·········································································· 113 5.6 设计小结·················································································································· 126

第 6 章 纺织机自动控制系统························································································· 127

6.1 剑杆织机控制系统总体设计 ··················································································· 127 6.2 纺织机控制系统工艺流程 ······················································································· 127

6.2.1 纺织机分类 ··································································································· 127 6.2.2 纺织机工作原理分析 ···················································································· 129

6.3 纺织机自控系统 PLC 选型和资源配置··································································· 134 6.3.1 PLC 资源配置 ······························································································· 134 6.3.2 其他资源配置································································································ 135

6.4 控制系统 PLC 程序设计·························································································· 136

Page 6: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

�� ��

–3–

6.5 自控系统 PLC 程序说明·························································································· 137 6.5.1 初始化程序的说明 ························································································ 137 6.5.2 纬纱选色程序说明 ························································································ 143 6.5.3 剑杆织机的程式···························································································· 146 6.5.4 剑杆织机故障判断处理 ················································································ 149

6.6 设计小结·················································································································· 155

第 7 章 锅炉燃烧自动控制系统 ···················································································· 156

7.1 锅炉燃烧控制系统总体设计 ··················································································· 156 7.2 锅炉控制的基本理论······························································································· 156

7.2.1 锅炉燃烧基本控制系统 ················································································ 156 7.2.2 工业锅炉控制系统 ························································································ 159 7.2.3 循环流化床锅炉控制 ···················································································· 159 7.2.4 循环流化床的几种炉型 ················································································ 163 7.2.5 循环流化床锅炉原理简述············································································· 165

7.3 锅炉控制系统工艺流程 ··························································································· 167 7.4 锅炉燃烧自控系统 PLC 选型和资源配置 ······························································· 167 7.5 自控系统 PLC 程序设计·························································································· 168 7.6 小结 ························································································································· 215

第 8 章 水处理控制系统 ································································································· 216

8.1 水处理控制系统总体设计 ······················································································· 216 8.1.1 工业废水的特点···························································································· 216 8.1.2 污染水质的物质···························································································· 217

8.2 水的处理工艺 ·········································································································· 217 8.2.1 废水的一级处理···························································································· 219 8.2.2 废水的二级处理···························································································· 220 8.2.3 废水的三级处理(深度处理) ····································································· 223 8.2.4 废水的过滤 ··································································································· 224

8.3 程序流程简介 ·········································································································· 225 8.4 自控系统 PLC 选型和资源配置 ·············································································· 226 8.5 自控系统 PLC 程序设计·························································································· 230 8.6 设计小结·················································································································· 244

第 9 章 小功率金卤石英吹泡机控制系统··································································· 245

9.1 小功率金卤石英吹泡机控制系统总体设计 ···························································· 245 9.1.1 功能分析 ······································································································· 245 9.1.2 原理分析 ······································································································· 247

9.2 小功率金卤灯吹泡机控制系统的工艺流程及气路图 ············································· 247 9.2.1 工艺流程 ······································································································· 247

Page 7: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PP LLCC �������������������� ��

–4–

9.2.2 吹泡机的控制气路图 ···················································································· 248 9.3 吹泡机控制系统 PLC 选型和资源配置··································································· 249

9.3.1 模块构成图 ··································································································· 249 9.3.2 特殊模块功能概述 ························································································ 249 9.3.3 各个模块的具体功能及特性简介 ································································· 249

9.4 吹泡机控制系统程序设计与调试············································································ 252 9.4.1 所用编程语言 STEP-7 的特点 ······································································ 252 9.4.2 工艺功能表图································································································ 252 9.4.3 主程序流程图、规格选择及相关设置·························································· 255

9.5 吹泡机控制系统 PLC 程序······················································································ 259 9.5.1 程序的构成 ··································································································· 259 9.5.2 系统资源分配································································································ 259 9.5.3 主程序 ··········································································································· 263

9.6 设计小结·················································································································· 278

第 10 章 曳引式电梯单控系统 ······················································································ 279

10.1 电梯的相关知识 ···································································································· 279 10.1.1 曳引式电梯的基本结构 ·············································································· 279 10.1.2 依照操纵方式的电梯分类··········································································· 281 10.1.3 电梯的控制功能 ·························································································· 282

10.2 集选控制电梯的总体设计 ····················································································· 283 10.2.1 模型的总体介绍 ·························································································· 283 10.2.2 电梯曳引机部分 ·························································································· 285 10.2.3 限位器和传感器部分 ·················································································· 286 10.2.4 轿厢和开关门电动机部分··········································································· 287 10.2.5 变频器部分 ································································································· 287 10.2.6 控制器部分 ································································································· 289 10.2.7 其他组成部分······························································································ 290

10.3 集选电梯的工艺流程····························································································· 291 10.4 集选电梯的资源配置····························································································· 291 10.5 集选电梯 PLC 程序设计························································································ 293

10.5.1 所要实现的功能介绍 ·················································································· 293 10.5.2 功能实现流程······························································································ 293 10.5.3 编程思想 ····································································································· 295 10.5.4 编程牵涉的部分语句 ·················································································· 295

10.6 集选电梯 PLC 程序说明························································································ 299 10.6.1 电梯的启动复位 ·························································································· 299 10.6.2 电梯参数初始化程序 ·················································································· 301 10.6.3 用户输入程序部分 ······················································································ 303 10.6.4 系统状态确定程序 ······················································································ 304

Page 8: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

�� ��

–5–

10.6.5 电梯开关门子程序 ······················································································ 306 10.6.6 检测故障子程序 ·························································································· 308 10.6.7 检测按键程序段 ·························································································· 311 10.6.8 清除标记子程序 ·························································································· 312 10.6.9 电梯空闲状态处理程序 ·············································································· 314 10.6.10 确定上行最近目标层子程序 ····································································· 316 10.6.11 电梯上行主程序 ························································································ 319 10.6.12 确定下行最近目标层子程序 ····································································· 320 10.6.13 电梯下行主程序 ························································································ 322 10.6.14 顶楼底楼所有厢内按钮消除程序 ····························································· 323

10.7 设计小结················································································································ 324

第 11 章 PLC 与 DCS······································································································· 325

11.1 PLC 与 DCS 的比较······························································································· 325 11.1.1 小型控制系统······························································································ 325 11.1.2 小型控制系统结构 ······················································································ 326

11.2 小型控制器系统常用数据交换协议 ······································································ 327 11.2.1 多设备互联注意事项 ·················································································· 327 11.2.2 影响通信速率的因素 ·················································································· 328 11.2.3 智能设备互联的常用方法··········································································· 328 11.2.4 IFIX 采用 I/O 驱动集成 Modicon PLC························································ 334

11.3 DDE 动态数据交换技术 ························································································ 337 11.3.1 概述 ············································································································· 337 11.3.2 IFIX 中的 DDE 技术 ··················································································· 338 11.3.3 组态王支持的 DDE 连接············································································· 339

11.4 OPC 标准 ··············································································································· 351 11.4.1 OPC 介绍····································································································· 351 11.4.2 OPC 设备的使用 ························································································· 353

11.5 ODBC 数据库 ········································································································ 356 11.5.1 ODBC 的基本概念 ······················································································ 356 11.5.2 IFIX 和 Kingview 中的 ODBC 数据库 ························································ 356

11.6 应用实例 ················································································································ 365 11.6.1 IFX 与 ODBC 连接······················································································ 365 11.6.2 组态王与 ODBC 连接 ················································································· 367

11.7 小结························································································································ 376

Page 9: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第第 11 章章 可可编编程程控控制制器器概概述述

可编程控制器(Programmable Controller)是计算机家族中的一员,是为工业控制应用而

设计制造的。早期的可编程控制器称作可编程逻辑控制器(Programmable Logic Controller),

简称 PLC,它主要用来代替继电器实现逻辑控制。随着技术的发展,这种装置的功能已经大

大超过了逻辑控制的范围,因此,今天这种装置称作可编程控制器,简称 PC。但是为了避免

与个人计算机(Personal Computer)的简称混淆,所以将可编程控制器简称为 PLC。

国际电工委员会(IEC)对 PLC 的定义是这样的:

可编程控制器是一种数字运算操作的电子系统,专为在工业环境应用而设计。它采用一

类可编程的存储器,用于其内部存储程序、执行逻辑运算、顺序控制、定时、计数与算术操

作等面向用户的指令,并通过数字或模拟式输入/输出控制各种类型的机械或生产过程。可编

程控制器及其有关外部设备,都按易于与工业控制系统联成一个整体、易于扩充其功能的原

则设计。

1.1 PLC 的产生和发展

1.1.1 PLC 的由来

在 20 世纪 60 年代,汽车生产流水线的自动控制系统基本上都是由继电器控制装置构成

的。当时汽车的每一次改型都直接导致继电器控制装置的重新设计和安装。随着生产的发展,

汽车型号更新的周期愈来愈短,这样,继电器控制装置就需要经常地重新设计和安装,十分

费时、费工、费料,甚至阻碍了更新周期的缩短。为了改变这一现状,美国通用汽车公司在

1969 年公开招标,要求用新的控制装置取代继电器控制装置,并提出了 10 项招标指标,即:

(1)编程方便,现场可修改程序;

(2)维修方便,采用模块化结构;

(3)可靠性高于继电器控制装置;

(4)体积小于继电器控制装置;

(5)数据可直接送入管理计算机;

(6)成本可与继电器控制装置竞争;

(7)输入可以是交流 115V;

(8)输出为交流 115V,2A 以上,能直接驱动电磁阀、接触器等;

(9)在扩展时,原系统只要很小变更;

(10)用户程序存储器容量至少能扩展到 4KB。

1969 年,美国数字设备公司(DEC)研制出第一台 PLC,在美国通用汽车自动装配线上

试用,获得了成功。这种新型的工业控制装置以其简单易懂、操作方便、可靠性高、通用灵

Page 10: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–2–

活、体积小、使用寿命长等一系列优点,很快地在美国其他工业领域推广应用。到 1971 年,

已经成功地应用于食品、饮料、冶金、造纸等工业。

这一新型工业控制装置的出现,也受到了世界其他国家的高度重视。1971 日本从美国引

进了这项新技术,很快研制出了日本第一台 PLC。1973 年,西欧国家也研制出它们的第一台

PLC。我国从 1974 年开始研制,1977 年开始应用于工业。

1.1.2 PLC 的发展

早期的 PLC 一般称为可编程逻辑控制器。这时的 PLC 多少有点继电器控制装置的替代

物的含义,其主要功能只是执行原先由继电器完成的顺序控制、定时等。它在硬件上以准计

算机的形式出现,在 I/O 接口电路上作了改进以适应工业控制现场的要求。装置中的器件主

要采用分立元件和中小规模集成电路,存储器采用磁芯存储器。另外还采取了一些措施,以

提高其抗干扰的能力。在软件编程上,采用广大电气工程技术人员所熟悉的继电器控制线路

的方式�梯形图。因此,早期的 PLC 的性能要优于继电器控制装置,其优点是简单易懂、

便于安装、体积小、能耗低、有故障显示,能重复使用等。其中 PLC 特有的编程语言——梯

形图一直沿用至今。

20 世纪 70 年代,微处理器的出现使 PLC 发生了巨大的变化。美国、日本、德国等一些

厂家先后开始采用微处理器作为 PLC 的中央处理单元(CPU),这样使 PLC 的功能大大增强。

在软件方面,除了保持其原有的逻辑运算、计时、计数等功能以外,还增加了算术运算、数

据处理和传送、通信、自诊断等功能。在硬件方面,除了保持其原有的开关模块以外,还增

加了模拟量模块、远程 I/O 模块、各种特殊功能模块并扩大了存储器的容量,使各种逻辑线

圈的数量增加。除此以外,还提供了一定数量的数据寄存器。

进入 20 世纪 80 年代中、后期,由于超大规模集成电路技术的迅速发展,微处理器的市

场价格大幅度下跌,使得各种类型的 PLC 所采用的微处理器的档次普遍提高。而且,为了进

一步提高 PLC 的处理速度,各制造厂商还纷纷研制开发了专用逻辑处理芯片。这样使得 PLC

软、硬件功能发生了巨大变化。

1.2 PLC 的应用介绍

1.2.1 PLC 基本应用介绍

PLC 是应用面很广、发展非常迅速的工业自动化装置,在工厂自动化(FA)和计算机集

成制造系统(CIMS)内占重要地位。

PLC 系统一般由以下基本功能构成:

(1)多种控制功能;

(2)数据采集、存储与处理功能;

(3)通信联网功能;

(4)输入/输出接口调理功能;

(5)人机界面功能;

Page 11: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 1 章 可编程控制器概述

–3–

(6)编程、调试功能。

下面详细介绍这些功能。

1. 控制功能 逻辑控制:PLC 具有与、或、非、异或和触发器等逻辑运算功能,可以代替继电器进行

开关量控制。

定时控制:它为用户提供了若干个电子定时器,用户可自行设定为接通延时、关断延时

和定时脉冲等方式。

计数控制:用脉冲控制可以实现加、减计数模式,可以连接码盘进行位置检测。

顺序控制:在前道工序完成之后,就转入下一道工序,使一台 PLC 可作为多部步进控制

器使用。

2. 数据采集、存储与处理功能 基本算术:加、减、乘、除。

扩展算术:平方根、三角函数和浮点运算。

比较:大于、小于和等于。

数据处理:选择、组织、规格化、移动和先入先出。

模拟数据处理:PID、积分和滤波。

3. 通信、联网功能 现代 PLC 大多数都采用了通信、网络技术,有 RS-232 或 RS-485 接口,可进行远程 I/O

控制,多台 PLC 可彼此间联网、通信,外部器件与一台或多台可编程控制器的信号处理单

元之间,可以实现程序和数据交换,如程序转移、数据文档转移、监视和诊断。

通信接口或通信处理器按标准的硬件接口或专有的通信协议完成程序和数据的转移。如

西门子 S7-200 的 Profibus 现场总线接口,其通信速率可以达到 12Mbit/s。

在系统构成时,可由一台计算机与多台 PLC 构成“集中管理、分散控制”的分布式控制

网络,以便完成较大规模的复杂控制。通常所说的 SCADA 系统的现场端和远程端也可以采

用 PLC 作现场机。

4. 输入/输出接口调理功能 具有 A/D、D/A 转换功能,通过 I/O 模块完成对模拟量的控制和调节。位数和精度可以

根据用户要求选择。

具有温度测量接口,直接连接各种电阻或电偶。

5. 人机界面功能 人机界面能够提供给操作者一些工业系统运行过程中的重要信息。允许操作者和 PC 系

统与其应用程序相互作用,以便作决策和调整。

目前,实现人机界面功能的手段主要有:操作界面的文字显示;单机的 CRT 显示与键盘

操作;使用通信处理器、专用处理器、个人计算机、工业计算机的集中操作与监视系统。

6. 编程、调试等 使用复杂程度不同的手持、便携和桌面式编程器、工作站和操作屏,进行编程、调试、

监视、试验和记录,并通过打印机打印出程序文件。

Page 12: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–4–

1.2.2 PLC 的优点

(1)灵活性:不同类型的硬件设备采用相同的可编程序控制器,编写不同应用软件就

可以了,并且可以用一台可编程序控制器控制几台操作方式完全不同的设备。

(2)便于改进和修正:可编程序控制器为改进和修订原设计提供了极其方便的手段,

以前也许要花费几周的时间才能完成的工作使用可编程序控制器只用几分钟就行了。

(3)节点利用率高:在可编程序控制器中,一个输入中的开关量或程序中的一个“线

圈”可提供用户所需用的任意的连锁节点,即节点在程序中可不受限制地使用。

(4)成本低:可编程序控制器提供的继电器节点、计时器、计数器、顺控器的数量比

采用继电器、计时器、计数器、顺控器等实际元器件要便宜得多。

(5)模拟调试:可编程序控制器能对所控功能在实验室内进行模拟调试.缩短现场的

调试,而古典电气线路是无法在实验室进行调试的,只能花费现场大量时间。

(6)能对现场进行微观监视:在可编程序控制器系统中,操作人员能通过显示器观测

到所控每一个节点的运行情况,随时监视事故发生点。

(7)快速动作:传统继电器节点的响应时间一般要几百毫秒,而可编程序控制器里的

节点反应很快,内部是微秒级的,外部是毫秒级的。

(8)可靠性:可编程序控制器由集成电路元件构成,因此可靠性大大高于机械和电器

继电器。

(9)系统购置的简便化:可编程序控制器是一个完整的系统,购置了一台可编程序控

制器,就相当于购买了系统所需要的所有继电器、计数器、计时器等器件。

(10)图纸简化:传统控制电路要靠画蓝图,而蓝图是不能随设计的不同阶段不断更新

的,采用可编程序控制器很容易做到随时打印出更新后的电路图。

(11)易于系统的变化:可编程序控制器可以重新编程序,所以能满足所控生产流程频

繁变化的要求。

1.3 PLC 的组成及工作原理

1.3.1 PLC 的组成

PLC 实质是一种专用于工业控制的计算机,如图 1-1 所示。 ��������������� ���������������������������

图 1-1 PLC 硬件结构组成框图

Page 13: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 1 章 可编程控制器概述

–5–

(1)中央处理单元(CPU)

中央处理单元(CPU)是 PLC 的控制中枢。它按照 PLC 系统程序赋予的功能接收并存

储从编程器键入的用户程序和数据;检查电源、存储器、I/O 以及警戒定时器的状态,并能

诊断用户程序中的语法错误。当 PLC 投入运行时,首先它以扫描的方式接收现场各输入装置

的状态和数据,并分别存入 I/O 映像区,然后从用户程序存储器中逐条读取用户程序,经过

命令解释后按指令的规定将逻辑或算数运算的结果送入 I/O 映像区或数据寄存器内。等所有

的用户程序执行完毕之后,最后将 I/O 映像区的各输出状态或输出寄存器内的数据传送到相

应的输出装置,如此循环运行,直到停止运行。

为了进一步提高 PLC 的可靠性,近年来对大型 PLC 还采用双 CPU 构成冗余系统,或采

用三 CPU 的表决式系统。这样,即使某个 CPU 出现故障,整个系统仍能正常运行。

(2)存储器

存放系统软件的存储器称为系统程序存储器,存放应用软件的存储器称为用户程序存储

器。

1.3.2 PLC 的工作原理

最初研制生产的 PLC 主要用于代替传统的由继电器接触器构成的控制装置,但这两者的

运行方式有如下的区别。

(1)继电器控制装置采用硬逻辑并行运行的方式,即如果这个继电器的线圈通电或断

电,该继电器所有的触点(包括其常开或常闭触点)在继电器控制线路的任何位置上都会立

即同时动作。

(2)PLC 的 CPU 则采用顺序逻辑扫描用户程序的运行方式,即如果一个输出线圈或逻

辑线圈被接通或断开,该线圈的所有触点(包括其常开或常闭触点)不会立即动作,必须等

扫描到该触点时才会动作。

为了消除两者之间由于运行方式不同而造成的差异,考虑到继电器控制装置各类触点的

动作时间一般在 100ms 以上,而 PLC 扫描用户程序的时间一般均小于 100ms,因此,PLC

采用了一种不同于一般微型计算机的运行方式——扫描技术。这样在对于 I/O 响应要求不高

的场合,PLC 与继电器控制装置在处理结果上就没有什么区别了。

1. 扫描技术 当 PLC 投入运行后,其工作是以循环扫描的方式来完成的,一般分为 3 个阶段,即输入

采样、用户程序执行和输出刷新 3 个阶段。完成上述 3 个阶段称作一个扫描周期。在整个运

行期间,PLC 的 CPU 以一定的扫描速度重复执行上述 3 个阶段,具体的时序如图 1-2 所示。

图 1-2 PLC 程序扫描工作时序图

(1)输入采样阶段

Page 14: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–6–

在输入采样阶段,PLC 以扫描方式依次地读入所有输入状态和数据,并将它们存入 I/O

映像区中的相应单元内。输入采样结束后,转入用户程序执行和输出刷新阶段。在这两个阶

段中,即使输入状态和数据发生变化,I/O 映像区中的相应单元的状态和数据也不会改变。

因此,如果输入是脉冲信号,则该脉冲信号的宽度必须大于一个扫描周期,才能保证在任何

情况下,该输入均能被读入。

(2)用户程序执行阶段

在用户程序执行阶段,PLC 总是按由上而下的顺序依次地扫描用户程序(梯形图)。在

扫描每一条梯形图时,又总是先扫描梯形图左边的由各触点构成的控制线路,并按先左后右、

先上后下的顺序对由触点构成的控制线路进行逻辑运算。然后根据逻辑运算的结果,刷新该

逻辑线圈在系统 RAM 存储区中对应位的状态,或者刷新该输出线圈在 I/O 映像区中对应位

的状态,或者确定是否要执行该梯形图所规定的特殊功能指令。即在用户程序执行过程中,

只有输入点在 I/O 映像区内的状态和数据不会发生变化,而其他输出点和软设备在 I/O 映像

区或系统 RAM 存储区内的状态和数据都有可能发生变化,而且排在上面的梯形图,其程序

执行结果会对排在下面的凡是用到这些线圈或数据的梯形图起作用;相反,排在下面的梯形

图,其被刷新的逻辑线圈的状态或数据只能到下一个扫描周期才能对排在其上面的程序起作

用。

(3)输出刷新阶段

当扫描用户程序结束后,PLC 就进入输出刷新阶段。在此期间,CPU 按照 I/O 映象区内

对应的状态和数据刷新所有的输出锁存电路,再经输出电路驱动相应的外设。这时,才是 PLC

的真正输出。

一般来说,一个扫描周期等于自诊断、通信、输入采样、用户程序执行、输出刷新等所

有时间的总和,如图 1-3 所示。

图 1-3 PLC 程序一个扫描周期工作过程

2. PLC 的 I/O 响应时间 为了增强 PLC 的抗干扰能力,提高其可靠性,PLC 的每个开关量输入端都采用光电隔离

等技术。

为了能实现继电器控制线路的硬逻辑并行控制,PLC 采用了不同于一般微型计算机的运

行方式(扫描技术)。

以上两个主要原因,使得 PLC 的 I/O 响应比一般微型计算机构成的工业控制系统慢得多,

其响应时间至少等于一个扫描周期,一般均大于一个扫描周期甚至更长。

所谓 I/O 响应时间指从 PLC 的某一输入信号变化开始到系统有关输出端信号的改变所需

Page 15: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 1 章 可编程控制器概述

–7–

的时间。其最短的 I/O 响应时间与最长的 I/O 响应时间分别如图 1-4 和图 1-5 所示。

图 1-4 最短 I/O 响应时间

图 1-5 最长 I/O 响应时间

1.4 PLC 控制系统的一般设计步骤

(1)确定系统规模。首先应确定系统用 PLC 单机控制,还是用 PLC 形成网络,由此计

算 PLC 输入、输出点数,并且在选购 PLC 时要在实际需要点数的基础上留有一定余量(10%)。

(2)确定负载类型。根据 PLC 输出端所带的负载是直流型还是交流型,是大电流还是

小电流,以及 PLC 输出点动作的频率等,从而确定输出端采用继电器输出,还是晶体管输出,

或品闸管输出。不同的负载选用不同的输出方式,对系统的稳定运行是很重要的。

(3)确定存储容量与速度。尽管国外各厂家的 PLC 产品大体相同,但也有一定的区别。

目前还未发现各公司之间完全兼容的产品。各个公司的开发软件都不相同,而用户程序的存

储容量和指令的执行速度是两个重要指标。一般存储容量越大、速度越快的 PLC 价格就越高,

应该根据系统的大小合理选用 PLC 产品。

(4)编程器的选购。PLC 编程可采用 3 种方式:

① 用一般的手持编程器编程,它只能用商家规定语句表中的语句编程。这种方式效率

低,但对于系统容量小、用量小的产品比较适宜,并且体积小,易于现场调试,造价也较低。

② 用图形编程器编程,该编程器采用梯形图编程,方便直观,一般的技术人员短期内

就可应用自如,但该编程器价格较高。

③ 用 IBM 个人计算机加 PLC 软件包编程,这种方式是效率最高的一种方式,但大部分

公司的 PLC 开发软件包价格昂贵,并且该方式不易于现场调试。 因此,应根据系统的大小

与难易、开发周期的长短以及资金的情况合理选购 PLC 产品。

需要注意的是:应该尽量选用大公司的产品,其质量有保障,且技术支持好,一般售后

Page 16: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–8–

服务也较好,还有利于产品扩展与软件升级。

1.4.1 输入回路的设计

(1)电源回路。PLC 供电电源一般为 AC 85~240V(也有 DC 24V),适应电源范围较

宽,但为了抗干扰,应加装电源净化元件(如电源滤波器、1:1 隔离变压器等)。

(2)PLC 上 DC 24V 电源的使用。各公司 PLC 产品上一般都有 DC 24V 电源,但该电

源容量小,为几十毫安至几百毫安,用其带负载时要注意容量,同时作好防短路措施(因为

该电源的过载或短路都将影响 PLC 的运行)。

(3)外部 DC 24V 电源。若输入回路有 DC 24V 供电的接近开关、光电开关等,而 PLC

上 DC 24V 电源容量不够时,要使用外部提供的 DC 24V 电源,但该电源的“-”端不要与 PLC

的 DC 24V 的“-”端以及“COM”端相连,否则会影响 PLC 的运行。

(4)输入的灵敏度。各厂家对 PLC 的输入端电压和电流都有规定,如日本三菱公司 F7n

系列 PLC 的输入值为:DC 24V、7mA,启动电流为 4.5mA,关断电流小于 1.5mA,因此,

当输入回路串有二极管或电阻(不能完全启动),或者有并联电阻或有漏电流时(不能完全切

断),就会有误动作,使灵敏度下降,对此应采取措施。另一方面,当输入器件的输入电流大

于 PLC 的最大输入电流时,也会引起误动作,应采用弱电流的输入器件,并且选用输入为共

漏型输入的 PLC,输入元件的公共点电位相对为负。

1.4.2 输出回路的设计

1. 各种输出方式之间的比较 (1)继电器输出

优 点 是 不 同 公 共 点 之 间 可 带 不 同 的 交 、 直 流 负 载 , 且 电 压 也 可 不 同 , 带

负 载 电 流 可 达 2A/点。但继电器输出方式不适用于高频动作的负载,这是由继电器的寿

命决定的。其寿命随带负载电流的增加而减少,一般在几十万次至几百万次之间,有的公司

产品可达 1 000 万次以上,响应时间为 10ms。

(2)晶闸管输出

带负载能力为 0.2A/点,只能带交流负载,可适应高频动作,响应时间为 1ms。

(3)晶体管输出

最大优点是适应于高频动作,响应时间短,一般为 0.2ms 左右,但它只能带 DC 5~30V

的负载,最大输出负载电流为 0.5A/点,但每 4 点不得大于 0.8A。

当系统输出频率为每分钟 6 次以下时,应首选继电器输出,因其电路设计简单、抗干扰

和带负载能力强。当频率为 10 次/min 以下时,既可采用继电器输出方式。也可采用 PLC

输出驱动达林顿三极管(5~10A),再驱动负载。

2. 抗干扰与外部互锁当 PLC 输出带感性负载 负载断电时会对 PLC 的输出造成浪涌电流的冲击,为此,对直流感性负载应在其旁边并

接续流二极管,对交流感性负载应并接浪涌吸收电路,以有效保护 PLC。当两个物理量的输

出在 PLC 内部已进行软件互锁后,在 PLC 的外部也应进行互锁,以加强系统的可靠性。

Page 17: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 1 章 可编程控制器概述

–9–

3. “COM”点的选择 不同的 PLC 产品,其“COM”点的数量是不一样的,有的一个“COM”点带 8 个输出

点,有的带 4 个输出点,也有带 2 个或 1 个输出点的。当负载的种类多,且电流大时,应该

采用一个“COM”点带 1~2 个输出点的 PLC 产品;当负载数量多而种类少时,应该采用一

个“COM”点带 4~8 个输出点的 PLC 产品。所以应该在每个“COM”点处加 1A 熔丝,1~

2 个输出时加 2A 的熔丝,4~8 点输出的加 5~10A 的熔丝。

4. PLC 外部驱动电路对于 PLC 输出不能直接带动负载的情况,必须在外部采用驱动电

路。可以用三极管,也可以用固态继电器或晶闸管电路驱动,同时应采用保护电路和浪

涌吸收电路,且每路有显示二极管(LED)指示。印制板应做成插拔式,易于维修。 PLC 的输入/输出布线也有一定的要求,请看各公司的使用说明书。

1.4.3 扩展模块的选用

对于小的系统,如 80 点以内的系统,一般不需要扩展。当系统较大时,就要扩展。不

同公司的产品,对系统总点数及扩展模块的数量都有限制,当扩展仍不能满足要求时,可采

用网络结构。有些厂家产品的个别指令不支持扩展模块,因此,在进行软件编制时要注意。

当采用温度等模拟模块时,各厂家也有一些规定,请看相关的技术手册。

各公司的扩展模块种类很多,如单输入模块、单输出模块、输入输出模块、温度模块、

高速输入模块等。PLC 的这种模块化设计为用户的产品开发提供了方便。

1.4.4 PLC 的网络设计

当用 PLC 进行网络设计时,其难度比 PLC 单机控制大得多。首先应选用自己较熟悉的

机型,对其基本指令和功能指令有较深入地了解,并且指令的执行速度和用户程序存储容量

也应仔细了解。否则,不能适应实时要求,造成系统崩溃。另外,对通信接口、通信协议、

数据传送速度等也要考虑。

最后,还要向 PLC 的商家寻求网络设计和软件技术支持及详细的技术资料,至于选用几

层工作站,根据系统大小而定。

1.4.5 软件编制

在编制软件前,应首先熟悉所选用的 PLC 产品的软件说明书,待熟悉后再编程。若用图

形编程器或软件包编程,则可直接编程;若用手持编程器编程,应先画出梯形图,然后编程,

这样可少出错,速度也快。编程结束后先空调程序,待各个动作正常后,再在设备上调试。

Page 18: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第第 22 章章 常常用用 PPLLCC 介介绍绍

本章将重点放在国内外几家著名的工控产品厂商的 PLC 产品上,主要介绍西门子

S7-200、松下 FP 系列、Omron C200H 系列 PLC 的性能和一些基本的指令供读者参考。

2.1 西门子 S7-200 系列 PLC

S7-200 系列 PLC 是西门子公司 1995 年底推出的具有很高性能价格比的微型 PLC。由于

它具有体积小、运行速度高、功能强等特点,使其在各种自动控制领域得以广泛应用。

2.1.1 PLC 系统结构

S7-200 具有 4 种不同配置的 CPU 规格:CPU212、CPU214、CPU215、CPU216。

1. S7-200 PLC 结构特点 (1)机械结构特性

体积小、重量轻、结构紧凑,可用接线端子排接线,而且接线端子前带有面板保护,PLC

上设计有标准的 DIN 导轨安装机构和安装孔,可以垂直或水平方向安装。

(2)电气结构特性

① 免维护性。S7-200 CPU 中配有 EPROM,可以永久保存用户程序和一些重要参数。

它还安装有大容量电容,可以长时间存储数据而不需要后备电池。

② PLC 内有 24V 直流传感器或负载驱动电源,输出电流可达 180mA 或 280mA。

③ 为了适合不同场合使用,每种 CPU 又都有 3 种不同的类型可供选择。

④ 灵活中断输入。S7-200 CPU 可以以极快的速度来响应中断请求信号的上升沿或下降

沿。

⑤ PLC 内配有高速计数器。CPU212 有一个 2kHz 的加/减计数器,而 CPU214~CPU216

有两个独立的 7kHz 的高速计数器,它们可用软件或硬件复位。

⑥ 便于扩展。为系统备有专用的扩展模块(EM),可方便地进行输入、输出及模拟量扩

展。

⑦ 模拟电位器外部设定。CPU212 有调整设定参数。

⑧ CPU214 还有如下功能。

� 脉冲输出。可以输出 2 路最高频率 2kHz 的脉冲信号,可以用来作定位控制,如步

进电机控制等。

� 实时时钟。PLC 内有硬件时钟,可以用来作定时控制。

Page 19: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 2 章 常用 PLC 介绍

–11–

� E2PROM 子模块。使用该模块可拷贝用户程序,而不需要专用编程设备。

� 电池卡。CPU 中的电容用于掉电保护,避免 PLC 断电之后用户数据丢失,但只能

提供短时间的保护,而应用电池卡,保护时间可以达到一年。

⑨ CPU215/CPU216 在 CPU214 基础上还有如下功能:

� PID 指令。用于对系统做动态控制。

� 通信能力强。CPU215/CPU216 有两个通信口,其中 CPU215 有一个通信口可以作远

程通信。

2. S7-200 主要功能及特点 S7-200 提供了多种功能,使得编程控制时更加灵活方便,下面对这些功能做简要介绍。

(1)执行指令速度高。CPU212 执行每条二进制指令时间为 1.2µs,而 CPU214~CPU216仅为 0.8µs。

(2)丰富的指令功能。S7-200 PLC 几乎包括了一般计算所具有的各种基本操作指令。

如变量赋值、数据存储、传送、比较、子程序调用、循环等。另外,它还有良好的用户使用

功能,如脉宽调制(PWM)、位置控制(PTO)、PID 等功能。 (3)灵活的中断功能。中断触发有几种形式:可用软件设定为中断输入信号的上升沿或

下降沿,以便做出快速响应;可设为时间控制的自动中断;可由内置高速计数器自动触发中

断;在与外设(如打印机等)通信时可以以中断方式工作。 (4)输入和输出的直接查询与赋值。在扫描周期内,可直接查询当前的输入和输出信号,

在必要时,还可以用指令对输入和输出直接赋值或改变其值。这样不仅用户调试程序方便,

同时也可使系统对过程事件做出快速响应。 (5)严格的口令保护。S7-200 系统有 3 个不同的口令保护级别,以便用户对程序做有

效保护。3 级口令分别是自由存取、只读、完全保护。 (6)友好的调试和故障诊断功能。包括整个用户程序可在用户规定的周期数内运行和分

析,同时可记录性存储器、定时器、计数器状态。 (7)输入或输出的强制功能。用户在调试程序时,可对输入或输出强制接通。 (8)通信功能。通信是 S7-200 PLC 的一个重要功能,它为用户提供了强大、灵活的通

信功能。用点对点接口(PPI)作 9.6kbit/s 的数据通信,用 RS-485 接口实现高速用户可编程

接口。 3. 系统参数 表 2-1 所示为 CPU212~CPU216 的技术参数。S7-200 PLC 上所有输入和输出点都可作一

般标准输入和输出点使用。但如系统使用其特殊功能,这些点就不能作一般点使用了。如

CPU212 输入点 I0.0 可作外部中断或高速计数输入端使用,也可作一般输入点使用。

CPU214~CPU216 的输出点 Q0.0、Q0.1 除可做一般输出点使用外,还可用做 PWM 和 PTO 特

殊控制输出使用。

表 2-1 西门子 S7-200 PLC 技术参数

项目 CPU212 CPU214 CPU215 CPU216

程序区 521B 2KB 4KB 4KB

用户数据区 521B 2KB 2.5KB 2.5KB

内部存储位 有(E2PROM) 有(E2PROM) 有(E2PROM)

Page 20: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–12–

续表

项目 CPU212 CPU214 CPU215 CPU216

附加的电源插卡 无 200 天 200 天 200 天

停电保持时间(h) 50 190 190 190

本机 I/O 8DI/6DO 14DI/10DO 14DI/10DO 24DI/16DO

最大扩展模块 2 7 7 7

I/O 映像寄存器 64DI/64DO 64DI/64DO 64DI/64DO 64DI/64DO

模拟 I/O(扩展) 16AI/16AO 16AI/16AO 16AI/16AO 16AI/16AO

输入滤波器 不可选 可选 可选 可选

逻辑运算执行时间 1.2µs 0.8µs 0.8µs 0.8µs

计数器/定时器 64/64 128/128 256/256 256/256

FOR/NEXT 无 有 有 有

整数运算 有 有 有 有

实数运算 无 有 有 有

PID 功能 无 无 有 有

通信口数 1(RS 485) 1(RS 485) 2(RS 485) 2(RS 485)

支持的协议 port0 PPI,自由口 PPI,自由口 PPI,自由口 PPI,自由口

Port1 DP PPI,自由口

高速计数器 1(S/W) 1(S/W), 2(H/W) 1(S/W), 2(H/W) 1 ( S/W ) , 2

(H/W)

模拟电位器 1 2 2 2

脉冲输出 无 2 2 2

通信中断事件 1 发送/1 接收 1 发送/1 接收 1 发送/2 接收 2 发送/4 接收

定时器中断 1 2 2 2

硬件输入中断 1 4 4 4

实时时钟 无 有 有 有

4. 扩展模块与系统扩展

S7-200 CPU 上已提供了一定数量的输入和输出接点,但是如果用户需要多于 CPU 单元

I/O 点时,就必须对系统做必要的扩展。其中 CPU212 最多可以扩展 2 个扩展单元,而

CPU214~CPU216 最多可以扩展 7 个扩展单元(开关量或模拟量)。基本单元通过其右侧的扩

展接口用总线连接器(插件)与扩展单元左侧的扩展接口相连接,扩展单元之间也用同样的

方法连接。这种方法对安装顺序没有限制。用扩展板来扩展系统有以下特点。

(1)最佳的适应性。用户可根据自己实际系统要求选用各种合适的扩展模块做硬件组态,

以满足各种控制的要求。

(2)很宽的灵活性。当己经投入运行的系统需改造或扩充的时候,PLC 可以随时进行

升级,并修改相应的控制软件和控制程序。

S7-200 系列扩展模块总共有 5 大类:

� 数字量输入扩展板 EM221(8 路扩展输入);

� 数字量输出扩展板 EM222(8 路扩展输出);

Page 21: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 2 章 常用 PLC 介绍

–13–

� 数字量输入和输出混合扩展板 EM223(8I/O,16I/O、32I/O);

� 模拟量输入扩展板 EM231,每个 EM231 可扩展 3 路模拟量输入通道,其中 A/D 转

换时间为 25µs、数字量的位数是 12 位; � 模拟量输入和输出混合扩展模板 EM235,每个 EM235 可同时扩展 3 路模拟输入和 1

路模拟量输出通道,其中 A/D 转换时间为 25µs,D/A 转换时间 100µs,数字量位数

都是 12 位。 扩展单元正常工作需要+5VDC 工作电源,此电源由基本单元通过总线连接器提供,扩

展单元的 24VDC 输入点和输出点电源,可用基本单元的 24VDC 电源,但要注意基本单元所

能提供的最大电流是否满足要求。 5. 文本显示器 TD200 S7-200 系统中的文本显示器 TD200 是在现场监控运行程序的有效设备,它的外型如图

2-1 所示。TD200 连接简单,只需要用特定的通信电缆连接到 PPI 接口上就可以了。

图 2-1 文本显示器 TD200

TD200 具有以下用途。 (1)显示信息。可以显示最多 80 条信息,每条信息最多可包含 4 个变量。 (2)可设定 CPU214 以上机型的实时时钟。 (3)提供强制 I/O 点诊断功能。 (4)过程参数的修改。参数在显示器上显示并可用输入键进行修改。例如可修改温度设

定或速度改变等参数。 (5)可编程的 8 个功能键可以代替普通的控制按钮作为控制键,这样还可节省 8 个输入

点。 (6)输入和输出的设定。8 个可编程功能键的每一个都分配了一个存储器位。例如,这

些功能键在测试系统时,可以进行参数设置和修改,还可以不用其他操作设备就可实现对电

动机的控制等。 用 STEP 7 编程软件就可以对 TD200 编程,而不需要其他的参数赋值软件。在 S7-200 CPU

上开设一个专用存储器与 TD200 作数据交换,TD200 直接通过这个专用的数据区来使用 CPU的有关功能。

除上述设备外,西门子公司还有其他供操作员用的设备,如 OP 系列操作面板、触摸屏

等,这里不再介绍,有兴趣的读者可以查阅西门子有关设备手册。

Page 22: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–14–

2.1.2 软件编程

S7-200 的指令系统可分成 3 类。

(1)无条件执行指令。

(2)有条件执行指令。

(3)表示在语句表中位置的标号指令。

1. 概述 (1)S7-200 程序的基本结构

用户可使用 STEP 7 软件在计算机上进行编程,也可使用 PG702 手持编程器编程。编程

语言有梯形图(LAD)和语句表(STL)两种模式。但不管使用哪种模式,一个完整的用户

程序都应有主程序和子程序及中断处理程序,具体要求如下。

① 主程序应以一条 MEND(主程序结束)指令作为结尾。

② 如果使用了子程序,那么子程序必须跟在主程序的后面。子程序的结束符为 RET,

程序应有不重复的序号(SBR n),以便主程序调用。

③ 如果使用中断处理程序,那么中断处理程序也应该跟在主程序后面。每个中断程序应

该用 RETI 指令作为结束指令,并且应该有不同的序号(INT n),这样 PLC 可以在响应中断

时调用相应的中断处理程序。

④ 属于一个主程序的各个子程序和中断处理程序的位置没有严格规定,可以随意组合。

⑤ 用户程序的最大长度 CPU212 是 512byte,CPU214 为 2048byte,CPU215 和 CPU216

都是 2.5kB。

(2)S7-200 的存储器结构

S7-200CPU 中的存储器由一个 E2PROM 和一组 RAM 组成,此外 CPU214 还可以插一块

E2PROM 存储卡。

① 内置 E2PROM。该存储器与 CPU 上的 RAM 几乎成镜像的存储器,一般情况下它是

一个只读存储器,仅在以下 4 种情况可改变它的内容。

� 在用计算机编程时,可以通过通信电缆输入程序。

� 利用手持编程器 PG702 可将外接储存卡上的内容复制进去。复制外接存储卡上的内

容的时候不需要特殊的操作,只需要插卡后将 PLC 通上电就行了。

� 用户程序中可以利用系统标志对其中的“动态存储数据”进行刷新。

� 如果 CPU214 上始终插有外接存储卡,那么系统每次上电都将用外存储卡的内容覆

盖内置的 E2PROM,这样会降低 E2PROM 的使用寿命,应该加以避免。

② 读写存储器 RAM。读写存储器是 S7-200 的主内存,它大致分 3 个区。

� 程序区。用于存放由 E2PROM 传来的用户程序。

� 数据区。数据区可以分两部分,一部分可以存放内置 E2PROM 传入的有关参数,另

一部分用来存储用户数据。

� 寄存区。这个区可以当作寄存器使用,其中包括标志寄存器、定时器和计数器等。

S7-200 系统的 RAM 可由电容“供电”,因此在掉电情况下仍然可以保持有关内容。一般

保存时间为 50~200 小时。

③ 外接 E2PROM。在 CPU214 上配有该存储器接口,用户可用编程设备将内存 E2PROM

内容复制到该存储卡上。

Page 23: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 2 章 常用 PLC 介绍

–15–

设置外置 E2PROM 的目的并不是扩充系统的存储容量,它的作用是保证用户程序或数据

安全。用户可以将程序和数据复制到 E2PROM 作备份。

(3)S7-200 的 3 种工作模式

在 S7-200 系列 PLC 工作面板上有一个工作模式选择开关,用以选择 PLC 的方式。开关

有 3 档:STOP、RUN 和 TERM。

① STOP 模式。该模式是将 PLC 设置为停止运行状态,在该模式下可对 PLC 作如下操

作:

� 利用编程设备向 PLC 写入程序;

� 用编程设备检查部分用户存储器内容、改变存储器内容、改变 PLC 的各种配置。

② RUN 模式。在此模式中,PLC 按照扫描周期循环执行用户程序,此时不能向 PLC 写

入程序。

③ TERM 模式。在此模式下,PLC 的工作模式(STOP 或 RUN)可由编程设备通过通

信方式来改变 PLC 的工作模式。此种模式多数用于联网的 PLC 网络或现场调试时使用。

PLC 上电时,如果模式开关处于 RUN 状态,那么 PLC 将以运行方式启动,如果开关置

于其他两个位置时,PLC 都将以停止运行方式启动。

2. 存储器空间分配 S7-200 PLC 的存储器空间大致可以分为 3 个空间,即程序空间、数据空间和参数空间。

(1)程序空间

该空间又称为组织块 OB1。主要用于存放用户应用程序,程序空间容量在不同的 CPU

中是不同的。CPU 中的 RAM 区与内置 E2PROM 上都有程序存储器,但是它们互为映象,而

且空间大小是相同的。

(2)数据空间

数据空间可以分为数据存储器和数据对象。用于存放工作数据的存储空间称为数据存储

器,另外有一部分用作寄存器使用,称为数据对象。

① 数据存储器。它包括变量存储器(V)、输入信号缓存区(输入映象存储器 I)、输出

信号缓存区(输出映象存储区 Q)、内部标志位存储器(M)又称为内部辅助存储器、特殊标

志位存储器(SM)。除特殊标志位外,其他部分都能以位、字节和双字的格式自由读取或写

入。

变量存储器(V)。V 存储器的前 200(212)和 1024(214)个字节的 RAM 区组成 V 存

储器称为数据块 DB1。DB1 中的内容可在 PLC 与编程设备上双向传送。V 存储器的其他部

分只存在 RAM 中,它们不会被拷贝到 E2PROM 中,同时也不能用用户程序将它复制到

E2PROM 中。

输入映象存储器。它是以字节为单位的寄存器,它的每一位对应于一个数字量输入结点。

在每个扫描周期开始,PLC 依次对各个输入结点采样,并把采样结果写入输入映象存储器。

PLC 在执行用户程序过程中不再理会输入节点的状态,它所处理的数据为输入映象存储器中

的值。

输出映象存储器。它是以字节为单位的寄存器,它的每一位对应于一个数字输出量节点。

PLC 在执行用户程序的过程中,并不把输出信号随时送到输出节点,而是送到输出映象存储

器,只有到了每个扫描周期的末尾,才将输出映象寄存器的输出信号几乎同时送到各输出节

Page 24: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–16–

点。使用映象寄存器的优点是能够同步地在扫描周期开始采样所有输入点,并在扫描的执行

阶段冻结所有输入值;在程序执行完后再从映象寄存器刷新所有输出点,使被控系统能获得

更好的稳定性;存取映象寄存器的速度高于存取 I/O 速度,使程序执行得更快;I/O 点只能以

位为单位存取,但映象寄存器则能以位、字节、双字进行存取。因此,映象寄存器提供了更

高的灵活性。另外对控制系统中个别 I/O 点要求实时性较高的情况下,可用 I/O 指令直接存

取输入/输出点。

内部标志位(M)。又称内部线圈(内部继电器等),它一般以位为单位使用,但也能以

字、双字为单位使用。CPU212 的内部标志位有 16 个字节,CPU214 以上共有 32 个字节,即:

特殊标志位(SMB)。用来存储系统的状态变量和有关控制信息,特殊标志位分为只读

区和可写区,具体划分随 CPU 的不同而不同。SMB 容量为 SMB30~SMB194,具体内容详见

后面介绍。

② 数据对象。包括定时器、计数器、高速计数器、累加器、模拟量输入/输出。

定时器。类似于继电器电路中的时间继电器,但它的精度更高,定时精度分为 1ms、10ms

和 100ms 3 种,精度需要由编程者确定。CPU212 有 64 个定时器,CPU214 有 128 个定时器,

CPU 215 和 CPU216 有 256 个定时器。

计数器。计数脉冲由外部输入,计数脉冲的有效沿是输入脉冲的上升沿或下降沿,计数

的方式有累加 1 和递减 1 两种方式。计数器的个数与各 CPU 的定时器个数相同。

高速计数器。与一般计数器不同之处在于,计数脉冲频率更高可达 2kHz~7kHz,计数

容量大,一般计数器为 16 位,而高速计数器为 32 位,一般计数器可读可写,而高速计数器

一般只能作读数据操作。

累加器。在 S7-200 CPU 中有 4 个 32 位累加器,即 AC0~AC3,用它可把参数传给子程

序或任何带参数的指令和指令块,此外,PLC 在响应外部或内部的中断请求而调用中断服务

程序时,累加器中的数据是会丢失的,即 PLC 会将其中的内容压入堆栈。因此,用户在中断

服务程序中仍可使用这些累加器,待中断程序执行完返回时,将自动从堆栈中弹出原先的内

容,以恢复中断前累加器的内容。但应注意,不能利用累加器作主程序和中断服务子程序之

间的参数传递。

模拟量输入/输出。可实现模拟量的 A/D 和 D/A 转换,而 PLC 所处理的是其中的数字量。

可以看出,数据对象在严格意义上讲,它们并不是 PLC 的内存单元,而是系统中的硬件部件,

只是 PLC 在处理它们时当作一个存储单元而已,即像寻址一个存储单元一样来对它们寻址。

(3)参数空间。

用于存放有关 PLC 配置结构参数的区域,如保护口令、PLC 站地址、停电记忆保持区、

软件滤波、强制操作的设定信息等,存储器为 E2PROM。

3. 数据存储器寻址 在 S7-200 PLC 中所处理的数据有 3 种,即常数、数据存储器中的数据和数据对象中的数

据。

(1)常数及类型

在 S7-200 的指令可以使用字节、字、双字类型的常数,常数的类型可指定为十进制、十

六进制(16#7AB4)、二进制(2#l11011001)或 ASCII 字符(′S7-200′)。

注意:PLC 不支持数据类型的处理和检查,因此在有些指令隐含规定字符类型的条件下,

Page 25: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 2 章 常用 PLC 介绍

–17–

必须注意输入数据的格式。

(2)数据存储器的寻址

① 数据地址的一般格式。一般由两部分组成,格式为 CX.Y。其中 C 为数据在数据存储

器中的区域地址,有 I、Q、M、SM、V 5 部分;X 为该数据在区域的首字节地址;Y 是该数

据的地址,即表明该数据位在字节中的位置(0~7),其中 0 为最低位(LSB)、7 为最高位(MSB)。

② 数据类型符的使用。在使用以字节、字或双字类型的数据时,除非所用指令已隐含

有规定的类型外,一般都应使用数据类型符来指明所取数据的类型。数据类型符共有 3 个,

即 B(字节)、W(字)和 D(双字),它的值紧跟在数据区域地址符后面。

例如对变量存储器有 VB200、YW200、VD200。同一个地址,在使用不同的数据类型后,

所取出数据占用的内存量是不同的,这一点在编程时一定要加注意。

(3)数据对象的寻址

在 S7-200 PLC 中数据对象都是一个器件与对应数据的组合体,即一个器件与一个或几

个数据的对应组合。器件是为完成一定功能的“硬件”,加对应的数据是 PLC 对这些器件作

响应或处理的参数。

① 数据对象的地址。基本格式为 An,其中 A 为该数据对象所在的区域地址,也即数据

对象的名称,在 S7-200 中 A 共有 6 种,如表 2-2 所示;n 为序号,指明 A 区域的第 n 个器件

数据。

表 2-2 数据对象的名称及范围

可取的范围 对象数据名 区域地址名

CPU212 CPU214 CPU215/216

定时器 T T0~T63 T0~T127 T0~T255

计数器 C C0~C63 C0~C127 C0~C255

高速计数器 HC HC0 HC0~HC2 HC0~HC2

累加器 AC AC0~AC3 AC0~AC3 AC0~AC3

模拟量输入 AIW AIW0~AIW30 AIW0~AIW30 AIW0~AIW30

模拟量输出 AQW AQW0~AQW30 AQW0~AQW30 AQW0~AQW30

② 间接寻址方式。在前面所述的寻址方式中,都是直接给出存储器或寄存器的区域名

及区域地址,这种方式称直接寻址。同计算机一样,PLC 还有间接寻址方式,即在指令中只

给出了存有数据的单元地址或寄存器名。在 S7-200 中可间接寻址的区域有 I、Q、M、V、T、

C。详细使用说明请查阅西门子 S7-200 手册。

4. 特殊标志位(SM) 特殊标志位又称内部专用辅助继电器,为用户提供特殊功能的存储器。它属于 S7-200

的数据存储,而且是以位方式寻址的,它的寻址格式为 SMX.Y。其中 SM 是特殊标志位的区

域地址符,X 为字节地址,Y 为位地址。特殊标志位区的 SM0~SM29 为只读区,只能由 PLC

根据运行状态自动修改,而 SM30~SM94 和 SM186~SM194 是可读写区,是供用户选择及控

制有关功能用的。下面介绍常用的特殊标志位。

(1)状态标志位 SMB0 和 SMB1

SM0 和 SM1 是两个用于表示 PLC 工作状态的字节,它们每位的含义如下:

SMB0.0,该位始终为 ON。

Page 26: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–18–

SMB0.1,该位在第一个扫描周期内 ON,可用于调用初始化子程序。

SMB0.2,当保持数据丢失时,该位为 ON,作用一个扫描周期。该位常作出错标志使用

或调用特殊的起动过程。

SMB0.3,PLC 从加电进入 RUN 方式,该位为 ON,作用一个扫描周期。

SMB0.4,该位 30s ON,30s OFF,每 1min 一个周期,可用于延时或 1min 时钟脉冲。

SMB0.5,该位 0.5s ON,0.5s OFF,每 1s 为一个周期,可用于延时或 1s 时钟脉冲。

SMB0.6,该位是扫描时钟,一个扫描为 ON,下个扫描为 OFF,如此循环,可用作扫描

计数器的输入。

SMB0.7,该位指示 CPU 方式开关位置,ON 为 RUN 方式、OFF 为 TERM 方式。使用

它可在 RUN 方式下起动自由的通信,把开关打在 TERM 的位置可以进行与编

程设备的正常通信。

SMB1,主要用作指示系统操作错误。

SMB1.0,执行某些指令时结果为零时,该位为 ON。

SMB1.1,执行某些指令结果发生溢出时,该位为 ON。

SMB1.2,执行数学运算时结果为负数时,该位为 ON。

SMB1.3,用 0 作除数时的错误标志,则该位为 ON。

SMB1.4,执行表的加法运算时超出表的范围时,该值为 ON。

SMB1.5,当执行 LIFO 和 FIFO 指令,从空表中读入时,该位为 ON。

SMB1.6,把一个非 BCD 码变为二进制数时,该位为 ON。

SMB1.7,当 ASCII 值无法变换为合法的十六进制数时,该值为 ON。

(2)中断队列溢出标志 SMB4

SMB4.0,通信中断队列溢出时为 ON。

SMB4.1,I/O 中断队列溢出时为 ON。

SMB4.2,时间中断队列溢出时为 ON。

SMB4.3,PLC 检测到编程错误时为 ON。

SMB4.4,系统中断允许控制(ON 为禁止,OFF 为允许)

SMB4.5,发送器为空时该位为 ON。

SMB4.6、SMB4.7 保留(未定义)。

(3)扫描时间信息寄存器 SMB22~SMB27

SMB22~SMB27 提供了 PLC 中有关扫描时间长度的信息,其单位都是毫秒(ms)。

SMB22,最近一次扫描所花时间(高位字节)。

SMB23,最近一次扫描所花时间(低位字节)。

SMB24,进入 RUN 以来最短的扫描时间(高位字节)。

SMB25,进入 RUN 以来最短的扫描时间(低位字节)。

SMB26,进入 RUN 以来最长的扫描时间(高位字节)。

SMB27,进入 RUN 以来最长的扫描时间(低位字节)。

(4)模拟调节电位器的当前值寄存器 SMB28 和 SMB29

在 CPU214 的面板上有两个可调节的电位器(编号为 0 和 1),分别用 SMB28 和 SMB29

来存储与当前调节量对应的数字量。用户可通过程序来利用这两个参数修改定时器或计数器

Page 27: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 2 章 常用 PLC 介绍

–19–

的预置值或当前值,也可用来设置某些界限等。

在 CPU212 的面板上只有一个可调电位器(编号为 0),对应寄存器 SMB28,而 SMB29

保留(未定义)。

(5)与自由通信口功能有关的寄存器 SMB2、SMB3、SMB30

这 3 个字节主要用于自由口通信方式的确定及运行管理。

① 通信接收字符缓冲器 SMB2。SMB2 用于存放在自由口通信方式下接收到的当前字符,

用户一般应在下一步从这里取走其中的内容,它是一个暂存寄存器。

② 通信校验结果寄存器 SMB3。在使用自由口通信时,PLC 的通信口按 SMB30 规定的

奇偶校验方式对所收到的信号作校验。如检测到有错,PLC 自动将 SMB3.0 置 1。根据这个

标志位,可决定当前信息的取舍,同时还可在出错情况下,将此错误位发送给对方,以便要

求它重发。

③ 控制字寄存器 SMB30。SMB30 是存储通信方式控制字用的。这个控制字是由用户写

入的。

(6)V 内存的保存操作控制寄存器 SMB31~SMB33

在 S7-200 系统中,用户可把 DBl 中的部分数据 V0~V199(CPU212)、V0~V1023

(CPU214~CPU216)写入内置的 E2PROM 中,以便保存。SMB31~SMB33 3 个寄存器作为这

种操作的控制使用。其中 SMB32 和 SMB33 组成一个字,它的末 4 位(即 SMB33 的 Bit0~Bit3)

表示需要操作的数据在 V 内存中的编号(地址),其范围是 0~15。该字的其他位全为 0。写

入 E2PROM 的地址也与此对应。

SMB31 是该操作的写入命令字。SM31.7 是 V 内存请求保护标志。如果该位状态为 1,

那么表示 V 内存需要保护。PLC 在每个扫描周期来检查这个标志,如果查到“需保护”的请

求,那么立即执行向 E2PROM 写入的操作,执行完毕后,自动复位该位。

(7)定时中断周期时间寄存器 SMB34 和 SMB35

在 S7-200 系统中,CPU212 有一个定时中断,CPU214~CPU216 有两个定时中断。一般

可用一个定时中断作周期循环的基准。周期时间为 5~255ms(以 1ms 为增量)。其中 SMB34

是存放定时中断 0 的周期时间,而 SMB35 用于存放定时中断 1 的定时时间。在使用时应注

意下述 3 点:

① 只有在给一个时钟中断分配一个中断服务子程序后,CPU 才会自动使用这个周期时

间值。

② 要改变 SMB34 和 SMB35 中的周期时间,必须对时钟中断重新分配程序(即服务子

程序的首址),但可以是原来的。

③ 改变周期时间的另一个方法是通过撤消功能以禁止时钟中断。

(8)高速计数器 HC 的寄存器 SMB36~SMB65

有关这方面的 30 个寄存器共分 3 组,每组为 l0 个寄存器,它们分别为高速计数器 HC0、

HCl 和 HC2 服务。在 CPU 212 中,只有一个高速计数器 HC0,因此不能使用 SMB46~SMB65。

(9)有关输出脉冲(PTO)/脉宽调制(PWM)的控制寄存器 SMB 66~SMB85

这 20 个寄存器分为两组,每组 10 个,分别为 Q0.0 通道和 Q0.1 通道脉冲输出(PTO0

和 PTO1)/脉冲宽度调制(PWM0 和 PWM1)服务。

时间寄存器和脉宽寄存器是一个字长(2 字节)的时间寄存器,遵循高位在前,低位在

Page 28: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–20–

后的规则。它们的计时单位决定于 SMB67(77).3 位的值。脉冲计数器是一个双字长的计数

器,也遵循高位在前,低位在后的规则。下面介绍一下状态寄存器和控制寄存器。

① 状态寄存器 SMB 66(76)。SMD66(76).0~SMB66(76).5 保留(未定义);SMB66

(76).6 是 PTO 通路溢出标志(1 为溢出;0 为未溢出);SMB66(76).7 是 PTO 变化标志

(1 为未变化;0 为变化)。

② 控制寄存器 SMB67 和 SMB77。注意:由于 CPU212 硬件限制、它没有本项功能。因

此 SMB46~SMB85 主要为 CPU 214~216 使用。

S7-200 系统的特殊标志位还有许多,这里主要介绍了常用的一些,如需了解其他内容可

查阅 S7-200 系统手册。

5. 中断功能 由于中断方式可随机的、高速的处理若干事件,因此在 PLC 的应用中经常使用。

(1)S7-200 中断能力

① 中断源。在 S7-200 中各 CPU 中断源类型不同,CPU212 中有 6 种不同中断源,它们

是两个 I/O 事件中断、一个定时中断、两个串行通信中断、一个高速计数器 HSC0 中断。

CPU214 中,有 21 种中断源,它们是 8 个 I/O 事件中断、两个定时中断、两个串行通信

中断、7 个高速计数器中断、两个脉冲输出中断。

CPU215 中,有 24 种中断源,它们是 8 个 I/O 事件中断、两个定时中断、两个串行通信

中断、7 个高速计数器中断、两个脉冲输出中断、定时器 T32 和 T96 的两个中断、一个 Port0

的完成接收信息中断。

CPU216 中,除具有 CPU215 的 24 种中断源外,还有 Portl 的完成接收信息中断、Portl

接收字符中断、Port1 完成发送的中断 3 个不同的中断源。

② 中断优先级。S7-200 中的中断优先级有在指定的优先级内先来先响应原则:任何情

况下只执行一个中断服务程序,即没有中断嵌套功能;一个中断正在处理时又有若干中断申

请,则需按级别分别排列,待以后陆续处理。

(2)S7-200 对中断的响应

① 禁止与开放。全局禁止与开放,是统一管理 PLC 中的所有中断,即禁止或开放所有

的中断。但若 PLC 处全局禁止状态时有内部或外部的中断申请要求,虽然 PLC 不予响应,

但仍将生成各中断队列。当 PLC 进入运行(RUN)状态时,自动进入全局中断禁止状态。如

需在适当的时候要开放全局中断,可以在用户程序中使用全局中断开放指令 ENI 来实现。如

果需要再次作全局中断禁止时,可以在程序的适当位置使用全局中断禁止指令 DISI 来实现,

而执行 DISI 指令不影响当前正在执行的中断服务程序的继续执行。只有该中断程序执行完毕

后,该功能才有效。单个中断可独立地开放与禁止(当然,全局中断是必须开放的)。所用的

指令分别为 ATCH 和 DHCH。

② 保护内容。PLC 在执行中断服务程序前,自动将累加器 AC 和存有指令操作及累加

器状态的特殊标志寄存器的内容推入堆栈保存起来;在 PLC 执行完中断程序返回主程序前,

又自动从堆栈弹出保存的数据,从而起到保护现场的作用。

(3)中断程序编制要点

一个完整的中断程序至少应包括下述几部分:

① 主程序中应有开放全局中断指令,否则 PLC 不会响应任何中断申请。

Page 29: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 2 章 常用 PLC 介绍

–21–

② 在主程序中应定义中断请求与中断服务程序的入口地址之间的关系,这是用 ATCH

指令指令来实现的。

例如,ATCH5,7。这条指令定义了事件号为 7 的事件,如果申请中断,那么执行 5#(INT5)

中断服务子程序。

③ 应该在主程序后面输入各个准备调用的中断服务子程序,每个中断子程序的开始应

用编号(INTn)来定义其首地址,末尾应有中断返回指令 RETI。

④ 编程的限制。在编中断程序时,应注意下述限制:

� 所有的备用中断子程序必须放在主程序后面;

� 在中断程序中不能使用 DISI、ENI、CALL、HDEF,FOR/NEXT 和 END 等指令;

� 必须用中断无条件返回指令来结束中断服务子程序。

⑤ 编制中断程序要注意问题是:

� 由于中断是随机产生的,主程序执行时随时可被中断,因此要求被中断的时间越短

越好,否则将产生不良影响,这就要求中断程序应尽可能简捷;

� 在使用 ATCH 指令作相关定义时,自动开关本项中断申请;

� 多个事件可调用同一个中断子程序,但同一事件不能同时调用多个中断子程序,如

果这样,只有最后一个子程序有效。

6. PWM/PTO 功能编程 (1)PWM/PTO 的基本功能

① PWM 输出功能。PWM 是脉冲宽度调制输出(Pulse Width Modulation)的缩写,这

个功能使得 PLC 可以输出一个周期固定而脉冲宽度可变的序列脉冲。固定的周期范围是 250

~65 535µs 或 2~65 535ms,脉宽的变化范围是 0~65 535µs 或 0~65 535ms。其中占空比为 100%时即一直接通,占空比为 0%时则输出断开。

② PTO 输出功能。PTO 是脉冲顺序输出(Pulse Train Output)的缩写,这个功能使得

PLC 可以输出一个脉冲个数可预定的以及周期也可预定的方波脉冲串。其中可预定的脉冲个

数范围为 l~4 294 967 295 个,可预定脉冲周期范围是 250~65 535µs 或 2~65 535ms。 (2)PWM 和 PTO 的控制寄存器 在 S7-200 的系统中,对每一路 PWM/PTO 的输出都有一个 8 位控制寄存器、一个 16 位

无符号时间(周期时间和脉冲宽度时间)寄存器,一个 32 位无符号的脉冲计数器来控制。特

殊标志寄存器各位位置如表 2-3 所示。其中 SMB67 和 SMB69 为控制字。 (3)PWM 初始化具体步骤如下。 ① 将 SMB0.1 置 1,PLC 在第 1 个扫描周期是调用 PWM 初始化子程序,而以后不再调

用,SMB0.1 为 0。 ② 在初始化子程序中,将十六进制数 16#C3 或 16#CB 置入 SMB67(以 Q0.0 作 PWM

输出),含义如下: � 使能 PWM; � 选择 PWM 方式; � 以 µs(或 ms)为计时单位; � 允许写入 PWM 脉冲计数当前值(SMW70); � 允许置写入 PWM 的周期时间(SMW68)。

Page 30: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–22–

③ 把字类型的周期时间装入 SMW68。

④ 把字类型的脉宽时间装入 SMW70。

⑤ 执行 PLS 指令时,PLC 自动对 PWM/PTO 的硬件初始化编程。

⑥ 因为需要随时改变脉宽时间,所以重新向 SMB67 写入控制字(16#C2)或(16#CA),

然后再执行 PLS 指令。

表 2-3 PTO/PWM 控制寄存器

Q0.0 和 Q0.1 的状态位

Q0.0 Q0.1 说明

SM66.6 SM76.6 PTO 为管路溢出 0:无溢出 1:溢出

SM66.7 SM76.7 PTO 闲置 0:在改变 1:闲置

Q0.0 和 Q0.1 对 PTO/PWM 输出的控制位

Q0.0 Q0.1 说明

SM67.0 SM77.0 PTO/PWM 刷新周期值 0:不刷新 1:刷新

SM67.1 SM77.1 PWM 刷新脉冲计数值 0:不刷新 1:刷新

SM67.2 SM77.2 PTO 刷新脉冲计数值 0:不刷新 1:刷新

SM67.3 SM77.3 PTO/PWM 时基选择 0:1µs 1:1ms

SM67.4 SM77.4

SM67.5 SM77.5

SM67.6 SM77.6 PTO/PWM 模式选择 0:PTO 1:PWM

SM67.7 SM77.7 PTO/PWM 使能 0:禁止 1:使能

Q0.0 和 Q0.1 对 PTO/PWM 输出的周期时间值

SM68 SM78 PTO/PWM 周期值的最高有效字节

SM69 SM79 PTO/PWM 周期值的最低有效字节

Q0.0 和 Q0.1 对 PTO/PWM 输出的周期时间值

Q0.0 Q0.1 说明

SM70 SM80 PTO/PWM 脉宽值的最高有效字节

SM71 SM81 PTO/PWM 脉宽值的最低有效字节

Q0.0 和 Q0.1 对脉冲输出的计数值

Q0.0 Q0.1 说明

SM72 SM82 PTO 脉冲计数值的次高有效字节

SM73 SM83 PTO 脉冲计数值的次低有效字节

SM74 SM84 PTO 脉冲计数值的最低有效字节

SM75 SM85 PTO 脉冲计数值的最高有效字节

(4)改变脉宽

如果需要改变脉宽时间应该按照下述步骤来操作:将所改变的脉宽时间值装入 SMB70,

执行 PLS 指令,使 PLC 对 PWM 硬件刷新脉宽时间。

(5)PTO 初始化

PTO 初始化的具体步骤如下。

Page 31: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 2 章 常用 PLC 介绍

–23–

① 将 SMB0.1 置 1,以便在第一个扫描周期去调用 PTO 初始化子程序。

② 在初始化子程序中,将 16#85(或 16#8D)写入 SMB67(以 Q0.0 作 PTO),其含义

为:

� 使能 PTO;

� 选择 PTO 方式;

� 以 µs(或 ms)作时间计数单位; � 允许设置 PTO 计数脉冲设置值(SMB70); � 允许设置 PTO 的周期时间(SMB68); � 执行 PLS 指令,使 PLC 对 PTO 硬件编程。 (6)PTO 参数改变 ① 改变 PTO 的周期时间。向 SMB67 写入 16#81H(以 µs 为计时单位)或 16#89H(以

ms 为计时单位),向 SMW68 写入所需的周期时间参数,执行 PLS 指令,PTO 自动改变周期

参数。 ② 改变 PTO 的脉冲计数值。向 SMB67 写入控制字 16#84(以 µs 为增量单位)或 16#8C。 ③ 同时改变 PTO 参数。向 SMB67 写入控制字 16#85(µs 为单位)或 16#8D(ms 为单

位),向 SMW68 写入新的周期参数,向 SMD72 写入新的计数值参数,执行 PLS 指令,PLC自动改变这两个参数。

2.1.3 S7-200 指令介绍

1. SIMATIC 位逻辑指令 (1)输入触点 ① 标准触点 当常开(NO——Normal Open)触点对应的存储器地址位(bit)为1时,表示该触点闭合。

当常闭(NC——Normal Close)触点对应的存储器地址位(bit)为0时,表示该触点闭合。 在语句表(STL)中,常开触点由LD(装载)、A(与)及O(或)指令描述,LD将位

bit值装入栈顶,A、O分别将位bit值与、或栈顶值,运算结果仍存入栈顶。在语句表中,常

闭触点由LDN(非装载)、AN(非与)和ON(非或)指令描述,LDN将位bit值取反后再装

入栈顶,AN、ON 先将位bit值取反,再分别与、或栈顶值其运算结果仍存入栈顶。 ② 立即触点 当立即指令执行时,读取物理输入的值,但是不更新映象寄存器。当常开立即触点的物

理输入点bit的位值为1时,表示该触点闭合。当常闭立即触点的物理输入点bit的位值为0时,

表示该触点闭合。 在梯形图(LAD)中,常开和常闭指令用触点表示。在功能块图(FBD)中,常开立即

指令用操作数前加立即标示符表示。在功能块图中,常闭立即指令也用操作数前加立即标示

符和取负圆圈表示。图2-2所示的就是常开和常闭立即触点。I0.2为常开立即触点,I0.5为常闭

立即触点。

Page 32: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–24–

图 2-2 立即触点

③ 状态跳变触点

正跳变触点在检测到每一次正跳变(从Off到On)之后让能流接通一个扫描周期。负跳

变触点在检测到每一次负跳变(从On到Off)后让能流接通一个扫描周期。

在梯形图中正负跳变用触点表示。在功能块图中正负跳变用P和N指令盒表示。

在语句表中正跳变触点由EU指令来描述,一旦发现栈顶的值出现正跳变(由0到1),该

栈顶值被置为1,否则置0。在语句表中,负跳变触点由ED指令来描述,一旦发现栈顶的值出

现负跳变(由1到0),该栈顶值被置1,否则置0。图2-3所示的就是跳变触点。

图 2-3 正负跳变

④ 状态取反触点

取反触点改变能流的状态。能流到达取反触点时,就停止;能流未到达取非触点,就通

过。

在梯形图中,取反指令用触点表示。

在功能块图中,取反指令用带有非号的布尔盒输入表示。

语句表中,取反指令改变栈顶值,由0变到1,或者由1变到0。

图2-4所示的是取反指令。

图 2-4 状态取反

(2)输出线圈

① 标准输出线圈

当执行输出指令时,映象寄存器中的指定参数位(bit)被接通。

在梯形图和功能块图中,当执行输出指令时,指定的位设为等于能流。

在语句表中,输出指令把栈顶值复制到指定参数位(bit)。

② 立即输出线圈

当执行立即输出指令时,该物理输出点(bit 或OUT)被设为等于能流。指令中的“I”

表示立即之意。当执行指令时,新值被同时写到物理输出点和相应的映象寄存器。这就不同

于标准输出,标准输出只是把新值写到映象寄存器。

在语句表中,立即输出指令把栈顶值复制到指定物理输出点(bit)。

③ 置位线圈和复位线圈

Page 33: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 2 章 常用 PLC 介绍

–25–

执行置位(置1)复位(置0)指令时,从bit或OUT指定的地址参数开始的N个点都被置

位或复位。复位、置位的点数N可为1~255。当用复位指令时,如果bit或OUT指定的是T位或

C位,那么定时器或计数器被复位,同时定时器或计数器当前值将被清零。

④ 立即置位和立即复位线圈

当执行立即置位或复位指令时,从bit或OUT开始的N个物理输出点将被立即置位或复位。

置位、复位的点数N可以是1~128。指令中的“I”表示立即之意。执行该指令时,新值被同

时写到物理输出点和相应的映象寄存器。这是与标准指令的区别,标准指令只把新值写到映

象寄存器。

图2-5所示为标准输出指令、置位指令和复位指令、立即置位和立即复位指令。

图 2-5 位操作的输出指令

2. 比较指令 比较指令分为以下几种:

(1)整数比较指令;

(2)双整数比较指令;

(3)实数比较指令。

3. 定时器指令 当使能输入接通时,接通延时定时器和有记忆接通延时定时器开始计时,当定时器的当

前值(Txxx)大于等于预设值时,该定时器位被置位。

当使能输入断开时,清除接通延时定时器的当前值,而对于有记忆接通延时定时器,其

当前值保持不变。可以用有记忆接通延时定时器累计输入信号的接通时间,利用复位指令清

除其当前值。当达到预设时间后,接通延时定时器和有记忆接通延时定时器继续计时,一直

计时到最大值 32 767。

断开延时定时器 TOE 用来在输入断开后,延时一段时间再断开输出。当使能输入接通时,

定时器将立即接通,并把当前值设为 0。当输入断开时,定时器开始定时,直到达到预设的

时间。当达到预设时间时,定时器位断开,并且停止计时当前值。当输入断开的时间短于预

设时间时,定时器位保持接通。TOE 指令必须用输入信号的接通到断开的跳变启动计时。

S7-200 系列 PLC 定时器有 3 种:TON、TONR、TOF。

TON 是接通延时定时器,它用来作单一间隔的定时。

Page 34: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–26–

TONR 也是接通延时定时器,其与 TON 不同之处是,TONR 是有记忆的,可以累计多次

的时间间隔计时。

TOF 是断开延时定时器,用来作为系统出现故障后的时间延时。其取值如表 2-4 所示。

表 2-4 定时器表

定时器输入/输出 操作数 数据类型

Txx 常数(0~255)

IN I、Q、M、SM、C、T、V、L BOOL

PT(定时值) VW、IW、MW、QW、SW、SMW、LW、

AIW、TC、AC、常数、*VD、*AC、*LD INT

TON、TONR 和 TOF 定时器有 3 种分辨率,这些分辨率对应的定时器如表 2-5 所示。

表 2-5 定时器类型

定时器类型 毫秒(ms)分辨率 定时器最大计时值 定时器

1ms 32.767 s T0,T64

10ms 327.67 s T1~T4,T65~T68 TONR

100ms 3276.7 s T5~T31,T69~T95

1ms 32.767 s T32,T96

10ms 327.67 s T33~T36,T97~T100 TON/TOF

100ms 3276.7 s T37~T63,T101~T255

4. 计数器指令 增计数器指令(CTU),计数器在每一个 CU 输入的上升沿(从 OFF 到 ON)递增计数,

直至计数最大值。如果当前计数值(Cxxx)大于或等于预置计数值(PV)时,该计数器位被

置位。当复位输入(R)置位时,计数器被复位。

增、减计数器指令(CTUD),计数器在每个 CU 输入的上升沿递增计数;在每一个 CD

输入的上升沿递减计数。如果当前值(Cxxx)大于或等于预置计数值(PV)时,该计数器位

被置位。当复位输入(R)置位时,计数器被复位。

减、增计数器指令(CTD),计数器在每个 CD 输入的上升沿(从 OFF 到 ON)从预设值

开始递减计数。如果当前计数值(Cxxx)等于 0 时,该计数器位被置位。当复位输入(R)

置位时,计数器把预设值(PV)装入当前值(Cv)。当计数值达到 0 时,停止计数。

计数器范围:Cxx =C0~C255。

计数器各个参数如表 2-6 所示。

表 2-6 计数器表

计数器输入/输出 操作数 数据类型

Cxx 常数(0~255)

IN I、Q、M、SM、C、T、V、L BOOL

PV(计数值) VW、IW、MW、QW、SW、SMW、LW、

AIW、TC、AC、常数、*VD、*AC、*LD INT

增计数器指令(CTU)在每一个CU输入的上升沿(从OFF 到ON),从当前计数值开始

Page 35: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 2 章 常用 PLC 介绍

–27–

递增计数。当复位输入(R)置位或者执行复位指令时计数器复位。计数器在达到最大计数

值(32 767)时停止计数。

增、减计数器指令(CTUD)在每个CU输入的上升沿,从当前计数值开始递增计数,在

每个CD输入的上升沿递减计数。当复位输入(R)置位或执行复位指令时,计数器复位在达

到计数器最大值32767后,下一个CU输入上升沿将使计数值变为最小值(-32 768)。同样在

达到最小计数值(-32768)后下一个CD输入上升沿将使计数值变为最大值(32 767)。

递增和增/减计数器的当前值记录当前的计数值。该种计数器的预置值在计数器指令执行

期间用来与当前值作比较,如果当前值大于等于预置值时,该计数器位被置位(ON),否则

计数器位被复位(OFF)。

当减计数输入端有上升沿时,减计数器每次从计数器的当前值减计数。当装载输入端接

通时,计数器复位并把预设值装入当前值。当计数器达到0时计数器位接通。当用复位指令复

位计数器时,计数器位被复位并且当前值被清零。

5. 时钟指令 读实时时钟指令:读当前时间和日期并把它装入一个8字节的缓冲区(起始地址是T)。

设定实时时钟指令:写当前时间和日期并把8字节缓冲区(起始地址是T)装入时钟 。

在语句表中,TODR和TODW指令表示读时钟(TODR)和写时钟(TODW)。

时钟指令中的读和写指令如图2-6所示。

图 2-6 时钟指令的读和写指令

6. SIMATIC 整数数学运算指令 (1)整数加法和整数减法

整数的加法和减法指令把两个16位整数相加或相减产生一个16位结果(OUT)。

(2)双整数加法和整数减法

双整数的加法和减法指令把两个32位双整数相加或相减产生一个32位结果(OUT)。

整数的加法和减法指令如图2-7所示。

图 2-7 整数的加法和减法指令

(3)整数乘法和整数除法

Page 36: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–28–

整数乘法指令把两个16位整数相乘产生一个16位乘积。整数除法指令把两个16位整数相

除产生一个16位商整数。留余数,如果结果大于一个字就置位溢出位。

(4)双整数乘法和整数除法

整数乘法指令把两个32位双整数相乘产生一个32位乘积。双整数除法指令把两个32位双

整数相除产生一个32位商,不保留余数。

整数乘法和除法指令如图2-8所示。

图 2-8 整数的乘法和除法指令

(5)字节增和字节减

字节增(INCB)或字节减(DECB)指令把输入字节(IN)加1或减1并把结果存放到输

出单元(OUT)。字节增减指令是无符号的。

(6)字增和字减

字增(INCW)或字减(DECW)指令把输入字(IN)加1或减1并把结果存放到输出单

元(OUT)。

字增减指令是有符号的(16#7FFF > 16#8000)。

(7)双字增和双字减

双字增或双字减指令把输入字(IN)加1或减1并把结果存放到输出单元(OUT)。整数

递增/递减以及双整数的递增/递减指令如图2-9所示。

图 2-9 整数的递增和递减指令

(8)实数运算

实数运算与整数运算类似,就不作介绍了。

7. SIMATIC 逻辑运算指令 (1)字节逻辑运算

ANDB(字节与):指令对两个输入字节按位进行与操作得到一个字节结果(OUT)。

ORB(字节或):指令对两个输入字节按位进行或操作得到一个字节结果(OUT)。

XORB(字节异或):指令对两个输入字节按位进行异或操作得到一个字节结果(OUT)。

(2)字逻辑运算

ANDW(字与):指令对两个输入字按位进行与操作得到一个字结果(OUT)。

Page 37: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 2 章 常用 PLC 介绍

–29–

ORW(字或):指令对两个输入字按位进行或操作得到一个字结果(OUT)。

XORW(字异或):指令对两个输入字按位进行异或操作得到一个字结果(OUT)。

(3)双字逻辑运算

ANDD(双字与):指令对两个输入双字按位进行与操作得到一个双字结果(OUT)。

ORD(双字或):指令对两个输入双字按位进行或操作得到一个双字结果(OUT)。

XORD(双字异或):指令对两个输入双字按位进行异或操作得到一个双字结果(OUT)。

逻辑与、或、异或指令如图2-10所示。

图 2-10 逻辑运算指令

(4)字节取反、字取反、双字取反指令

INVB(字节取反):指令求出输入字节(IN)的反码得到一个字结果(OUT)。

INVW(字取反):指令求出输入字(IN)的反码得到一个字结果(OUT)。

INVDW(双字取反):指令求出输入双字(IN)的反码得到一个字结果(OUT)。

2.2 Omron C200H PLC

2.2.1 简介

C200H PLC 系统为模块式结构,CPU 单元为系统的核心,包括电源、微处理器、系统存

储器、控制逻辑和接口电路等。基本 I/O 单元和智能 I/O 单元提供现场输入设备和控制输出

设备与 CPU 的接口电路。它们都通过统一的标准总线 SYS-BUS 与 CPU 单元连接,I/O 单元

的个数可根据用户需要配置。另外,CPU 单元上还提供了用户存储器、录音机以及编程器等

外设接口。

C200H PLC 系统的基本组成是:一个母板(安装机架)提供系统总线和模块插槽、一个

CPU 单元、一个存储器单元、一个编程器及基本 I/O 单元若干个。基本 I/O 单元的个数视系

统 I/O 点数及母板上的槽位而定。因为 CPU 单元内装电源,所以系统不需再配电源单元。此

外,CPU 单元内系统存储器中固化了系统管理程序。

C200H PLC 系统还有两种扩展方式可满足用户的不同需求。一种是在 CPU 单元所在的

母板上用电缆连接 I/O 扩展母板,最多可连两个扩展母板,采用串联方式连接,两母板间最

大距离为 10m,但 CPU 与两个扩展母板的距离总和不得超过 12m,扩展母板上可根据需要配

置 I/O 单元,不需要再配 CPU 单元,但要配置扩展电源单元。另一种扩展方式是建立远程 I/O

系统,即在 CPU 母板或扩展母板上配置远程 I/O 主单元,而在另外的扩展母板上配置远程 I/O

从单元,用双绞线或其他通信电缆将远程 I/O 主单元和远程 I/O 扩展单元连接起来构成远程

Page 38: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–30–

I/O 系统,这样既可以扩展系统的 I/O 点数,又可以控制远距离的 I/O 点。每个 C200H PLC

的 CPU 单元最多可连接两个远程 I/O 主单元,系统中最多可配置 5 个远程 I/O 从单元。

2.2.2 OMRON C200H PLC 指令系统

1. 概述 C200H PLC 具有丰富的指令集,可以实现复杂控制操作,并且易于编程。按功能可将指

令分为两大类:基本指令和特殊功能指令。其中基本指令是指直接对输入/输出点进行简单操

作的指令,包括输入、输出和逻辑“与”、“或”、“非”等。在编程器的键盘上设有与基本指

令的符号和助记符相同的键,因此,输入基本指令时按下对应的键即可。特殊功能指令是指

进行数据处理、运算和程序控制等操作的指令,包括定时器与计数器指令、数据移位指令、

数据传送指令、数据比较指令、算术运算指令、数制转换指令、逻辑运算指令、程序分支与

转移指令、子程序与中断控制指令、步进指令以及一些系统操作指令等。特殊指令在表示方

法上比基本指令略为复杂,为了使用编程器输入程序时操作简便,C200H PLC 系统为每条特

殊功能指令指定了一个功能代码,用两位数字表示。因此,在书写特殊功能指令时,助记符

后面要书写该指令的功能代码,并用一对圆括号将代码括起来,具体表示方法见后面的每条

指令说明。

本节将分别介绍各种指令的梯形图符号、助记符、功能和用法,并附有应用指令的实

例。

(1)微分指令

微分指令的应用是 C200H PLC 指令系统的一大特点,微分指令只是在执行条件满足后

第一次扫描时才执行,而且只执行这一次;若执行条件解除后再次满足,则再执行一次。微

分指令有专门对输出点操作的专用指令,也有许多特殊功能指令具有微分特性,即在特殊功

能指令的助记符前标上@符号,则该指令变为微分指令。

(2)指令的操作数和标志

指令是程序的最小单位,由助记符和操作数组成。助记符标志着 CPU 执行此指令所要完

成的功能,而操作数则指出了 CPU 操作的对象。指令可以对 DM 区进行间接寻址,也可以

对立即数进行操作。间接寻址操作数用 DM××××表示,立即数操作数用#××××表示。立即数

可以是十进制表示法,也可以是十六进制表示法,最终取决于指令的需要。 指令执行可能影响的系统标志如下。 � ER:错误标志。 � CY:进位标志。 � EQ:相等标志。 2. 基本指令 LD、OUT、AND、OR、NOT 和 END 这 6 条指令对几乎任何程序都是不可缺少的,除

END 以外。其余 5 条指令在编程器上都有各自对应的键可直接键入这些指令,END 指令作

为特殊功能指令对待,其功能代码为 01。 LD:表示每条逻辑线或逻辑块开始。 OUT:表示输出一位。 AND:表示对两个输入进行逻辑“与”运算。

Page 39: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 2 章 常用 PLC 介绍

–31–

OR:表示对两个输入进行逻辑“或”运算。

NOT:表示取“反”,常用于构成常闭输入,可以和 LD、OUT、AND 和 OR 一起使用。

END(01):表示程序结束。

AND LD:表示两个程序块串联。

OR LD:表示两个程序块并联。

3. 分支和分支结束—IL(02)/ILC(03) IL(02)总是和 ILC(03)一起使用,分别位于一段分支程序的首尾处,如果 IL 的输入

条件不满足(即 IL 支路前面的位为 OFF 状态),则位于 IL 和 ILC 中间的指令不执行,而且

IL 和 ILC 之间的程序所有输出位为 OFF,所有定时器将复位,所有计数器、移位寄存器保持

为以前的状态。

如果 IL 的输入条件满足,那么位于 IL 和 ILC 之间的指令正常执行,如同程序中没有 IL

和 ILC 指令一样。

4. 暂存继电器—TR 在不能使用 IL 与 ILC 编程时,TR 位可用作多个输出分支点上的暂存继电器。TR 位可

以多次使用,但在同一段程序中不能重复使用同一个 TR 位。C200H PLC 共有 8 个 TR 位,

所以一段程序中最多只能有 8 个使用 TR 暂存的分支点。

在系统运行期间,TR 位是不能用编程器或任何设备监测其状态的。

5. 跳转和跳转结果—JMP(04)/JME(05) JMP 和 JME 用于控制程序分支,当 JMP 条件(即 JMP 前的输入状态)为 OFF 时,程

序转去执行 JME 后面的第一条指令。

如果一段程序中有多对 JMP/JME 指令时,用跳转号 N 来区分。跳转号 N 可以是 00~99

之间任意数。但是,JMP00 是一种特殊情况。当 JMP00 和 JME00 之间的指令被跳转时,这

些指令仍被扫描到只是不执行而已,因此仍然占用扫描时间。此外,跳转号不是 00 的 JMP

和 JME 之间的指令则完全被跳转,且根本不需要扫描时间。

在一段程序中 JMP00~JME00 可被使用任意次,而跳转号非 00 的 JMP/JME 则只能用一

次。

跳转与分支指令比较:由于发生 JMP/JME 跳转时,输出继电器区和定时器等的状态可

以保持住,所以 JMP/JME 适用于控制那些需要输出保持的设备(如气动装置和液压系统)。

而 IL/ILC 分支指令适用于控制那些不需输出保持的设备,如电子仪器控制。

6. 闩锁继电器—KEEP(11) KEEP 用作一个闩锁继电器。它可保持为 ON 或 OFF 状态直到它的两个输入端使它复位

或置位。

IR、HR、AR 和 LR 数据区的位都可用作闩锁。如果 HR 或 AR 区某位用作闩锁,则闩

锁位可实现掉电保护。

7. 微分指令—DIFU(13)和 DIFD(14) DIFU 和 DIFD 只在一次扫描时将输出置位。当微分操作指令(即带有前缀@的指令)不

能用或某条指令只希望一次扫描执行时可以用这两条指令。

DIFH 指令在输入端检测到一个 OFF? ON 的跳变信号时,DIFU 输出为 ON。DIFD 指令

在输入端检测到一个 ON? OFF 的跳变信号时,DIFD 输出为 ON。

Page 40: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–32–

IR、HR、AR 和 LR 区的位都可以作为微分指令的输出位。

8. 定时器和计数器指令 定时器为递减型的。定时器有低速和高速两种。定时器的操作数包括定时器号和设定值

(SV)两个数据。当输入条件满足时开始计时,设定时间到时定时器输出为 ON。

计数器包括单向递减型和双向可逆型两种,其操作数包括计数器号和设定值两个数据。

定时器指令如图 2-11 所示。

图 2-11 定时器指令

(1)定时器—TIM

TIM 的最小定时单位为 0.1s,定时范围为 0~999.9s,设定值取值范围为 0~9 999。定时精

度为 0.1s。TIM 指令的梯形图符号如图 2-11 所示,N 为定时器编号,SV 为定时器设定位。

SV 的取值区域可为 IR、HR、AR、LR、DM、*DM 或为立即数(#)。通过连接到 IR 通道的

外部设备设置 SV 时,必须用 0~9 999 的 BCD 数码,否则将会出错。

定时器的操作过程为:当定时器的输入为 ON 时,开始计时,预定时间到的时候则定时

器输出为 ON,否则为 OFF。无论何时只要定时器的输入为 OFF,则定时器输出为 OFF。

在 IL/ILC 块内的定时器在 IL 条件变为 OFF 时被复位。电源掉电也将复位定时器。定时

器指令操作影响的标志位为 ER,当外部设置的 SV 不是 BCD 数时 ER 位置位。

(2)快速定时器—TIMH(15)

快速定时器 TIMH(15)与 TIM 的不同之处在于,TIMH 的最小定时单位为 0.01s,定时

范围为 0.00~99.99s,定时精度为±0.01s。扫描时间对定时器 048~511 的快速定时有影响,如

果扫描时间大于 10ms,则定时器 048~511 可能不精确。除以上说明,其他方面 TIMH 与 TIM相同。

(3)计数器—CNT CNT 是一个预置递减计数器。梯形图符号如图 2-12 所示。当计数输入信号从 OFF? ON

时,计数器的当前计数值(PV)减 1。

图 2-12 计数器指令

计数器设定值范围为 0~9999,必须用 BCD 数设定。SV 的取值区域可以是 IR、HR、AR、

LR、DM、*DM、#。在 IL/ILC 块内的 CNT 当 IL 条件为 OFF 时,其 PV 值将保持不变。

Page 41: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 2 章 常用 PLC 介绍

–33–

CNT 指令影响标志位 ER,当 SV 通道的数据不是 BCD 数时,寻址 DM 通道不存在时

ER 位也置 l。

(4)可逆计数器—CNTR

CNTR 为一个可逆计数器,可加减循环计数,梯形图符号如图 2-13 所示。递增输入信号

或递减输入信号从 OFF? ON 时可分别对当前值(PV)进行加 l 或减 1 操作。但是递增输入

信号和递减信号同时为 ON 时不能进行计数操作。

图 2-13 可逆计数器指令

当复位信号为 ON 时,PV 变为 0。并且不能接收输入信号。若从 0 开始递减,当前值(PV)

置为 SV。计数器设定值范围为 0~9 999,必须是 BCD 数。SV 取值区域为 IR、HR、AR、LR、

DM、*DM。

在 IL/ILC 中 CNTR 的 PV 值将在 IL 条件为 OFF 时保持。

CNTR 指令操作可影响 ER 标志位,若通过外部设置的 SV 值不是 BCD 数,则 ER 位置

1;若由间接寻址的 DM 通道不存在时,ER 位也将置 l。

9. 数据移位指令 这一小节介绍全部数据移位指令,这些指令的主要区别在于移位的位数和方向不同。每

条移位指令都应用功能代码编程。

(1)移位寄存器—SFT(10)

SFT 将指定通道的数据左移一位,SFT 符号如图 2-14 所示,B 为移位开始通道号,E 为

移位结束通道号,B<E,并且 B 和 E 必须在同一数据区。当移位脉冲输入 P 端每接收一个

脉冲信号上升沿时,数据输入 I 端的状态将被移入 B 通道的最低位,B 至 E 的所有通道中的

数据依次左移一位,E 通道的最高位移失。SFT 的复位端为 ON 时,将使 B 至 E 通道的所有

位置 0。B 和 E 的取值区域为 IR、HR、AR、LR。

图 2-14 移位指令

(2)双向移位寄存器—SFTR(84)/ @SFTR(84)

SFTR 为双向移位,@SRTR 为微分型双向移位指令。

SFTR 将指定的一个或者几个连续通道的数据按照位左移或者右移。即使对单一通道进

行移位,也必须指定开始通道 B 和结束通道 E。B 必须小于和等于 E,并且 B 和 E 必须在同

一数据区,而且还要指定一个控制通道,该通道中包含复位输入,移位脉冲输入和输入数据。

Page 42: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–34–

双向移位指令如图 2-15 所示。

图 2-15 双向移位指令

控制通道操作:当复位输入加到 SFTR(即控制通道的第 15 位为 ON 时)时控制通道的

所有位以及进位标志都被清 0,SFTR 不能接收输入数据。当数据向左移动时(从第 00 位向

第 15 位移,控制通道的第 12 位为 ON),控制通道的第 13 位(输入数据)在移位脉冲(控

制通道的策 14 位)的前沿被移进通道 B 的第 0 位,同时 B 通道的所有位都向第 15 位方向移

动,第 15 位则被移进进位标志位。当数据向右移动时(从第 15 位向第 00 位移动,控制通道

的第 12 位为 OFF),输入数据被移进 E 通道的第 15 位,同时通道的所有数据均向 0 位方向

移动一位,而 B 通道的第 0 位数据被移进进位标志位。

B、E 和 C 的取值区城为 IR、HR、AR、LR、DM、*DM。

SFTR 指令影响标志位 ER 和 CY。当 B 和 E 不在同一数据区,或 B>E 时 ER 位置位,

当间接寻址 DM 通道不存在时 ER 位也将置位。CY 位则是由移位方向决定是接收 B 通道的

第 0 位还是 E 通道的第 15 位。

(3)算术左移—ASL(25)/@ASL(25)

ASL 将一个通道中的数据向左移动一位,第 0 位补 0,第 15 位移入 CY 位。Ch 取值区

域为 IR、HR、AR、LR、DM、*DM。ASL 影响以下标志位:

ER:间接寻址 DM 通道不存在时 ER 置位。

CY:接收 Ch 中第 15 位数据。

EQ:当 Ch 中数据为 0000H 时 EQ 置位。

(4)算术右移—ASR(26)/@ ASR(26)。

ASR 将一个通道中的数据向右移动一位。第 0 位移入 CY 位,第 15 位补 0。梯形图符号

如图 2-16 所示。Ch 取值区域为 IR、HR、AR、LR、DM、*DM。影响以下标志位。

图 2-16 算术右移指令

ER 和 FQ 同 ASL 指令。

CY:接收 Ch 的第 0 位。

(5)循环左移—ROL(27)/@ROL(27)

ROL 将一个通道的数据带进位(CY)循环向左移动一位。ROL 将 CY 移进指定通道的

Page 43: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 2 章 常用 PLC 介绍

–35–

第 0 位,该通道的第 15 位移进 CY,第 01~14 位依次向左移。

在循环移位之前,可用 STC(40)和 CLC(41)将 CY 的内容强行置 l 或置 0。

ROL 指令操作影响标志位如下:

ER:间接寻址 DM 通道不存在时,ER=l 。

CY:接收 Ch 中第 15 位数据。

EQ:当 Ch 中数据为 0H 时,EQ=l 。

(6)循环右移—ROR(28)/@ROR(28)

ROR 将一个通道中的数据循环向右移动一位,带进位(CY)。ROR 将 CY 的内容移

进指定通道的第 15 位,第 0 位移入 CY。

在循环移位前用 STC(40)和 CLC(41)将 CY 置 1 或置 0。梯形图符号如图 2-17 所示。

图 2-17 循环右移指令以及指令操作示意图

ROR 指令操作影响标志位如下:

ER、EQ 同 ROL 操作指令。

CY:接收 Ch 中第 0 位数据。

(7)数字左移—SLD(74)/@SLD(74)

SLD 将一个或连续几个通道中的数据依次移动一个数字(4 位)。移位以后开始通道中的

第 1 个数字(0~3 位)补零,结束通道中最高位数字(12~15 位)将丢失。SLD 梯形图符号

如图 2-18 所示。

图 2-18 数字左移指令

B 和 E 必须在同一数据区,B、E 之间不得相差 50 个通道,且必须 B<E。B 和 E 取值区

域为 IR、HR、AR、LR、DM、*DM 。

SLD 操作影响标志位 ER:若 B 和 E 不在同一数据区,或 B>E 时 ER 位置 1;或者当间

接寻址 DM 通道不存在时 ER 位也将置 1。

(8)数字右移—SRD(75)/@SRD(75)

SRD 将一个或者几个连续通道中的数据依次右移一个数字(4 位)。移位以后开始通道中

第一个数字(第 0~3 位)将丢失,而结束通道中最高位数字(第 12~5 位)将补零。

Page 44: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–36–

SRD 梯形图如图 2-19 所示。

图 2-19 数字右移指令

(9)字移位—WSFT(16)/@WSFT(16)

WSFT 以通道为单位将数据从开始通道向结束通道依次移动一个字(16 位)。开始通道

中补零,结束通道中的数据将丢失。WSFT 梯形图符号如图 2-20 所示。

图 2-20 字移位指令

B 和 E 必须在同一数据区,且必须 B<E,B 和 E 取值区域为 IR、HR、AR、LR、

DM,*DM。

WSFT 操作影响 ER 标志位,当 B 和 E 间接寻址 DM 通道不存在时 ER 位也将置 1。

10. 数据传送指令 数据传送是 PLC 内部数据区操作的重要手段。链接系统中的通信也要用到数据传送。每

条指令都要用功能代码编程。

(1)数据传送—MOV(21)/@MOV(21)

数据求“反”传送—MVN(22)/@MVN(22)

MOV 将源数据(或者是指定通道中的数据,或者是一个 4 位十六进制常数)传送到目

的通道中(某个指定的通道)。

MVN 先将源数据求“反”,然后传送至目的通道。数据传送指令以及数据求反传送指令

如图 2-21 所示。

图 2-21 数据传送指令 MOV 和 MVN

Page 45: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 2 章 常用 PLC 介绍

–37–

S 取值区域为 IR、SR、HR、AR、LR、TC、DM、*DM。

D 取值区域为 IR、HR、AR、LR、DM、*DM。

MOV 和 MVN 指令操作影响标志位 ER 和 EQ。当间接寻址 DM 通道不存在时 ER 位置 1;

当目的通道中数据为零(D=0)时,EQ 位置 1。

(2)多通道置数—BSET(71)/@BSET(71)

BSET 将某一通道的数据或一个常数传送到几个连续的通道中。目的通道由开始通道号

B 和结束通道号 E 指定,B 和 E 必须在同一数据区,而且必须 B<E。

BSET 可用来改变定时器/计数器数据,而 MOV(21)或 MVN(22)则不能这样用。多

通道置数指令梯形图如图 2-22 所示。

图 2-22 多通道置数指令

S 取值区域为 IR、SR、HR、AR、LR、TC、DM、*DM。

B/E 取值区域为 IR、HR、AR、LR、TC、DM、*DM。

BSET 影响标志位 ER,当 B 和 E 不在同一个数据区时,或 B>E 时,ER 位置 1。

(3)块传送—XFER(70)/@XFER(70)

XFER 指令将几个相邻通道的内容分别传送到另外几个相邻通道中。块传送指令如图

2-23 所示。

图 2-23 块传送指令

N 是被传送的数据块所包含的通道数,N 的取值范围为 IR、SR、HR、AR、LR、TC、

DM。但是 N 必须以 BCD 数形式出现。

S 和 D 取值区域为 IR、SR、HR、AR、LR、TC、DM。S 还可以从 SR 区中取值。另外

S 和 D 可以在同一数据区,但这个数据块不能占用同一数据区中的相同的通道。

XFER 指令操作影响标志位 ER,当 N 不是 BCD 数时,或 N+S 的结果大于 S 所在数

据区的容量时,ER 位将置 1;或者当间接寻址 DM 通道不存在时,ER 位也将置 1。

(4)数据交换—XCHG(73)/@XCHG(73)

XCHG 将两个不同通道的数据进行交换。如果想把包含不止一个通道的两个数据块进行

交换,则可以用一个数据区作为中间缓冲区,利用块传送指令 XFER(70)实现交换。

E1 和 E2 取值区域为 IR、HR、AR、LR、TC、DM、*DM。

Page 46: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–38–

XCHG 指令操作影响标志位 ER,当间接寻址 DM 通道不存在时,ER 位置 1。

数据交换指令如图 2-24 所示。

图 2-24 数据交换指令

(5)变址传送—DIST(80)/@DIST(80)

DIST 将一个通道中的数据或一个立即传送到一指定的目的通道中去,该目的通道的地

址由基地址和偏移量之和决定。变址传送指令如图 2-25 所示。

图 2-25 变址传送指令

S 取值区域为 IR、SR、HR、AR、LR、TC、DM、*DM。

DB、S 和 OF 取值区域为 IR、HR、AR、LR、TC、DM、*DM,OF 也可直接取 BCD 形

式的立即数,不论 OF 取值区域如何,OF 必须是 BCD 数。目的通道地址必须与目的通道基

地址在同一数据区内。

DIST 指令操作影响标志位 ER 和 EQ。

ER:OF 不是 BCD 数时,或 DB+OF 的结果大于 DB 所在区域存储容量时,ER 位置 1;

或者间接寻址 DM 通道不存在时 ER 位也将置 1。

EQ:S 中数据为 0H 时,EQ 位置 1。

(6)变址传送—COLL(81)/@COLL(81)

COLL 将源通道的数据写入目的通道。源通道地址由基地址与偏移量之和决定。梯形图

符号如图 2-26 所示。

图 2-26 变址传送指令 COLL

SB 取值区域为 IR、SR、HR、AR、LR、TC、DM、*DM、#。实际的源通道地址必须与

SB 在同一数据区。OF 取值区域为 IR、HR、AR、LR、TC、DM、*DM、#。无论取何数据,

OF 必须是 BCD 数。D 取值区域为 IR、HR、AR、LR、TC、DM、*DM。

COLL 指令操作影响标志位 KR 和 EQ。

Page 47: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 2 章 常用 PLC 介绍

–39–

ER:当 OF 数据不是 BCD 数时,或 SB+OF 的结果大于 SB 所在数据区的容量时, ER

位置 l。或者间接寻址 DM 通道不存在时,ER 位也将置 1。

(7)位传送—MOVB(82)/@MOVB(82)

MOVB 将源数据中的指定位传送到目的通道中的指定位。源位和目的位寻址由控制通道

中的 BCD 数说明。梯形图符号如图 2-27 所示。

图 2-27 位传送指令

S 取值区域为 IR、SR、HR、AR、LR、TC、DM、*DM、#。S 可取 0~FFFFH 之间的

立即数。

C 和 D 取值区域为 IR、HR、AR、LR、TC、DM、*DM、#也可以取立即数,但必须是

BCD 数,并且是两个 15 以内的数的组合。

MOVB 指令操作影响标志位 ER,若控制数据不是 BCD 数,或 C 指定的位号不存在时,

ER 位都将置 1,或者间接寻址 DM 通道不存在时,ER 也置位。

(8)数字传送—MOVD(83)/@MOVD(83)

MOVD 将指定通道中的十六进制数或一个立即数(十六进制表示的)传送到目的通道中。

可按数字位分别传送到目的通道中的指定数字位,这条指令一次最多可传送 4 位数字(共 16

个二进制位)。梯形图符号如图 2-28 所示。

图 2-28 数字传送指令

S 取值区域为 IR、SR、HR、AR、LR、TC、DM、*DM 和#。

C 和 D 取值区域为 IR、HR、AR、LR、TC、DM、*DM。此外 C 可以是立即数 0~3。

控制数据 C 用于指定被传送数字在源数据和目的通道中的位置,C 的格式及功能如图

2-29 所示。

图 2-29 数字传送指令的控制字节各个位的含义

Page 48: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–40–

C 中的各位数字不能大于 3。如果要传送 4 位数字,且指定目的通道中起始位号为“2”,

则 MOVD 指令将 4 位源数字分别传送到目的通道中第 2、3、0 和 1 位。

MOVD 指令操作影响标志位 ER;当控制数据中的数字不是 0、1、2 或 3 时 ER 位置 1,

或者当间接寻址 DM 通道不存在时 ER 位也置 1。

11. 数据比较指令 C200H PLC 的数据比较指令有单通道数据比较指令、数据块比较指令和表比较指令 3 种。

本节分别介绍这些比较指令。比较指令必须用功能代码编程。

(1)数据比较—CMP(20)/@CMP(20)

CMP 用来比较两个通道中的数据,并将结果输出到 SR 区的 GR、EQ 和 LE 标志位。

CMP 梯形图符号如图 2-30 所示。

图 2-30 数据比较指令

C1 和 C2 取值区域为 IR、SR、HR、AR、LR、TC、DM、*DM、#。但是 C1 和 C2 不

能同时为立即数。

CMP 指令执行后立即影响 EQ、LE 和 GR 标志位。如表 2-7 所示。若间接寻址 DM 通道

不存在,则 ER 位置 1。

表 2-7 CMP 指令影响标志位

C1 < C2 C1 = C2 C1 > C2

EQ 0 1 0

LE 1 0 0

GR 0 0 1

(2)块比较—BCMP(68)/@BCMP(68)

BCMP 首先指定一个用于比较的数据 CD,同时还指定一个数据块和一个存放比较结果

的通道。数据块中共包括 32 个连续的通道,由 CB 指定数据块的起始通道号,从 CB 开始每

两个连续的通道作为一组,共有 16 组。这 16 组通道中的 32 个数据可由用户设置或随机存放,

但是每组数据必须是数值小的数据存入通道号低的通道中。这 16 组数据的比较结果分别存入

结果通道 R 中的对应位。

BCMP 指令具体操作如下:把每组数据中的第一个数据(数值相对小的)作为比较的下

限值,把第二个数据(数值相对大的)作为比较的上限值,用指定的比较数据 CD 分别和每

组数据进行比较,若下限之 CD<上限,则该组比较的结果为“l”,写入结果通道 R 中与该

组对应的位中,否则比较结果为“0”,也写入 R 中与该组对应的位中。

BCMP 梯形图符号如图 2-31 所示。

CD 取值区域为 IR、SR、HR、AR、LR、TC、DM、*DM。

CB 取值区域为 IR、HR、LR、TC、DM、*DM。

CD 和数据块中的数据必须使用相同的数制。

Page 49: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 2 章 常用 PLC 介绍

–41–

图 2-31 块比较指令

R 取值区域为 IR、HR、LR、AR、DM、*DM。

BCMP 指令操作影响 ER 标志位:若数据块超出了所在数据区的范围(即 CB+3l 大于所

在数据区的最大通道号),则 ER 位为“1”。或者当间接寻址 DM 通道不存在时,ER 位也为

“1”。

(3)表比较—TCMP(85)/@TCMP(85)

TCMP 首先指定一个用于比较的数据 CD,同时指定一个数据表和一个存放比较结果的

通道。数据表中包含 16 个连续的通道,由 TB 指定数据表的起始通道号。结果通道 R 中的每

一位对应于数据表中的每一个通道数据的比较结果。

TCMP 指令操作如下:把数据表中每一个通道内的数据依次与指定的比较数据 CD 进行

比较,如果两个数据相等,则 R 中与该通道对应位写入 1,否则写入 0。

TCMP 梯形图符号如图 2-32 所示。

图 2-32 表比较指令

CD 取值区域为 IR、SR、HR、AR、LR、TC、DM、*DM。

TB 和 R 取值区域为 IR、HR、LR、TC、DM、*DM。

CD 和数据表中的数据必须使用相同的数制。

TCMP 指令操作影响标志位 ER。若数据表超出了数据区的范围(即 TB~TB+15 大于)

所在数据区的最大通道号),则 ER 位置 1,或者当间接寻址 DM 通道不存在时,ER 位也置 1。

12. 数制转换指令 数制转换指令将指定通道中的数据转换成另外一种数制表示,并输出至指定的通道中。

数制转换指令必须用功能代码编程。

(1)BCD 数转换成二进制数—BIN(23)/@BIN(23)

BIN 将一个通道中的 4 位十进制数转换成 16 位二进制数,并将其输出到结果通道。BIN

指令如图 2-33 所示。

图 2-33 BCD 数转换二进制数指令

S 取值区域为 IR、SR、HR、AR、LR、TC、DM、*DM。

Page 50: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–42–

R 取值区域为 IR、HR、AR、LR、DM、*DM。

(2)双通道 BCD 数转换成二进制数—BINL/@BINL

BINL(双通道 BIN)将一个 8 位 BCD 数(在两个通道中)转换成 32 位二进制数据,并

将转换结果输出至结果通道。BINL 如图 2-34 所示。

图 2-34 双通道 BCD 数转换为二进制数指令

S 取值区域为 IR、SR、HR、AR、LR、TC、DM、*DM。

R 取值区域为 IR、HR、AR、LR、DM、*DM。

BINL 指令操作影响标志位 ER 和 EQ。

ER:当 S 或 S+1 通道中数据不是 BCD 数时,或当间接寻址 DM 通道不存在时,ER 位

置 1。

EQ:当结果通道中数据为 0 时,EQ 位置 1。

(3)二进制数转换成十进制数—BCD(24)/@BCD(24)

BCD 将源通道中的 16 位二进制数转换成 4 位 BCD 码,并输出至结果通道中。如图 2-35

所示。

图 2-35 二进制数转换为 BCD 数

S 取值区域为 IR、SR、HR、AR、LR、DM、*DM。

R 取值区域为 IR、HR、AR、LR、DM、*DM。

BCD 指令操作影响标志位 ER 和 EQ。

ER:当结果通道中数据溢出时(即 R 中数据>9 999),或间接寻址 DM 通道不存在时,

ER 位置 1。

EQ:结果通道中数据为 0 时,EQ 位置 1。

如果源通道中数据超过 270FH 时,则转换后的结果将超过 9 999,此时指令不执行。当

指令不执行时,R 保持原来数据不变。

(4)双通道二进制数转换成 BCD 数—BCDL(59)/@BCDL(59)

BCDL(双通道 BCD)将两个通道中的 32 位二进制数据转换成 8 位 BCD 数,并将转换

结果输出至结果通道。指令如图 2-36 所示。

图 2-36 双通道二进制数转换为 BCD 数

Page 51: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 2 章 常用 PLC 介绍

–43–

S 取值区域为 IR、SR、HR、AR、LR、TC、DM、*DM。

R 取值区域为 IR、HR、AR、LR、DM、*DM。

BCDL 指令操作影响标志位 ER 和 EQ。

ER:若结果通道中数据溢出(即 R+1,R 通道中数据大于 99 999 999)时,ER 位置 1;

或者当间接寻址 DM 通道不存在时 ER 位也置 1。

EQ:若结果通道中数据为 0 时,EQ 位置 1。

(5)数字译码—MLPX(76)@MLPX(76)

MLPX 指定一个源通道,其中数据为 4 位十六进制数,还可以为每位数字分别指定一个

结果通道。MLPX 指令操作将指定的源通道中的数字译为 0~15 的十进制代码。用此代码作

为位号,将指定结果通道中的对应位置为“1”。可以对源通道中的任意一位数字单独译码,

也可以同时对其中几个数字译码。但最多只有 4 位数字同时译码。结果通道数与译码的数字

源位数相等。指令执行后通道中数据不会改变。数字译码指令如图 2-37 所示。

图 2-37 数字译码指令

S 取值区域为 IR、SR、HR、AR、LR、TC、DM、*DM。

Di 用于指定对 S 中的哪位数字进行译码以及译码的数字位数。

Di 中低8 位数据应是两个0~3 的BCD 数。Di 的取值区域为 IR、HR、AR、LR、DM、*DM、TC。

RB 为结果通道起始通道号,若只译码一个数字,则 RB 指定一个结果通道;若译码多个

数字则 RB 指定结果通道的第 1 个通道号,其余结果通道号依次加 1。RB 的取值区域为 IR、

HR、AR、LR、DM、*DM。

MLPX 用于对多位数字译码时,第 1 个要译码的数字位可任意指定,译码结果输出至

RB;第 2 个要译码的数字必须是紧邻第 1 个数字位的高位数字,译码结果输出 RB+1 通道;

第 3 个要译码的数字必须是紧邻第 2 个数字位的高位数字,译码结果输出至 RB+2 通道;其

余类推。

MLPX 指令操作影响标志位 ER,若 RB+n(n<3)超出了 RB 所在数据区的最大通道号,

或 Di 中低位数字大于 3,则 ER 位置 1。

(6)数字编码—DMPX(77)/@DMPX(77)

DMPX 将源通道中为“1”的位的最高位号编码为一个十六进制数,并将其输出至结果

通道中指定的数字位,而结果通道中其他位数据不变。1 次最多可对 4 个连续的源通道进行

编码,得到 4 个数字送至结果通道中。梯形图符号如图 2-38 所示。

图 2-38 数字编码指令

Page 52: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–44–

SB 为源通道的开始通道号。SB 取值区域为 IR、SR、HR、AR、LR、TC、DM。

R 取值区域为 IR、HR、AR、LR、TC、DM。

Di 数字标志用于指定编码数字输出至结果通道的位号以及被编码的通道数。Di 取值区

域为 IR、HR、AR、LR、DM。

Di 中低 8 位数据必须是两个 0~3 的 BCD 数。DMPX 指令操作影响标志 ER,当 Di 错误

时或者 SB+1~SB+3 超过 SB 所在的数据最大通道号时,ER 位置 1,或者当间接寻址 DM 通

道不存在时,ER 位也置 1。

(7)七段显示译码—SDEC(78)/的 SDEC(78)

SDEC 将指定的源通道中的 4 位十六进制数分别译为供七段数码管显示用的代码并将译

好的代码输出至指定的结果通道的低 8 位或高 8 位。如图 2-39 所示。

图 2-39 七段显示译码指令

S 取值区域为 IR、SR、HR、AR、LR、TC、DM、*DM。

Di 为数字标志,用于指定对源通道中的哪一位或哪几位数字进行译码。Di 的取值 R 域

为 IR、HR、AR、LR、DM、*DM、TC。

DB 用于指定译码输出的开始通道号,若要译码 1 位数字,则结果通道只有 DB 通道;

若要对源通道中 2 位数字译码,则结果通道为 DB 和 DBH,其余类推。DB 取值区域为 LR、

HR、AR、LR、DM、*DM。

SDEC 指令操作影响标志位 ER。当数字标志错误,或 DB+1~DB+3 超出 DB 所在数据区

最大远道号时,ER 位置 1,或者当间接寻址 DM 通道不存在时,ER 位也置 1。

(8)ASCII 码转换—ASC(86)/@ASC(86)

ASC 将源通道中指定的 4 位十六进制数分别转换成 8 位的 ASCII 代码,输出至结果通道

的低 8 位或高 8 位。ASCII 码转换指令如图 2-40 所示。

图 2-40 ASCII 码转换指令

S 取值区域为 IR、SR、HR、AR、LR、TC、DM、*DM。

Di 为数字标志,用于指定对 S 中的哪个数字进行转换,以及转换结果在结果通道中的位

置。Di 取值区域为 IR、HR、AR、LR、DM、*DM、TC。

DB 取值区域为 IR、HR、AR、LR、DM、*DM。

Page 53: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 2 章 常用 PLC 介绍

–45–

ASC 指令操作影响标志位 ER。如果数字标志错误、DB+1~DB+2 超出 DB 所在数据区的

最大通道号时 ER 位置 1,或者当间接寻址 DM 通道不存在时 ER 位也置 1。

ASC 指令操作原理与 SDEC 指令操作原理基本相同。

13. BCD 运算指令 BCD 运算指令 INC、DEC、ADD、ADDL、SUB、SUBL、MUL、MULL、DIV、DIVL、

FDIV 以及 ROOT 可实现 BCD 数据的全部算术运算。

INC 和 DEC 指令的输入/输出是通过相同的通道。即输入通道的数据将被运算结果覆盖。

STC 和 CLC 指令分别为置进位标志和清进位标志,因为多数 BCD 运算结果要利用进位标志,

所以这两条指令也包括在这组指令中。

� 注:加法和减法指令不仅在结果中使用 CY,而且在运算过程中也要用到 CY。

如果不需要 CY,一定要清除。 (1)递增(加 1)—INC(38)/@INC(38)

INC 将 4 位 BCD 数据加 1,不影响进位标志(CY)。

(2)递减(减 1)—DEC(39)/@DEC(39)

DEC 将一个 4 位 BCD 数据减 1,不影响进位标志 CY。DEC 操作与 INC 操作基本相同,

所不同的是对数据进行减 1 而非加 1。

(3)置进位标志—STC(40)/@STC(40),清进位标志——CLC(41)/@CLC(41)

STC 向进位标志位 CY 输出“1”。CLC 向进位标志位 CY 输出“0”。

(4)加数加法—ADD(30)/@ADD(30)

ADD 将两个 4 位 BCD 数相加,其结果输出至指定通道。进位标志 CY 参加运算。ADD

指令如图 2-41 所示。

图 2-41 加法指令

(5)双字长 BCD 加法—ADDL(54)/@ADDL(54)

ADDL 对两个通道中的 8 位 BCD 数作带进位加法,并将结果输出至指定通道。

(6)BCD 减法—SUB(31)/@SUB(31)

SUB 对两个 4 位 BCD 数作带进位减法,并将结果输出至指定的通道。

(7)双字长 BCD 减法——SUBL(55)/@SUBL(55)

SUBL 对两个 8 位 BCD 数作减法,影响进位标志,并将结果输出到指定通道中。

(8)BCD 乘法—MUL(32)/@MUL(32)

MUL 将两个 4 位 BCD 数相乘,乘积输出到指定通道。输出占用两个通道。

(9)双字长 BCD 乘法—MULL(56)/MULL(56)

MULL 将两个 8 位 BCD 数作乘法运算,乘积输出到指定通道,乘积需占用 4 个通道。

Page 54: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–46–

(10)BCD 除法—DIV(33)/@DIV(33)

DIV 对两个 4 位数作除法运算,将结果输出到指定的通道,商占用一个通道,余数占用

一个通道。

(11)双字长 BCD 数除法—DIVL(57)/@DIVL(57)

DIVL 对两个 8 位 BCD 数作除法,并将结果输出至指定通道,商占用 2 个通道,余数占

用 2 个通道。

(12)浮点数除法—FDIV(79)/@FDIV(79)

FDIV 对两个浮点数作除法运算,并将结果输出到指定的通道。被除数、除数和商均为

浮点数,各占用两个通道。

(13)求平方根—ROOT(72)/@ROOT(72)

ROOT 求上个 8 位 BCD 数的平方根,并对结果取 4 位整数输出至指定通道。

14. 二进制数运算指令 二进制数运算指令加、减、乘和除能完成二进制数的全部算术运算。加法和减法指令不

仅输出运算结果,而且在运算中影响进位标志 CY。如果运算过程中不需要 CY,务必先清除

CY。

(1)二进制加法—ADB(50)/@ADB(50)

ADB 将两个 16 位二进制数相加并将结果送至指定通道。

(2)二进制减法—SBB(51)/@SBB(51)

SBB 对两个 16 位二进制数作带进位标志减法运算,并将结果输出到指定通道。如果两

数之差为负数,则 SBB 将 CY 置为 1,并将差值的二进制补码送至结果通道。

(3)二进制乘法—MLB(52)/@MLB(52)

MLB 对两个 16 位二进制数作乘法,将乘积(32 位)送至结果通道。

(4)二进制除法—DVB(53)/@DVB(53)

DVB 对两个 16 位二进制数作除法运算,将商和余数输出到指定的通道中。

15. 逻辑运算指令 逻辑运算指令 COM、ANDW、ORW、XORW 以及 XNRW 能够以通道为单位对数据进

行逻辑运算。

每条逻辑运算指令用功能码编程。用编程器输入这些指令时然后键入相应的功能码。

(1)求“反”—COM(29)/@COM(29)

COM 对单个通道数据按位求“反”,即将原来为 ON 的位清零,将原来为 OFF 的位置 1。

(2)逻辑“与”—ANDW(34)/@ANDW(34)

ANDW 对两个 16 位二进制数作逐位逻辑“与”运算,并将结果输出至指定通道。

(3)逻辑“或”—ORW(35)/@ORW(35)

ORW 对两个十六位二进制数作逐位对应逻辑“或”运算,并将结果输出到指定通道。

(4)逻辑“异或”—XORW(36)/@XORW(36)

XORW 对两个 16 位二进制数作逐位“异或”运算,并将结果输出到指定通道。

(5)逻辑“异或非”—XNRW(37)/@XNRW(37)

XNRW 对两个 16 位二进制数作逐位“异或非”运算,并将结果输出到指定通道。

Page 55: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 2 章 常用 PLC 介绍

–47–

16. 子程序 C200H PLC 的子程序调用功能允许用户把一个大的控制任务划分为一些小的部分,当主

程序调用一个子程序时,由 CPU 来执行子程序中的指令。在子程序中的全部指令执行完毕之

后,CPU 转回主程序中,从调用子程序指令的下一条指令开始执行。

子程序定义—SBN(92)/RET(93)

SBNN 和 RET 分别表示一个子程序的开始和结束。如图 2-42 所示。

图 2-42 子程序调用指令

当主程序执行过程中遇到 SBN 时,程序控制转向子程序 N,此处 N 为一个两位数字的

子程序标号。主程序可以无限次调用子程序。子程序嵌套最多可达 16 级。

17. 步进指令 步进指令 STEP 和 SNXT 用于在大型程序中为各个程序段建立连接点,特别适用于顺序

控制方面的应用。通常把整个系统的控制程序划分为一系列的程序段,每个程序段对应于工

艺过程中的一部分。用步进指令可以按指定的顺序分别执行各个程序段,必须在前一段程序

执行完以后才能执行下一段,并且在下一段程序执行之前,CPU 要清数据区并复位定时器。

一个程序段通常按照实际应用中的一个过程来定义。程序段内部编程同普通程序编程一

样,但是有些指令不能用在步进程序段中(例如 IL/ILC 和 JMP/JME 指令)。

单步指令—STEP(08),步进指令—SNXT(09)

梯形图符号如图 2-43 所示。

图 2-43 步进指令

程序段编号 N 其实是一个位地址号,这个位号用作各程序段的通路控制。N 取值区域为

IR、HR、AR、LR。

STEP(08)N 和 SNXT(09)N 用来定义步进程序段,STEP(08)不带操作数 N 时表

示由 STFP(08)N 和 SNXT(09)N 定义的一系列程序段结束。

每个步进程序段必须由 SNXT(09)N 指令开头,并且紧跟其后用一条 STEP(08)N 指

令。其中 N 值相同,然后才是该程序段的指令集。各步进段程序可顺序编排。一系列步进程

序段都编好后,最后要紧跟一条 SNXT(09)N 指令,其中 N 值无意义,可用任何未被系统

用过的位号,在这条 SNXT(09)N 指令之后,还要用不带操作数的 STEP(08)指令来标志

这一系列步进程序段结束。

CPU 执行到每个步进段开头的 SNXT(09)N 指令时,先为该程序段复位前面程序使用

过的定时器,并对前面程序使用过的数据区清零。STEP(08)N 则标志着以 N 为位能信号

Page 56: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–48–

的程序段开始。

如果程序段编号 N 是在 HR 或 AR 区中,则可以掉电保护。

在步进程序中,END(01)、IL(02)、ILC(03)、JMP(04)、JME(05)、SBN(92)

指令不能使用。

2.3 松下 PLC 介绍

在本小节中介绍一下松下 FP 系列 PLC 的基本功能和一些指令。

2.3.1 功能简介

1. 初始化功能 INITIALIZE/TEST(初始化/测试)开关,可以将 PLC 内部状态重新设定为初始化状态

(即默认值)。这个开关只有当 PLC 处于“PROG”方式时才有效(包括 REMOTE 方式下的

“PROG”方式),而在程序执行期间(即“RUN”方式)不起作用。当此开关置为 “INITIALI”

时,“PROG”方式指示灯的亮度会变暗。以表示初始化工作正在进行。

下列寄存器可以通过“初始化”操作进行初始化:

� 外部输入(x)

� 外部输出(Y)

� 内部继电器(R)

� 特殊继电器(R)

� 定时/计数器(T/C)

� 索引寄存器(IX,IY)

� 数据寄存器(DT)

� 文件寄存器(FL)

� 链接寄存器(LD)

� ·特殊数据寄存器(DT) � 链接继电器(L) � 定时/计数预置值设定区(Sv) � 定时/计数经过值存放区(Ev) � 步进保持状态 � 应注意的是,使用初始化/测试开关对 PLC 进行初始化时,只能对上面指定的

寄存器(不包括系统寄存器,后者只能通过编程工具)进行初始化。 2. 测试运行功能 这一功能便于用户对 FP3 系统进行程序模拟、试运行和过程调试。在使用该功能前应先

进行设定。在该功能下可设定 3 种运行测试条件: � 连续运行/单步运行 � 断点使能/不使能 � 输出使能/不使能

Page 57: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 2 章 常用 PLC 介绍

–49–

在使用测试功能的时候需要注意以下几点。

(1)如果在 PLC 处于“PROG”方式时用 FP 编程器Ⅱ将其设置为“运行编辑”方式,

则 PLC 仍在“PROG”方式下运行。即在“PROG”方式下,“运行编辑”方式的设置不会影

响 PLC 的运行。而在 PLC 处于“RUN”方式时。将其设置为“编程编辑”方式,则会出现

错误信息“PLC MODE—ERROR”,并且发出报警声。

(2)应确保 MC 和 MCE 指令合理配对使用,因为系统对于该指令是否配对不予检查。

(3)应确保 Fn 和 Pn 类型的指令不混合使用,因为系统对于这两类指令的混合使用不

予检查。

(4)对 TM/CT 的预置值进行修改与重写。

① 修改。使用外围设备(如 FP 编程器)选定 PLC 工作方式为“编程编辑”。通常在此

方式下,PLC 运行期间是不能进行写入的,而只有 TM/CT 指令的预置值可以修改。一旦修

改,该操作数从运行之时起被确认。

② 重写。若使用外围设备选定 PLC 工作方式为“运行编辑”,则可对 TM/CT 指令的预

置值进行重写。一旦重写,该操作数从运行之时起的下一个扫描周期后被确认。

3. 采样跟踪功能 (1)定义及规定

① 采样跟踪功能是按照预先设定的参数或指令对 PLC 内部的继电器和数据进行采样。

② 可采样的对象包括继电器触点和数据两种。

继电器触点:16 点(只能用于外部输入(X)、外部输出(Y)、内部继电器(R)、定时

器(T)、计数器(C)和链接继电器(L))。

数据:3 个字(只能用于特殊数据寄存器(DT)、链接寄存器(LD)、文件寄存器(FL),

预置值寄存器(SV)、经过值寄存器(EV)和字输入/输出寄存器(WX、WY、WR、W1))。

(2)采样时刻

指令采样:在采样指令被执行的瞬间采样数据。

定时采样:以固定的时间间隔进行采样。这一间隔可以设定在 10~3 000ms 之内。

采样数据存储量:最大 1 000 个字(对 1 000 个样本,16 个接点加 3 个字/样本)。

2.3.2 CPU 单元指令系统

1. FP3 指令 FP3 PLC 的指令系统中,“基本指令”部分与 FP1 机相同,只是增加了个别的新指令。

其高级的指令除了 FP1 原有的“Fn”类型指令之外,又增加了另一种类型的指令,即“Pn”

类型的指令。即“Pn”类型的指令和 FP3 特有的指令可以称为特殊指令,下面将其新增加的

指令作一个介绍。

(1)Fn 类型指令和 Pn 类型指令

在 FP3 中,有两类高级指令,即 Fn 类型和 Pn 类型。两者的编码是一一对应的,即有一

个 Fn 就有一个 Pn。两者的区别是:前者每次扫描均执行一次指令,而后者只执行一个扫描

周期。

图 2-44 可以说明两者之间的区别。

Page 58: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–50–

(a)Fn 指令执行时序 (b)Pn 指令执行时序

图 2-44 Fn 和 Pn 指令执行时序

由图 2-44 可见,Pn 类型的指令相当于 Fn 类型加入微分指令。使用这类指令可以缩短程

序执行时间,而又免除加入微分指令的麻烦。

使用这类指令时应注意,一般情况下 Fn 和 Pn 这两类指令不允许混在一起用,否则易引

起混乱。当把一个 Fn 指令放在一段两类指令混用的程序的开头时,则运行该程序段时所有

指令均被当作 Fn 指令执行。

(2)断点指令(BRK)

在前面介绍 FP-CPU 单元的特殊功能时,提到了断点设置功能,这里结合断点指令介绍

如何设置断点。该指令书写格式如图 2-45 所示。

图 2-45 断点指令

该指令可用手持编程器或上位机软件输入,输入方法与一般指令相同。

断点指令只能在“TEST”方式下使用。若不是在“TEST”方式下,程序运行时,该指

令被当作“NOP”指令处理;而在“TEST”方式下,若设置为“断点不使能”,则该指令也

被当作“NOP”指令处理。

(3)先入先出指令(FIFO)

FIFO 即 First�In�First�Out。这类指令有: F115FIFT:定义 FIFO 缓冲器。 F116FIFR:从 FIFO 缓冲器中读取数据。 F117FIFW:向 FIFO 缓冲器中写入数据。 这里略去了与 Fn 类型相对应的 Pn 类型的先入先出指令。 指令书写格式如图 2-46 所示。

图 2-46 先入先出指令

指令中各参数意义如下。 n:FIFO 缓冲区大小。 D1:FIFO 缓冲区首地址。

Page 59: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 2 章 常用 PLC 介绍

–51–

s:写入 FIFO 缓冲区的 16 位数据或存放该数据的寄存器。

D2:存放 FIFO 缓冲区读出数据的寄存器区首地址。

FIFO 指令所用到的特殊继电器如下。

R9007:这是 FIFO 的错误标志继电器。当出现以下 3 种类型的的错误时,该继电器接通

并保持此状态,同时错误的地址被写入 DT9017。

① 当使用 F115(FIFT)指令时:

(a)n > 256

(b)n = 0

(c)FIFO 缓冲区地址超限。

② 当使用 F117(FIFW)指令时:

(a)n > 256

(b)n = 0

(c)K > n

(d)PL > n

(e)PL > 256

(f)FIFO 缓冲区地址超限。

③ 当使用 F116(FIFR)指令时:

(a)n > 256

(b)n = 0

(c)K > n

(d)K = 0

(e)PH > n

(f)PL > 256

(g)FIFO 缓冲区地址超限。

R9008:这也是 FIFO 的错误标志继电器,当出现上述错误之一时,该继电器接通一瞬间,

同时错误地址被写入 DT9018。

2. FP2 的指令系统 除了 FP3 已有的指令之外,在 FP2 中还增加了许多新的指令,下面对这些新增指令分类

作简单的介绍。

(1)基本指令

在基本指令中主要增加了边沿触发型逻辑运算及处理指令,这包括 ST、AND、OR、OT

和 ALT 指令。这些指令的特点是,只在检测到触点的上升沿或者下降沿时,才执行后面的运

算和处理。为了与原来的电平触发型指令区别,需要使用如下助记符:

ST?:当检测到触点的上升沿时,开始一个逻辑运算,且该运算只持续一个扫描周期。

AND?:当检测到触点上升沿时,执行“与”逻辑运算,且该运算只持续一个扫描周期。

OR?:当检测到触点上升沿时,执行“或”逻辑运算,且该运算只持续一个扫描周期。

OT?:当检测到触点上升沿时,将一个扫描周期内的运算结果输出。该指令只适用于脉

冲式继电器。

与上面这组相对应的还有一组下降沿触发型指令。其区别就是将上箭头改为下箭头,其

Page 60: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–52–

触发条件与上升沿的相反。

ALT 指令不加箭头,该指令每检测到一次触点的上升沿则将输出条件反转一次。

(2)数据运算以及处理指令

高级运算指令中新增加了一组数据运算以及处理指令。

① 32 位数据逻辑运算指令(F215~F219)

F215:32 位数据“与”。

F216:32 位数据“或”。

F217:32 位数据“异或”。

F218:32 位数据“同或”。

F219:32 为数据“并集”。

② 码变换指令(F235~F238,F240~F241)

F235:16 位数据变换为格雷码。

F236:32 位数据变换为格雷码。

F237:16 位格雷码变换为 16 位二进制数。

F238:32 位格雷码变换为 32 为二进制数。

F240:将二进制数的行变为二进制数的列。

F241:将二进制数的列变为二进制数的行。

③ 数据表处理指令(F270~F273,F275~F278)

F270:在 16 位数据表中搜索最大值。

F271:在 32 位数据表中搜索最大值。

F272:在 16 位数据表中搜索最小值。

F273:在 32 位数据表中搜索最小值。

F275:计算 16 位数据表中数据总和及平均值。

F276:计算 32 位数据表中数据总和及平均值。

F277:将 16 位数据表中的数据进行排序(按由大到小或者由小到大)。

F278:将 32 位数据表中的数据进行排序(按由大到小或者由小到大)。

④ 非线性数据处理指令(F285~F290)

F285:16 位数据死区控制;

F286:32 位数据死区控制;

F289:16 位数据区域控制;

F290:32 位数据区域控制。

(3)浮点实数运算指令(F300~F305,F309~F338,F345~F353)

高级指令中还增加了浮点实数运算指令,这使得 FP2 的数据运算以及处理能力大大提高,

这组指令可以对浮点数进行以下操作:

① 浮点实数的数据传送,加减乘除,指数对数,乘方开方等运算;

② 浮点实数的三角函数运算,包括正余弦、正余切以及反运算,还可以进行角度和弧度

的换算;

③ 浮点实数和整数的相互变换,整数和小数相互变换;

④ 浮点实数正负号的变换;

Page 61: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 2 章 常用 PLC 介绍

–53–

⑤ 浮点实数求绝对值;

⑥ 浮点实数比较;

⑦ 浮点实数的排序、求极值、平均值;

⑧ 浮点实数的非线性处理。

(4)过程控制 PID 指令(F355)

在 FP2 中新增加了一条可以用于过程控制的指令——PID 指令。而且该指令还具有 PID

自整定功能。这使得 FP2 在同类产品中十分突出。改变了以往人们对 PLC 只能处理开关量的

看法。图 2-47 描述了 PID 控制算法的原理。

图 2-47 PID 控制算法原理

书写格式如图 2-48 所示。

图 2-48 PID 指令

其中操作数 S 是存放 PID 参数和数据的寄存器区的首地址,该寄存器区占用 30 个存储

单元(即 30 个字)。指令前面的触点是指令执行的触发条件,只有当该触点的上升沿到来时,

才可触发该指令开始执行。该指令是通过参数表来执行 PID 过程控制的。表 2-8 所示的是 PID

的参数表。

表 2-8 PID 的参数表

参数 名称 参数 名称

S 控制方式 S+6 比例增益系数(Kp)

S+1 设定值() S+7 积分时间常数(Ti)

S+2 过程值() S+8 微分时间系数(Td)

S+3 输出值() S+9 控制周期(Ts)

S+4 输出下限 S+10 自整定过程监控

S+5 输出上限 S+11~S+29 PID 工作区

下面对表 2-8 中各参数加以说明。

① 控制方式(S)。该参数用来选择 PID 控制类型,以及进行自整定启动或停止控制。

寄存器 S 中的最低两位(Bit0,1)用来设置 PID 类型,其控制字规定如下:

00:反向控制工作方式,PI�D。 01:正向控制工作方式,PI�D。

Page 62: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–54–

10:反向控制工作方式,I�PD。 11:正向控制工作方式,I�PD。 反向控制:当前测量值减小,而输出增大时,该控制称为反向控制,如加热过程控制。 正向控制:当前测量值增大,同时输出也增大时,该控制称为正向控制,如制冷过程控

制。 寄存器 S 中的最高一位(Bitl5),用来进行 PID 自整定的起停控制。当该位为 1 时为自

整定开始,当自整定结束时,该位自动清零。 ② 设定值(SP)(S+1)。该参数用来设定目标值。 ③ 过程值(PV)(S+2)。用来存放过程控制对象的当前值,该值一般是外部测量信号(或

是脉冲信号,或是模拟信号经 A/D 转换后写入)。该数值应该与设定值 SP 具有相同的单位。 ④ 输出值(MV)(S+3)。存放 PID 控制的结果。所存放的数值可经 D/A 转换,变为

模拟量,用来作为输出控制,也可以是其他定义的控制量(如占空比等)。 ⑤ 输出下限(S+4)。该值一般规定为 K0~K10000。但设定时应保证该设定值小于上限。 ⑥ 输出上限(S+5)。该值一般规定为 K1~K10000。但设定时应保证该设定值大于下限。

输出上下限值规定了 PID 输出(MV)的范围。 ⑦ 比例增益系数(KP)(S+6)。该值设定范围为 K1~K9999,该值乘以 0.1 则是实际

增益,即实际增益为 0.1~999.9。当方式控制字设为自整定时,则该设定值将被自动改变。 ⑧ 积分时间常数(Ti)(S+7)。该值设定范围为 K1~K30000,该值乘以 0.1 则是实际积

分时间,即实际积分时间为 0.1~3000s。当方式控制字设为自整定时,则该设定值将被自动改

变。 ⑨ 微分时间常数(Td)(S+8)。该值设定范围为 K1~K10000,该值乘以 0.1 则是实际微

分时间,即实际微分时间为 0.1~1000s。当方式控制字设为自整定时,则该设定值将被自动改

变。 ⑩ 控制周期(Ts)(S+9)。该值设定范围为 K1~K6000,该值乘以 0.01 则是实际控制周

期,即实际控制周期为 0.01~60s。 (5)参数表使用中的注意事项 ① 参数表规定要占用 30 个存储单元(即 30 个字),包括 PID 工作区在内。该参数表一

旦建立,其他指令不得再占用该寄存器区。 ② 参数表首地址 S 的编号必须在末地址之前至少 30 个单元号。如果参数表超过限定区

域则将发生错误。 ③ 当使用索引寄存器进行地址修正时,需注意不得超出限定区域,否则将出现错误。 ④ 当选择自整定控制方式时,系统的最佳 PID 参数(Kp,Ti,Td)将根据测量该控制

过程的响应来自动确定。当控制方式(S)中的最高位为 1 时,启动自整定控制,而当自整

定控制结束时,该位自动变为 0。而且在自整定结束的同时,把根据自整定控制所推导出的

最佳 PID 参数存入相应的参数区,并覆盖原设置的 PID 参数。此时整个系统将在新设置的参

数下运行。如果在自整定控制过程中,强制使最高位变为 0,则自整定过程中止,此时可以

重新设定参数。在某些不允许自整定控制的场合,PID 参数按照初始设置执行。在 PID 控制

过程中,可以随时根据需要修改 Kp、Ti、Td。 (6)关于几种控制方式的说明

Page 63: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 2 章 常用 PLC 介绍

–55–

使用 PID 指令时,常用的有两种控制方式:PI-D 方式和 I-PD 方式。这两种控制方式的

区别如图 2-49 所示。

图 2-49 PI-D 方式和 I-PD 方式控制响应曲线比较图

(7)与 PID 指令有关的标志继电器

错误标志继电器 R9007:当参数表设置超出允许范围时,该继电器接通并保持。

错误标志继电器 R9008:当参数表设置超出允许范围时,该继电器接通一瞬间。

Page 64: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第第 33 章章 PPLLCC 通通信信知知识识

近年来,工厂自动化得到了迅速的发展,相当多的企业已经在大量地使用可编程设备,

如工业控制计算机、可编程序控制器、变频器、机器人等。将不同厂家生产的这些设备连在

一个网络上,相互之间进行数据通信,由企业集中管理,已经是很多企业必须考虑的问题,

因此有必要了解有关可编程序控制器的通信与工厂自动化网络方面的初步知识。

可编程控制器的通信和网络技术的内容十分丰富,各个生产厂家的 PLC 网络也不相同,

所以本章将重点从通信的硬件讲起,再深入到 PLC 的通信协议等具体内容,中间将穿插一些

主要 PLC 厂商的产品的网络的介绍。

3.1 通信基本知识(硬件原理篇)

工业上最常用的通信接口为串口通信,包括 RS-232 方式、RS-485 方式、RS-422 方式、

以太网通信等。

下面将具体介绍一下这几种常用的通信接口协议。

1. 串口通信协议 所谓通信协议是通信双方的一种约定。约定包括对数据格式、同步方式、传送速度、传

送步骤、检纠错方式以及控制字符定义等问题做出统一规定,通信双方必须共同遵守,因此

也叫做通信控制规程,或称传输控制规程,它属于 ISO/OSI 七层参考模型中的数据链路层。

通常采用的通信协议有两类:异步协议和同步协议。

(1)同步通信协议

采用同步通信时,将许多字符组成一个信息组,这样,字符可以一个接一个地传输,但

是,在每组信息(通常称为帧)的开始处要加上同步字符,在没有信息要传输时,要填上空

字符,因为同步传输不允许有间隙。在同步传输过程中,一个字符可以对应 5~8 位。当然,

对同一个传输过程,所有字符对应相同的数位,比如说 n 位。这样,传输时,按每 n 位划分

为一个时间片,发送端在一个时间片中发送一个字符,接收端在一个时间片中接收一个字符。

同步传输时,一个信息帧中包含许多字符,每个信息帧用同步字符作为开始,一般同步字符

和空字符共用同一个代码。在整个系统中,由一个统一的时钟控制发送端发送代码。接收端

检测到有一串数位和同步字符相匹配时,就认为一个信息帧开始了,于是,把此后的数位作

为实际传输信息来处理。

① 面向字符的同步协议

该协议规定了 10 个特殊字符(称为控制字符)作为信息传输的标志。其格式如图 3-1 所

示。

Page 65: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 3 章 PLC 通信知识

–57–

SYN SOH 标题 STX 数据块 ETB/ETX 块校验

图 3-1 面向字符的同步协议

SYN:同步字符(Synchronous Character),每帧可加 1 个(单同步)或 2 个(双同步)

同步字符。

SOH:标题开始(Start of Header)。

标题:Header,包含源地址(发送方地址)、目的地址(接收方地址)、路由指示。

STX:正文开始(Start of Text)。

数据块:正文(Text),由多个字符组成。

ETB:传输块结束(End of Transmission Block),标识本数据块结束。

ETX:全文结束(End of Text)(全文分为若干块传输)。

块校验:对从 SOH 开始,直到 ETB/ETX 字段的检验码。

② 面向比特的同步协议(ISO 的 HDLC)

这种方式下,一帧信息可以是任意位的,用位组合标识帧的开始和结束。帧格式如图 3-2

所示。

F 场 A 场 C 场 I 场 FC 场 F 场

图 3-2 同步协议帧格式

F 场:标志场。作为一帧的开始和结束,标志字符为 8 位,如 01111110。

A 场:地址场。规定接收方地址,可以是 8 的整数倍位。接收方检查每个地址字节的第

1 位,如果为“0”,则后边跟着另一个地址字节。若为“1”,则该字节为最后一个地址字节。

C 场:控制场。指示信息场的类型,8 位或 16 位。若第 1 字节的第 1 位为 0,则第 2 个

字节也是控制场。

I 场:信息场。要传送的数据。

FC 场:帧校验场。16 位循环冗余校验码 CRC。除 F 场和自动插入的“0”位外,均参

加 CRC 计算。

(2)异步通信协议

以起止式异步协议为例,起止式异步协议的一帧数据的格式如图 3-3 所示。

起始位(1 位) 数据位(5~8 位) 校验位 停止位

图 3-3 异步协议帧格式

起止式异步通信的特点是:通信信息一个字符接一个字符地传输,每个字符一位接一位

地传输,并且传输一个字符时,总是以“起始位”开始,以“停止位”结束,字符之间没有

固定的时间间隔要求。每一个字符的前面都有一位起始位(低电平,逻辑值),字符本身由 5~

7 位数据位组成,接着字符后面是一位校验位(也可以没有校验位),最后是一位或一位半或

二位停止位,停止位后面是不定长的空闲位。停止位和空闲位都规定为高电平(逻辑值1),

Page 66: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–58–

这样就保证起始位开始处一定有一个下降沿。这种格式是靠起始位和停止位来实现字符的界

定或同步的,故称为起止式协议。

异步通信可以采用正逻辑或负逻辑,正负逻辑的表示如表 3-1 所示。

表 3-1 异步通信正负逻辑表

逻辑 0 逻辑 1

正逻辑 低电平 高电平

负逻辑 高电平 低电平

例如,传送 8 位数据 16#A5H(1010,0101B),奇校验,1 个停止位,则信号线上的波形

如图 3-4 所示:异步通信的速率:若 9600bps,每字符 8 位,1 起始,1 停止,无奇偶,则实

际每字符传送 10 位,实际的传输速度为 960 字符/秒,如图 3-4 所示。

图 3-4 帧结构

2. 网络层次 复杂的数据通信系统不会使用单一的协议来处理所有的传输任务,它们需要一整套相互

合作的协议,这些协议又称为协议族或协议套件。为什么需要这些协议呢?我们首先考虑在

网络通信中,有可能出现的问题。

硬件失效。主机或者路由器可能因硬件失效或操作系统崩溃而不能工作。网络传输链路

偶尔出现断链或者完全失效的情况。协议软件必须能够检测出这些失效,如果有可能,还要

进行恢复工作。

网络拥塞。即使所有的软硬件都工作正常,网络的承载能力也是有限的。协议软件必须

采取一定的策略,使得已发生拥塞的机器能抑制更多通信量。

分组延时及丢失。有时,分组的延时特别长,甚至丢失了分组。协议软件必须能够适应

分组的延时以及丢失的情况。

数据损伤。电磁干扰和硬件的故障会导致传输的差错,因而使所传输的数据内容出错。

协议软件必须能够检测这些差错并从差错中恢复过来。

数据重复及乱序。提供多路由的网络可能会送出乱序的分组数据或重复的分组。协议软

件必须能将分组重新排序并抛弃重复的分组。

为解决以上问题,可以将软件协议分成多个模块,每个模块处理一个子问题。为此,国

际标准化组织(ISO)提出了开放系统互连参考模型(Reference Model of Open System

Interconnection),这个模型将网络通信协议分成 7 个层次,如图 3-5 所示。

OSI 参考模型在七层上定义了多个通信协议。每一层都有定义好的功能,这些功能与相

邻层的功能相互关联。最低一层定义了物理介质、连接器和提供网络通信的部件,而最高一

层定义了应用程序如何访问通信服务。每层之间的边界称为接口,并且层是通过服务访问点

连接的。如果一个运行在上层的进程需要一个运行在下层的进程提供服务,那么它只需把要

Page 67: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 3 章 PLC 通信知识

–59–

求传给与应用程序关联的一个服务访问点。两个系统之间的通信是通过发起一个请求,并使

请求沿着一个系统的协议栈下传,经物理层把请求发到另外一个系统,然后使请求沿着协议

栈向上传递,到达与前一个系统同等层上以双方承认的方式响应。每一层提供一些信息或服

务,这些信息或服务是为传输到其他系统的消息准备的。例如,错误纠正、分解和包装信息,

跟踪会话以确保它的存活时间长到能使消息通过。下面简要地概述 OSI 模型中的每一层。

图 3-5 ISO/OSI 七层参考模型

应用层(Application Layer): 这一层定义了应用程序与基层通信系统的接口。包括了使

用网络的应用程序,如文件传输、访问和管理(FileTransfer,Access,and Management,FTAM)

应用程序、虚终端服务(Virtual Terminal Service)程序、定义电子函件交换的信报处理系统

(Message Handling System)等。

表示层(Presentation Layer):这一层提供数据格式转换和表示功能。典型的例子有将文

本压缩,或将图像转换为可在网络上传输的比特率流。例如,ISO 标准的 ASN.1(Abstract

Syntax Notation,抽象语法表示法 1)提供了对应用程序所使用数据的表示方法。

会话层(Session Layer):会话层通过使用会话技术或对话,协调系统间的信息交换。信

息交换并不总是需要对话,但是一些应用程序在一个连接暂时失效时,可能需要知道从哪里

重新开始传送数据,或可能需要一个固定间隔的对话以确定一组数据已经发送完毕,可以开

始发送新的数据了。这一层的标准有会话服务和定义(Session Service and Definition)以及会

话服务协议(Session Service Protocol)。

运输层(Transport Layer):运输层为在系统间移动信息提供了一种高级控制,包括更加

复杂的出错处理、优先分级和安全性特征。运输层通过在两个系统间提供面向连接的服务,

提供了高质量的服务和准确的信息传递。它控制分组的次序、节制通信流和识别重分组。运

输层对编址分组的信息赋予一个跟踪号,这个跟踪号在目的地将被检查。如果分组丢失了数

据,在接收端的运输层协议和在发送系统的运输层联系,对这个分组进行重发。这一层保证

了所有数据都按正确的次序被接收。这一层的标准包括传输服务定义(Transport Service

Definition)、面向连接输协议(Connection-Oriented Transport Protocol)以及无连接模式传输

Page 68: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–60–

(Connectionless Mode Transport)协议等。

网络层(Network Layer):网络层定义为在系统之间开辟和维护网络路径的协议。它和

数据传输和交换过程有关,而对上面的层隐藏了这些过程。路由器在网络层进行操作。网络

层可以查看分组地址以确定路由选择的方式。如果一个分组是被编址到一个本地网络上的工

作站的,那么它就被直接送到那里。如果它是被编址到其他段的一个网络的,那么这个分组

就被送到一个路由选择服务那里,再在网络上被转发。这一层支持 OSI 的无连接网络服务

(CLNS)和面向连接网络服务(CONS)。CLNS 提供的服务类似于因特网协议(IP)和 Novell

的网间分组交换(IPX)协议。这一层的标准包括 X .25 分组级协议(Packet Level Protocol)、

网络服务(Network Service)以及提供网络服务的协议等。

数据链路层(Data Link Layer):这层定义在两个系统的物理连接之间发送和接收信息的

规则。这一层对要进行传输的数据进行编码和编帧,另外还提供出错检测和控制。由于数据

链路层已经能够提供对出错的控制,所以更高的层就不再需要处理这种服务了。然而,当使

用可靠传输介质时,在这一层不进行出错控制,而是在更高的层执行这种工作,这将可以提

供更高的性能。网桥在协议栈的这一层进行操作。一般地,这层包括多个 IEEE802 标准、光

纤分布式数据接口(FDDI)、高级数据链路控制(High-Level Data Link Control,HDLC)等。

物理层(Physical Layer):这一层定义接口的物理特性,例如机械部件和连接器,电器特

性。用于数据通信的物理层接口包括 EIARS-232 和 RS-485 等。

在网络通信中,“包”(Packet)和 “帧”(Frame)的概念相同,均指通信中的一个数据

块。对于具体某种通信网络,一般使用术语“帧”。一种网络的帧格式可能与另一种网络不同,

通常使用术语“包”来指一般意义的帧。串行通信的数据格式有面向字符型的数据格式,如

单同步、双同步、外同步;也有面向比特型的数据格式,这以帧为单位传输,每帧由 6 个部

分组成,分别是标志区、地址区、控制区、信息区、帧校验区和标志区。

串行通信协议属于 ISO 国际参考标准的第三层,数据链路层。数据链路层必须使用物理

层提供给它的服务。物理层所做的工作是接收个一个原始的比特流,并准备把它交给目的地,

它不能保证这个比特流无差错。实际上,物理层所接收的比特的数量也许少于,也许等于或

多于所传递的比特的数量,这些错误一直要到数据链路层才能进行检测,如果需要的话,再

纠正错误。数据传输时,通常比特流分成离散的帧,并对每一帧计算出校验和。当一帧到达

目的地后重新计算校验和时,如果新算出的校验和不同于帧中所包括的值,数据链路层就知

道出现差错了,从而会采取措施处理差错(即丢弃坏帧,并发回一个差错报告)。

数据链路层的任务是在两个相邻接点间的线路上无差错地传送以帧为单位的数据。每一

帧包括数据和必要的控制信息。人们发现,对于经常产生误码的实际链路,只要加上合适的

控制规程,就可以使通信变为比较可靠的。如 IBM 公司推出了著名的体系结构 SNA,在 SNA

的数据链路规程采用了面向比特的规程 SDLC,后来 ISO 把它修改后称为 HDLC,译为高级

数据链路控制。在 Internet 中,用户与 ISP(Internet 服务提供者)之间的链路上使用得最多

的协议就是 SLIP 和 PPP。

下面简单介绍 HDLC 帧结构以及 PPP 帧结构。

(1)HDLC 的帧结构

从网络层交下来的分组,转化成数据链路层的数据即图 3-6 中的信息字段。信息字段的

长度没有具体规定。数据链路层在信息字段的头尾各加上 24bit 的控制信息,这样就构成了

Page 69: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 3 章 PLC 通信知识

–61–

一个完整的帧。HDLC 规定了一个帧的开头(即首部中的第一个字节)和结尾(即尾部中的

最后一个字节)各放入一个特殊的标记,作为一个帧的边界,这个标记就叫做标志字段 F。

标志字段 F 为 01111110。地址字段 A 也是8位的,它一般被写入次站的地址。帧校验序列

FSC 字共占 16 位,采用 CRC-CCITT 生成多项式。控制字段共8位,是最复杂的字段,HDLC

的许多重要功能都要靠控制字段来实现。

图 3-6 HDLC 的帧结构

(2)点对点协议 PPP 的帧结构。

PPP 帧格式和 HDLC 的相似,PPP 帧的前 3 个字段和最后两个字段和 HDLC 的格式是一

样的。PPP 不是面向位的,因而所有的 PPP 帧的长度都是整数个字节。与 HDLC 不同的是多

了一个2 个字节的协议字段。当协议字段为 0X0021时,信息字段就是 IIP 数据报。若为 0XC021,

则信息字段是链路控制数据,而 0X8021 表示这是网络控制数据。其结构视图如图 3-7 所示,

其中信息段不超过 1 500 字节。

F A C 协议 信息 FCS F

图 3-7 点对点协议 PPP 的帧结构

3. RS-232/RS-422/RS-485 通信技术 RS-232、RS-422 与 RS-485 都是串行数据接口标准,最初都是由电子工业协会(EIA)

制订并发布的,RS-232 在 1962 年发布,命名为 EIA-232-E,作为工业标准,以保证不同厂家

产品之间的兼容。为弥补 RS-232 通信距离短、速率低等不足,EIA 又提出了 RS-422。RS-422

定义了一种平衡通信接口,将传输速率提高到 10Mbit/s,传输距离延长到 4000 英尺(速率低

于 100kbit/s 时),并允许在一条平衡总线上连接最多 10 个接收器。它是一种单机发送、多

机接收的单向、平衡传输规范。为扩展应用范围,EIA 又于 1983 年在 RS-422 基础上制定了

RS-485 标准,增加了多点、双向通信能力,即允许多个发送器连接到同一条总线上,同时增

加了发送器的驱动能力和冲突保护特性,扩展了总线共模范围。

RS-232、RS-422 与 RS-485 标准只对接口的电气特性做出规定,而不涉及接插件、电缆

或协议,在此基础上用户可以建立自己的高层通信协议。 下面介绍一下这几种接口标准常见

的硬件定义。

(1)RS-232 串行接口标准

RS-232 被定义为一种在低速率串行通信中增加通信距离的单端标准。RS-232 采取不平

衡传输方式,即所谓单端通信。典型的 RS-232 信号在正负电平之间摆动,在发送数据时,

发送端驱动器输出正电平在+5~+15V,负电平在-15~-5V 电平。当无数据传输时,线上为

TTL,从开始传送数据到结束,线上电平从 TTL 电平到 RS-232 电平再返回 TTL 电平。接收

器典型的工作电平在+3~+12V 与-12~-3V。由于发送电平与接收电平的差仅为 2V 至 3V 左

Page 70: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–62–

右,所以其共模抑制能力差,再加上双绞线上的分布电容,其传送距离最大约 15m,最高速

率为 20kbit/s。RS-232 是为点对点(即只用一对收、发设备)通信而设计的,其驱动器负载

为 3~7kO。所以 RS-232 适合本地设备之间的通信。表 3-2 描述了 RS-232/RS-485/RS-422 的

电气参数。表 3-3 描述了 RS-232 接口的管脚定义。

表 3-2 RS-232/RS-485/RS-422 的电气参数表

规定 RS-232 RS-422 RS-485

工作方式 单端 差分 差分

节点数 1 收、1 发 1 发 10 收 1 发 32 收

最大传输电缆长度 50 英尺 400 英尺 400 英尺

最大传输速率 20Kbit/s 10Mbit/s 10Mbit/s

最大驱动输出电压 +/-25V -0.25V~+6V -7V~+12V

驱动器输出信号电平

(负载最小值)

载 +/-5V~+/-15V +/-2.0V +/-1.5V

驱动器输出信号电平

(空载最大值)

载 +/-25V +/-6V +/-6V

驱动器负载阻抗(O) 3K~7K 100 54

摆率(最大值) 30V/µs N/A N/A

接收器输入电压范围 +/-15V -10V~+10V -7V~+12V

接收器输入门限 +/-3V +/-200mV +/-200mV

接收器输入电阻(O) 3K~7K 4K(最小) =12K

驱动器共模电压 -3V~+3V -1V~+3V

接收器共模电压 -7V~+7V -7V~+12V

表 3-3 RS-232 的引脚定义表

名称 全称 说明

FG Frame Ground 连到机器的接地线

TXD Transmitted Data 数据输出线

RXD Received Data 数据输入线

RTS Request to Send 要求发送数据

CTS Clear to Send 回应对方发送的 RTS 的发送许可,告诉对方可以发送

DSR Data Set Ready 告知本机在待命状态

DTR DataTerminal Ready 告知数据终端处于待命状态

CD Carrier Detect 载波检出,用以确认是否收到 Modem 的载波

SG Signal Ground 信号线的接地线(严格的说是信号线的零标准线)

① DB25 引脚定义如图 3-8 所示。

Page 71: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 3 章 PLC 通信知识

–63–

图 3-8 DB25 接口引脚定义

② DB9 引脚定义如图 3-9 所示。

图 3-9 DB9 接口引脚定义

③ 最为常见的几种连接方法

图 3-10 中 2 号线与 3 号线交叉连接是因为在直连方式时,把通信双方都当作数据终端设

备看待,双方都可发也可收。在这种方式下,通信双方的任何一方,只要请求发送 RTS 有效

和数据终端准备好 DTR 有效就能开始发送和接收。

图 3-10 最简单的 3 线连接

如果想在直接连接时,而又考虑到 RS-232C 的联络控制信号,则采用零 Modem 方式的

标准连接方法。如图 3-11 所示。图 3-12 属于一种完全连接方式。

图 3-11 常见的连接方式

Page 72: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–64–

图 3-12 完全连接方式

④ 通信距离

RS-232 用于远距离通信(传输距离大于 15m 的通信)时,一般要加调制解调器 Modem,

因此使用的信号线较多。

当通信距离较近时,可不需要 Modem,通信双方可以直接连接,这种情况下,只需使用

少数几根信号线。最简单的情况,在通信中根本不需要 RS-232C 的控制联络信号,只需 3 根

线(发送线、接收线、信号地线)便可实现全双工异步串行通信,即是这里要讨论的第一种

情况。

无 Modem 时,最大通信距离按如下方式计算:

RS-232C 标准规定:当误码率小于 4%时,要求导线的电容值应小于 2 500pF。对于普通

导线,其电容值约为 170pF/m。则允许距离 L=2500pF/(170PF/m)=15m。

这一距离的计算,是偏于保守的,实际应用中,当使用 9 600bit/s,普通双绞屏蔽线时,

距离可达 30~35m。

(2)RS-422 与 RS-485 串行接口标准

① RS-422 电气规定

RS-422 标准全称是“平衡电压数字接口电路的电气特性”,它定义了接口电路的特性。

图 3-13 是其 DB9 连接器引脚定义。由于接收器采用高输入阻抗且发送驱动器比 RS-232 具有

更强的驱动能力,故允许在相同传输线上连接多个接收节点,最多可接 10 个节点。即一个主

设备(Master),其余为从设备(Salve),从设备之间不能通信,所以 RS-422 支持点对多

点的双向通信。接收器输入阻抗为 4kΩ,故发送端最大负载能力是 10×4kΩ+100O(终接电

阻)。RS-422 四线接口由于采用单独的发送和接收通道,因此不必控制数据方向,各装置之

间任何必须的信号交换均可以按软件方式(XON/XOFF 握手)或硬件方式(一对单独的双绞

线)实现。

图 3-13 RS-422 的 DB9 连接器引脚定义

Page 73: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 3 章 PLC 通信知识

–65–

RS-422 的最大传输距离为 4 000 英尺(约 1 219m),最大传输速率为 10Mbit/s。其平衡

双绞线的长度与传输速率成反比,在 100kbit/s 速率以下,才可能达到最大传输距离。只有在

很短的距离下才能获得最高速率传输。一般 100m 长的双绞线上所能获得的最大传输速率仅

为 1Mbit/s。

RS-422 需要一终接电阻,要求其阻值约等于传输电缆的特性阻抗。在短距离传输时(一

般在 300m 以下)可不需终接电阻。终接电阻接在传输电缆的最远端。

RS-422 有关电气参数见表 3-2。

② RS-485 电气规定

由于 RS-485 是从 RS-422 基础上发展而来的,所以 RS-485 许多电气规定与 RS-422 相仿。

如都采用平衡传输方式、都需要在传输线上接终接电阻等。RS-485 可以采用二线与四线方式,

二线制可实现真正的多点双向通信。

而采用四线连接时,与 RS-422 一样只能实现点对多的通信,即只能有一个主(Master)

设备,其余为从设备,但它比 RS-422 有改进,无论四线还是二线连接方式总线上可多接到

32 个设备。

RS-485 与 RS-422 的不同还在于其共模输出电压是不同的,RS-485 共模电压在-7V~

+12V 之间,而 RS-422 共模电压在-7V~+7V 之间;RS-485 接收器最小输入阻抗为 12kO,

RS-422 最小输入阻抗为 4kO;RS-485 满足所有 RS-422 的规范,所以 RS-485 的驱动器可以

用在 RS-422 网络中应用。

RS-485 有关电气规定参见表 3-2。

RS-485 与 RS-422 一样,其最大传输距离为 1 219m,最大传输速率为 10Mbit/s。平衡双

绞线的长度与传输速率成反比,在 100kbit/s 速率以下,才可能使用规定最长的电缆长度。只

有在很短的距离下才能获得最高速率传输。一般 100m 长双绞线最大传输速率仅为 1Mbit/s。

RS-485 需要两个终接电阻,其阻值要求等于传输电缆的特性阻抗。在短距离传输时可不

接。

(3)串行口其他知识

① 奇偶校验

串行数据在传输过程中,由于干扰可能引起信息的出错,例如,传输字符“A”,ASCII

码为 0100 0001 = 41H。由于干扰,可能使某一位发生变化,这种情况,称为出现了“误码”。

我们把如何发现传输中的错误,叫“检错”。发现错误后,如何消除错误,叫“纠错”。最

简单的检错方法是“奇偶校验”,即在传送字符的各位之外,再传送 1 位奇/偶校验位。可采

用奇校验或偶校验。

奇校验:所有传送的数位(含字符的各数位和校验位)中,“1”的个数为奇数。如:

1111 0101 1

1110 1010 0

偶校验:所有传送的数位(含字符的各数位和校验位)中,“1”的个数为偶数。如:

1101 1001 1

1110 1001 0

② 全双工与半双工方式

Page 74: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–66–

在串行通信中,数据通常是在两个站(如终端和微机)之间进行传送,按照数据流的方

向可分成 3 种基本的传送方式:全双工、半双工和单工。但单工目前已很少采用,下面仅介

绍前两种方式。

� 全双工方式(Full Duplex)

当数据的发送和接收分流,分别由两根不同的传输线传送时,通信双方都能在同一时刻

进行发送和接收操作,这样的传送方式就是全双工制。在全双工方式下,通信系统的每一端

都设置了发送器和接收器,因此,能控制数据同时在两个方向上传送。全双工方式无需进行

方向的切换,因此,没有切换操作所产生的时间延迟,这对那些不能有时间延误的交互式应

用(例如远程监测和控制系统)十分有利。这种方式要求通信双方均有发送器和接收器。同

时,需要两根数据线传送数据信号(可能还需要控制线和状态线,以及地线)。

比如说,RS422 就是一种典型的全双工通信方式。RS-422 有 4 根数据线,其中两根用来

发送数据,另外的两根用来接收数据。这样,接收数据和发送数据可以同时进行。

� 半双工方式(Half Duplex)

若使用同一根传输线既作接收又作发送,虽然数据可以在两个方向上传送,但通信双方

不能同时收发数据,这样的传送方式就是半双工制。采用半双工方式时,通信系统每一端的

发送器和接收器,通过收/发开关转接到通信线上,进行方向的切换,因此,会产生时间延迟。

收/发开关实际上是由软件控制的电子开关。

比如说,RS-485 通信方式就是一种典型的半双工通信方式。RS-485 的两根通信线既用

来发送数据,也用来接收数据,所以必须要采用发完再收或者收完再发这种方式来进行设备

之间的通信。

③ 传输速率与传输的距离问题

� 波特率

在串行通信中,用“波特率”来描述数据的传输速率。所谓波特率,即每秒钟传送的二

进制位数,其单位为 bit/s(bits per second)。它是衡量串行数据速度快慢的重要指标。国际

上规定了一个标准波特率系列:110、300、600、1 200、1 800、2 400、4 800、9 600、14.4Kbit/s、

19.2Kbit/s、38.4Kbit/s、115.2Kbit/s。例如最常用的波特率为 9600bit/s,指每秒传送 9600 位,

包含字符的数位和其他必须的数位,如奇偶校验位等。

大多数串行接口电路的接收波特率和发送波特率可以分别设置,但接收方的接收波特率

必须与发送方的发送波特率相同。通信线上所传输的字符数据(代码)是逐位传送的,1 个

字符由若干位组成,因此每秒钟所传输的字符数(字符速率)和波特率是两种概念。在串行

通信中,所说的传输速率是指波特率,而不是指字符速率,它们两者的关系是:假如在异步

串行通信中,传送一个字节,包括 11 位(其中有 1 个起始位、8 个数据位、1 个停止位、1

个奇偶校验位),其传输速率是 9600bit/s,每秒所能传送的字节数是 9600/(1+8+1+1)=872

个。

� 传输距离

串行通信中,数据位信号流在信号线上传输时,要引起畸变,畸变的大小与以下因素有

关:

波特率�信号线的特征(频带范围);

传输距离�信号的性质及大小(电平高低、电流大小),当畸变较大时,接收方出现误码。

Page 75: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 3 章 PLC 通信知识

–67–

在规定的误码率下,当波特率、信号线、信号的性质及大小一定时,串行通信的传输距

离就一定。为了加大传输距离,必须加中继器。

中继器(RP,repeater)是连接网络线路的一种装置,常用于两个网络节点之间物理信号

的双向转发工作。中继器是最简单的网络互联设备,主要完成物理层的功能,负责在两个节

点的物理层上按位传递信息,完成信号的复制、调整和放大功能,以此来延长网络的长度。

由于存在损耗,在线路上传输的信号功率会逐渐衰减,衰减到一定程度时将造成信号失真,

因此会导致接收错误。中继器就是为解决这一问题而设计的。它完成物理线路的连接,对衰

减的信号进行放大,保持与原数据相同。

一般情况下,中继器的两端连接的是相同的媒体,但有的中继器也可以完成不同媒体的

转接工作。从理论上讲中继器的使用是无限的,网络也因此可以无限延长。事实上这是不可

能的,因为网络标准中都对信号的延迟范围作了具体的规定,中继器只能在此规定范围内进

行有效的工作,否则会引起网络故障。

4. 以太网通信 以太网是当今现有局域网采用的最通用的通信协议标准。该标准定义了在局域网(LAN)

中采用的电缆类型和信号处理方法。以太网在互联设备之间以 10~100Mbit/s 的速率传送信息

包,双绞线电缆 10 Base-T 以太网由于其低成本、高可靠性以及 10Mbit/s 的速率而成为应用

最为广泛的以太网技术。无线以太网可达 11Mbit/s,许多制造供应商提供的产品都能采用通

用的软件协议进行通信,开放性最好。

LAN 的结构主要有 3 种类型:以太网(Ethernet)、令牌环(Token Ring)、令牌总线(Token

Bus)以及作为这 3 种网的骨干网光纤分布数据接口(FDDI)。它们所遵循的标准都以 802

开头,称为 IEEE802 标准。IEEE802 标准已被 ANSI 采用为美国国家标准,被 NIST 采用为政

府标准,并且被 ISO 作为国际标准,称之为 ISO 8802。这些标准在物理层和 MAC 子层上有

所不同,但在数据链路层上是兼容的。

目前,常用的 802.3 标准最常见的通信线缆有 4 种,如表 3-4 所示。

表 3-4 IEEE802.3 电缆

名称 电缆 最大区间长度 节点数/段 优点

10Base-5 粗同轴电缆 500m 100 用于主干很好

10Base-2 细同轴电缆 200m 30 最便宜的系统

10Base-T 双绞线 100m 1024 易于维护

10Base-F 光纤 2000m 1024 最适于在楼间使用

第一种是 10Base-5 电缆,它通常被称为“粗以太网(Thick Ethernet)”电缆,802.3 标

准建议为黄色,每隔 2.5m 一个标志,标明分接头插入处,连接处通常采用插入式分接头,

将其触针小心地插入到同轴电缆的内芯。名称 10Base5 表示的意思是:工作速率为 10Mbit/s,

采用基带信号,最大支持段长为 500m。

第二种电缆是 10Base-2,或称为“细以太网(Thin Ethernet)”电缆,这种电缆容易弯

曲。其接头处采用工业标准的 BNC 连接器组成 T 型插座,它使用灵活,可靠性高。“细以

太网”电缆价格低廉,安装方便,但是使用范围只有 200m,并且每个电缆段内只能使用 30

台机器。

Page 76: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–68–

第三种电缆是 10Base-T。由于寻找电缆故障的麻烦,导致一种新的接线方式的产生,即

所有站点均连接到一个中心集线器(Hub)上。通常,这些连线是电话公司的双绞线。这种

方式被称为 10Base-T。这种结构使增添或移去站点变得十分简单,并且很容易检测到电缆故

障。10Base-T 的缺点是,其电缆的最大有效长度为距集线器 100m,即使是高质量的双绞线

(5 类线),最大长度可能也只有 150m。另外,大集线器的价格也较高。尽管如此,由于其

易于维护,10Base-T 还是应用得越来越广泛。

第四种电缆连接方式是 10Base-F,它采用了光纤。这种方式由于其连接器和终止器的费

用而十分昂贵,但是它却有极好的抗干扰性,常用于办公大楼或相距较远的集线器间的连接。

3.2 通信基本知识(软件协议篇)

在目前的工业通信领域中,各个设备供应商基本上都推出了自己的专用协议,但是为了

兼容,几乎所有的设备都支持 MODBUS 通信协议。下面详细介绍一下这个协议。

MODBUS 协议是应用于电子控制器上的一种通用语言。通过此协议,控制器相互之间、

控制器经由网络(例如以太网)和其他设备之间可以通信。它已经成为一通用工业标准。有

了它,不同厂商生产的控制设备可以连成工业网络,进行集中监控。

此协议定义了一个控制器能认识使用的消息结构,而不管它们是经过何种网络进行通信

的。它描述了一控制器请求访问其他设备的过程、如何回应来自其他设备的请求,以及怎样

侦测错误并记录。它制定了消息域格局和内容的公共格式。

当在 MODBUS 网络上通信时,此协议决定了每个控制器需要知道它们的设备地址,以

识别按地址发来的消息,决定要产生何种行动。如果需要回应,控制器将生成反馈信息并用

MODBUS 协议发出。在其他网络上,包含了 MODBUS 协议的消息转换为在此网络上使用的

帧或包结构。这种转换也扩展了根据具体的网络解决节点地址、路由路径及错误检测的方法。

1. MODBUS 的通信结构 MODBUS 采用主从通信结构,在该结构中只有一个单元(定义为 Master)可以在网络

上对另一个单元(定义为 Slave)启动查询会话。主设备通常是一台计算机、一个编程面板或

一个图像面板,从设备(Slave)通常是一工业控制器,主设备可以对一指定的从设备发布信

息,也可对所有的从设备进行广播。主设备的查询包括目标地址(或许是广播地址)、命令代

码、过程数据或其全部。设备的反应包括地址、收到的相同的命令代码或错误的代码、过程

数据或其全部等。

2. MODBUS 的通信方式 MODBUS 中定义的通信方式有两种:ASCII 和 RTU(远程终端单元)。在一个 MODBUS

通信网络中只能够用一种通信方式,不允许同时存在两种通信方式,该方式和一系列的通信

参数必须和 MODBUS 网络上的所有装置保持一致。

(1)ASCII 方式

① ASCII 方式的每个字节的格式

� 十六进制,ASCII 字符 0...9,A...F

� 消息中的每个 ASCII 字符都由十六进制字符组成。

② 每个字节的组成

� 一个起始位。

Page 77: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 3 章 PLC 通信知识

–69–

� 7 个数据位,最小的有效位先发送。

� 一个奇偶校验位(如果有校验)。

� 一个停止位(有校验时),两个 Bit(无校验时)。

③ 检测码

� LRC(纵向冗余检测)。

(2)RTU 方式

① RTU 方式每个字节的格式

� 8 位二进制,十六进制数 0...9,A...F 。

� 消息中的每个 8 位域都是由两个十六进制字符组成。

② 每个字节的组成

� 一个起始位。

� 8 个数据位,最小的有效位先发送。

� 一个奇偶校验位,无校验则无。

� 一个停止位(有校验时),两个 Bit(无校验时)。

③ 检测码

� CRC(循环冗余检测)。

ASCII 方式的主要优点是它允许在两个字符没有错误发生的情况下可以最多有 1s 的时间

间隔。RTU 方式的主要优点是在相同的波特率情况下它的高密度,与 ASCII 相比,可以有更

大的数据处理能力,但是每个信息必须在连续的状态下传输。

3. MODBUS 的协议内容 表 3-5 所示为 MODBUS 协议的命令。

表 3-5 MODBUS 协议命令表

功能码 名称 作用

01 读取线圈状态 取得线圈的状态

02 读取输入状态 取得开关输入的状态

03 读取保持寄存器 在一个或多个保持寄存器的值

04 读取输入寄存器 在一个或多个输入寄存器的值

05 强置单线圈 强置逻辑线圈的通断

06 预置单寄存器 把二进值写入一个保持寄存器

07 读取异常状态

取得 8 个内部线圈的通断状态,这 8 个线圈的地址由控制器

决定,用户逻辑可以将这些线圈定义,以说明从机状态,短

报文适宜于迅速读取状态

08 回送诊断校验 把诊断校验报文送从机

09 编程(只用于 484) 使主机模拟编程器作用,修改 PC 从机逻辑

10 控询(只用于 484)

可使主机与一台正在执行长程序任务从机通信,探询该从机

是否已完成其操作任务,仅在含有功能码 9 的报文发送后,

本功能码才发送

Page 78: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–70–

续表

功能码 名称 作用

11 读取事件计数 可使主机发出单询问,并随即判定操作是否成功,尤其是该

命令或其他应答产生通信错误时

12 读取通信事件记录 可是主机检索每台从机的 MODBUS 事务处理通信事件记

录。如果某项事务处理完成,记录会给出有关错误

13 编程 可使主机模拟编程器功能修改 PC 从机逻辑

14 探询

可使主机与正在执行任务的从机通信,定期控询该从机是否

已完成其程序操作,仅在含有功能 13 的报文发送后,本功

能码才得发送

15 强置多线圈 强置一串连续逻辑线圈的通断

16 预置多寄存器 把具体的二进制值装入一串连续的保持寄存器

17 报告从机标识 可使主机判断编址从机的类型及该从机运行指示灯的状态

18 对 884/M84 编程 可使主机模拟编程功能,修改 PC 状态逻辑

4. MODBUS 消息帧 当消息在标准的 MODBUS 系列网络传输时,每个字符或字节以如下方式发送(从左到

右):

最低有效位? 最高有效位

使用 ASCII 字符帧时,位的序列如图 3-14 所示。

有奇偶校验

启始位 1 2 3 4 5 6 7 奇偶位 停止位

无奇偶校验

启始位 1 2 3 4 5 6 7 停止位 停止位

图 3-14 ASCII 字符帧位顺序

使用 RTU 字符帧时,位的序列如图 3-15 所示。

有奇偶校验

启始位 1 2 3 4 5 6 7 8 奇偶位 停止位

无奇偶校验

启始位 1 2 3 4 5 6 7 8 停止位 停止位

图 3-15 RTU 字符帧位顺序

Page 79: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 3 章 PLC 通信知识

–71–

3.3 几种常用的 PLC 的通信方式

常见的 PLC 设备及其通信连接方式如表 3-6 所示。

表 3-6 常见的 PLC 设备及其通信连接方式

生产商 产品型号 通信方式

CPM1 RS-232/RS-422

CQM1 RS-232/RS-422 、 COMPOBUS/S 、

COMPOBUS/D

C1000H/C2000H、C200H?、CVM RS-232/RS-422、Controller Link、SYSMAC

Link、SYSNET、Ethernet、CompoBus/s

OMRON

C20H-C60H RS-232/RS-422

FX 系列 RS-232/RS-422

MISTUBISH A 系列、Q 系列

RS-232/RS-422/USB、PROFIBUS、Modbus、

MELSECNET10、CC-Link、Ethernet

Allen-Bradley ControlLogix、PLC5、SLC500 RS-232/RS-422、DH+/DH485、ControlNet、

Ethernet、DeviceNet

松下 FP0 /FP1、FP3、FP10SH RS-232/RS-422、Ethernet、MEWNET、C-NET

GE Fanuc LM90-30

LM90-70

RS-232/RS-422、Ethernet、GENIUS BUS、

PROFIBUS、WorldFip、InterBus-s

S5 PROFIBUS

S7-200 PPI Siemens

S7-300、S7-400 MPI、PROFIBUS、Ethernet

3.3.1 西门子 S7-200 系列

S7-200 系列 PLC 是西门子公司推出的一种小型的 PLC。它以紧凑的结构、良好的扩展

性、强大的指令功能、低廉的价格,成为各种小型控制工程中理想的控制器。

S7-200 系列 PLC 包含了一个独立的 CPU 和各种可选择的扩展模块,可以十分方便地组

成各种不同规模的控制器。S7-200PLC 可以方便地组成 PLC-PLC 或者 PC-PLC 的网络系统,

从而适用于更大规模的工程。

使用 S7-200 的 STEP7-Micro/WIN32 编程软件可以方便地在 Windows 环境下对 PLC 进行

编程、调试、监控,使得 PLC 的使用更加方便、快捷、广泛。

下面介绍西门子 S7-200 系列关于通信的几种模块以及 S7-200 系列 PLC 组网的情况。

1. 通信模块 S7-200 系列 PLC 除了 CPU226 集成了两个通信口之外,其他均在内部集成了一个通信口,

通信口采用 RS-485 总线。另外,S7-200 还提供两种通信模块以扩大系统的接口数量和联网

的能力。

(1)EM277 模块

Page 80: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–72–

EM277 模块是 PROFIBUS-DP 的从站模块。这个模块可以作为 PROFIBUS-DP 从站和

MPI 从站,EM277 可以作为与其他的 MPI 主站通信口,S7-200 可以通过该模块与 S7-300/400

进行通信连接。使用 MPI 协议和 PROFIBUS 协议的 STEP7-Micro/WIN 软件和 PROFIBUS 卡,

以及 OP 操作面板或者 TD200 文本显示器可以通过 EM277 模块与 S7-200 通信。EM277 模块

如图 3-16 所示。

图 3-16 EM277 通信模块

EM277 模块基本技术参数如下。

通信参数:通信口数量 1 个,接口类型为 RS-485,外部信号与 PLC 隔离,波特率为

9 600bit/s、19 200bit/s、�、500kbit/s,协议为 PROFIBUS-DP 从站和 MPI 从站,通信电缆

长度为 100m~1200m。 网络能力:站的地址为 0~99,每个段最多站数为 32 个,每个网络最多站数为 126 个,

最大到 99 个 EM277 站,MPI 方式可连续 6 个站。 通信口电源:DC 5V 电源、DC 24V 电源。 (2)CP243-2 通信处理器

CP243-2 是 S7-200(CPU22X)的 AS-I 主站,AS-I 接口是执行器/传感器接口。CP243-2模块如图 3-17 所示。

每个 CP243-2 的 AS-I 上最大可以达到 248 点输入和 186 点输出。内置模拟量处理系统最

多可以连接 31 个模拟量从站,每个从站可以为 4 个开关元件提供地址。S7-200 同时可以处

理最多两个 CP243-2 通信处理器。通过连接 AS-I 可以显著增加 S7-200 的数字量输出和输入

点数。

图 3-17 CP243-2 通信模块

CP243-2 与 S7-200 的连接方法同扩展模块相同。 2. 西门子 S7-200 的网络结构 (1)网络主站与从站 在通信网络中,上位机、编程器和各个 PLC 都是整个网络的一个节点,每个节点都有自

己的网络地址。这些设备在整个网络中所起的作用是不同的。上位机(PC、编程器)等设备

可以读取其他节点的数据,也可以向其他节点写入数据,还可以对其他的节点进行初始化。

这类掌握通信主动权的设备被称为主站。另外的一些设备,它们只能让主站读取和写入数据,

Page 81: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 3 章 PLC 通信知识

–73–

这样的设备在通信中一直处于被动状态,被称为从站。根据网络结构的不同,在一个网络中

的主站和从站的数量也不完全相同。一般情况下,总是把 PC 和编程器作为主站。

(2)网络协议

S7-200CPU 支持多种通信协议。使用 S7-200CPU,可以支持一个或多个协议。

① PPI 协议

PPI 通信协议是西门子公司专为 S7-200 系列 PLC 开发的一个通信协议,是一个主/从协

议。在这个协议中,主站给从站发送申请,从站进行响应。从站不作初始化,当主站发出申

请或查询时,从站才响应。一般的情况下,网络上所有 S7-200CPU 都为从站。

如果在用户程序中允许选用 PPI 主站模式,一些 S7-200CPU 在运行模式下可以作为主站,

一旦选用主站模式,就可以利用网络读和网络写的指令读写其他的节点。

PPI 方式可以通过普通的两芯屏蔽双绞电缆进行联网。波特率为 9.6kbit/s、19.2kbit/s 和

187.5kbit/s。S7-200 系列 CPU 上集成的编程口同时就是 PPI 通信联网接口。利用 PPI 通信协

议进行通信非常简单方便,只用 NETR 和 NETW 两条语句即可进行数据信号的传递,不需额

外再配置模块或软件。PPI 通信网络是一个令牌传递网,在不加中继器的情况下,最多可以

由 31 个 S7-200 系列 PLC、TD200、OP/TP 面板或上位机(插 MPI 卡)作为站点,构成 PPI

网。PPI 网络通信结构如图 3-18 所示。

图 3-18 PPI 网络

② MPI 方式

S7-200 可以通过内置接口连接到 MPI 网络上,波特率为 19.2k/187.5kbit /s。它可与

S7-300/S7-400 CPU 进行通信。S7-200 CPU 在 MPI 网络中作为从站,它们彼此间不能通信。

MPI 通信结构如图 3-19 所示。

图 3-19 MPI 通信

Page 82: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–74–

③ 网络通信电缆

网络通信电缆为 PC/PPI 电缆,其开关选择如表 3-7 所示。

表 3-7 开关选择

波特率 开关状态(ON =上)

1 600 ON/ON/OFF

2 1200 ON/OFF/ON

3 2400 ON/OFF/OFF

4 4800 OFF/ON/ON

5 9600 OFF/ON/OFF

6 19200 OFF/OFF/ON

7 38400 OFF/OFF/OFF

S7-200 上的通信接口是标准的 RS-485 兼容的 9 针 D 型连接器。其管脚定义如表 3-8 所

示。

表 3-8 S7-200 CPU 通信接口引脚定义

引脚 信号定义 引脚 信号定义

1 逻辑地 6 +5V

2 24V 返回 7 24V 电源

3 485+ 8 485-

4 RTS 9

5 逻辑地

PC/PPI 电缆外型图如图 3-20 所示。

图 3-20 PC/PPI 电缆

3.自由通信口方式 自由通信口方式是 S7-200 PLC 的一个很有特色的功能。它使 S7-200 PLC 可以与任何通

信协议公开的其他设备、控制器进行通信,即 S7-200 PLC 可以由用户自己定义通信协议(例

如 ASCII 协议)。波特率最高为 38.4kbit/s(可调整)。使可通信的范围大大增加,使控制系统

配置更加灵活、方便。如:

� 任何具有串行接口的外设,例如:打印机或条形码阅读器、变频器、调制解调器

(Modem)、上位 PC 机等。

� S7-200 系列微型 PLC,用于两个 CPU 间简单的数据交换。用户可通过编程来编制

通信协议,用来交换数据(例如 ASCII 码字符),具有 RS-232 接口的设备也可用

PC/PPI 电缆连接起来进行自由通信方式通信。

Page 83: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 3 章 PLC 通信知识

–75–

4.主从式多机通信原理 在主从结构的通信方式中,有一台主机,多台从机,主机可与各从机作双向通信,各从

机之间不能通信。RS-485 接口允许一台主机最多接 31 台从机。在通信过程中,首先要确保

主机和各从机的对应关系正确。因此将各台 PLC 编号,取主机地址为 0,从机地址依次为

1,2�n。 在主机内存中开辟两个数据存储区:一个用于存储各从机发来的数据,一个存储要输出

到各从机的数据。同时开设两个数据来自相应的输出数据存储区,用于存放当前要发的数据,

该数据来自相应的输出数据存储区;一个接收缓冲区,主机将从机响应后送来的数据先存放

在接收缓冲区,然后再移入相应的输入数据存储区。各从机也在内存中分别开辟发送缓冲区

和接收缓冲区。 主机、从机均按固定的格式发送数据,发送的第一个字符是从机的站地址。从机在接收

数据时将内存 V0 的值与收到的站地址比较,以此判定信息是否是发给本站的;而主机在接

收时则将收到的站地址与发送的站地址比较,以判断是否是正确的从机响应。 除收发指令本身的奇偶校验外,还可以在发送时增加一个校验字节,该字节由发送的所

有数据的异或运算形成。主机、各从机计算所接收到数据的校验字节,与实际收到的校验字

节比较;若校验字节的计算值和接收值一致,说明数据收发正确。 下面给出一个简单的接收和发送数据的例子

LD SM0.1 //只有当第一次运行时才会执行的程序 MOVB 16#09, SMB30 //十六进制数 16#09 赋给 SMB30 是对通信口 0

//的初始化,选定使用自由通信口、波特率为 9600bps //数据格式为 8 位数据位,并且无校验位。

MOVB 16#B0, SMB87 //将十六进制数 16#B0 赋值给 SMB87,是对接收 //操作的初始化,SMB87 的第七位是接收操作允许 //位,第六位是需要结束符条件位,第五位是检查 //空闲时间允许位。

MOVB 16#AA, SMB89 //SMB89 为结束码单元,将十六进制//数 AA 赋值给 //SMB89 表明设定的结束码为 AA。

Page 84: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–76–

MOVW +50, SMW90 //SMW 设置的是通信空闲时间,50 表示通信空闲时 //间为 50ms

MOVB 100, SMB94 //SMB94=100 表示接收最多为 100 个字节。 ATCH INT_0, 23 //接收中断 ATCH INT_1, 9 //发送中断 RCV VB200, 0 //接收缓冲区指针为 VB200

LDB= SMB86, 16#20 //当 SMB86 值为 20 时,表明已经接收到了结束符 MOVB 10, SMB34 //赋值 10 给 SMB34,表明启动定时器,定时 10ms ATCH INT_2, 10 //启动定时器中断 CRETI NOT RCV VB200, 0 //如果没有接收到结束符,那么继续接收数据

3.3.2 三菱 FX 系列 PLC

FX2、FX1、FX2C 系列是三菱公司近年来推出的高性能小型可编程控制器,FX0、FX0S、

FX0N、FX2N 系列为微型可编程控制器。

1. FX 系列三菱可编程控制器的特点 (1)FX0S、FX0N 和 FX2N 系列可编程控制器的体积小。

(2)有各种不同规模的控制器可供选择。FX0S、FX0N 和 FX2N 的外观、高度、深度

差不多,但是性能和价格有很大的差别,如表 3-9 所示。

Page 85: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 3 章 PLC 通信知识

–77–

表 3-9 FX0S、FX0N 和 FX2N 性能比较

型号 I/O 点数 用户程序步数 功能指令 通信功能 基本指令执行时间 模拟量模块

FX0S 10~30 800 步 EEPROM 50 无 1.6~3.6µs 无

FX0N 24~128 2K 步 EEPROM 55 较强 1.6~3.6µs 有

FX2N 16~256 内附 8K 步 RAM 298 强 0.08µs 有

FX0S 的功能简单实用,价格便宜,可以用于小型开关量控制系统;FX0N 可以用于要求

较高的中小型控制系统;FX2N 的功能最强,可以用于要求很高的系统。不同的系统可以选

用不同的系列,避免了功能的浪费。

(3)FX 系列的可编程控制器的系统配置灵活,用户除了可以选用不同的系列之外,还

可以选用多种基本单元、扩展单元和扩展模块,组成不同 I/O 点和不同功能的控制系统,各

种不同的配置都可以获得很高的性价比。FX 系列的硬件配置就像模块式可编程控制器一样

灵活,因为它的基本单元采用整体式结构,又具有比模块式可编程控制器更高的性价比。

每台 FX2N 可将一块功能扩展板安装在基本单元内部,这种扩展功能板包括 8 点模拟量

设定单元、RS-232C 通信板、RS-485 通信板和 FX0N 适配器连接板。

FX2N 系列有许多特殊的模块,如模拟量输入输出模块、热电阻/热电偶温度传感器用模

拟量输入模块、高速计数模块、1 轴/2 轴位置控制单元和位置控制模块、脉冲输出模块等。

FX 系列可编程控制器还有许多规格的数据存取单元,可以用来修改定时器、计数器的

设定值和数据寄存器的数据,也可以用来作为监控使用。

FX 还有输出电流分别为 1A 和 2A 的 DC24V 电源组件,输入电压为 AC220V,可装在

DIN 导轨上面,作为晶体管输出模块的外部电源,或者是接近开关、光电开关等传感器的电

源。

(4)功能强大。FX 系列可编程控制器虽然体积很小,但是其功能是比较强的。内置高

速计数器,可以捕捉脉宽大于 75µs 的脉冲。有输入/输出刷新、中断、输入滤波时间调整、

恒定扫描时间等功能,有高速计数器专用的比较指令,使用脉冲输出功能,可以直接控制步

进电机和伺服电机。 三菱 FX 系列可编程控制器一般技术指标如表 3-10 所示。

表 3-10 三菱 FX 系列可编程控制器一般技术指标

项目 说明

环境温度 使用温度为 0~60℃,储存温度为-20~70℃

环境湿度 使用时 35%~85%RH

使用环境 无腐蚀气体,无灰尘

接地电阻 第三种接地

绝缘耐压 AC 1500V 1min

2. FX 系列可编程控制器的通信模块 (1)RS-232C 通信用功能扩展板与通信模块 ① FX2N-232-BD 通信用功能模块 RS-232C 的最大通信距离为 15m,最大的传输速度为 19 200bit/s,除了可以与各种 RS-232

设备进行通信之外,通过 RS-232-BD,上位机可以用专用的编程软件对 FX2N 进行编程,或

Page 86: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–78–

者可以直接对可编程控制的运行情况进行监控。

② FX2N-232IF 通信模块

在 FX2N 系列可编程控制器上最多可以连接 8 块 FX2N-232IF 模块。将 RS-232C 通信模

块和功能扩展模块连接到可编程控制器上,可与个人计算机、打印机等装有 RS-232C 接口的

设备进行通信,通信的时候可以使用 FX2N 的串行数据传送指令(RS)。串行通信接口的波

特率、数据长度、奇偶性等可以由特殊数据寄存器来设置。

(2)FX2N-422-BD 通信接口扩展板

FX2N-422-BD 用于 RS-422 通信,可以同时连接可编程控制器与两台外部设备,

FX2N-422-BD 安装在可编程控制器内部,传输距离为 50m,最大传输速率为 19.2Kbit/s。

(3)RS-485 通信用适配器与通信用功能扩展板

FX0N-485-ADP 是 RS-485 通信用功能扩展模块,传输距离为 500m,最大传输速率为

19.2Kbit/s。一台 FX0N 型可编程控制器内可以安装一个 FX0N-485-ADP。

FX2N-485-BD 是 RS-485 通信用的功能扩展板,传输距离为 50m,最大传输速率为

19.2Kbit/s,在一台 FX2N 可编程控制内可以安装一个 FX2N-485-BD,除了与上位机相连接之

外,通过 FX2N-485-BD 可以在两台 FX2N 型可编程控制器之间实现并联连接。

3. 三菱 FX 编程口通信 (1)编程电缆

三菱 FX 系列 PLC 通信线如图 3-21 所示,三菱 PLC 的编程口外形如图 3-22 所示。

图 3-21 三菱 FX 系列 PLC 通信线

图 3-22 三菱 FX 系列 PLC 通信口

FX 系列可编程控制器的通信口事实上为 RS-485 接口,因此只需要使用 8 根引脚中的 4

根就可以完成通信了。这 4 个引脚是 1、2、4、7,分别代表了接收和发送的 4 根通信线。

1�� TX- 2�� TX+ 4�� RX- 7�� RX+

(2)编程口通信的参数设置 使用编程口通信,首先要先设置通信的参数。使用三菱 FX 系列可编程控制器通用编程

软件 SWOPC-FXGP/WIN-E 来对通信进行设置。SWOPC-FXGP/WIN-E 为一个可应用于 FX

Page 87: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 3 章 PLC 通信知识

–79–

系列可编程控制器的编程软件,可在 Windows 3.1、Windows 95、Windows 2000 下运行。在

SWOPC-FXGP/WIN-E 中,可通过线路符号、列表语言及 SFC 符号来创建顺控指令程序,建

立注释数据及设置寄存器数据。

该程序可在串行系统中可与可编程控制器进行通信、文件传送、操作监控以及各种测试

功能。

图 3-23 是 SWOPC-FXGP/WIN-E 编程软件界面。

图 3-23 SWOPC-FXGP/WIN-E 编程软件界面

下面就是 FX 系列可编程控制器通信口参数设置的界面,在使用编程口通信时,要设定

为 RS 协议指令、7 位数据位、偶校验、1 位停止位、波特率为 9 600bit/s,如图 3-24 所示。

图 3-24 编程口通信参数设置

除了使用编程软件进行设置以外,还可以在程序中对 PLC 的通信方式进行设定。

在程序中可以使用 MOV 指令将数据的传送格式(如数据位数、奇偶校验、起始位、停

止位、传输速率、是否由调制解调等)写入特殊数据寄存器 D8120 中。寄存器 D8120 每一位

的定义如表 3-11 所示。

Page 88: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–80–

表 3-11 寄存器 D8120 含义

bit 内容 0 1

b0 数据长度 7 位 8 位

b1,b2 奇偶校验 00:不校验 01:奇校

验 11:偶校验

b3 停止位 1 位 2 位

b4~b7 传输速率 bit/s

0011:300

0100:600

0101:1200

0110:2400

0111:4800

1000:9600

1001:19200

b8 起始符 无 D8124

b9 结束符 无 D8125

b10 控制线 无 H/W

b11 模式 一般模式 调制解调模式

b12~b15 未用 -- --

例如,设传送格式为:数据长度为 7 位,偶校验,1 个停止位,传输速率为 9 600bit/s,

无起始符、结束符和控制符。由表 3-11 可知,应将十六进制数 008EH 送入 D8120。如图 3-25

所示。

图 3-25 程序设置通信参数

当程序启动初始化后,可编程控制器就会按照设定好的通信方式进行通信。

(3)编程口通信协议

① 通信命令

三菱 FX 系列 PLC 的编程口通信协议有 4 条命令,分别是读设备数据、写设备数据、强

制设备 ON、强制设备 OFF。这 4 条命令的代码以及其适用的设备范围如表 3-12 所示。

表 3-12 编程口通信协议命令

通信命令 命令代码 使用对象

读设备数据命令 0 X,Y,M,S,T,C,D

写设备数据命令 1 X,Y,M,S,T,C,D

强制设备 ON 命令 7 X,Y,M,S,T,C

强制设备 OFF 命令 8 X,Y,M,S,T,C

② 编程口参数设置

编程口通信的参数是:

Page 89: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 3 章 PLC 通信知识

–81–

波特率: 9 600bit/s。

起始位: 1 位。

数据位: 7 位。

校验位: 1 位;校验方式为偶校验。

停止位: 1 位。

4. 协议命令说明 下面以读设备数据命令为例,说明三菱 FX 系列 PLC 的协议命令。

读设备数据命令的范围是读输入触点 X,读写内部继电器 M,计数器 C,定时器 T 等等

位设备。

通信数据帧的的帧格式如表 3-13 所示。

表 3-13 帧格式

帧起始 命令码 首地址 字节数 帧结束 校验和

STX CMD GROUP ADDRESS BYTES ETX SUM

通信协议的数据帧是由 ASCII 码组成的。校验和是在帧起始字节之后所有字节的和。

在通信协议中,读取设备的命令格式是一致的,读写各个不同设备的惟一区别就是各个

设备的地址是不同的。

下面以三菱 FX1N 60MR 为例介绍读设备数据命令的使用方法,这个型号的 PLC 有 24 点

的开关量输入和 36 点的开关量输出。输入地址是用八进制数来表示的:X0~X7、X10~X17、

X20~X27;输出的地址也是用八进制来表示的:Y0~Y7、Y10~Y17、Y20~Y27、Y30~

Y37、Y40~Y43。

如果要使用读线圈命令来读取 X0~X7 的状态,那么根据表 3-13 中的帧格式,命令的内

容如下:

02 30 30 30 38 30 30 31 03 35 43

每个字节的具体含义为:

Byte 1:帧起始字节。

Byte 2:读取线圈状态命令。0 的 ASCII 为 0x30。

Byte 3~Byte6:线圈 X0 的地址为 0x0080,其 ASCII 码为 0x30、0x30、0x38、0x30。

Byte7~Byte8:要读取的设备的数量,因为 X0~X7 共 8 位,合计一个字节,所以数量

字节的 ASCII 码为 0x30、0x31。

Byte9:帧终止字节。

Byte10、Byte11:校验和。

下面一段程序是编程口通信的读取开关量输入线圈状态。

int get_x (int addr,int num,unsigned char readdata[])

{

int ComPlcCount,ComPlcCount1,ComPlcCount2; //通信状态字节

unsigned char send[] = { 02,0x30,0x30,0x30,0x30,0x30,0x30,0x30,03,0x30,0x30};

//初始化发送临时缓冲区

unsigned char Rxdbuf[20]; //接收缓冲区

unsigned char Txdbuf[11]; //发送缓冲区

Page 90: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–82–

unsigned char data[3];

unsigned char head[1];

unsigned int sum[3];

unsigned int uSum,i,j,uTmp1;

int Reclength,number;

int retval;

addr = addr/10 + 0x80;

//由于 Fx 的地址为 8 进制表示,所以。。addr= addr/10

uTmp1 = addr & 0x0f;

send[5] = ASCII(uTmp1);

uTmp1 = (addr>>4)& 0x0f;

send[4] = ASCII(uTmp1);

uTmp1 = (addr>>8)& 0x0f;

send[3] = ASCII(uTmp1);

uTmp1 = (addr>>12)& 0x0f;

send[2] = ASCII(uTmp1); //将地址由十六进制转换为 ASCII 码

if(num%8==0) //将位设备数量转换为字节计数方式

{

number = num/8;

}

else

{

number= num/8 + 1;

}

uTmp1 = number & 0x0f; //将读取设备的数量由十六进制转换为 ASCII 码

send[7] = ASCII(uTmp1);

uTmp1 = (number>>4)& 0x0f;

send[6] = ASCII(uTmp1);

uSum=0; //求和,将有效数据字节相加,求得和以后转

//换为校验和的 ASCII 码

for(i=1;i<9;i++)

{

uSum+=send[i];

}

uTmp1=uSum&0x0f;

send[10] = ASCII(uTmp1);

Page 91: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 3 章 PLC 通信知识

–83–

uTmp1=(uSum>>4)&0x0f;

send[9] = ASCII(uTmp1);

for(i=0;i<11;i++) //将已经准备完毕的发送数据由发送临时缓冲

//区复制到发送缓冲区中

{

Txdbuf[i]=send[i];

}

head[0]=02;

Reclength=number*2+4; /*返回信息长度;包括读取的数据字节数,返回的起始,

结束标志以及数据和*/

retval = Send(11,Reclength,1,Txdbuf,Rxdbuf,head);//调用发送函数发送数据

/*///////////////////////////////////////*/

if(retval == 0) /*和校验*/

{

sum[0] = 0;

sum[1] = 0;

sum[2] = 0;

for(i=1;i<Reclength-2;i++)

{

sum[0]+=Rxdbuf[i];

}

uTmp1=sum[0]&0x000f;

sum[1]=ASCII(uTmp1);

uTmp1=(sum[0]>>4)&0x000f;

sum[2]=ASCII(uTmp1);

if((sum[1]==Rxdbuf[Reclength-1])&&(sum[2]==Rxdbuf[Reclength-2]))

{ //如果和校验正确

ComPlcCount+=1; //收对计数加一

for(j=num/4;j>0;j=j-2)

{

data[2]=0;

if(Rxdbuf[j]>0x40)

data[0] = Rxdbuf[j]-0x41+0xa;

else

Page 92: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–84–

data[0] = Rxdbuf[j]-0x30;

if(Rxdbuf[j-1]>0x40)

data[1] = Rxdbuf[j-1]-0x41+0xa;

else

data[1] = Rxdbuf[j-1]-0x30;

data[2]= data[1];

data[2]=data[2]<<4;

data[2]=data[2]|data[0];

for( i=0 ; i< 8 ; i++ )

{

if((data[2]&(1<<i))==0)

readdata[i+8*(num/4-j)] = 0;

else

readdata[i+8*(num/4-j)] = 1;

}

}

}

else

{

ComPlcCount1+=1; //接收错误计数加一

retval=2; //和校验错误

}

}

else

{

ComPlcCount2=ComPlcCount2+1; //错误计数加一

retval=-1;

}

return retval;

}

3.3.3 松下 FP 系列 PLC

松下 FP 系列 PLC 的各种机型,无论是大中型 PLC 还是小型的 PLC 都配置了通信机制,

可以方便地实现 PLC 和 PC 机之间或者 PLC 与 PLC 之间的互联。下面介绍一下 FP 系列 PLC

的网络。

Page 93: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 3 章 PLC 通信知识

–85–

1. 松下电工的 PLC 专用通信协议简介 FP 系列 PLC 之间的通信是遵照松下电工的专用通信协议�MEWTOCOL 来设计和实

现的,下面简单的介绍一下这个协议。

MEWTOCOL 协议分为两个部分:一个是 MEWTOCOL-COM,即关于计算机的通信协

议;另外一个是 MEWTOCOL-DATA,即关于数据传输的协议。

首先介绍 MEWTOCOL-COM 协议。这个协议用于 PLC 与计算机的通信中。

(1)协议的基本格式

� 发送命令帧

发送格式如图 3-26 所示。

% H L # 发送文本 BCC CR

图 3-26 发送命令帧格式

% �MEWTOCOL-COM 的标志字节。

H �地址码的高字节。

L �地址码的低字节。

#�站号。

BCC�为块检验码。

CR�结束码。

� 响应帧

正确响应帧格式如图 3-27 所示。

% H L $ 响应文本 BCC CR

图 3-27 正确响应帧格式

$�正确传送标志。

错误的响应帧格式如图 3-28 所示。

% H L ! 错误代码 BCC CR

图 3-28 错误响应帧格式

! �错误传送标志。

(2)命令代码

计算机通过 MEWTOCOL-COM 协议中的专用命令,可以对 PLC 进行读、写以及监控等

等操作,表 3-14 列出了这些专用命令。

表 3-14 MEWTOCOL-COM 命令代码

命令代码 说明

RCS 读单个触点

WCS 写单个触点

Page 94: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–86–

续表

命令代码 说明

RCP 读多个触点

WCP 写多个触点

RCC 以字为单位读取触点信息

WCC 以字为单位写触点信息

SC 在触点区内以字为单位设置数

RD 读数据区

WD 写数据区

SD 数据区设置

RS 读定时/计数器预设置值

WS 写定时/计数器预设置值

RK 读定时/计数器经过值区

WK 写定时/计数器经过值区

MC 监视触点动作

MD 监视数据计数和复位

MG 监视器执行

RR 读系统寄存器

WR 写系统寄存器

RT 读 PLC 状态

RP 读程序

WP 写程序

RM 远程控制 PLC 启动和停止

AB 发送无效

① 单触点读、写命令 RCS、WCS

读发送帧格式如图 3-29 所示。

% H L # R C S A B BCC CR

图 3-29 单触点读命令发送帧格式

H�发送目的站号高位字节。

L�发送目的站号低位字节。

A�触点名(占一位)。

B�触点号(占四位)。

正确响应的帧格式如图 3-30 所示。

% H L $ R C S DATA BCC CR

图 3-30 单触点读命令正确响应帧格式

DATA�接收到的数据(一位)值为 0 时表明触点为 OFF,值为 1 时表明触点为 ON。

Page 95: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 3 章 PLC 通信知识

–87–

错误响应的帧格式如图 3-31 所示。

% H L ! ERROR CODE BCC CR

图 3-31 单触点读命令错误响应帧格式

写发送帧格式如图 3-32 所示。

% H L # W C S A B BCC CR

图 3-32 单触点写命令发送帧格式

正确响应的帧格式如图 3-33 所示。

% H L $ W C BCC CR

图 3-33 单触点写命令正确响应帧格式

错误响应的帧格式如图 3-34 所示。

% H L ! ERROR CODE BCC CR

图 3-34 单触点写命令错误响应帧格式

② 多节点读、写命令 RCP、WCP

读发送帧格式如图 3-35 所示。

% H L # R C P N� D� N� D� � N� D��BCC CR

图 3-35 多节点读命令发送帧格式

n�要读取的节点数量(1~8)。

N1�第一个节点名。

D2�第一个节点号。

Nn�第 n 个节点名。

Dn�第 n 个节点号。

正确响应帧格式如图 3-36 所示。

% H L $ R C D� D� � D� BCC CR

图 3-36 多节点读命令正确响应帧格式

D1�第 1 个节点的数据

D2�第 2 个节点的数据

Dn�第 n 个节点的数据

错误响应帧格式如图 3-37 所示。

% H L ! ERROR CODE BCC CR

图 3-37 多节点读命令错误响应帧格式

Page 96: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–88–

写发送帧格式与读发送帧格式相同,只是命令码改为 WCP。写响应帧格式与单节点响应

帧格式相同。

③ 读、写数据命令 RD、WD

读发送帧格式如图 3-38 所示。

% H L # R D N� A� A� BCC CR

图 3-38 多节点写命令发送帧格式

N1�数据寄存器名。

A1�数据区首地址(5 位)。

AN�数据区末地址(5 位)。

正确响应帧格式如图 3-39 所示。

% H L # R D D� D� � D� BCC CR

图 3-39 多节点写命令正确响应帧格式

D1�第 1 个节点数据。

D2�第 2 个节点数据。

Dn�第 n 个节点数据。

注意:每个节点的数据占 4 个字节。

例:要读取 DT1105~DT1107 中的数据,该数据区存放的数据为:

DT1105=0072H DT1106=1234H DT1107=5543H

其中发送和响应帧如图 3-40 所示。

% 0 1 # R D D 01105 01107 57 CR

% 0 1 # R D 7200 3412 4355 BCC CR

其发送命令的内容

响应帧格式

图 3-40 应用实例

写发送帧格式如图 3-41 所示。

% H L # W D DST A� A� D� BCC CR

图 3-41 多节点写命令发送帧格式

DST�目的数据区名。

A1�数据区首地址。

A2�数据区末地址。

Dn�写入数据内容。

表 3-15 为 MEWTOCOL-COM 通信错误代码表。

Page 97: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 3 章 PLC 通信知识

–89–

表 3-15 MEWTOCOL-COM 通信错误代码

错误代码 说明

21 设备数据错误

22 设备接受缓冲区溢出

23 设备号设置重复

24 发送数据格式错误、数据错误

25 硬件出错

26 设备地址号超出范围

27 接收帧格式错误

28 通信无响应,通信超时

29 无

30 无

40 BCC 错误

41 数据格式错误

42 无此命令

43 发送错误

50 连接设备错

51 通信缓冲区溢出

52 禁止传送

53 通信繁忙

60 通信参数设置出错

61 通信数据出错

62 操作寄存器错误

63 PLC 工作方式错误

65 写保护寄存器

66 操作对象地址超出范围

下面介绍 MEWTOCOL-DATA 协议。MEWTOCOL-DATA 协议是用在 PLC 与 PLC 之间

或者是 PLC 与计算机之间进行通信的通信协议。

(1)基本帧格式

基本帧格式如图 3-42 所示。

? H L C� D� A� N� BCC CR

图 3-42 基本帧格式

C1�命令代码。

D1�操作寄存器代码。

A1�操作寄存器首地址。

N1�数据长度(4 个字符)。

(2)正确响应帧格式

正确响应帧格式如图 3-43 所示。

Page 98: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–90–

? H L C� FF D� BCC CR

图 3-43 响应帧格式

C2�响应方的命令码。

FF�通信结束标志。

D1�传送的信息。

(3)错误响应帧格式

错误响应帧格式如图 3-44 所示。

? H L C2 ERROR CODE BCC CR

图 3-44 错误帧格式

这里仅对 MEWTOCOL 协议做了一个简单地介绍,详细的说明和应用请参看松下相应产

品的通信和编程手册。

2. FP 通信网络简介 FP 系列 PLC 集成了 6 种通信子网络,它们是 ET-LAN 以太网、P-Link 光纤网、H-Link

网络、W-Link 网络、F-Link 网络(远程 I/O 网络)和 C-NET。每一种子网络的生成,都必须

以各自相应的通信模块为基础。但是无论是哪一种通信网络,在应用层上都遵守松下电工的

专用协议 MEWTOCOL。

C-NET 网络一般是单独构成的一个通信网络,当 PC 机与多台 PLC 构成 1:N 的网络时,

PC 作为主站,其余所有 PLC 都是从站。主站以轮询的方式对所有从站进行依次的扫描通信

读取所需的数据。

P-Link 网络与 W-Link、H-Link 结构很相似,都是 3 层的结构。

P-Link 是一种环形局域网络,P-Link 单元是 FP 系列 PLC 连接进入这个环网的通信节点。

而 RS-232-Link 单元是 PC 机连接进入此网络的通信节点,节点之间使用光缆作为通信介

质相互连接起来。一台 FP 系列可编程控制器最多可以安装两个 P-Link 单元。图 3-45 所示是

FP 系列复合型网络结构图。P-Link 的网络结构如图 3-46 所示。

图 3-45 FP 系列复合型网络

Page 99: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 3 章 PLC 通信知识

–91–

图 3-46 P-Link 工业局域网结构图

表 3-16 中列举出了 P-Link 通信的主要技术性能。

表 3-16 P-Link 通信的主要技术性能

性能 参数

拓扑结构 令牌环网

传输方式 基带传输

传输速率 375kbit/s

传输距离 总长 10000m,各个站点之间距离 800m

最多可以连接节点数 64 个

F-Link 称为远程 I/O 系统,这个系统位于整个通信网络的底层,专门用于工业控制现场

的通信,是一种主从式的局域网络。FP 系列 PLC 远程 I/O 系统采用的通信方式主要是周期

I/O 方式和存储器访问方式,在该系统中的主站中,除了 CPU 单元以外,还配置了远程控制

单元,其内部含有通信处理器,CPU 主要负责对用户程序进行扫描循环,在扫描周期中安排

一段时间进行 I/O 处理,而远程 I/O 中的处理器主要负责远程的 I/O 通信。

Page 100: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第第 44 章章 定定位位自自动动控控制制系系统统

企业现代化生产规模的不断扩大和深化,使得仓库成为生产物流系统中的一个重要且不

可缺少的环节。立体仓库正以它最小的占地面积和最佳的空间利用率,逐步替代面积利用率

极低且陈旧落后的平面仓库,这种替代促使仓储物流业的水平提高。为满足现代化生产与流

通的需要,就必须采用以计算机控制技术为主要手段组成的自动化立体仓库。自动化立体仓

库为现代物流系统的主要设备,是一种多层存放货物的高层仓库系统。也是 CIMS 的集成环

节之一,在 FMS 和 FAS 中占有非常重要的地位。本章以一个智能立体仓库的设计为例,介

绍定位系统的设计方法。

4.1 定位自控系统总体设计

作为一个定位控制系统,必须实现的目标如下:

(1)能满足一般控制系统要求的自动、手动的控制功能;

(2)能根据使用者发出的指令做出相应的动作;

(3)能够根据实际的情况进行自动的校正。

4.1.1 功能分析

智能立体仓库由货架、堆垛机、自动控制装置等部分组成,有自动和手动两种操作方式。

立体仓库中间为巷道,两侧为双行货架,堆垛机在巷道上、固定的天、地导轨之间运行。

本系统仅设置 X 和 Y 层的货架一行,另一行货架仅为虚拟行,以便安装和参观学习。堆

垛机由固定在小车上的门式框架、沿门式框架上导轨提升运动的升降台以及在升降台上做伸

缩运动的货叉(机械手)等 3 部分组成,堆垛机设计成一个 3 自由度系统,货物放在升降台

的货叉上能实现上下、左右和前后的运动。

水平方向的前后运动,由小车电动机进行驱动,小车电动机为 220W 的三相交流异步电

动机。

堆垛机垂直方向,由提升电机驱动升降台沿门式框架结构做升降运动,提升速度小于

5m/min,提升电动机功率为 220W 的锥型转子单相交流异步电动机,具有断电抱闸制动的功

能。固定在升降台上的机械手可带动货物一起做伸缩运动,伸缩量为左右各 300mm,用于货

物的存取操作。速度按机械手 5m/min 的速度要求设定。

4.1.2 控制原理分析

堆垛机的信息显示、作业地址及指令的输入方法有很多种,一种方法是采用发光二极管

Page 101: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 4 章 定位自动控制系统

–93–

来显示各种信息(如故障诊断代码等),采用拨码开关来输入作业地址。此种方法原理简单,

但是一旦原器件有损坏,如某个发光二极管损坏,显示的信息就不准;又由于采用拨码开关

输入的地址值无法校验,拨码开关使用 2~3 年后,触点氧化,使电阻增加,工作电压较低

(24V),导通电流小(7mA),这样触点电阻的变化,会直接影响拨码开关的可靠性,造成

拨码开关拨的数值与 PLC 输入的数值不一致,堆垛机无法运行到目的地址。此种方法直接影

响了堆垛机的可靠运行,增大了堆垛机的后期保养、维修工作,因此目前此种方法已经很少

有人采用。

另一种方法是采用键盘来输入作业地址、作业指令,用数字和符号来显示各种信息,输

入的数值及指令马上可以显示出来,校对容易,对错一目了然。

编程器的显示器有二行共 32 位 5×7 的液晶点阵,可以显示数字、符号和字母;键盘按

键有 0~9、A~F 等键可以使用,可以向小车输入作业地址(排、列和层)、作业指令(存、取

最多二个作业)、操作方式(自动、手动)。将键盘的 0~9 键定义为数字键,A~F 定义为功能

键,在输入作业指令、作业地址时显示器能马上显示出来,实现了简单的人—机对话,保证

了输入的作业地址和作业指令的准确性,提高了堆垛机运行的可靠性。 这个方法使堆垛机的小车每通过一个位置就记录一个数,一直移动到和预定位置号一致

时停止移动。这个方法的特点是电路简单。另外随着电子技术的发展,出现了众多优秀的 PLC,

用 PLC 来控制堆垛机是相当灵活方便的,可以在 PLC 的软件中加保护,即堆垛机每走过一

个货格的时间超过或少于正常的时间范围就报警。这样就可以有效地避免计数出错,本例即

采用此方法。 智能立体仓库能实现货物的自动存取功能,这就要小车在作水平、升降台做垂直运动时,

能准确记忆堆垛机的位置,即堆垛机的小车和升降台所在的列和层数,以实现货物的定位存

取,本系统采取了非接触式反射型光电传感器,自动检测货位的列和层数。例如,随小车移

动,反射式光电传感器每经过一列货架立柱时接收到一个反射信号,列值增加 1,升降台每

升高一层,层光电传感器使层值增 1。光电传感器的有效反射距离为 30cm。在自动存取货物

时,货位的输入方法有微机键盘和 BCD 码拨盘开关两种形式输入,PLC 在收到外部输入的

货位层和列数层后,将此值作为层列计数器的预置值,用于实现货位的自动搜索控制。图 4-1所示是典型连接示意图。

图 4-1 连接示意图

Page 102: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–94–

4.2 定位自控系统工艺流程

根据设计要求将整个定位控制的全过程分成多个阶段:小车前进到指定货架列的过程,

将货物抬升到指定货架行的过程,机械手放置货物或者取得货物的过程,放置或者取得货物

之后返回的过程。在各个阶段,对象的特性相对稳定,并且小车在前进和抬升货物的过程控

制方面是基本一致的。

下面对各个阶段进行简单地介绍。

(1)小车前进的过程:在这个过程中,处于自动或者手动控制状态的小车由起始点出发,

经过位置的校对,到达预先指定的货架的列。

(2)抬升货物的过程:在这个过程中,货物被抬升到预先指定的货架的行。

(3)存取货物的过程:在这个过程中,通过控制机械手臂的运动,使机械手到达预先指

定的位置。然后根据实际的需要完成存放或者取得货物的操作。

(4)返回过程:在完成指定的操作之后,小车应该返回起始位置。

4.3 定位自控系统 PLC 选型和资源配置

根据实际的控制点数和系统需要实现的控制要求,在本例中选用了西门子 S7-200 系列的

PLC 作为控制系统。按照控制点数来计算,可以选用 CPU-224 这个型号的 CPU。

4.3.1 PLC 选型

图 4-2 所示的就是 S7-200 系列的 PLC,由于其具有紧凑的设计、良好的扩展性、低廉的

价格以及强大的命令,使得 S7-200 系列可以近乎完美地满足小规模的控制要求。此外,丰富

的 CPU 类型和电压等级使其在解决工业自动化问题时,具有很强的适应性。

图 4-2 西门子 S7-200 系列 PLC

S7-200 CPU 224(扩展)系统分别对小车电机用变频器、机械手电机步进驱动模块进行

自动控制,并对检测信号及外部输入数据和控制信号进行处理,实现了对小车、机械手驱动、

升降台提升及保护等控制的基本要求。表 4-1 所示是 CPU 244 的技术参数。

Page 103: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 4 章 定位自动控制系统

–95–

表 4-1 CPU 244 的技术参数

技术参数 说明

本机数字输入 14 路数字量输入

本机数字输出 10 路数字量输出

高速计数器(32-位值) 6 个高速计数器

脉冲输出 2 个,20kHz 脉冲速率

模拟电位器 1 个,8 位分辨率

时间中断 2 个,1ms 分辨率

边沿中断 4 个上升沿和/或 4 下降沿

可选择的输入滤波器时间 7 个,范围 0.2ms~12.8ms

4.3.2 PLC 的 I/O 资源配置

由于需要采集外部检测信号(小车所经过的行、列)、控制小车驱动电机的起停、选择

手动控制与自动控状态、小车的前后列向运动、升降行向运动、伸缩运动、货物的抓取、存

放等。系统资源分配如表 4-2 所示。

表 ���� � � � � � � � � � � � � � � � � � � ���� � � 地址分配表�

位号名 数据类型 说明

I0.0 BOOL START

I0.1 BOOL STOP

I0.2 BOOL 自动选择输入

I0.3 BOOL 手动选择输入

I0.4 BOOL 前后运动

I0.5 BOOL 向前运动

I0.6 BOOL 向后运动

I0.7 BOOL 升降运动

I1.0 BOOL 上升运动

I1.1 BOOL 下降运动

I1.2 BOOL 伸缩运动

I1.3 BOOL 前伸运动

I.4 BOOL 后缩运动

I1.5 BOOL 抓取物品

I1.6 BOOL 放置物品

Q0.0 BOOL 小车向前运行

Q0.1 BOOL 小车停止向前运行

Q0.2 BOOL 小车向后运行

Q0.3 BOOL 小车停止向后运行

Q0.4 BOOL 机械手上升

Page 104: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–96–

续表

位号名 数据类型 说明

Q0.5 BOOL 停止上升

Q0.6 BOOL 机械手下降

Q0.7 BOOL 停止下降

Q1.0 BOOL 机械手前伸

Q1.1 BOOL 停止前伸

Q1.2 BOOL 机械手后缩

Q1.3 BOOL 停止后缩

Q1.4 BOOL 放置物品

Q1.5 BOOL 抓取物品

M0.0 BOOL 运行状态

M10.0 BOOL 手、自动状态

M20.0 BOOL 小车前后运动使能

M20.1 BOOL 列到位标志

M20.2 BOOL 升降运动使能

M20.3 BOOL 行到位标志

M20.4 BOOL 伸缩运动使能

M20.5 BOOL 物品到位标志

M20.6 BOOL

M20.7 BOOL 程序运行方向标志

M21.1 BOOL 向前运行标志

M21.2 BOOL 向后运行标志

M21.3 BOOL 上升运行标志

M21.4 BOOL 下降运行标志

M21.5 BOOL 前伸运行标志

M21.6 BOOL 后缩运行标志

4.3.3 其他资源的配置

EM253位控模块是S7-200的特殊功能模块。能够产生移动控制所需的脉冲串,其组态信

息存储在S7-200的V存储区中,用于步进电机和伺服电机的速度和位置的开环控制。

位控模块的特性如下:

(1)位控模块可提供单轴开环移动控制所需要的功能和性能;

(2)提供高速控制从每秒12个脉冲至每秒200 000个脉冲;

(3)支持急停S曲线或线性的加速减速功能;

(4)提供可组态的测量系统,既可以使用工程单位如英寸或厘米,也可以使用脉冲数;

(5)支持手动的位控方式;

(6)提供连续操作;

Page 105: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 4 章 定位自动控制系统

–97–

(7)提供4种不同的参考点寻找模式,每种模式都可对起始的寻找方向和最终的接近方

向进行选择。

4.4 控制系统 PLC 程序流程

根据 4.2 节工艺流程的介绍,可以总结出基本的程序流程如图 4-3 所示。

图 4-3 程序流程图

4.5 定位自控系统 PLC 程序说明

程序运行步骤如下。

(1)初始化

在程序的第一个扫描周期(SM0.1 = 1)设置重要的参数。

(2)运行

Page 106: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–98–

按下设备的“启动”(START)按钮开始运行,首先调用子程序检测位置信号,取得当

前位置记数,然后将位置计数存放在变量 VD100(行记数)、VD120(列记数)中,以便程

序判断是否已经到达指定的位置。

1. 程序初始化 程序初始化由网络 1 和网络 2 完成。(网络是 PLC 梯形图的一个基本单位,通常可以理

解为一个程序行。)这是一段简单的初始化过程程序,S7-200 只读特殊内存 SM0.1,只有在

首次扫描循环时打开,所以这段初始化程序只在程序开始运行的时候执行一次。

这里执行的两条指令对变量 VW102 以及 VW132 进行初始化,这两个变量分别为小车运

行中所经过的行计数以及列计数。

由于要涉及到小车完成任务的过程以及完成任务以后返回的过程,所以程序在执行的过

程中必须要明确其运动方式和目的,是前进或后退运动、升降运动或者是机械手臂的伸缩运

动等。因此,在以下的程序中,每一个运动过程都必须加上很明确的标志和条件限制来确定

其运动的方式和运动的目的,这样才不至于因为目的不明确而造成错误的判断以及错误的动

作,造成存取货物的失败。

网络 1 的梯形图如图 4-4 所示。

图 4-4 网络 1

网络 1 的实现代码如下: LD SM0.1 //仅在首次扫描时 SM0.1 才为 1 MOVW +0, VW102 //清除行位置记录变量 VW102 MOVW +0, VW132 //清除列位置记录变量 VW132

网络 2 的梯形图如图 4-5 所示。

图 4-5 网络 2

网络 2 的实现代码如下: LD SM0.0

Page 107: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 4 章 定位自动控制系统

–99–

CALL singal

2. 列向自动运行 下面是一段小车沿列向自动运行的程序,由网络 3 和网络 4 完成。在这段程序中,首先

要考虑的问题就是:小车处于前进或者是存放货物的过程,还是完成了预定任务返回的过程。

但是由于 PLC 程序的执行特点是逐行扫描,所以仅仅判断小车是处于前进过程还是返回过程

是不够的,因为在返回过程中,还有机械手臂从货架上缩回、机械手臂下降到初始位置等几

个过程,所以说,必须要在程序中能够将这 3 种完全不同的运动区分开来。 根据这种要求,

在编写程序的时候加入了 3 个不同的 BOOL 类型的变量 M20.1、M20.3 以及 M20.5,分别作

为小车沿列向运行到位标志、机械手沿行向运行到位标志、机械手货架到位标志。当变量为

ON 时,表示已经完成了该项动作,为 OFF 时表明小车还没有完成对应的运动。

Q0.0 是开关量输出,表示启动小车前进,小车开始向前运动。在这里,笔者认为自动控

制不需要控制小车的向后运动。

当小车还处于取放货的动作未完成的阶段时,需要判断的是小车是否已经完成了列的定

位,如果未完成列的定位(M20.1 为 OFF),那么启动小车前进的电机,使小车向前运动。

如果小车处于已经完成了取放货的动作时,那么判断小车是否已经完成了由货架上返回(伸

缩机械手的运动)、是否已经完成了由指定行数退回初始行位置的运动(如果完成,小车应该

是第一行以下的位置)。 如果小车这两个过程都已经完成,那么将开始进行后退运动,Q0.2 表

示启动小车后退电机,使小车向后运行并返回初始位置。

网络 3 的梯形图如图 4-6 所示。

图 4-6 网络 3

网络 3 的代码如下: 网络 3 LD SM0.0 //SM0.0 上电以后自动置为 ON LPS AN M20.7 //如果 M20.7 值为 OFF,那么认为是处于执行

//动作的过程中 AN M20.1 //如果 M20.1 值为 OFF,那么认为小车第一种

//运动-前后列向运动还没有完成 A M0.0 //如果 M0.0 值为 ON-START RUN 状态 A M10.0 //如果 M10.0 值为 ON-自动运行状态 S Q0.0, 0 //那么将置 Q0.0 为 ON,Q0.0 为小车前向运行

//输出 LPP A M20.7 //如果 M20.7 为 ON,那么认为小车处于执行

//动作完毕,返回途中 AN M20.5 //如果 M20.5 为 ON-机械手已经由货架上返回

Page 108: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–100–

AN M20.3 //如果 M20.3 为 ON-机械手已经下降到初始位置 A M0.0 //如果 M0.0 值为 ON-START RUN 状态 A M10.0 //如果 M10.0 值为 ON-自动运行状态 S Q0.2, 0 //那么将置 Q0.2 为 ON,Q0.2 为小车后向运行

//输出

网络 4 的梯形图如图 4-7 所示。

图 4-7 网络 4

网络 4 的代码如下: 网络 4 LD SM0.0 LPS AN M20.7 //如果 M20.7 值为 OFF,那么认为是处于执行

//动作的过程中 AN M20.1 //如果 M20.1 值为 OFF,那么认为小车第一种

//运动-前后列向运动还没有完成 A M0.0 //如果 M0.0 值为 ON-START RUN 状态 A M10.0 //如果 M10.0 值为 ON-自动运行状态 AD= VD102, VD120 //如果当前行进的行数等于设定的行数,说明已经到达指定的位置 = Q0.1 //输出停止运行信号 S M20.1, 0 //设置达到标记 LPP A M20.7 //如果 M20.7 为 ON,那么认为小车处于执行

//动作完毕,返回途中。 AN M20.5 //如果 M20.5 为 ON-机械手已经由货架上返回 AN M20.3 //如果 M20.3 为 ON-机械手已经下降到初始位置 A M0.0 //如果 M0.0 值为 ON-START RUN 状态 A M10.0 //如果 M10.0 值为 ON-自动运行状态 AD= VD102, VD120 //如果当前行进的行数等于设定的行数,说明已经到达指定的位置 = Q0.3 //输出停止运行信号 R M20.1, 0 //清除达到标记 R M20.7, 0 /清除达到标记

3. 手动控制 下面一段程序是手动情况下对小车进行控制的程序代码,由网络 5 完成。在开始按钮已

Page 109: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 4 章 定位自动控制系统

–101–

经按下的情况下(START 按钮的状态由变量 M0.0 来对应),M0.0 为 ON 时表示已经开始运

行,反之则为停滞状态。网络 5 的梯形图如图 4-8 所示。

图 4-8 网络 5

网络 5 的代码如下: 网络 5 LD SM0.0 A M0.0 //如果处于运行状态 (M0.0 为 ON) AN M10.0 //当 M10.0 为 OFF 时,表示处于手动控制状态 LPS A M21.0 //如果 M21.0 为 ON,表示小车进行向前运行动作 LPS A M20.0 //如果此时按下前后运动电机启动按钮 S Q0.0, 0 //那么将输出向前运动信号,使小车向前运动 LPP AN M20.0 //如果此时前后电机运行按钮时停止的 = Q0.1 //那么将输出向前运动停止信号,小车停止前进 S M20.1, 0 //同时设置 M20.1,表明小车前后运动已经完成 LPP A M21.1 //存在向前的同时就可能存在向后的运动 LPS A M20.0 //如果启动前后运行电机 S Q0.2, 0 //那么将输出向后运行信号,小车向后运动 LPP AN M20.0 //如果此时前后电机运行按钮是停止的 = Q0.3 //那么将输出向后运动停止信号,小车停止后退 S M20.1, 0 //同时设置 M20.1,表明小车前后运动已经完成

4. 自动控制 下面是自动控制部分,由网络 6、网络 7 实现。

Q0.4 是开关量输出,表示启动小车机械手上升,机械手开始运动。在这里,笔者认为自

Page 110: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–102–

动控制不需要控制小车机械手的下降运动。

当小车还处于取放货的动作未完成的阶段时,需要判断的是小车是否已经完成了列的定

位,如果未完成列的定位(M20.3 为 OFF),那么启动小车机械手上升的电机,使机械手做上

升运动。如果小车处于已经完成了取放货的动作,那么判断小车是否已经完成了由货架上的

返回(伸缩机械手的运动), 如果小车这个过程已经完成,那么将开始进行后退运动。Q0.6

表示启动机械手下降电机,使机械手下降并返回初始位置。

网络 6 的梯形图如图 4-9 所示。

图 4-9 网络 6

网络 6 实现的代码如下: 网络 6 LD SM0.0 LPS AN M20.7 //如果 M20.7 为 OFF,表明小车在前进完成任务的过程中 A M20.1 //如果 M20.1 为 ON,表明小车已经完成了前后方向的运行 AN M20.3 //M20.3 为 OFF,表明机械手还没有完成升降运行的动作 A M0.0 //M0.0 为 ON,表明"START"按钮已经按下,处于运动过程中 A M10.0 //M10.0 为 ON,小车处于自动控制状态 S Q0.4, 0 //输出信号,机械手臂抬升货物 LPP A M20.7 //如果 M20.7 为 ON,表明小车已经完成了预定动作,返回 AN M20.5 //如果 M20.5 为 OFF,表明机械手完成了存取货物返回的动作 A M0.0 //如果 M0.0 为 ON(START 按下) A M10.0 //自动运行状态 S Q0.6, 0 //那么输出信号,机械手执行下降动作

网络 7 的梯形图如图 4-10 所示。

图 4-10 网络 7

Page 111: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 4 章 定位自动控制系统

–103–

网络 7 的实现代码如下: 网络 7 LD SM0.0 LPS AN M20.7 //前进过程中 A M20.1 AN M20.3 A M0.0 A M10.0 AR= VD100, VD150 //当测量到的行计数与输出的设定行数相等 //认为已经达到了预定的行数位置,那么停止小车上升 = Q0.5 S M20.3, 0 //同时设置行位置已经达到标志 M20.3 LPP A M20.7 //返回过程中 AN M20.5 A M0.0 A M10.0 AD= VD100, VD150 //当测量到的行计数与输出的设定行数相等 S Q0.7, 0 R M20.3, 0 //认为机械手已经降到原始位置,清除行位置达到标志

5. 自动控制机械手臂伸缩运动 自动控制机械手伸缩部分由网络 8~网络 10 完成。

前后、升降运动都进行完毕以后,机械手已经到达了指定的行数与列数,将进行伸缩运

动来完成货物的存取。网络 8 的梯形图如图 4-11 所示。

图 4-11 网络 8

网络 8 的实现代码如下:

Page 112: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–104–

网络 8 LD SM0.0 A M0.0 //如果处于运行状态 (M0.0 为 ON) AN M10.0 //当 M10.0 为 OFF 时,表示处于手动控制状态 LPS A M21.2 //如果 M21.2 为 ON,表示小车进行向上升运行 LPS AM20.2 //如果此时允许机械手升降运动 S Q0.4, 0 //那么将输出向上运动信号,使小车上升运动 LPP AN M20.2 //如果此时升降电机运行按钮时停止的 = Q0.5 S M20.3, 0 //那么将输出上升运动停止信号,小车停止上升 LPP A M21.3 LPS A M20.2 //如果启动升降运行电机 S Q0.6, 0 //那么将输出下降运行信号,机械手向下运动 LPP AN M20.2 //如果此时升降电机运行按钮是停止的 = Q0.7 //那么将输出向下运动停止信号,小车停止下降 S M20.3, 0 //同时设置 M20.3,表明小车升降运动已经完成

网络 9 的梯形图如图 4-12 所示。

图 4-12 网络 9

网络 9 的实现代码如下: 网络 9 LD SM0.0 LPS AN M20.7 //前进过程中 A M20.1 //已经到达了指定的列 A M20.3 //已经到达了指定的行 A M0.0 //运行状态 A M10.0 //自动状态 S Q1.0, 0 //控制机械手臂前伸 LPP A M20.7 //返回过程中 A M20.5 //还没有完成机械手回缩的动作 A M0.0 //运行状态 A M10.0 //自动状态 S Q1.2, 0 //输出信号,机械手后退,离开货架

Page 113: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 4 章 定位自动控制系统

–105–

网络 10 的梯形图如图 4-13 所示。

图 4-13 网络 10

网络 10 的实现代码如下: 网络 10 LD SM0.0 LPS AN M20.7 //前进过程中 A M20.1 //已经到达指定列 A M20.3 //已经到达指定行 A M0.0 //开始运行 A M10.0 //自动运行状态 AN M20.5 //机械手存取动作未完成 TON T37, +36 //设置 100ms 定时器 LPP A M20.7 //返回过程中 A M20.5 //机械手存取动作已经完成 A M0.0 A M10.0 TON T37, +36 //设置 100ms 定时器

由于基本原理与前面的前后、升降运动相似,就不详细说明了,下面只对一些不同于前

面两种运动的情况进行说明。

M20.5 是伸缩运动到位标志。为 ON 时,表示机械手已经到达指定位置,为 OFF 时表示

还未到达指定位置。Q1.0 表示前伸运动的开关量输出,Q1.2 表示后缩运动开关量输出。由于

机械手是以 5m/min 的速度运动,伸缩距离为 30cm,定时器 C37 是以 100ms 为基本记时单位

的,所以计算得到机械手可以到达预定位置的时间:

运动距离 L = 30cm,

速度 v = 5m/min

运行时间 t = L/v*0.01 = 0.06min = 3.6s = 3z600ms

因此选用 100ms 定时器 C37 进行计时,应该设置计时累加为 36。

6. 自动控制存取物品 自动存取物品的程序由网络 11~网络 14 完成。网络 11 的梯形图如图 4-14 所示。

Page 114: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–106–

图 4-14 网络 11

网络 11 的实现代码如下: 网络 11 LD SM0.0 LPS AN M20.7 //如果未完成存取物品动作 A M20.1 //已经到达指定列 A M20.3 //已经到达指定行 A M0.0 //开始运行 A M10.0 //自动运行 A T37 //如果定时器时间已到 S M20.5, 0 //认为机械手已经到达货架指定位置,输出信号//停止机械手运动 = Q1.1 //设置机械手到达货架指定位置标志 M20.5 LPP A M20.7 //在返回途中 A M20.1 A M20.3 A M20.5 A M0.0 A M10.0 A T37 //如果定时器时间到 R M20.5, 0 //清除机械手到位标志 S Q1.3, 0 //同时停止机械手运动

如果定时器标志 T37 为 ON ,表示定时器已经到达了预定的时间,说明机械手已经前伸

到了指定的深度,所以停止前伸的运动。Q.1 表示停止前伸运动。Q1.3 表示停止后缩运动。

网络 12 的梯形图如图 4-15 所示。

图 4-15 网络 12

网络 12 的实现代码如下: 网络 12 LD SM0.0

Page 115: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 4 章 定位自动控制系统

–107–

AN M20.7 //未完成存取物品的动作时 A M20.5 //如果机械手已经到达了货架的指定位置 A M0.0 A M10.0 LPS A M22.0 //M22.0 为 ON 表示机械手放下货物标志 S Q1.4, 0 //输出信号,使机械手放下货物 LPP AN M22.0 //M22.0 为 OFF 表示机械手抓取货物标志 S Q1.5, 0 //输出信号,使机械手抓取货物

当伸缩运动完成时,需要进行的是抓取或存放货物。Q1.2 表示将货物放下,Q1.3 表示抓

起货物,M22.0 为抓取或放下的选择条件,为 ON 时表示放下。

网络 13 的梯形图如图 4-16 所示。

图 4-16 网络 13

网络 13 的实现代码如下: 网络 13 LD SM0.0 A M0.0 AN M10.0 //手动控制 LPS A M21.4 //M21.4 为向前运动标志 LPS A M20.4 //如果机械手伸缩按钮按下 S Q1.0, 0 //那么输出信号使机械手前伸 LPP AN M20.4 //如果机械手伸缩按钮弹起 = Q1.1 //那么输出信号使机械手停止前伸 S M20.5, 0 //设置机械手伸缩运动到位标志

Page 116: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–108–

LPP A M21.5 //如果机械手向后运动标志 ON LPS A M20.4 //如果按钮按下 S Q1.2, 0 //输出信号使机械手后退 LPP AN M20.4 //如果机械手伸缩按钮弹起 = Q1.3 //那么输出信号使机械手停止后退 S M20.5, 0 //同时清除机械手到位标志

网络 14 的梯形图如图 4-17 所示。

图 4-17 网络 14

网络 14 的实现代码如下: 网络 14 LD SM0.0 A M20.1 A M20.3 A M20.5 S M20.7, 0 //如果 M20.1 M20.3 M20.5 都为 ON,那么认为 //已经完成了存放物品的整个过程,设置 //运行标志位作为返回程序的标志

4.6 设计小结

目前较为先进的 PLC 不仅具有满足顺序控制要求的基本逻辑指令,而且还提供了丰富的

功能指令。如果说基本逻辑指令是对继电器控制原理的一种抽象提高的话,那么功能指令就

象是对汇编语言的一种抽象提高。BCD 码数据拨盘是计算机控制系统中常用到的十进制拨盘

数据输入装置。拨盘共有 0~9 一共 10 个位置,每一位置都有相应的数字指示。一个拨盘可

代表一位十进制数据,若需输入多位数据,可以用多片 BCD 码拨盘并联使用。

选用 BCD 码拨盘装置应用于 PLC 控制的系统,无需再设计数码输入显示电路,有效地

节省了 PLC 的输入点,简化了硬件电路,并利用先进的功能指令实现数据的存储和传输,因

此能极方便地实现数据的在线输入或修改(如计数器设定值的修改等)。若配合简单的硬件译

码电路,就可显示有关参数的动态变化(如电机步数的递减变化等)。为避免在系统运行中拨

动拨盘可能给系统造成的波动,最好设置一输入键,当确认各片拨盘都拨到位后再按该键,

这时数据才被 PLC 读入并处理。

巷道式堆垛机是立体仓库中的一种自动装运设备,本章给出了一个简单的定位控制系统

的设计思路,针对设备自控系统设计中的几个问题如堆垛机信息显示及作业地址、作业指令

的输入方法、位置检测、定位方法使用等提出自己观点供大家参考,希望能够给读者一定的

启发。

Page 117: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第第 55 章章 啤啤酒酒发发酵酵自自动动控控制制系系统统

啤酒发酵是非常复杂的生化变化过程,在啤酒酵母所含酶的作用下,其主要代谢产物是

酒精和二氧化碳。另外,还有一系列的副产物,如醇类、醛类、酸类、酯类、酮类和硫化物

等。这些发酵物决定了啤酒的风味、泡沫、色泽和稳定性等各项理化性能,使啤酒具有各自

的独特性。

啤酒发酵是放热反应的过程,随着反应的进行,罐内的温度会逐渐升高,随着二氧化碳

等产物的不断产生,密闭罐内的压力会逐渐升高。发酵过程中的温度压力直接影响到啤酒质

量和生产的效率,因此,对发酵过程中的温度、压力进行控制显得十分重要。

5.1 啤酒发酵自控系统总体设计

作为一个啤酒发酵控制系统,应该能够满足实际生产的要求。因此,从以下几个方面来

考虑是十分必要的:

(1)必须要符合啤酒发酵的工艺要求;

(2)必须为用户提供较合理地控制解决方案;

(3)应该符合流程控制的一般要求,包括温度的采集和控制、压力的采集和控制、控制

过程中的保护等。

5.1.1 功能分析

目前啤酒发酵通常采用锥形大罐“一罐法”进行发酵,即前酵、后酵以及储酒等阶段均

在同一大罐中进行。前酵过程中,酵母通过有氧呼吸大量繁殖,大部分发酵糖类分解。在这

一过程初期,反应放出的热量会使温度自然上升,随着反应的进行,酵母的活性变大,反应

放热继续增加,双乙酰含量逐渐减少,而芳香类醇含量增多。后酵是前酵的延续,进一步使

残留的糖分解成二氧化碳溶于酒内达到饱和;再降温到-1~0℃,使其低温陈酿促进酒的成熟

和澄清。

啤酒发酵过程中,其对象特性是时变的,并且存在很大的滞后。正是这种时变性和大的

时滞性造成了温度控制的难点,而发酵温度直接影响着啤酒的风味、品质和产量,因而控制

精度要求较高。

温度、浓度和时间是发酵过程最主要的参数,三者之间相互制约,又相辅相成。发酵温

度低,浓度下降慢,发酵副产物少,发酵周期长。反之,发酵的温度高,浓度下降快,发酵

副产物增多,发酵的周期长。因而必须根据产品的种类、酵母菌种、麦汁成分,控制在最短

时间内达到发酵度和代谢产物的要求。

Page 118: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–110–

5.1.2 控制原理分析

啤酒发酵对象的时变性、时滞性及其不确定性,决定了发酵罐控制必须采用特殊的控制

算法。由于每个发酵罐都存在个体的差异,而且在不同的工艺条件下,不同的发酵菌种下,

对象特性也不尽相同。因此很难找到或建立某一确切的数学模型来进行模拟和预测控制。

为节省能源,降低生产成本,并且能够满足控制的要求,发酵罐的温度控制选择了检测

发酵罐的上、中、下段 3 段的温度,通过上、中、下 3 段液氨进口的两位式电磁阀来实现发

酵罐温度控制的方法,原理图如图 5-1 所示。

图 5-1 啤酒发酵控制过程原理图

对于采用外部冷媒间接换热方式来控制体积大、惯性大的发酵罐温度的情况,采用普通

的控制方案极易引起大的超调和持续的震荡,很难取得预期的控制效果,在不同的季节,甚

至在同一季节的不同发酵罐,要求生产不同品种的啤酒,这样就要求每个罐具有各自独立的

工艺控制曲线。这不仅要求高精度、高稳定性的控制,还要求控制系统有极大的灵活性。

5.2 啤酒发酵自控系统工艺流程

根据锥形发酵大罐的特性将发酵的全过程分成多个阶段:麦汁进罐,自然升温,还原双

乙酰,一次降温,停留观察,二次降温,低温储酒,各阶段温度的曲线图如图 5-2 所示。

在各个阶段,对象的特性相对稳定,温度和压力的控制方面存在一定的规律性。在发酵

开始前,根据工艺的要求预先设定工艺控制的温度、压力曲线;在发酵过程中,根据发酵进

行的程度(发酵时间、糖度、双乙酰含量等),发酵罐上、中、下 3 段温度的差异,以及 3

段温度各自的变化趋势,自动正确选择各个阶段相应的控制策略,从而达到预期的控制效果。

Page 119: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 5 章 啤酒发酵自动控制系统

–111–

图 5-2 啤酒发酵控制过程曲线图

下面对各个阶段进行简单地介绍:

(1)麦汁进料过程:在这个过程中,由糖化阶段产生的麦汁原料经由连接管道由糖化罐

进入发酵罐中。

(2)自然升温过程:麦汁进料过程中,随着酵母的加入,酵母菌逐渐开始生长和繁殖。

在这个过程中,麦汁在酵母菌的作用下发生化学反应,产生大量的二氧化碳和热量,这就使

原料的温度逐渐上升。

(3)还原双乙酰过程:在自然升温发酵过程中,化学反应能产生一种学名叫双乙酰的化

学物质。这种物质对人体健康不利而且会降低啤酒的可口程度,所以在这个过程中需要将其

除去,增强啤酒的品质。

(4)降温过程:在(2)、(3)过程中啤酒发酵已经完成,降温过程其实属于啤酒发酵的

后续过程,其作用是将发酵过程中加入的酵母菌进行沉淀、排出。

(5)低温储酒过程:降温过程完成以后,已经发酵完成的原料继续储存在发酵罐等待过

滤、稀释、杀菌等过程的进行。

5.3 啤酒发酵自控系统 PLC 选型和资源配置

5.3.1 PLC 选型

根据啤酒发酵的工艺流程和实际需要,PLC 的选型需要满足以下条件:

(1)具有模拟量的采集、处理过程及开关量的输入/输出功能;

(2)具有简单回路控制算法。

一般的 PLC 厂商都提供具有模拟量采集、处理过程和开关量输入/输出功能的不同型号

和规格的产品,所以选择的范围很广泛。

在实际工程应用中,为了降低工程实施的难度,使用简单的 PID 控制算法对啤酒发酵罐

的上、中、下温度进行控制。在实际的应用中,配合一些特殊的控制策略,PID 控制算法能

够保证控制精度在±0.5℃范围内。因此,要求 PLC 控制算法中必须能够提供 PID 回路,否则

就需要自行编写 PID 模块。

Page 120: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–112–

5.3.2 PLC 的 I/O 资源配置

根据第 5.1.2 节中提到的啤酒发酵控制原理可以得出:每只发酵罐需要有上温、中温、下

温、压力 4 个模拟量需要测量,有些情况需要对发酵罐的液位进行测量;上温、中温、下温

3 个温度各需要一个二位式电磁阀进行控制,罐内压力需要一个二位式电磁阀进行控制。所

以每只发酵罐的 I/O 点数为 5 个模拟量、4 个开关量。

5.3.3 PLC 其他资源配置

除 PLC 必需的 I/O 卡件之外,另外涉及的设备仪表有啤酒温度变送器、压力变送器、液

位变送器等。

根据啤酒发酵过程的特点,啤酒发酵过程的温度范围最低可以到-1℃以下,最高到 12℃

以上,一般可以选择的量程为-5℃~45℃或者-10℃~90℃的温度变送器;压力变送器可以选择

量程为 0~200Kpa 或者 0~400Kpa。

5.4 自控系统 PLC 程序设计

发酵过程中,根据发酵进行的程度(发酵时间、糖度、双乙酰含量等),发酵罐上、中、

下 3 段温度的差异,以及 3 段温度各自的变化趋势,为了达到预定的控制效果,采用自动或

由操作人员手动选择控制的方法。

程序中设定了手动操作和自动控制选择开关,在任意阶段都能够实现两者间的切换,实

现了温度、压力的手、自动选择控制。程序中有人工阶段选择开关,可以在任意阶段间跳转,

从而避免了因操作人员操作偶尔失误而无法实现后续程序正常运行的情况。

5.4.1 程序流程图设计

根据第 5.2 节工艺流程的介绍,可以总结出基本的程序流程如图 5-3 所示。

5.4.2 PLC 功能模块程序设计

(1)计算出啤酒发酵时间。在程序中必须能够得到每个发酵罐的起始发酵时间,然后由

当前时间计算出罐内啤酒的已经发酵时间。这个过程中需要考虑到的问题是,每个月的天数、

该年是否可能为润年等。

(2)计算当前时刻的设定温度。处在发酵过程中的每一个发酵罐根据各自的生产需要,

都有一个工艺设定曲线。在计算出发酵的时间之后,可以通过计算得到当前时刻的设定温度。

(3)计算当前时刻的电磁阀开度。计算出当前时刻的设定温度之后,可以计算出温度的

偏差值,使用简单的 PID 控制回路就可以计算出电磁阀的开度。由于电磁阀是二位式的,所

以其阀的开关动作为占空比连续变化的 PWM 输出。电磁阀 PWM 输出波形图如图 5-4 所示。

Page 121: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 5 章 啤酒发酵自动控制系统

–113–

图 5-3 啤酒发酵控制过程程序流程图

图 5-4 电磁阀 PWM 输出波形图

图中 Tt 为电磁阀动作周期。

T1 为电磁阀关闭时间。

T2 为电磁阀打开时间。

Tt、T1、T2 之间关系为 Tt = T1 + T2。

电磁阀的阀位值 = T2 / Tt ×100%。

5.5 啤酒发酵自控系统 PLC 程序说明

下面对本系统的核心程序进行分析说明。 1. 模拟量信号采集处理 模拟量采集处理部分由网络 1~网络 3 组成。主要完成温度、压力、液位等模拟量的采集

Page 122: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–114–

和处理。网络 1 的梯形图如图 5-5 所示。

图 5-5 网络 1

下面是网络 1 的代码: 网络 1 LD SM0.0 //SM0.0 程序运行时始终为 ON MOVW AIW0, VW10 //读取模拟量输入值:1#发酵罐上部温度 AENO MOVW AIW2, VW12 //读取模拟量输入值:1#发酵罐中部温度 AENO MOVW AIW4, VW14 //读取模拟量输入值:1#发酵罐下部温度 LRD MOVW AIW6, VW16 //读取模拟量输入值:1#发酵罐压力 AENO MOVW AIW8, VW18 //读取模拟量输入值:1#发酵罐液位 LRD MOVW AIW10, VW20 //读取模拟量输入值:2#发酵罐上部温度 AENO MOVW AIW12, VW22 //读取模拟量输入值:2#发酵罐中部温度 AENO MOVW AIW14, VW24 //读取模拟量输入值:2#发酵罐下部温度 LRD MOVW AIW16, VW26 //读取模拟量输入值:2#发酵罐压力 AENO MOVW AIW18, VW28 //读取模拟量输入值:2#发酵罐液位

网络 2 的梯形图如图 5-6 所示。

Page 123: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 5 章 啤酒发酵自动控制系统

–115–

图 5-6 网络 2

网络 2 的实现代码如下: 网络 2 LD SM0.0 LPS ITD VW10, VD40 //将 1#发酵罐上部温度值由字变量转换为双字变量 AENO ITD VW12, VD44 //将 1#发酵罐中部温度值由字变量转换为双字变量 AENO ITD VW14, VD48 //将 1#发酵罐下部温度值由字变量转换为双字变量 AENO ITD VW16, VD52 //将 1#发酵罐压力值由字变量转换为双字变量 LRD ITD VW18, VD56 //将 1#发酵罐液位值由字变量转换为双字变量 AENO ITD VW20, VD60 //将 2#发酵罐上部温度值由字变量转换为双字变量 AENO ITD VW22, VD64 //将 2#发酵罐中部温度值由字变量转换为双字变量 AENO ITD VW24, VD68 //将 2#发酵罐下部温度值由字变量转换为双字变量 LPP ITD VW26, VD72 //将 2#发酵罐压力值由字变量转换为双字变量 AENO ITD VW28, VD76 //将 2#发酵罐液位值由字变量转换为双字变量

网络 3 的梯形图如图 5-7 所示。

Page 124: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–116–

图 5-7 网络 3

网络 3 的实现代码如下: 网络 3 LD SM0.0 LPS DTR VD40, VD100 //将 1#发酵罐上部温度由整数转换为浮点数 AENO DTR VD44, VD104 //将 1#发酵罐中部温度由整数转换为浮点数 AENO DTR VD48, VD108 //将 1#发酵罐下部温度由整数转换为浮点数 LRD DTR VD52, VD112 //将 2#发酵罐上部温度由整数转换为浮点数 AENO DTR VD56, VD116 //将 2#发酵罐中部温度由整数转换为浮点数 LRD DTR VD60, VD120 //将 2#发酵罐下部温度由整数转换为浮点数 AENO DTR VD64, VD124 AENO DTR VD68, VD128 LPP DTR VD72, VD132 AENO DTR VD76, VD136

2. 发酵状态处理 根据操作人员输入的当前操作状态,对每个发酵罐的状态进行相应的设置。这个过程由

网络 4~网络 8 来实现。

网络 4 的梯形图如图 5-8 所示。

图 5-8 网络 4

网络 4 的实现代码如下: 网络 4

Page 125: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 5 章 啤酒发酵自动控制系统

–117–

LD SM0.0 //常闭触点 LDB= VB1000, 0 //1 号发酵罐停止发酵 OB= VB1002, 0 //2 号发酵罐停止发酵 OB= VB1004, 0 //3 号发酵罐停止发酵 ALD JMP 1

网络 5 的梯形图如图 5-9 所示。

图 5-9 网络 5

网络 6 的梯形图如图 5-10 所示。

图 5-10 网络 6

Page 126: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–118–

网络 7 的梯形图如图 5-11 所示。

图 5-11 网络 7

网络 8 的梯形图如图 5-12 所示。

图 5-12 网络 8

Page 127: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 5 章 啤酒发酵自动控制系统

–119–

以下是网络 5~网络 8 的代码。 网络 5 LD SM0.0 LPS AB= VB1000, 1 //1 号发酵罐处于进料状态 S M10.0, 1 //设置进料状态标志 R M10.1, 1 //清除发酵状态标志 R M10.2, 1 //清除储酒状态标志 R M10.3, 1 //清除出料标志 LPP AB= VB1002, 1 //2 号发酵罐处于进料状态 S M11.0, 1 //设置进料状态标志 R M11.1, 1 //清除发酵状态标志 R M11.2, 1 //清除储酒状态标志 R M11.3, 1 //清除出料标志 网络 6 LD SM0.0 LPS AB= VB1000, 2 //1 号发酵罐处于发酵状态 S M10.1, 1 //设置发酵状态标志 R M10.0, 1 //清除进料状态标志 R M10.2, 1 //清除储酒状态标志 R M10.3, 1 //清除出料标志 LPP AB= VB1002, 2 //2 号发酵罐处于发酵状态 S M11.1, 1 //设置发酵状态标志 R M11.0, 1 //清除进料状态标志 R M11.2, 1 //清除储酒状态标志 R M11.3, 1 //清除出料标志 网络 7 LD SM0.0 LPS AB= VB1000, 3 //1 号发酵罐处于储酒状态 S M10.2, 1 //设置储酒状态标志 R M10.0, 1 //清除发酵状态标志 R M10.1, 1 //清除进料状态标志 R M10.3, 1 //清除出料标志 LPP AB= VB1002, 3 //2 号发酵罐处于储酒状态 S M11.2, 1 //设置储酒状态标志 R M11.0, 1 //清除发酵状态标志 R M11.1, 1 //清除进料状态标志 R M11.3, 1 //清除出料标志 网络 8 LD SM0.0 LPS AB= VB1000, 4 //1 号发酵罐处于出料状态 S M10.3, 1 //设置出料状态标志 R M10.0, 1 //清除发酵状态标志

Page 128: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–120–

R M10.1, 1 //清除进料状态标志 R M10.2, 1 //清除储酒标志 LPP AB= VB1002, 4 //2 号发酵罐处于出料状态 S M11.3, 1 //设置出料状态标志 R M11.0, 1 //清除发酵状态标志 R M11.1, 1 //清除进料状态标志 R M11.2, 1 //清除储酒标志

3. 温度设定值的计算 下面是计算温度的设定值的程序。温度设定值的计算由网络 9~网络 13 组成。

对发酵罐温度使用 PID 控制必须具备的条件是设定的温度和实际温度。

温度的设定值很简单,就是按比例计算求值。如图 5-13 所示,曲线 a 是温度设定曲线的

一部分,t1 和 t2 是曲线的两个端点的横坐标,T1 和 T2 是曲线的两个端点的纵坐标,t 是当

前的时间,T 就是当前的设定温度。用很简单的比例关系式就可以求出当前的设定温度值 T。

1112

12 )( Ttttt

TTT +−×

−−

=

图 5-13 温度设定值的计算

网络 9 及网络 10 的梯形图如图 5-14 所示。

图 5-14 网络 9、网络 10

网络 9 及网络 10 实现的实现代码如下:

Page 129: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 5 章 啤酒发酵自动控制系统

–121–

网络 9 LD SM0.0 MOVR VD1204, VD1220 //下面这段程序是根据公式计算设定温度的过程 AENO -R VD1200, VD1220 AENO MOVR VD1212, VD1224 AENO -R VD1208, VD1224 AENO MOVR VD1220, VD1228 /R VD1224, VD1228 网络 10 LD SM0.0 MOVR VD1228, VD1232 AENO *R VD1216, VD1232 AENO MOVR VD1232, VD1236 +R VD1200, VD1236

网络 11~网络 13 的梯形图如图 5-15 所示。

图 5-15 网络 11~网络 13

网络 11~网络 13 的实现代码如下: 网络 11 LD SM0.0 MOVR VD220, VD1220 AENO MOVR VD224, VD1224 AENO MOVR VD228, VD1228 AENO MOVR VD232, VD1232 网络 12 LD SM0.0

Page 130: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–122–

MOVR VD1236, VD1240 AENO MOVR VD1272, VD1276 网络 13 LD SM0.4 EU CALL PID 计算:SBR2

4. PID 回路计算 在计算出温度的设定值之后,就可以根据以下的 PID 计算式计算出对应的输出值:

( ) ( )

+−×+×+−×+= −−− nn

S

Dn

I

SnnCnn PVPVPV

T

TE

T

TEEKMM 111 2

网络 14~网络 20 就是根据上面公式计算回路调节输出值的一段程序。

网络 14 及网络 15 的梯形图如图 5-16 所示。

图 5-16 网络 14~网路 15

网络 14 及网络 15 的实现代码如下: 网络 14 //下面这段程序就是根据 PID 的计算公式计算 LD SM0.0 //调节输出值的过程 LPS A M20.0 MOVR VD1244, VD1236 -R VD1248, VD1236 LPP AN M20.0 MOVR VD1248, VD1236 -R VD1244, VD1236 网络 15 LD SM0.0

Page 131: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 5 章 啤酒发酵自动控制系统

–123–

MOVR VD1236, VD1252 AENO -R VD1240, VD1252 AENO *R VD1220, VD1252

网络 16~网络 18 的梯形图如图 5-17 所示。

图 5-17 网络 16~网络 18

网络 16~网络 18 的实现代码如下: 网络 16 LD SM0.0 MOVR VD1232, VD1256 AENO *R VD1236, VD1256 AENO /R VD1224, VD1256 AENO *R VD1220, VD1256 网络 17 LD SM0.0 MOVR VD1248, VD1260 AENO +R VD1268, VD1260 AENO -R VD1264, VD1260 AENO -R VD1264, VD1260

Page 132: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–124–

网络 18 LD SM0.0 *R VD1220, VD1260 AENO *R VD1232, VD1260 AENO /R VD1228, VD1260

网络 19 及网络 20 的梯形图如图 5-18 所示。

图 5-18 网络 19~网络 20

网络 19 及网络 20 的实现代码如下: 网络 19 LD SM0.0 MOVR 0.0, VD1272 AENO +R VD1260, VD1272 AENO +R VD1256, VD1272 AENO +R VD1252, VD1272 AENO +R VD1276, VD1272 //VD1272 就是 PID 程序计算的输出值 网络 20 LD SM0.0 MOVR VD1264, VD1268 AENO MOVR VD1248, VD1264

5. 电磁阀控制 计算出 PID 的回路输出值之后,就要相应的调节电磁阀的输出以控制发酵罐内的温度值。

由 PID 输出值以及发酵阶段的不同,计算出不同的电磁阀开关时间。这段程序由网络 21~24

组成。

网络 21 及网络 22 的梯形图如图 5-19 所示。

Page 133: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 5 章 啤酒发酵自动控制系统

–125–

图 5-19 网络 21、网络 22

网络 21 及网络 22 的实现代码如下: 网络 21 MOVR VD1272, VD1300 //PID 输出值 AENO MOVR VD1300, VD1312 AENO *R VD1304, VD1312 //PID 输出值与温度控制周期相乘 AENO MOVD VD1312, VD1320 AENO -D VD1304, VD1320 //总温度控制周期减去阀开时间等于阀关时间 AENO *R 600.0, VD1312 //温度控制时间由小时更改为分钟 AENO AN T37 //根据阀开时间控制电磁阀输出 = Q0.1 网络 22 LD Q0.1 LPS EU MOVD VD1312, VD1316 //电磁阀打开瞬间,给定阀开时间值 LPP ED MOVD VD1320, VD1324 //阀关瞬间,给定阀关时间值 *D +600, VD1324

网络 23 及网络 24 的梯形图如图 5-20 所示。

Page 134: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–126–

图 5-20 网络 23、网络 24

网络 23 及网络 24 的代码如下: 网络 23 LD Q0.1 TON T37, VW1318 //定时器控制阀开时间 网络 24 LDN Q0.1 TON T38, VW1324 //定时器控制阀关时间 R T37, 1

5.6 设计小结

啤酒发酵过程是一个比较复杂的物理、化学过程,整个工艺流程从进料、保温、发酵、

降温、储酒到出料,以及后续一些工段如空罐、洗罐等。在控制算法方面,只涉及到 PID 的

单回路控制,使得这个控制过程显的十分简单明了,但是这里所涉及到的只是整个工艺流程

中的一部分,其余大部分程序将随现场用户需求以及其控制工艺的不同而改变。

Page 135: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第第 66 章章 纺纺织织机机自自动动控控制制系系统统

中国是一个纺织品生产大国,特别是江浙一带,纺织行业相当发达,纺织机械的用量极

大。近年来,通过科技攻关、技术引进、消化吸收及合作生产,国产纺机的技术水平有了很

大提高,传统纺织纤维加工机械基本实现了自给,能够满足国内中、低档和少部分高档产品

的需要。尽管如此,在纺织机产品上,与国际先进水平的差距还是相当大的,主要制约因素

是在线自动控制及自动检测、关键零部件的精密程度不够两方面,而这也是我国整个机械制

造业发展的瓶颈所在。因此,这么多的纺织机中,尤其是高档织机,从外国进口的比例大的

惊人,即使有部分厂家生产高档织机,其电控部分、检测、执行机构也主要依赖进口。

纺织工业过去所取得的成就基本上是以量取胜,是低技术水平、劳动密集型、加工性的

生产,是以低成本的比较优势取得的。而真正靠技术含量、靠品牌取得市场优势的却很少。

因此,纺织行业在近几年一直着力于品牌的开发和产品的创新。包括纺织机械产品的大量进

口,都是纺织行业为提高产品的技术含量而作的努力。

本章简单介绍一下纺织机的自动控制知识,为了说明方便,只针对目前应用最广的剑杆

织机作一些介绍。

6.1 剑杆织机控制系统总体设计

剑杆织机控制系统中,需要实现以下的功能:

(1)完整的系统数据备份和还原功能;

(2)选色功能;

(3)探纬功能;

(4)断经检测功能;

(5)生产效率的统计等。

6.2 纺织机控制系统工艺流程

6.2.1 纺织机分类

纺织机分为纺机和织机两类。目前所针对的对象是织机,即织布机。织机根据引纬方式

的不同可以分为有梭织机和无梭织机两大类。

1. 有梭织机 织布生产技术有着悠久的历史,其发展过程经历了原始手工织布、手工剪切织布、普通

机器织造、自动织机织造和无梭织机织造 5 个阶段。在原始手工织布阶段,人们采用简单的

Page 136: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–128–

工具,将经、纬纱交织成织物,所采用的工具都由人工直接赋予动作。原始手工织布方法经

历了漫长的历史演变后,出现了由原动机件、传动机件和工作机件 3 个部分组成的手织机,

这种手织机为近代的传动机器进行大工业生产创造了条件。

2. 无梭织机 无梭织机根据引纬不同可以分为:喷水织机、剑杆织机、喷气织机、片梭织机等。无梭

织机具有速度高、运动小、噪声低、损耗低、入纬率高、织物档次较高等优点,是目前主要

的织造布设备。

3. 喷水织机 喷水织机是利用高速水流进行引纬的,主要用于不需要上浆的疏水性纤维织物的加工。

喷水织机的速度高(入纬率高达 2200m/min),但喷嘴射程较小,不能用于宽幅织造(最大

2.3m),选纬功能较差,最多只能配两只喷嘴进行双色选纬或混纬。在我国,喷水织机主要

用于生产合成长丝的单色织物。

4. 剑杆织机 剑杆织机是以剑杆作为引纬器,剑杆的剑头握持纬纱,穿越梭口,完成引纬。剑杆织机

有单剑杆和双剑杆引纬两种。剑杆引纬运动具有较低的启动加速度和纬纱交接加速度,引纬

过程平稳,纬纱张力较小断纬瑕疵少,有利于真丝织造;采用夹持式引纬,可不受纬纱密度

的限制,纬纱处于受控状态,其退捻和收缩可以较好的收到抑制,减少纬缩瑕疵,这对花式

线引纬、强捻巴里纱和厚重织物的生产非常有利;剑杆织机的选纬能力较强,可以 8 色任意

选纬,最多可达 16 色。我国引进的剑杆织机主要用于毛织、色织、装饰类织物及特种工业用

织物的生产。

20 世纪最后 15 年,电子计算机引入织机,微电子 CAD-CAM 体系得到广泛应用,使微

电子技术、信息传递技术与织造技术形成完美的结合,许多电子装置及系统与织机的结合成

为剑杆织机的组成部分,尤其是微电子技术在剑杆织机上的广泛应用。新型剑杆织机自动化

水平主要表现在下述 11 个方面:

(1)自动寻纬;

(2)电子送经、电子卷取;

(3)自动启动标记防护装置;

(4)自动控制正、反转速度;

(5)自动落布;

(6)自动包装供应系统;

(7)自动开启防开车痕控制系统;

(8)电子纬纱制动系统;

(9)自动张力补偿;

(10)自动改变纬密;

(11)电子选纬系统。

5. 喷气织机 喷气织机是利用高速流动的空气对纱线表面所产生的摩擦牵引力进行引纬的。喷气织机

的速度高(主轴转速可达 1000r/min,入纬率高达 2000m/min)。和喷水织机相比,由于空气

的惯性小,是单向流动,所以喷气织机能够进行宽幅织造。喷气织机的选纬能力也不强,一

Page 137: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 6 章 纺织机自动控制系统

–129–

般可选 4 色或 6 色。喷气织机最适合于大批量生产单色织物。

6. 片梭织机 片梭织机的引纬过程是利用片状钢梭作为引纬器,将纬纱引过梭口。整个引纬过程分为

击梭阶段、飞梭阶段和制梭阶段。与片梭织机与有梭织机不同,片梭不装载纡管(纬纱),因

此可以加工的很轻巧,实现高速飞行。一台织机可以同时有十几片片梭。片梭的夹持力大,

可以适用于各种密度的纬纱;片梭织机的转速也较高,可达 470r/min,幅宽可达 5.4m;片梭

织机的启动加速度大(约为剑杆引纬的 10~20 倍),不适用于强力低的细弱纬纱;片梭织机

一般不会产生缩纬疵点;片梭织机的结构复杂,价格高,适合生产附加值高的产品。片梭织

机的使用量目前不大。我国引进的片梭织机主要用于生产高档毛织物、牛仔布、装饰物品和

床上用品等。

6.2.2 纺织机工作原理分析

在本小节中将对织机的主要工作原理进行分析,并对纺织机的几个主要运动过程作了比

较详细地说明。

1. 纺织机的基本组成部分、基本织造原理 一台纺织机由开口装置(凸轮开口、电子多臂开口、曲柄开口)、引纬装置(梭子引纬、

喷水引纬、剑杆引纬、喷气引纬片梭引纬等)、打纬装置、送经装置和卷取装置等 5 个核心

组成部分。这 5 个核心组成部分的运动就组成了一台织机的五大运动:开口、引纬、打纬、

送经和卷取。

由于开口、引纬、打纬、送经、卷取 5 大运动都是以织机主轴一周的时间为运动周期,

因此,可以用回转角度来表示运动的开始、结束时间及各运动的相互配合协调关系。图 6-1

所示的是一台喷气织机的主轴一周内各角度的主要动作。由图可见,在 10º位置时剪断上一

次引纬的纬纱,65º时梭口满开,梭口保持静止,80º时引纬开始,到达 250º时引纬结束开始

打纬,280º时梭口开始闭合,到 310º时综平,梭口交织,310º后开始下一轮的开口运动。打

纬动作在 0º前完成。不同的织物品种、不同的织机需要有不同的时间配合。

图 6-1 织机动作角度

Page 138: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–130–

图 6-2 所示的是纺织机的基本工作原型。

图 6-2 纺织机的基本工作原型

在织造过程中综框的升降规律不同,经纱和纬纱的交织规律就不同,因此可以形成不同

的织物组织。织物被引离工作区的速度不同,纬纱之间的间隔也就是纬密就不同。经纱之间

的间隔也就是经纱密度则由钢筘筘齿的排列密度以及筘齿的经纱穿入根数决定。而经纱与纬

纱的交织规律、在织物中的排列密度、在织造过程中的张力及其原材料的性能等条件共同决

定了经纱和纬纱在织物中的空间状态,使得织物具有一定的内在的物理机械性能和外观的特

征。因此,不同的产品需要不同的织造工艺。

2. 开口运动分析 如果要织造某一种织物,那么就必须按照一定的规律交织经纱和纬纱。将经纱分成上、

下两层,形成一个供引纬器(梭子、片梭、剑杆、喷气或者喷水等),通过梭口引入纬纱后,

再将上、下两层经纱交织,与纬纱形成织物,然后上、下两层经纱再次分开,再次形成梭口。

这种形成梭口的运动就称为开口运动。

经纱的开口运动决定了织物的组织,影响着引纬过程,并使经纱受到反复的拉伸和摩擦,

因此这个运动影响着织物的品种和质量,是织造过程中的一个重要的运动。

在形成梭口的过程中,经纱受到拉伸变形和摩擦作用,使经纱受到一定的张力作用。织

机每一次运动,那么经纱随着开口和打纬的进行,其张力周期性的发生变化。如果张力处理

不当,那么很容易引起经纱折断。

在开口过程中影响经纱张力的主要因素如下

(1)开口高度

试验测量表明,在梭口前后长度一定的条件下,经纱由于开口高度而产生的伸长变形几

乎与梭口高度的平方成正比,可见,梭口的高度与经纱张力密切相关。因此在能够正常的保

证引纬过程时,应该尽量降低梭口的高度以减小经纱的张力,避免断经的发生。

(2)梭口的对称度

试验测量表明,在梭口的高度和长度不变的条件下,梭口的前后长度相等时,经纱的张

力处于最小的状态。但是为了便于引纬过程,一般工业中的设定的梭口的前后长度比在 0.5-1

之间。

3. 引纬方式 引纬时将纬纱引入由经纱构成的梭口中,以便与经纱交织成织物的过程。引纬的方式主

断经检测

开口

打纬

卷取 送经

Page 139: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 6 章 纺织机自动控制系统

–131–

要有有梭引纬和无梭引纬两种。

(1)有梭引纬采用梭子进行引纬。绕有纬纱的梭子安放在梭腔中,纬纱由梭眼引出,梭

子放置在梭箱中,投梭机构的皮结从外侧撞击梭子的梭尖;梭子从梭箱中飞出,到达对侧梭

箱,在制动机构的作用下静止在梭箱中、在梭子飞行的过程中,纬纱退绕下来,留在梭口中,

这样就完成了一次引纬。

(2)无梭引纬又分为剑杆引纬、喷水引纬、喷气引纬几种,下面分别介绍。

① 剑杆引纬 剑杆引纬是以剑杆作为引纬器,剑杆的剑头握持纬纱,使得纬纱从储纬器上面推绕下来,

并穿过梭口。

剑杆引纬是从有梭织机基础上发展而来的,并且处在不断的发展中。其形式很多,大致

有以下几种。

� 按照剑杆的形式分

按照剑杆的形式,可以将剑杆分为刚性剑杆和柔性剑杆。

刚性剑杆:刚性剑杆是由一个空心的长杆和剑头组成。在引纬时,剑杆和剑头进入梭口,

并将纬纱引入梭口。引纬完成后,剑杆要退出梭口,由于剑杆是刚性的,所以在退出梭口后,

剑杆要占用一个门幅长度的空间。而且由于运动路程较长,引纬的效率比较低。为了解决这

个问题,产生了柔性剑杆。

柔性剑杆由柔性剑带和剑头构成。剑带缠绕在传剑轮上,传剑轮正转时,剑杆从传剑轮

上退绕下来,进入梭口,将纬纱引入梭口。引纬完成后,传剑轮反转,剑杆退出梭口,剑带

卷绕在传剑轮上。

� 按照织机上剑杆的数量可以分为单剑杆和多剑杆

单剑杆:单剑杆是在每台纺织机的一侧安装一个剑杆,剑杆的长度与织机的门幅相同。

就是靠这一个剑杆将纬纱从织机的一侧引导到另外的一侧,完成一次引纬过程。其缺点是:

单剑杆运动的路程很长,因此造成纺织的引纬时间很长,这就是剑杆织机运转速度的瓶颈所

在。

双剑杆:双剑杆的含义就是在每一台纺织机的两侧各安装一个半门幅长的剑杆。其中递

送纬纱一侧的剑杆称为送纬剑杆,另一侧的称为接纬剑杆。在引纬过程中,送纬剑杆和接纬

剑杆同时向梭口中心运动,接触后,接纬剑杆将纬纱接过然后返回到原处,完成这个过程后,

纬纱就被引入梭口,完成一个引纬过程。

② 喷水引纬

喷水引纬以水为引线载体,利用水的喷射产生的力量带动纬纱进入梭口。喷水引纬在引

纬速度、省力、节能方面占有优势,但仅限于织造疏水性的合纤长丝和加捻织物。

引纬时间的设定需要注意以下几点。

� 引纬时间的设定,以飞行终了时刻为基准,调整喷射开始的时间。

� 飞行终了时间应该设定在钢筘向前摆动到喷嘴中心线之前 127mm 时,也常常以角

度 260°为基准。 � 喷射开始的时间由调整水泵凸轮的位置来设定。 � 投纬时纬纱飞行开始时间以及投纬终了纬纱飞行终止的时间,可以调整夹纬器凸轮

的位置来设定。

Page 140: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–132–

� 为了顺利地进行引纬运动,必须要先设定喷射的开始时间比夹纬器打开的时间要早

一些,这个时间差在角度上来衡量一般是在 10°~20°,具体的参数对于各种不同的

织机以及不同的织物是不确定的。 引纬时间关系设定的角度如表 6-1 所示。

表 6-1 喷水织机引纬角度

序号 时间 说明

1 引纬可能开始角度 在开口期间开始引纬的可能角度

2 引纬可能结束角度 在开口期间结束引纬的可能角度

3 引纬可能角度 自由引纬可能开始角度到引纬可能结束角度

4 喷射开始角度 开始喷水的角度

5 喷射结束角度 终止喷水的角度

6 飞行开始角度 纬纱由夹纬器开始飞行的角度

7 飞行结束角度 纬纱由夹纬器结束飞行的角度

8 飞行角 飞行的开始角度和结束角度的差值

9 先行角 喷射开始角度和纬纱开始飞行的角度差值

10 喷出水到达时间 喷水的尖端到达喷嘴另外一侧的角度

11 纬纱到达时间 引入纬纱尖端到达喷嘴另外一侧的角度

12 触及探指时间 纬纱完全触及探指时的角度

13 最大伸长的角度 被引入纬纱伸长到达最大时的角度

14 剪切时间 运动中剪刀将纬纱剪断时的角度

③ 喷气引纬 喷气引纬是利用高速流动的空气对纱线表面产生的摩擦力作为引纬动力的。一般的喷气

引纬过程如图 6-3 所示。

图 6-3 引纬过程示意图

纬纱在主喷嘴的作用下从储纬器上脱落下来,并在辅助喷嘴气流的牵引下飞入梭口,完

成一次引纬过程。 空压站供给的压缩空气送到每一台织机上,经过调节压力装置形成不同的气压后,送到

不同的储气筒中,储气筒经过电磁阀和导管与各个喷嘴相连接。如图 6-4 所示,电磁阀的开

启和关闭由电脑中心控制。不同位置的喷嘴的供气压力是不同的,其大小是由各个调节阀来

调节的。

Page 141: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 6 章 纺织机自动控制系统

–133–

1-剪刀;2-储纬器;3-主喷嘴;4-剪切喷嘴;5-辅助喷嘴;6-综框;7-挡纱销

图 6-4 多喷嘴引纬系统的供气与控制原理

喷气引纬的工艺参数主要有:引纬时间、主喷嘴供气的开始时间和结束时间、不同位置

辅助喷嘴的开始供气时间和结束时间。

现在的喷气织机的具有如下特点。

� 高速。采用了异型筘的喷气织机,具有打纬的动程比较小,梭口高度小,综框运动

平稳,空气的惯性小等特点。这些特点都有利于很大程度上的提高织机的转速和幅

宽,其入纬率最高可以到达 2 000m/min。

� 对纬纱要求比较高。由于梭口小,因此要求梭口要清晰,对经纱的张力的均匀程度

要求很高,上机的张力比较大。

� 选纬能力比较差,一般 4~6 纬。

� 机构简单,价格较低。

4. 打纬 引入梭口的纬纱,在打纬机构的作用下被推向织口,与经纱交织,形成具有一定纬密的

织物。打纬机构是织机的主要机构之一。织物的经纱密度和幅宽由打纬机构的钢筘来控制。

织物中经纱的排列状态和经纬纱的屈曲情况,则由打纬时经纱所具有的不同张力和变形能力

而定。

打纬机构沿织机前后摆动,而引纬沿织机的左右运动。要求打纬与引纬协调配合,即打

纬机构的摆动应为引纬运动留有足够的空间和时间。同时,打纬机构要有高速的运行适应性,

即筘座往复摆动的动程应小,同时产生的震动也应该比较小。

在连杆打纬机构中,广泛采用的有 4 连杆打纬机构和 6 连杆打纬机构。4 连杆打纬机构

的结构简单,织造方便,在有梭织机和一些无梭织机上广泛使用。

由于打纬机构都是与主轴机械联动工作的,所以在这里将不再详细介绍了。

5. 卷取 卷取机构的作用是将在织口处初步形成的织物引离织口,卷绕到卷布辊上面,同时与织

机的其他机构配合,确定织物的纬纱排列密度和纬纱在织物内的排列特性。卷取机构的形式

Page 142: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–134–

很多,总体来说,可分为积极式卷取机构和消极式卷取机构。

随着机电一体化技术的不断发展,新一代的纺织机上应用了电脑控制的卷取机构。在这

种卷取机构中,采用单独的直流伺服电机作为动力源,通过减速齿轮系驱动卷取辊,对织物

进行卷取。减速轮系的各个齿轮都是固定的,不必根据织物的纬密要求而变更。织造过程中,

织机电脑控制中心直接控制伺服电机的电压,改变电动机的转速,从而实现纬密的变化。电

脑的控制程序根据织物纬密的要求进行编制。电子积极卷取机构具有以下的优点:

� 不需要变换齿轮。节省了大量变换齿轮的储备和管理,改变纬密非常方便。

� 有利于织机的高速化。纬密的变化是无级的,能准确地满足织物的纬密设计要求,

而且机构的运动比较平稳,能够适应织机的高速运动的要求

� 这种卷取机构同送经、开口、选色和寻纬机构联动,操作简单,能够减少停机处理

的时间,同时能够实现定量的卷取和停卷,有利于形成各种外观特征,提高产品的

质量。

6. 送经 在织造过程中,经纱和纬纱交织形成的织物不断地被卷取机构卷走。为保证织造过程连

续的进行,必须由送经机构送出相应长度的经纱,以满足织造的要求。根据作用原理,送经

可以分为消极送经和积极送经两种。

消极送经机构依靠经纱张力的牵引将经纱从织轴上退绕下来。在主轴的一个回转运动中,

经纱张力随着开口、打纬、卷取等运动周期的发生着变化。当经纱张力作用在织轴上的拖动

力矩大于织轴上的制动力矩和轴筒上的摩擦力矩时就会牵动织轴作微量的转动,放出一定量

的经纱。为了保证织造过程的经纱张力,对织轴要加一定的制动力,并且制动力随着织轴上

经纱卷取的直径减小而减小。调节制动力的方式有两种:人工调节和自动调节。因此,消极

送经机构可以分为人工调节式和自动调节式。

积极送经机构根据织造过程中所受的各种因素影响的经纱张力来调节经纱送出量,控制

经纱张力均匀。因此,积极送经机构中,经纱所受的张力和变形比消极送经小。积极送经机

构分为机械式和电子式两种。

6.3 纺织机自控系统 PLC 选型和资源配置

下面以剑杆织机的控制系统为例说明纺织机控制的工艺流程。剑杆织机控制流程主要有:

初始化过程,恢复断电前备份数据的过程,纬纱选色过程,参数设置过程,探纬过程,断经

检测过程,织机故障指示过程,计算织机的产量和效率等几个主要的过程。

6.3.1 PLC 资源配置

由于整个系统涉及的基本上是开关量,并且数量不多,所以选用了西门子 S7-200 系列

PLC CPU 224 作为纺织机的控制器,并配置了模块 EM223 数字量输出模块作为扩展模块。

整个系统的资源配置如表 6-2 所示。

Page 143: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 6 章 纺织机自动控制系统

–135–

表 6-2 PLC 资源配置表

6.3.2 其他资源配置

纺织机的所有运动与主轴的运动都密切相关,因此在硬件资源上必须配备能够测量主轴

角度的设备,本例中选用光电编码器作为主轴运动角度的测量装置。光电编码器的分辨率选

择为 360,也就是主轴每转动一周,编码器输出脉冲信号 360 个,这样通过 CPU 上自带的高

速计数器很容易计算出主轴运动的角度值。

光电编码器是一种通过光电转换将输出轴上的机械几何位移量转换成脉冲或数字量的传

感器。这是目前应用最多的传感器,光电编码器的工作原理如图 6-5 所示。在圆盘上有规则

地刻有透光和不透光的线条,在圆盘两侧,安放发光元件和光敏元件。当圆盘旋转时,光敏

元件接收的光通量随透光线条同步变化,光敏元件输出波形经过整形后变为脉冲,码盘上有

Z 相标志,每转一圈输出一个脉冲。此外,为判断旋转方向,码盘还可提供相位相差 90º的两

路脉冲信号。

图 6-5 光电编码器工作原理

位号 说明 位号 说明

I0.0 断纬信号输入 Q0.0 点动信号输出

I0.1 停车信号输入 Q0.1 启动信号输出

I0.2 断经信号输入 Q0.2 正寻纬信号输出

I0.3 断纬信号输入 Q0.3 反寻纬信号输出

I0.6 光电编码器输入 A Q0.4 断纬指示灯输出

I0.7 光电编码器输入 B Q0.5 断经指示灯输出

I1.0 光电编码器输入 N Q0.6 其他信号输出

I1.1 启动信号输入 Q2.0 第 1 色纬纱选纬输出

I1.2 点动信号输入 Q2.1 第 2 色纬纱选纬输出

I1.3 正寻纬信号输入 Q2.2 第 3 色纬纱选纬输出

I1.4 反寻纬信号输入 Q2.3 第 4 色纬纱选纬输出

Q2.4 第 5 色纬纱选纬输出

Q2.5 第 6 色纬纱选纬输出

Q2.6 第 7 色纬纱选纬输出

Q2.7 第 8 色纬纱选纬输出

Page 144: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–136–

根据检测原理,编码器可分为光学式、磁式、感应式和电容式几种。根据其刻度方法及

信号输出形式,可分为增量式、绝对式以及混合式 3 种。

(1)增量式编码器是直接利用光电转换原理输出 3 组方波脉冲 A、B 和 Z 相;A、B 两

组脉冲相位差 90º,从而可方便地判断出旋转方向,而 Z 相为每转一个脉冲,用于基准点定

位。它的优点是原理构造简单,机械平均寿命可在几万小时以上,抗干扰能力强,可靠性高,

适合于长距离传输。其缺点是无法输出轴转动的绝对位置信息。 (2)绝对式编码器是利用自然二进制或循环二进制(葛莱码)方式进行光电转换的。绝

对式编码器与增量式编码器不同之处在于圆盘上透光、不透光的线条图形,绝对编码器可有

若干编码,根据读出码盘上的编码检测绝对位置。编码的设计可采用二进制码、循环码、二

进制补码等。它的特点是: � 可以直接读出角度坐标的绝对值; � 没有累积误差; � 电源切除后位置信息不会丢失。但是分辨率是由二进制的位数来决定的,也就是说

精度取决于位数,目前有 10 位、14 位等多种。

6.4 控制系统 PLC 程序设计

织机控制程序基本流程图如图 6-6 所示。

图 6-6 织机控制程序基本流程图

Page 145: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 6 章 纺织机自动控制系统

–137–

6.5 自控系统 PLC 程序说明

按照 6.2 节中工艺流程的要求,本节将对 PLC 的控制程序做一个详细的说明。从本章开

始,由于程序代码量比较庞大,全部列举出来需要占用很大的篇幅,所以不再连续列举每个

程序网络,改为列举每一部分功能的代码进行说明。

6.5.1 初始化程序的说明

PLC 第一次开始工作时,需要对一些具体的参数进行设置,对于一些程序中重要的参数

需要将备份数据读取出来,以便于程序的运行。下面是初始化程序的流程:

初始化高速计数器,设置高速计数器控制参数,设置中断控制,初始化运行标志等几个

方面。

下面介绍高速计数器的使用。

1. 高速计数器操作命令 高速计数器可以对 CPU 扫描速度无法控制的高速事件进行计数,可设置多种不同操作模

式。高速计数器的最大计数频率决定于 CPU 类型。S7-200 CPU 内置 4~6 个高速计数器

(HSC0~HSC5,其中 PLC CPU21 及 PLC CPU222 不支持 HSC1 及 HSC2)。这些高速计数器

工作频率可达到 20KHz,有 12 种工作模式,而且不影响 CPU 的性能。高速计数器对所支持

的计数、方向控制、重新设置及启动均有专门输入。对于双相计数器,两个计数都可以以最

大速率运行。对于正交模式,可以选择单倍(1×)或 4 倍(4×)最大计数速率工作。HSC1和 HSC2 相互完全独立,并不影响其他的高速功能。全部计数器均可以以最大速率运行,互

不干扰。 高速计数器经常被用于距离检测及电机转速检测。当计数器的当前值等于预设值或发生

重置时,计数器提供中断。因为中断的发生速率远远低于高速计数器的计数速率,所以可对

高速操作进行精确控制,并不影响 PLC 的整体扫描循环。高速计数器允许在中断程序内装载

新的预设值,使程序简单易懂。 (1)高速计数器工作模式 高速计数器大体可以分为 4 种。第一种是带内部方向控制的单相计数器,这种计数器的

计数要么是增计数,要么是减计数,只能是其中一种方式。这种计数器只有一个计数输入端。

其控制计数方向由内部继电器控制。该计数器的工作模式为模式 0、1、2。第二种是带外部

方向控制的单相计数器。这种计数器的计数要么是增计数,要么是减计数,只能是其中一种

方式。这种计数器只有一个计数输入端。由外部输入控制其计数方向。该计数器的工作模式

为模式 3、4、5。第 3 种计数器是既可以增计数也可以减计数的双相计数器。这种计数器有

两个计数输入端,一个为增计数输入端,一个为减计数输入端。这种计数器的工作模式为模

式 6、7、8。第 4 种计数器是正交计数器。这种计数器有两个时钟脉冲输入端,一个输入端

为 A 相,一个输入端为 B 相。当 A 相时钟脉冲超前 B 相时钟脉冲时,计数器进行增计数;

当 A 相时钟脉冲滞后 B 相时钟脉冲时,计数器进行减计数。这种计数器的工作模式为模式 9、

10、11。在正交模式下,可选择 1 倍(1×)或 4 倍(4×)最大计数速率。高速计数器的初始

化过程如图 6-7 所示。

Page 146: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–138–

图 6-7 高速计数器初始化过程

对于相同的操作模式,全部计数器的运行方式均相同,共有 12 种模式。请注意并非每种

计数器均支持全部操作模式。HSC0、HSC3、HSC4、HSC5 高速计数器的工作模式如表 6-3

所示。HSC1、HSC2 高速计数器的工作模式如表 6-4 所示。

表 6-3 高速计数器操作模式(1)

高速计数器 HSC0 HSC3 HSC4 HSC5

I0.0 I0.1 I0.2 I0.1 I0.3 I0.4 I0.5 I0.4

模式 0(1) 计数 计数 计数 计数

模式 1(1) 计数 复位 计数 复位

模式 2(1)

模式 3(2) 计数 计数方向 计数 计数方向

模式 4(2) 计数 计数方向 复位 计数 计数方向 复位

模式 5(2)

模式 6(3) 递增 递减 递增 递减

模式 7(3) 递增 递减 复位 递增 递减 复位

模式 8(3)

模式 9(4) A 相 B 相 A 相 B 相

模式 10(4) A 相 B 相 复位 A 相 B 相 复位

模式 11(4)

Page 147: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 6 章 纺织机自动控制系统

–139–

表 6-4 高速计数器操作模式(2)

高速计数器 HSC1 HSC2

I0.6 I0.7 I1.0 I1.2 I1.3 I1.4

模式 0(1) 计数 计数

模式 1(1) 计数 复位 计数 复位

模式 2(1) 计数 复位 复位

模式 3(2) 计数 计数方向 计数 计数方向

模式 4(2) 计数 计数方向 复位 计数 计数方向 复位

模式 5(2) 计数 计数方向 复位 计数 计数方向 复位

模式 6(3) 递增 递减 递增 递减

模式 7(3) 递增 递减 复位 递增 递减 复位

模式 8(3) 递增 递减 复位 递增 递减 复位

模式 9(4) A 相 B 相 A 相 B 相

模式 10(4) A 相 B 相 复位 A 相 B 相 复位

模式 11(4) A 相 B 相 复位 A 相 B 相 复位

『注 1』:

模式 0、1、2:带内部方向控制的单相计数器。

『注 2』:

模式 3、4、5:带外部方向控制的单相计数器。

『注 3』:

模式 6、7、8:带增减计数输入的双向计数器。

『注 4』:

模式 9、10、11:A/B 相正交计数器。

(2)高速计数器的中断描述

全部计数器模式均支持当前数值等于预设数值中断,使用外部重置输入的计数器模式支

持外部重复被激活中断。除模式 0、1 及 2 以外的全部计数器模式均支持计数方向改变中断。

可以单独启动或关闭这些中断。使用外部重置中断时,不要装载当前数值,或者在该事件的

中断程序中先关闭再启动高速计数器,否则将引起 CPU 严重错误。高速计数器的中断描述如

表 6-5 所示。

表 6-5 高速计数器中断事件

中断事件号 中断事件

12 高速计数器 0 的当前值到达预定值中断

27 高速计数器 0 计数方向改变中断

28 高速计数器 0 外部复位中断

13 高速计数器 1 的当前值到达预定值中断

14 高速计数器 1 计数方向改变中断

15 高速计数器 1 外部复位中断

16 高速计数器 2 的当前值到达预定值中断

Page 148: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–140–

续表

中断事件号 中断事件

17 高速计数器 2 计数方向改变中断

18 高速计数器 2 外部复位中断

32 高速计数器 3 的当前值到达预定值中断

29 高速计数器 4 的当前值到达预定值中断

30 高速计数器 4 计数方向改变中断

31 高速计数器 4 外部复位中断

33 高速计数器 5 的当前值到达预定值中断

(3)高速计数器的状态字

每一个高速计数器都有一个状态字节,该字节的每一位都反映了这个计数器的工作状态,

表示当前计数方向以及当前数值是否大于或等于预设数值。高速计数器的状态字见如表 6-6

所示。

表 6-6 高速计数器状态字节定义

HSC0 HSC1 HSC2 HSC3 HSC4 HSC5

SM36.0

~SM36

.4

SM46.0~S

M46.4

SM56.0~S

M56.4

SM136.0~S

M136.4

SM146.0~S

M146.4

SM156.0~S

M156.4 未使用

SM36.5 SM46.5 SM56.5 SM136.5 SM146.5 SM156.5 计数方向:0 向下、1 向

SM36.6 SM46.6 SM56.6 SM136.6 SM146.6 SM156.6 当前值=预定值时为 1,

否则为 0

SM36.7 SM46.7 SM56.7 SM136.7 SM146.7 SM156.7 当前值>预定值时为 1,

否则为 0

(4)高速计数器的控制字

定义计数器及计数器模式后,可对计数器动态参数进行编程。各高速计数器均有控制字

节,可启动或关闭计数器、控制方向(只用于模式 0、1 及 2)或其他全部模式的初始计数方

向、装载当前数值及预设数值。执行 HSC 指令可检查控制字节、当前及预设值。高速计数器

的控制字如表 6-7 所示。

表 6-7 高速计数器控制字

HSC0 HSC1 HSC2 HSC3 HSC4 HSC5 说明

SM37.0 SM47.0 SM57.0 SM147.0 0:高电平复位,1:低电平复位

SM37.1 SM47.1 SM57.1 SM147.1 0:高电平启动,1:低电平启动

SM37.2 SM47.2 SM57.2 SM147.2 0:4 倍速率 ,1:1 倍速率

SM37.3 SM47.3 SM57.3 SM137.3 SM147.3 SM157.3 0:向下计数 ,1:向上计数

SM37.4 SM47.4 SM57.4 SM137.4 SM147.4 SM157.4 0:无方向更新,1:有方向更新

SM37.5 SM47.5 SM57.5 SM137.5 SM147.5 SM157.5 0:预定值更新,1:预定值不更新

Page 149: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 6 章 纺织机自动控制系统

–141–

续表

HSC0 HSC1 HSC2 HSC3 HSC4 HSC5 说明

SM37.6 SM47.6 SM57.6 SM137.6 SM147.6 SM157.6 0:当前值更新,1:当前值不更新

SM37.7 SM47.7 SM57.7 SM137.7 SM147.7 SM157.7 0:禁止计数器,1:允许计数器

(5)高速计数器的当前值

各高速计数器均有 32 位当前值,当前值为带符号整数值。欲向高速计数器装载新的当前

值,必须设定包含当前值的控制字节及特殊内存字节。然后执行 HSC 指令,使新数值传输至

高速计数器。表 6-8 所示为用于装入新当前值的特殊内存字节。

表 6-8 高速计数器更新当前值

高速计数器 HSC0 HSC1 HSC2 HSC3 HSC4 HSC5

更新值 SMD38 SMD48 SM58 SMD138 SMD148 SMD158

(6)高速计数器的设定值

每个高速计数器都有一个 32 位的设定值,设定值为有符号整数。如果要向高速计数器写

入新的设定值,那么必须设定包含设定值的控制字节以及特殊的内存字节,然后执行 HSC 指

令,将新的数值写入高速计数器。高速计数器的设定值如表 6-9 所示。

表 6-9 高速计数器的设定值

高速计数器 HSC0 HSC1 HSC2 HSC3 HSC4 HSC5

设定值 SMD42 SMD52 SM62 SMD142 SMD152 SMD162

2. 定义高速计数器 定义高速计数器的指令是 HDEF,在使用高速计数器之前必须选择计数器模式,对于每

一个高速计数器只能使用一条这样的命令对其进行定义。在高速计数器控制字节内新定义的

控制方式,只有在使用 HDEF 命令执行之后,才能真正被高速计数器接受,并按照新设定方

式运行。否则,高速计数器只按照默认值进行工作。

(1)高速计数器定义指令,如图 6-8 所示。

高速计数器定义指令为 HDEF 模块,这个模块有 3 个输入端和一个输出端,其含义分别

是:

EN�高速计数器允许端、HSC�高速计数器选择端、MODE�高速计数器工作模

式选择、ENO�工作输入端。

(2)高速计数器编程指令,如图 6-9 所示。

图 6-8 高速计数器定义指令 图 6-9 高速计数器编程指令

高速计数器编程指令为 HSC。高速计数器在定义以后、复位后、更新计数器当前值、更

新设定值时都要使用高速计数器编程指令 HSC 进行编程,这样高速计数器才能运行。

Page 150: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–142–

高速计数器的编程指令由高速计数器的允许端 EN、高速计数器选择编号构成。高速计

数器设置编程网络的梯形图如图 6-10 所示。

图 6-10 网络 1 高速计数器设置

网络 1 的代码如下: LD SM0.0 MOVB 16#EC, SMB47

//向 SMB47 写入 16 进制数值 EC,其含 //义为允许高速计数器计数、更新当前值 //选择高速计数器 HSC1、选择计数器模式 //为模式 10、初始计数方向为向上计数、 //启动和复位高电平有效、正交速率 1 倍

HDEF 1, 10 //选择高速计数器 1,工作方式为模式 //10,即 A/B 相正交计数

MOVD VD5110, SMD48 //高速计数器 1 初始值设置为 VD5110

MOVD +280, SMD52 //高速计数器预定值为 180

HSC 1 //对 HSC1 进行编程

一般来说,高速计数器用来计算安装了增量轴式编码器的设备的转速。以恒定的速度转

动轴式编码器每转动一圈会提供一个确定的计数脉冲和一个复位脉冲,编码器的计数脉冲和

复位脉冲作为输入信号送给高速计数器进行计数。

由于中断事件产生的速率远低于高速计数器的计数速率,所以使用高速计数器可实现精

Page 151: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 6 章 纺织机自动控制系统

–143–

确控制,并且与PLC整个扫描周期的关系不大。采用中断的方法允许在简单的状态控制中用

独立的中断程序装入一个新的预定值。

6.5.2 纬纱选色程序说明

选色的先决条件是在内存中存在纬纱选色的预先设定值。纬纱选色的预先设定值是在程

序初始化的时候设定的。在选色时,先确定当前纬纱序号的值,然后从相应的内存地址中读

取纬纱的种类。经过译码程序,将纬纱种类译码,通过输出引脚输出给执行机构执行落指选

色动作。

选色时,要注意到纬纱次序的循环,例如,纬纱一个循环有 3 000 根,1~1 000 为白色纬

纱,1 001~2 000 为黄色纬纱,2 001~3 000 为蓝色纬纱。当序号为 1 号时,那么在反寻纬时,

序号就要由 1 号退减为 3000 号;当序号为 3 000 号时,在正寻纬或者运行时,纬纱序号就要

由 3000 号增加为 1 号。这是在编程序时必须要注意的地方,否则将会引起纬纱选色错误,造

成织物出现瑕疵,影响织物的质量。

图 6-11 所示是纬纱选色的基本流程图。选色开始时,首先判断是正寻纬还是反寻纬,正

寻纬时要考虑到当前序号是否为最大序号,如果是,那么应该将新的当前序号设置为 1,也

就是初始的最小序号。反寻纬时要考虑到当前序号是否为最小序号,如果是最小序号,那么

应该将新的当前序号设置为最大序号 3 000。

图 6-11 纬纱选色流程

图 6-12 的网络 17 是纬纱设定的过程(注意,有些网络图不是很重要,所以在书中省略

了,其他章节类似)。M22.0 为设定状态下进行纬纱选色设置的标记。M22.0 的值由上位机或

者操作界面决定。在设定时,操作界面将给出当前纬纱序号(或者这个序号由程序计算出)、

纬纱编号(1~8)、同色纬纱根数这 3 个变量,程序将根据这 3 个变量去填充内存中相应的地

址,以备程序正常运行时进行选色。

Page 152: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–144–

网络 17~网络 19 是选色的实现过程。网络 17 的梯形图如图 6-12 所示。

图 6-12 网络 17

网络 17 的实现代码如下: LD M22.0 //以 M22.0 作为设定的判断条件 MOVD 16#04000000, VD14 //在上位机显示设定画面 MOVW VW44, VW144 //本次设定的起始纬纱序号 MOVD &VB1000, AC3 //取得纬纱选色的内存首地址 +I VW44, AC3 //得到当前选色的内存地址 MOVB *AC3, VB253 //取到当前地址对应的选色号 MOVW +0, VW244 //清除选色的同色的纬纱数 R V22.0, 1 //清除设定标记

网络 18 的梯形图如图 6-13 所示。

图 6-13 网络 18

Page 153: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 6 章 纺织机自动控制系统

–145–

网络 18 的实现代码如下: LD M22.1 //设定条件 LPS MOVD &VB1000, AC3 //取得纬纱选色的内存首地址 +I VW144, AC3 //得到当前选色的内存地址 AW>= VW252, +8 //最多 8 色选纬 MOVW +8, VW252 //超过 8 记为 8 LRD AW>= VW244, +255 //选色同色纬纱数限定为 255 根 MOVW +255, VW264 //超过 255 根时,限定为 255 LRD FILL VW1132, VW4500, VB265 //开始填充设定纬纱数 LPP BMB VB4500, *AC3, VB265

网络 19 的梯形图如图 6-14 所示。

图 6-14 网络 19

网络 19 的实现代码如下: LD M22.2 //设定条件 LPS AB<> VB253, 0 //如果当前序号不等于最大的序号,计算 MOVW VW144, VW44 //如果等于最大序号,置当前序号为 1 +I VW244, VW44 //计算当前纬纱序号 LRD AB= VB253, 0 MOVW +1, VW44 MOVW VW144, VW4118 LPP MOVD &VB1000, AC3 //取得内存起始地址

Page 154: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–146–

+I VW44, AC3 //取得当前纬纱序号对应的内存地址 MOVB *AC3, VB83 //从相应内存中读取出当前纬纱的编号 MOVW +0, VW104 //将同色纬纱根数清零 R M22.2, 1 //清除设置标记 R M22.1, 1

6.5.3 剑杆织机的程式

在断经以及断纬事件发生时,由于织机自身的惯性和工艺的要求,织机并不是在程序检

测到断经或者断纬的情况下立刻停车,而是要继续运行一段时间,然后停止在某个固定的角

度上。

举例说明,如果织机运行过程中,发生断纬事件时纬纱的序号为 10,那么由于上述的原

因,当织机完全停止时,纬纱实际的序号已经增加到了 11 或者 12。但是由于程序的设定,

11 和 12 根纬纱并没有引入梭口,因此不作处理,这时将出现缺少第 11 根纬纱的情况,就会

使织物出现稀密路的现象,成为次品。

基于以上的原因,在断经或者断纬的事件发生时,必须要进行处理来防止织物瑕疵的出

现。因此产生了停车后自动寻纬以及防止开车痕的工艺操作,这种操作方法称之为程式。

以某一进口剑杆织机程式为例,其停车程式主要有 3 种:

(1)纬停时空投 1 纬,停车后,纺织机反寻纬 2 圈;织机开车时直接运行。经停无动作。

(2)纬停时空投 1 纬,停车后,纺织机反寻纬 2 圈;断经停空投 1 纬,停车后反寻纬 1

圈。

(3)纬停时空投 1 纬,停车后,纺织机反寻纬 2 圈;断经停空投 1 纬,停车后反寻纬 2

圈。

网络 23 之前的程序与本部分功能无关,故省略。

网络 23~网络 25 的梯形图如图 6-15 所示。

图 6-15 网络 23-25

Page 155: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 6 章 纺织机自动控制系统

–147–

网络 23~25 的实现代码如下: 网络 23

LDB<= VB200, 1 //如果设定的方式为第 1 种方式

= M10.1 //那么设置第 1 种方式标记

MOVB 1, VB200

网络 24

LDB= VB200, 2 //如果设定的方式为第 2 种方式

= M10.2 //那么设置第 3 种方式标记

Network 25

LDB>= VB200, 3 ///如果设定的方式为第 3 种方式

= M10.3 //那么设置第 3 种方式标记

网络 26 的梯形图如图 6-16 所示。

网络 26 的实现代码如下: 网络 26 LD M20.1 EU S C10, 1 MOVW +1, C2 //纬停空投纬计数 MOVB 16#00, VB1101 //断经空投纬计数 MOVB 16#01, VB1103 //断纬空投纬计数

图 6-16 网络 26

网络 27 的梯形图如图 6-17 所示。

网络 27 的实现代码如下: 网络 27

LD M20.2

EU S C10, 1

Page 156: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–148–

S C12, 1 MOVW +1, C10 //纬停空投纬计数 MOVW +1, C12 //经停空投纬计数 MOVB 16#01, VB1101 //断经空投纬计数 MOVB 16#01, VB1103 //断纬空投纬计数

图 6-17 网络 27

网络 28 的梯形图如图 6-18 所示。

图 6-18 网络 28

Page 157: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 6 章 纺织机自动控制系统

–149–

网络 28 的实现代码如下: 网络 31 LD M20.3 //程式 3 EU S C10, 1 S C12, 1 MOVW +2, C10 //纬停空投纬计数 MOVW +2, C12 //经停空投纬计数 MOVB 16#02, VB1101 //断经空投纬计数 MOVB 16#02, VB1103 //断纬空投纬计数

6.5.4 剑杆织机故障判断处理

在织造过程中,当经纱或者纬纱处于不正常状态时,织机必须立即停车,以免在织物上

形成织疵,降低产品的质量。在织机上,这种自动停车的动作是由经纱和纬纱的断线自动检

测停车装置来完成的。

1. 断纬停车 织机在引纬不正常时(比如断纬、重纬等)会自动将织机停在合适的位置上,并且断纬

指示灯点亮,通知操作员断纬事件的发生。这种自动停车等待故障处理的过程是由断纬自动

检测停车设备以及电控程式来实现的。断纬停车方式一般有机械式和电子式两种。

(1)机械式断纬停车

有梭织机通常采用机械式断纬停车装置。图 6-19 所示是探针式断纬停车装置。摆杆 1 绕

轴 O1 作上下摆动,摆杆下降到最低位置时,钢针 2 在织口 5 附近穿过经纱纱层。当纬纱引入

织口并被打入织口之后,钢针 2 被交织到织口之中。然后摆杆向上摆动,撑头 3 因织口阻挡

钢针而上抬,摆杆上升到最高位置时,钢针从织口退出。如果点啄式断纬停车装置所在的区

域内没有纬纱,这样钢针就不会受到阻力,撑头 3 由于自身重力下降碰到碰头 4 的缺口。摆

杆上摆时,撑头推动碰头转动,带动后续机构停车。

1-摆杆;2-钢针;3-撑头;4--碰头;5-织口

图 6-19 探针式纬纱断头自停装置

这种断纬自动停车装置,停车部分的传递机构比较复杂,经过长时间的运动,会由于机

械的磨损而影响停车动作的准确性。

(2)电气式断纬停车

无梭织机通常使用的是电气式断纬停车装置。断纬停车装置的纬纱检测方法主要有压电

Page 158: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–150–

陶瓷传感器、光电探纬器等。

① 压电陶瓷传感器检测断纬

在剑杆织机和片梭织机上,断纬停车常常采用压电陶瓷传感器的纬纱检测方式。纬纱从

储纬器中引出之后,经过压电陶瓷传感器的导纱孔,张紧状态的纬纱压在传感器的导纱孔上,

当纬纱快速的通过导纱孔时,孔壁带动压电陶瓷晶体发生震动,产生交变的电压信号。如果

纬纱用完,交变的电压信号经过放大、判断,进而控制停车。

② 光电探纬器检测断纬

喷气织机采用光电传感器的断纬检测装置。图 6-20 所示为一种风道筘齿形状的探头。在

安装时,凹槽部分应该与风道筘的凹槽平齐以便于引纬。在喷气引纬的过程中,纬纱准确的

飞行于狭小的槽型区域。在探头上装有一个光源 1 和两个光电元件 2,纬纱 6 飞过探头上的

凹槽时,对光源发出的光线进行反射,光电元件接收反射光后,输出一个纬纱达到信号。光

电元件的斜向设置有利于克服外界光线的直射干扰,避免误信号和误动作的产生。

图 6-20 光电传感器探纬装置

光电传感检测器件由于受到油污或者灰尘的影响,其灵敏度会有所降低,会出现判断纬

纱断纬情况的失误,造成错误停车的事件。因此,光电传感器应该做定期的清洁处理,避免

误判断、误动作情况的发生。

2. 断经停车 纺织机上的经纱折断或者经纱过分松弛的时候,断经检测停车装置会自动的使纺织机停

车,将其停止在主轴的一个固定的位置上,同时送出断经信号指示灯。常见的断经检测停车

装置有机械式和电气式两种。

(1)机械式断经检测装置

有梭织机通常使用经纱断头机械自停。如图 6-21 所示,中心轴 1 回转时,经停凸轮 2 推

动联合杆 3 和恢复杆 4 共同绕轴 O1 做上、下摆动,通过连杆 15 带动摆动齿杆 11 绕轴 O2 进

行摆动。当断经或者经纱松脱时,停经片落下,阻碍了摆动齿杆在两侧极限位置附近的运动。

于是,恢复杆终止与联合杆的共同运动。经过一系列的联动运动,使得纺织机停车。

机械式经纱断头自停装置结构比较复杂,断经停车动作容易失灵,对于宽幅织机更加不

合适。在织机主轴回转一周的时间内,摆动齿杆作一次单向摆动,仅对一半的经纱进行检测,

容易造成断经的漏判。

(2)电气式断经检测装置

经纱断经电气检测装置有接触式和光电式两种。

图 6-22 所示为无梭织机上较为普遍使用的接触式经纱断经检测装置。停经片 3 和相互绝

Page 159: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 6 章 纺织机自动控制系统

–151–

缘的正、负电极 1、2 组成了检测部分。当经纱 4 折断或者松脱时,停经片落下,使得电极 1、

2 导通,产生停经信号。

图 6-21 经纱断头机械自停装置

1、2-电极;3-停经片就;4—经纱

图 6-22 接触式经纱断头自停装置

光电式经纱断经电气停车检测装置由停经片和成对设置的红外发光管、光电二极管组成

检测部分。当停经片落下时,使得红外发光管通往光电二极管的光路被阻断,光电二极管接

收不到光线,产生了停经信号。

经纱断经电气停车检测装置结构简单,作用灵敏、可靠。但是检测部分的日常清洁工作

要求比较严格,当灰尘和油污堆积在接触式检测装置的电极上或者光电检测元件上面时,就

会发生断经检测失灵,造成织物的品质下降。

网络 33~网络 59 略去。

Page 160: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–152–

下面一段程序是探纬程序,由网络 60~64 实现。

网络 60、61 的梯形图如图 6-23 所示。

图 6-23 网络 60、61

网络 60、61 的实现代码如下: 网络 60 LD SM0.0 MOVD HC1, VD100 MOVD HC1, VD5110 网络 61 LDW>= VW122, VW1142 //读取当前角度的值 AW<= VW122, VW1138

= M9.6

网络 62 的梯形图如图 6-24 所示。

图 6-24 网络 62

网络 62 的实现代码如下: 网络 62

Page 161: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 6 章 纺织机自动控制系统

–153–

LDN C11 //开车空投纬完成 LD M20.3 //程式 3 A C13 //程式之间切换时,纬停开车打空梭是否完成 LD M20.2 //程式 2 O M20.1 //程式 1 LD M21.1 //切换模式 1 A C13 LD M21.3 //切换模式 3 A C17 //程式之间切换时,经停开车打空梭是否完成 OLD LDN M21.1 //不是切换方式 1 AN M21.3 //也不是切换方式 3 OLD ALD OLD ALD ATCH 纬停, 1 //确定全部条件都满足,那么启动断纬和重纬中断 ATCH 纬停, 7 LDN I0.3 //重纬信号 O M11.3 //有纬停事件? ON I0.0 //断纬信号 ALD S M10.7, 1 //设置纬停锁定标记

网络 63 的梯形图如图 6-25 所示。

图 6-25 网络 63

网络 63 的实现代码如下: 网络 63 LDN M9.6 //确定当前的角度是否是在允许探纬的范围内 DTCH 1 //如果当前的角度不在探纬范围内时 DTCH 7 //禁止断纬和重纬中断

下面介绍剑杆织机落指选色的过程,当织机的当前角度在允许落指区之内时,就要考虑

当前情况是否要落指(不在落指区域之内时,是不能落指的)。此时要考虑的条件是,开车时

打空梭和停车时空投纬的情况,因为这几种程式都要求不能落指引纬。所以在程序中一定要

充分地考虑到这种情况。这部分程序由网络 105 实现。

网络 105 的梯形图如图 6-26 所示。

Page 162: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–154–

图 6-26 网络 36

网络 105 的实现代码如下: 网络 105 LD SM0.0 //常闭触点 A C8 //纬停打空梭完成 LD M10.3 //第三种程式 A C13 //经停时 OLD LD M10.1 //第一种程式 O M10.2 //第二种程式 LD M21.1 A C13 //程式之间切换时,纬停开车打空梭是否完成 LD M21.3 A C17 //程式之间切换时,经停开车打空梭是否完成 OLD LDN M21.1 AN M21.3 OLD ALD OLD ALD = M13.2 MOVB VB83, VB5114 DECB VB5114 DECO VB5114, AC1 MOVB AC1, QB2

Page 163: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 6 章 纺织机自动控制系统

–155–

6.6 设计小结

在本章中,介绍了纺织机的运动原理,并涉及到了纺织机运动中的几个比较重要的部分,

包括纺织机的选色、引纬、断纬和断经的检测等。对于剑杆织机来说,这几部分已经能够满

足织机控制的要求,另外如电子送经、电子卷取、电子多臂等功能只能应用在喷水织机、喷

气织机或者是高档剑杆织机的控制上面,这里没有提及。

从控制角度来讲,速度因素是稳定控制的大敌,所以无论是硬件条件还是软件编程都要

考虑到高速运动时的稳定性问题。

Page 164: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第第 77 章章 锅锅炉炉燃燃烧烧自自动动控控制制系系统统

本章将重点介绍锅炉基本控制理论和几种主要类型锅炉的热工控制系统的特点。在锅炉

改造工程中,控制系统的改造往往是彻底的,要么用仪表调节系统取代手工控制,要么用先

进的计算机控制系统取代模拟仪表调节系统和过时的计算机控制系统。当然,也不排除局部

的技术改造。因此,掌握了锅炉基本控制理论和几种主要类型锅炉的热工控制系统的特点,

就能结合计算机控制技术的新成果,方便地进行锅炉控制系统的改造,使锅炉监控和运行技

术达到新的水平。

7.1 锅炉燃烧控制系统总体设计

在锅炉的改造过程中,需要达到以下的几个目标:

(1)彻底的对控制系统和控制方式进行改造,用仪表调节代替以往的手动调节;

(2)用先进的数字调节仪表取代模拟调节仪表;

(3)局部控制的技术更新。

7.2 锅炉控制的基本理论

锅炉控制的主要目的是调节锅炉出口的蒸汽流量、压力和温度,使其达到所希望的数值。

为此,需要对燃料、空气和水三者的量进行调节。锅炉是一个复杂的系统,对锅炉工况造成

影响的因素之一是来自外部和内部的扰动,如燃料发热量的变化或热力系统工况的变化等。

控制器或控制系统根据锅炉出口蒸汽参数实际值偏离其设定值的大小和方向,调节燃料量、

空气量和水量,使锅炉出口参数与其所希望的值相一致。

锅炉除了配有相应的仪表系统外,还主要有燃烧控制系统、过热器和再热器出口蒸汽温

度的控制系统、给水控制系统、锅炉过热蒸汽温度控制系统、基本锅炉控制系统等。不同类

型的锅炉,因其工作原理上的差异(尽管基本原理是相同的),其控制系统也不尽相同。本节

将简要介绍锅炉基本的控制理论和方法,同时对工业锅炉和流化床锅炉控制的特殊性进行描

述。

7.2.1 锅炉燃烧基本控制系统

1. 给水控制系统 锅炉给水控制的目的是调节进入汽包给水的流量,以维持汽包水位在所要求的上下限之

间,适应锅炉蒸发量的变化。

Page 165: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 7 章 锅炉燃烧自动控制系统

–157–

水位调节对象没有自平衡能力,存在滞后性,在外扰情况下可出现虚假水位现象。常用

的水位控制系统有以下 3 种:单冲量给水控制系统,即以水位为惟一调节信号的单参数、单

回路控制系统;双冲量给水控制系统,以蒸汽流量作为补充信号的双参数控制系统;三冲量

给水控制系统,以蒸汽流量和给水流量作为补充信号的三参数控制系统。

单冲量水位控制系统只根据水位变化去改变给水调节阀的开度。对中小型锅炉,由于汽

包相对于负荷而言容量较大,水位受到扰动的反应速度较慢,虚假水位现象不很严重。因此

一般采用单冲量控制方法就可满足生产上的要求,控制算法常采用 PI 算法实现无差水位调

节。当蒸汽量大幅度增加时,为了克服虚假水位对控制的不良影响,可以引入蒸汽流量作为

前馈信号。当蒸汽负荷变化引起水位大幅度波动时,蒸汽流量信号起着超前的作用,可使水

位还没出现变化时提前使调节阀动作,减小水位波动,从而改善控制品质。这样,系统就成

为双冲量控制。当给水压力波动时,给水流量将相应变化,双冲量控制方法只有当水位发生

变化后才能进行控制,因此就不能迅速克服给水压力变化对水位的影响。为此,可再引入给

水流量信号,组成三冲量控制回路,如图 7-1 所示。

图 7-1 三冲量给水控制系统原理图

2. 燃烧控制系统 燃烧控制系统的功能是控制炉膛的燃料和空气输入量,或控制燃烧率,以适应锅炉负荷

的变化。对锅炉运行和控制系统来说,锅炉出口蒸汽压力的变化经常作为燃料能量的输入和

蒸汽能量的输出之间不平衡的标志。引起蒸汽压力变化的因素很多,其中主要的扰动量是燃

料量的改变(内扰)和蒸汽流量的改变(外扰)。燃烧控制系统的基本要求是:迅速适应外界

负荷需求的变化,及时消除锅炉燃料的自发扰动,维持调节过程中各被调量在允许的范围内,

保证锅炉运行的安全性和经济性。

燃烧控制系统一般包括燃料控制、送风控制、引风控制 3 个子系统。燃料控制子系统中,

蒸汽压力的实际值相对于其设定值的偏差被输入到蒸汽压力控制器,经控制运算后输出调整

锅炉燃烧率的指令信号;燃料控制器根据锅炉燃烧率的指令信号的变化调整入炉燃料量。同

时,锅炉燃烧率的指令信号也加入到送风控制子系统中,进行送风量调整。为保证燃烧过程

的经济性,即保证燃烧过程合适的燃料与风量的比例,常采用具有烟气氧量校正调节的送风

Page 166: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–158–

控制系统组成有燃料量前馈调节的串级控制系统,在保证送风量与燃料量基本成比例的粗调

的基础上,进一步通过氧量校正对送风量进行调节,保证烟气中氧量等于设定值,实现燃烧

经济性的细调。引风控制子系统的任务是通过调整锅炉引风量,保证炉膛负压在规定的范围

内。送风量是引起负压变化的主要原因,可将送风量作为前馈信号引入引风调归器,提高引

风系统的稳定性,减小炉膛负压的动态偏差。

3. 锅炉过热蒸汽温度控制系统 锅炉过热蒸汽温度控制系统的任务是维持过热器出口蒸汽温度在允许范围内,并保护过

热器,使过热器管壁温度不超过允许的工作温度。影响过热蒸汽温度的因素主要是减温水扰

动、烟气热量扰动和蒸汽流量的变化。减温水量扰动时,过热器是一个有纯滞后的多容对象。

包括烟气流速和温度扰动的烟气侧热量扰动同时发生在全部过热器中,传递滞后很小。其动

态特性比减温水扰动的特性好得多。

过热蒸汽温度控制一般采用两种方法,一是烟气侧热量调节方法,二是减温水流馈调节

方法。在与过热器通道并联的旁路烟道中安装可调挡板,通过挡板开度控制经过过热器的烟

气量,即可调节烟气热量。另外,通过移动炉膛中燃烧火焰的中心,改变辐射受热面和对流

受热面的吸热量分配比例,也可以改变进入过热器的烟气温度,实现烟气侧热量调节。这两

种方法各有利弊。用改变减温水量来调节过热器出口蒸汽温度,从动态特性上看虽不理想,

但设备简单,因此应用较多。减温器有表面式和喷水式两种,从控制角度考虑,在保证过热

器材料安全的前提下,应将减温器尽量安装在靠近蒸汽出口处。

4. 基本锅炉控制系统 综上所述,主蒸汽压力控制、燃烧控制、炉膛负压控制和水位控制有机地结合,就构成

了典型的锅炉基本控制系统,如图 7-2 所示(图中未包括过热蒸汽温度控制部分)。在这个系

统中,水位采用二冲量控制方法,汽压控制采用串级控制方法,副回路为燃烧控制回路,炉

膛负压为单闭环控制回路,其前馈量取自汽压串级主同路的输出。蒸汽流量信号与串级主回

路的输出合成后,既作为炉膛负压控制的前馈量,也作为燃烧控制的给定值,保持最佳的空/

燃比。氧化锆传感器可以实时监测烟气含氧量的变化,并通过氧量控制回路不断修正空/燃比

系数。

图 7-2 基本锅炉控制系统原理图

Page 167: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 7 章 锅炉燃烧自动控制系统

–159–

随着自动化技术的发展,锅炉控制系统取得了很大进展,已开发出许多适应不同锅炉不

同要求的控制系统,其中包括近年来在实践中获得成功的新控制方法。

7.2.2 工业锅炉控制系统

对工业锅炉控制设备和系统进行改造,可提高锅炉的生产效率、节约能源、减轻工人的

劳动强度。改善工作条件,减少环境污染,是锅炉制造和运行技术发展的主要方向之一。

工业锅炉大多采用测量蒸汽压力来控制送风量和给煤量的方法。由于这种方法滞后太大,

给控制系统的运行带来许多困难。从时间上看,炉膛温度比蒸汽压力对燃料量变化的响应超

前得多。因此,可以把炉膛温度与蒸汽压力串级,组成热负荷控制系统。蒸汽压力与炉膛温

度串级的热负荷控制系统如图 7-3 所示。

图 7-3 蒸汽压力与炉膛温度串级系统的热负荷控制

要使炉膛温度在一定给煤量的情况下始终保持最高值,必须满足两个条件:首先是负荷

要求,它根据用汽量大小和炉膛所要达到的目标温度来控制给煤量和送风量;其次是排烟 CO

含量校正,它和氧量校正一样,是监视燃烧状况的手段,但这种方法可以排除由于烟道漏风

等造成的氧量与燃烧状况不符的扰动。

7.2.3 循环流化床锅炉控制

循环流化床锅炉具有高效、低污染的性能和特点,在世界范围内受到广泛的重视。将成

为未来燃煤锅炉的主力军,但是在商业化和大型化的过程中还存在许多需要解决的问题。循

环流化床锅炉除了本体设计和结构本身存在的问题外,在热工控制方面的问题已经成为其推

广应用的主要障碍之一。循环流化床锅炉是一个分布参数、非线性、时变、多变量强耦合的

控制对象,其自动控制系统比一般的锅炉更加复杂。由于循环流化床锅炉燃烧特点的复杂性,

使得建立燃烧数学模型十分困难。对一般锅炉和其他过程控制对象行之有效的常规控制方法

难以保证循环流化床锅炉各项控制指标的实现。

Page 168: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–160–

1. 循环流化床锅炉热工自动控制系统 一般循环流化床锅炉热工自动控制系统包括汽包水位控制回路、过热汽温控制回路、主

蒸汽压力控制回路、床料温度控制回路、床料高度控制回路、二级返料回料控制回路、炉膛

负压控制川路、烟气含氧量控制回路、烟气 SO2 含量控制回路。

不同类型循环流化床锅炉的热工自动控制系统具体的控制形式是不同的。对于具有外置

式换热器的循环流化床锅炉主蒸汽压力自动控制系统有“燃料-空气”汽压控制、具有氧量校

正的汽压控制、采用氧量信号的汽压控制反、采用“热量-氧量”信号的汽压控制系统几种方

式。其中采用“热量-氧量”方式的循环流化床锅炉在本体结构上很好地解决了蒸汽压力与床

料温度在控制回路间的紧密耦合关系,可以采用风/煤比调节主蒸汽压力,采用进入外置式换

热器循环灰量来调节料床温度。因此,料床温度自动控制系统为常规单回路反馈控制系统,

床料高度和二级返料回料自动控制系统则采用常规单回路反馈控制系统。由于 SO2 含量控制

回路时间延迟较大,所以烟气 SO2 含量自动控制系统一般采用纯滞后预估补偿控制系统,也

有采用其他控制方式的。

2. 循环流化床锅炉燃烧过程自动控制系统 循环流化床锅炉燃烧过程自动控制的基本任务是使燃料燃烧所提供的热量适应锅炉蒸汽

负荷的需要,同时还要保证锅炉安全经济运行。每台锅炉燃烧过程的具体控制任务及控制系

统的选择因燃料种类、燃烧设备以及锅炉运行方式不同而有所区别,燃烧控制系统的任务归

纳起来有如下几个方面。

(1)维持汽压(如果是一台锅炉运行,则维持过热器出口汽压;如果是几台锅炉并列运

行,则维持母管汽压)。汽压的变化表示锅炉的蒸汽产量和负荷的要求不相适应,这时必须相

应地改变燃料的供应量,以改变锅炉的蒸汽产量。

(2)保证锅炉燃烧过程的经济性。当燃料量改变后,必须相应地调节送风量,使其与燃

料量相符合,保证燃烧过程有较高的经济性。

(3)引风量与送风量相配合以保证炉膛压力在某一定值(对于负压炉一般为 18~48Pa)。

炉膛压力的高低,关系到锅炉的安全经济运行。

(4)床层温度是一个能够直接影响锅炉安全连续运行的重要控制参数,同时也直接影响

着锅炉运行中的脱硫效率及 NOx 产量。一般床层温度控制在 850℃左右,这个温度是实现炉

上脱硫的最佳温度,同时 NOx 的产生量也比较小。床层温度过低不但使锅炉燃烧效率下降,

而且使锅炉运行不稳定,容易灭火。床层温度过高会使炉内脱硫效率下降,NOx 的产生量大

大增加,同时容易造成炉膛床料结渣,使循环流化床锅炉无法循环流化燃烧。若发生炉膛料

床结渣的情况则必须停炉。由此可见,床层温度参数的控制极为重要。

(5)床高控制与锅炉的安全连续运行密切相关。床高控制也就是控制床层的料层厚度。

料层太厚,会把一次风的“风头”压住,使炉料不能达到完全流化的状态。料层太薄,不能

满足带负荷的要求。

(6)返料回灰量控制。该量控制的好坏,直接影响循环流化床锅炉的循环效率,另外也

对床层温度有影响。

循环流化床锅炉燃烧的过程和上述 6 项控制任务是不可分开的。可以用 6 个控制器来控

制 6 个调节变量(燃料量 M、送风量 V1、引风量 KS、次风量 V2、排渣量 M1 以及反料器回灰

量 M2)以维持 6 个被调整(汽压 p、床层温度 T、炉膛负压 St、过量空气系数 a 或最佳含氧

Page 169: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 7 章 锅炉燃烧自动控制系统

–161–

量 O2、床高 H1 和回灰量 H2)量,每个控制器控制 1 个被调量。6 个控制系统相互协调不可

分割。

3. 并列运行锅炉燃烧控制系统基本方案 组成燃烧控制系统的基本原则首先是要求能迅速地适应外部负荷的扰动,并且在动态过

程和静态工况下能够保证燃烧的经济性及各被控参数在允许的指标范围内。下面讨论一种并

列运行锅炉燃烧控制方案—“燃料-空气”燃烧控制系统。

该系统以控制燃料量和空气量的比例来保证燃烧的经济性,如图 7-4 所示,燃料控制器

C2 接受负荷需求信号。床温控制器 C 的输出信号和燃料量的反馈信号 M,其任务是使得燃料

与负荷需求相适应。床温控制器 C3 接收床温变送器输出信号和经过负荷(蒸汽流量)修正的

给定值信号、采用蒸汽流量修正给定值,使之能够随负荷的变化而变化(因为循环流化床锅

炉的负荷与床层温度相对应)。控制器 C3 的任务是使床温与负荷需求相适应,同时控制床温

在规定的范围内,并要求床温控制器是有差调节。一次风控制器 C4 和二次风控制器 C5 接收

负荷需求信号,同时分别接收一次风量 V1 和二次风量 V2 的反馈信号,其任务是使送风量与

负荷需求相适应,从而间接地使送风量与燃料量成适当比例,保证燃烧的经济性。负压控制

器 C6 接收炉膛负压信号 ST ,当 ST 偏离给定值时,它控制引风量 VS,维持负压 ST 在给定值。

床高控制器 C7 接收床料差压信号∆p1 和经过床温、蒸汽流量修正的给定值信号,其任务是使

床高与负荷需求和床温需求相适应,维持床高在给定值。床高控制不但与料层差压相关,而

且还与负荷及床温有关。

图 7-4 循环流化床锅炉“燃料-空气”燃烧控制系统

如果对“燃料-空气”燃烧控制系统略加改造,在二次风控制系统中串入一个氧量校正控

制器 C8,即组成具有氧量校正的燃烧控制系统。在该系统中,氧量校正控制器 C8 接收烟气

含氧量测量信号。由于最佳含氧量与锅炉负荷有关,一般负荷增加,最佳含氧量减少,故通

过一个函数转换器对它进行修正。经过负荷修正的氧量信号进入 C8 控制器,与最佳含氧量给

定值比较,当产生偏差时,C8 控制器输出信号给二次风控制器 C5,进行风量校正。一次风控

制器 C4 不参加含氧量校正控制,因为一次风的变化对床温影响较大,对床高控制也有较大影

响。为了保证送风控制和引风控制协调进行,以减少炉膛负压的动态偏差,由送风系统经补

偿装置加一前馈信号送入引风控制器。该补偿装置可以是一个微分环节,动态时前馈补偿信

号发挥作用,静态时微分信号消失,炉膛负压仍由 C6 控制。

Page 170: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–162–

采用“氧量信号”的燃烧控制反系统的构成如图 7-5 所示。

图 7-5 循环流化床锅炉采用“氧量信号”的燃烧控制反系统

循环流化床锅炉的床温是个十分重要的控制参数,直接影响着锅炉的安全连续运行。而

采用“床温信号”的燃烧控制反系统使床温得到较好控制,有利于锅炉的安全运行。如图 7-6

所示,当负荷发生变化时,先改变送风量,随后由于床温 T 的变化(床温对送风量变化的反

应是十分迅速的),燃料控制器 C4 改变给煤量。氧量校正控制器 C5 只对二次风 V2 进行校正,

一次风 V1 不参与校正。这个系统克服了采用“氧量信号”的燃烧控制反系统的严重缺点,使

燃料控制器提前动作,迅速适应负载变化的要求。当燃料侧发生自发性扰动时,床温信号能

很快反应燃料扰动,以便及时消除。

图 7-6 采用“床温信号”的燃烧控制反系统

4. 单元制运行锅炉的燃烧控制系统 单元制运行锅炉的燃烧控制系统除了汽压控制和床温控制与并列运行锅炉不同外,其他

控制均与并列运行锅炉相同。下面仅对单元制运行锅炉的汽压控制和床温控制进行介绍。

图 7-7 为校正信号的汽压控制系统图。该系统采用“炉-机”控制方案,是一个具有导前

微分信号的串级双回路系统。该系统以锅炉压力 Pb 作为中间点参数,并接收床温校正信号,

可以迅速消除燃料侧内扰的作用。在外扰(负荷扰动)时,锅炉压力的变化方向与机前压力

PT 变化的方向相同,起到加强主信号的作用,额外增加(或减少)一部分燃料,以补偿负荷

变化时蓄热量变化的需要,有利于改善负荷扰动下的调节品质。

当负荷发生扰动时,首先送风控制器 C1、C2 动作改变送风量 V1、V2,引起床温 T 的变

化。床温 T 变化后,由燃料控制器 C3 改变给煤量 M,这样便达到了调节气压 PT 的目的。这

Page 171: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 7 章 锅炉燃烧自动控制系统

–163–

种反系统保证送风量与负荷成适当的比例,以改变给煤量来维持床温。通过调节进入炉膛的

二次风量维持锅炉热效率最高来实现炉膛燃烧的经济性。该系统若带固定负荷,则仍采用常

规 PID 控制器;如果带变动负荷,则可以采用自整定控制器或自适应控制器。

图 7-7 具有“床温校正信号”的气压控制系统

7.2.4 循环流化床的几种炉型

循环流化床锅炉的主要炉型有 3 种:德国鲁奇公司的 Lurgi 型、原芬兰 Ahlstrom 公司(现

为美国 Foster Whoeler 公司)的 Pyroflow 型和德国 Babcock 公司研制的 Circofluid 型。图 7-8

所示是几种循环流化床燃烧装置。

图 7-8 循环流化床燃烧装置

1. FW 技术循环流化床锅炉 FW Pyroflow 型循环流化床锅炉最早应用于 1987 年的 Cdorado Ute 420t/h 循环流化床锅

炉。到目前为止,投运的循环流化锅炉,比较有代表性的是中国内江发电总厂的 410t/h CFB

锅炉、加拿大新斯可舍的 165MW 机组锅炉和波兰 Turow 电厂两台 235MW 机组的 CFB 锅炉。

此锅炉的主要技术特点如下。

(1)系统不设置灰冷却器,高温分离器分离下来的粒子直接由流化风送回燃烧室。

(2)燃烧室上部布置有过热器或再热器及翼墙。过热器或者再热器与气固流的接触面是

平面,气固流沿平坦的表面流动,可以较好地防止磨损。对于翼墙,由于气固流的流动方向

是沿着管子的轴线,因而翼墙表面也不易磨损。

(3)利用除尘器捕捉下来的冷灰作为飞灰再循环,同时也作为调节燃烧室床温主要手段。

Page 172: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–164–

(4)采用猪尾巴(Pigtail)形风嘴,可以防止风帽形风嘴的磨损及流化恶化。

(5)裤衩形回料管的设计使得煤、脱硫剂及循环物料在床面上能比较均匀地分布。

图 7-9 是循环流化床锅炉结构示意图。

图 7-9 循环流化床锅炉结构示意图

2. Lurgi 技术的循环流化床锅炉 Lurgi型循环流化床锅炉的应用始于世界上第一台100MW机组的Duisburg循环流化床锅炉。

图 7-10 所示为带外置换热器的循环流化床锅炉示意图。其主要技术特点是设置有专门的

循环冷灰床。冷灰床是一个流化床式换热器,床内布置有部分过热器和再热器,通过控制锥

形阀可以调节通过冷灰床的物料量,从而达到控制过热汽温和床温的目的。

图 7-10 带外置换热器的循环流化床锅炉示意图

Page 173: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 7 章 锅炉燃烧自动控制系统

–165–

3. Babcock 公司开发的 Circofluid 型循环流化床锅炉 该型锅炉的主要技术特点如下。

(1)烟气速度较低,限制在 3~3.5m/s。

(2)由于烟气速度低,故在整个流化床燃烧室内布置有膜式水冷壁、蒸发受热面、过热

器和省煤器等,锅炉呈塔式布置。出口烟气温度被冷却至约 300℃。

(3)取消高温分离器,以中温分离器代之,故尺寸大大缩小。

(4)循环倍率较低,约为 10~20 倍。

(5)由于烟气速度低,炉膛断面热负荷较低,故目前运行的锅炉容量都较小,而且不易

大型化。

到目前为止,改型最大容最锅炉为 1992 年在德国 Goleldel3burg 电厂投运的 290t/h 循

环流化床锅炉。图 7-11 所示为 Circofluid 型循环流化床锅炉示意图。

1-煤仓 2-给煤机 3-石灰石仓 4-给石灰石机 5-炉膛 6-省煤器 7-过热器 8-蒸发受热面 9-燃烧室 10-风室

11-排渣机 12-床料机 13-分离器 14-反料器 15-反料风机 16-循环灰冷却器 17-循环灰库 18-尾部烟道 19-

省煤器 20-空气预热器 21-除尘器 22-飞灰循环仓 23-飞灰循环给煤机 24-飞灰库 25-送风机 26-引风机 27-

烟气再循环风

图 7-11 Circofluid 型循环流化床锅炉示意图

7.2.5 循环流化床锅炉原理简述

煤和脱硫剂被送入炉膛后,迅速被炉膛内存在的大量隋性高温物料包围,着火燃烧,发

生脱硫反应,并在上升的烟气流作用下向炉膛上部运动,对水冷壁和炉内布置的其他受热面

放热。粗大粒子在被上升气流带入悬浮区后,在重力及其他外力作用下不断减速偏离主气流,

并最终形成附壁下降粒子流。被夹带出炉膛的粒子气固混合物进入高温分离器,大量固体物

料,包括煤粒和脱硫剂,被分离出来回送至炉膛,进行循环燃烧和脱疏。未被分离的极细粒

子则随气进入尾部烟道,进一步对受热面、空气预热器等放热冷却,经除尘器后,由引风机

送入烟囱排入大气。

Page 174: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–166–

燃料燃烧、气固流体对受热面放热、再循环与补充物料及排渣的热量带入与带出,形成

了热平衡,使炉膛温度维持在一定温度水平上。大量循环灰的存在,较好地维持了炉膛的温度

均匀性,增大了传热。而燃料成灰、脱硫剂与补充物料以及粗渣排除维持了炉膛的物料平衡。

煤质变化或加入石灰石均会改变炉内热平衡,故不同煤种的循环流化床锅炉在设计及运

行方面都有不同程度的差异。循环流化床锅炉在煤种变化时,会对运行调节带来影响。试验

表明,在更换煤种时各种煤种的燃尽率差别极大,必须重新调节分段送风和床温,使燃烧室

适应新的煤种。

以下介绍循环流化床锅炉的基本特点。

(1)低温的动力控制燃烧

循环流化床燃烧是一种在炉内使高速运动的烟气与其所携带的紊流扰动极强的固体颗粒

密切接触,并具有大量颗粒返混的流态化燃烧反应过程,同时,在炉外将绝大部分高温的固

体颗粒捕集,并将它们送回炉内再次参与燃烧过程,反复循环地组织燃烧,延长了燃料在炉

膛内燃烧的时间。大量高温隋性物料的存在改善了燃烧条件。在这种燃烧方式下,既可以实

现较高温度燃烧,也可以实现中温燃烧。由于添加了脱硫剂,炉内温度水平受脱硫最佳温度

的限制,一般为 850~900℃左右。这样的温度远低于普通煤粉炉中的温度水平,并低于一般

煤的灰熔点,这就免去了灰熔化带来的种种烦恼。这种“温燃烧”式有许多优点:炉内结渣

及碱金属析出均比煤粉炉要改善很多;对灰特性的敏感性减低,也无需很大空间去使高温灰

冷却下来;氮氧化物生成量低;可于炉内组织廉价而高效的脱硫工艺等。从燃烧反应动力学

角度看,循环流化床锅炉内的燃烧反应控制在动力燃烧区(或过渡区)内。由于循环流化床

锅炉内相对来说温度不高,并有大量固体颗粒的强烈混合,这种情况下的燃烧速率主要取决

于化学反应速率,也就是决定于温度水平,物理因素不再是控制燃烧速率的主导因素。循环

流化床锅炉内燃料的燃尽度很高,通常性能良好的循环流化床锅炉燃烧效率可达 98%~99%

以上。

(2)高速度、高浓度、高通量的固体物料流态循环过程

从图 7-12 可以看出,循环流化床锅炉内的固体物料(包括燃料、残炭、灰、脱硫剂和惰

性床料等)经历了由炉膛、分离器和返料装置所组成的外循环,同时有快速流态化的特点,

在炉膛内固体物料存在内循环。因此,循环流化床锅炉内的物料参与了外循环和内循环两种

循环运动。整个燃烧过程以及脱硫过程都是在这两种形式的循环运动动态过程中逐步完成的。

图 7-12 固体物料流态循环过程

Page 175: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 7 章 锅炉燃烧自动控制系统

–167–

7.3 锅炉控制系统工艺流程

根据设计要求将整个锅炉运行控制的全过程分成多个阶段:运行参数的初始化过程,在

这个过程中调用系统启动的函数;燃烧室中燃烧器的控制过程;废液输送泵、酸碱液喷嘴、

风机等执行机构的控制;通信过程;故障的处理过程;模拟量信号的采集过程。

下面对各个阶段进行简单的介绍。

(1)运行参数的初始化过程:在这个过程中,调用系统启动的函数,设置一些控制系统

运行所必要的参数。

(2)燃烧室中燃烧器的控制过程:在这个过程中,根据过程(6)所采集的各种现场信

号,通过计算处理控制燃烧室中燃烧器的运行。

(3)废液输送泵等执行机构的控制过程:与过程(2)相似。

(4)通信过程:PLC 与上位机监控系统进行通信,传送现场数据以及操作人员的指令。

(5)故障处理:智能地对现场一些故障进行初步处理。

(6)模拟量信号采集:完成对现场温度、压力等重要参数的采集过程。

7.4 锅炉燃烧自控系统 PLC 选型和资源配置

由于整个系统涉及的基本上是开关量,并且数量不多,所以选用了西门子 S7-200 系列

PLC CPU 226 作为控制器,并配置了模块 EM223 数字量输出模块作为扩展模块。详细的地

址定义如表 7-1 和表 7-2 所示。

表 7-1 开关量输入/输出地址

I/O 地址 说明 I/O 地址 说明

I0.0 余热锅炉水位低 Q1.4 引风机

I0.1 余热锅炉水位高 Q1.5 1#药剂输送泵

I0.2 余热锅炉水位极低 Q1.6 2#药剂输送泵

I0.3 余热锅炉水位极高 Q1.7 3#药剂输送泵

I0.4 1#燃烧器熄火 Q2.0 4#药剂输送泵

I0.5 余热锅炉压力高 Q2.1 药剂池搅拌电机

I0.6 余热锅炉压力极高 Q2.2 鼓风机

I0.7 2#燃烧器熄火 Q2.3 酸性废液输送泵

I1.0 上料提升机上限位 Q2.4 碱性废液输送泵

I1.1 上料提升机下限位 Q2.5 1#自吸泵

I1.2 3#燃烧器熄火 Q2.6 2#自吸泵

I1.3 沉淀池液位极低 Q2.7 3#自吸泵

I1.4 沉淀池液位低 Q3.0 软化自吸泵

I1.5 复位按钮 Q3.1 酸性废液喷嘴

Page 176: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–168–

续表

I/O 地址 说明 I/O 地址 说明

I1.6 沉淀池液位高 Q3.2 碱性废液喷嘴

I1.7 沉淀池液位极高 Q3.3 502 废液喷嘴

Q0.0 冷却塔 1#风扇电机 Q3.4

Q0.1 冷却塔 2#风扇电机 Q4.0 石灰池电磁阀

Q0.2 1#给水泵 Q4.1 1#燃烧器电源

Q0.3 2#给水泵 Q4.2 1#燃烧器小火

Q0.4 余热锅炉 1#给水泵 Q4.3 1#燃烧器大火

Q0.5 余热锅炉 2#给水泵 Q4.4 2#燃烧器电源

Q0.6 502 预处理搅拌电机 Q4.5 2#燃烧器小火

Q0.7 Q4.6 2#燃烧器大火

Q1.0 Q4.7 3#燃烧器电源

Q1.1 Q5.0 3#燃烧器小火

Q1.2 出渣机 Q5.1 3#燃烧器大火

Q1.3 Q5.2 备用

表 7-2 模拟量地址定义

地址 说明 地址 说明

AIW0 软水箱温度 AIW14 喷淋塔 2 出口烟道温度

AIW2 502 预处理罐温度 AIW16 喷淋塔 2 水温

AIW4 燃烧室 1 温度 AIW18 喷淋塔 2 水池温度

AIW6 炉膛负压 AIW20 余热锅炉压力

AIW8 燃烧室 2 温度 AIW22 引风机反馈信号

AIW10 锅炉出口温度 AIW24 鼓风机反馈信号

AIW12 喷淋塔 2 进口烟道温度 AIW26 工作油箱温度

7.5 自控系统 PLC 程序设计

按照第 7.3 节中工艺流程的要求,本节将对 PLC 的控制程序将做一个详细地说明。

PLC 上电第一次开始工作时,需要对一些具体的参数进行设置,对于一些程序中重要的

参数需要将备份数据读取出来,以便于程序的运行。

1. 运行参数初始化 程序参数初始化过程由网络 1~网络 3 实现。

网络 1~网络 3 的梯形图如图 7-13 所示。

Page 177: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 7 章 锅炉燃烧自动控制系统

–169–

图 7-13 网络 1~网络 3

网络 1~网络 3 的实现代码如下: BEGIN 网络 1 LD SM0.1 MOVB 16#09, SMB30 //设置波特率 9600,N,8,1 ATCH INT_0, 8 //设置中断,中断程序 0 MOVW 16#3032, VW104 //PLC 地址(01)0-30,1-31 MOVD 16#03030705, VD191 //VB191=3,VB192=3,7,5 R M0.0, 8 //初始化 MB0 MOVD 16#03030605, VD195 //接收错缓冲区 ENI 网络 2 LD SM0.7 = SM30.0 网络 3 LD M0.3 //接收正确 O M0.4 //接收错 CALL SBR_0 //答复计算机

2. 启动系统子程序 子程序调用部分由网络 4~网络 6 实现。网络 4 的梯形图如图 7-14 所示。

Page 178: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–170–

图 7-14 网络 4

网络 4 的实现代码如下: 网络 4 //子程序调用 // LD SM0.0 CALL SBR_1 CALL SBR_2 CALL SBR_3 CALL SBR_4

网络 5 省略。 网络 6 的梯形图如图 7-15 所示。

图 7-15 网络 6

Page 179: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 7 章 锅炉燃烧自动控制系统

–171–

网络 6 的实现代码如下: 网络 6 LD SM0.0 MOVR VD208, VD600 -R 5.0, VD600 MOVR VD212, VD604 -R 5.0, VD604 MOVR VD228, VD608 -R 5.0, VD608 MOVR VD236, VD612 -R 5.0, VD612 MOVR VD224, VD616 -R 5.0, VD616 MOVR VD232, VD620 -R 5.0, VD620

3. 燃烧器控制 程序开始运行。燃烧器控制由网络 7~网络 9 实现。

网络 7 的梯形图如图 7-16 所示。

图 7-16 网络 7

网络 7 的实现代码如下: 网络 7 // 系统启动 1#燃烧室燃烧器控制 // // 网络 COMMENTS // LD SM0.0 A M10.0 LPS

Page 180: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–172–

A M6.5 LPS S Q4.1, 1 AR< VD1216, VD600 S Q4.2, 1 LRD AR< VD1216, VD604 S Q4.3, 1 LRD AR> VD1216, VD208

R Q4.2, 2

LRD AR> VD1216, VD212 R Q4.3, 1 LPP A M14.1 R Q4.2, 2 LPP AN M6.5 R Q4.1, 3

网络 8 的梯形图如图 7-17 所示。

图 7-17 网络 8

网络 8 的实现代码如下: 网络 8 // 2#燃烧室 1#燃烧器控制 LD SM0.0 A M10.0 LPS A M11.1 LPS

Page 181: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 7 章 锅炉燃烧自动控制系统

–173–

S Q4.4, 1 AR< VD1416, VD608 S Q4.6, 1 LRD AR< VD1416, VD612 S Q4.5, 1 LRD AR> VD1416, VD228 R Q4.6, 1 LRD AR> VD1416, VD236 R Q4.5, 1 LPP A M14.2 R Q4.5, 2 LPP AN M11.1 R Q4.4, 3

网络 9 的梯形图如图 7-18 所示。

图 7-18 网络 9

网络 9 的实现代码如下: 网络 9 // 2#燃烧室 2#燃烧器控制 // LD SM0.0 A M10.0 LPS A M11.3 LPS

Page 182: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–174–

S Q4.7, 1 AR< VD1416, VD616 S Q5.1, 1 LRD AR< VD1416, VD620 S Q5.0, 1 LRD AR> VD1416, VD224 R Q5.1, 1 LRD AR> VD1416, VD232 R Q5.0, 1 LPP A M14.3 R Q5.0, 2 LPP AN M11.3 R Q4.7, 3

网络 10~网络 11 的梯形图如图 7-19 所示。网络 10 实现的是酸性废液泵的控制。网络 11

实现的是碱性废液输送泵的控制。

图 7-19 网络 10、11

网络 10、网络 11 的实现代码如下: 网络 10 // 酸性废液输送泵控制 // LD SM0.0 LPS A M10.0 A M10.2 S Q2.3, 1 LPP AN M10.2 R Q2.3, 1 网络 11 // 碱性废液输送泵控制

Page 183: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 7 章 锅炉燃烧自动控制系统

–175–

LD SM0.0 LPS A M10.0 A M10.4 S Q2.4, 1 LPP AN M10.4 R Q2.4, 1

网络 12 实现的是酸性喷嘴的控制、网络 13 实现的是碱性喷嘴的控制。其梯形图如图 7-20

所示。

图 7-20 网络 12、13

网络 12、网络 13 的实现代码如下: 网络 12 // 酸性废液喷嘴控制 // LD SM0.0 LPS A M10.0 A M10.6 S Q3.1, 1 LPP AN M10.6 R Q3.1, 1 网络 13 // 碱性废液喷嘴控制 // LD SM0.0 LPS A M10.0 A M1.0 S Q3.2, 1 LPP AN M1.0 R Q3.2, 1 R Q3.3, 1

Page 184: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–176–

网络 14 及网络 15 实现的是 502 废液喷嘴的控制。其梯形图如图 7-21 所示。

图 7-21 网络 14~网络 15

网络 14~网络 15 的实现代码如下: 网络 14 // 502 废液喷嘴控制 LD SM0.0 LPS A M10.0 A M1.2 S Q3.3, 1 LPP AN M1.2 网络 15 // 引风机、鼓风机、风门执行器控制 LD M10.0 LPS A M1.5 S Q1.4, 1 LRD A Q1.4 A M1.5 S Q2.2, 1 LRD AN M1.4 R Q2.2, 1 LPP AN M1.5 AN Q2.2 R Q1.4, 1

网络 16 实现的是出渣机的控制,其梯形图如图 7-22 所示。

图 7-22 网络 16

Page 185: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 7 章 锅炉燃烧自动控制系统

–177–

网络 16 的实现代码如下: 网络 16 // 出渣机控制 LD SM0.0 A M10.0 LPS A M1.6 S Q1.2, 1 LPP AN M1.6 R Q1.2, 1

网络 17 实现的是药剂输送泵、药剂池搅拌机控制。其梯形图如图 7-23 所示。

图 7-23 网络 17

网络 17 的实现代码如下: 网络 17 // 药剂输送泵、药剂池搅拌机控制 // LD SM0.0 LPS A M10.0 LPS

Page 186: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–178–

A M2.1 S Q1.5, 1 LRD A M2.3 S Q1.6, 1 LRD A M2.5 S Q1.7, 1 LRD A M2.7 S Q2.0, 1 LPP A M3.1 S Q2.1, 1 LPP LPS AN M2.1 R Q1.5, 1 LRD AN M2.3 R Q1.6, 1 LRD AN M2.5 R Q1.7, 1 LRD AN M2.7 R Q2.0, 1 LPP AN M3.1 R Q2.1, 1

网络 18 实现的是给水泵的控制。其梯形图如图 7-24 所示。

图 7-24 网络 18

网络 18 的实现代码如下: 网络 18 // 1#、2#给水泵控制 LD SM0.0 LPS

Page 187: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 7 章 锅炉燃烧自动控制系统

–179–

A M10.0 LPS A M3.3 S Q0.2, 1 LPP A M3.5 S Q0.3, 1 LPP LPS AN M3.5 R Q0.3, 1 LPP AN M3.3 R Q0.2, 1

网络 19 实现蒸汽电磁阀、搅拌电机的控制,其梯形图如图 7-25 所示。

图 7-25 网络 19

网络 19 的实现代码如下: 网络 19 // 502 预处理罐蒸汽电磁阀、搅拌电机控制 LD SM0.0 LPS A M10.0 LPS AR<= VD1116, VD204 S Q3.5, 1 LPP A M3.7 S Q0.6, 1 LPP LPS AN M3.7 R Q0.6, 1 LPP AR>= VD1116, VD200 R Q3.5, 1

网络 20 实现余热锅炉给水泵的控制。其梯形图如图 7-26 所示。

Page 188: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–180–

图 7-26 网络 20

网络 20 的实现代码如下: 网络 20 // 余热锅炉给水泵控制 LD SM0.0 LPS A M10.0 LPS LD M6.1 O M16.2 ALD AN M16.1 S Q0.4, 1

Page 189: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 7 章 锅炉燃烧自动控制系统

–181–

LRD A Q0.4 S M16.0, 1 LRD LD M6.3 O M16.2 ALD AN M16.0 S Q0.5, 1 LPP A Q0.5 S M16.1, 1 LPP LPS A I0.0 AN M16.3 = M16.2 LRD A I0.3 AN M16.3 R Q0.4, 2 LRD A M6.2 R Q0.4, 1 S M16.3, 1 R M16.0, 1 LRD A M6.4 R Q0.5, 1 S M16.3, 1 R M16.1, 1 LPP LD M6.1 O M6.3 ALD R M16.3, 1

网络 21 实现自吸泵的控制,其梯形图如图 7-27 所示。

图 7-27 网络 21

Page 190: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–182–

网络 21 的实现代码如下: 网络 21 // 自吸泵控制 // LD SM0.0 LPS A M10.0 LPS A M4.1 S Q2.5, 1 LRD A M4.3 S Q2.6, 1 LPP A M4.5 S Q2.7, 1 LPP LPS AN M4.1 R Q2.5, 1 LRD AN M4.3 R Q2.6, 1 LPP AN M4.5 R Q2.7, 1

网络 22 实现喷淋塔的控制,其梯形图如图 7-28 所示。

图 7-28 网络 22

网络 22 的实现代码如下: 网络 22 // 喷淋塔电动阀控制 LD M10.0 MOVW AIW12, AQW4 MOVW AIW14, AQW12

Page 191: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 7 章 锅炉燃烧自动控制系统

–183–

S Q3.6, 2

网络 23 实现软水冷却泵的控制。其梯形图如图 7-29 所示。

图 7-29 网络 23

网络 23 的实现代码如下: 网络 23 // 软水冷却泵控制 LD SM0.0 LPS A M10.0 A M4.7 S Q3.0, 1 LPP AN M4.7 R Q3.0, 1

网络 24 实现的是上提料机的控制。其梯形图如图 7-30 所示。

图 7-30 网络 24

网络 24 的实现代码如下: 网络 24 // 上料提升机控制 LD SM0.0 LPS

Page 192: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–184–

A M10.0 LPS A M2.2 S Q3.4, 1 LRD AN I1.0 R Q3.4, 1 LRD A M5.2 S Q5.5, 1 LPP AN I1.1 R Q5.5, 1 LPP A M1.3 R Q3.4, 1 R Q5.5, 1

网络 25 实现冷却塔风扇电机的控制,其梯形图如图 7-31 所示。

图 7-31 网络 25

网络 25 的实现代码如下: 网络 25 // 冷却塔风扇电机 // LD SM0.0 LPS A M10.0 LPS A M5.3 S Q0.0, 1 LPP A M5.5 S Q0.1, 1 LPP LPS AN M5.3 R Q0.0, 1 LPP

Page 193: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 7 章 锅炉燃烧自动控制系统

–185–

AN M5.5 R Q0.1, 1

网络 26 实现石灰池电磁阀的控制,其梯形图如图 7-32 所示。

图 7-32 网络 26

网络 26 的实现代码如下: 网络 26 // 石灰池电磁阀控制 LD SM0.0 LPS A M10.0 LD M5.7 O I1.4 ALD S Q4.0, 1 R M3.6, 1 LPP LD M6.0 O I1.6 ALD R Q4.0, 1 S M3.6, 1 END_ORGANIZATION_BLOCK

4. 通信程序 下面是一段实现通信的子程序。本部分程序由网络 1~网络 11 组成。

网络 2 实现通信的初始化过程,网络 2 的梯形图如图 7-33 所示(网络 1 梯形图省略)。

网络 1 和网络 2 的代码如下: BEGIN 网络 1 // SBR 0 网络 2 LDB= VB100, 1 //读指令 A M0.3 //BCC 正确 ATH VB120, VB110, 10 FILL 16#3030, VW152, 8 //将发送缓冲区清零 HTA *VD110, VB152, VB114 MOVW 16#0306, VW150 //置首标 3,6

Page 194: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–186–

MOVB 5, VB170 //置结束符号,5 MOVB 21, VB149 //置发送字节数

图 7-33 网络 2

网络 3 负责计算校验和,网络 3 的梯形图如图 7-34 所示。

图 7-34 网络 3

网络 3 的实现代码如下: 网络 3 // 计算校验和

Page 195: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 7 章 锅炉燃烧自动控制系统

–187–

LDB= VB100, 1 A M0.3 MOVD &VB152, AC1 //指向发送缓冲区头 MOVB 0, VB106 //初始化发送 BCC

网络 4 的梯形图如图 7-35 所示。

图 7-35 网络 4

网络 4 的实现代码如下: 网络 4 LDB= VB100, 1 A M0.3 FOR AC0, +0, +15 //开始计算 BCC

网络 5 的梯形图如图 7-36 所示。

图 7-36 网络 5

网络 5 的实现代码如下: 网络 5 LD SM0.0 XORB *AC1, VB106

网络 6 的梯形图如图 7-37 所示。

图 7-37 网络 6

网络 6 的实现代码如下: 网络 6 LD SM0.0 INCD AC1

网络 7、8 实现数据的发送过程。网络 7、8 的梯形图如图 7-38 所示。

Page 196: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–188–

图 7-38 网络 7

网络 7、8 的实现代码如下: 网络 7 NEXT 网络 8 LD M0.3 AB= VB100, 1 HTA VB106, VB168, 2 //将 BCC HTA XMT VB149, 0 //开始发送 R M0.3, 1

网络 9 实现数据的接收过程。网络 9 的梯形图如图 7-39 所示。

图 7-39 网络 9

以下是网络 9 的实现代码:

Page 197: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 7 章 锅炉燃烧自动控制系统

–189–

网络 9 LDB= VB100, 2 //计算机写数据 A M0.3 //BCC 正确 ATH VB120, VB110, 10 //分离出 PLC 区地址信息及字节数 ATH VB130, *VD110, VB114 //将数据直接转换到直接地址 XMT VB195, 0 //返回给计算机 3,6,5 R M0.3, 1

网络 10 实现的是通信错误的反馈过程。网络 10 的梯形图如图 7-40 所示。

图 7-40 网络 10

网络 10 的实现代码如下: 网络 10 LD M0.4 //计算机来的数据 BCC 错返回给计算机 3,7,5 XMT VB191, 0 R M0.4, 1 网络 11 // RET END_SUBROUTINE_BLOCK

5. 系统初始化 下面的这段代码是系统初始化的子程序。由网络 1~网络 4 组成,由于梯形图比较简单,

重复性很强,所以这里不列举梯形图了。下面是网络 1~网络 4 的实现代码。 BEGIN 网络 1 // 初始化 // // 网络 COMMENTS LD SM0.1 MOVB 0, VB2600 MOVD +0, VD1004 MOVD +0, VD1104 MOVD +0, VD1204 MOVD +0, VD1304 MOVD +0, VD1404 MOVD +0, VD1504 MOVD +0, VD1604 MOVD +0, VD1704 MOVD +0, VD1804 MOVD +0, VD1904 MOVD +0, VD2004 MOVD +0, VD2104

Page 198: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–190–

MOVD +0, VD2204 MOVD +0, VD2304 MOVD +0, VD2404 网络 2 LD SM0.1 MOVD +0, VD2504 MOVD +0, VD1008 MOVD +0, VD1108 MOVD +0, VD1208 MOVD +0, VD1308 MOVD +0, VD1408 MOVD +0, VD1508 MOVD +0, VD1608 MOVD +0, VD1708 MOVD +0, VD1808 MOVD +0, VD1908 MOVD +0, VD2008 MOVD +0, VD2108 MOVD +0, VD2208 MOVD +0, VD2308 MOVD +0, VD2408 网络 3 LD SM0.1 MOVD +0, VD2508 MOVD +0, VD1012 MOVD +0, VD1112 MOVD +0, VD1212 MOVD +0, VD1312 MOVD +0, VD1412 MOVD +0, VD1512 MOVD +0, VD1612 MOVD +0, VD1712 MOVD +0, VD1812 MOVD +0, VD1912 MOVD +0, VD2012 MOVD +0, VD2112 MOVD +0, VD2212 MOVD +0, VD2312 MOVD +0, VD2412 网络 4 LD SM0.1 MOVD +0, VD2512 R Q0.0, 44 R M16.0, 2 END_SUBROUTINE_BLOCK

6. 故障的处理过程 下面这部分程序是故障处理的子程序。由网络 1~网络 25 组成。

网络 1 和网络 2 的梯形图如图 7-41 所示。

网络 1 及网络 2 的实现代码如下: BEGIN

Page 199: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 7 章 锅炉燃烧自动控制系统

–191–

网络 1 // 软水箱温度 传感器故障 LD SM0.0 LPS LDR>= VD1016, 205.9 OR<= VD1016, 0.0 ALD TON T100, +100 LPP A T100

= M12.0

网络 2 // 502 预处理罐温度传感器故障 LD SM0.0 LPS

图 7-41 网络 1~网络 2

LDR>= VD1116, 205.9 OR<= VD1116, 0.0 ALD TON T101, +100 LPP A T101 = M12.1

网络 3 负责处理 1#燃烧器温度传感器故障。网络 3 的梯形如图 7-42 所示。

图 7-42 网络 3

Page 200: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–192–

网络 3 的实现代码如下: 网络 3 // 1#燃烧器温度传感器故障 LD SM0.0 LPS LDR>= VD1216, 1132.0 OR<= VD1216, 0.0 ALD TON T102, +100 LPP A T102 = M12.2

网络 4 负责处理炉膛负压传感器故障。网络 4 的梯形图如图 7-43 所示。

图 7-43 网络 4

网络 4 的实现代码如下: 网络 4 // 炉膛负压传感器故障 LD SM0.0 LPS LDR>= VD1316, 200.0 OR<= VD1316, 0.0 ALD TON T103, +100 LPP A T103 = M12.3

网络 5 负责处理 2#燃烧室 2#燃烧器温度传感器故障。网络 5 的梯形图如图 7-44 所示。

图 7-44 网络 5

Page 201: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 7 章 锅炉燃烧自动控制系统

–193–

网络 5 的实现代码如下: 网络 5 // 2#燃烧室 2#燃烧器温度传感器故障 LD SM0.0 LPS LDR>= VD1416, 1338.0 OR<= VD1416, 0.0 ALD TON T104, +100 LPP A T104 = M12.4

网络 6 负责处理锅炉出口温度传感器故障。网络 6 的梯形图如图 7-45 所示。

图 7-45 网络 6

网络 6 的实现代码如下:

网络 6 // 锅炉出口温度传感器故障

// LD SM0.0 LPS LDR>= VD1516, 823.0 OR<= VD1516, 0.0 ALD TON T105, +100 LPP A T105 = M12.5

网络 7 负责处理 1#喷淋塔出口温度传感器故障。网络 7 的梯形图如图 7-46 所示。

图 7-46 网络 7

Page 202: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–194–

网络 7 的实现代码如下: 网络 7 // 1#喷淋塔出口温度传感器故障 LD SM0.0 LPS LDR>= VD1616, 411.8 OR<= VD1616, 0.0 ALD TON T106, +100 LPP A T106 = M12.6

网络 8 负责处理 2#喷淋塔出口温度传感器故障。网络 8 的梯形图如图 7-47 所示。

图 7-47 网络 8

网络 8 的实现代码如下: 网络 8 // 2#喷淋塔出口温度传感器故障 LD SM0.0 LPS LDR>= VD1716, 308.9 OR<= VD1716, 0.0 ALD TON T107, +100 LPP A T107 = M12.7 网络 9 // 2#喷淋塔水温温度传感器故障 LD SM0.0 LPS LDR>= VD1816, 205.9 OR<= VD1816, 0.0 ALD TON T108, +100 LPP A T108 = M13.0

网络 9 负责处理 2#喷淋塔水温度传感器故障,网络 10 处理喷淋塔水池温度传感器故障。

网络 9 和网络 10 的梯形图如图 7-48 所示。

Page 203: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 7 章 锅炉燃烧自动控制系统

–195–

图 7-48 网络 9~网络 10

网络 9、网络 10 的实现代码如下: 网络 10 // 喷淋塔水池温度传感器故障 LD SM0.0 LPS LDR>= VD1916, 205.9 OR<= VD1916, 0.0 ALD TON T109, +100 LPP A T109 = M13.1

网络 11 负责处理引风机反馈故障。其梯形图如图 7-49 所示。

图 7-49 网络 11

网络 11 的实现代码如下:

Page 204: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–196–

网络 11 // 引风机反馈故障 LD SM0.0 LPS LDR>= VD2316, 90.0 OR<= VD2316, 0.0 ALD TON T111, +100 LPP A T111 = M13.3

网络 12 负责处理鼓风机反馈故障,网络 12 的梯形图如图 7-50 所示。

图 7-50 网络 12

网络 12 的实现代码如下: 网络 12 // 鼓风机反馈故障 LD SM0.0 LPS LDR>= VD2416, 90.0 OR<= VD2416, 0.0 ALD TON T112, +100 LPP A T112 = M13.4

网络 13 负责处理工作油位计故障。网络 13 的梯形图如图 7-51 所示。

图 7-51 网络 13

网络 13 的实现代码如下:

Page 205: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 7 章 锅炉燃烧自动控制系统

–197–

网络 13 // 工作油位计故障 LD SM0.0 LPS LDR>= VD2516, 1500.0 OR<= VD2516, 0.0 ALD TON T113, +100 LPP A T113 = M13.5

网络 14 负责处理 1#燃烧室超温故障。网络 14 的梯形图如图 7-52 所示。

图 7-52 网络 14

网络 14 的实现代码如下: 网络 14 // 1#燃烧室超温故障 // LD SM0.0 MOVD VD208, VD260 +D +200, VD260 AR>= VD1216, VD260 = M13.6

网络 15 负责处理 2#燃烧室超温故障,网络 15 的梯形图如图 7-53 所示。

图 7-53 网络 15

网络 15 的实现代码如下: 网络 15 // 2#燃烧室超温故障 // LD SM0.0 MOVD VD236, VD264 +D +100, VD264 AR>= VD1416, VD264 = M13.7

Page 206: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–198–

网络 16 负责处理 1#燃烧器熄火故障,网络负责 17 处理 2#燃烧室 1#燃烧器熄火故障,

网络负责 18 处理 2#燃烧室 2#燃烧器熄火故障。网络 16~18 的梯形图如图 7-54 所示。

图 7-54 网络 16—18

网络 16~网络 18 的实现代码如下: 网络 16 // 1#燃烧器熄火故障 // LD I0.4 = M14.1 网络 17 // 2#燃烧室 1#燃烧器熄火故障 // LD I0.7 = M14.2 网络 18 // 2#燃烧室 2#燃烧器熄火故障 // LD I1.2 = M14.3

网络 19 负责处理余热锅炉水位极低故障,网络负责 20 处理工作油位低故障,网络 21

负责处理沉淀池液位低故障,网络负责 22 处理沉淀池液位高故障。其梯形图如图 7-55 所示。

图 7-55 网络 19~网络 22

Page 207: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 7 章 锅炉燃烧自动控制系统

–199–

网络 19~网络 22 的实现代码如下: 网络 19 // 余热锅炉水位极低 // LD I0.2 = M14.4 网络 20 // 工作油位极低故障 // LDR<= VD2516, VD240 = M14.6 网络 21 // 沉淀池液位极低 // LDN I1.3 = M14.7 网络 22 // 沉淀池液位极高 // LDN I1.7 = M15.0

网络 23 负责处理余热锅炉压力过高的故障,网络 23 的梯形图如图 7-56 所示。

图 7-56 网络 23

网络 23 的实现代码如下: 网络 23 // 余热锅炉压力过高 // LDN I0.6 = M15.3

网络 24 省去。

网络 25 的梯形图如图 7-57 所示。

图 7-57 网络 24

Page 208: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–200–

网络 25 的实现代码如下: 网络 25 // 故障消除 // LD SM0.0 LPS A M2.4 LPS AN T115 TON T114, +100 LPP AN M15.5 AN M15.2 = M16.4 LRD LPS A T114 S M15.5, 1 LRD A M15.5 TON T115, +40 LPP A T115 R M15.5, 1 LPP A I1.5 R M2.4, 1 R M15.2, 1

以下是模拟量的处理过程。

7. 模拟量采集处理

以下是模拟量处理的部分。由网络 1~网络 23 组成,网络 1 的梯形图如图 7-58 所示。

图 7-58 网络 1

网络 1 的实现代码如下: 网络 1 // PLC-MCGS 数据处理(保留一位小

Page 209: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 7 章 锅炉燃烧自动控制系统

–201–

//数点) 软水箱温度处理 // LD SM0.0 MOVR VD1016, VD1020 *R 10.0, VD1020 TRUNC VD1020, VD1020

MOVW VW1022 VW300

网络 2 负责处理预处理罐温度。其梯形图如图 7-59 所示。

图 7-59 网络 2

网络 2 的实现代码如下: 网络 2 // 502 预处理罐温度处理 LD SM0.0 MOVR VD1116, VD1120 *R 10.0, VD1120 TRUNC VD1120, VD1120 MOVW VW1122, VW302

网络 3 负责处理燃烧室 1 温度,其梯形图如图 7-60 所示。

图 7-60 网络 3

Page 210: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–202–

网络 3 的实现代码如下: 网络 3 // 燃烧室 1 温度处理 // LD SM0.0 MOVR VD1216, VD1220 *R 10.0, VD1220 TRUNC VD1220, VD1220 MOVW VW1222, VW304

网络 4 负责处理炉膛负压信号,其梯形图如图 7-61 所示。

图 7-61 网络 4

网络 4 的实现代码如下: 网络 4 // 炉膛负压处理 // LD SM0.0 MOVR VD1316, VD1320 *R 10.0, VD1320 TRUNC VD1320, VD1320 MOVW VW1322, VW306

网络 5 负责处理燃烧室 2 温度,其梯形图如图 7-62 所示。

图 7-62 网络 5

Page 211: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 7 章 锅炉燃烧自动控制系统

–203–

网络 5 的实现代码如下: 网络 5 // 燃烧室 2 温度处理 // LD SM0.0 MOVR VD1416, VD1420 *R 10.0, VD1420 TRUNC VD1420, VD1420 MOVW VW1422, VW308

网络 6 负责处理锅炉烟道温度,其梯形图如图 7-63 所示。

图 7-63 网络 6

网络 6 的实现代码如下: 网络 6 // 锅炉出口烟道温度处理 // LD SM0.0 MOVR VD1516, VD1520 *R 10.0, VD1520 TRUNC VD1520, VD1520 MOVW VW1522, VW310

网络 7 负责处理喷淋塔 2 出口烟道温度,其梯形图如图 7-64 所示。

图 7-64 网络 7

Page 212: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–204–

网络 7 的实现代码如下: 网络 7 // 喷淋塔 2 出口烟道温度处理 LD SM0.0 MOVR VD1616, VD1620 *R 10.0, VD1620 TRUNC VD1620, VD1620 MOVW VW1622, VW312

网络 8 负责处理喷淋塔 2 烟道进口温度,其梯形图如图 7-65 所示。

图 7-65 网络 8

网络 8 的实现代码如下: 网络 8 // 喷淋塔 2 进口烟道温度处理 LD SM0.0 MOVR VD1716, VD1720 *R 10.0, VD1720 TRUNC VD1720, VD1720 MOVW VW1722, VW314

网络 9 的梯形图如图 7-66 所示。

图 7-66 网络 9

Page 213: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 7 章 锅炉燃烧自动控制系统

–205–

网络 9 的实现代码如下: 网络 9 // 喷淋塔 2 水温度处理 LD SM0.0 MOVR VD1816, VD1820 *R 10.0, VD1820 TRUNC VD1820, VD1820 MOVW VW1822, VW316

网络 10 负责处理喷淋塔 2 水池温度。其梯形图如图 7-67 所示。

图 7-67 网络 10

网络 10 的实现代码如下: 网络 10 // 喷淋塔 2 水池温度处理 LD SM0.0 MOVR VD1916, VD1920 *R 10.0, VD1920 TRUNC VD1920, VD1920 MOVW VW1922, VW318

网络 11 的梯形图如图 7-68 所示。其的实现代码如下:

图 7-68 网络 11

Page 214: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–206–

网络 11 // 余热锅炉压力处理 LD SM0.0 MOVR VD2216, VD2220 *R 10.0, VD2220 TRUNC VD2220, VD2220 MOVW VW2222, VW320

网络 12 负责处理引风机反馈信号,其梯形图如图 7-69 所示。

图 7-69 网络 12

网络 12 的实现代码如下: 网络 12 // 引风机反馈信号处理 LD SM0.0 MOVR VD2316, VD2320 *R 10.0, VD2320 TRUNC VD2320, VD2320 MOVW VW2322, VW322

网络 13 负责处理鼓风机反馈信号,其梯形图如图 7-70 所示。

图 7-70 网络 13

网络 13 的实现代码如下: 网络 13 // 鼓风机反馈信号处理 // LD SM0.0

Page 215: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 7 章 锅炉燃烧自动控制系统

–207–

MOVR VD2416, VD2420 *R 10.0, VD2420 TRUNC VD2420, VD2420 MOVW VW2422, VW324

网络 14 负责处理工作油箱信号。网络 14 的梯形图如图 7-71 所示。

图 7-71 网络 14

网络 14 的实现代码如下所示。 网络 14 // 工作油箱信号处理 // LD SM0.0 MOVR VD2516, VD2520 *R 10.0, VD2520 TRUNC VD2520, VD2520 MOVW VW2522, VW326

网络 15 的梯形图如图 7-72 所示。网络 15 的实现代码如下:

Page 216: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–208–

图 7-72 网络 15

网络 15 // MCGS-PLC 数据处理 502 预处理 //罐温度上限、下限设置处理 LD SM0.0 MOVW VW350, VW402 MOVW VW352, VW406 MOVW +0, VW400 MOVW +0, VW404 DTR VD400, VD400 DTR VD404, VD404 MOVR VD400, VD200 MOVR VD404, VD204

网络 16 负责处理 1#燃烧室温度上、下限。其梯形图如图 7-73 所示。

图 7-73 网络 16

网络 16 的实现代码如下: 网络 16 // 1#燃烧室温度上限、下限设置处理 //

Page 217: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 7 章 锅炉燃烧自动控制系统

–209–

LD SM0.0 MOVW VW354, VW410 MOVW VW356, VW414 MOVW +0, VW408 MOVW +0, VW412 DTR VD408, VD408 DTR VD412, VD412 MOVR VD408, VD208 MOVR VD412, VD212

网络 17 负责处理炉膛负压的上限和下限。其梯形图如图 7-74 所示。

图 7-74 网络 17

网络 17 的实现代码如下: 网络 17 // 炉膛负压上限、下限设置处理 LD SM0.0

Page 218: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–210–

MOVW VW358, VW418 MOVW VW360, VW422 MOVW +0, VW416 MOVW +0, VW420 DTR VD416, VD416 DTR VD420, VD420 MOVR VD416, VD216 MOVR VD420, VD220

网络 18 负责处理 2#燃烧室温度上限和下限,其梯形图如图 7-75 所示。

图 7-75 网络 18

网络 18 的实现代码如下: 网络 18 // 2#燃烧室温度上限、下限设置处理 LD SM0.0 MOVW VW362, VW426 MOVW VW364, VW430

Page 219: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 7 章 锅炉燃烧自动控制系统

–211–

MOVW +0, VW424 MOVW +0, VW428 DTR VD424, VD424 DTR VD428, VD428 MOVR VD424, VD224 MOVR VD428, VD228

网络 19 负责处理余热锅炉出口温度上限,其梯形图如图 7-76 所示。

图 7-76 网络 19

网络 19 的实现代码如下: 网络 19 // 余热锅炉出口烟温上限设置处理 // LD SM0.0 MOVW VW366, VW434 MOVW +0, VW432 DTR VD432, VD432 MOVR VD432, VD232

Page 220: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–212–

MOVW VW380, VW462 MOVW +0, VW460 DTR VD460, VD460 MOVR VD460, VD260

网络 20 负责处理 1#喷淋塔出口烟道温度上限,其梯形图如图 7-77 所示。

图 7-77 网络 20

网络 20 的实现代码如下: 网络 20 // 1#喷淋塔出口烟温上限设置处理 // LD SM0.0 MOVW VW368, VW438 MOVW +0, VW436 DTR VD436, VD436 MOVR VD436, VD236

网络 21 负责处理 2#喷淋塔出口烟道温度上限。其梯形图如图 7-78 所示。

图 7-78 网络 21

网络 21 的实现代码如下: 网络 21 // 2#喷淋塔出口烟温上限设置处理 LD SM0.0

Page 221: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 7 章 锅炉燃烧自动控制系统

–213–

MOVW VW370, VW442 MOVW +0, VW440 DTR VD440, VD440 MOVR VD440, VD240

网络 22 负责处理余热锅炉压力上、下限。其梯形图如图 7-79 所示。

图 7-79 网络 22

网络 22 的实现代码如下: 网络 22 // 余热锅炉压力上限、下限设置处理 LD SM0.0 MOVW VW372, VW446 MOVW VW374, VW450 MOVW +0, VW444 MOVW +0, VW448 DTR VD444, VD444 DTR VD448, VD448 MOVR VD444, VD244

Page 222: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–214–

MOVR VD448, VD248

网络 23 负责处理工作油位上、下限,其梯形图如图 7-80 所示。

图 7-80 网络 23

网络 23 的实现代码如下。 网络 23 // 工作油位上限、下限设置处理 // LD SM0.0 MOVW VW376, VW454 MOVW VW378, VW458 MOVW +0, VW452 MOVW +0, VW456 DTR VD452, VD452 DTR VD456, VD456 MOVR VD452, VD252 MOVR VD456, VD256 END_SUBROUTINE_BLOCK

Page 223: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 7 章 锅炉燃烧自动控制系统

–215–

7.6 小结

在本章中,向读者介绍了锅炉控制的一些基本知识,包括锅炉的产生、发展等,还介绍

了当前比较流行的循环流化床锅炉的一些知识。本章着重介绍了锅炉的控制的方法及其基本

流程,占用了很大的篇幅举例说明了锅炉控制的一些基本的方法。

Page 224: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第第 88 章章 水水处处理理控控制制系系统统

环境科学是一门新兴的、综合性的边缘学科。它涉及的面广,综合性强,体现了科学发

展史上的一个新开端,成了当前科学技术重点研究的课题之一。

围绕着环境问题出现了许多新学科,三废处理(废水、废气与废渣处理)则是环境科学

中的一个重要分支,其内容也是比较广泛的。就废水处理而论,随着废水处理技术的不断发

展和对环境保护工作的要求不断提高,以节能高效低耗为中心的各种废水处理的新工艺、新

设备将不断涌现。本章将从水处理的知识入手,以一个实际的例子说明水处理的基本方法。

8.1 水处理控制系统总体设计

在本章中水处理控制将要实现以下几个目的:

(1)水处理中一级处理的实现;

(2)水处理中二级处理的实现;

(3)将以往手动控制部分改为由自动控制系统来完成。

下面先介绍一下水处理的基本知识。

8.1.1 工业废水的特点

工业废水的特点是种类繁多,成份复杂,常含有不同数量的原材料、中间产品、成品、

半成品和副产品等。例如,用汞电极电解食盐工业废水中含有汞;重金属冶炼回收废水中含

有各种重金属;电镀废水中含有氰化物和各种重金属;煤焦和石油炼制废水中含有酚;农药

工业废水中含有各种农药;造纸、纤维、制糖、食品等工业废水中含有大量有机物质;亚硫

酸盐纸浆废水排入水域,就会因有机物被需氧微生物分解而大量消耗水中的溶解氧,使靠呼

吸溶解氧而获得生存的水生物遭到危害,而当溶解氧消耗完后,有机物又通过水中厌氧微生

物的分解而引起腐败现象、产生甲烷、硫化氢、硫醇等恶臭物质,使水发臭变黑;从发电厂

和各种工业排出的工业冷却水,由于不同原料直接接触,含杂质较少,但因温度较高,也会

使接受水体的水温升高,造成热污染,给生活在水中的鱼类等水生动物带来不利的影响。虽

然工业废水成分复杂,但仍可以通过生化需氧量、化学耗氧量、混浊度、悬浮固体等参考指

标作统一的衡量。

工业用水主要分为两个部分:一种是工艺用水,一种是循环用水,如冷却水。工艺用水

指的是和反应物或中间产物直接相接触的水。工艺用水常含有油类、硫化物、酚、氰化物和

其他有机化合物。循环用水是指在生产过程用过又回用于本生产过程的水,这些水在循环使

用过程中不断与原料、反应生成物、中间产品和副产品接触。为了保持循环用水和工艺用水

的水质,—般都要采取处理措施,去除水中的杂质。

Page 225: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 8 章 水处理控制系统

–217–

城市污水主要指人们日常生活产生的生活污水。这些污水除含有碳水化合物、蛋白质和

氨基酸、动植物脂肪、尿素和氨、肥皂和合成洗涤剂等物质外,还含有细菌、病毒等使人致

病的微生物。这种活水会消耗掉水体的溶解氧,也会产生泡沫妨碍空气溶于水中,使水发臭

变黑。

农业污水的污染有牲畜污水、冲刷地表水、灌溉用水。农业上最大的用水量是灌溉,其

中 60~90%蒸发损失,10~40%渗入地下或从地表流走。由于耕种、喷洒农药、施肥等作业,

会使这种灌溉回流水中含有较高浓度的矿物质、肥料和农药,也会使水体污染。特别是像滴

滴涕这种有机农药,化学稳定性极高,在自然界中需十年以上的时间,才能完全分解为无害

的物质,成为环境中常期存在的污染物质;这种物质又易溶解于脂肪,能在动物和人体脂肪

组织中积聚起来造成危害,同时难溶于水,往往还借助水的流动而迁移到其他地方,使得许

多没有使用过农药的地区甚至南极也出现污染。

8.1.2 污染水质的物质

污染水质的物质极其复杂,来源很广。一般分为以下几类。

(1)氰化物、有机农药、酚、及其化合物、重金属类和致癌等有毒物质。

(2)生活污水的各种病毒、细菌、原生动物和能传染疾病并具有繁殖能力的致病微生

物。

(3)主要是生物可分解的天然有机物和亚硫酸盐、硫化物、亚铁盐、氨、无机物等耗

氧废弃物。

(4)来自合成洗涤剂、化学肥料、饲料和生活污水等方面的植物生长所需的营养成分,

如氮、磷、碳等化合物。

(5)比水轻,又不溶于水,覆盖在水面形成薄膜层,阻止空气中的氧气溶于水,使水

溶解氧减少,影响到水产质量的油类物质。

(6)包括难以分解,通过食物链逐步浓缩造成危害的物质。

(7)各种水溶性氯化物、盐类和各种其他酸性、碱性物质的无机化合物和矿物质。

(8)由分水岭冲下的砂土、粘土等冲积物和其他不溶性固体物质。

(9)热电厂、原子能发电厂和各种工业过程的冷却水等具有较高温度会引起水域热污

染的热流出物质。此外,还有各种废水混合后,互相作用生成新的有害物质。

天然水质含有的杂质可分为 3 类,即悬浮物、胶体和溶解物(溶解物包括溶解固体和溶

解气体)。工业废水中同样含有上述 3 种杂质。

8.2 水的处理工艺

废水中的悬浮物,一般经过预处理(即—级处理),用截留、沉淀和沉砂的方法就可以

将泥砂、藻类和腐败的有机物质除去。胶体杂质多采用二级处理的方法进行处理。溶解杂质

目前多采用三级处理的方法进行处理。

在确定对废水采用何种处理方法之前,首先要确定废水的 PH 值、颜色、气味、溶解氧、

比重、悬浮物、溶解物质、硬度和 BOD 量,然后根据水质的情况进行全面的分析研究确定

Page 226: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–218–

采用何种治理方法。例如,电镀废水的处理方法很多,有化学还原法、离子交换法、电解氧

化法、钡盐沉淀法、活性炭吸附法、蒸发浓缩法、电渗析法、反渗透法等。上面所说的各种

方法,有些属于二级处理中的方法,有些属于三级处理方面的方法。根据电镀废水的水质和

数量的不同,有些电镀废水采用二级处理便达到目的,有些电镀废水却需要采用三级处理(高

级处理)才能达到目的。有些水质复杂的电镀废水甚至要经过一级处理、二级处理、三级处

理等多种方法处理后才能达到目的,达到排放标准。

在考虑用何种方法处理废水的同时,必须考虑技术经济指标,按照规律办事,着眼综合

利用,讲究经济效益、治理效果和成本核算等,做到因地制宜。否则,花费大量投资达不到

治理目的将造成大量的浪费。工业废水一、二、三级处理流程图如图 8-1 所示。

图 8-1 工业废水处理流程图

目前,废水处理方法很多,其中一级处理、二级处理以及三级处理都各自有多种不同的

方法。

一级处理有以下方法:

� 截离法

� 沉砂法

� 沉淀法

二级处理有以下方法:

� 浮上分离法

浮上分离法包括空气浮上法、加压浮上法、电解浮上法、蒸汽气提法等。

� 凝聚沉淀法

凝聚沉淀法包括无机凝聚剂、高分子凝聚剂、快速凝聚沉淀、萃取法等。

� 氧化还原法

氧化还原法包括氯和氯的化合物氧化法、臭氧氧化法、电解氧化法、空气氧化法、烟道

气处理法、湿式燃烧法、还原法等。

� 活性污泥法

活性污泥法包括普通曝气法、锥形曝气法、完全混合型曝气法、分段曝气法、生物吸附

Page 227: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 8 章 水处理控制系统

–219–

法、改良曝气法、高负荷法、长时间曝气法、氧化池法、高速曝气沉淀法、分散气活性污泥

法、回转圆盘法等。

� 洒水滤床法

洒水滤床法包括高塔式洒水滤床法、管接触氧化法等。

� 甲烷发酵法

� 氧化池法

� 灌溉法

三级处理有以下方法:

� 电渗析法

� 活性炭吸附法

� 反渗透法

� 精密过滤

� 自立交换法

� 泡沫分离法

� 离子浮上法

8.2.1 废水的一级处理

废水的处理,首先需要除去废水中的粗垃圾、砂粒和悬浮物等,这种处理称为一级处理。

一级处理常常采用的方法有截留、沉砂、沉淀。下面分别。

1. 截留 截留是用格栅或格筛等构筑物除去废水中颗粒较大的粗垃圾或悬浮物的方法。这种构筑

物有棒状、方格状和网状等。

格栅一般由一组平行的栅条组成。棒的断面形状可以是正方形、圆形、矩形和带半圆的

矩形,各栅的间距一般为 15~25mm,滤棒附近的流速为 0.45m/s。由于这种过滤水位差损失

小,所以在安装棒状滤网处的水道宽度最好比流入水路宽一点,其比值为 2 左右。积存在格

栅上方的浮渣可用人工、绳索或链条等方法排除,然后用皮带运输机运到适当的地方。

2. 沉砂

把除去粗垃圾后的废水引入沉砂池。由于有些废水含有大量砂粒和砂状沉淀物质,使后

处理产生困难,所以必须进行沉砂。

沉砂池根据水流方向一般可分为平流式及竖流式两种。平面为矩形的平流式沉砂池是最

常用的一种形式,这种形式构造简单,处理效果较好,如图 8-2 所示。平流式沉砂池的流放

速度一般为 0.15~0.3m/s。

图 8-2 平流式沉砂池

Page 228: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–220–

3. 沉淀 工业上称流体与悬浮颗粒的混合系统为悬浮系统,悬浮系统中的流体可以是液体,也可

以是气体。悬浮物可以是固体,也可以是不同相的另一种流体。沉淀就是利用悬浮颗粒与液

体的密度不同,让混合液体静置后,颗粒从液体中沉淀下来从而分离出来的过程。沉降设备

一般比较简单,易于制造、操作和维修。

废水属于液相悬浮系统,其中悬浮物可能是固体微粒,也可能是其他液体的珠滴,但沉

淀过程基本相同。废水处理中的沉淀过程是比较复杂的,其中成分不一,颗粒大小不一,沉

淀难易不一,而废水处理量往往很大,分离要求高。因此,如何强化沉淀过程提高现有沉淀

设备的处理能力,是目前研究的方向。

沉淀池由出水流部分(废水在这部分流动,悬浮物进行沉降分离)、污泥部分(沉降下来

的悬浮物在此聚集,并定时排出)、缓冲层(是分隔水流部分和污泥部分的一个水层) 3 部

分组成。沉淀池的形成,按池内水流力向的不同,可分为平流式、竖流式、辐流式 3 种。为

了提高废水中悬浮物的去除效率,可以在沉淀池中安装斜板或蜂窝,或者在沉淀池中使用合

成树脂制的回路管。在沉淀池中,沉淀物质作为污泥被除去,飘浮上来的油和轻质物质作为

浮渣而撇除,因此通过沉砂池处理后的废水,导入沉淀池,经过处理,可以进一步除去微细

的沉淀性物质和悬浮物质。例如,废水在平流式沉淀池中,先通过稳流板而静静地流动,沉

淀下来的沉淀物,用刮泥器聚集而排出,飘浮上来的浮渣也用刮泥来聚集,从浮渣槽排出。

图 8-3 所示是平流式沉淀池的示意图。

图 8-3 平流式沉淀池

8.2.2 废水的二级处理

有些废水只经截留、沉砂、沉淀处理便可达到净化的目的,但一般来说大多数废水要经

过二级处理。在二级处理中,有物理化学处理法和生物学处理法等。物理化学处理法有浮上

分离法、凝聚沉淀法、氧化还原法等。常用的生物学处理法有活性污泥法、洒水滤床法、氧

化池法、甲烷发酸法等。

此外,还有用碱(或强碱弱酸盐)处理废水的中和法。这种方法通常用于处理含有重金

属的废水,使重金属生成氢氧化物而沉淀,所以也可以把碱(或强碱弱酸盐)视为一种凝聚

剂。

1. 浮上分离法

浮上分离法是使悬浮在废水中的悬浮物飘浮到水面上,再从液体中分离出来的一种方法。

它适用于分离比重比水轻的悬浮物,通常是把气泡导入含有悬浮物的废水中,使固体粘附到

Page 229: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 8 章 水处理控制系统

–221–

气泡上,形成外观比重比水小的悬浮物,浮到水面而进行分离。气泡产生的方法一般是用压

缩机将空气压入废水中,或使废水饱和空气后置于真空中。浮上分离法适用于处理造纸废水、

合油废水、炼油厂废水、机械厂废水、钢铁厂热轧、冷轧车间的废水、合成橡胶废水、洗毛

废水和鱼类加工厂废水等。

浮上分离法除了有由于悬浮物本身比重较轻而靠本身上浮的浮力式浮上分离法,和使悬

浮物粘附到气泡上上浮的空气浮上分离法外,还有离子浮上分离法和泡沫分离法,这两种方

法只适用于浓度小的废水,属于三级处理方法。

(1)空气上浮法

空气浮上法所处理的物质,在某种程度上必须是疏水性物质。如果处理的对象是亲水性

物质,则气泡难以粘附。与沉淀法相比,空气浮上法的优点是:固液分离所需时间短,快的

只需 2~3 分钟,一般平均为 30 分钟,而用沉淀法处理时,一般需要 1~4 小时。使气泡粘附

在悬浮物上的方法有电气吹入法、机械搅拌法和喷射法。以气泡折出的形式来分,有真空法、

加压法、沸腾法、化学反应法、发酵法和电解法。

(2)浮力式浮上法

浮力式浮上法一般使用的装置是油水分离装置,主要用于分离油。适用于这种装置处理

的合油废水,一般是不含表面活性剂的废水、石油炼制废水、石油化工废水、石油罐的排泄

物、残渣、洗机器废水和泵的密封漏油所产生的含油废水等。

2. 凝聚沉淀法

液体中的悬浮物,根据其粒径大小可分为粗粒、细粒和胶体 3 种。对于粒径在 1mm~100

μm 之间的固体颗拉,一般称作粗粒,肉眼可见,易于用一般沉降方法加以分离;粒度在 100

μm~1μm 之间的固体颗粒,称为细粒,用普通显微镜可以观察到,难以自然沉降过滤。而

粒度小于 1μm 的固体微粒称为胶体,它们分散在液体中形成“溶胶”,基本上不能自然沉降。

胶体溶液的类型和特性如表 8-1 所示。

表 8-1 胶体溶液的类型和性质

特性参数 疏水型 亲水型

物理状态 悬浮液

表面张力 胶体与介质极为近似 胶体的表面张力比介质小

粘滞度 胶体悬浮液与单独的分散相近似 胶体乳浊液的粘性比单独的分散

相大得多

丁达尔现象 极为清晰(氢氧化铁除外) 微弱或者无

在组成的难易程度 容易被电解质混凝 对电解质作用不敏感,故需要更

多的电解质

把凝聚剂加入废水中,可使废水中的悬浮物或胶体粒子在静电、化学、物理方法的作用

下,凝聚成小块,加快了沉淀速度,从而加速了分离处理。

凝聚剂可分为无机凝聚剂和有机凝聚剂两大类。无机凝聚剂常用铝盐和铁盐。有机凝聚

剂则是具有数万到数百万分子量的水溶性线型聚合物,可分为阳离子型、阴离子型和非离子

型 3 种。

3. 氧化还原法

氧化还原法是指一种物质发生还原反应的同时,另外一种物质发生了氧化反应。

Page 230: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–222–

氧化还原法在废水处理中具有十分重要的地位,氧化可以使废水中的部分有机物分解,

而且有消毒和杀菌作用。废水处理中使用的氧化剂应满足以下要求:能有效进行氧化作用,

反应后的生成物无毒,即使在常温下仍有较快的反应进度,反应时 PH 值变化不太大等。废

水处理中使用的氧化剂有空气、氧气、臭氧、氯、次氯酸盐、二氧化氮等。有些氧化剂,如

重铬酸钾、高锰酸钾、硝酸等,由于经济的原因或毒性关系几乎不用。

4. 生物学处理法

在自然界中,存在着大量依靠有机物生活的微生物,它们有氧化分解有机物的巨大能力,

利用这种微生物来处理废水的方法,叫做生物处理法。它是使用最广泛的一种方法。

利用微生物的净化作用处理废水,在自然界中是一种较普通的现象。我们知道,含有大

量有机物的废水少量地流入清洁的河流,虽然在废水入口处河流的水质恶化,但随着水流的

流动,有机物在被稀释的同时,河水中的微生物也使其氧化分解,产生自净作用,使河水恢

复清洁。这是由于河流中的各种微生物在摄取污水中的有机物和溶于河水中的氧的同时,分

泌出酶使有机物氧化分解,排出二氧化碳和水。水中的有机物被分解了,使河水得以净化。

经过生化处理的污水,为了消灭水中的病原体,还需经过消毒。此外,有毒及有害物质能对

微生物起毒害和抑制作用,为了保证处理效果,必须使有毒及有害物质限制在允许浓度以内。

生物学处理法处理废水由于微生物对氧的适应性不同又分为嗜氧法处理和厌氧法处理。

所谓嗜氧生物处理是在有氧的情况下,借嗜氧微生物的作用来进行。厌氧处理法是在无

氧条件下,借助厌氧微生物的作用来进行的。

生物学处理法有很多种,具体的分类如图 8-4 所示。

图 8-4 生物处理法分类

Page 231: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 8 章 水处理控制系统

–223–

8.2.3 废水的三级处理(深度处理)

目前,由于工业用水的不足以及为消除公害而要求发展无公害化技术,各工业部门已开

始研究废水的深度处理。

深度处理法是工业用水封闭循环系统中的重要组成部分。深度处理法的大部分为三级处

理。三级处理是把二级处理水中残存的氮和磷、有机物、无机物、细菌、病毒等进一步进行

处理的方法。这种方法可用于自来水的生产以及工业用水、洗涤用水、旅游用水、灌溉用水、

冷却用水等水资源再利用方面。

三级处理已有精密过滤法、活性炭吸附法、离子交换法、电渗析法、反渗透法、泡沫分

离法、离子浮上法、紫外线照射法、磁力法、超声波法、蒸馏法、冷冻法等多种方法。这些

方法的主体几乎都是物理和化学的处理法。

1. 电渗析法

20 世纪 50 年代开始发展起来的这门新技术,最初仅应用于海水淡化,后来逐渐发展到

用于工业生产中的分离、净化、浓缩以及废水处理等方面。

现在电渗析法已广泛应用在机电、冶金、化工、纺织、化纤、食品、医药、运输、国防

等方面。如工业用水、生活用水的脱盐、化工原料的制备和提纯、酸碱等基本原料的制造和

回收。

2. 反渗透法

反渗透法是 20 世纪 60 年代才发展起来的一种新型隔膜分离技术。它作为深度处理法受

到重视和研究,近十几年来在各个领域取得了很大进展。反渗透法设备较简单,能量消耗较

少,应用范围较广。反渗透法主要用来获得清水。此外,反渗透法还用于海水脱盐、电镀废

水的处理、印染废水的处理、医院废水的回收、纸浆废水的处理、照相废油的处理、宇航员

生活废水处理、家庭生活废水的三级处理等。目前反渗透法正处于发展阶段,尽管反渗透法

在处理废水方面还存在许多问题,但多数场合处理后的水质较好,所以这种新的处理方法仍

然得到人们的关注,而且进展很快。

反渗透和电渗析都是属于膜分离范畴,反渗透是通过反渗透膜把溶液中的溶剂分离出来。

如果将淡水和盐水(或两种不同浓度的溶液)用一种只能透过水而不能透过溶质的半透

膜隔开,淡水会自然地透过半透膜渗透至盐水(或从低浓度溶液渗透至高浓度溶液)一侧,

这种现象叫做渗透。所谓反渗透,就是逆着自然渗透压加压而获得净水。当用需要处理的废

水代替溶液时,如果在废水上增加比渗透压更高的压力时,水就会按与如图 8-5(a)所示相

反的方向渗透。这样,只有废水中的水通过半透膜渗向清水的一边,这种水称之为处理水(也

称净化水),剩下的废水则变浓。反渗透法原理如图 8-5(a)、(b)所示。

图 8-5 反渗透法原理

Page 232: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–224–

3. 液膜分离法 液膜法是利用乳化萃取剂将反应液分散于溶剂中,是一种独特的萃取分离技术。近代的

膜分离手段,如电渗析、反渗透所使用的都是固态高分子膜。固态高分子膜的渗透度稍差,

选择性也不高。因此,在规模生产中设备串联,占地面积大。此外,固态高分子膜还易受腐

蚀,一旦有一点破裂,整块膜即失效,制膜工艺复杂,这些都限制了高分子膜的广泛应用。

液体膜具有如下特点:

� 每单位体积膜的面积大;

� 溶质的透过速度快;

� 可对溶质进行选择性分离;

� 膜不需要支持体;

� 膜再生后可以再利用;

� 与原来的溶剂萃取法相比,比萃取速度快;

� 不需要逆萃取操作,可以使装置紧凑化。

8.2.4 废水的过滤

用凝聚沉淀法、浮上分离法、活性污泥法和洒水滤床法等方法处理污水而得到的处理水

大多数残留有部分悬浮物,所以要进行过滤以获得更清的净化水。像这种以获得清的净水为

目的而进行的过滤叫澄清过滤。在废水处理中,把变得稠厚的沉淀物或浮渣进行浓缩、过滤,

使滤渣和水分开的过程就叫脱水过滤。废水过滤方法的分类如表 8-2 所示。

表 ���� � � � � � � � � � � � � � � � � 废水过滤方法分类�

过滤方法 分类说明

与普通沉淀法相结合的过滤

与凝聚沉淀法相结合的过滤 慢速过滤法

与前一次过滤或微细过滤相结合的过滤

重力式 快速过滤法

压力式:向上过滤;向下过滤;双向过滤

圆筒型 助剂过滤法

叶状型

用滤网或滤布过滤

用多孔固定滤材过滤 直接过滤法

用滤纸滤材过滤

复床式过滤 离子交换过滤法

混床式过滤

活性炭过滤 吸附过滤法

树脂吸附过滤

下面介绍两种常用的过虑方法。

1. 多层快速过滤法 普通滤池的滤层结构是在下层装填粒径大的滤材,在上层装填粒径小的滤材。使污水从

Page 233: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 8 章 水处理控制系统

–225–

上向下过滤时,水中的固态物在接近表层几个厘米的地方被除去,几乎到不了滤层的内部。

因此可以说只是滤材的表层起到作用。为了克服这个缺点也可使用向上流动的方法,但这时

必须注意滤层被悬浮等问题。多层快速过滤是把粒径小的滤材放在下层,把粒径大的滤材放

在上层的方法,在这种过滤法中,污水中的大的固态物被上层的粒径大的滤材所除去,粒径

小的固态物被下层除去,使所有的过滤材料都起到过滤作用。而每个单位过滤面积、过滤水

量的水头损失上升很小,过滤持续的时间也可延长。多层过滤中滤材和悬浮物的粗细及抑留

情况如图 8-6 所示。

图 8-6 多层过滤中滤材和悬浮物的粗细以及抑留情况

2. 过滤中和法 当处理酸性废水,没有碱性废物可利用时,除采用药剂中和外,亦可采用过滤中和法,

但对含大量悬浮物、油脂及需要除去的重金属盐和其他有毒物质的酸性废水不宜采用。一般

有两种中和法,一种是普通过滤中和法,用于盐酸和硝酸的废水。对于含硫酸的废水,宜用

白云石作滤科。废水的过滤方向一般采用升流式,即废水从池底向上过滤。另一种是和升流

式膨胀中和法,该法的特点是滤速大、滤料颗粒细。当水流自下而上过滤时,使滤料产生膨

胀和翻滚,由于滤料颗粒相互的碰撞和摩擦,使沉淀物不易盖在滤料上面,而被高速水流带

至池外。

8.3 程序流程简介

前面介绍了常用的几种工业废水的处理方法,下面给出一个某化工厂水处理的例子供大

家参考。在这个例子中,使用到了过滤方法的第一级处理方法(过滤法)和第二级处理方法

(凝聚沉淀和氧化还原法等)。

本例是一个炼化厂的水处理过程控制系统。控制的内容并不复杂,主要有 10 个过滤池

的电动阀、4 个真空泵、2 个水塔进水电动阀、2 台加药系统运行泵、2 台计量泵。

主要的控制流程如图 8-7 所示。

Page 234: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–226–

图 8-7 污水处理控制流程图

8.4 自控系统 PLC 选型和资源配置

根据对系统的规模和控制要求的分析,选用了西门子 S7-300 系列的 PLC 作为该工程的

控制设备,CPU 型号为 CPU-314。具体的 I/O 配置如表 8-3 所示。

表 ���� � � � � � � � � � � � � � � � � � � � � � � � � � ��� 配置列表�

位号 地址 数据类型 说明

FV424FW PIW 488 WORD 阀门 FV424 阀位

FV424TJ PQW 496 WORD FV424 调节信号

FV425FW PIW 492 WORD 阀门 FV425 阀位

FV425TJ PQW 498 WORD FV425 调节信号

HC01A Q 24.4 BOOL 水塔进水电动阀 DO 点,A 为开,B 为关

HC01B Q 24.5 BOOL

HC101A Q 24.0 BOOL 10 号滤池两个电动阀 DO 点,A 为开,B 为关

HC101B Q 24.1 BOOL

Page 235: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 8 章 水处理控制系统

–227–

续表

位号 地址 数据类型 说明

HC102A Q 24.2 BOOL

HC102B Q 24.3 BOOL

HC11A Q 19.4 BOOL 1 号滤池两个电动阀 DO 点,A 为开,B 为关

HC11B Q 19.5 BOOL

HC12A Q 19.6 BOOL

HC12B Q 19.7 BOOL

HC21A Q 20.0 BOOL 2 号滤池两个电动阀 DO 点,A 为开,B 为关

HC21B Q 20.1 BOOL

HC22A Q 20.2 BOOL

HC22B Q 20.3 BOOL

HC31A Q 20.4 BOOL 3 号滤池两个电动阀 DO 点,A 为开,B 为关

HC31B Q 20.5 BOOL

HC32A Q 20.6 BOOL

HC32B Q 20.7 BOOL

HC41A Q 21.0 BOOL 4 号滤池两个电动阀 DO 点,A 为开,B 为关

HC41B Q 21.1 BOOL

HC42A Q 21.2 BOOL

HC42B Q 21.3 BOOL

HC51A Q 21.4 BOOL 5 号滤池两个电动阀 DO 点,A 为开,B 为关

HC51B Q 21.5 BOOL

HC52A Q 21.6 BOOL

HC52B Q 21.7 BOOL

HC61A Q 22.0 BOOL 6 号滤池两个电动阀 DO 点,A 为开,B 为关

HC61B Q 22.1 BOOL

HC62A Q 22.2 BOOL

HC62B Q 22.3 BOOL

HC71A Q 22.4 BOOL 7 号滤池两个电动阀 DO 点,A 为开,B 为关

HC71B Q 22.5 BOOL

HC72A Q 22.6 BOOL

HC72B Q 22.7 BOOL

HC81A Q 23.0 BOOL 8 号滤池两个电动阀 DO 点,A 为开,B 为关

HC81B Q 23.1 BOOL

HC82A Q 23.2 BOOL

HC82B Q 23.3 BOOL

HC91A Q 23.4 BOOL 9 号滤池两个电动阀 DO 点,A 为开,B 为关

HC91B Q 23.5 BOOL

Page 236: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–228–

续表

位号 地址 数据类型 说明

HC92A Q 23.6 BOOL

HC92B Q 23.7 BOOL

HIC01 Q 25.6 BOOL 加药系统 6 个电磁阀 DO 点

HIC02 Q 25.7 BOOL

HIC03 Q 26.0 BOOL

HIC04 Q 26.1 BOOL

HIC05 Q 26.2 BOOL

HIC06 Q 26.3 BOOL

HIC101 Q 18.6 BOOL 10 号滤池 6 个电磁阀 DO 点

HIC102 Q 18.7 BOOL

HIC103 Q 19.0 BOOL

HIC104 Q 19.1 BOOL

HIC105 Q 19.2 BOOL

HIC106 Q 19.3 BOOL

HIC11 Q 12.0 BOOL 1 号滤池 6 个电磁阀 DO 点

HIC12 Q 12.1 BOOL

HIC13 Q 12.2 BOOL

HIC14 Q 12.3 BOOL

HIC15 Q 12.4 BOOL

HIC16 Q 12.5 BOOL

HIC21 Q 12.6 BOOL 2 号滤池 6 个电磁阀 DO 点

HIC22 Q 12.7 BOOL

HIC23 Q 13.0 BOOL

HIC24 Q 13.1 BOOL

HIC25 Q 13.2 BOOL

HIC26 Q 13.3 BOOL

HIC31 Q 13.4 BOOL 3 号滤池 6 个电磁阀 DO 点

HIC32 Q 13.5 BOOL

HIC33 Q 13.6 BOOL

HIC34 Q 13.7 BOOL

HIC35 Q 14.0 BOOL

HIC36 Q 14.1 BOOL

HIC41 Q 14.2 BOOL 4 号滤池 6 个电磁阀 DO 点

HIC42 Q 14.3 BOOL

HIC43 Q 14.4 BOOL

HIC44 Q 14.5 BOOL

Page 237: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 8 章 水处理控制系统

–229–

续表

位号 地址 数据类型 说明

HIC45 Q 14.6 BOOL

HIC46 Q 14.7 BOOL

HIC51 Q 15.0 BOOL 5 号滤池 6 个电磁阀 DO 点

HIC52 Q 15.1 BOOL

HIC53 Q 15.2 BOOL

HIC54 Q 15.3 BOOL

HIC55 Q 15.4 BOOL

HIC56 Q 15.5 BOOL

HIC61 Q 15.6 BOOL 6 号滤池 6 个电磁阀 DO 点

HIC62 Q 15.7 BOOL

HIC63 Q 16.0 BOOL

HIC64 Q 16.1 BOOL

HIC65 Q 16.2 BOOL

HIC66 Q 16.3 BOOL

HIC71 Q 16.4 BOOL 7 号滤池 6 个电磁阀 DO 点

HIC72 Q 16.5 BOOL

HIC73 Q 16.6 BOOL

HIC74 Q 16.7 BOOL

HIC75 Q 17.0 BOOL

HIC76 Q 17.1 BOOL

HIC81 Q 17.2 BOOL 8 号滤池 6 个电磁阀 DO 点

HIC82 Q 17.3 BOOL

HIC83 Q 17.4 BOOL

HIC84 Q 17.5 BOOL

HIC85 Q 17.6 BOOL

HIC86 Q 17.7 BOOL

HIC91 Q 18.0 BOOL 9 号滤池 6 个电磁阀 DO 点

HIC92 Q 18.1 BOOL

HIC93 Q 18.2 BOOL

HIC94 Q 18.3 BOOL

HIC95 Q 18.4 BOOL

HIC96 Q 18.5 BOOL

Page 238: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–230–

8.5 自控系统 PLC 程序设计

根据 8.3 节中所介绍的工艺流程,下面开始学习程序内容(由于本实例比较大,因此书

中只列出重要的梯形图)。

1. 滤池起停控制 滤池的起停控制由网络 1~60 组成。当 HIC11K 成立时,表示手动操作电磁阀,或者当

1#滤池转入备用状态时,使 1#滤池的 6 个电磁阀开启。1#滤池 1~3#电磁阀的开关操作如图

8-8 所示。

图 8-8 网络 1~3

1#滤池的 4~6#电磁阀操作程序的梯形图如图 8-9 所示。

图 8-9 网络 4~6

Page 239: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 8 章 水处理控制系统

–231–

2#滤池电磁阀操作的原理与 1#滤池的电磁阀的操作原理相同,当 2#滤池转入手动操作或

者是转入备用状态时,2#滤池的电磁阀输出开启程序的梯形图如图 8-10 所示。

图 8-10 网络 7~12

中间省去 3-9#过滤池的起停控制程序。

10#滤池的电磁阀控制与 1#滤池相同。

Page 240: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–232–

10#滤池 6 个电磁阀操作程序的梯形图如图 8-11 所示。

图 8-11 网络 55~60

2. 加药系统控制

加药系统控制部分由网络 61~64 组成,网络 61~64 的梯形图如图 8-12 所示。

Page 241: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 8 章 水处理控制系统

–233–

图 8-12 网络 61~64

3. 水塔进水电动阀状态读取 水塔进水电动阀状态读取部分程序由网络 67~72 组成。其梯形图如图 8-13 与图 8-14 所

示。水塔进水电动阀状态以及 1#滤池 1#电动阀的状态读取程序的梯形图如图 8-13 所示。

图 8-13 网络 67~70

Page 242: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–234–

1#滤池的 2#电动阀的状态读取程序的梯形图如图 8-14 所示。

图 8-14 网络 71、72

4. 滤池电动阀状态读取 滤池电动阀状态读取部分程序由网络 105~108 组成。网络 105~108 梯形图如图 8-15 所示。

1#滤池两个电动阀 DO 点,A 为开,B 为关。

中间省略 2-9#滤池电动阀操作程序。

图 8-15 网络 105~108

5. 真空泵运行状态读取 真空泵运行状态读取部分的程序由网络 109~112 组成。网络 109~112 的梯形图如图 8-16

所示。

Page 243: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 8 章 水处理控制系统

–235–

图 8-16 网络 109~网络 112

6. 加药计量泵状态读取 加药机量泵状态读取程序由网络 117~120 组成。网络 117~120 的梯形图如图 8-17 所示。

图 8-17 网络 117~网络 120

Page 244: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–236–

7. 加药搅拌机状态读取 加药搅拌机状态读取由网络 121~124 组成。网络 121~124 的梯形图如图 8-18 所示。

图 8-18 网络 121~124

8. 各个执行机构电动阀的控制 这部分程序由网络 133~286 组成。网络 133~135 的梯形图如图 8-19 以及图 8-20 所示。

主要实现的是水塔电动阀的开启过程。

图 8-19 网络 133~135

Page 245: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 8 章 水处理控制系统

–237–

图 8-20 网络 136

M20.0 与 M20.1 为上位机操作员操作的指令信号,M20.1 为开启电动阀信号,M20.1 为

关闭信号。Tn 为电动阀延时动作的定时器,delaytime 为上位机设定的电动阀动作延时时间。

当上位机动作信号出现时,程序检查是属于开启的信号还是关闭的信号,并做出相应的反映,

然后开始进行延时时间的计算。当延时时间到达时,输出命令去开启或者关闭电动阀。

网络 137~139 的梯形图如图 8-21 所示。主要实现水塔电动阀的关闭过程。

图 8-21 网络 137~139

网络 140~142 的梯形图如图 8-22 所示。

Page 246: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–238–

图 8-22 网络 140~142

网络 143~146 的梯形图如图 8-23 以及图 8-24 所示。这两部分程序构成了一个整体,其

功能是控制 1#滤池电动阀的开启和关闭。

图 8-23 网络 143、144

Page 247: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 8 章 水处理控制系统

–239–

图 8-24 网络 145、146

以下省略了 2-10#滤池电动阀操作的控制程序。

与 1#滤池的电动阀的控制方式相同,以下是真空泵开启和关闭的控制程序,真空泵开启

和关闭的程序控制与 1-10#滤池是相同的。这里就不再做说明了。

网络 280、281 的梯形图如图 8-25 所示。

图 8-25 网络 280、281

网络 282、283 的梯形图如图 8-26 所示。

Page 248: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–240–

图 8-26 网络 282、-283

网络 284、285 的梯形图如图 8-27 所示。

图 8-27 网络 284、-285

Page 249: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 8 章 水处理控制系统

–241–

网络 286 的梯形图如图 8-28 所示。

图 8-28 网络 286

以下省略 2--4#真空泵操作控制的程序。

下面加药系统的计量泵控制和搅拌机的控制与 1-10#滤池的控制程序相同。

加药系统两台计量泵控制程序省去。

加药系统两台搅拌机控制程序省去。

9. 模拟量信号采集处理部分

下面是模拟量采集部分,包括废水进口 PH 值、废水出口 PH 值、原水进口 PH 值、原水

出口 PH 值、温度等等。模拟量采集部分程序由网络 336~349 组成。

网络 336~341 的梯形图如图 8-29 及图 8-30 所示。主要实现的是模拟量数据的采集过程。

图 8-29 网络 336~338

Page 250: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–242–

图 8-30 网络 339~341

网络 342 的梯形图如图 8-31 所示。实现了 1#滤池停止信号的响应程序。

图 8-31 网络 342

网络 343~345 的梯形图如图 8-32 所示。实现的是滤池开始运行信号的响应程序。

Page 251: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 8 章 水处理控制系统

–243–

图 8-32 网络 343~345

1#滤池反冲洗完毕后,置反冲洗完毕标志 M121.0。

只有当其他的 2-10#滤池都在进行反冲洗的工作时,在反冲洗完毕信号和手动推出工作

状态信号才能清除 1#滤池的工作标志和反冲洗标志。

网络 346~349 的梯形图如图 8-33 所示。实现自动或者手动反冲洗控制过程。

Page 252: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–244–

图 8-33 网络 344~349

其余 2-10#的工作原理与 1#滤池相同,这里就不再作说明了。

8.6 设计小结

以 PLC 为现场控制单元的分层污水处理工艺控制系统具有以下的特点。

(1)功能分散:由 PLC、操作员站、调度站分别担负现场控制、操作控制、数据管理

等功能,任务分配合理,控制功能比较强。

(2)可靠性高:与 STD、IPC、DCS 等常用的控制装置比较,PLC 的可靠性更高、抗干

扰能力更强。

目前在污水处理工程中,使用 PLC 控制成为主流,希望本章的例子能够给读者以启发。

Page 253: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第第 99 章章 小小功功率率金金卤卤石石英英吹吹泡泡机机控控制制系系统统

本章以金卤石英吹泡机控制系统为例,说明PLC的工业应用。目前我国大部分的吹泡机

的控制系统都是从国外引进的,不仅成本昂贵,而且在维护等方面也非常不方便,一旦出现

故障就有停产的可能,这严重阻碍了企业的正常生产。针对这种情况,应对吹泡机控制系统

进行改造,使其本地化,这就是设计本系统的主要目的。

吹泡机的控制系统在国外已经较普遍,但在我国国内对于这方面的研究还是较少,因此

国产的控制系统几乎没有,这就更加有了对此系统进行改造的必要性。

在对系统进行改造前,必须对工艺流程、机械设备、原有的控制系统进行分析、研究,

只有在彻底搞清原理之后才能进行改造工作,因此分析这一步是非常重要,并且也是难度很

大的工作,之后的硬件设计、软件编程相对简单一些。

进行改造之后的控制系统不仅在维护方面更加方便,而且也降低了成本,在产品的一致

性上也有了提高,为产品的各项参数指标的提高创造了更好的前提条件,有利于质量的提高。

所生产的小功率金属卤化物灯的应用也越来越广泛,如体育馆、商场等高档场所,因此前景

是非常好的。

9.1 小功率金卤石英吹泡机控制系统总体设计

9.1.1 功能分析

本控制系统主要是利用西门子的S7-300对整个吹泡的工艺流程进行自动控制,以实现更

高的精确度和自动化程度,提高产品的合格率,节省人力及减少原材料的浪费。

金卤石英吹泡机的设备主要由机床电机控制器、头仓、尾仓、驱动马达、定模夹、控制

柜、火支架、控制面板(一些相应的控制参数可通过控制面板输入)等部件组成。吹泡机的

整体结构如图9-1所示,局部图如图9-2所示。

图 9-1 吹泡机的整体结构图

Page 254: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–246–

图 9-2 局部图

(1)机床电机控制器

主要完成对机床的运动控制(包括速度等),此控制器由人工手动完成,在自动控制模

式下无需控制,只有在安装调试、检测或出现故障的情况下才使用。

(2)头仓

头仓前端有一段圆柱型,中间带有一个5mm的夹头,用来夹料用。

(3)尾仓

尾仓和头仓类似,料可以先夹在头仓然后尾仓前进,夹紧,也可以将料夹在尾仓夹上然

后往头仓送,效果是一样的,只要根据现场工艺及设备的要求选择一种。

(4)驱动马达

主要是对尾仓和火支架的步进电机进行控制,以期保持一定的速度到达要求的位置,实

现准确的定位。

(5)定模夹

主要是对加热以后的料管进行夹紧、定性,由电磁阀控制实现开、闭,由于存在器械上

的延时,因此夹模延时时间的参数设置有严格要求。此工序对整个产品的质量影响甚大,因

此参数的设定要根据经验,并且多次实验,只有达到要求时才可以固定下来,对于不同规格

的产品,其参数也完全不同,要重新调整过后才可使用。

(6)控制柜

控制柜的大小尺寸设计要完全根据所选择和设计的硬件大小,尽量做到体积小、易固定,

同时还要美观。

(7)火支架

火支架上包含两个火头—大火苗和小火苗,两者协调工作,以达到预热、加热的效果,

火支架的移动速度、距离由PLC的FM353实现精确的定位控制。

(8)控制面板

控制面板上包括开机、急停、状态指示灯等所有控制需要的键。每个开关有3种状态,中

间为不指示状态,上为ON,下为OFF。控制面板的左上角还有一个计数器(自带电池),用

来计算产品的个数(可以复位)。

Page 255: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 9 章 小功率金卤石英吹泡机控制系统

–247–

9.1.2 原理分析

在PLC控制系统中,对产品的最终质量具有决定性影响的参数主要有如下几个。

(1)打开氢气和氧气之间的时间延时参数

先开氢气后,再开氧气,这之间的延时时间非常重要,如果打开氢气后到开氧气之间的

延时过短,就会出现轻微的爆炸声,比较危险。如果之间的时间过长,则会造成氢气的浪费,

这个时间参数的设定需要平时经验的积累和实验。

(2)关闭氧气和氢气之间的时间延时参数

如果关闭氧气后到关闭氢气之间的延时时间过长,则会出现火苗进入管内的现象,容易

出现不合格产品,且易出事故。

(3)加热时间参数

此项参数对整个工艺流程和产品最终的质量至关重要,如果控制不好将导致产品壁无法

符合要求,如加热时间过短则会使壁过厚,如加热时间过长则会造成管壁过薄现象。

(4)夹模的延时时间参数

这项参数将直接关系到产品的最终定型是否符合标准。如果延时过长,管子已经冷却下

来了,可还没完全定型,则最终无法完全定型。

(5)其他参数的设定

除以上几个关键参数之外,其余大多数参数对产品的最终质量没有太大影响,主要影响

加工的效率,因此也需要经过实验测试,使其达到最高效率。

9.2 小功率金卤灯吹泡机控制系统的工艺流程及气路图

9.2.1 工艺流程

小功率金卤灯吹泡机主要有进料架、退料架、尾仓电机、火苗电机和主轴电机5个运动部

件。其中,尾仓电机、火苗电机是由两个专用的步进电机定位模块FM353进行控制,其他部

件由阀门控制。

各种输入信号是各个运动部件的各个位置的霍尔开关量信号,输出的主要是各个运动部

件的控制信号和3种气体的控制信号。

具体的流程如下。

(1)尾仓、火架归零,送火架参数。

(2)火架进到1位置,同时送尾仓参数,等延时时间到后,尾仓进到位置1。

(3)当尾仓到达左极限位置时,停止尾仓前进,并送火架进2参数,然后延时。

(4)延时到后,开动主轴,并先后开氢气、氧气,之后火架进到位置2进行预热。

(5)关闭氧气、氢气,开氢气,送尾仓进2、火架进3参数,再开氧气,送尾仓进2,火

架进3参数,进行加热。

(6)关氧气,送火架进4,关氢气,再先后打开和关闭氢气、氧气,进行加热。

(7)等加热完之后,关闭主轴电机。

(8)夹模前进,进行夹模定型,等夹紧后延时一段时间,然后吹氮气,同时送尾仓归零

Page 256: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–248–

和火架归零参数。

(9)关氮气,夹模后退。

(10)尾仓和火架归零。

9.2.2 吹泡机的控制气路图

控制气路图如图9-3所示。

图 9-3 气路控制图

Page 257: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 9 章 小功率金卤石英吹泡机控制系统

–249–

9.3 吹泡机控制系统 PLC 选型和资源配置

9.3.1 模块构成图

吹泡机控制系统模块图如图9-4所示。

电源

模块 SM323 SM322 SM321 SM353 SM353 CPU

图 9-4 PLC 模块组成

9.3.2 特殊模块功能概述

(1)FM353是西门子公司出品的专用电机控制功能模块,主要用来控制步进电机的运动,

两个FM353分别用来控制尾仓电机和火架电机。

(2)SM321是数字输入模块,主要用来将外部信号输入到PLC,如行程开关信号等。

(3)SM322是数字输出模块,主要用来将控制信号输出到相应的器件,实现控制。

(4)SM323是数字输入/输出模块,兼有上述SM321、SM322的功能。

9.3.3 各个模块的具体功能及特性简介

1. 电源模块(PS 307) 电源模块实现的功能如下。

(1)将120/230V交流电压转化到所需要的24V直流工作电压。

(2)输出电流2A、5A或10A。

(3)为SIMATIC S7-300提供电源。

负载电源模块安装在DIN导轨上(插槽1),紧靠在CPU或IM361(扩展机架上)的左侧。

使用电源连接器连接到CPU或IM361上的设备如下。

(1)输出电源指示器

用一个LED指示24V直流输出电压。

(2)线电压选择开关

一个带有保护罩的开关,可用来选择120V交流或230V交流线电压。

(3)24V直流的ON/OFF开关

(4)连接端子

线电源电缆、输出电源电缆和保护接地可连接到这些端子上。负载电源也可采用下

列适配器安装在35mm的DIN标准导轨上(EN 50022):PS 307-1B和PS 307-1E各有一个

适配器;PS 307-1E有两个适配器。请参考《SITOP电源》手册中进一步有关电源模块的

Page 258: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–250–

信息。

2. CPU313(313-1AD03-OAB0) (1)功能

① 状态和错误/故障LED指示硬件、编程、时间、I/O、电池的错误和操作状态,如运转、

停止、重新启动及CPU315-2 DP和318-2的总线错误。

② 测试功能。编程装置可用来在程序执行过程中显示信号状态,改变与用户程序无关的

过程变量,并输出存储器堆栈中的内容。

③ 系统信息。编程装置可用来向用户提供有关存储器容量和CPU操作方式及用户RAM

和目前正在使用的负载存储器、目前的循环类型和诊断缓冲器内容等信息,所有显示均为明

码文本。

(2)技术指标

CPU313的工作存储器容量为12kB,4kB语句RAM(内置),20kBRAM。

① 执行时间

位操作:0.6~1.2µs。 字操作:2µs。 定时器/计数器操作:15µs。 定点加:3µs。 浮点加:60µs。 监测扫描时间:150ms,1~6000ms可以选择。 ② 位存储器总共2048个 用电池保持:0~576(M0.0~M71.7)个。 无电池保持:0~576(M0.0~M71.7)个。 ③ 计数器总共64个 不用电池保持:0~35可选。 计数范围:1~999。 ④ 定时器总共128个 用电池保持:0~35定时器可选。 定时范围:10ms~9 990s。 ⑤ 数据传输率: 187.5kbit/s。 ⑥ 电源 额定值:24V直流。 电流消耗:1A。 启动消耗:8A。 功率损耗:8W。 ⑦ 尺寸及重量:80×125×130mm,530g。 3. FM353(353-1BH02-OAA0) (1)概述 ① 该定位模块用于具有很高时钟频率的机床中的步进电机。 ② 它可以用作控制简单的点到点定位,也可以用作复合往复运动模式。

Page 259: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 9 章 小功率金卤石英吹泡机控制系统

–251–

(2)应用

进给、调整、设定和传送带式轴(线性和旋转轴),用于金属加工、印刷、造纸、纺织

和包装机床中吊运、装载、安装任务的设备。

(3)工作原理

用户必须完成下列准备步骤:

① 使机械和电子装置互相配合;

② 指定运动路径。

(4)功能

① 调整

用点动键来移动轴(点动方式)。

② 增量方式

按照表格中已存入的路径来移动轴。

③ MDI(手动数据输入)和运行中的MDI

以任何希望的速度定位于任何希望的位置。

④ 自动后续块/单块控制

用于运行复杂定位路径、连续/选择进给、前进/后退。

⑤ 特殊功能

长度测量、通过FM353的快速输入启动和调整定位运转、变化率限制、运转中设定实际

值。

4. SM321(321-1BH02-OAA0) (1)概述

① SIMATIC S7-300的数字输入。

② 用于连接开关和2线接近开关(BERO)。

(2)应用

数字输入模块将从过程传输来的外部数字信号的电平转换为内部S7-300信号电平。该种

模块使用于连接开关和2线BERO接近开关。

5. SM322(322-1HH00-OAA0) (1)概述

① SIMATIC S7-300的数字输出模块。

② 用于连接电磁阀、接触器、小功率电机、等和电机启动器。

(2)应用

数字输出模块将S7-300的内部信号电平转化为控制过程所需的外部信号电平。该种模块

适用于连接电磁阀、接触器、小功率电机、灯和电机启动器。

6. SM323(323-1BH01-OAA0) (1)概述

① SIMATIC S7-300的数字输入/输出模块。

② 用于连接开关、2线接近开关(BERO)、电磁阀、接触器、小功率电机、灯和电机

启动器。

Page 260: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–252–

(2)应用

将控制过程的外部数字量电平转化为S7-300的内部信号电平,并将S7-300的内部信号电

平转化为控制过程所需的外部信号电平。

9.4 吹泡机控制系统程序设计与调试

9.4.1 所用编程语言 STEP-7 的特点

所选用的SIMATIC工业软件STEP 7是用于西门子S7、M7、C7系列可编程控制器的标准

工具。

为了生成用户所写程序,STEP 7提供了标准化的PLC编程语言:语句表STL、梯形图LAD、

功能表图FBD。

STEP 7可提供如下的程序块。

(1)组织软件块(OB):用于控制程序的运行。

(2)功能块(FB):包括实际的用户程序,提供包括各种数据类型的功能块。

(3)功能(FC):包括常用功能的程序,在调用后必须立即处理所有初始值,它不需

要任何背景数据块。

(4)数据块(DB):储存用户数据的数据区。

(5)系统功能块(SFB):集成到CPU的操作系统中的功能块。

9.4.2 工艺功能表图

工艺功能表图是完全按照整个工艺流程的具体步骤来实现的,具有简洁、易懂的特点,

一般在编写软件之前,必须先写好功能表图,再在此基础上实现软件编写,本例工艺功能图

如图9-5(a)、(b)所示。

Page 261: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 9 章 小功率金卤石英吹泡机控制系统

–253–

A

运行状态

时间到

到参考点 1、参考点 2

延时到

到参考点 2

时间到

step

1

Step32

Fire 使能 尾架使能 延时 30ms 头架夹

尾架归零

Step2

Step3

Step26

延时 送火架参数

火架进 1

送尾架参 延时 100ms

火苗归零

到参考点 1,

时间到

时间到

延时到

延时到

延时到

尾架进 1

Step13 火苗进 Step8 关 fire1-o 延时

Step9 关 fire1-h 延时

Step10 尾架夹 延时

Step4

Step5

Step6

Step7

延时 送火架进 2 参数

开主轴 Fire1-h 开

Fire1-o 开 延时

延时

Fire1-h 开 送尾架进 2,火架进 3 参数

(a)工艺功能图 1

� �

� � �

Page 262: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–254–

到参考点 1、参考点 2

延时到

到参考点 2

延时到

延时到

延时到

Step17 关 fire1-o 延时

Step18 关 fire1-h 主轴电机关闭 延时

Step11 Fire2-o 开 火苗进 3 尾架进 2

Step12 关 fire2-o 延时

Step14 关 fire2-h 火苗进 4

Step15 开 fire1-h 延时

Step16 开 fire1-o 延时

延时到

延时到

延时到

延时到

延时到

到参考点 1

到参考点 2

r

时间到 然后又回到开始 A 处

延时

Step24 火架归零

Step25 头夹松

Step22 Mold 夹头松 尾架夹头松 延时

Step23 关 N2 Mold 退 延时

Step20 Mold Jaw 夹 延时

Step21 N2 吹 延时

Step19 Mold Slide 进 延时

送尾架进 3、火架归零参数

(b)工艺功能图 2

图 9-5 工艺流程图

� � � � � �

Page 263: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 9 章 小功率金卤石英吹泡机控制系统

–255–

9.4.3 主程序流程图、规格选择及相关设置

1. 整个系统流程—主程序 OB1 流程图 主程序 OB1 流程如图 9-6 所示。

运行

规格选择 手动模式

规格检测

自动运行模式

料管过长

吹泡加工

报警 是

1

0

1

0

下料

图 9-6 主程序流程图

2. 成品管的规格确定 所需的成品管的规格各不相同,吹泡过程中要求的各个行程和预热时间也不相同。成品

管的规格由面板上的 MODE1 和 MODE2 两个开关来确定。各种状态的定义如表 9-1 所示。

表 9-1 规格选择

功率 MODE1 MODE2

50W 0 0

70W 0 1

100W 1 0

150W 1 1

Page 264: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–256–

3. FM353 模块的主要功能与设置

(1)模式控制

步进模式、开环循环控制、参考点接近模式、相对增量模式、MDI(手动数据输入)、

自动模式、自动单一模块。

(2)定位

对于定位的实际值来说,控制频率脉冲是由FM353内部添加的。

(3)控制步进电机

① 控制速度

② 输出相应控制频率的步进脉冲

③ 输出方向信号

④ 目标位置的精确定位

⑤ 驱动设备的相电流控制

(4)据输入和输出

用户可自己定义四位输入和四位输出,可以连接下列开关:参考点接近开关、外部开始

开关、接触器、位置到达并停止、正转、反转等。

(5)不依赖于操作模式的设置和功能

除了模式外,自定义的功能可以在用户程序里被击活。

(6)软件极限开关

在同步记录以后,操作范围(由软件极限开关定义)是自动监控的。

(7)过程中断

在如下情况下需要过程中断:位置到达、规定长度完成、块转换时、输入坐标尺寸。

(8)块的序列控制

步进程序的自动运行过程包括在参数化过程中主程序建立。在模块中,一些步进程序可

以有效地执行。

(9)分析和解决问题

启动和运行过程的操作都被错误和分析中断所监控。错误将被报告给系统并通过模块上

的LED显示。

(10)FM353的数据库控制

参数化数据(机械数据、工具补偿数据、步进程序、增量类型)被存储 FM353 中。

4. FM353 内部使能参数的确定 FM353 的功能十分强大,其内部有着多种工作模式,每种工作模式都有着大量的内部参

数控制字状态位需要设定,以及通过运动过程中随时生成的各种内部信号都需要在编程的时

候来应用。

在主程序中应用到的内部标志位或信号如表 9-2 所示。

表 ���� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � 内部使能参数�

内部参数 说明

FERENCE1 尾仓电机中间行程到位信号

FERENCE2 火苗电机中间行程到位信号

CYCLE_FLAG 循环工作信号

Page 265: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 9 章 小功率金卤石英吹泡机控制系统

–257–

续表

内部参数 说明

FM353_CONTROL1 尾仓电机中间行程控制字

FM353_CONTROL2 火苗电机中间行程控制字

MOTOR.ENABLE 尾仓、火苗电机使能信号

在功能程序中有 4 个内部数据块 CONTROL_SIGNALS、CHECKBACK_SIGNALS、

PROG_SEL 和 JOB_WR 是必须用到的。其中:

CONTROL_SIGNALS 中要用到 MODE(模式)、EN(内使能)、READ_EN(读使能)、

DRV_EN(驱动使能)、START(内开始)、STOP(内停止)等位。

CHECKBACK_SIGNALS 中要用到 MODE(模式)、POS_ROD(中间行程到位)等位。

PROG_SEL 中要用到 NO(行程块号)、DIR(行程方向)等位。

JOB_WR 中要用到 BUAY(读写忙)、DONE(读写完)和 NO(读写块号)等位。

如何正确使用这些标准的内部状态字,是使用 FM353 模块进行这次设计工作的重点和难

点。

5. FM353 的设置 (1)首先要根据工程需要,选择所需的模块进行组态:运行 STEP-7 软件,选择所建立

的工程项目,双击 HARDWARE 项,将右边栏里所需模块拉到左边的框架上(或双击),如

图 9-7 所示。

图 9-7 建立工程项目

(2)然后双击上图框架中的 FM353,进入图 9-8 所示模式。

图 9-8 FM353 设置

(3)选择 parameters 键,进入 FM353 的参数化设置,如图 9-9 所示。

Page 266: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–258–

图 9-9 FM353 参数化设置

(4)单击图 9-9 中 Machine data 按钮(蓝色键),即可进行参数设置。如果单击上图第

一排最右边的 Trave program 按钮同时即可进行步进电机的具体运动程序的编程(包括速度、

距离、运行模式等)。如图 9-10 所示。

图 9-10 电机的运动控制编程

经过上述设置,FM353 的设置已经完成,在运行程序时,将通过 FC100 实现 CPU 与 FM353

之间的通信和联系。

6. 主程序的构成 主程序块主要有以下几种模式:自动模式、手动模式、报警模式等。

自动模式:在这种模式下,PLC 将运行已经设置好的程序和参数(适用于机械一切都工

作正常的情况下)。

Page 267: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 9 章 小功率金卤石英吹泡机控制系统

–259–

手动模式:此模式主要是针对测试或出现问题时(如测试电机运行情况,氢气、氧气的

燃烧情况等)。在这种模式下,各工艺过程都是通过面板上的开关来单步进行的,手动程序的

选择进入是在整个加工自动开始运行之前,因此在主程序框图中未加入。为了节省面板空间,

在面板上为每一个待调整的执行机构都设置了一个三位开关,当开关处在中间位置时为自动

运行状态,另外两个状态为手动状态下的 ON 和 OFF。另外,系统是运行在自动还是手动状

态是在上电前通过一个两位开关(HAND/AUTO)来设置的。

报警模式:为了确保整个系统的安全运行,特设置了此模式。当头仓或尾仓超过极限位

置(通过行程开关检测),或当加工材料过长时,就会自动进入此种模式。还有出现意外情况

时,工作人员通过按急停键(EMERGENCY)也可使系统紧急停车。当进入报警模式后,程

序将自动使各种部件停止运动,主轴停止旋转,火架和尾仓也停在急停时的位置,并使各种

参数清零或复位。

7. 程序的下载、安装和调试 将各个输入/输出端子和实际机床中的接近开关、限位开关、电磁阀门、继电器、指示灯、

声/光报警器等正确相接,步进电机驱动模块 FM353 的几个信号端接电机驱动器,完成硬件

的安装。

石英管吹泡程序是由 S7-300 支持的指令完成,正常工作时存放在 Flash EPROM 存储卡

中,若要修改程序,应先拔下存储卡,然后将 PLC 设定在 STOP 状态下,上位机同 PLC 采

用标准的 RS-232 串口通信。运行 STEP-7 编程软件,打开吹泡机工程项目组,即可在线调试。

最终的程序可以通过定位到项目组,然后用 PLC 菜单中的 DOWNLOAD 命令来下载到 Flash

EPROM 存储卡中。

9.5 吹泡机控制系统 PLC 程序

9.5.1 程序的构成

整个程序由以下几个程序模块组成。

(1)主程序(OB1):完成对吹泡机整个工艺流程的控制。

(2)初始化程序(OB100):完成 PLC 上电后的初始化工作。

(3)电机驱动子程序(FC100、FC101):完成对 FM353 步进电机模块的控制程序,包

括参数设定、数据调入等工作,供主程序调用。

FC100 为尾仓电机控制子程序,FC101 为火苗电机控制子程序。

(4)数据块(DB1、DB2):FM353 模块与 CPU 之间参数传递时使用。

(5)特殊功能子程序(FC1~FC6):系统程序调用。

注释:FC100 和 FC101 主要采用 G 指令和 M 指令来编写。

9.5.2 系统资源分配

资源分配的程序代码如下: SYMBOL ADDRESS DATA TYPE COMMENT

Page 268: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–260–

A_MATIC1 M 17.0 BOOL A_MATIC2 M 16.3 BOOL ALARM M 5.7 BOOL //报警 ALARM_OUT M 39.0 BOOL //报警输出 AUFR_TF1 FC 100 FC 100 // 电机的第一次上升沿 AUFR_TF2 FC 101 FC 101 // 电机的第一次上升沿 AUTO_MODE1 M 3.6 BOOL //用来确定生产型号: // 00:50W,01:70W, 10:100W,11:150W AUTO_MODE2 M 3.7 BOOL B_100W M 36.2 BOOL B_150W M 36.3 BOOL B_50W M 36.0 BOOL B_70W M 36.1 BOOL BF_FS M 20.1 BOOL //操作错误 BUZZER_RESET M 3.3 BOOL BUZZER_RESET_FLP M 32.1 BOOL CONSIS M 20.6 BOOL //紧急停车 COUNT_OUT M 39.1 BOOL CYCLE_FLAG M 39.2 BOOL DATEN_LESEN_EIN M 17.3 BOOL //读数据 DATENFEHLER M 20.2 BOOL //数据出错 DB1_FM DB 1 UDT 1 //用户数据块 1 DB1_NR MW 10 WORD //用户数据块 1 序号 DB2_FM DB 2 UDT 1 //用户数据块 2 DB2_NR MW 30 WORD //用户数据块 2 序号 DB3_FM DB 3 DB 3 //用户数据块 3 DIAG_INF FC 6 FC 6 //读诊断信息 DIAG_RD FC 4 FC 4 //读 OB82 的诊断信息 DIAGINF_LESEN M 0.5 BOOL //读诊断信息 DRIVER_ENABLE1 M 16.7 BOOL //电机 1 使能 DRIVER_ENABLE2 M 16.5 BOOL //电机 2 使能 EMERGENCY M 3.4 BOOL //紧急情况 ESCAPEMENT M 4.1 BOOL //应该是压管气缸 FEHLER_QUITTIEREN M 17.1 BOOL //信息出错 FIRE_ENABLE M 4.2 BOOL //点火使能 FIRE_LIMIT M 2.7 BOOL //点火禁止 FIRE1 M 2.2 BOOL // 火苗 1 FIRE1_H M 4.3 BOOL //火苗 1 的氢气 FIRE1_O M 4.5 BOOL // 火苗的氧气 FIRE2 M 2.3 BOOL //火苗 2 FIRE2_H M 4.4 BOOL //火苗 2 的氢气 FIRE2_O M 4.6 BOOL // 火苗 2 的氧气 FLM_BAA M 1.0 BOOL // 操作模式下的边缘位记忆 FLM_REACH1 M 1.4 BOOL //尾仓所在位置记忆 FLM_REACH2 M 1.2 BOOL //火架所在位置记忆 FLM_ST_FM1 M 17.7 BOOL FLM_ST_FM2 M 20.5 BOOL FLM_START M 1.1 BOOL //边缘位记忆开始 FLM_STOP M 1.7 BOOL //边缘位记忆开始 FM_WORD1 MB 34 BYTE //存放尾仓电机运动参数的起始地址 FM_WORD2 MB 35 BYTE //存放火苗电机运动参数的起始地址 FM353_CONTROL1 MB 22 BYTE //尾仓运动控制参数

Page 269: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 9 章 小功率金卤石英吹泡机控制系统

–261–

FM353_CONTROL2 MB 24 BYTE // 火架运动控制参数 HAND_COLLECT1 M 2.4 BOOL // 手动尾仓夹紧开关 HAND_COLLECT2 M 38.2 BOOL // 手动头仓夹紧 HAND_COLLECT2_FLN M 40.5 BOOL // 下降沿检测 HAND_COLLECT2_FLP M 40.4 BOOL // 上升沿检测 HAND_ESCAPEMENT M 38.7 BOOL //手动拨料 HAND_ESCAPEMENT_FLN M 41.7 BOOL //下降沿检测 HAND_ESCAPEMENT_FLP M 41.6 BOOL //上升沿检测 HAND_INPUT IB 16 BYTE //手动输入 HAND_MOLD_BLOW M 38. 6 BOOL //手动 N2 气吹 HAND_MOLD_FLN1 M 36.6 BOOL //手动信号下降沿检测 1:1(MOLD // 退,TUBESLIDE 进) HAND_MOLD_FLN2 M 36.7 BOOL //手动信号下降沿检测 2:1(N2 不 // 吹,MOLDJAW 合) HAND_MOLD_FLP1 M 36.4 BOOL //手动信号上升沿检测 1:1(MOLD //进,TUBESLIDE 退) HAND_MOLD_FLP2 M 36.5 BOOL // 手动信号上升沿检测 2:1(N2 吹,MOLDJAW 开) HAND_MOLD_JAW M 38.5 BOOL // 手动夹头夹 HAND_MOLD_SLIDE M 38.4 BOOL // 手动夹模进 HAND_MOLDBLOW_FLN M 41.5 BOOL //下降沿检测 HAND_MOLDBLOW_FLP M 41.4 BOOL //上升沿检测 HAND_MOLDJAW_FLN M 41.3 BOOL //下降沿检测 HAND_MOLDJAW_FLP M 41.2 BOOL // 升沿检测 HAND_MOLDSLIDE_FLN M 41.1 BOOL //下降沿检测 HAND_MOLDSLIDE_FLP M 41.0 BOOL //上升沿检测 HAND_MOTOR M 38.1 BOOL //手动电机使能 HAND_MOTOR_FLN M 40.3 BOOL //下降沿检测 HAND_MOTOR_FLP M 40.2 BOOL //上升沿检测 HAND_OUTPUT QB 16 BYTE //手动信号输出 HAND_SPINDLE M 38.0 BOOL //手动主轴旋转 HAND_SPINDLE_FLN M 40.1 BOOL //下降沿检测 HAND_SPINDLE_FLP M 40.0 BOOL //上升沿检测 HAND_TUBE_SLIDE M 38.3 BOOL //手动送料进 HAND_TUBESLIDE_FLN M 40.7 BOOL //下降沿检测 HAND_TUBESLIDE_FLP M 40.6 BOOL //上升沿检测 HEAD_COLLECT M 5.0 BOOL //头仓 IMAGE_HAND_INPUT MB 38 BYTE //手动输入映像 IMAGE_HAND_OUTPUT MB 39 BYTE //手动信号输出映像 IMAGE_INPUT MW 2 WORD //映象输入 IMAGE_OUTPUT MW 4 WORD //映象输出 INIT_DB FC 1 FC 1 //初始化通道数据块 INPUT IW 8 WORD //输入 MDATA1 M 16.4 BOOL //电机 1 数据 MDATA2 M 16.2 BOOL //电机 2 数据 MODE M 3.5 BOOL //规格 MODE_WR FC 2 FC 2 //写规格号和命令至 FM MOLD_BLOW M 5.4 BOOL //吹氮气 MOLD_JAW M 5.3 BOOL //夹头夹 MOLD_SLIDE M 5.2 BOOL //夹模进 MSRMENT FC 5 FC 5 //读测量值 MW_LESEN M 0.4 BOOL //读测量值的工作

Page 270: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–262–

NO:1_ERR_CODE_RD M W 14 INTSFC //读 1 时出错的错误代码 NO:1_ERR_CODE_WR MW 12 INTSFC //写 1 时出错的错误代码 NO:1_INIT_ERROR M 0.3 BOOL //初始化 1 时显示错误 NO:1_RD_ERROR M 0.2 BOOL //读 1 时显示错误 NO:1_WR_ERROR M 0.1 BOOL //写 1 时显示错误 NO:2_ERR_CODE_RD MW 28 INT No:2 SFC //读 2 时出错的错误代码 NO:2_ERR_CODE_WR MW 26 INT No:2 SFC //写 2 时出错的错误代码 NO:2_INIT_ERROR M 0.7 BOOL //初始化 2 时显示错误 NO:2_RD_ERROR M 0.6 BOOL //读 2 时显示错误 NO:2_WR_ERROR M 1.6 BOOL //写 2 时显示错误 OUTPUT Q W 12 WORD //输出字 1 OVER_LENGTH M 3.2 BOOL //管子过长 OVERRIDE MB 19 BYTE //运行过头 PARA M 20.3 BOOL //通道参数化 PEH M 21.6 BOOL //到达规定位置的一半 PROGRAMS_NO MB 37 BYTE //运动参数暂存器 RD_COM FC 3 FC 3 //从 FM 读数据记录 RD_REC SFC 59 SFC 59 //读数据记录 RDSYSST SFC 51 SFC 51 //读系统状态 REFERENCE1 M 1.5 BOOL //参考点 1(即行程开关 1) REFERENCE2 M 1.3 BOOL //参考点 2(即行程开关 2) RUN_STATUS M 21.4 BOOL //运行标志 SFG M 20.4 BOOL //开始使能 SINGLE_SETTINGS1 M 17.6 BOOL //单步设定 1 SINGLE_SETTINGS2 M 21.3 BOOL //单步设定 2 SPINDLE M 4.0 BOOL //主轴旋转 START M 16.0 BOOL //主程序开始 START_FM1 M 16.6 BOOL //FM1 模块开始运行 START_FM2 M 17.2 BOOL //FM1 模块开始运行 START_INPUT M 2.1 BOOL //开始输入 STEP0 M 20.0 BOOL STEP1 M 6.0 BOOL STEP10 M 7.1 BOOL STEP11 M 7.2 BOOL STEP12 M 7.3 BOOL STEP13 M 7.4 BOOL STEP14 M 7.5 BOOL STEP15 M 7.6 BOOL STEP16 M 7.7 BOOL STEP17 M 8.0 BOOL STEP18 M 8.1 BOOL STEP19 M 8.2 BOOL STEP2 M 6.1 BOOL STEP20 M 8.3 BOOL STEP21 M 8.4 BOOL STEP22 M 8.5 BOOL STEP23 M 8.6 BOOL STEP24 M 8.7 BOOL STEP25 M 9.0 BOOL STEP26 M 9.1 BOOL STEP27 M 9.2 BOOL STEP28 M 9.3 BOOL

Page 271: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 9 章 小功率金卤石英吹泡机控制系统

–263–

STEP29 M 9.4 BOOL STEP3 M 6.2 BOOL STEP30 M 9.5 BOOL STEP31 M 9.6 BOOL STEP32 M 9.7 BOOL STEP33 M 32.0 BOOL STEP4 M 6.3 BOOL STEP5 M 6.4 BOOL STEP6 M 6.5 BOOL STEP7 M 6.6 BOOL STEP8 M 6.7 BOOL STEP9 M 7.0 BOOL STOP M 16.1 BOOL Stop STOP_FM353 M 20.7 BOOL //FM353 停止信号 STOP_INPUT M 2.0 BOOL //******************** STOP_RUN M 21.0 BOOL //循环结束后停止 STP SFC 46 SFC 46 //Stop SWITCH_BACKWARD M 2.6 BOOL //送管限位开关后 SWITCH_FORWARD M 2.5 BOOL //送管限位开关前 SYN M 21.1 BOOL //同步 TAILSTOCK_COLLECT M 5.1 BOOL //尾仓 TAILSTOCK_ENABLE M 5.5 BOOL //尾仓使能 TAILSTOCK_LIMIT_LEFT M 3.1 BOOL //尾仓左限位 TAILSTOCK_LIMIT_RIGHT M 3.0 BOOL //尾仓右限位 TUBE_SLIDE M 4.7 BOOL //插管子 VELOCITY_TRANSFER1 M 17.4 BOOL //传递运动等级 1 VELOCITY_TRANSFER2 M 17.5 BOOL //传递运动等级 2 WR_REC SFC 58 SFC 58 //写数据记录

9.5.3 主程序

本程序的图形图,由于比较多,被分布在多个页面,读者学习的时候,请对照代码注释

和图学习。

1. 手动程序模块 网络 1:MAIN PROGRAM A "RUN_STATUS" //如果为运行状态 JC RUN1 //跳转到自动运行程序 L "INPUT" //输入映象 T "IMAGE_INPUT" A "MODE" //模式选择 JCN AUTO //--------------手动程序------------------ A "HAND_COLLECT1" //手动尾仓控制开关开 R "TAILSTOCK_COLLECT" //手动尾仓夹紧开关松开 AN "HAND_COLLECT1" S "TAILSTOCK_COLLECT" //手动尾仓夹紧 A "HAND_SPINDLE" //主轴旋转开关开 FP "HAND_SPINDLE_FLP" //检测到主轴旋转上升沿 S "SPINDLE" //主轴旋转 A "HAND_SPINDLE" //主轴旋转开

Page 272: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–264–

FN "HAND_SPINDLE_FLN" //检测到主轴旋转下降沿 R "SPINDLE" //主轴停止旋转 A "HAND_MOTOR" //手动电机使能 FP "HAND_MOTOR_FLP" //检测到电动机的上升沿 S "FIRE_ENABLE" //点火使能 S "TAILSTOCK_ENABLE" //尾仓使能 A "HAND_MOTOR" //手动电机使能 FN "HAND_MOTOR_FLN" //检测到电动的下降沿 R "FIRE_ENABLE" //停止点火 R "TAILSTOCK_ENABLE" //尾仓停止 A "HAND_COLLECT2" //手动头仓夹紧开关开 FP "HAND_COLLECT2_FLP" //检测到上升沿 R "HEAD_COLLECT" //手动头仓松开 A "HAND_COLLECT2" FN "HAND_COLLECT2_FLN" //检测到下降沿 S "HEAD_COLLECT" //头仓夹紧 AN "MOLD_SLIDE" //夹模退 AN "FIRE_LIMIT" //点火禁止 A "HAND_TUBE_SLIDE" //手动送料开 FP "HAND_TUBESLIDE_FLP" //检测到上升沿 S "TUBE_SLIDE" //手动上料开始 AN "MOLD_SLIDE" AN "FIRE_LIMIT" A "HAND_TUBE_SLIDE" FN "HAND_TUBESLIDE_FLN" //检测到下降沿 R "TUBE_SLIDE" //手动上料结束 AN "TUBE_SLIDE" //手动上料结束 AN "FIRE_LIMIT" //点火禁止 A "HAND_MOLD_SLIDE" //手动夹模进 FP "HAND_MOLDSLIDE_FLP" //检测到上升沿 S "MOLD_SLIDE" //夹模进 AN "TUBE_SLIDE" AN "FIRE_LIMIT" A "HAND_MOLD_SLIDE" FN "HAND_MOLDSLIDE_FLN" //检测到下降沿 R "MOLD_SLIDE" //夹模退 A "HAND_MOLD_JAW" //手动夹头夹紧开关开 FP "HAND_MOLDJAW_FLP" //检测到上升沿 R "MOLD_JAW" //松开夹头夹 A "HAND_MOLD_JAW" FN "HAND_MOLDJAW_FLN" //检测到下降沿 S "MOLD_JAW" //夹头夹紧 A "HAND_MOLD_BLOW" //手东吹 N2 气开关开 FP "HAND_MOLDBLOW_FLP" S "MOLD_BLOW" //开始吹 N2 气 A "HAND_MOLD_BLOW" FN "HAND_MOLDBLOW_FLN" //检测到下降沿 R "MOLD_BLOW" //停止吹 N2 气 A "HAND_ESCAPEMENT" //手动拔料开关闭合 FP "HAND_ESCAPEMENT_FLP" //检测到上升沿 S "ESCAPEMENT" //拔料 A "HAND_ESCAPEMENT"

Page 273: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 9 章 小功率金卤石英吹泡机控制系统

–265–

FN "HAND_ESCAPEMENT_FLN" R "ESCAPEMENT" //拔料完成 A "FIRE1" //火架 1 开关开 S "FIRE1_H" //开火架 1 氢气 A "FIRE1" A "FIRE1_H" L S5T#300MS SS T 21 //定时启动 A "FIRE1_H" A T 21 //定时时间到 S "FIRE1_O" //开火架 1 氧气 R T 21 AN "FIRE1" //火架 1 点火开关关 A "FIRE1_H" R "FIRE1_O" //火架 1 关氧气 AN "FIRE1" A "FIRE1_H" L S5T#300MS SS T 22 AN "FIRE1" A "FIRE1_H" A T 22 //定时到 R "FIRE1_H" //关火架 1 氢气 R T 22 A "FIRE2" //火架 2 开关开 S "FIRE2_H" //火架 2 开氢气 A "FIRE2" A "FIRE2_H" L S5T#300MS SS T 23 //定时启动 A "FIRE2_H" A T 23 //定时到 S "FIRE2_O" //开火架 2 氧气 R T 23 AN "FIRE2" //火架 2 点火开关关 A "FIRE2_H" R "FIRE2_O" //关火架 2 氧气 AN "FIRE2" A "FIRE2_H" L S5T#300MS SS T 24 //定时 AN "FIRE2" A "FIRE2_H" A T 24 //定时到 R "FIRE2_H" //关火架 2 氢气 R T 24 //复位定时器 JU WAIT //--------------手动程序结束---------------- 以上手动程序主要在调试阶段、出现故障或紧急情况下自动程序不能正确运行时使用。

主要包括对尾仓夹、头仓夹、夹模、电机、点火用的氢气和氧气的控制。

Page 274: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–266–

2. 规格检测和自动初始化模块 梯形图省略。程序代码如下: //--------------规格检测-------------------- AUTO: AN "AUTO_MODE1" //AUTO_MODE1,AUTO_MODE2 为 0,0 表示规格

//为 50W AN "AUTO_MODE2" S "B_50W" R "B_70W" R "B_100W" R "B_150W" AN "AUTO_MODE1" // AUTO_MODE1,AUTO_MODE2 为 0,1 表示规格为 75W A "AUTO_MODE2" S "B_70W" R "B_50W" R "B_100W" R "B_150W" A "AUTO_MODE1" // AUTO_MODE1,AUTO_MODE2 为 0,1 表示规格为 100W AN "AUTO_MODE2" S "B_100W" R "B_50W" R "B_70W" R "B_150W" A "AUTO_MODE1" // AUTO_MODE1,AUTO_MODE2 为 0,1 表示规格为 150W A "AUTO_MODE2" S "B_150W" R "B_50W" R "B_70W" R "B_100W" //------------规格检测结束------------ //-----------自动运行初始化----------- A "B_50W" //选择 50W 规格 JCN MOD1 L B#16#1 T "FM_WORD1" //存放尾仓电机运动参数的起始地址 L B#16#A T "FM_WORD2" //存放火苗电机运动参数的起始地址 MOD1: A "B_70W" //选择 70W 规格 JCN MOD2 L B#16#15 T "FM_WORD1" L B#16#1E T "FM_WORD2" MOD2: A "B_100W" //选择 100W 规格 JCN MOD3 L B#16#29 T "FM_WORD1" L B#16#32 T "FM_WORD2" MOD3:

Page 275: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 9 章 小功率金卤石英吹泡机控制系统

–267–

A "B_150W" //选择 150W 规格 JCN MOD4 L B#16#3D T "FM_WORD1" L B#16#46 T "FM_WORD2" MOD4: SET S "STEP0" R "CONSIS" R "STOP_RUN" //解决循环后停车问题 R "STOP" R "STEP33" R "SPINDLE" R "FIRE_ENABLE" R "FIRE1_H" R "FIRE2_H" R "FIRE1_O" R "FIRE2_O" R "STOP_FM353" S "HEAD_COLLECT" //打开头仓夹头 S "TAILSTOCK_COLLECT" //打开尾仓夹头 R "MOLD_SLIDE" S "MOLD_JAW" R "MOLD_BLOW" R "TAILSTOCK_ENABLE" //尾仓禁止运动 R "CYCLE_FLAG" //复位循环标志位 L 0 T MW 6 T MW 8 L B#16#0 T "FM353_CONTROL1" //尾仓电机控制参数的起始地址 T "FM353_CONTROL2" //火苗电机控制参数的起始地址 JU WAIT //--------------初始化结束---------------

以 上 主 要 为 规 格 检 测 和运 行 初 始 化 程 序 , 规 格检 测 通 过 检 测 AUTO_MODE1 ,

AUTO_MODE2 来确定为何种规格,00 为 50W,01 为 70W,10 为 100W,11 为 150W;初

始化程序主要完成两个电机参数的起始地址的装载,还有一些复位置位功能。

3. 自动运行模块 程序代码如下: RUN1: A "STEP0" //STEP0....RUN1: A "RUN_STATUS" //运行状态 S "FIRE_ENABLE" //电机使能 S "TAILSTOCK_ENABLE" //尾仓使能 A "STEP0" L S5T#300MS //定时 300mS SS T 20 A "STEP0" A T 20

Page 276: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–268–

S "STEP32" R "STEP0" A "STEP32" A "RUN_STATUS" A "REFERENCE1" A "REFERENCE2" R "STEP32" R "REFERENCE1" R "REFERENCE2" A "STEP32" A "RUN_STATUS" //判断是否有启动信号 = "START_FM1" //尾仓找家 = "START_FM2" //火架找家 A "STEP32" R T 20 A "STEP2" L S5T#100MS //定时 100mS SS T 27 A "STEP2" JCN GO01 T "FM353_CONTROL1" //送火架参数 GO01: A "STEP2" A T 27 A "RUN_STATUS" S "STEP3" R "STEP2" A "STEP3" R T 27 A "STEP3" //STEP3.......................... A "REFERENCE1" //将条件判断放在上面避免电机二次触发 S "STEP4" R "STEP3" R "REFERENCE1" A "STEP3" JCN STA0 = "START_FM1" //尾仓第一推 STA0: A "STEP4" //STEP4......................... L S5T#100MS SS T 28 A "STEP4" JCN GO02 L B#16#2 T "FM353_CONTROL1" L B#16#1 T "FM353_CONTROL2" GO02: A "STEP4" A T 28 S "STEP5" R "STEP4" A "STEP5" R T 28 A "STEP5" //STEP5.........................

Page 277: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 9 章 小功率金卤石英吹泡机控制系统

–269–

A "REFERENCE1" A "REFERENCE2" A "OVER_LENGTH" //调试中注释 S "STEP6" R "STEP5" R "REFERENCE1" R "REFERENCE2" A "STEP5" //选择序列:石英管过长报警,调试中注释 L S5T#5S SS T 1 A "STEP5" A T 1 AN "OVER_LENGTH" //石英管没有过长 A "REFERENCE1" //尾仓到达参考位置 A "REFERENCE2" //火架到达参考位置 S "STEP1" R "STEP5" R "REFERENCE1" R "REFERENCE2" A "STEP1" //STEP33:报警 S "ALARM_OUT" S "CONSIS" R T 1 JC ALAR A "STEP5" JCN STA1 = "START_FM1" //尾仓第二推 = "START_FM2" //火架第一推 STA1: A "STEP6" //STEP6.................................... R T 1 R "HEAD_COLLECT" //输出,头仓夹 A "STEP6" JCN GO03 L B#16#3 T "FM353_CONTROL1" GO03: A "STEP6" L S5T#1S //原为 500MS SS T 2 A "STEP6" A T 2 S "STEP7" R "STEP6" R T 2 A "STEP7" //STEP7...................... A "REFERENCE1" S "STEP8" R "STEP7" R "REFERENCE1" A "STEP7" JCN STA2 = "START_FM1" //尾仓退(夹头合拢前) STA2: A "STEP8" //STEP8

Page 278: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–270–

S "SPINDLE" //输出,主轴旋转 S "FIRE1_H" //输出,点多火 A "STEP8" L S5T#300MS SS T 3 A "STEP8" A T 3 S "STEP9" R "STEP8" R T 3 A "STEP9" //STEP9 S "FIRE1_O" A "STEP9" JCN G004 L B#16#2 T "FM353_CONTROL2" G004: A "B_50W" //判断规格,然后根据规格 JC P50W //送相应预热时间常数 A "B_70W" JC P70W A "B_100W" JC P100 A "B_150W" JC P150 JU ALAR P50W: A "STEP9" L S5T#3S SS T 4 JU PREH P70W: A "STEP9" L S5T#3S800MS SS T 4 JU PREH P100: A "STEP9" L S5T#3S800MS SS T 4 JU PREH P150: A "STEP9" L S5T#4S SS T 4 PREH: A "STEP9" A T 4 S "STEP10" S "STEP13" R "STEP9" R T 4 A "STEP10" //STEP10 R "FIRE1_O" //输出,关多火 A "STEP10" L S5T#300MS SS T 5 A "STEP10"

Page 279: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 9 章 小功率金卤石英吹泡机控制系统

–271–

A T 5 S "STEP11" R "STEP10" R T 5 A "STEP13" JCN STA3 = "START_FM2" //火架第二推 STA3: A "STEP11" //STEP11 R "FIRE1_H" A "STEP11" A "STEP13" A "REFERENCE2" S "STEP12" R "STEP11" R "STEP13" R "REFERENCE2" A "STEP12" //STEP12 R "TAILSTOCK_COLLECT" //输出,尾仓夹 S "FIRE2_H" //开单火 A "STEP12" JCN GO05 L B#16#4 T "FM353_CONTROL1" //尾仓电机控制参数 L B#16#3 T "FM353_CONTROL2" //火架电机控制参数 GO05: A "STEP12" L S5T#300MS SS T 6 A "STEP12" A T 6 S "STEP14" R "STEP12" R T 6 A "STEP14" //STEP14 A "REFERENCE1" A "REFERENCE2" S "STEP15" R "STEP14" R "REFERENCE1" R "REFERENCE2" A "STEP14" S "FIRE2_O" //输出 A "STEP14" JCN STA4 = "START_FM1" //尾仓工进 = "START_FM2" //火架工进 STA4: A "STEP15" //STEP15 R "FIRE2_O" //输出,关单火 A "STEP15" JCN GO06 L B#16#4 T "FM353_CONTROL2"

Page 280: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–272–

GO06: A "STEP15" L S5T#300MS SS T 8 A "STEP15" A T 8 S "STEP16" R "STEP15" R T 8 A "STEP16" //STEP16 R "FIRE2_H" //输出 A "STEP16" A "REFERENCE2" S "STEP17" R "STEP16" R "REFERENCE2" A "STEP16" JCN STA5 = "START_FM2" //火架第四推 STA5: A "STEP17" //STEP17 S "FIRE1_H" //输出,开多火,POSTHEAT A "STEP17" L S5T#300MS SS T 9 A "STEP17" A T 9 S "STEP18" R "STEP17" R T 9 A "STEP18" //STEP18 S "FIRE1_O" //输出 A "B_50W" //判断规格,然后根据规格 JC B50W //送相应后热时间常数 A "B_70W" JC B70W A "B_100W" JC B100 A "B_150W" JC B150 JU ALAR B50W: A "STEP18" L S5T#4S SS T 10 JU POST B70W: A "STEP18" L S5T#7S SS T 10 JU POST B100: A "STEP18" L S5T#7S SS T 10 JU POST B150: A "STEP18"

Page 281: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 9 章 小功率金卤石英吹泡机控制系统

–273–

L S5T#10S300MS SS T 10 POST: A "STEP18" A T 10 S "STEP19" R "STEP18" R T 10 A "STEP19" //STEP19 R "FIRE1_O" //输出,关多火 A "STEP19" L S5T#300MS SS T 11 A "STEP19" A T 11 S "STEP20" R "STEP19" R T 11 A "STEP20" //STEP20 R "FIRE1_H" //输出 R "SPINDLE" //输出,关主轴 A "STEP20" L S5T#0MS SS T 12 A "STEP20" A T 12 S "STEP21" //并行序列 1 S "STEP31" R "STEP20" R T 12 A "STEP21" //STEP21 S "MOLD_SLIDE" //输出,夹模进 R "MOLD_JAW" //输出,打开夹具 A "B_50W" //判断规格,然后根据规格 JC M50W //送相应夹模进时间常数 A "B_70W" JC M70W A "B_100W" JC M100 A "B_150W" JC M150 JU ALAR M50W: A "STEP21" //送 50W 夹模进时间参数 L S5T#450MS SS T 13 JU MOLD M70W: A "STEP21" //送 70W 夹模进时间参数 L S5T#500MS SS T 13 JU MOLD M100: A "STEP21" //送 100W 夹模进时间参数 L S5T#500MS SS T 13

Page 282: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–274–

JU MOLD M150: A "STEP21" //送 150W 夹模进时间参数 L S5T#500MS SS T 13 MOLD: A "STEP21" A T 13 S "STEP22" R "STEP21" R T 13 A "STEP22" //STEP22 S "MOLD_JAW" //输出,合拢夹具 A "STEP22" L S5T#300MS //原为 500ms,此处可以优化 SS T 14 A "STEP22" A T 14 S "STEP23" R "STEP22" R T 14 A "STEP23" //STEP23 S "MOLD_BLOW" //输出,吹 N2 气 A "STEP23" JCN GO07 L B#16#5 T "FM353_CONTROL1" L B#16#0 T "FM353_CONTROL2" GO07: A "STEP23" L S5T#1S900MS //原为 1S,此处可以优化 SS T 15 A "STEP23" A T 15 S "STEP24" R "STEP23" R T 15 A "STEP24" //STEP24 R "MOLD_JAW" //输出,打开夹具 S "HEAD_COLLECT" //输出,头仓夹头松 A "STEP24" L S5T#1S SS T 16 A "STEP24" A T 16 S "STEP25" //并行序列 2 S "STEP33" R "STEP24" R T 16 A "STEP25" //STEP25 A "REFERENCE1" S "STEP26" R "STEP25" R "REFERENCE1"

Page 283: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 9 章 小功率金卤石英吹泡机控制系统

–275–

A "STEP25" JCN STA6 = "START_FM1" //头仓第一退 STA6: A "STEP33" //STEP33 JCN STA7 = "START_FM2" //火架找家 STA7: A "STEP26" //STEP26 R "MOLD_BLOW" //输出,关 N2 气 S "MOLD_JAW" //输出,合拢夹具 S "TAILSTOCK_COLLECT" //输出,松尾仓夹头 A "STEP26" JCN GO08 L B#16#6 T "FM353_CONTROL1" GO08: A "STEP26" L S5T#1S SS T 17 A "STEP26" A T 17 S "STEP27" R "STEP26" R T 17 A "STEP27" //STEP27 A "REFERENCE1" A "STEP33" //并行序列 2 合并 A "REFERENCE2" S "STEP28" R "STEP27" R "STEP33" R "REFERENCE1" R "REFERENCE2" A "STEP27" JCN STA8 = "START_FM1" //头仓第二退 STA8: A "STEP28" //STEP28 R "MOLD_SLIDE" //输出,夹模退 A "STEP28" JCN GO09 L B#16#0 T "FM353_CONTROL1" GO09: A "STEP28" L S5T#1S SS T 18 A "STEP28" A T 18 A "STEP31" //并行序列 1 合并 S "STEP29" R "STEP28" R T 18 R "STEP31" A "STEP29" //STEP29 R "MOLD_JAW" //输出,打开夹具,释放成品

Page 284: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–276–

A "STEP29" A "REFERENCE1" S "STEP30" R "STEP29" R "REFERENCE1" A "STEP29" JCN STA9 = "START_FM1" //尾仓找家 STA9: A "STEP30" //STEP30 S "MOLD_JAW" //输出,合拢夹具 S "COUNT_OUT" CD C 1 //计数 L C 1 //计数 T "DB3_FM".CARE.CARE1 //计数 AN C 1 //计数 CD C 10 //计数 L C 10 //计数 T "DB3_FM".CARE.CARE0 //计数 A C 10 //计数 AN C 1 //计数 L "DB3_FM".CARE.CARE_RAD //计数 S C 1 //计数 L "DB3_FM".CARE.CARE_RAD //计数 T "DB3_FM".CARE.CARE1 //计数 A "STEP30" L S5T#500MS SS T 19 A "STEP30" A T 19 R "RUN_STATUS" R "CYCLE_FLAG" S "STEP2" //.............// R "STEP30" R "COUNT_OUT" R T 19 A( O "FIRE_LIMIT" O "TAILSTOCK_LIMIT_RIGHT" O "TAILSTOCK_LIMIT_LEFT" ) JC ALAR WAIT: L "INPUT" //采样输入信号 T "IMAGE_INPUT" L "HAND_INPUT" T "IMAGE_HAND_INPUT" A "BUZZER_RESET" FP "BUZZER_RESET_FLP" R "ALARM_OUT" A "MODE" JC JUST A "START_INPUT" //检测启动信号 FP "FLM_START"

Page 285: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 9 章 小功率金卤石英吹泡机控制系统

–277–

= "START" JUST: A( O "START" O "RUN_STATUS" ) AN "CONSIS" A C 1 //计数 A C 10 //计数 = "RUN_STATUS" = "CYCLE_FLAG" A "STOP_INPUT" //检测 STOP 信号 FP "FLM_STOP" = "STOP" A "STOP" S "STOP_RUN" L "IMAGE_OUTPUT" //控制结果送外设 T "OUTPUT" L "IMAGE_HAND_OUTPUT" T "HAND_OUTPUT" A "EMERGENCY" //急停键处理 JCN GO10 //-------------报警处理------------------- ALAR: SET S "STEP0" R "STEP33" R "SPINDLE" S "HEAD_COLLECT" //打开头仓夹头 S "TAILSTOCK_COLLECT" //打开尾仓夹头 R "MOLD_SLIDE" S "MOLD_JAW" R "MOLD_BLOW" R "TAILSTOCK_ENABLE" L 0 T MW 6 T MW 8 L B#16#0 T "FM353_CONTROL1" T "FM353_CONTROL2" SET S "STOP_FM353" R "REFERENCE1" R "REFERENCE2" S "ALARM_OUT" A "EMERGENCY" R "ALARM_OUT" A "FIRE1_H" R "FIRE1_O" //关火架 1 氧气 A "FIRE1_H" L S5T#300MS //定时 300ms 后关氢气 SS T 25 A "FIRE1_H" A T 25

Page 286: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–278–

R "FIRE1_H" //关火架 1 氢气 R T 25 A "FIRE2_H" R "FIRE2_O" //关火架 2 氧气 A "FIRE2_H" L S5T#300MS //定时 300ms 后关氢气 SS T 26 A "FIRE2_H" A T 26 R "FIRE2_H" //关火架 2 氢气 R T 26 L "IMAGE_OUTPUT" T "OUTPUT" L "IMAGE_HAND_OUTPUT" T "HAND_OUTPUT" SET R "RUN_STATUS" //复位运行状态位 R "CYCLE_FLAG" //复位循环标志位 GO10: NOP 0

以上一大段程序是用于控制整个吹泡的工艺流程,包括从STEP0—STEP25的20多个相应

步骤,即包括对头仓夹、尾仓夹的夹紧和松开控制,也有对火架、尾仓的电机的运动控制,

也有对吹泡所需的N2的控制和用于点火的H2、O2的控制,还包括对吹泡管规格的选择,对工

件的记数,紧急情况下的报警及相应处理。

网络2是调用尾仓电机和火架电机的子程序,代码如下: CALL "AUFR_TF1" //调用尾仓电机子程序 CALL "AUFR_TF2" //调用火架电机子程序 BE

9.6 设计小结

通过本系统的设计,对西门子PLC的特点有了更深的理解,其具有以下一些特点:

(1)可靠性高、抗干扰能力强;

(2)编程简单、使用方便;

(3)设计、安装容易、维护工作量少;

(4)功能完善、通用性强;

(5)体积小、能耗低;

(6)性能价格比高。

吹泡机控制系统充分利用了西门子PLC S7-300的特点,对驱动电机、行程开关、电磁阀

及其他一些输入/输出点进行精确的控制,实现了更高的精度和参数指标,节省了原材料的浪

费,提高了产品的合格率,实现了更高的经济效益。

本章以吹泡机控制系统为实例,给出了PLC应用于工业控制的设计思路及相应步骤,希

望对大家对掌握PLC有更好的帮助。

Page 287: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第第 1100 章章 曳曳引引式式电电梯梯单单控控系系统统

随着社会的不断发展,楼房越来越高,而电梯成为了高层楼房的必须设备。经过人类一

个多世纪的不懈努力,电梯已经从手柄开关操纵电梯、按钮控制电梯发展到了现在的群控电

梯,为高层运输做出了不可磨灭的贡献。

在本章中所要讲解的是曳引式电梯的单控实现,从操纵方法来看,属于集选控制电梯。

本章以一个比较完整的电梯设计为例,介绍单控实现的具体方法。

10.1 电梯的相关知识

10.1.1 曳引式电梯的基本结构

曳引式电梯是垂直交通运输工具中使用最普遍的一种电梯,交流曳引电梯基本结构示意

图入图 10-1 所示。其基本结构介绍如下。

1-减速箱 2-曳引轮 3-曳引机底座 4-导向轮 5-限速器 6-机座 7-导轨支架 8-曳引钢丝绳

9-开关碰铁 10-紧急终端开关 11-导靴 12-轿架 13-轿门 14-安全钳 15-导轨 16-绳头组合

17-对重 18-补偿链 19-补偿链导轮 20-张紧装置 21-缓冲器 22-底坑 23-层门 24-呼梯盒

25-层楼指示灯 26-随行电缆 27-轿壁 28-轿内操纵箱 29-开门机 30-井道传感器 31-电源开关

32-控制柜 33-曳引电机 34-制动器

图 10-1 曳引式电梯结构图

Page 288: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–280–

1. 曳引系统 曳引系统由曳引机、曳引钢丝绳、导向轮及反绳轮等组成。

曳引机由电动机、联轴器、制动器、减速箱、机座、曳引轮等组成,它是电梯的动力源。

曳引钢丝绳的两端分别连接轿厢和对重(或者两端固定在机房上),依靠钢丝绳与曳引轮绳槽

之间的摩擦力来驱动轿厢升降。

导向轮的作用是分开轿厢和对重的间距,采用复绕型时还可增加曳引能力。导向轮安装

在曳引机架上或承重梁上。

当钢丝绳的绕绳比大于 1 时,在轿厢顶和对重架上应增设反绳轮。反绳轮的个数可以是

1 个、2 个甚至 3 个,这与曳引比有关。

2. 导向系统 导向系统由导轨、导靴和导轨架等组成。它的作用是限制轿厢和对重的活动自由度,使

轿厢和对重只能沿着导轨作升降运动。

导轨固定在导轨架上,导轨架是承重导轨的组件,与井道壁连接。

导靴装在轿厢和对重架上,与导轨配合,强制轿厢和对重的运动服从于导轨的直立方向。

3. 门系统 门系统由轿厢门、层门、开门机、联动机构、门锁等组成。

轿厢门设在轿厢入口,由门扇、门导轨架、门靴和门刀等组成。

层门设在层站入口,由门扇、门导轨架、门靴、门锁装置及应急开锁装置组成。

开门机设在轿厢上,是轿厢门和层门启闭的动力源。

4. 轿厢 轿厢是用以运送乘客或货物的电梯组件。它是由轿厢架和轿厢体组成。轿厢架是轿厢体

的承重构架,由横梁、立柱、底梁和斜拉杆等组成。轿厢体由轿厢底、轿厢壁、轿厢顶及照

明、通风装置、轿厢装饰件和轿内操纵按钮板等组成。轿厢体空间的大小由额定载重量或额

定载客人数决定。

5. 重量平衡系统 重量平衡系统由对重和重量补偿装置组成。对重由对重架和对重块组成。对重将平衡轿

厢自重和部分的额定载重。重量补偿装置是补偿高层电梯中轿厢与对重侧曳引钢丝绳长度变

化对电梯平衡设计影响的装置。

6. 电力拖动系统 电力拖动系统由曳引电机、供电系统、速度反馈装置、调速装置等组成,它的作用是对

电梯实行速度控制。

曳引电机是电梯的动力源,根据电梯配置可采用交流电机或直流电机。

供电系统是为电机提供电源的装置。

速度反馈装置是为调速系统提供电梯运行速度信号。一般采用测速发电机或速度脉冲发

生器与电机相联。

调速装置用于对曳引电机实行调速控制。

7. 电气控制系统 电气控制系统由操纵装置、位置显示装置、控制屏、平层装置、选层器等组成,它的作

用是对电梯的运行实行操纵和控制。

Page 289: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 10 章 曳引式电梯单控系统

–281–

操纵装置包括轿厢内的按钮操作箱或手柄开关箱、层站召唤按钮、轿顶和机房中的检修

或应急操纵箱。

控制屏安装在机房中,由各类电气控制元件组成,是电梯实行电气控制的集中组件。

选层器能起到指示和反馈轿厢位置、决定运行方向、发出加减速信号等作用。

8. 安全保护系统 安全保护系统包括机械和电气的各类保护系统,可保护电梯安全使用。

机械方面的有:限速器和安全钳起超速保护作用,缓冲器起冲顶和撞底保护作用,还有

切断总电源的极限保护等。

电气方面的安全保护在电梯的各个运行环节都有。

10.1.2 依照操纵方式的电梯分类

按操纵控制方式分,电梯可以分为以下几种。

1. 手柄开关操纵电梯 电梯司机在轿厢内控制操纵盘手柄开关,实现电梯的起动、上升、下降、平层、停止的

运行状态。它要求轿厢门上装有透明玻璃窗口或使用栅栏轿门,井道壁上有层楼标记和平层

标记,电梯司机根据这些标记判断楼层数及控制电梯平层。

按钮控制是一种简单的自动控制电梯,具有自动平层功能,常见的有轿外按钮控制、轿

内按钮控制两种控制方式:

(1)轿外按钮控制

电梯由安装在各楼层门口的按钮箱进行操纵。操纵内容通常为召唤电梯、指令运行方向

和停靠楼层。电梯在接收了某一层楼的操纵指令,在没有完成指令前是不接收其他楼层的操

纵指令的。这种操作方式常用于服务梯或层站少的货梯。

(2)轿内按钮控制

按钮箱在轿内,由司机操作。电梯只接收轿内按钮指令,层站的召唤按钮只燃亮轿内指

示灯(或启动电铃),不能截停和操纵电梯。

2. 信号控制电梯 这是一种自动控制程度较高的有司机电梯。除具有自动平层,自动开门功能外,还具有

轿厢命令登记、层站召唤登记、自动停层、顺向截停和自动换向等功能。司机只要将需要停

站的层楼按钮逐一按下,再按下启动按钮,电梯就自动关门运行。在这中间,司机只需操纵

启动按钮,一直到预先登记的指令全部执行完毕。在运行中,电梯能被符合运动方向的层站

召唤信号截停。采用这种控制方式的常为有司机客梯。

3. 集选控制电梯 集选控制是一种在信号控制基础上发展起来的全自动控制的电梯,它与信号控制的主要

区别在于能实现无司机操纵。其主要特点是:把轿内选层信号和各层外呼信号集合起来,自

动决定上、下运行方向,顺序应答。这类电梯需在轿厢上设置称重装置,以免电梯超载。轿

门上需设有保护装置,防止乘客出、入轿厢时被轧伤。

4. 并联控制电梯 2~3 台电梯的控制线路并联起来进行逻辑控制,共用层站外召唤按钮,电梯本身都具有

集选功能。

Page 290: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–282–

两台并联集选控制组成的电梯,基站设在大楼的底层,当一台电梯执行指令完毕后,自

动返回基站。另一台电梯在完成其所有的任务后,就停留在最后停靠的层作为备行梯。当重

新出现召唤指令时,备行梯首先应答、启动、运行。当备行梯运行后方出现召唤信号时,则

基站梯接收信号启动出发。基站体和备行梯不是固定不变的,而是根据运行的实际状况确定。

备行梯也有可能在执行轿厢内乘客的指令后停留在基站,优先应答基站召唤。

5. 群控电梯 是用微机控制和统一调度多台集中并列的电梯。群控有梯群的程序控制、梯群智能控制

等形式,下面介绍主要的两种形式。

(1)梯群的程序控制

控制系统按预先编制好的交通模式程序集中调度和控制。如将一天中的客流分成上行客

流量高峰状态、客流量平衡状态、下行客流量高峰状态、上行客流量比下行大的状态、下行

客流量比上行大的状态和空闲时的客流量状态。电梯在工作中,按照当时客流状况,以轿厢

的负载、层站的召唤频繁程度、运行一周的时间间隔等为依据,自动选择或人工变换控制程

序。如在上行高峰期,对电梯实行下行直驶控制等。

(2)梯群智能控制电梯

智能控制电梯有数据的采集、交换、存储功能,还有进行分析、筛选、报告的功能。控

制系统可以显示出所有电梯的运行状态,通过专用程序分析电梯的工作效率、评价电梯的服

务水平。计算机根据当前的客流情况,自动选择最佳的运行控制程序。

10.1.3 电梯的控制功能

现代电梯可实现的功能如下,这些功能有的是厂家作为标准功能配置在电梯上的,有的

可按用户要求配置。

(1)司机操作:由司机关门启动电梯运行,由轿内指令按钮选向,厅外召唤只能顺向

截梯,自动平层。

(2)集选控制:集选控制是将轿厢内指令与厅外召唤等各种信号集中进行综合分析处

理的高度自动控制功能。它能对轿厢指令、厅外召唤登记,停站延时自动关门起动运行,同

向逐一应答,自动平层自动开门,顺向截梯,自动换向反向应答,能自动应召服务。

(3)下行集选:只在下行时具有集选功能,因此厅外只设下行召唤按钮,上行不能截

梯。

(4)独立操作:只通过轿内指令驶往特定楼层,专为特定楼层乘客提供服务,不应答

其他层站和厅外召唤。

(5)特别楼层优先控制:特别楼层有呼唤时,电梯以最短时间应答。应答前往时,不

理会轿内指令和其他召唤。到达该特别楼层后,该功能自动取消。

(6)停梯操作:在夜间、周末或假日,通过停梯开关使电梯停在指定楼层。停梯时,

轿门关闭,照明、风扇断电,以利节电、安全。

(7)编码安全系统:本功能用于限制乘客进出某些楼层,只有当用户通过键盘输入事

先规定的代码后,电梯才能驶往限制楼层。

(8)满载控制:当轿内满载时,不响应厅外召唤。

(9)防止恶作剧功能:本功能防止因恶作剧而按下过多的轿内指令按钮。该功能是自

Page 291: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 10 章 曳引式电梯单控系统

–283–

动将轿厢载重量(乘客人数)与轿内指令数进行比较,若乘客数过少,而指令数过多,则自

动取消错误的多余轿内指令。

(10)清除无效指令:清除所有与电梯运行方向不符的轿内指令。

(11)开门时间自动控制:根据厅外召唤、轿内指令的种类以及轿内情况,自动调整开

门时间。

(12)按客流量控制开门时间:监视乘客的进出流量,使开门时间最短。

(13)开门时间延长按钮:用于延长开门时间,使乘客顺利进出轿厢。

(14)故障重开门:因故障使电梯门不能关闭时,使门重新打开再试关门。

(15)强迫关门:当门被阻挡超过一定时间时,发出报警信号,并以一定力量强行关门。

(16)光电装置:用来监视乘客或货物的进出情况。

(17)光幕感应装置:利用光幕效应,如关门时仍有乘客进出,则轿门未触及人体就能

自动重新开门。

(18)副操纵箱:在轿厢内左边设置副操纵箱,上面设有各楼层轿内指令按钮,便于乘

客较拥挤时使用。

(19)灯光和风扇自动控制:在电梯无厅外召唤信号,且在一段时间内也没有轿内指令

预置时,自动切断照明、风扇电源,以利于节能。

(20)电子触钮:用手指轻触按钮便完成厅外召唤或轿内指令登记工作。

(21)灯光报站:电梯将到达时,厅外灯光闪动,并有双音报站钟报站。

(22)自动播音:利用大规模集成电路语音合成,播放温柔女声。有多种内容可供选择,

包括报告楼层、问好等。

(23)低速自救:当电梯在层间停止时,自动以低速驶向最近楼层停梯开门。在具有主、

副 CPU 控制的电梯中,虽有两个不同功能的 CPU,但都同时具有低速自救功能。

(24)停电时紧急操作:当市电电网停电时,用备用电源将电梯运行到指定楼层待机。

(25)火灾时紧急操作:发生火灾时,使电梯自动运行到指定楼层待机。

(26)消防操作:当消防开关闭合时,使电梯自动返回基站,此时只能由消防员进行轿

内操作。

(27)地震时紧急操作:通过地震仪对地震的测试,使轿厢停在最近楼层,让乘客迅速

离开,以防由于地震使大楼摆动,损坏导轨,使电梯无法运行,危及人身安全。

(28)初期微动地震紧急操作:检测出地震初期微动,即在主震动发生前就使轿厢停在

最近楼层。

(29)故障检测:将故障记录在微机内存(一般可存入 8~20 个故障),并以数码显示

故障性质。当故障超过一定数量时,电梯便停止运行。只有排除故障,清除内存记录后,电

梯才能运行。大多数微机控制电梯都具有这种功能。

10.2 集选控制电梯的总体设计

10.2.1 模型的总体介绍

本章的系统建立要使用实物模型,需要搭建一个电梯系统,电梯系统由电梯机械模型和

Page 292: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–284–

控制装置组成,其材料可以向有关单位购买或者个人制作。

为了能更加简洁明了地介绍电梯的各个功能实现,这里不完全依照原大小制作电梯,只

按照原尺寸缩小制造,当然有些装置的位置也不和真实装置的一致。此模型包括电梯曳引机、

变频器、控制单元、终端保护装置、轿厢和轿架、导轮、对重、曳引钢丝绳对重、厅门、召

唤按钮箱、层楼指示灯箱等组成部分。

如图 10-2 所示左边的图中是电梯的基本框架,其搭建有一定规则,每一层门厅都要有门

厅按钮,除了底楼和顶楼只需要一个门厅按钮以外,其余各层要安装两个门厅按钮。还需要

安装控制电梯平层和减速的传感器感应片,除了底楼和顶楼只各安装一片减速感应片和平层

感应片外,其余各层都要各安装两片减速感应片和平层感应片,而与这些感应片相对应的 4

个传感器安装在轿厢的顶端。由于模型大小的关系,轿厢并不能很大,因此轿厢内的按钮需

要外接;注意对重的搭配,其重量应该是轿厢重量加上满载重量的一半。在底楼和顶楼需要

安装机械式的限位器,保证电梯在失控的时候不会超过顶楼和底楼。曳引机在整个电梯的顶

楼,按照一般的机房设置,整个机房应该在电梯的顶楼,模型中的机房独立成了一个控制器,

只把曳引机留在电梯顶楼。

控制设备如图 10-2 的右图所示,由 PLC、变频器、电脑主机、PLC 控制键盘等组成,

其主要作用是通过 PLC 接收从电梯传来的信号、设置变频器控制电梯的上下运作、设定电梯

的运行模式等。

在下面的章节中会对几个比较重要的部分进行介绍。

图 10-2 电梯机械模型和控制装置

Page 293: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 10 章 曳引式电梯单控系统

–285–

10.2.2 电梯曳引机部分

电梯的曳引机通常由曳引电动机、制动器、减速箱及座底等组成。

电梯曳引电动机并不是通常提及的普通工业用的交流感应电动机,电梯是典型的位能负

载,根据电梯的工作性质,电梯曳引电动机应具有的特点如下:

� 能频繁地起动和制动;

� 起动电流较小;

� 电动机运行噪声低;

� 对电动机的散热要作周密考虑;

� 电梯曳引电动机为双绕组双速电动机。

除了上述特点以外,电梯交流调速用曳引电动机往往备有两个轴伸端:其中一端为传动

端,与减速器耦合;另一端为非传动端,通常装有飞轮,用以增加运动系统的转动惯量,改

善起动过程乘坐舒适感。

电梯曳引机如图 10-3 所示。

图 10-3 电梯曳引机

拖动装置的动力通过减速箱传到曳引轮上的曳引机称为有齿曳引机,本模型用的是有齿

曳引机,如上图所示,三相交流电动机是中间灰色电机,其后是绿色的减速箱,在电动机前

还有一个装置,此装置是 A-B 相编码器,如图 10-4 所示。

图 10-4 A-B 相编码器

Page 294: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–286–

A-B 相编码器的作用是把电动机所转的圈数按照一定的编码规则记录下来,保存在 A-B

相高速计数器中。此类计数器从 PLC 的一个高速输入端输入 A 相计数脉冲信号,从 PLC 的

另一个高速输入端输入 B 相计数脉冲信号,C251~C255 都是这一类的计数器,本程序中将使

用 C251 计数器。

10.2.3 限位器和传感器部分

在整个系统中一共使用了 4 个限位器和 4 个传感器,安装位置如图 10-5 和图 10-6 所示。

4 个限位器是机械的,图 10-5 中只有上行减速限位器和上行平层限位器,下行的与这两

个类似。在图 10-5 中的铜片是和图 10-6 中的 4 个传感器配合使用的,只有当传感器与相应

的铜片对齐时,传感器上的红灯才会亮,因此铜片的位置调整是非常麻烦的事情,需要很多

时间和耐心才能很好地矫正铜片位置。

图 10-5 限位器和感应片

图 10-6 传感器

Page 295: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 10 章 曳引式电梯单控系统

–287–

10.2.4 轿厢和开关门电动机部分

轿厢上除了上一节介绍的 4 个传感器以外还有开关门电动机也是很重要的,轿厢的外观

如图 10-7 所示。图 10-8 所示是开关门装置的放大图,左侧的是电动机,在齿轮带上有两个

绑定的机械限位器,这是确定轿门的状态是开还是关。当开关门电动机转动时,就会带动着

两根金属丝,改变限位器的状态,并以开关量的形式传送给 PLC。

图 10-7 轿厢外观

图 10-8 开关门装置

10.2.5 变频器部分

变频器的设置在模型建立中是比较重要的,本模型使用的是富士 E11 系列的变频器,如

图 10-9 所示,当然可以使用其他品牌的变频器。在本例电梯单控实现中并没有用到变频器的

所有功能,所涉及的只是此系列变频器的最基本的方面,设定几个初始值就可以了,操作方

法如下。

Page 296: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–288–

按 PRG/RESET 键,屏幕上出现 F00 的字样,然后按向上键,直到屏幕上出现需要修改

的功能编号,然后按 FUNC/DATA 键,屏幕上出现该功能编号所对应的数值,按向上键或者

向下键修改,最后按 FUNC/DATA 键保存此值。

图 10-9 富士 FVR-E11 系列变频器

FVR-E11 系列变频器的功能列表如表 10-1 所示。

表 10-1 FRV-E11S 系列变频器基本功能列表

功能

编码 名称 取值范围

最 小

单位

出 厂

设置

F00 数据保护 0:可更改数据

1:数据保护 - 0

F01 频率指令 1

0:键盘输入(向上键或者向下键)

1:电压输入

2:电流输入

3:电压电流输入

4:双极性电压

5:反模式电压输入

6:反模式电流输入

7:向上键向下键控制 1(初始为 0Hz)

8:向上键向下键控制 2(初始为最后一次输入的值)

- 0

F02 控制方法

0:键盘控制

1:正转或反转的信号控制

2:键盘控制(正转)

3:键盘控制(反转)

- 2

F03 最大频率 1 50Hz~400Hz 1Hz 60

Page 297: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 10 章 曳引式电梯单控系统

–289–

续表

功能

编码 名称 取值范围

最 小

单位

出 厂

设置

F04 基频 1 25Hz~400Hz 1Hz 60

F05 额定电压 1

(基频 1 下) 0 为不限制,范围 320V~480V 1V 380

F06 最大电压 1(最

大频率 1 下) 范围 320V 到 480V 1V 400

F07 加速时间 1 0.01s~3600s 0.01s 6.00

F08 减速时间 1 0.01s~3600s 0.0.1s 6.00

一共有 32 个基本功能编码,不过本次最多使用其中的 9 种。请注意,一定要调整 F02

为 1。才能正常运行电梯,否则变频器只接收其自带键盘的控制,不会对 PLC 传来的信号做

出反应,其他数据可以按照需要定义。

10.2.6 控制器部分

控制器使用了三菱的公司 PLC,型号为 FX2N-128MT,有 64 点基本输入端和 64 点晶体

管输出端,如图 10-10 所示。

图 10-10 FX2N-128MT

在现实应用中,还有几个扩展部件与其相连,如图 10-11 所示。

图 10-11 其他扩展部件

Page 298: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–290–

图 10-11 中与 FX2N-128MT 相连接的是 FX2N-2DA(2 通道 D/A 转换器)、FX2N-2AD

(2 通道 A/D 转换器)、FX2N-32CCL(计算机与通讯连接模块)和 FX2N-232IF(RS-232 通

讯模块—1 通道),这 4 个部分主要是用来实现联网和计算机与 PLC 之间通信的。

10.2.7 其他组成部分

除上述部件外还有一些部分,比如导向轮、对重等,这里就不特别介绍了,不过要清楚

一下它们的位置,如图 10-12 和图 10-13 所示。

图 10-12 轿厢“内部”的按键

图 10-13 对重、导向轮和楼层指示灯

Page 299: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 10 章 曳引式电梯单控系统

–291–

10.3 集选电梯的工艺流程

整个电梯运作过程可以分成如下部分:门厅按钮被按下,轿厢开始加速运动;轿厢到达

限制速度,开始匀速运动;轿厢开始减速,准备平层;轿厢平层,并且触发开关门电机,开

始开门;到达开门限位,准备进入关门;触发开关门电机,开始关门;到达关门限位,等待

乘客进行轿厢内操作或者门厅召唤。

10.4 集选电梯的资源配置

为了明确每个输入端传入数据的意义和每个输出线圈所控制的量,给出 I/O 资源配置表

如表 10-2 所示。

表 10-2 系统 I/O 接资源配置表

元件名 作用

X000 编码器 A 相输出端,不可直接使用的输入端

X001 编码器 B 相输出端,不可直接使用的输入端

X002 关门限位开关,门关上时为逻辑 1

X003 开门限位开关,门打开时为逻辑 1

X025 电梯停止按钮

X050 上行平层限位开关(常闭)

X051 上行减速限位开关(常闭)

X052 下行平层限位开关(常闭)

X053 下行减速限位开关(常闭)

X054 上行平层接近开关

X055 上行减速接近开关

X056 下行减速接近开关

X057 下行平层接近开关

X060 一楼上行按钮

X061 二楼下行按钮

X062 二楼上行按钮

X063 三楼下行按钮

X064 三楼上行按钮

X065 四楼下行按钮

X066 四楼上行按钮

X067 五楼下行按钮

X070 厢内一楼按钮

X071 厢内二楼按钮

X072 厢内三楼按钮

Page 300: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–292–

续表

元件名 作用

X073 厢内四楼按钮

X074 厢内五楼按钮

X075 厢内开门按钮

X076 厢内关门按钮

X077 厢内警报按钮

Y030 电梯楼层指示灯(管脚)

Y031 电梯楼层指示灯(管脚)

Y032 电梯楼层指示灯(管脚)

Y033 电梯楼层指示灯(管脚)

Y034 电梯楼层指示灯(管脚)

Y035 电梯楼层指示灯(管脚)

Y036 电梯楼层指示灯(管脚)

Y037 电梯上行指示灯

Y040 电梯下行指示灯

Y050 一楼上行指示灯

Y051 二楼下行指示灯

Y052 二楼上行指示灯

Y053 三楼下行指示灯

Y054 三楼上行指示灯

Y055 四楼下行指示灯

Y056 四楼上行指示灯

Y057 五楼下行指示灯

Y060 厢内一楼指示灯

Y061 厢内一楼指示灯

Y062 厢内一楼指示灯

Y063 厢内一楼指示灯

Y064 厢内一楼指示灯

Y065 开关门电动机开

Y066 开关门电动机关

Y067 厢内警报指示灯

Y070 曳引机正转

Y071 曳引机逆转

Y072 曳引机减速

表 10-2 中所列出的设定完全由搭建系统时的连线决定,可以任意更改,在本章内提及的

Page 301: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 10 章 曳引式电梯单控系统

–293–

编程内容都依照这张表格的设定。

10.5 集选电梯 PLC 程序设计

10.5.1 所要实现的功能介绍

由于整套装置的限制,不可能完全实现 10.1.3 中的功能列表,只能依照模型设备的特殊

性制定以下功能。

(1)司机操作:由司机关门启动电梯运行,由轿内指令按钮选向,厅外召唤只能顺向

截梯,自动平层。

(2)集选控制:集选控制是将轿厢内指令与厅外召唤等各种信号集中进行综合分析处

理的高度自动控制功能。它能对轿厢指令、厅外召唤登记,停站延时自动关门起动运行,同

向逐一应答,自动平层自动开门,顺向截梯,自动换向反向应答,能自动应召服务。

(3)下行集选:只在下行时具有集选功能,因此厅外只设下行召唤按钮,上行不能截

梯。

(4)上行集选:只在上行时具有集选功能,因此厅外只设上行召唤按钮,下行不能截

梯。

(5)防止恶作剧功能:本功能防止因恶作剧而按下过多的轿内指令按钮。该功能是自

动将轿厢载重量(乘客人数)与轿内指令数进行比较,若乘客数过少,而指令数过多,则自

动取消错误的多余轿内指令。

(6)开门时间延长按钮:用于延长开门时间,使乘客顺利进出轿厢。

(7)故障重开门:因故障使电梯门不能关闭时,使门重新打开再试关门。

(8)故障检测:一套以编码器为参考的后备检测系统,能在第一时间发现电梯的故障,

然后回到底层,并发出警报,通知维修人员。

10.5.2 功能实现流程

程序流程图如图 10-14 所示。由于 PLC 语言的特殊性,其流程图和 C 语言等其他语言的

流程图有些区别,先简要说明一下主要程序段的功能。

(1)电梯复位程序段

此段程序有两个功能:一个是在系统上电以后,把轿厢的位置恢复到第一层的状态;另

一个是在系统出现故障以后,把轿厢的位置恢复到第一层并中止程序。

(2)用户输入程序段

用户的输入包括门厅的按钮和轿厢内的按钮,用户输入程序段完成在用户输入以后,马

上保持用户选择的状态,以便后面的程序判断。

(3)系统状态确定程序段

对在用户输入程序段中用户选择的状态进行分析和处理,确定程序应该执行哪一部分的

代码,以及更改电梯本身的状态。

(4)轿厢开关门程序段

Page 302: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–294–

控制轿厢的开关门,修改开关门的状态逻辑线圈,包括关门延时。

(5)检测故障程序段

此段程序在每个扫描周期都执行一次,一旦检测到有故障,就跳转到发生故障处理程序

段并执行。

图 10-14 程序流程图

(6)发生故障处理程序段

一旦检测到故障,就会更改运行电梯的状态,恢复电梯到底层,并中断程序的运行。

(7)设定上行目标

此段程序是用来上行过程中的下一个目标的,只有在上行以及电梯空闲时才会调用,如

果没有下一个目标,就会设定电梯为空闲。

Page 303: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 10 章 曳引式电梯单控系统

–295–

(8)设定下行目标

此段程序是用来下行过程中的下一个目标的,只有在下行以及电梯空闲时才会调用,如

果没有下一个目标,就会设定电梯为空闲。

(9)执行上行程序

此段程序包括控制电梯上行,检测是否应该减速或者停止电梯正转并且执行。

(10)执行下行程序

此段程序包括控制电梯下行,检测是否应该减速或者停止电梯正转并且执行。

10.5.3 编程思想

PLC 梯形图编程是一种并行的编程,编程的方法和 C++、Basic 等语言的方法不一样,

PLC 梯形图编程的传统思想是一种串行执行的思想,如果按照传统的 PLC 梯形图编程思想,

这段程序将会变得非常复杂,这种思想的程序可以在本次编写的程序的电梯复位中看到。但

是如果整个程序都是用这种思想,会使程序变得非常复杂,不容易修改,可读性也差,所以

要改变编程思想。

制作程序的模块化有很多好处。

(1)可读性强

模块化的设计是按照功能划分的,所以只要知道电梯的功能就能知道每一段程序的作

用,这样就比较容易理解。

(2)查找代码方便

PLC 的梯形图语言不像其他语言以文字来记录语言的,是用图形化的界面来记录,这样

势必会占用太多的屏幕空间,一屏梯形图所代表的语句就非常少,因此在翻查时会造成一定

麻烦,模块化设计以后,只要找到功能相关的程序块,再查找程序就简单很多。

(3)有利于扩充功能

由于梯形图的编程中没有函数之类的功能,语句就容易分散,因此增加功能是件比较困

难的事情,模块化以后,可以把一个模块看作为一个函数,为同一功能服务的代码在一起,

增加功能就简单了。

(4)方便调试程序

这里使用的梯形图的编辑工具 SWOPC-FXGP 没有 Debug 功能, 不能跟踪代码的执行

情况,只有监视功能,能看到在程序执行时,每个储存单位的数值变化,并且是显示在代码

的上方。模块化后,同种功能的梯形图就很接近,这样只要是一个功能出了问题,调试程序

时,只要看此模块的梯形图就可以了,不用翻查。

10.5.4 编程牵涉的部分语句

在分析程序之前,先介绍一些平时梯形图编程中并不常用的指令。

(1)主控语句

MC(Master Control)是主控指令,MCR(Master Control Reset)是主控复位指令,梯形

图如图 10-15 所示。目的操作数[D]的选择范围为输出线圈 Y 和逻辑线圈 M,常数 n 为嵌

套级数,其选择范围为 N0~N7。MC 和 MCR 指令必须成对使用。

Page 304: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–296–

图 10-15 MC 和 MCR 指令的梯形图

当 MC 指令的控制线路断开时,扫描 MC 与 MCR 指令之间各梯形图的情况相当于这些

梯形图的控制线路均处于“断开”,因此各计数器和具有失电保持的计数器的当前计数值和计

数值保持不变,SET、RST 等指令中各软设备的状态或数据也保持不变,而普通计时器则被

复位,各逻辑线圈和输出线圈均被切断。

如果需要在 MC 与 MCR 指令之间再使用 MC 指令,即嵌套数大于 1,则嵌套级的序号

应从小到大地编制,即最外层的序号最小,越往里层序号越大。

(2)跳转指令

CJ(Conditional Jump)是跳转指令,其梯形图如图 10-16 所示,其操作数一定是 PN。N

是一个 0~127 的整数,表示跳转的指针,如果接通 X000,那么 2~14 之间的代码将不再被

扫描。在其操作码之后加“P”,表示当其控制线路由“断开”到“闭合”时才执行跳转指令。

图 10-16 CJ 指令梯形图

Page 305: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 10 章 曳引式电梯单控系统

–297–

(3)子程序调用指令

CALL(Subroutine Call)是子程序调用指令,SRET(Sub-routine Return)是子程序返回

指令,这两个指令的使用如图 10-17 所示,PN 是子程序调用的指针。在操作码 CALL 之后加

“P”,表示当其控制线路由“断开”到“闭合”时才执行子程序调用指令。注意,子程序必

须编制在 FEND 指令之后。

FX2 系列 PLC 允许子程序嵌套,其最高嵌套级数为 5。就如图 10-17 所示,如果 X000

接通,那么,扫描到第 2 行的时候,就会执行 P10 内的子程序,如果 X002 没有接通,那么

程序执行到第 14 行就返回到第 2 行,执行下去,如果 X002 接通,那么将在第 10 行处跳到

第 15 行执行 P11 的子程序,执行到第 18 行,遇到 SRET 指令,返回第 10 行,继续执行,遇

到第 14 行的 SRET 后返回到第 2 行。

还有要注意,虽然有了 FEND 和 SRET,但是整个程序的 END 还是要的,否则写入 PLC

会出错。

图 10-17 子程序调用的梯形图

(4)加“1”指令和减“1”指令

INC(Increment)是加“1”指令,DEC(Decrement)是减“1”指令,它们的梯形图如

图 10-18 所示。两者的目的操作数[D]的选择范围都是 Y(输出线圈,包括 KnY)、M(逻

辑线圈,包括 KnM)、T(计时器)、C(计数器)、D(数据寄存器)、V(变址寄存器)。在

操作码 INC 或者 DEC 之后加“P”,表示当其控制线路由“断开”到“闭合”时才执行加“1”

指令或减“1”指令。

Page 306: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–298–

图 10-18 INC 指令和 DEC 指令的梯形图

如图 10-18 所示,只要 X000 接通,那么就会不断增加 D10,不会停止,因此,一般都

是使用 INCP,这样只是在 X000 刚被接通时,才增加一次,DEC 也是一样,一般使用 DECP。

(5)二数比较指令

CMP(Compare)是比较指令,其梯形图如 10-19 所示。其源操作数[S1]和[S2]的

选择范围是常数、X(包括 KnX)、Y(包括 KnY)、M(包括 KnM)、T、C、D、V,目的操

作数[D]的选择范围是 Y、M。

图 10-19 CMP 指令梯形图

注意,目的操作数[D]其实由 3 个位软设备组成,梯形图中标明的是其首地址,另外

两个位软设备紧随其后,目的操作数[D]由逻辑线圈 M0、M1、M2 组成。当执行比较操作

时:

若[S1]>[S2],则将逻辑线圈 M0 置“1”;

若[S1]=[S2],则将逻辑线圈 M1 置“1”;

若[S1]<[S2],则将逻辑线圈 M2 置“1”。

还要注意,执行完比较操作后,即使控制线路断开,其目的操作数的状态仍保持不变,

除非用 RST 指令将其复位。

(6)求“1”位总数的指令

SUM(Sum of ON bits)是求援操作数中“1”位总数的指令,其梯形图如图 10-20 所示。

在其操作码之前加“D”,表示其操作数为 32 位的二进制数,在操作码之后加“P”,表示当

其控制线路由“断开”到“闭合”时才执行求源操作数中“1”位总数的操作。

图 10-20 SUM 指令梯形图

在图 10-20 中,当常开触电 X000 断开时,不进行求源操作数 D0 中“1”位总数的操作;

当常开触点 X000 闭合时,每扫描一次该梯形图,就求源操作数 D0 中“1”位的总数,并将

Page 307: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 10 章 曳引式电梯单控系统

–299–

其结果存入目的操作数 D10 中。如果源操作数 D0 中没有“1”位,则将零标志专用逻辑线圈

M8020 置“1”。

(7)七段译码指令

SEGD(Seven-Segment Decoder)是显示十六进制数的指令,其梯形图如图 10-21 所示。

其源操作数[S]的选择范围是常数、X(包括 KnX)、Y(包括 KnY)、M(包括 KnM)、T、

C、D、V,目的操作数[D]的选择范围是 Y(包括 KnY)、M(包括 KnM)、T、C、D、V。

一般情况下都是使用输出线圈 Y 直接显示数字。在操作码之后加“P”,表示当其控制线路由

“断开”到“闭合”时才执行该指令的操作。

图 10-21 SEGD 指令梯形图

在图 10-21 中,当常开触点 X000 断开时,不执行 SEGD 指令的操作;当常开触点 X000

闭合时,每扫描一次该梯形图,就将数据寄存器 D10 中 16 位二进制数的低 4 位所表示的十

六进制数译码成驱动与输出端 Y000~Y007 相连接的七段数码管的控制信号,其中 Y007 始终

为 0,其接线方法如图 10-22 所示。

图 10-22 输出线圈的接线方法

10.6 集选电梯 PLC 程序说明

10.6.1 电梯的启动复位

启动复位的梯形图代码如图 10-23 所示。

电梯复位程序的作用是无论电梯在什么位置,都要让电梯停靠在第一层,下面来逐一分

析此段程序的执行过程。

代码中,M80 是常闭触点,在程序开始部分只设定一次,由于 M8000 可能会不起作用,

所以人工设定 M80 充当常闭触点是有必要的。为了保证这段代码在电梯复位以后不再使用

(除非电梯发生故障),设定逻辑线圈 M9 在常开状态下才能执行此段代码。逻辑线圈 M4 是

为了执行电梯逆转,并设定 M5,用以检测是否已经遇到下行减速限位开关。当遇到常闭触

点 X053(下行减速限位开关)断开时,停止曳引机逆转,并复位 M4,开始使电梯正转,向

上移动。电梯向上移动,直到遇到第一个上行减速接近开关(X055),由于第一层是没有此

Page 308: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–300–

开关的,所以遇到的一定是第二层的上行减速接近开关,此时就可以停止曳引机正转,开始

逆转,准备进入第一层。接着遇到的下行减速接近开关(X056)就是第一层的,执行电动机

减速。最后遇到下行平层接近开关(X057)当然也是第一层的,此时停止曳引机减速和逆转,

并设定 M9 为逻辑“1”,不再运行此段程序,复位到此就完成了。

注意,这里的 M50,是出现故障的时候才会变为逻辑“1”的线圈。

图 10-23 电梯的启动复位梯形图

实现代码如下: LD M80 //常闭触点 ANI M9 //M9 是电梯是否复位的标志 MPS

Page 309: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 10 章 曳引式电梯单控系统

–301–

ANI M4 //设定 M4 为高的两个条件 ANI M5 SET M4 //设定 M4 为逻辑 1 MRD AND M4 //如果 M4 为逻辑 1 SET Y071 //设置电梯逆转 SET M5 //并设置 M5 MRD AND M5 ANI X053 //遇到下行减速限位开关 RST Y071 //停止曳引机逆转 RST M4 //复位 M4 SET Y070 //电梯开始正转 SET M6 //设置下一个动作的标志 MRD AND M6 AND X055 //碰到第一个上行减速接近开关 RST Y070 //电梯停止上升(正转) SET Y071 //电梯进入逆转 SET M7 //设置下一个动作的标志 RST M6 MRD AND M7 AND X056 //遇到下行减速接近开关 SET Y072 //曳引机减速 SET M8 //设置下一个动作的标志 RST M7 MPP AND M8 AND X057 //遇到下行平层接近开关 RST Y071 //停止曳引机转动 RST Y072 MPS ANI M50 //故障标志符不成立的情况下 SET M9 //设置 M9,代表电梯初始化完成 MPP

RST M8

10.6.2 电梯参数初始化程序

初始化程序定义了电梯运行所需要的部分逻辑线圈、数据寄存器的初始值。初始值定义

如表 10-3 所示。

表 10-3 初始值定义表

元件名 含义 初始值

D100 电梯当前位置变量 1

D101 电梯上行最近目标层 1

D102 电梯下行最近目标层 1

Page 310: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–302–

续表

元件名 含义 初始值

M101 电梯上行标志 逻辑“0”

M102 电梯下行标志 逻辑“0”

M103 电梯空闲标志 逻辑“1”

M104 电梯开门标志 逻辑“0”

M105 电梯关门标志 逻辑“0”

M106 开门完毕标志 逻辑“0”

D10 开门延时时间常数 20

M0 电梯系统启动标志 逻辑“0”

D142 第二层上行平层开关精确位置 60

D143 第三层上行平层开关精确位置 118

D144 第四层上行平层开关精确位置 176

D145 第五层上行平层开关精确位置 233

D146 上行平层限制位置 300

D151 第一层下行平层开关精确位置 0

D152 第二层下行平层开关精确位置 52

D153 第三层下行平层开关精确位置 111

D154 第四层下行平层开关精确位置 166

D161 第一层下行减速开关精确位置 3

D162 第二层下行减速开关精确位置 60

D163 第三层下行减速开关精确位置 117

D164 第四层下行减速开关精确位置 175

D172 第二层上行减速开关精确位置 52

D173 第三层上行减速开关精确位置 111

D174 第四层上行减速开关精确位置 168

D175 第五层上行减速开关精确位置 226

D176 上行减速限制位置 300

这些初始化语句都以图 10-24 中的语句驱动。

图 10-24 电梯参数初始化程序梯形图(部分)

只有在复位程序完全执行以后,逻辑线圈 M9 才会置为逻辑“1”,而 M0 是电梯启动的

标志,只有它在逻辑“0”才能进入初始化程序端。

还有一些需要说明,一系列精确位置是有一个换算方法的,实际上从编码器读出来的数

Page 311: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 10 章 曳引式电梯单控系统

–303–

字是非常大的,并且电梯向上运作的时候,此数字减少,而电梯向下运作的时候,此数字是

增加的,为了转换成便于理解的数字,使用了图 10-25 中所示的梯形图。

图 10-25 编码器数字解读

计数器 C251 会记录曳引电动机所转的圈数,然后使用 DDIV 指令把这个数字除以-1000,

在初始化结束以后,会有一条指令把 C251 置零,这样使得 C251 的数字只可能是负数,所以

要除以一个负数。D200 就是当前电梯的精确位置所保存的数据寄存器。

另外,X025 用来停止电梯运作的程序和主控程序如图 10-26 所示。

图 10-26 电梯停止与主控程序

如果电梯运作,按下 X025,就可以置 M0 为逻辑“0”,而 M0 是整个主程序的主控指令,

如 193 行所示,一旦 M0 为逻辑“0”,N0 主控就失效了,整个程序停止。

10.6.3 用户输入程序部分

用户输入程序部分是接收用户对门厅按钮和厢内按钮的操作,并将其保存到一定的逻辑

线圈中或者执行一定的指令加以处理,每个触点所对应的逻辑线圈以及其说明如表 10-4 所

示。

表 10-4 用户输入和系统状态逻辑线圈的对照表

输入触点 触点说明 对应的逻辑线圈 逻辑线圈的说明

X060 一楼上行按钮 M60 一楼上行按钮状态

X061 二楼下行按钮 M61 二楼下行按钮状态

X062 二楼上行按钮 M62 二楼上行按钮状态

X063 三楼下行按钮 M63 三楼下行按钮状态

X064 三楼上行按钮 M64 三楼上行按钮状态

X065 四楼下行按钮 M65 四楼下行按钮状态

X066 四楼上行按钮 M66 四楼上行按钮状态

X067 五楼下行按钮 M67 五楼下行按钮状态

X070 厢内一楼按钮 M71 厢内一楼按钮状态

X071 厢内二楼按钮 M72 厢内二楼按钮状态

X072 厢内三楼按钮 M73 厢内三楼按钮状态

Page 312: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–304–

续表

输入触点 触点说明 对应的逻辑线圈 逻辑线圈的说明

X073 厢内四楼按钮 M74 厢内四楼按钮状态

X074 厢内五楼按钮 M75 厢内五楼按钮状态

X075 厢内开门按钮 M76 厢内开门按钮状态

X076 厢内关门按钮 M77 厢内关门按钮状态

X077 厢内警报按钮 M50 检测出错线圈

一般的按钮都只需要使用 SET 指令设置其对应的状态就可以了,如图 10-27 所示。

图 10-27 用户输入程序(部分)

厢内报警按钮的触点如图 10-28 所示。

图 10-28 厢内报警按钮的触点

这里的 Y067 对应的就是厢内警报指示灯,而 M50 是系统有故障的标志,会直接使得电

梯复位并中止程序,此段梯形图将在检测故障子程序中出现。

10.6.4 系统状态确定程序

和上一段程序的作用正好相反,上面的程序可以说是 UI(User Input,用户输入)程序,

这段梯形图是 Output(输出)程序,基本模式和 UI 程序差不多,可以归纳为一个输出表,

如表 10-5 所示。

表 10-5 系统状态逻辑线圈和输出线圈的对照表

系统状态逻辑线圈 逻辑线圈的说明 相对应的输出线圈 输出线圈的说明

M60 一楼上行按钮状态 Y050 一楼上行指示灯

M61 二楼下行按钮状态 Y051 二楼下行指示灯

M62 二楼上行按钮状态 Y052 二楼上行指示灯

M63 三楼下行按钮状态 Y053 三楼下行指示灯

M64 三楼上行按钮状态 Y054 三楼上行指示灯

M65 四楼下行按钮状态 Y055 四楼下行指示灯

M66 四楼上行按钮状态 Y056 四楼上行指示灯

Page 313: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 10 章 曳引式电梯单控系统

–305–

续表

系统状态逻辑线圈 逻辑线圈的说明 相对应的输出线圈 输出线圈的说明

M67 五楼下行按钮状态 Y057 五楼下行指示灯

M71 厢内一楼按钮状态 Y060 厢内一楼指示灯

M72 厢内二楼按钮状态 Y061 厢内二楼指示灯

M73 厢内三楼按钮状态 Y062 厢内三楼指示灯

M74 厢内四楼按钮状态 Y063 厢内四楼指示灯

M75 厢内五楼按钮状态 Y064 厢内五楼指示灯

对开门状态和关门状态有特殊的处理,特殊处理梯形图如图 10-29 所示。

图 10-29 系统状态确定程序

M75 和 M76 分别是开关门按钮的状态,只有电梯不移动的时候,才可以执行开关门的

指令,所以要加上 Y070 和 Y071 的是否有接通的判断。如果开门状态接通,那么先取消关门

状态,避免冲突,同时也复位 M105,即电梯关门标志;还要复位 Y066,这样可以马上让开

关门电动机停止正转;开门完毕的标志 M106 也要复位;最后设置电梯开门标志为逻辑“1”,

复位 M75。如果关门状态被接通,自然相反,先复位开门状态 M75 和电梯开门标志 M104;

也要复位 Y065,停止开关门电动机逆转;设置开门完毕标志 M106 为逻辑“1”;最后设置电

梯关门标志为逻辑“1”,复位 M76。这样就完成了对电梯开关门标志的设置。

除了开关门以外的状态与指示灯可以用图 10-30 的梯形图实现。

Page 314: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–306–

图 10-30 除了开关门以外的状态与指示灯

在确定系统状态程序代码的结束部分还有一些起其他作用的梯形图,如图 10-31 所示。

图 10-31 辅助作用的程序段

图 10-31 所示的梯形图是显示现在所在层的层数和电梯上行指示灯、电梯下行指示灯的

代码。

图 10-32 的梯形图,用来判断是否应该进入开关门子程序,如果 M104(电梯开门标志)

为逻辑“1”,就跳转到 P60(电梯开门子程序);如果 M105(电梯关门标志)为逻辑“1”,

就跳转到 P70(电梯关门子程序)。只有 M104 和 M105 都为逻辑“0”时,才可以接通 N1 层

主控程序,N1 层的主控程序主要是处理电梯的移动,如果电梯处于开关门状态,那么就会切

断电梯移动的代码,保证电梯不会移动。

图 10-32 开关门子程序进入判断

10.6.5 电梯开关门子程序

首先学习开门程序,如图 10-33 所示。

图 10-33 开关门子程序(上半部分)

Page 315: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 10 章 曳引式电梯单控系统

–307–

在电梯开门标志 M104 满足 ON 条件的情况下,根据电梯开门完毕标志的逻辑值来判断

执行哪一部分梯形图。

如果 M106 不为逻辑“1”,那么就执行开门的程序,只有当 X003(开门限位开关,门打

开时为逻辑 1)接通时,设定 M106 为逻辑“1”,否则就让开关门电动机正转。

如果 M106 已经是逻辑“1”,即门打开完全,则开始用 T0 来计时,计时值为 D10,计时

完毕以后,接通 T0 触点,此时,接通电梯关门标志,并复位 M104 和 M106。如图 10-34 所

示。

图 10-34 开关门子程序(下半部分)

然后看一下关门的梯形图,结构与开门的梯形图很相似,以 M105 为驱动的条件,然后

根据 X002(关门限位开关,门关上时为逻辑 1)的逻辑值来决定执行的梯形图,当门完全关

闭以后,就复位 M106 和 M105,否则一直驱动 Y066,让开关门电动机逆转。

程序的代码如下: P60 LD M104 //M104 开门标志为逻辑“1” MPS ANI M106 //M106 如果处于逻辑“0”,意味 //着开门没有结束 MPS ANI X003 //如果开门限位还没有满足条件 OUT Y065 //持续开门 MPP AND X003 //如果已经到达开门限位 SET M106 //设置开门完毕的标志 OUT T0 D10 //开始计时,时间常数存在 D10 AND T0 //如果计时完成 SET M105 //设置关门标志为逻辑“1” RST M104 //并初始化开门标志 P70 LD M105 //如果处在关门的情况下 MPS ANI X002 //如果没有达到关门限位 OUT Y066 //持续关门 RST T0 MPP AND X002 //如果到达关门限位 RST M106 //初始化 M105 和 M106 RST M105

Page 316: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–308–

P79 SRET

10.6.6 检测故障子程序

故障检测子程序的跳转指令如图 10-35 所示。

图 10-35 故障检测子程序的跳转指令

P110 就是检测故障子程序,其内容可以分为 4 个部分:

(1)检测故障专用比较线圈的复位

检测故障需要用到比较指令 CMP,此指令需要用 3 个逻辑线圈用以保存比较结果,在此

指定 M220、M221、M222,由于比较指令 CMP 并不会在比较之前自动复位这 3 个线圈,因

此在执行比较之前要使用 RST 指令人工复位。

(2)电梯上行过程中的故障检测

由于上行减速开关、上行平层开关、下行减速开关和下行平层开关的位置各不相同,所

以上行过程中的故障检测和下行过程中的故障检测要分开编程。先看看电梯上行过程中的故

障检测,如图 10-36 所示。

图 10-36 电梯上行过程中的故障检测梯形图

首先要保证只有在上行过程中才会执行此段梯形图的指令,使用 M101(电梯上行标志)

和 M102(电梯下行标志)的组合来判断。电梯停止移动的时候(电梯停靠在楼层时,也会

有上行、下行和空闲之分),是不能检测是否出现故障的(这是因为没有信息反馈),因此检

测是从电梯开始移动开始的。当 Y070(曳引电动机正转)从逻辑“0”变为逻辑“1”时,开

始检测,先记录电梯上行的目标层数,保存入 V1 和 V2 这两个变地址寄存器中备用,在电梯

的运动没有减速之前,需要检测的是上行减速传感器是否起作用,使用 CMP 语句比较 D200

(电梯当前的精确位置)和 D170V1(上行减速开关精确位置的变地址形式,如果 V1 是 2,

Page 317: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 10 章 曳引式电梯单控系统

–309–

D170V1 就是 D172)的大小,如果 D200 小于等于 D170V1,那么就继续检测,否则就是电

梯的上行减速传感器出现故障,会使得 M220 变为逻辑“1”,从而跳入故障处理程序。一旦

电梯减速,证明上行减速传感器没有发生故障,那么就开始检测上行平层传感器,同时用 INCP

指令为 V1 加上 1,保证上一句检测语句不会再起作用。检测上行平层传感器的方法是一样的,

用 CMP 指令检测 D200 和 D140V2(上行平层开关精确位置的变地址形式)的大小,只有 D200

大于 D140V2 时,才会跳入故障处理程序;如果 Y070 被复位,也就是说上行平层传感器没

有发生故障,此时使用 INCP 指令为 V2 增加 1,保证不会再让上行平层检测语句起作用,完

成上行检测;在下次电梯向上移动时,再次开始检测。

(3)电梯下行过程中的故障检测。

如图 10-37 所示。基本结构和上行检测梯形图相似,只是在比较语句和一些数值的存取

上有些改变。使用 M102 和 M101 的组合来判断电梯是否在下行运作中,在电梯停靠在某楼

层的时候是不会检测的,一旦 Y071(曳引电动机逆转)接通,则保存电梯下行目标层数 D102

到 V1 和 V2。在电梯还没有减速之前,检测下行减速传感器是否出现故障,如果 D200 大于

等于 D160V1(下行减速开关精确位置的变地址形式),那么就继续检测,否则就是设置 M50

(电梯故障标志)为逻辑“1”,进入故障处理程序段;如果电梯已经开始减速,证明下行减

速传感器没有问题,用 DECP 指令为 V1 减 1,检测下行平层传感器,比较 D200 和 D150V2

(下行平层开关精确位置的变地址形式)的大小,同样只有在 D200 小于 D150V2 时,才进

入故障处理程序段。下次电梯移动时,如果也是下行,还会执行这段梯形图进行检测。

图 10-37 电梯下行过程中的故障检测梯形图

(4)出现故障以后的处理梯形图

如图 10-38 所示。故障处理程序只有在 M50 被接通的情况才会执行,它是和电梯的复位

程序配合使用的。处理方法很简单,先停止曳引电动机的任何动作,然后初始化所有在复位

程序中的临时线圈,这样就可以在下一个扫描周期中,进入复位程序。然后复位 M0 切断主

程序的主控指令,再直接用跳转指令 CJ 跳到 P120(主程序的结尾,FEND 指令),这样就回

到了电梯复位的阶段。唯一不同的是 M50 被接通了,那么在复位程序执行到最后时,M9 是

不会被置为逻辑“1”的,整个程序就中止了。

Page 318: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–310–

图 10-38 出现故障以后的处理

这 4 个部分合起来就是检测故障的子程序,在检测完以后,如果没有出现故障,就会跳

转回到 N1 层主控程序的开头。

程序代码如下: P110 LD M80 RST M220 //初始化三个临时比较线圈 RST M221 RST M222 LD M101 //如果电梯处于上行状态 ANI M102 //并且下行状态为逻辑“0” MPS AND Y070 //并且电梯正在运转 MOVP D101 V1 //保存上行最近目标楼层到两个 MOVP D101 V2 //变地址寄存器备用 MRD ANI Y072 //如果电梯没有减速 CMP D200 D170V1 M220 //核对减速片位置的正确性 MRD AND Y072 //如果电梯已经减速 CMP D200 D140V2 M220 //核对平层片位置的正确性 INCP V1 //核对同时在 V1 上增加 1 保证 MRD //减速片的核对不会再发出错误 ANI Y070 //如果电梯停止向上移动,证明 INCP V2 //平层片位置没有错,V2 加 1 MPP AND M220 //如果出现错误情况 SET M50 //设置系统错误逻辑线圈为高 LD M102 //如果是下行状态 ANI M101 MPS AND Y071 //电梯正在向下移动

Page 319: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 10 章 曳引式电梯单控系统

–311–

MOVP D102 V1 //把下行最近目标楼层到两个 MOVP D102 V2 //变地址寄存器 MRD ANI Y072 //如果电梯没有减速 CMP D200 D160V1 M220 //核对减速片位置的正确性 MRD AND Y072 //如果电梯已经减速 CMP D200 D150V2 M220 //核对平层片位置的正确性 DECP V1 //核对同时在 V1 上减去 1 保证 MRD //减速片的核对不会再发出错误 ANI Y071 //如果电梯停止向下移动,证明 DECP V2 //平层片位置没有错,V2 减 1 MPP AND M222 //如果出现错误情况 SET M50 //设置系统错误逻辑线圈为高 P115 LD M50 //如果出现错误 RST Y070 //停止电梯的移动 RST Y071 RST Y072 RST M4 //复位四个关键的逻辑线圈 RST M5 RST M9 RST M0 SET Y067 //报警输出线圈 CJ P120 //直接跳到主程序结束

10.6.7 检测按键程序段

检测按键的梯形图如图 10-39 所示。

图 10-39 检测按键程序段

如表 10-4 所示,X060~X067 和 X070~X074 都是关于楼层的按钮。本段程序是为了检测

这些按钮中有没有一个或者几个被按下,用此来确定电梯的运行状态。使用 SUM 指令计算

X060~X067 和 X070~X073(K3X060 就是代表这些逻辑线圈)的逻辑“1”的位数,保存到

D111 中(其实有多少位是无所谓的,关键是有没有按钮被按下),如果 X074 被置逻辑“1”

或者 M8020 还是逻辑“0”,那就证明有按钮被按下,那么 M100(有键按下的标志)就被接

通,否则就复位 M100。其实这一段梯形图只是为了电梯空闲状态时的动作做准备工作,因

为其作用的特殊性,就单独分出一节来。

其代码如下: LD M80

Page 320: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–312–

SUM K3X060 D111 // X060~X067 和 X070~X073 中 MPS //逻辑“1”的个数 LDI M8020 //如果以上按钮中有被按下的 OR X074 //或者 X074 按钮被按下 ANB SET M100 //证明电梯有门厅按钮按下 MPP AND M8020 //如果以上按钮中没有被按下的 ANI X074 //并且 X074 按钮没有被按下 RST M100

10.6.8 清除标记子程序

此段子程序的作用是电梯在某个楼层的时候,清除已经完成任务的按钮状态,由于这段

程序在接下来的代码中多次被用到,所以先做分析。

这里将提到一个梯形图的编程方法,就是制作一个功能类似 C 语言中的 Switch⋯Case

语句的梯形图结构,根据一个变量的不同数值,执行不同的指令。梯形图如图 10-40 所示。

图 10-40 清除标记子程序

在子程序开头,把电梯当前所在的层数保存在变地址寄存器 V 中,并使用跳转指令 CJ

跳转到 P80V 中去,在 P80V 的最后总有一句跳转到 P99(清除标记子程序的结尾,SRET 指

令)的指令,这样就保证只有当前楼层的标记被清除。每一层对应的清除标记如表 10-6 所示。

表 10-6 清除标记对应表

对应清除的标记楼层数

对应的电梯状态 清除的逻辑线圈 逻辑线圈的作用

M60 厅门一楼上行按钮状态 一层楼 任何状态

M70 厢内一楼按钮状态

Page 321: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 10 章 曳引式电梯单控系统

–313–

续表

对应清除的标记楼层数

对应的电梯状态 清除的逻辑线圈 逻辑线圈的作用

电梯上行状态 M62 厅门二楼上行按钮状态

电梯下行状态 M61 厅门二楼下行按钮状态

M62 厅门二楼上行按钮状态 电梯空闲状态

M61 厅门二楼下行按钮状态

二层楼

任何状态 M71 厢内二楼按钮状态

电梯上行状态 M64 厅门三楼上行按钮状态

电梯下行状态 M63 厅门三楼下行按钮状态

M64 厅门三楼上行按钮状态 电梯空闲状态

M63 厅门三楼下行按钮状态

三层楼

任何状态 M72 厢内三楼按钮状态

电梯上行状态 M66 厅门四楼上行按钮状态

电梯下行状态 M65 厅门四楼下行按钮状态

M66 厅门四楼上行按钮状态 电梯空闲状态

M65 厅门四楼下行按钮状态

四层楼

任何状态 M73 厢内四楼按钮状态

M67 厅门五楼下行按钮状态 五层楼 任何状态

M74 厢内五楼按钮状态

清除的指令见图 10-40 中的梯形图,一层楼和五层楼的清除与 741 行的梯形图相似,其

余楼层的标记清除与 748 行至 758 行的梯形图相似。

实现代码如下: P80 LD M80 MOV D100 V //将当前电梯所在层数保存到 V CJ P80V //根据当前楼层数跳转 P81 LD M80 RST M60 //如果是 1 楼,只需要清除 M60 RST M70 //和 M70 CJ P99 //跳出子程序 P82 LD M101 //如果电梯上行 ANI M102 RST M62 //清除 M62 LDI M101 //如果电梯下行 AND M102 RST M61 //清除 M61 LD M103 //如果电梯空闲 RST M62 //清除 M61 和 M62 RST M61

Page 322: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–314–

LD M80 RST M71 //无条件清除 M71 CJ P99 //跳出子程序 P83 LD M101 //如果电梯上行 ANI M102 RST M64 //清除 M64 LDI M101 //如果电梯下行 AND M102 RST M63 //清除 M63 LD M103 //如果电梯空闲 RST M63 //清除 M63 和 M64 RST M64 LD M80 RST M72 //无条件清除 M72 CJ P99 //跳出子程序 P84 LD M101 //如果电梯上行 ANI M102 RST M66 //清除 M66 LDI M101 //如果电梯下行 AND M102 RST M65 //清除 M65 LD M103 //如果电梯空闲 RST M65 //清除 M65 和 M66 RST M66 LD M80 RST M73 //无条件清除 M73 CJ P99 //跳出子程序 P85 LD M80 RST M67 //如果是 5 楼,清除 M67 和 M74 RST M74 CJ P99 //跳出子程序 P99 SRET

10.6.9 电梯空闲状态处理程序

电梯空闲状态的处理比较简单,梯形图如图 10-41 所示。

图 10-41 电梯空闲状态处理程序

P40 是确定下一个电梯目标楼层的子程序,在这段子程序中,会确定 M103(电梯空闲标

志)的逻辑值。如果这段程序的执行结果依旧是没有任何其他楼层(就是不包括电梯当前停

Page 323: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 10 章 曳引式电梯单控系统

–315–

靠的楼层)需要响应的。那么 M103 就为逻辑“1”,那么 M100(有键按下标志)和 M103

都接通的话,就证明用户按下的是当前楼层的上行按钮或者下行按钮,便设置电梯开门标志,

在下一个扫描周期进入电梯开门程序。

接下来分析 P40 子程序,这个程序由两个部分组成。

第一部分是设定一个临时变量,把当前所在的层保存到 D110,然后使用一系列的指令,

来修改 D110 内的值,比如门厅一楼上行按钮或者是厢内一楼按钮被按下,那么就把数字 1

传给 D110;门厅二楼上行按钮、门厅二楼下行按钮或者厢内二楼按钮被按下,那么就把数字

2 传给 D110,以此类推。不用担心会有多个按钮被按下的情况,因为只要有一个按钮被按下,

就会改变电梯的运行状态,不会再进入这段梯形图,除非再次进入电梯空闲状态。

第二部分是一个比较程序,用来更改电梯的运行状态,梯形图如图 10-42 所示。

图 10-42 更改电梯的运行状态

比较 D110 和 D100 的数值,结果存放在 M200、M201、M202 中。如果是 D110 大于 D100,

那么下一个目标层就在当前层的上方,所以把 D110 传给 D101(电梯上行最近目标),并接

通 M101(电梯上行标志),复位 M103(电梯空闲标志),并让曳引电动机正转(设置 Y070

为逻辑“1”)。如果 D110 小于 D100,那么下一个目标层就在当前层的下方,所以把 D110 传

给 D102(电梯下行最近目标),接通 M102(电梯下行标志),复位 M103,并让曳引电动机

逆转(设置 Y071 为逻辑“1”)。如果 D110 等于 D100,那么一定是按了当前层的按钮,那么

电梯状态依旧为空闲,在跳回调用子程序的地方会进入开门程序。

在结束子程序、跳回到主程序后,会遇到 CALL P80 的指令,用于消除标记,那是因为

如果是按下了当前所在层的相对应按钮,那么应该马上熄灭。

这两部分相结合就完成了电梯空闲状态处理程序,使得在没有用户按下按钮的情况下,

Page 324: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–316–

保持原来的状态,并时刻检测按钮的状态,随时转变电梯状态。

实现的代码如下: P40 LD M80 MOV D100 D110 //保存当前所在楼层到 D110 LD M70 //如果 M70 或者 M60 被按下 OR M60 MOV K1 D110 //就把 1 赋值给 D110 LD M71 //如果 M71、M61、M62 中 OR M61 //有一个被按下 OR M62 MOV K2 D110 //就把 2 赋值给 D110 LD M72 //如果 M72、M63、M64 中 OR M63 //有一个被按下 OR M64 MOV K3 D110 //就把 3 赋值给 D110 LD M73 //如果 M73、M65、M66 中 OR M65 //有一个被按下 OR M66 MOV K4 D110 //就把 4 赋值给 D110 LD M74 //如果 M74 或者 M67 被按下 OR M67 MOV K5 D110 //就把 5 赋值给 D110 LD M80 CMP D110 D100 M200 //比较 D110 和 D100 的大小 MPS AND M200 //如果是 D110>D100 MOV D110 D101 //那么电梯上行,赋值上行目标 SET M101 //设置上行标志 RST M103 //清除空闲标志 SET Y070 //电梯正转 MRD AND M202 //如果是 D110<D100 MOV D110 D102 //那么电梯下行,赋值下行目标 SET M102 //设置下行标志 RST M103 //清除空闲标志 SET Y071 //电梯反转 MPP AND M201 //如果两者相等 SET M103 //电梯继续空闲 P59 SRET

10.6.10 确定上行最近目标层子程序

确定上行最近目标子程序,是为了监控用户的新的输入,确定是否需要更改电梯运行的

目标,如当电梯已经有了目标层,开始移动的时候,比如从一楼到 5 楼,当电梯经过二楼时,

4 楼门厅有人按下 4 楼上行按钮,那么电梯的上行最近目标层就应该改为 4,而不是 5。

此段子程序也是使用了前面提到的梯形图的 Switch⋯Case,但是有一些区别,因为每个

Page 325: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 10 章 曳引式电梯单控系统

–317–

扫描周期电梯的位置都会改变,而检测上行最近目标层只能检测当前层以上的层的门厅上行

按钮或者厢内按钮。比如,当前层是第 3 层,当前上行最近目标层是 5,那么只有按下 4 楼

门厅上行按钮或者厢内 4 楼按钮才能改变上行最近目标层,而按一楼、二楼都是没有用的。

具体实现如图 10-43 所示。

图 10-43 确定上行最近目标层子程序

Page 326: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–318–

P0 就是确定上行最近目标层的子程序的开始,首先得到当前所在层的层数,保存到变地

址寄存器 V 中,然后根据 V,使用跳转指令 CJ 跳转到相应的程序段。如果当前层数是 2,那

么就会直接跳到 P2,这样就会跳过 P1(检查二层楼按钮的状态),如果检测到 P2 中的 M64

(3 楼门厅上行按钮)或者 M72(厢内 3 楼按钮)被按下,那么就用 3 来取代原来的电梯上

行目标层,并跳转到 P19(确定上行最近目标层的子程序的结束,SRET 指令);如果没有检

测到这两个按钮被按下,就先检测 M63(3 楼门厅下行按钮),如果 M63 被接通,那么就先

把 3 层作为电梯上行最近目标,然后继续检测 P3 中的 M66(四楼门厅上行按钮)和 M73(厢

内四楼按钮)的状态,有被按下的,就用 4 来代替当前的电梯上行最近目标层,否则检测

M65(4 楼门厅下行按钮),如果被按下,就先保存,继续向下检测,以此类推,一直执行到

P4、P5。P4 检测的厢内 5 楼按钮的状态,而 M67 检测的是 5 楼门厅的下行按钮。如果到这

里为止都没有按钮被按下,那么就会进入 P5,证明电梯已经不在上行状态了,那么就复位

M101(电梯上行标志),并设 M103(电梯空闲标志)为逻辑“1”,在下一个扫描周期进入

电梯空闲处理程序。

具体代码如下: P0 LD M80 MOV D100 V //保存当前所在楼层到 V 中 CJ P0V P1 //当前在第一层 LD M62 //M62 或者 M71 被按下 OR M71 MOV K2 D101 //最近目标设置为 2 CJ P19 //跳出子程序 LD M61 //否则如果 M61 被按下 MOV K2 D101 //暂时设定目标为 2 P2 //当前在第二层 LD M64 //M64 或者 M72 被按下 OR M72 MOV K3 D101 //最近目标设置为 3 CJ P19 //跳出子程序 LD M63 //否则如果 M63 被按下 MOV K3 D101 //暂时设定目标为 3 P3 //当前在第 3 层 LD M66 //M66 或者 M73 被按下 OR M73 MOV K4 D101 //最近目标设置为 4 CJ P19 //跳出子程序 LD M65 //否则如果 M65 被按下 MOV K4 D101 //暂时设定目标为 4 P4 //当前在第 4 层 LD M74 //M74 被按下 MOV K5 D101 //最近目标设置为 5 CJ P19 //跳出子程序 LD M67 //否则如果 M67 被按下 MOV K5 D101 //设定目标为 5 CJ P19 //跳出子程序 P5

Page 327: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 10 章 曳引式电梯单控系统

–319–

LDI Y070 //如果运行到这里还没有跳出 ANI Y071 //同时电梯又不移动 RST M101 //那么设置电梯为空闲状态 SET M103 P19 SRET

10.6.11 电梯上行主程序

电梯上行主程序梯形图如图 10-44 所示。

图 10-44 电梯上行主程序

上一节分析的是电梯上行最近目标的确定,主程序对其进行调用,在电梯处于上行状态

时才行执行这一段程序,在没有进入电梯减速(即 Y072 没有置为逻辑“1”)之前,每一个

扫描周期,都要调用确定电梯上行最近目标层子程序,以便更改目标层。每次经过上行减速

传感器的感应铜片(X055)时,就代表电梯上了一层楼,D100(电梯当前层数)加 1,然后

比较 D100 和 D101(上行最近目标层)的大小,如果 D100 小于 D101,那么就是让电梯继续

上升,如果 D100 等于 D101,那就意味着电梯快到达了,要马上设置电梯为减速上升,这样

在下一个扫描周期,就会进入下面一部分梯形图。当电梯在减速上升的情况下,遇到上行平

层传感器的感应铜片(X054)时,就复位曳引机正转线圈(Y070)和电梯减速线圈,并设置

开门标志为逻辑“1”,以便下一个扫描周期进入的是开门子程序,最后调用 P80 清除本层的

相应按钮状态。

实现代码如下: LD M101 //如果电梯上行 ANI M102 MPS ANI Y072 //在没有减速的情况下 CALL P0 //调用确定上行最近目标层程序

Page 328: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–320–

MPS AND X055 //如果遇到上行减速感应片 INCP D100 //就代表上了一层楼 MPP CMP D100 D101 M200 //比较目标层和当前层 MPS AND M202 //如果当前层小于目标层 SET Y070 //继续上升 MPP AND X055 //如果遇到上行减速感应片 AND M201 //同时目标层和当前层相等 SET Y072 //那么开始减速 MPP AND Y072 //电梯在减速时 AND X054 //遇到上行平层感应片 RST Y070 //那么就停止电梯移动 RST Y072 SET M104 //设置开门标志 CALL P80 //清除楼层

10.6.12 确定下行最近目标层子程序

确定下行最近目标层梯形图如图 10-45 所示。

图 10-45 确定下行最近目标层子程序(上半部分)

确定下行最近目标层子程序的作用是在电梯处于下行过程中的每一个扫描都检测是否

需要更新电梯下行最近目标层,如果需要就进行修改,结构和指令应该和确定上行最近目标

Page 329: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 10 章 曳引式电梯单控系统

–321–

层子程序相似的,但是也有其特殊性。

可以看到在 P20 下紧接着出现的是 P25,而不是 P21 了,那是因为在电梯下行过程中只

能扫描当前层以下的层数,并且应该从高层数往低层数扫描。

首先把电梯的所在层数保存到变地址寄存器中,根据不同的层数跳转到不同的程序段,

比如当前电梯在第四层,那么就跳转到 P24,扫描 M63(3 楼门厅下行按钮)和 M72(厢内

3 楼按钮)的状态,如果有逻辑“1”,那么就设定新的下行最近目标层为 3,并跳转到 P39

(确定下行最近目标层子程序结束,SRET 语句),否则就检测 M64(三楼门厅上行按钮)的

状态;继续检测 P23 中代表二楼的按钮状态,依此类推。如图 10-46 所示。

图 10-46 确定下行最近目标层子程序(下半部分)

代码结尾处是 P21,在所有的相关按钮没有被按下的情况下,取消电梯的下行运作状态,

设置为电梯空闲等待状态。代码如下:

P20 LD M80 MOV D100 V //保存当前所在楼层到 V 中 CJ P20V //跳转到相应的程序 P25 //如果当前层为 5 LD M65 //M65 或者 M73 被按下 OR M73 MOV K4 D102 //改变最近下行目标为 4 CJ P39 //跳出子程序 LD M66 //否则检测 M66 是否被按下 MOV K4 D102 //是,临时保存 4 到下行目标 P24 //如果当前层为 4 LD M63 //M63 或者 M72 被按下 OR M72 MOV K3 D102 //改变最近下行目标为 3 CJ P39 //跳出子程序 LD M64 //否则检测 M64 是否被按下 MOV K3 D102 //是,临时保存 3 到下行目标 P23 //如果当前层为 3 LD M61 //M61 或者 M71 被按下 OR M71 MOV K2 D102 //改变最近下行目标为 2

Page 330: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–322–

CJ P39 //跳出子程序 LD M62 //否则检测 M62 是否被按下 MOV K2 D102 //是,临时保存 2 到下行目标 P22 //如果当前层为 2 LD M70 //M70 是否被按下 MOV K1 D102 //改变最近下行目标为 1 CJ P39 //跳出子程序 LD M60 //否则检测 M60 是否被按下 MOV K1 D102 //是,临时保存 1 到下行目标 CJ P39 //跳出子程序 P21 LDI Y070 //到这里还未跳出,并且电梯 ANI Y071 //没有移动 RST M102 //则设置电梯为空闲状态 SET M103 P39 SRET

10.6.13 电梯下行主程序

电梯下行梯形图如图 10-47 所示。

图 10-47 电梯下行主程序

本节分析的是主程序处理电梯下行状态的梯形图,要调用确定电梯下行最近目标层子程

序,用 M101 和 M102 的组合来保证只有电梯处于下行状态时才行执行这一段程序,在没有

进入电梯减速(即 Y072 没有置为逻辑“1”)之前,每一个扫描周期都要调用确定电梯下行

最近目标层子程序,以便更改目标层。每次经过下行减速传感器的感应铜片(X056)时,就

代表电梯下降一层楼,D100(电梯当前层数)相应减 1;然后比较 D100 和 D102(下行最近

目标层)的大小,如果 D100 大于 D102,那么就是让电梯继续下降,如果 D100 等于 D102,

Page 331: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 10 章 曳引式电梯单控系统

–323–

那就意味着电梯快到达了,要马上设置电梯为减速下降,这样在下一个扫描周期,就会进入

后一部分梯形图。当电梯在减速下降的情况下,遇到下行平层传感器的感应铜片(X057)时,

就复位曳引机逆转线圈(Y071)和电梯减速线圈,并设置开门标志为逻辑“1”,以便下一个

扫描周期进入的是开门子程序,最后调用 P80 清除本层的相应按钮状态。

实现代码如下: LDI M101 //如果电梯处于下行状态 AND M102 MPS ANI Y072 //如果电梯没有减速 CALL P20 //调用确定下行最近目标层程序 MPS AND X056 //如果途中遇到下行减速感应片 DECP D100 //代表到达下一层 MPP CMP D100 D102 M200 //比较目标层和当前层 MPS AND M200 //如果当前层大于目标层 SET Y071 //电梯继续下降 MPP AND X056 //遇到下行减速感应片的同时 AND M201 //目标层和当前层相等 SET Y072 //则电梯开始减速 MPP AND Y072 //如果在电梯减速运行中 AND X057 //遇到下行平层感应片 RST Y071 //停止电梯下降 RST Y072 SET M104 //设置开门标志 CALL P80 //调用清除楼层标记程序

10.6.14 顶楼底楼所有厢内按钮消除程序

按钮消除程序的梯形图如图 10-48 所示。

图 10-48 顶楼底楼所有厢内按钮消除程序

此程序是为了防止有人恶作剧而设计的,功能是在底楼和顶楼的时候消除所有厢内按钮

Page 332: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–324–

的状态,要求用户重新输入厢内的按钮,子程序的位置是 P100,使用 5 个 RST 指令复位

M070~M074 即可,在主程序中用图 10-48 的梯形图调用。

当电梯处于下行状态并遇到下行平层感应器的感应铜片时,对电梯的所在楼层进行检

测,如果 D100 等于 1,那么就是在一楼,调用 P100 的清除厢内标记的子程序,同时复位 C251

高速计数器(这是为了消除编码器的计数误差);如果在上行状态并遇到上行平层感应器的感

应铜片时,检测 D100 是否为 5,如果相等,那么也要调用 P100 的子程序。

10.7 设计小结

以目前的 PLC 技术和设备条件,已经可以自己搭建电梯群控系统,本章的模型是以群控

系统为目标而设计的,所以在单控电梯上并没有装备很多冗余的设备,可以说是一个完整的

骨架,通过这个模型的搭建和系统的设计能充分了解电梯的运行方法,还有掌握一种不一样

的 PLC 编程方式。在大多数 PLC 教科书上,都提到尽量少使用子程序、跳转等指令,因为

会给调试带来一定的麻烦。但是本设计所用的 PLC 编程方式恰恰相反,使用了大量子程序等

指令,使得程序的结构简单化,整个程序可扩展化,只要理解了此编程方式,在调试的时候

依然会有很清晰的思路。

Page 333: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第第 1111 章章 PPLLCC 与与 DDCCSS

工业自动化根据生产过程的特点可分为过程控制自动化、制造工业自动化以及各种自动

化测量系统,对于这些不同的工业对象发展了相应的控制技术,如对于流程工业的控制一般

采用集散型控制系统(DCS),离散型制造业通常采用可编程序控制器(PLC)用于逻辑/顺

序控制,而间隙过程工业则以 DCS 和 PLC 混合使用为好。在实际生产中,生产过程往往既

需要连续控制,又需要逻辑/顺序控制的功能,DCS 和 PLC 都是基于微处理器的数字控制系

统,它们相互渗透发展,不断扩大自己的应用领域。目前,PLC 已广泛地被应用在 DCS 中。

11.1 PLC 与 DCS 的比较

11.1.1 小型控制系统

PLC 与 DCS 的功能上的比较如表 11-1 所示。

表 11-1 PLC 与 DCS 功能比较

系统功能 DCS PLC

过程控制 强 弱

顺序控制 较弱 强

硬件稳定性 比较可靠 可靠

通信能力 强 较弱

系统管理能力 强 弱

诊断和报警能力 强 弱

系统融合能力 强 弱

早期的 PLC 以数字量的顺序控制为主。随着 PLC 功能的不断扩充,PLC 增加了模拟控

制功能、PID 调节功能、通信联网功能及分级控制功能等,在过去 DCS 占统治地位的化工、

冶金等行业也可由 PLC 进行控制。但 PLC 难以组成大型、复杂、综合的系统,如果过多的

PC 企图通过网络与过多的 PLC 通信,则可能导致瓶颈现象及计时上的困难。DCS 是由模拟

仪表控制系统发展而来,初期的功能以回路调节为主,之后又加入了顺序控制的功能。DCS

的设计思想是操作管理集中,控制分散以提高整个系统的可靠性及管理能力。DCS 的上述优

势使它在控制系统的高端市场仍占主流。但 DCS 比 PLC 价位高,对一些资金有限的中小型

企业来说有时难以承受。

由于 PLC 系统规模比较小,系统比较简单,因此在整个系统的稳定性上来说比 DCS 要

好。

Page 334: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–326–

在通信能力上,DCS 要比 PLC 强很多,因为 DCS 是建立在控制站+操作站这个平台上

的,依靠操作站(工控机)的强大功能,使得 DCS 具有很强的通信能力,包括形成一些复杂

的通信网络、远程控制网络、监控管理网络等,而这些都是 PLC 所无法实现的。

同样是依托操作站的强大的功能,DCS 的操作人员甚至是高级管理人员都可以通过管理

控制网络都可以对整个 DCS 系统进行监视,对系统的运行效率,生产情况进行总结和分析。

DCS 具有各种报警功能,能够记录操作员的操作记录、工程师的操作记录、现场信号异

常、正常信号触点的切换等必要的动作。

DCS 具有极强的系统融合能力,能够与很多不同形式的智能设备进行连接,使得工厂在

进行自动化的改造中能够最方便地使多种不同设备联入 DCS 系统,进行统一的监控和管理。

由以上的比较可以得出一个结论:在 DCS 相对于 PLC 的优势中,很大的一部分是上位

机的功劳。于是有个设想,能不能够将 PLC 与工控机结合起来,利用工控机的强大功能,增

强 PLC 的功能和适用范围?答案是肯定的,国内外已经有一些工控产品制造商推出了不同系

列的这种结合了工控机和 PLC 的系统。

将经过加固的 PC 机(或称工业 PC)的硬件与控制软件组合在一起,实施通常由专用的

PLC 执行的控制功能。或者说将 PLC 的控制功能“封装”在软件内,运行于 PC 机中。这样,

系统提供了 PLC 同样的功能,但却具备了 PC 环境下的各种优点。它将控制器、通信、人机

界面以及其他各种特定的应用全都合为一体,可大大简化工厂自动化的体系结构,还可以最

大限度地利用 PC 机日新月异的软硬件发展成果,其前景是很吸引人的。但这并不意味着 PC

控制将取代 PLC 控制,PC 控制只是替代了 PLC 的 CPU 模块,而不是替代 I/O 模块。I/O 模

块仍然是 PLC 原有的 I/O 系列或者是第三方 I/O 生产厂的产品,其发展方向必然是运用现场

总线、工业控制网络构筑开放系统。

美国 AB 公司已经推出了 Softlogix5 控制器新品,实际上它是由工控 PC 机、PC 控制引

擎软件包和 AB 公司的 I/O 产品构成。日本三菱电机公司开发了 A70BDE-ABF 总线控制卡件,

可以插在任意一个 PC/AT 兼容机的 16 位 ISA 插槽中。通过扩展电缆与 A 系列/Ans 系列的扩

展基板相连,这样 A70BDE-ABF 即可支持 3584 个 I/O 点(A 系列)或 1536 个 I/O 系(Ans

系列),在 PC 机则可运行基于 Windows NT 的实时软逻辑控制包。由研华公司所提供的工业

电脑 ADAM-5510 基于 PC 的可编程序控制器是典型的 SoftPLC 控制系统结构,它配有

Intellution 公司的 Paradgm-31 软件,是不同于传统 PLC 的选择组合。

这些系统,在硬件上源于 PLC,在上位机监控这部分来源于 DCS,这种介于 PLC 与 DCS

的产品既不属于 PLC 的范畴,也不属于 DCS,不妨称之为小型控制系统。

11.1.2 小型控制系统结构

小型控制系统基本结构如图 11-1 所示,该系统主要以 DCS 的设计思想为基础,综合 PLC

与 DCS 的各自优势。它主要由系统网络、操作员工作站、中央服务器、控制器及输入/输出

(I/O)模块等部分组成。

Page 335: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 11 章 PLC 与 DCS

–327–

图 11-1 小型控制系统结构图

11.2 小型控制器系统常用数据交换协议

随着计算机技术的发展,计算机在工业控制领域发挥着越来越重要的作用。各种仪表、

PLC 等工业监控设备都提供了与计算机通信的协议。但是,不同厂家产品的协议互不相同,

即使同一厂家的不同设备与计算机之间的通信协议也有可能不同。在计算机上,不同的语言

对驱动程序的接口有不同的要求。这样又产生了新的问题:应用软件需要为不同的设备编写

大量的驱动程序,而计算机硬件厂商又要为不同应用软件编写不同的驱动程序,这种驱动程

序可复用性非常低,而且即使硬件供应商在硬件上做了一些小小改动,也需要软件开发商重

新编写应用程序。显然,这种驱动程序不符合软件工程的发展趋势,在这种背景下产生了实

现不同智能设备或者控制系统互联的 OPC、DDE、ODBC 等数据交换协议。本章将以 intellution

的监控软件 IFIX 以及“亚控”的“组态王”为例,说明不同控制系统或者智能设备互联的方

法和注意事项。

11.2.1 多设备互联注意事项

(1)多设备互联时,物理层协议不相同的设备不能直接相连,如采用 RS-485 接口的设

备与采用 RS-232 接口的智能设备不能直接相连,需要加协议转换器将 RS-232 转为 RS-485

协议。

(2)协议类型的限制。有些协议本身不支持多设备互联,如 RS-232,所以采用 RS-232

Page 336: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–328–

通信的设备就不能直接实现多设备互联,而需要采用协议转换器,将 RS-232 协议转换成支

持多设备互联的 RS-485 协议,才能实现多设备互联(当然还必须满足第(3)点,设备需要

具有 RS-485 地址编码功能)。此外不同的协议在物理层、用户层/应用层可能存在差异,因此,

即便通信协议支持多设备互联,不同协议的通信系统也可能无法互联。

(3)多设备互联时,要求智能设备具有地址编码功能,以便总线(网络)中的主机对各

种设备进行区别。智能设备的地址编码常有两种方式:一是通过设置拨号开关或者跳线等硬

件方式;二是通过与设备相配套的软件进行软配置,将设备地址下载到设备中。对智能设备

来说,通常具备 RS-485 或者以太网接口,RS-485 网络的设备地址在 1~31 之间,所以通常都

用拨号开关或者旋转开关来设置;而采用以太网接口通信的设备,其地址通常通过软件来配

置。

(4)总线的应用层/用户层定义了设备与总线互联的规范,所以智能设备的访问协议需

要与总线的应用层/用户层协议兼容,否则需要加协议转换器。

(5)任何总线都有一定的访问速度,访问速度限制了总线上的数据流量,也限制了网络

中的设备数量。

(6)总线电气特性的限制,如 RS-485 网络最多只能有 31 个节点。

11.2.2 影响通信速率的因素

通信协议的选取决定了传输信息的总体流量,不同的通信协议在通信速率上有着很大的差别,

如 RS232 通信的常用速率是 9.6kbit/s、19.2kbit/s,但是以太网的传输速率是 10/100Mbit/s。

在选用相同的通信协议及其传输电缆的条件下,以下几个因素都将影响通信速率。

(1)响应时间。指突然发生意外事件时,仪表将该事件传输到网络上或执行器接收到该

信息马上执行所需的时间。这个时间是由 4 个方面决定的:仪表或执行器控制中断的能力,

信息在通信协议的应用层与物理层之间的传输时间,等待网络空闲的时间,避免信息在网络

上碰撞的时间。由于这个时间对大多数通信协议是一个随机数,因此大部分通信协议不给这

个参数。过程控制系统通常并不要求这个时间达到最短,但它要求最大值是预先可知的,并

小于一定值。

(2)巡回时间。指系统与所有通信对象都至少完成一次通信所需的时间,这个时间一般

可由系统组态来调整。对那些单纯靠优先级解决实时性的抢先式通信系统,当高优先级事件

发生比较频繁时,低优先级事件会长时间得不到响应。对这类通信协议,巡回时间是随机量,

预先不可知。过程控制系统希望最长巡回时间是预先可知的,并小于一定值。

11.2.3 智能设备互联的常用方法

不同智能设备间的互联可以有以下多种方法。

(1)利用特殊的协议转化器(网关)将某一智能设备的协议转化为另一智能设备的通信

协议。

(2)对符合 OPC 的标准智能设备,有两种方法实现设备互联:一是采用专用卡件(安

全、可靠、实时)基于网关连接,二是采用专用网卡和相关驱动软件基于 PC 连接。

(3)采用 DDE。对支持 DDE 标准的智能设备,可利用 DDE 实现设备互联。

Page 337: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 11 章 PLC 与 DCS

–329–

(4)利用监控软件自带的智能设备驱动程序,也可实现设备互联。

(5)利用 ODBC 标准。通过共享操作站的数据采集服务器中的数据库,利用 ODBC 标

准实现智能设备的数据交互。

基于 PC 和 IFIX 软件的集成需要注意:异种系统的集成需要配置相应的硬件适配卡和驱

动程序。在用户应用系统异种系统集成时,需要根据智能设备(不同厂家和不同型号的 PLC、

智能仪表、异种 DCS 等)的类型,购买一定的硬件设备和软件驱动程序,具体集成方案、软

件配置、硬件配置以及相关的费用等视智能设备厂家、类型、数量而定。

1. 采用特殊协议接口卡 特殊协议接口卡是针对特定的控制系统开发的网关卡,它在硬件上将一方的协议转化为

能被另一方识别的协议。例如 MODBUS 协议,很多系统在协议上都支持 MODBUS 协议,

在系统硬件中都有一块 MODBUS 协议通信卡,用来连接其他的设备。

2. 采用 I/O 驱动程序 采用 I/O 驱动程序,是 IFIX 集成第三方智能设备或者控制系统的常用方法,IFIX 提供了

500 多种 I/O 驱动程序。

(1)I/O 驱动的主要功能

① 从 I/O 设备采集所需数据进行链路维护

I/O 驱动要将来自设备的数据换成实时数据库需要的数据类型(实型、整型数、字符或

者字符串型等),同时要对越界数据(例如有的设备以“0XFFFF”(16 进制)表示回路断开,

有的设备以“? ? ”(ASCII)表示数据超过上限等)作合理解释,以避免操作人员得到错误

的数据。

为提高数据的采集效率和数据安全,要将所有数据连接项划分成只读、只写、可读可写

3 种类型,以防止误写、误读的发生。

一个 I/O 驱动可以同时处理多个同类设备,如果其中某个设备出现故障不能响应通信,

则 I/O 驱动要花费多余的时间等待其响应,从而减慢了整个系统的响应周期。因此对于故障

设备,I/O 驱动要减少访问频率,以免影响整个系统的数据刷新周期,当故障设备恢复正常

后再将设备的采集周期恢复原值。

② 执行来自操作员的 I/O 命令管理输出队列

界面系统要对送给 I/O 设备的命令数据进行第一步检查,检查数据类型是否正确,数据

是否越界。实时数据库对数据进行第二阶段检查,主要检查越界情况。I/O 驱动对来自操作

员的 I/O 命令要针对设备的特殊要求逐级作合法性检查,也是最严格的检查,如首先检查是

否只读数据,再检查数值是否越界(如串级回路的回路方式中 0 表示自动,1 表示手动,2

表示串级,其他数据则为非法的越界数据)等。

③ 与实时数据库系统进行无缝连接

I/O 驱动与实时数据库间应采用进程间通信、直接内存映射、OLE 方式或者其他更为有

效的内部通信方式,比较采用第三方的 DDE 设备驱动程序或 OPC Server 具有更高的通信效

率,同时可以迅速报告设备的故障信息,产生系统报警。

I/O 驱动对来自设备的数据可以进行初步预处理,在一段时间内数值没有发生变化的数

据可以不向实时数据库传送或减少传送次数,以进一步提高数据通信的效率。

④ 与设备驱动程序能够连接的设备种类

Page 338: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–330–

� DCS、PLC 等控制设备

带数字通信接口(RS-232/RS-422/RS-485、以太网、现场总线等)的智能仪表,如流量

计等计量设备、报警器等安全防爆设备、遥测传感设备。

� PC 总线工业计算机设备

带开放接口的基于 PC 的数据处理设备。

为了使工控软件能够做到更加通用,各个工控软件供应商都集成了国内外一些知名的工

控设备的接口驱动程序,这些工控设备将在后面做一些介绍。

(2)I/O 驱动程序的技术指标

① 采样周期

采样周期取决于 I/O 驱动调度效率,但实时数据库的数据刷新速度则不只是由 I/O 驱动

决定的,还与设备的响应速度、挂接的设备数量等因素有关。一般的串行设备当波特率为 9

600bit/s 时,数据通信速度可以保证不低于 900bit/s。

② 回写数据速度

经常需要由操作员向设备下发控制指令,如修改回路状态、运算系数及对控制过程实施

人为干预等操作,这些由上位机传送给设备的命令数据就是回写的数据,这些数据的写入速

度在不同的场合的要求是不同的。

(3)使用 I/O 驱动程序的注意事项

① 及时处理来自 I/O 驱动的系统报警。I/O 驱动发出的报警都是重要的系统报警,如设

备掉电、物理链路损坏、通信适配器故障等,必须及时处理,否则会引起更为严重的后果。

② 正确设置 I/O 驱动的采样周期。这是因为对于有些设备,如果采样周期太快,会引起

设备死机或工作不正常;如果采样周期太慢,又会影响数据刷新速度。

③ I/O 驱动必须设置安全密码,以防止非法退出。

④ 界面系统的回写数据频率不要大于采样周期的 3 倍。因为 I/O 驱动都是写优先的,当

实时数据库有回写数据的任务时,I/O 驱动会优先处理,而将采集任务作为次要任务拖后处

理。当实时数据库频繁不断地将大量回写数据送给 I/O 驱动时,I/O 驱动将无暇进行数据采集,

只能疲于应付数据回写任务。

(4)常见的 I/O 设备及其与 PC 间的连接方式

常见的 PC-based 设备及其通信连接方式如表 11-2 所示。

表 11-2 常见的 PC-based 设备及其通信连接方式

生产

商 产品型号 设备端通信适配器型号 PC 端通信适配器型号 通信方式

� �

PC、PCI 总线数

据 采 集 和 控 制

卡、PC/104 模

块、CompactPCI

工 业 控 制 计 算

RS-232/RS-422/RS-485、

以太网

RS-232/RS-422/RS-485、

以太网

采集/控制站与操作

站合一时,不使用通信协

议;否则在采集/控制站上

运行嵌入式监控组态软

件,通过 TCP/IP、CAN

等协议与操作站通信

Page 339: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 11 章 PLC 与 DCS

–331–

续表

生产

商 产品型号 设备端通信适配器型号 PC 端通信适配器型号 通信方式

ADAM4000 系

列 远 程 数 据 采

集模块

RS-422/RS-485 RS-422/RS-485 ADAM4000 通信协议

华 ADAM5000 系

列 数 据 采 集 控

制系统

RS-232/RS-422/RS-485/C

AN

RS-232/RS-422/RS-48

5/CAN CAN、ModBus 等

��

PC、PCI 总线数

据 采 集 和 控 制

卡、PC/104 模

块、CompactPCI

等 工 业 控 制 计

算机

RS-232/RS-422/RS-485、

以太网

RS-232/RS-422/RS-485、

以太网

采集/控制站与操作站合

一时,不使用通信协议;

否则在采集/控制站上运

行嵌入式监控组态软件,

通过 TCP/IP、CAN 等协

议与操作站通信

� �

IDAM7000 系列

远 程 数 据 采 集

控制模块

RS-422/RS-485 RS-422/RS-485 IDAM7000 通信协议

PC、PCI 总线数

据 采 集 和 控 制

RS-232/RS-485、以太网 RS-232/RS-422、以太

采集/控制站与操作站合

一时,不使用通信协议;

否则在采集/控制站上运

行嵌入式监控组态软件,

通过 TCP/IP 协议与操作

站通信

� �

Windows

CEBOX 工业控

制计算机

RS-232/RS-485 以太网 RS-232/RS-485 以太网 通过 TCP/IP 协议与操作

站通信

PC、PCI 总线数

据 采 集 和 控 制

卡、PC/104 模

块、CompactPCI

等 工 业 控 制 计

算机

RS-232/RS-422/RS485 、

以太网

RS-232/RS-422/RS-485、

以太网

采集/控制站与操作站合

一时,不使用通信协议;

否则在采集/控制站上运

行嵌入式监控组态软件,

通过 TCP/IP、CAN 等协

议与操作站通信

� �

ARK 系列远程

数 据 采 集 控 制

模块

RS-422/RS-485 RS-422/RS-485 ADAN4000 通信协议

Page 340: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–332–

续表

生产

商 产品型号 设备端通信适配器型号 PC 端通信适配器型号 通信方式

ARK5000 系列

数 据 采 集 控 制

系统

RS-232/RS-422/RS-485/

CAN 以太网

RS-232/RS-422/RS-48

5/CAN 以太网

CAN、ModBus、TCP/IP

(5)IFIX 中的 I/O 驱动程序

IFIX 融合多种标准化的软、硬件数据接口,通过挂接不同硬件厂商的 I/O 驱动程序,可

以方便地接入多种多样的现场总线设备和第三方集散控制系统、逻辑控制器、智能仪器仪表

和其他异构系统,实现全厂集成化和一体化。

I/O 驱动程序根据开发工具不同,分为 6.x 版本和 7.x 版本。

6.x 版本的驱动程序使用驱动程序开发包 ITK 开发,可以在 Windows 95/98 和 Windows NT

上运行。6.x 版本的驱动程序支持在同一台 PC 机上同时运行 8 个不同的驱动程序以连接 8 种

不同设备,驱动程序内置冗余功能。

7.x 版本的驱动程序使用 ASDK 或 OSDK(OPC Toolkit)开发,只能在 Windows NT 平

台上运行。7.x 版本驱动程序提供 OLE Automation 界面,可以脱离 IFIX 单独运行,并能在 VB

程序中引用其属性、方法。此驱动程序采用 COM/DCOM 技术,可以以 C/S 结构安装运行。

即通过网络远程控制 Server 部分的运行,进行远程驱动程序组态,控制运行及状态诊断。7.x

驱动程序支持无限设备连接通道定义,7.x 驱动程序大部分同时也是 OPC Server,可以和标

准的 OPC Client 连接。

下面介绍几种常用的异种系统 I/O 驱动程序。

① PLC � AB IFIX 针对 AB PLC 的驱动程序有多种连接方式,现分别说明如下。 ABH:使用串行口连接 AB DH+网络,简单易行,但速度受到串口限制,无需其他 AB

软硬件,驱动程序版本为 6.x。 ABR:现使用较多,可以支持 AB 的 KT、KTC、KTX、KTXD 以及以太网卡与 PLC 通

信,还需要 AB 的 RSLinx 软件支持。注意,不可使用 RSLinx Lite 版本,所需的 RSLinx 版

本是 RSLinx for Windows NT and 95 v2.00.97.30 或以上,OEM 版本也可。 主要支持的 PLC 类型有:PLC-2、PLC-3、PLC-5、PLC-5/250、SLC5、MicroLogix

1761-L10BWA 和 1761-L20BWA-5A PLC 等。需要注意的是 ABR I/O 驱动版本 6.51 以上才支

持 MicroLogix PLC。 ABE:使用较少,通过以太网方式连接 AB PLC,但需 AB 的 Interchange 软件支持。 ABO:第三方 OPC Server,可同 IFIX 的 OPC Client 直接连接。但也需 AB 的 RSLinx 支

持。开发方为 Matrikon Systems.Inc。 ② PLC � Modicon MB1:有两个版本,6.x 和 7.x 版,通过串行口连接所有支持 Modbus 串行通信协议的

设备。主要有 Modicon PLC 和其他控制仪表,如:Honeywell UDC、UMC、Moore 的控制仪

表等。支持 MODBUS RTU 和 ASCII 两种通信协议。当使用其与其他兼容设备通信时,注意

数据类型会与 Modicon 的数据类型有所差别。7.x 版本支持电话拨号连接和无线电连接。

Page 341: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 11 章 PLC 与 DCS

–333–

MMP:6.x 版本,支持通过 MODBUS Plus 网络连接 Modicon PLC。可支持双 SA85 网卡,

支持 984 系列和 Quantum 系列 PLC。可支持 Windows 95 和 NT,支持的网卡有 SA85、SM85、

AT-984、MC-984。

MBE:通过标准以太网卡连接 Modicon 的以太网通信模块。

③ PLC�Siemens SIE:通过串行口连接西门子 S5 PLC 的串行通信模块 CP525。 S_7:支持 3 种方式连接西门子 S7 系列 PLC,即 Profibus (L2)、工业以太网(H1)、

标准以太网(TCP/IP)。这 3 种连接方式分别叙述如下: � Profibus 支持 FMS 和 MPI 协议 所需 PC 硬件:CP 5412-A2 PC Board for Profibus。 所需西门子软件:S7- 5412/Windows NT 版本 1.10 或以上。 PLC 上的通信模块:CP-343-5、CP-443-5 EXT。 可直接连接在 PLC 的 MPI 通信口。 � 工业以太网(H1) 所需 PC 硬件:CP 1413 PC Board for Ethernet。 所需西门子软件:S7-1413/Windows NT 版本 1.10 或以上。 � 标准以太网(TCP/IP) 所需 PC 硬件:3-COM Etherlink III Card � Ethernet。 所需西门子软件:SOFTNET S7 for Industrial Ethernet / Windows NT。 其他诊断和配置 S7 PLC 的西门子软件: PG/PC Interface Software Configuration Release 4.0.7.4,153; STEP 7 Software version V 3.02 ; S5:支持 115U、135U、155U,支持 CP143 或 CP1430 通信模块。 S7:支持 300 和 400 系列 PLC,但不支持 CP443-TCP 模块。 TI:支持 545、555、560、565 系列,支持 CP1434TF 通信模块。 支持标准以太网卡:3COM S7 200 PPI:第三方 OPC Server 驱动,供货商 Softwaretoolbox,支持 S7-212、S7-214、

S7-215、S7-216 或以上。支持 Single Master MultiDrop RS485 方式以及拨号连接。 � 注意:S7 200 系列 PLC 支持自由方式协议通信,即可在 PLC 端通过软件编程定义

一个通信程序并使用标准协议,如 Modbus,然后在 IFIX 端使用相应的驱动程序。 ④ PLC——三菱 Mitsubishi MIT:6.x 版本驱动,使用 Mitsubishi Protocol format one 通过串口连接 A 系列 PLC,支

持 CPU 类型 AnA、AnN、AnS、AnU。支持 95/98/NT 多种平台,支持的三菱通信卡类型有

A1SJ71C24、AJ71C24、AJ71UC24。 MIE:6.x 版本驱动,以太网 TCP/IP 方式连接 MELSEC � A PLC,支持 MELSEC PLC CPU

类型:AnN/AnS、AnA、AnS、AnU,使用 MELSEC 网卡 AJ71E71 通信。应用于 Windows 95/98/NT 平台。

Mitsubishi FX NET 驱动:第三方 OPC Server,供货方 Softwaretoolbox,支持所有 FX、

FX2C、FX0n 系列,支持 FX NET RS-485 Multidrop 连接方式。

Page 342: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–334–

MEL:支持三菱 MELSECNET 10 光纤网络连接方式,正处于调试之中。

11.2.4 IFIX 采用 I/O 驱动集成 Modicon PLC

下面以 Modicon 的 PLC 为例,详细说明异构系统与 IFIX 的连接。

Modicon Quantum PLC 支持 3 种通信方式:MODBUS、MODBUS Plus 以及 Ethernet 方

式。 IFIX 都可以与之连接。

1. MODBUS 连接方式 安装 MB1 驱动程序,将编程电缆一端接在 CPU 的 MODBUS 口,一端接在计算机的串

口即可进行通信。

在 IFIX 的数据库软件中单击【新建数据块】,然后会启动 IFIX 的 I/O 配置窗口,该窗口

如图 11-2 所示,单击【Setup】按钮,就会出现如图 11-3 所示窗口,该窗口中可设置 MODBUS

的通信参数。

图 11-2 Modbus 连接对话框

图 11-3 端口参数设置

2. MODBUS Plus 连接方式 MODBUS Plus 连接方式需要在计算机中安装 SA85 卡和 MMP 驱动程序。通过 MODBUS

Page 343: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 11 章 PLC 与 DCS

–335–

Plus 电缆才可以进行通信。

将 SA85 卡安装到计算机内之前,必须设置其在 MODBUS Plus 网络上的地址和卡件的

内存地址。如 02.00.00.00.00 和 D0000。

在安装了 MODBUS 在控制面板中寻找 MODBUS Plus,选择 SA85 卡(单口或双口),

如图 11-4 所示。

图 11-4 ModBus Plus 配置对话框

此时启动 IFIX,IFIX 会自动启动 WINNT 和 IFIX 服务,打开 I/O 设置,填入 PLC 的站

号,如有双机设备且程序已下载运行,在 Backup Route 中填入后备 PLC 站号,如图 11-5 所

示。

图 11-5 ModBus Plus 连接对话框

单击【Setup】按钮会弹出站号、地址设置对话框,如图 11-6 所示,填入本机站号。

3. Ethernet 连接方式 要使用 MODBUS 协议的以太网连接方式,计算机中必须安装网卡,MBE 6.0 驱动程序,

通过以太网电缆连接。使用 MODBUS 通信设置软件(Concept)进行配置时,在 Configuration

Page 344: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–336–

中首先必须选择允许以太网通信,如图 11-7 所示。

图 11-6 ModBus Plus 配置对话框 图 11-7 Ethernet 配置对话框

然后在 I/O Map 中加入该卡件,并选择通信方式为 IEEE 802.3(不是 Ethernet II),设置

IP 地址,如 10.100.100.1。如果 Quantum 以太卡是第一次使用,其 IP 地址标注在其正面。建

议先采取其他的方式通信,将 PLC 的配置包括 IP 地址下载到 PLC 中,如图 11-8 所示。

图 11-8 Ethernet 配置对话框

在 IFIX 的 I/O 设置中,填入以太网地址 10.200.200.1(读者可以根据实际情况自行选择

地址进行设置),即以太网模块的地址。Port 口缺省为 502。如果计算机通过 Modicon 网桥和

ModBus+网络通信,则在“IP Addr”中填入网桥地址,“Index”中填入该网桥中对照表 ModBus+

的 Index,如图 11-9 所示。

图 11-9 Ethernet 配置对话框

单击【Setup】按钮弹出通信参数设置对话框,填入本机地址,如 10.100.100.2,它们必

须在同一个网段中,如图 11-10 所示。

Page 345: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 11 章 PLC 与 DCS

–337–

图 11-10 Ethernet 配置对话框

如果所有设置正确,启动 IFIX 的任务控制,可以看到相应的 I/O 驱动程序处于 Active(激

活)状态,如图 11-11 所示,驱动器的发送和接收应有相应数据,如果为 0,可根据

DRVSTA~DRVSTH 错代码到帮助文件中查找原因。

图 11-11 任务控制对话框

11.3 DDE 动态数据交换技术

11.3.1 概述

DDE(Dynamic Data Exchange),是动态数据交换的简称。顾名思义,DDE 是对不同程

序在运行期间实现数据动态交换的一种通用技术。Windows 消息虽然是在不同程序窗口间传

送信息的最佳手段,但一条消息只能包含两个参数,不能传送较多的信息。内存块是存放较

多信息的重要手段,但不支持全局内存句柄的共享。DDE 正是建立在 Windows 内部消息系

统、全局原子和共享全局内存基础上的一种协议,用来协调 Windows 应用程序之间的数据交

换和命令调用。

DDE 协议使用 3 级命名—服务(Service)、主题(Topic)和数据项(item)来标识

DDE 所传递的数据单元。服务使应用程序具有提供给其他程序数据的能力,一般服务就是应

用程序的文件名,如 Word 的服务就是 Winword(可执行文件是 Winword.exe);主题是对服

务器有意义的信息单元,许多服务器都有默认的主题 System,但无法知道服务器确切有哪些

主题,除非查阅应用程序的相关技术文档。每次 DDE 客户与服务程序之间的对话都是先由

客户启动的,所以在每次客户启动之前,DDE 服务器必须先投入运行。

Page 346: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–338–

DDE 的连接方式有冷连接(Cool Link)、温连接(Warm Link)和热连接(Hot Link)3

种。在冷连接方式下,当 Server 中的数据发生变化后不通知 Client,但 Client 可以随时从 Server

读写数据。在温连接方式下,当 Server 中的数据发生变化后马上通知 Client,Client 得到通知

后将数据取回。在热连接方式下,当 Server 中的数据发生变化后马上通知 Client,同时将变

化后的数据直接送给 Client。

1. DDE 通信的数据交换过程及原理 两个同时运行的程序之间通过 DDE 方式交换数据时是 Client/Server 关系。一旦 Client

和 Server 建立了连接关系,则当 Server 中的数据发生变化后马上通知 Client。通过 DDE 方式

建立的数据连接通道是双向的,即 Client 不但能够读取 Server 中的数据,而且可以对其进行

修改。

DDE Client 程序向 DDE Server 程序请求数据时,它必须首先知道 DDE Server 程序的名

称(即 DDE Service 名)、DDE 主题名称(Topic),还要知道请求哪一个数据项(Item 名)。

DDE Service 名应该具有唯一性,否则容易产生混乱。通常 DDE Service 名就是 DDE Server

的程序名称,但不绝对,它是由程序设计人员在程序内部设定好的,并不是通过修改程序名

称就可以改变的。Topic 名和 Item 名也是由 DDE Service 在其内部设定好的。所有 DDE Server

程序和 Service 名、Topic 名都注册在系统中。当一个 DDE Client 向一个 DDE Server 请求数

据时,DDE Client 必须向系统报告 DDE Server 的 Service 名和 Topic 名。只有当 Service 名、

Topic 名与 DDE Server 内部设定的名称一致时,系统才将 DDE Client 的请求传送给 DDE

Server。当 Service 名和 Topic 名相符时,DDE Server 马上判断 Item 名是否是 DDE Server 中

的合法数据项,如果是,DDE Server 建立此项连接。建立了连接的数据发生数值改变后,DDE

Server 会随时通知 DDE Client。一个 DDE Server 可以有多个 Topic 名,Item 名的数量也不受

限制。

Windows 操作系统中有一个专门协调 DDE 通信的程序 DDEML(DDE 管理库)。实际上

Client 和 Server 之间的多数会话并不是直接传给对方的,而是经由 DDEML 中转。一个程序

可以同时是 Client 和 Server。

2. DDE 方式的优缺点 DDE 是最早的 Windows 操作系统面向非编程程序用户的程序间通信标准。很多早期的

Windows 程序均支持 DDE,当前的绝大多数软件仍旧支持 DDE。但是,这种方式通信效率

低下,当通信数据量大时数据刷新速度慢。在数据量较少时比较实用。

11.3.2 IFIX 中的 DDE 技术

IFIX 完全支持 DDE,可以与任何具备 DDE 接口的第三方控制系统交换数据。可以在 IFIX

数据管理器中建立位号使之与 DDE 服务器相连。

在设置了支持 DDE 驱动方式后,IFIX 在启动后就会启动 DDE 客户任务,查看 DDE 连

接状态,如图 11-12 所示。在 DDE 客户任务中,分别列出了 DDE 会话数目、链接回路以及

变量输出到 DDE Server 的状况。通过 DDE 客户任务可以查看 DDE 通信状况。

Page 347: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 11 章 PLC 与 DCS

–339–

图 11-12 DDE Client Task 窗口

IFIX 也允许 Excel 等 DDE 客户端访问 IFIX PDB(过程数据库)。位号格式为: DMDDE|DATA!NODE.TAG.TagField

如 DMDDE|DATA!Fix.A_in.F_CV。如果定义的位号使用了连接符“-”,那么需要将位

号加上单引号。

对 NetDDE,访问格式如下: ’\\Server Name\NDDE$’|’$DMDATA.DDE’!’Node.Tag.TagField’

11.3.3 组态王支持的 DDE 连接

“Kingview”支持动态数据交换(DDE),能够和其他支持动态数据交换的应用程序方便

地交换数据。通过 DDE,工程人员可以利用 PC 机丰富的软件资源来扩充“Kingview”的功

能,比如用电子表格程序从“Kingview”的数据库中读取数据,对生产作业执行优化计算,

然后“Kingview”再从电子表格程序中读出结果来控制各个生产参数;可以利用 Visual Basic

开发服务程序,完成数据采集、报表打印、多媒体声光报警等功能,从而很容易组成一个完

备的上位机管理系统;还可以和数据库程序、人工智能程序、专家系统等进行通信。

如果“Kingview”要和下位机交换数据,必须通过驱动程序(I/O 服务程序)实现。和

商业应用程序类似,每个驱动程序都规定了自己的应用程序名和主题名。在以下的例子中假

设工程人员使用的是 OMRON PLC,该公司开发的 OMRON 驱动程序的应用程序名为

OMRON,主题名为 PLC。

建立一个工程名为“DDE 连接”,在“Kingview”的数据词典里新建一个 I/O 变量,并且

登记服务器程序的 3 个标识名。当 Excel 作为“顾客”向“Kingview”请求数据时,要在 Excel

单元中输入远程引用公式: =VIEW|TAGNAME! 设备名.寄存器名

“设备名.寄存器名”指的是“Kingview”数据词典里 I/O 变量的设备名和该变量的寄存

器名。注意设备名和寄存器名的大小写一定要正确。

Page 348: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–340–

1.“Kingview”作为服务程序向 Excel 提供数据 假设“Kingview”通过驱动程序从下位机采集数据,Excel 又向“Kingview”请求数据。

“Kingview”既是驱动程序的“客户”,又充当了 Excel 的服务器。数据流向如图 11-13 所示。

驱动程序 Excel 组态王下位机

图 11-13 数据流向

(1)在“Kingview”中定义设备

启动工程浏览器,从左边的工程目录显示区中选择“设备”,然后在右边的内容显示区中

双击“新建”图标,则弹出“设备安装向导—信息总结”对话框,已配置的设备的信息显

示对话框中,如图 11-14 所示。

图 11-14 设备安装向导

定义的连接对象名为 ORMON (也就是连接设备名),定义 I/O 变量时要使用此连接设

备。

(2)在“Kingview”中定义 I/O 变量

在工程浏览器左边的工程目录显示区中,选择“数据库\数据词典”,然后在右边的目录

内容显示区中用左键双击“新建”图标,弹出“定义变量”对话框,在此对话框中建立一个

I/O 实型变量。如图 11-15 所示。

图 11-15 定义 I/O 变量

变量名设为 FromViewToExcel,这个名称由工程人员自己定义。选择“允许 DDE 访问”

Page 349: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 11 章 PLC 与 DCS

–341–

选项,该变量的项目名为“OMRON.AR001”。变量名在“Kingview”中使用,项目名是供

Excel 引用的。连接设备为 ORMON,用来定义服务器程序的信息,已在前面定义。

(3)创建画面

在 Kingview 开发系统中建立画面 test,在画面 test 中建立文本对象“%%%%”。如图 11-16

所示。

图 11-16 Kingview 运行系统输出该变量

为文本对象“%%%%”设置“模拟值输出”动画连接,具体操作如图图 11-17 所示。

图 11-17 建立变量输出动画连接

选择菜单“文件\全部存”,保存画面。在工程浏览器中选择菜单“配置\运行系统”,弹

出“运行系统配置”对话框,从对话框中选择主画面配置卡片,将画面 test 设置为主画面。

(4)启动应用程序

启动“Kingview”画面运行系统 View。View 启动后,如果数据词典内定义的有 I/O 变量,

View 就自动开始连接,然后启动 Excel,如图 11-18 所示,在 Excel 中引用 Kingview 变量。

选择 Excel 的任一单元,比如 r1c1,输入远程公式: =View|Tagname!OMRON.AR001

图 11-18 Excel 中引用 Kingview 变量

View 和 Tagname 分别是“Kingview”运行系统的应用程序名和主题名,OMRON.AR001

是“Kingview”中的 I/O 变量 fromViewtoExcel 的项目名。在 Excel 中只能引用项目名,不能

直接使用“Kingview”的变量名。输入完成后,Excel 进行连接。若连接成功,单元格中将显

示数值,如图 11-19 所示。

Page 350: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–342–

图 11-19 Kingview 运行系统输出

2.“Kingview”作为客户程序从 Excel 得到数据 此例中数据流向如图 11-20 所示。

图 11-20 数据流向图

“Kingview”作为客户程序,需要在定义 I/O 变量时设置服务器程序 Excel 的 3 个标识

名,即服务程序名设为 Excel,话题名设为电子表格名,项目名设置成 Excel 单元格名。步骤

如下所示。

(1)在“Kingview”中定义 DDE 设备

在工程浏览器中,从左边的工程目录显示区中选择“设备\DDE”,然后在右边的内容显

示区中双击“新建”图标,则弹出“设备配置向导”,已配置的 DDE 设备信息总结列表框如

图 11-21 所示。

图 11-21 利用设备安装向导定义 DDE 设备

定义的连接对象名为 Excel (也就是连接设备名),定义 I/O 变量时要使用此连接设备。

(2)定义变量

继续使用上面建立的名为“DDE 连接”的工程,在 Kingview 开发系统中定义新数据。

变量名设为 fromExceltoView,项目名设为 r2c1,表明此变量将和 Excel 第二行第一列的单元

进行连接。“变量属性”对话框如图 11-22 所示。

驱动程序 Excel 组态王 下位机

Page 351: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 11 章 PLC 与 DCS

–343–

图 11-22 Kingview 定义变量并与 Excel 进行连接

(3)在画面 test 上增加新图素

Kingview 运行系统输出变量如图 11-23 所示。

图 11-23 Kingview 运行系统输出变量

为文本对象“####”设置“模拟值输出”的动画连接,如图 11-24 所示。

图 11-24 对变量输出进行动画连接

设置完成后,选择菜单“文件\全部存”保存设置。

(4)启动应用程序

因 Kingview 运行系统 VIEW 和 Excel 都已在运行中,切换到 Kingview 运行系统。运行

系统重新编译画面程序,进行 DDE 连接。在 Excel 的 A2 单元(第二行第一列)中输入数据,

可以看到,VIEW 中的数据也同步变化。

特别的在 Excel 的 A2 单元中输入公式:

Page 352: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–344–

=SQRT(A1)

公式的含义是:A2 单元的值是 A1 单元值的平方根。利用 Excel 的功能,默认情况下,

每当任一数据发生变化时,公式的值都将重新计算。这样,从“Kingview”发送到 Excel 单

元 A1 的值改变时,单元 A2 的值也将同时变化,并传给“Kingview”中与之有连接的变量。

在“Kingview”中就可以得到这个变量的平方根,好像“Kingview”在独立计算一样。用类

似的方法,可以极大地扩充“Kingview”的功能(在“Kingview”中也有求平方根函数,此

处仅以 Excel 的函数为例)。

图 11-25 Kingview 与 Excel 交换数据

3.“Kingview”和驱动程序、Visual Basic 之间的动态数据交换 在 Visual Basic 可视化编程工具中,DDE 连接是通过控件的属性和方法来实现的。对于

作“顾客”的文本框、标签或图片框,要设置 LinkTopic、LinkItem、LinkMode 3 个属性。 control.LinkTopic=服务器程序名|主题名 control.LinkItem=项目名

其中 control 是文本框、标签或图片框的名字。

control.LinkMode 有四种选择:0=关闭 DDE;1=热连接;2=冷连接;3=通告连接。

如果“Kingview”作为“顾客”向 VB 请求数据,需要在定义变量时说明服务器程序的

3 个标识名,即应用程序名设为 VB 可执行程序的名字,把话题名设为 VB 中窗体的 LinkTopic

属性值,项目名设为 VB 控件的名字。

(1)“Kingview”作为服务程序向 VB 提供数据

此例中“Kingview”通过 OMRON 驱动程序从下位机采集数据,VB 又向“Kingview”请

求数据。数据流向如图 11-26 所示。

图 11-26 数据流向图

① 在“Kingview”中定义设备

在工程浏览器中,从左边的工程目录显示区中选择“设备”,然后在右边的内容显示区中

双击“新建”图标,则弹出“设备安装向导——信息总结”对话框,已配置的设备的信息显

示在对话框中,如图 11-27 所示。

定义的连接对象名为 ORMON(也就是连接设备名),定义 I/O 变量时要使用此连接设备。

驱动程序 VB 应用程序 组态王 下位机

Page 353: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 11 章 PLC 与 DCS

–345–

图 11-27 利用设备安装向导定义设备

② 在“Kingview”中定义 I/O 变量

在工程浏览器左边的工程目录显示区中,选择“数据库\数据词典”, 然后在右边的目录

内容显示区中用左键双击“新建”图标,弹出“定义属性”对话框,在此对话框中建立一个

I/O 实型变量。如图 11-28 所示。

图 11-28 Kingview 定义 I/O 变量

变量名设为 fromViewtoVB,这个名称由工程人员自己定义。项目名为 OMRON.HR001。

变量名在“Kingview”内部使用,项目名是供 VB 引用的,连接设备为 ORMON,用来定义

服务器程序的信息,已在前面定义。

③ 创建画面

在 Kingview 画面开发系统中建立画面,如图 11-29 所示。

Page 354: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–346–

图 11-29 Kingview 中输出变量

为文本对象“%%%%”设置“模拟值输出”动画连接,如图 11-30 所示。

图 11-30 Kingview 为变量输出建立动画连接

选择菜单“文件\全部存”,保存画面。选择菜单“数据库\主画面配置”,将画面 test 设置

为主画面。

④ 运行可视化编程工具 Visual Basic

选择菜单“File\New Project”,显示新窗体 Form1。设计 Form1 如图 11-31 所示。

图 11-31 VB 中建立窗体和控件

⑤ 编制 Visual Basic 程序

双击 Form1 窗体中任何没有控件的区域,弹出“Form1.frm”窗口,在窗口内书写

Form_Load 子例程,如图 11-32 所示。

图 11-32 VB 中为控件建立与 Kingview 变量的连接

Page 355: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 11 章 PLC 与 DCS

–347–

⑥ 生成可执行文件

在 Visual Basic 菜单中选择“File\Save Project”,为工程文件命名为 vbdde.vbp,这将使生

成的可执行文件默认名是 vbdde.exe。选择菜单“File\Make EXE File”,生成可执行文件

vbdde.exe。激活 OMRON 驱动程序和“Kingview”运行系统 VIEW。在 Visual Basic 菜单中

选择“Run\Start”运行 vbdde.exe 程序。窗口 Form1 的文本框 Text1 中显示出变量的值。如图

11-33 所示。

图 11-33 VB 接收 Kingview 的数据

(2)“Kingview”作为顾客程序从 VB 得到数据

本例中数据流向如图 11-34 所示。

图 11-34 数据流向图

使 VB 成为“服务器”很简单,只需把在“Kingview”中设置服务器程序的 3 个标识名,

并把 VB 应用程序中提供数据的窗体的 LinkMode 属性设置为 1,不必在 VB 中增加任何程序,

如图 11-35 所示。

图 11-35 VB 接收 Kingview 的数据并将数据传送到 Kingview

① 运行 Visual Basic,打开前面建立的工程文件 vbdde.vbp

将 LinkMode 属性设置为 1(source)。LinkTopic 属性设置为 FormTopic,这个值将在

“Kingview”中引用。

将文本框 Text2 的 Name 属性设置为 Text_to_VIEW,这个值也将在“Kingview”中被引

用。双击文本框 Text_to_VIEW,在弹出的窗口内输入如下程序所示。 Sub Text1_Change ( )

Text_to_VIEW.text= Sqr(text1.text) End Sub

驱动程序 VB 应用程序 组态王 下位机

Page 356: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–348–

窗体脚本显示如图 11-36 所示。

图 11-36 VB 中为控件建立与 Kingview 变量的连接

这段程序不是 DDE 连接所必需的。其作用是,每当文本框 Text1 的内容发生变化时,就

在文本框 Text_to_VIEW 中显示 Text1.text 的平方根。按照设定,Text1.text 是从“Kingview”

系统的 I/O 变量 FromViewtoVB 传递过来的,每当它改变时,Text_to_VIEW.text 将保持是它

的平方根,然后自动传递回 Kingview 中与之连接的变量。

② 生成 vbdde.exe 文件

在 VB 中选择菜单“File\Save Project”保存修改结果。选择菜单“File\Make Exe File”生

成 vbdde.exe 可执行文件。

③ 在“Kingview”中定义 DDE 设备

在工程浏览器中,从左边的工程目录显示区中选择“设备\DDE”,然后在右边的内容显

示区中双击“新建”图标,则弹出“设备安装向导”,已配置的 DDE 设备的信息总结列表框

如图 11-37 所示。

图 11-37 Kingview 中定义 DDE 设备

④ 在工程浏览器中定义新变量,设为 fromVBtoView,项目名设为服务器程序中提供数

据的控件名,此处是文本框 Text_to_VIEW,连接设备为 VBDDE。“变量属性”对话框如图

11-38 所示。

⑤ 修改画面

在画面 test 上增加图素“####”,更改为如图 11-39 所示。

Page 357: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 11 章 PLC 与 DCS

–349–

图 11-38 Kingview 中定义 IO 变量 图 11-39 Kingview 中输出来自 VB 的数据

为新增加的文本对象“####”设置“模拟值输出”的动画连接,如图 11-40 所示。

图 11-40 Kingview 中为变量输出建立动画连接

设置完成后,选择菜单“文件\全部存”。DDE 连接设置完成。

⑥ 先运行 Kingview,在 VB 中选择菜单“Run\Start”。“Kingview”从驱动程序得到变量

值,从 vbdde 程序中得到变量的平方根,如同“Kingview”独立运算一样,连接结果如图 11-41

所示。

图 11-41 Kingview 中为变量输出建立动画连接

Page 358: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–350–

如果画面运行异常,选择 VIEW 菜单“特殊\重新建立未成功的 DDE 连接”,连接完成后

再试一试以上程序。

(3)允许 DDE 访问选框的使用

Kingview 能够将从外部采集来的数据传送给 VB 或 Excel 使用,具体方法如下。

定义一外部设备为 OMRON PLC,变量设置界面如图 11-42 所示。

图 11-42 定义变量

选中允许 DDE 访问选框,此时如用 VB 或 EXCEL 与 Kingview 进行连接,其连接“设

备名.寄存器名”即为项目名 OMRON.HR100。其他部分与以上的编写相同,在 Excel 下调用,

如图 11-43 所示。

图 11-43 EXCEL 中引用 Kingview 变量

(4)VIEW 中与 DDE 有关选项

在 VIEW 启动时,自动进行 DDE 连接,若有未成功的连接,则显示如图 11-44 所示信息。

图 11-44 建立 DDE 连接未成功信息

Page 359: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 11 章 PLC 与 DCS

–351–

对话框中各个按钮意义如下:

继续:放弃此 DDE 连接的建立,而继续建立下一个连接。

再试:再次尝试建立此 DDE 连接。通常情况下,在发生建立 DDE 失败时,往往是没有

先启动服务程序,此时,可用 Alt+Tab 键切换到文件管理器,启动服务程序后,再选此按钮;

也可以暂时放弃建立连接,进入 VIEW 后选择菜单“特殊\重新建立未成功的连接”。

退出:VIEW 启动时选此按钮,则整个程序退出。

关闭信息框:选此按钮,则 VIEW 在进行 DDE 连接时不作提示。

与 DDE 有关的菜单项:

“特殊\重新建立 DDE 连接”:选此菜单后,“Kingview”先中断已经建立成功的连接(如

果有的话),然后,重新建立所有 I/O 变量与服务程序的连接。

“特殊\重新建立未成功的连接”:VIEW 重新建立未建立成功的 DDE 连接。已经建立成

功的 DDE 连接不受影响。

11.4 OPC 标准

11.4.1 OPC 介绍

1. OPC 产生的背景 OPC 是 OLE for Process Control 的缩写,即用在过程控制领域的 OLE。OLE 原意是对象

连接与嵌入,随着 OLE2 的发布,其范围已远远超出了这个概念。现在的 OLE 包括了很多的

新特性,如统一的数据传输、结构化存储和自动化,已经成为独立于计算机语言、操作系统

甚至硬件平台的一种规范,是面向对象程序设计概念的进一步推广。OPC 建立在 OLE 规范

之上,它为工业控制领域提供了一种标准的数据访问机制。

OPC 实质上是在硬件供应商和软件开发商之间建立的一套完整“规则”。只要遵循这套

规则,数据交互对两者来说都是透明的,硬件供应商就无需考虑应用程序的多种需求和传输

协议,软件开发商也就无需了解硬件的实质和操作过程。

2. OPC 的特点及适用范围 OPC 是为了解决应用软件与各种设备驱动程序的通信而产生的一项工业技术规范和标

准。它采用客户/服务器体系,基于 Microsoft 的 OLE/COM 技术,为硬件厂商和应用软件开

发者提供了一套标准的接口。

(1)OPC 的特点

综合起来说,OPC 有以下 3 个特点。

① 计算机硬件厂商只需要编写一套驱动程序就可以满足不同用户的需要。硬件供应商只

需提供一套符合 OPC Server 规范的程序组,无需考虑工程人员需求。

② 程序开发者只需编写一个接口便可以连接不同的设备。软件开发商无需重写大量的设

备驱动程序。

③ 工程人员在设备选型上有更多的选择。

OPC 扩展了设备的概念,只要符合 OPC 服务器的规范,OPC 客户都可以与之进行数据

交换,而无需了解设备究竟是 PLC 还是仪表,甚至只要在数据库系统上建立了 OPC 规范,

Page 360: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–352–

OPC 客户就可与之方便地实现数据交互。OPC 把硬件厂商和应用软件开发商分离出来,从而

大幅度提高了双方的工作效率,因此 OPC 在短时间内取得了飞速的发展,现在越来越多的软、

硬件开发商在做这方面的工作。管理该标准的组织是 OPC 基金会。该基金会的会员单位在世

界范围内包括了几乎全部的控制系统、仪器仪表和过程控制系统的主要供应商。

(2)OPC 的适用范围

OPC 设计者的最终目标是在工业领域建立一套数据传输规范,并为之制定了一系列的发

展计划。现有的 OPC 规范涉及如下 5 个领域。

� 在线数据监测。

� 报警和事件处理。

� 历史数据访问。

� 远程数据访问。

� OPC 近期将实现的功能还包括安全性、批处理、历史报警事件数据访问等。

(3)OPC 服务器的组成

OPC 服务器由 3 类对象组成,相当于 3 种层次上的接口:服务器(server)、组(group)

和数据项(item)。

① 服务器对象包括服务器的所有信息,同时也是组对象的容器。一个服务器对应于一个

OPC Server,即一种设备的驱动程序。在一个 Server 中,可以有若干个组。

② 组对象包含组的所有信息,同时包含并管理 OPC 数据项。

③ 数据项是读写数据的最小单位,一个数据项与一个具体的位号相连。数据项不能独立

于组存在,必须隶属于某一个组。OPC 数据项是服务器端定义的对象,通常指向设备的一个

寄存器单元。OPC 客户端对设备寄存器的操作都是通过其数据项来完成的。通过定义数据项,

OPC 规范尽可能隐藏了设备的特殊信息,也使 OPC 服务器的通用性大大增强。

应用程序作为 OPC 接口中的 Client 方,硬件驱动程序作为 OPC 接口中的 Server 方。每

一个 OPC Client 应用程序都可以连接若干个 OPC Server,每一个硬件驱动程序都可以连接若

干个 OPC Server,每一个硬件驱动程序可以为若干个应用程序提供数据。

3. OPC 的接口及数据访问方式 OPC 规范提供了两套接口方案,即 COM 接口和自动化接口。COM 接口效率高,通过该

接口,客户能够发挥 OPC 服务器的最佳性能,采用 C++语言的客户一般采用 COM 接口方案;

自动化接口使解释性语言和宏语言访问 OPC 服务器成为可能,采用 VB 语言的客户一般采用

自动化接口。自动化接口使解释性语言和宏语言编写客户应用程序变得简单,然而自动化客

户运行时需要进行类型检查,这一点则牺牲了程序的运行速度。

OPC 服务器必须实现 COM 接口,是否实现自动化接口则取决于供应商的主观意愿。

OPC 的数据访问方式

① 服务器缓冲区数据和设备管理

OPC 服务器本身就是一个可执行程序,该程序以设定的速率不断地同物理设备进行数据

交互。服务器内有一个数据缓冲区,其中存有最新的数据值:数据质量戳和时间戳。时间戳

表明服务器最近一次从设备读取数据的时间。服务器对设备寄存器的读取是不断进行的,时

间戳也在不断的更新。即使数据值和数据质量戳都没有发生变化,时间戳也会进行更新。

客户既可以从服务器缓冲区读取数据,又可直接从设备读取数据,从设备直接读取数据

Page 361: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 11 章 PLC 与 DCS

–353–

的速度会慢一些。一般只有在故障诊断或极其特殊的情况下才会采用。

② 同步和异步

OPC 客户和 OPC 服务器进行数据交互可以有两种不同方式,即同步方式和异步方式。

同步方式实现较为简单,当客户数目较少而且同服务器交互的数据量也比较少的时候可以采

用这种方式;异步方式实现较为复杂,需要在客户程序中实现服务器回调函数。然而当有大

量客户和大量数据交互时,异步方式的效率更高,能够避免客户数据请求的阻塞,并可以最

大限度的节省 CPU 和网络资源。

11.4.2 OPC 设备的使用

1. 建立和删除 OPC 设备

在 Kingview 工程浏览器的“设备”项目中选中“OPC 服务器”,双击工程浏览器右侧的

“新建”按钮,Kingview 开始自动搜索工程人员的计算机系统中已经安装的所有 OPC 服务

器,然后弹出“查看 OPC 服务器”对话框,如图 11-45 所示。

图 11-45 查看 OPC 服务器

工程人员可以在列表中选择任意一种 OPC 服务器来查看它的详细资料。如果需要建立

OPC 服务器,请在以上列表中选中它(可以同时选择多个选项)。然后单击“确定”按钮。

即将 OPC 服务器与 Kingview 挂接上了,如图 11-46 所示。

图 11-46 OPC 服务器的连接

Page 362: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–354–

对于已经建立的 OPC 设备,如果确认不再需要,可以将它删除。删除 OPC 设备的方法

和删除其他设备的方法相同。

2. 在 OPC 服务器中定义数据项

OPC 服务器作为一个独立的应用程序,可能由硬件制造商、软件开发商或其他第三方提

供,因此数据项定义的方法和界面都可能有所差异。下面以 PC Soft 公司的 Modbus Server 为

例讲解 OPC Server 的使用方法。Modbus OPC Server 应用程序是一个高级的 I/O 服务器,提

供友善的工程人员界面,支持 DDE,AdvanceDDE 和 FastDDE 等数据访问方式。

双击程序组 Modbus Server 图标,弹出 Modbus Server 主窗口如图 11-47 所示。

Modbus Server 主窗口和 Windows 资源管理器风格相似,窗口的上方是菜单和工具条,

窗口的左侧列出接入的两个设备,即 Simulate 和 Modbus,每个设备都包括自己的组对象和

数据项。窗口的右侧显示出所选对象中已定义的数据项。

图 11-47 在 OPC 服务器中定义数据项

可以向 Modbus Server 中添加、删除设备或修改设备属性。选择“Add”菜单下“New

Device”子菜单,弹出“Device Properties”对话框,如图 11-48 所示。

图 11-48 在 OPC 服务器中增加外围设备

对话框最下方是一个 Simulate I/O(仿真 I/O)检查框,不选该检查框,表示新加入的设

备连接一个真实的物理设备;选中该框表示新加入的设备并未和真实物理设备建立连接,所

得到的数据只是仿真结果。

可以向一个设备中直接加入数据项,也可在设备中创建若干个组,将具有相似功能的数

Page 363: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 11 章 PLC 与 DCS

–355–

据项组织起来。组的下面也可以创建组,层次的多少原则上没有限制,然而从方便起见,层

次不宜太多。设备、组、数据项的概念和 Windows 文件系统的驱动器、文件夹、文件的概念

很相似。

选择“Add”菜单下“New Group”子菜单,弹出“Group”对话框,如图 11-49 所示。

图 11-49 在 OPC 服务器中增加组

选择“Add”菜单下“New Tag”子菜单,弹出“Tag Properties”对话框,如图 11-50 所

示。选中“Scaling and Alarming”组框中“Enable”检查框,单击“Setting”按钮,弹出“Tag

Properties Settings”对话框,如图 11-51 所示。

图 11-50 在 OPC 服务器中增加数据项 图 11-51 数据项设置对话框

3. OPC 服务器与 Kingview 数据词典的连接

OPC 服务器与 Kingview 数据词典的连接如同 PLC 或板卡等外围设备与 Kingview 数据词

典的连接一样。

在 Kingview 工程浏览器中,选中“数据词典”,在工程浏览器右侧双击“新建”图标,

选择 I/O 类型变量,在连接设备处选择 OPC 服务器,如图 11-52 所示。

图 11-52 OPC 服务器与 Kingview 数据词典的连接

Page 364: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–356–

在寄存器下拉式菜单中列出了在 OPC 服务器中定义过的所有数据项,任选择一个,并选

择数据类型和读写属性,即可实现 OPC 服务器与 Kingview 数据词典的连接。

11.5 ODBC 数据库

11.5.1 ODBC 的基本概念

ODBC 是英文 Open DataBase Connectivity 的缩写,即开放数据库互联,是美国微软公司

提出的标准,目的是实现异构数据库的互联。在此之前,由于各种数据库产品都有自己独立

的编程语言和文件格式,要想实现异构数据库间的数据共享和访问,就必须为特定的应用单

独编写程序。这种临时编写的程序不具备丝毫的通用性,当数据库的结构、字段等属性发生

变化后原来的程序即不再适用。

ODBC 标准规定了开放数据库互联的所有标准。支持 ODBC 标准的数据库产品都提供基

于自己 DBMS(Database Management System)的 ODBC 接口程序,如 Access、FoxPro、ExcelXLS

文件、SQL Server、Sybase、Oracle 等均支持 ODBC,在 Windows 98/NT/2000 操作系统下,

ASCII 文本文件也支持 ODBC 标准。

支持 ODBC 标准的应用程序通过 DBMS 的 ODBC 接口程序,可以直接访问 DBMS 中的

数据项,进行读写操作。

11.5.2 IFIX 和 Kingview 中的 ODBC 数据库

1. IFIX 中的 ODBC 数据库 IFIX ODBC 提供关系数据库与 IFIX 数据库的通信。IFIX 数据库可以配置为基于事件、

时间或两者联合的通信方式。

IFIX ODBC 包括、SQL 任务、SQL 触发(SQT)数据库块、SQL 数据(SQD)数据库

块。

(1)SQL 任务完成如下功能:

① 执行 SQT 块触发;

② 从 SQD 块获取过程数据并将数据放入关系数据库中;

③ 从关系数据库中选择数据并写回到 IFIX 数据库;

④ 发生网络失败事件时备份数据(备份将持续到第一和第二备份路径满为止),一旦网

络通信恢复,数据将自动恢复到关系数据库中。

(2)SQL 触发块定义:

① 使用 SQL 库表中的 SQL 命令来处理数据;

② 当应用丢失并与服务器连接时 SQL 命令是否备份;

③ 时间或事件触发的数据传输。

(3)SQL 数据块用于定义:

① 采集和传送的数据;

② 数据传送的方向。

Page 365: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 11 章 PLC 与 DCS

–357–

两种数据库块都和 SQL 任务(WSQLODC.EXE)通信。此任务运行在 SCADA 节点上并

处理和 ODBC 驱动的通信。 如果与关系数据库的连接丢失,SQL 命令和数据可以被备份。

当连接重新建立后,SQL 命令和数据将按它们备份的顺序恢复。

使用 IFIX ODBC 将 IFIX 过程数据库记录到 Access 中,必须在 Access 中创建存储 SQL

命令和错误的表。

需要在 Access 中创建的数据表的具体信息如表 11-3 所示。

表 11-3 Microsoft Access SQLLIB

域名 数据类型 备注

sqlname Text, size 8 为索引属性选择�是�;同时,在工具栏中选择�关键

字�图标,把该域设置为�主关键字�

sqlcmd Text, size 100 - 255

如果 SQL 命令超过 255 个字符,则该域改为�Memo�

类型,�Memo�支持 64 000 个字符;但必须修改�/CLn�

参数,允许 SQL 命令超过 255 个字符

td Date/Time 日期

node Text, size 8 节点名

tag Text, size 10-30 位号名

sqlname Text, size 8 数据库名

IFIX_err Text, size 100 IFIX 错误信息

Sql_err Text, size 250 数据查询错误信息

Prog_err Text, size 100 程序错误信息

SQLERR 表并不需要加密锁,但如果愿意,也可以建立用户域作为加密锁使用。

� 注意: SQLLIB 和 SQLERR 是表格的缺省名。可以定义任何名字,只要在 IFIX

系统配置 SCU 中对应该名字,然而,域名(列名)必须完全以上表格中的名字

输入(Access 表格的列名是不区分大小写的)。

2. Kingview 中的 ODBC 数据库

Kingview 的 SQL 访问功能是为了实现 Kingview 和其他 ODBC 数据库之间的数据传输。

它包括 KingviewSQL 访问管理器和 SQL 函数。

SQL 访问管理器用来建立数据库列和 Kingview 变量之间的联系。通过表格模板在数据库

中创建表格,表格模板信息存储在 SQL.DEF 文件中;通过记录体建立数据库表格列和

Kingview 之间的联系,允许 Kingview 通过记录体直接操纵数据库中的数据。这种联系存储

在 BIND.DEF 文件中。

SQL 函数可以在 Kingview 的任意一种命令语言中调用。这些函数用来创建表格、插入

删除记录、编辑已有的表格、清空删除表格、查询记录等。

3. SQL 访问管理器

SQL 访问管理器包括表格模板和记录体两部分功能,当 Kingview 执行 SQLCreateTable()

指令时,使用的表格模板将定义创建的表格结构。当执行 SQLInsert(),SQLSelect()或

SQLUpdate()时,记录体中定义的连接将使 Kingview 中的变量和数据库表格中的变量相关联,

如图 11-53 所示。

Page 366: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–358–

图 11-53 SQL 访问管理器

Kingview 提供集成的 SQL 访问管理。在 Kingview 工程浏览器的左栏中,可以看到 SQL

访问管理器。

(1)表格模板

可以设置特定的表格模板,然后以这种模板在数据库中添加表格。单击表格模板,在右

栏中可以新建和管理表格模板。单击“新建”选项,弹出“创建表格模板”对话框,如图 11-54

所示。

图 11-54 创建表格模板

(2)记录体 记录体用来连接表格的列和 Kingview 数据词典中的变量。单击记录体,工程浏览器右栏

中显示已经创建的记录体,可以新建和修改记录体。单击“新建”选项,弹出“创建记录体”

Page 367: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 11 章 PLC 与 DCS

–359–

对话框如图 11-55 所示。

图 11-55 创建记录体

4. 配置和连接数据库

KingviewSQL 支持多种数据库,每种数据库都有各自的特点。本节将分别予以介绍。

(1)使用 Oracle 6

为了和 Oracle 6 通信,需要进行如下操作。

① 配置 Windows 数据库客户。

② 启动 SQL*Net TSR 和 NETINIT.EXE 程序。

③ 通过在 Kingview 命令语言中执行 SQLConnect()函数建立和 Oracle 的连接。

� 启动 SQL*Net TSR 和 NETINIT.EXE

Oracle 数据库可以通过在本地机上安装 Oracle�s SQL*Net 来访问。Oracle�s SQL Net 包

括 SQL*Net TSR 和 NETINIT.EXE 程序。为了和 Oracle 数据库连接,这两个程序都要运行。

SQL*Net TSR 必须在运行 Windows 之前在 DOS 环境中运行。NETINIT.EXE 在 Windows 中运

行。 � SQLConnect()格式 本函数用来和 Oracle 数据库连接。格式如下: SQLConnect(ConnectionID"<attribute>=<value>;<attribute>=<value>; �"); 下面介绍 Oracle 中使用的属性,如表 11-4 所示。

表 11-4 Oracle 中使用的属性

属性 值

DSN 微软 ODBC 管理器配置的数据源名字

UID 用户名

PWD 密码

SRVR 指明服务器和数据库

举例如下: SQLConnect(ConnectionID,"DSN=Oracle_Data; UID=asia; PWD=abcd; SRVR=B:MKTG_SRV");

Page 368: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–360–

� 注意:SRVR 比较难于设置。根据 SQL*Net 驱动不同,设置值将不同。这一信息可

以在 SQL*Net 文档中得到(或可能在 CONFIG.ORA 文件的“remote=”行中得到)。

� 支持的数据类型

Oracle 6 支持两种数据。类型 char 对应着 Kingview 中的字符串变量,缺省长度为 1。Oracle

6 最多支持 255 个字符。类型 number 对应着 Kingview 中的整数和实数变量。

(2)使用 Oracle 7.2

为了和 Oracle 连接,需要如下配置。

① 在 Kingview 本机上安装 Oracle Standard Client。

② 运行 SQL_Net Easy 配置,为 SQL 连接分配字符串。

③ 创建一个数据源名。

④ 使用 SQLConnect()连接。

配置 SQL_Net,需要进行如下步骤:

① 启动 Oracle 的 SQL_Net Easy Configuration。

② 缺省模式下,服务器的化名将以 wgs_ServerName_orcl 开始。数据库的化名在

KingviewSQLConnect()函数中使用。

③ 修改化名,单击“OK”按钮。

④ 单击“Modify Database Alias Select Network protocol”选项。命名管道是 Oracle 服务

器的计算机名。

为了在节点中安装 ODBC 驱动,需要进行如下操作。

① 运行控制面板中的 ODBC,选择“System DSN”选项。单击“Add”按钮,弹出“ODBC

Data Source Administrator”对话框,如图 11-56 所示。

图 11-56 ODBC 驱动

② 选择 Oracle7 ODBC 驱动,然后单击“确定”按钮。ODBC Oracle Driver Setup 对话

框将会弹出。

③ 在 Data Source Name 框中键入所要的 Oracle 服务器名。

为了记录用户登录系统的日期和时间,必须配置记录体(捆绑表),操作步骤如下。

① 在 Kingview 工程浏览器中,单击 SQL 访问管理器中的记录体,将弹出“创建记录体”

对话框,如图 11-57 所示。

Page 369: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 11 章 PLC 与 DCS

–361–

图 11-57 创建记录体对话框

② 在字段名称栏中输入 DATE_TIME delim() 函数。

③ Kingview 变量栏中输入想要捆绑的变量。

④ Kingview 命令语言中,给 DATE_TIME_TAG 变量赋当前的日期和时间值。

(3)使用 Microsoft SQL Server

为了和 Microsoft SQL Server 连接,需要以下操作。

① 配置 Windows 的数据库。

② 使用 SQLConnect()函数连接。

配置数据库的步骤如下。

① 打开 Windows 控制面板的 32 位 ODBC 数据源管理器。单击“Add”按钮,在弹出的

对话框中选择 SQL Server,然后单击“OK”按钮,弹出“ODBC SQL Server setup”对话框,

如图 11-58 所示。

图 11-58 “ODBC SQL Server setup“对话框

② Data Source Name 栏填写数据源名称。在 Server 栏填写数据库 Server 名称。在网络

地址中,填写 SQL Server 的访问地址。单击“Options”按钮,在数据库名栏填写数据库名称。

� 注意:SQL Server 名称必须和网络上 SQL Server 的名称一致。具体名称可通过 SQL

Server 管理程序“SQL Enterprise Manager”确认。

连接格式如下: SQLConnect(ConnectionID,"<attribute>=<value>;<attribute>=<value>;�"); SQL Server 用到的属性如表 11-5 所示。

Page 370: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–362–

表 11-5 Sybase 和 SQL SERVER 用到的属性

属性 值

DSN ODBC 中定义的数据源名

UID 登录 ID 号

PWD 密码,区分大小写

SRVR 数据库所在的计算机名

DATABASE 所要访问的数据库名

举例如下: SQLConnect(ConnectionID,�DSN=wang; DATABASE=kingivew;UID=user1; PWD= abcd�); (4)使用 Microsoft Access

为了和 Microsoft Access 连接,必须执行 SQLConnec()函数。

① SQLConnect()格式 SQLConnect(ConnectionID, " <attribute>=<value>;<attribute>=<value>;�" ); 表 11-6 所示为 Access 用到的属性。

表 11-6 Access 属性

属性 值

DSN ODBC 中设置的数据源名称

② 支持的数据类型

SQL 访问管理器支持 Access 数据库的 5 种数据类型。有效的数据类型种类由所使用的

ODBC 的版本所决定。

5. SQL 函数

Kingview 使用 SQL 函数和数据库交换信息。这些函数是 Kingview 标准函数的扩充,可

以在 Kingview 的任意一种命令语言中使用。这些函数允许选择、修改、插入或删除数据库表

中的记录。 (1)SQL 函数

值得注意的是 SQL 功能是同步的,在 SQL 功能结束之前,控制权不能返回 Kingview(包

括趋势曲线等将被挂起)。

所有的 SQL 函数(除 SQLNumRows()之外)都会返回一个结果代码。如果这个代码不为

零,表明调用函数失败。结果代码可以通过 SQLErrorMsg()函数得到。

SQL 函数如表 11-7 所示,函数使用格式如下: SQLFunction(Parameter1,Parameter2,�)

表 11-7 sql 函数表

函数 功能

SQLAppendStatement 使用 SQLStatement 的内容继续一个 SQL 语句

SQLClearParam 清除特定参数的值

SQLClearStatement 释放和 SQLHandle 指定的语句相关的资源

SQLClearTable 删除表格中的记录,但保留表格

SQLCommit 定义一组 transaction 命令的结尾

Page 371: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 11 章 PLC 与 DCS

–363–

续表

函数 功能

SQLConnect 连接 Kingview 到 connectstring 指定的数据库中

SQLCreatTable 使用表格模板中的参数在数据库中

SQLDelete 删除一个或多个记录

SQLDisconnect 断开和数据库的连接

SQLDropTable 破坏一个表格

SQLEndSelect 在 SQLSelect()后使用本函数来释放资源

SQLErrorMsg 返回一个文本错误信息,此错误信息和特定的结果代码相关

SQLExecute 执行一个 SQL 语句。如果这个语句是一个选择语句,捆绑表中

的参数所指定的名字用来捆绑数据词典中变量和数据库的列

SQLFirst 选择由 SQLSelect()选择的表格中的首项记录

SQLGetRecord 从当前选择缓存区返回由 RecordNumber 指定的记录

SQLInsert

使用捆绑表中指定的变量中的值在表格中插入一个新记录。捆

绑表中的参数定义了 Kingview 中变量和数据库表格列的对应

关系

SQLInsertEnd 释放插入语句

SQLInsertExecute 执行已经准备的语句

SQLInsertPrepare 准备一个插入语句

SQLLast 选择 SQLSelect()指定表格中的末项

SQLLoadStatement

读包含在 FileName 中的语句,它类似与 SQLSetStatement()创建

的语句,能被 SQLAppendStatement()挂起,或由 SQLExecute()

执行,每个文件中只能包含一个语句

SQLManagerDSN 运行微软 ODBC 管理器设置程序。可以用来增加,删除和修改

所有的数据源名字

SQLNext 选择表中的下一条记录

SQLNumRows 指出有多少条记录符合上一次 SQLSeclect()的指定

SQLPrepareStatement 本语句为 SQLSetParam()准备一个 SQL 语句。一个语句可以由

SQLSetStatement()或 SQLLoadStatement()创建

SQLPrev 选择表中的上一条记录

SQLSelect 访 问 一 个 数 据 库 并 返 回 一 个 表 的 信 息 , 此 信 息 可 以 被

SQLFirst()、SQLLast()、SQLNext()和 SQLPrev()

SQLSetParamChar 将指定的参数设成特定的字符串。本函数可以调用多次,以设

置参数值

SQLSetParamDate 将指定的日期参数设置成特定的字符串

SQLSetParamDateTime 将指定的日期时间参数设置成特定的字符串

SQLSetParamDecimal 将指定的十进制参数设置成特定的字符串

Page 372: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–364–

续表

函数 功能

SQLSetParamFloat 将指定的参数设置成特定的值

SQLSetParamInt 将指定的参数设置成特定的值

SQLSetParamLong 将指定的参数设置成特定的值

SQLSetParamNull 将指定的参数设置成空值

SQLSetParamTime 将指定的时间参数设置成特定的字符串

SQLSetStatement 启动一个语句缓存区,此语句缓存区由 SQLStatement()使用

SQLTransact

定 义 了 一 组 访 问 指 令 的 开 始 。 在 SQLTransac() 指 令

和 SQLCommit()指令之间的一组指令称为一个访问组。一个访

问组可以像单个访问一样操作。在 SQLTransact()指令执行后,

所有接下的操作都不委托给数据库,直到 SQLCommit()指令执

SQLUpdate 用当前的 Kingview 变量更新数据库中的记录

SQLUpdateCurrent 更新数据库中的记录

(2)函数的参数

在命令语言中,当一个参数用引号括起,参数是一个额外的字符串,如果没有引号,表

示参数将认为是 Kingview 的一个变量。大部分 SQL 函数调用表 11-8 中列举参数的一个或多

个。

表 11-8 SQL 函数参数

BindList SQL.DEF 文件中定义的捆绑列表名

ConnectionID 用户创建的内存整形变量,用来保存 SQLConnect()函数为每个数据库

连接分配的一个数值

ConnectString 指示数据库以及任何附加登录信息的字符串

ErrorMsg 出错信息,更详细的解释,请参考第 4 节

FileName 包含信息的文件名

MaxLen

列的最大容量。这一设定决定参数是字符串型还是长字符串型。如果

MaxLen 小于数据库允许的最大长度,参数是字符串型,否则是长字符

串型

OrderByExpression

定 义 排 序 的 列 和 方 向 。 只 有 列 可 以 进 行 排 序 。 格 式 :

ColumnName[ASC|DESC]。例:为名为 manager 的列进行升排序,

�manager ASC� 。 为 多 列 排 序 , 格 式 : ColumnName[ASC|DESC],

ColumnName[ASC| DESC]

ParameterNumber 语句中实际的参数个数

ParameterValue 设定的实际值

Precision 十进制值的精度,字符串的最大长度,日期时间的字节长度

RecordNumber 返回的实际记录个数

Page 373: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 11 章 PLC 与 DCS

–365–

续表

BindList SQL.DEF 文件中定义的捆绑列表名

BindList SQL.DEF 文件中定义的捆绑列表名

ResultCode 大部分 SQL 函数返回一个整数。如果函数成功,返回 0,如果失败,

返回一个负值

Scale 十进制数的量程。本参数仅在参数设置为空时有用

SQLHandle 当使用高级函数时,SQL 返回 SQLHandle,供内部使用

SQLStatement 实际语句

TableName 数据库中表名

TemplateName 表格模板名

WhereExpression

定义一个条件,此条件对表格中所有的行或为真,或为假。命令只对

条件为真的行起作用。格式:

ColumnName comparison_operator expression

注意:如果列为字符串类型,表达式必须带单引号。

下例将选择所有 name 列为 kingview 的行:

name=’kingview’

下例选择 agg 列界于 20 到 30 之间的行:

agg>=20 and agg<30

11.6 应用实例

由于 DDE 方式和 OPC 接口设置比较简单,本小节仅仅对 ODBC 数据库应用举例说明。

11.6.1 IFX 与 ODBC 连接

下面是一个在 IFIX 脚本中使用 SQL 查询建立与 Access 数据库连接的例子。

(1)建立数据库

建立一个 Access 数据库。命名为 DB1.mdb。

(2)建立数据表

在 DB1 中建立一张数据表,命名为 test。

(3)建立表字段

在表 test 中建立字段,命名为记录 1、记录 2、记录 3 、�� 、记录 30。 (4)建立连接 按照第 11.5 节中的说明,将 DB1 中的表 test 建立成为系统 DSN,驱动选用 microsoft Access

driver。 (5)在 IFIX 中编写脚本对数据库进行操作。 具体程序如下。 (1)向数据库中写入数据

Page 374: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–366–

Dim ObjConn As New ADODB.Connection ’定义一个连接 Dim objRst As New ADODB.Recordset ’定义一个记录集 ObjConn.Open "test", "sa", "" ’打开连接表 test,默认数据库用户名为 ’ �sa�,密码为�� objRst.Open "test", ObjConn, 3, 3 ’打开记录集 objRst.AddNew ’将记录集增加一条记录 objRst!recordtime = Now ’记录当前时间 objRst!记录 1 = Fix32.Fix.RT101FIX.F_CV ’记录变量 Fix32.Fix.RT101FIX.F_CV objRst!记录 2 = Fix32.Fix.RT102FIX.F_CV ’记录变量 Fix32.Fix.RT102FIX.F_CV objRst!记录 3 = Fix32.Fix.RT103FIX.F_CV ’记录变量 Fix32.Fix.RT103FIX.F_CV objRst!记录 4 = Fix32.Fix.RP104IX.F_CV ’记录变量 Fix32.Fix.RT104FIX.F_CV objRst!记录 5 = Fix32.Fix.RL105IX.F_CV ’记录变量 Fix32.Fix.RT105FIX.F_CV objRst!记录 6 = Fix32.Fix.RT106FIX.F_CV ’记录变量 Fix32.Fix.RT106FIX.F_CV objRst!记录 7 = Fix32.Fix.RT107FIX.F_CV ’记录变量 Fix32.Fix.RT107FIX.F_CV objRst!记录 8 = Fix32.Fix.RT108FIX.F_CV ’记录变量 Fix32.Fix.RT108FIX.F_CV objRst!记录 9 = Fix32.Fix.RT109FIX.F_CV ’记录变量 Fix32.Fix.RT109FIX.F_CV ’�省略 ’�省略 objRst!记录 30 = Fix32.Fix.RT130FIX.F_CV ’记录变量 Fix32.Fix.RT130FIX.F_CV objRst.Update ’更新记录集 objRst.Close ’关闭记录集 ObjConn.Close ’断开连接 (2)从数据库中查询数据 Dim ObjConn As New ADODB.Connection ’定义数据库连接 Dim objRst As New ADODB.Recordset ’定义记录集 Dim SqlAll As String ’定义查询条件字符串 SqlAll = "select recordtime,记录 1,记录 2,记录 3,记录 4,记录 5,记录 6,记录 7 from test where recordtime

> {ts ’" + Timestart + "’} and recordtime < {ts ’" + TimeEnd + "’} ORDER BY recordtime" ’从表 test 中查询记录,查询的条件是:字段名为记录 1、记录 2、记录 3、 ’/记录 4、记录 5、记录 6、记录 7,在时间段[ Timestart,TimeEnd]内的所 ’有记录。Timestart、TimeEnd 是输入的查询起止时间。 ’下面这段代码是将查询所得的记录填写到控件 MSFlexGrid1 中进行显示。 objRst.Open SqlAll, ObjConn ’根据查询数据库,打开连接进行查询 objRst.MoveFirst ’第一条纪录 MSFlexGrid1.Clear ’清除表格控件的内容 MSFlexGrid1.Redraw = False ’停止表格控件的刷新 ’如果不是记录集的结尾 While Not objRst.EOF MSFlexGrid1.AddItem "", 1 ’增加一行 MSFlexGrid1.TextMatrix(0, 0) = " 时 间" ’增加第一行第一列的说明 MSFlexGrid1.TextMatrix(0, 1) = "记录 1" ’填写字段 MSFlexGrid1.TextMatrix(0, 2) = "记录 2" MSFlexGrid1.TextMatrix(0, 3) = "记录 3" MSFlexGrid1.TextMatrix(0, 4) = "记录 4" MSFlexGrid1.TextMatrix(0, 5) = "记录 5" MSFlexGrid1.TextMatrix(0, 6) = "记录 6" MSFlexGrid1.TextMatrix(0, 7) = "记录 7"

Page 375: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 11 章 PLC 与 DCS

–367–

MSFlexGrid1.Row = 1 ’填写数据 MSFlexGrid1.Col = 0 MSFlexGrid1.Text = objRst.Fields(0).Value MSFlexGrid1.Col = 1 MSFlexGrid1.Text = objRst.Fields(1).Value MSFlexGrid1.Col = 2 MSFlexGrid1.Text = objRst.Fields(2).Value MSFlexGrid1.Col = 3 MSFlexGrid1.Text = objRst.Fields(3).Value MSFlexGrid1.Col = 4 MSFlexGrid1.Text = objRst.Fields(4).Value MSFlexGrid1.Col = 5 MSFlexGrid1.Text = objRst.Fields(5).Value MSFlexGrid1.Col = 6 objRst.MoveNext ’一条填写完毕就写下一条 Wend //objRst.Update ’更新记录体 objRst.Close ’关闭记录体 ObjConn.Close ’断开连接

11.6.2 组态王与 ODBC 连接

组态王的程序脚本与 C 语言比较相似,但是与 C 语言相比功能上差一些。下面就是一个

以某信息管理系统为例,说明组态王与 ODBC 数据库的连接方法。

1. 实例背景说明 该信息管理系统的主要作用是实现大量分散型数据的采集和统计整理。这是一个公寓(或

者写字楼)的管理信息系统。公寓(或写字楼)属于分散的多用户结构,有很多需要管理的

分散信息。例如每户用电情况、每户用水情况、每户使用管道煤气情况等等。这些资料都是

需要统计收集以便进行管理,这些信息的统计是通过组态王软件与每户室内的监控设备进行

通信获得,然后将这些用户资料存放到 ODBC 数据库中,然后根据操作人员的各种不同的要

求对数据进行统计和处理。这个系统的功能有添加一个用户、删除一个用户、查询一个用户

的实际状态、根据用户状态决定是否对用户采取一定的措施(例如对长期不缴电费的用户断

电等等)、温度的调节(如果系统中使用了中央空调)。

这幢公寓共有 9 层,每层有 6 户居民,每户信息的采集(温度、用电量、用水量等等)

每层有 27 个温控开关(保证楼层温度基本稳定)。这些数据都通过小型 PLC 来采集,然后组

态王监控软件将各个 PLC 的信息收集上来存放到数据库中。公寓的管理人员根据这些信息将

作出不同的操作。

2. 程序流程 整个系统的流程图如图 11-59 所示。

Page 376: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–368–

图 11-59 信息集中控制系统流程图

3. 程序脚本说明 建立数据库的方法在前面已经作过介绍,这里就不作详细的说明了。只对数据库的操作

作一些详细的说明。

首先介绍应用程序命令语言的使用。在程序起始运行时,需要作数据库的连接工作,代

码如下。 ///////////////////////////////////////////// SQLConnect(DeviceID,"DSN=data;database=Mydb;uid=sa;pwd="); //连接数据库 SQLConnect(DeviceIDD,"DSN=data;database=Mydb;uid=sa;pwd="); SQLConnect(DeviceIIDD,"DSN=data;database=Mydb;uid=sa;pwd="); SQLConnect(ConnectID,"DSN=bak;database=bak;uid=sa;pwd="); 状态="系统启动"; SQLInsert( DeviceID, "运行日志", "enterBind" ); LogOn(); //登录验证 状态="由"+$用户名+"登录系统"; SQLInsert( DeviceID, "运行日志", "enterBind" ); //SQLCreateTable( DeviceID, "能量表日用量表", "meter_day" ); ///////////////////////////////////////////////

在这段程序中,数据库连接成功以后,使用 SQLInsert 函数将系统启动信息(包括系统

启动状态信息、系统用户登录信息等等)写入数据库的表“运行日志”中。

在程序结束运行时,将数据连接断开,同时将系统结束运行信息写入到数据库纪录表“运

行日志”中。参看以下程序: //////////////////////////////////////// 状态="由"+$用户名+"退出系统"; SQLInsert( DeviceID, "运行日志", "enterBind" ); LogOff(); //用户退出

Page 377: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 11 章 PLC 与 DCS

–369–

SQLDisconnect( DeviceID); //断开与数据库的连接 SQLDisconnect( DeviceIDD); SQLDisconnect( DeviceIIDD); SQLDisconnect(ConnectID); //////////////////////////////////////////

下面介绍主程序,主程序中对各个楼层的电量使用情况进行统计,并针对不同的情况进

行相应的处理。

1. 数据的采集并写入数据库 // 每 60000ms

/************************每分钟读采样卡**********************/

/**********************初步处理输入数据库********************/

long aa;

long bb;

string cc;

long LSwitch;

SQLClearTable( DeviceID, "温控开关实时状态表");

bb=4;

while(bb<=19)

{

if(bb==4) //读 4 楼采样器 IO 量,并初步处理插入数据库

{ aa=1;

while((aa<=27)&&(bb==4)) //4 楼有 27 个温控开关,循环读取

{ cc=text(bb,"#")+"_"+text(aa,"#");

温控开关号="S"+cc+""; //字符串连接生成温控开关号

LSwitch=GETIO(温控开关号); //取该温控开关对应的 I/O 量

DataGet(LSwitch); //分析所得变量值的各位状态情况

GetS(温控开关号); //取出具体状态,便于实时监控显示

if(zz==2) //如果为正常运行状态

TAcc(温控开关号); //则累计运行时间累计

DataInsert(); //将结果插入数据库中

aa=aa+1; //累计下一个温控开关数据

}

}

if((bb>=5)&&(bb<=9)) //读 5~9 楼采样器 I/O 量,并初步处理插入数据库,

{ aa=1; //因这几个楼层采样器个数相同,放在一起处理,

//处理方法同上

while(aa<=18)

{ cc=text(bb,"#")+"_"+text(aa,"#");

温控开关号="S"+cc+"";

LSwitch=GETIO(温控开关号);

DataGet(LSwitch);

Page 378: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–370–

GetS(温控开关号);

if(zz==2)

TAcc(温控开关号);

DataInsert();

aa=aa+1;

}

}

if((bb>=10)&&(bb<=19)) //读 5-9 楼采样器 IO 量,并初步处理插入数据库,

{ aa=1; //因这几个楼层采样器个数相同,放在一起处理,处理方法同上

while(aa<=21)

{ cc=text(bb,"#")+"_"+text(aa,"#");

温控开关号="S"+cc+"";

LSwitch=GETIO(温控开关号);

DataGet(LSwitch);

GetS(温控开关号);

if(zz==2)

TAcc(温控开关号);

DataInsert();

aa=aa+1;

}

}

bb=bb+1;

}

Alarmshow(); //报警状态显示

2. 按照不同的操作要求对数据库进行整理 // *********下面对能量表读数进行处理*****************************//

long mmch; mmch=$分;

if((mmch%5)==0)

{

if(STA_1==0)

{ energy=DataConn(E1_1,E1_2,E1_3,Lev_E1); //生成实际的能量流量值

vol1=DataConn(V1_1,V1_2,V1_3,Lev_V1);

cool1=DataConn(C1_1,C1_2,C1_3,Lev_C1);

if(能量类型=="热量") //按当前的能量类型将数据输入数据库

{ 表一能量=energy;

上月表一能量=上月表一热量;

}

else if(能量类型=="冷量")

{ 表一能量=\\本站点\cool1;

Page 379: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 11 章 PLC 与 DCS

–371–

上月表一能量=上月表一冷量;

}

}

if(STA_2==0)

{ energy2=DataConn(E2_1,E2_2,E2_3,Lev_E2); //生成实际的能量流量值

vol2=DataConn(V2_1,V2_2,V2_3,Lev_V2);

cool2=DataConn(C2_1,C2_2,C2_3,Lev_C2);

if(能量类型=="热量") //按当前的能量类型将数据输入数据库

{ 表二能量=energy2;

上月表二能量=上月表二热量;

}

else if(能量类型=="冷量")

{ 表二能量=\\本站点\cool2;

上月表二能量=上月表二冷量;

}

}

日期=$日期; 时间=$时间;

日期值=TimetoData(日期);

SQLInsert( DeviceID, "能量表读数情况表", "meter_Bind" );

}

3. 查询 ODBC 数据库的自定义函数

下面列出几个自定义函数,这些自定义函数用来处理对数据表的添加和查询过程、数据

的统计等。

(1)自定义函数 DataInsert() void DataInsert()

//****************本函数用于将初步分析结果数据插入数据库***************//

string switchname;

日期=$日期;

时间=$时间; //数值读取时间为当前系统时间

switchname="温控开关号="+"’"+温控开关号+"’"; //查询条件生成

if(RS=="报警") //如果有报警情况出现

{ SQLInsert( DeviceID, "报警记录表", "alarmBind" ); //插入报警记录表

PlaySound( "Contact.wav", 3 ); //以模式 3 播放报警声音提示

}

SQLDelete( DeviceID, "温控开关实时运行表",switchname); //删除上次读入的记录

SQLInsert( DeviceID, "温控开关实时运行表", "run_RTBind" ); //插入本次记录

SQLInsert( DeviceID, "温控开关实时状态表", "status_RTBind" ); //插入本次记录

(2)void DayTab()

Page 380: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–372–

自定义函数 DayTab()用来生成各种指定的报表。 /**************每日数据统计、处理**************************/ //变量定义部分省略 yy=$年; mm=$月; dd=$日; if(dd==1) //如果为新的一个月开始 {

if(mm==1) //如果为新的一年开始 { yy=yy-1; mm=12; } //则采样时间年份减 1,月份为 12 else mm=mm-1; //否则,只是月份减 1 dd=DaysInMonth(yy,mm,1); //取出当月的天数,作为日期值

} else dd=dd-1; //不是新的一天开始,则只是日期值减 1

if((mm<10)&&(dd<10)) 日期=text(yy,"#")+"-0"+text(mm,"#")+"-0"+text(dd,"#");

if((mm<10)&&(dd>9)) 日期=text(yy,"#")+"-0"+text(mm,"#")+"-"+text(dd,"#");

if((mm>9)&&(dd<10)) 日期=text(yy,"#")+"-"+text(mm,"#")+"-0"+text(dd,"#");

if((mm>9)&&(dd>9)) 日期=text(yy,"#")+"-"+text(mm,"#")+"-"+text(dd,"#");

//将取出的年月日值组合成日期字符串 getdate=日期; //将日期字符串赋给 getdate 日期值=TimetoData(日期); //将该字符串对应的时间值取出 getdata=日期值; //将时间值赋给 getdata /***********能量表日用量情况***********************/

if(能量类型=="冷量") { 表一日用量=cool1-表一上日冷量;

表二日用量=cool2-表二上日冷量; }

if(能量类型=="热量") { 表一日用量=energy-表一上日热量; 表二日用量=energy2-表二上日热量; } SQLInsert( DeviceID, "能量表日用量表", "meter_dayBind" ); 表一上日冷量=cool1; 表二上日冷量=cool2; 表一上日热量=energy; 表二上日热量=energy2; ii=1; SQLSelect( DeviceID, "温控开关小时运行表", "run_RTBind", "", "时间 ASC" );

//选择温控开关小时运行表中所有记录,按时间升序排列 while(ii<328) //当还有温控开关没有处理时 {

SQLGetRecord( DeviceID, ii); //逐一取每个温控开关的变量值进行下面的处理 selswitch=温控开关号; switchname="温控开关号="+"’"+温控开关号+"’";

Page 381: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 11 章 PLC 与 DCS

–373–

//生成选择条件:温控开关号为当前温控开关号 htime=0;

mtime=0; ltime=0;

SQLSelect( DeviceIDD, "温控开关小时运行表", "run_RTBind", switchname, "" ); //选择满足条件的记录

number=SQLNumRows(DeviceIDD); //得到选出的记录条数 while(number>0) //当记录条数大于 0 时 {

SQLGetRecord( DeviceIDD, number); //逐条取出记录进行处理

htime=htime+风速高档时间; //将一天内当前温控开关的各档风速时间累计

mtime=mtime+风速中档时间; ltime=ltime+风速低档时间; number=number-1; } SQLEndSelect( DeviceIDD ); 风速高档时间=htime/60*1.1; //转换单位为小时,1.1 为程序运行中运行

//时间的调校系数 风速中档时间=mtime/60*1.1; 风速低档时间=ltime/60*1.1;

Twtime=0; Tetime=0;

日期=getdate; 日期值=getdata;

温控开关号=selswitch; SQLInsert( DeviceID, "温控开关日运行表", "work_dayBind" );

//累计每天温控开关各档状态时间,插入温控开关日运行表中 ii=ii+1;

} SQLEndSelect( DeviceID );

SQLSelect( DeviceID, "温控开关小时分时段运行表", "hour_periodBind", "", "时间 ASC" ); //选择温控开关小时分时段运行表中所有记录 ii=1; while(ii<328) {

SQLGetRecord( DeviceID, ii); //逐一取每个温控开关的变量值 selswitch=温控开关号; switchname="温控开关号="+"’"+温控开关号+"’"; //生成选择条件 wtime=0; etime=0; SQLSelect( DeviceIDD, "温控开关小时分时段运行表", "hour_periodBind", switchname, "" );

//选择满足条件记录 number=SQLNumRows( DeviceIDD ); while(number>0) //如果选出记录条数不为 0 { SQLGetRecord( DeviceIDD, number); //逐一读取各条记录 wtime=wtime+工作时段用量; //将每条记录中的工作

Page 382: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–374–

//时段和非工作时段用量分别累计 etime=etime+非工作时段用量; number=number-1;

} SQLEndSelect( DeviceIDD ); 工作时段用量=wtime; //将每个温控开关的累计值赋给工作时段用量

//和非工作时段用量 非工作时段用量=etime; Twtime=Twtime+wtime; //将所有温控开关的工作时段用量和非工作时段用量分别累计 Tetime=Tetime+etime; 日期=getdate; 日期值=getdata; 温控开关号=selswitch;

SQLInsert( DeviceID, "温控开关日用量表", "use_dayBind" ); //将相应的结果变量插入温控开关日用量表

ii=ii+1; }

工作时段用量=Twtime; 非工作时段用量=Tetime;

日期=getdate; 日期值=getdata; SQLInsert( DeviceID, "统计日用表", "totaluse_dayBind" );

//将每日 4-19 楼分时段总用量记录插入统计日用表 SQLEndSelect( DeviceID ); SQLClearTable( DeviceID, "温控开关小时运行表");

//每天清空小时运行表,重新插入新一天的记录 SQLClearTable( DeviceID, "温控开关小时分时段运行表");

//每天清空小时分时段运行表,重新插入新一天的记录 /**********************下面计算房间日用量********************/

Daddnum=1; //设置一个记录序号初值为 1,每循环处理一次之后,该量都会变化 SQLSelect( DeviceID, "房间开关对应表", "room_switchBind", "", "房间号 ASC" );

//选择房间开关对应表中所有记录 Dswitchnums=SQLNumRows( DeviceID ); //得到所选记录条数 while(Daddnum<=Dswitchnums) //当记录序号不大于所选记录条数 { SQLGetRecord( DeviceID, Daddnum);

//读取记录序号所指的记录 Droomid=房间号; Droomchoose="房间号="+"’"+Droomid+"’"; //顺序取得每个不同房间号进行处理 SQLSelect( DeviceIDD, "房间开关对应表", "room_switchBind", Droomchoose, "" );

//对于当前房间,选择房间开关对应表中记录

Dswitchnum=SQLNumRows( DeviceIDD ); //得到选出的记录条数 Dworkuse=0; Deworkuse=0; dda=Dswitchnum;

SQLFirst( DeviceIDD ); //逐条处理 while(Dswitchnum>0)

{ Dswitchid=温控开关号; //对于每条记录中的温控开关 进行处理 Dswitchchoose="温控开关号="+"’"+Dswitchid+"’"+" and 日期="+"’"+日期+"’";

Page 383: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

第 11 章 PLC 与 DCS

–375–

SQLSelect( DeviceIIDD, "温控开关日用量表", "use_dayBind", Dswitchchoose, "" ); //从温控开关日用量表中取出该温控开关的记录 Dworkuse=Dworkuse+工作时段用量; //得到工作时段用量和非工作时段用量 Deworkuse=Deworkuse+非工作时段用量; SQLEndSelect( DeviceIIDD ); Dswitchnum=Dswitchnum-1; if(Dswitchnum>0) SQLNext( DeviceIDD ); } SQLEndSelect( DeviceIDD); 工作时段用量=Dworkuse;

非工作时段用量=Deworkuse; 日期=getdate; 日期值=getdata; //本站点\房间号=Droomid; SQLInsert( DeviceID, "房间日用量表", "room_daycostBind" ); //累计该房间内

//温控开关的用量插入房间日用量表 Daddnum=Daddnum+dda; } SQLEndSelect( DeviceID ); /*************************计算用户日用量************************/ string road1; road1=InfoAppDir()+"name.csv"; //用户名所存放的配方路径 Daddnum=1; SQLSelect( DeviceID, "用户信息表", "user_Bind", "", "用户编号 ASC" ); //选择用户信息表中所有记录 Dswitchnums=SQLNumRows( DeviceID ); while(Daddnum<=Dswitchnums) { SQLGetRecord( DeviceID, Daddnum); Duserid=用户编号; Duserchoose="用户编号="+"’"+Duserid+"’"; //顺序选取用户为当前用户的记录 SQLSelect( DeviceIDD, "用户信息表", "user_Bind",Duserchoose, "" ); Dswitchnum=SQLNumRows( DeviceIDD ); Dworkuse=0;

Deworkuse=0; ddb=Dswitchnum;

SQLFirst( DeviceIDD ); //顺序取得每个不同的房间号 while(Dswitchnum>0) { Droomid=房间号; //本站点\房间号=Droomid; Droomchoose="房间号="+"’"+Droomid+"’"+" and 日期="+"’"+日期+"’"; SQLSelect( DeviceIIDD, "房间日用量表", "room_daycostBind", Droomchoose, "" ); Dworkuse=Dworkuse+工作时段用量; //从房间日用量表中取得该房间用量 Deworkuse=Deworkuse+非工作时段用量; //累计得到用户用量 SQLEndSelect( DeviceIIDD ); Dswitchnum=Dswitchnum-1; if(Dswitchnum>0) SQLNext( DeviceIDD );

} SQLEndSelect( DeviceIDD); 时段用量=Dworkuse;

Page 384: PLC可编程控制器系统开发实例导航idl.hbdlib.cn/book/00000000000000/pdfbook/018/015/129653.pdf · 2008-09-17 · 本书先向读者介绍了plc 的基础知识,包括plc

PLC 可编程控制器系统开发实例导航

–376–

非工作时段用量=Deworkuse; 日期=getdate; 用户编号=Duserid; RecipeLoad(road1, 用户编号); SQLInsert( DeviceID, "用户日用表", "user_dayuseBind" ); //将累计结果插入用户日用量表 Daddnum=Daddnum+ddb;

} SQLEndSelect( DeviceID );

11.7 小结

在本章中,介绍了 DCS 和 PLC 的一些区别和特点,并对 DCS 和 PLC 的连接方法作了

简单的介绍,包括 DDE 连接方式、OPC 标准还有 ODBC 数据库。并以 IFIX 和组态王为例子

说明使用这几种连接方式的方法,希望能给读者一定的启发。