绪论 1
0.1 PLC原理 1
0.2 PLC类型 4
0.3 PLC性能 6
0.4 PLC应用 8
0.5 PLC使用 9
第1章 PLC编程技术基础 16
1.1 PLC程序概念 16
1.1.1 PLC指令 16
1.1.2 PLC功能(Function) 17
1.1.3 PLC功能块(Function block) 17
1.1.4 PLC程序块(POU) 18
1.1.5 PLC任务(Task) 18
1.1.6 PLC工程(Project) 19
1.2 PLC程序语言 19
1.2.1 指令表(Instruction List,IL) 20
1.2.2 结构化文本语言(Structured Text,ST) 20
1.2.3 梯形图(Ladder Diagram,LD) 22
1.2.4 功能块图(Function Block Diagram,FBD) 23
1.2.5 连续功能图(Continuous Function Chart,CFC) 24
1.2.6 顺序功能图(Sequential Function Chart,SFC) 24
1.3 PLC程序数据 25
1.3.1 地址 26
1.3.2 变量 34
1.3.3 常量 36
1.3.4 其它变量 36
1.4 PLC指令系统 36
1.4.1 基本逻辑类指令 36
1.4.2 定时、计数指令 43
1.4.3 应用指令 49
1.4.4 功能、功能块 65
1.5 PLC编程软件 66
1.5.1 概述 66
1.5.2 组成 69
1.5.3 使用 73
1.6 PLC程序实例 78
1.6.1 控制输出程序 79
1.6.2 单按钮起停程序 80
1.6.3 求公因数程序 84
结语 86
第2章 PLC顺序控制程序设计 88
2.1 PLC顺序控制概述 88
2.1.1 顺序控制类型 88
2.1.2 顺序控制编程方法 90
2.2 组合逻辑编程 92
2.2.1 组合逻辑表达式与真值表 92
2.2.2 组合逻辑分析 93
2.2.3 组合逻辑综合 93
2.2.4 组合逻辑综合实例 94
2.3 异步时序逻辑编程 96
2.3.1 异步时序逻辑表达式与通电表 96
2.3.2 异步时序逻辑分析 98
2.3.3 异步时序逻辑综合 99
2.3.4 异步时序逻辑综合举例 103
2.4 同步时序逻辑编程 110
2.4.1 异步时序逻辑同步化 110
2.4.2 同步时序逻辑表达式与状态图 111
2.4.3 同步时序逻辑分析 112
2.4.4 同步时序逻辑综合 113
2.4.5 同步时序逻辑综合实例 114
2.5 标志值法编程 123
2.5.1 基本思路 123
2.5.2 实现方法 123
2.5.3 实际应用 123
2.6 高级指令编程 128
2.6.1 用字逻辑指令处理 128
2.6.2 用子程序处理 132
2.6.3 用宏处理 135
2.6.4 用功能块处理 137
2.7 图解法编程 139
2.7.1 时序图法编程 139
2.7.2 流程图法编程 141
2.7.3 Petri网法编程 145
2.8 工程方法编程 152
2.8.1 分散控制及其应用 152
2.8.2 集中控制及其应用 155
2.8.3 混合控制及其应用 161
2.8.4 工程方法编程再思考 172
2.9 线性链表控制编程 173
2.9.1 简单线性链表程序实现及实例 173
2.9.2 分支线性链表算法要点及程序实现 180
结语 190
第3章 脉冲量控制程序设计 191
3.1 脉冲量控制概述 191
3.1.1 脉冲量控制的目的 191
3.1.2 脉冲量控制的特点 192
3.2 脉冲量控制硬件基础 193
3.2.1 脉冲信号采集 193
3.2.2 脉冲信号输出 204
3.3 高速计数比较控制编程 211
3.3.1 内置高速计数器比较控制 211
3.3.2 高速计数模块比较控制 216
3.4 脉冲量开环控制编程 220
3.4.1 独立运动控制 220
3.4.2 两轴协调运动控制 225
3.4.3 多轴协调运动控制 247
3.4.4 运动控制细节处理 248
3.5 同步运动控制编程 249
3.5.1 同步开环控制 249
3.5.2 跟随同步控制 251
3.6 硬件模块实现运动控制 252
3.6.1 用位置控制、运动控制模块实现 252
3.6.2 用运动控制CPU实现运动控制 253
3.6.3 专用于运动控制的PLC网络 254
结语 255
第4章 模拟量控制程序设计 256
4.1 模拟量控制概述 256
4.1.1 PLC模拟量控制过程 256
4.1.2 PLC模拟量控制目的 257
4.1.3 PLC模拟量控制类型 258
4.1.4 PLC模拟量控制特点 261
4.1.5 PLC模拟量控制要求及性能指标 262
4.2 PLC模拟量输入及输出 263
4.2.1 模拟量输入 263
4.2.2 模拟量输出 264
4.2.3 模拟量模块访问与数据处理 266
4.3 模拟量开环控制 268
4.3.1 程序控制 268
4.3.2 比例控制 270
4.3.3 补偿控制 271
4.4 模拟量简单闭环控制 273
4.4.1 ON/OFF闭环控制 273
4.4.2 负反馈控制 275
4.5 模拟量PID控制 276
4.5.1 PID控制算法 276
4.5.2 PID控制输出及参数 278
4.5.3 PID控制算法程序实现 279
4.5.4 PID控制改进算法 281
4.5.5 PID控制参数整定 283
4.6 用PID指令实现PID控制 284
4.6.1 PLC PID指令 284
4.6.2 PLC PID指令应用实例 287
4.7 用PLC PID功能块(FB)实现PID控制 291
4.7.1 西门子PLC PID功能块(FB) 291
4.7.2 PID功能块(FB)应用 294
4.8 PID控制高级应用及其改进算法 295
4.8.1 串级PID控制 295
4.8.2 串级双辅助回路PID比例控制 296
4.8.3 串级比例并交叉限幅双辅回路PID控制 297
4.8.4 前馈与PID混合控制 297
4.9 模拟量模糊控制程序设计 298
4.9.1 模糊控制原理 298
4.9.2 模糊控制算法 301
4.9.3 模糊算法实现 304
4.10 模拟量控制其它高级算法 311
4.10.1 最优控制 311
4.10.2 适应控制 314
4.10.3 预测控制 316
4.10.4 学习控制 318
4.10.5 专家控制 320
4.11 模拟量硬件模块控制 326
4.11.1 专用控制模块 326
4.11.2 回路控制模块 327
4.11.3 过程控制CPU 329
结语 330
第5章 PLC通信程序设计 331
5.1 概述 331
5.1.1 PLC连网通信目的 331
5.1.2 PLC连网通信平台 333
5.1.3 PLC连网通信方法 344
5.1.4 PLC通信程序特点 352
5.2 PLC与PLC通信程序设计 354
5.2.1 PLC与PLC地址映射通信程序设计 354
5.2.2 PLC与PLC地址链接通信程序设计 357
5.2.3 PLC与PLC用串口指令通信程序设计 372
5.2.4 PLC与PLC串口协议通信编程 382
5.2.5 PLC与PLC网络指令通信程序设计 384
5.3 PLC与计算机串口通信编程 394
5.3.1 计算机方程序设计要点 395
5.3.2 计算机用微软控件通信编程 397
5.3.3 计算机用微软应用程序接口通信编程 416
5.3.4 计算机用PLC厂商通信控件编程 424
5.3.5 计算机用PLC厂商通信函数编程 427
5.3.6 计算机用OPC编程 427
5.3.7 计算机与PLC用公网平台通信编程 437
5.3.8 PLC方程序设计 438
5.4 PLC与计算机以太网通信编程 440
5.4.1 计算机用Winsock Api函数通信编程 441
5.4.2 计算机用Winsock控件通信编程 441
5.4.3 互联网通信编程 445
5.4.4 PLC方程序设计 447
5.5 PLC与计算机组态软件通信编程 450
5.5.1 组态软件概念 450
5.5.2 组态软件简介 451
5.5.3 组态软件编程 457
5.6 PLC与人机界面通信程序设计 464
5.6.1 常用的人机界面 464
5.6.2 人机界面方程序设计 467
5.6.3 PLC方程序设计 469
5.7 PLC与智能装置通信程序设计 469
5.7.1 用通信指令通信 469
5.7.2 用从站地址通信 471
结语 471
第6章 PLC数据处理程序设计 472
6.1 数据终端是PLC的新角色 472
6.1.1 专职数据终端实例 472
6.1.2 兼职数据终端实例 473
6.2 数据采集程序设计 474
6.2.1 开关量采集 475
6.2.2 模拟量采集 476
6.2.3 脉冲量采集 481
6.2.4 脉冲选通采集 484
6.3 数据录入程序设计 486
6.3.1 录入数据设备 486
6.3.2 用通用指令录入 486
6.3.3 用模拟方法录入 490
6.3.4 用特殊指令录入 492
6.3.5 用编码键盘录入 492
6.4 数据存储程序设计 494
6.4.1 记录存储 494
6.4.2 压缩存储 500
6.4.3 安全存储 501
6.5 数据显示程序设计 502
6.5.1 数据数码管显示 502
6.5.2 数据动态显示 503
6.5.3 数据脉冲选通显示 506
6.5.4 高档数据显示设施 507
6.6 PLC数据传送程序设计 509
6.7 数表处理程序设计 509
6.7.1 排序 510
6.7.2 求总数 513
6.7.3 求平均数 515
第7章 PLC控制可靠性程序设计 516
7.1 PLC控制可靠性概述 516
7.1.1 PLC控制可靠性概念 516
7.1.2 PLC控制可靠性类型 517
7.2 PLC自身工作可靠性 518
7.2.1 PLC错误(故障)类型 518
7.2.2 系统错误记录 518
7.2.3 PLC故障及其排除 519
7.3 PLC输入程序可靠性 519
7.4 PLC输出程序可靠性 524
7.5 PLC通信程序可靠性 526
7.6 PLC异常处理程序 527
结语 531
第8章 PLC程序组织 532
8.1 PLC程序组织概述 532
8.1.1 PLC程序组织步骤 532
8.1.2 PLC程序组织简例 535
8.2 程序模块化组织 536
8.2.1 程序模块化组织概念 536
8.2.2 使用子程序法模块化 537
8.2.3 使用跳转指令模块化 537
8.2.4 使用步进指令模块化 537
8.2.5 用SFC语言编程 537
8.2.6 用程序块、功能块及函数编程 538
8.3 多PLC、多任务(程序、模块)程序组织 538
8.3.1 欧姆龙PLC多任务组织 538
8.3.2 S7-300、400机多模块组织 541
8.3.3 三菱PLC多程序组织 543
8.3.4 多CPU系统程序组织 544
8.4 PLC程序柔性化 547
8.4.1 程序使用柔性 547
8.4.2 地址分配柔性 548
8.4.3 参数设定柔性 548
8.4.4 动作选择柔性 551
8.4.5 信号反馈柔性 551
8.5 PLC程序调试 551
8.5.1 PLC程序调试概述 551
8.5.2 PLC程序仿真调试 552
8.5.3 PLC工作模式及其改变 552
8.5.4 PLC程序联机调试 554
8.5.5 PLC程序现场调试 554
8.5.6 PLC程序文档 555
结语 555
附录 PLC与计算机通信协议 556
附录A 欧姆龙HostLink协议 556
附录B 欧姆龙FINS协议 561
附录C S-200 PPI通信协议 565
附录D 三菱PLC编程口通信协议 568
附录E Modbus串口通信协议 572
附录F Modbus TCP协议 577
参考文献 578