第1部分 绪论 2
第1章 SIMATIC S7-300/400可编程序控制器 2
1.1 可编程序控制器的结构 2
1.1.1 部件 2
1.1.2 S7-300工作站 4
1.1.3 S7-400工作站 5
1.1.4 容错型SIMATIC 6
1.1.5 安全相关型SIMATIC 6
1.1.6 CPU的存储空间 8
1.2 分布式I/O 12
1.2.1 PROFIBUS DP 12
1.2.2 PROFIBUS DP与PROFIBUS PA的连接 15
1.2.3 PROFIBUS DP与AS接口的连接 16
1.2.4 PROFIBUS DP与串行接口的连接 17
1.2.5 PROFINET IO 17
1.2.6 PROFINET IO与PROFIBUS DP的连接 18
1.3 通信 18
1.3.1 引言 19
1.3.2 子网络 21
1.3.3 通信服务 24
1.3.4 连接 25
1.4 模块地址 26
1.4.1 信号通路 26
1.4.2 插槽地址 27
1.4.3 逻辑地址 27
1.4.4 模块起始地址 28
1.4.5 诊断地址 28
1.4.6 总线节点地址 28
1.5 地址空间 29
1.5.1 用户数据空间 29
1.5.2 过程映像 30
1.5.3 用户数据的一致性 31
1.5.4 位存储区 32
第2章 STEP 7编程软件 33
2.1 STEP 7基本软件包 33
2.1.1 安装 33
2.1.2 自动化认证管理器 33
2.1.3 SIMATIC管理器 34
2.1.4 项目与库 37
2.1.5 多重项目 38
2.1.6 在线帮助 38
2.2 编辑项目 39
2.2.1 创建项目 39
2.2.2 管理、重组与归档 40
2.2.3 项目版本号 41
2.2.4 创建与编辑多重项目 42
2.3 工作站组态 43
2.3.1 模块排列 44
2.3.2 模块编址 45
2.3.3 设置模块参数 45
2.3.4 带有MPI的连网模块 46
2.3.5 模块监控与修改 46
2.4 网络组态 47
2.4.1 网络浏览组态 48
2.4.2 用网络组态对分布式I/O组态 49
2.4.3 连接组态 50
2.4.4 网络转换 53
2.4.5 加载连接数据 54
2.4.6 多重项目中的项目匹配 54
2.5 创建S7程序 56
2.5.1 引言 56
2.5.2 符号表 57
2.5.3 程序编辑器 58
2.5.4 重新配线 63
2.5.5 地址优先级 63
2.5.6 参考数据 64
2.5.7 多种语言注释和显示文本 66
2.6 在线模式 67
2.6.1 连接PLC 67
2.6.2 保护用户程序 68
2.6.3 CPU信息 69
2.6.4 用户程序加载CPU 70
2.6.5 块处理 70
2.7 程序测试 73
2.7.1 硬件诊断 73
2.7.2 确定停止(STOP)的原因 74
2.7.3 监控和修改变量 74
2.7.4 强制修改变量 76
2.7.5 外部输出启用 77
2.7.6 LAD/FBD程序状态 78
2.7.7 监控和修改数据地址 79
第3章 SIMATIC S7程序 81
3.1 程序处理 81
3.1.1 程序处理方法 81
3.1.2 优先级 82
3.1.3 程序处理的详细说明 84
3.2 块 86
3.2.1 块类型 86
3.2.2 块结构 88
3.2.3 块属性 88
3.2.4 块接口 91
3.3 代码块编程 94
3.3.1 打开块 94
3.3.2 块窗口 95
3.3.3 观察窗口 95
3.3.4 网络编程 96
3.3.5 寻址 97
3.3.6 编辑LAD元件 98
3.3.7 编辑FBD元件 100
3.4 编程数据块 102
3.4.1 创建数据块 102
3.4.2 数据块的类型 102
3.4.3 块窗口与视图 103
3.5 变量、常量和数据类型 105
3.5.1 有关变量的一般要点 105
3.5.2 变量寻址 106
3.5.3 数据类型一览 109
3.5.4 基本数据类型 110
3.5.5 复杂数据类型 115
3.5.6 参数类型 119
3.5.7 用户数据类型 119
第2部分 基本功能 122
第4章 二进制逻辑运算 122
4.1 串联和并联电路(LAD) 122
4.1.1 NO触点和NC触点 122
4.1.2 串联电路 123
4.1.3 并联电路 124
4.1.4 二进制逻辑运算组合 125
4.1.5 逻辑运算结果求反 125
4.2 二进制逻辑运算(FBD) 126
4.2.1 基本二进制逻辑运算 127
4.2.2 二进制逻辑运算组合 130
4.2.3 逻辑运算结果取反 131
4.3 传感器类型的影响 132
第5章 存储功能 135
5.1 LAD线圈 135
5.1.1 单线圈 135
5.1.2 置位线圈与复位线圈 136
5.1.3 存储逻辑框 136
5.2 FBD逻辑框 140
5.2.1 分配 140
5.2.2 置位逻辑框和复位逻辑框 142
5.2.3 存储逻辑框 142
5.3 中间输出 145
5.3.1 LAD的中间输出 145
5.3.2 FBD的中间输出 146
5.4 边沿检测 147
5.4.1 如何完成边沿检测 147
5.4.2 LAD的边沿检测 147
5.4.3 FBD的边沿检测 149
5.5 二进制分频器 150
5.5.1 LAD的实现方法 151
5.5.2 FBD的实现方法 152
5.6 一个传送带控制系统的例子 153
第6章 传送功能 157
6.1 概述 158
6.2 MOVE逻辑框 158
6.2.1 MOVE逻辑框的处理 158
6.2.2 传送操作数 160
6.2.3 传送常量 162
6.3 数据传送的系统功能 162
6.3.1 ANY指针 163
6.3.2 复制数据区 164
6.3.3 数据区的不可中断复制 164
6.3.4 填充数据区 164
6.3.5 读取加载存储器 166
6.3.6 写入加载存储器 166
第7章 定时器 168
7.1 定时器编程 168
7.1.1 定时器的一般表示 168
7.1.2 启动定时器 169
7.1.3 确定定时时间 170
7.1.4 复位定时器 172
7.1.5 检查定时器 172
7.1.6 定时器运行顺序 172
7.1.7 梯形图中的定时器逻辑框(LAD) 173
7.1.8 逻辑电路中的定时器逻辑框(FBD) 173
7.2 脉冲定时器 173
7.3 扩展脉冲定时器 174
7.4 通电延时定时器 175
7.5 保持型通电延时定时器 176
7.6 断电延时定时器 177
7.7 IEC定时器 178
7.7.1 脉冲定时器SFB 3 TP 178
7.7.2 通电延时定时器SFB 4 TON 179
7.7.3 断电延时定时器SFB 5 TOF 179
第8章 计数器 181
8.1 计数器编程 181
8.2 计数器置位和复位 184
8.3 计数 185
8.4 计数器检查 185
8.5 IEC计数器 186
8.5.1 加计数器SFB 0 CTU 186
8.5.2 减计数器SFB 1 CTD 187
8.5.3 加/减计数器SFB 2 CTUD 187
8.6 零件计数器实例 188
第3部分 数字功能 194
第9章 比较功能 194
9.1 比较功能处理过程 194
9.2 比较功能说明 196
第10章 算术功能 198
10.1 算术功能的处理过程 198
10.2 INT类型数据计算 200
10.3 DINT类型数据计算 201
10.4 REAL类型数据计算 202
第11章 数学功能 204
11.1 数学功能的处理过程 204
11.2 三角函数功能 206
11.3 反三角函数计算功能 206
11.4 其他数学功能 207
第12章 转换功能 210
12.1 转换功能的处理过程 210
12.2 INT与DINT转换 212
12.3 BCD码的转换 213
12.4 REAL的转换 214
12.5 其他转换功能 216
第13章 移位功能 217
13.1 移位功能的处理过程 217
13.2 移位 219
13.3 循环 220
第14章 字逻辑 222
14.1 字逻辑的处理过程 222
14.2 字逻辑运算说明 224
第4部分 程序流控制 228
第15章 状态位 228
15.1 状态位说明 228
15.2 状态位设置 229
15.3 状态位检测 232
15.4 使用二进制结果 233
15.4.1 设置二进制结果BR 233
15.4.2 主阶梯和EN/ENO机理 234
15.4.3 用户编写的块的ENO 235
第16章 跳转功能 236
16.1 跳转功能的处理过程 236
16.2 无条件跳转 237
16.3 RLO=“1”时跳转 238
16.4 RLO=“0”时跳转 239
第17章 主控继电器 240
17.1 MCR相关性 240
17.2 MCR范围 241
17.3 MCR区域 241
17.4 I/O位的置位与复位 243
第18章 块功能 245
18.1 代码块的块功能 245
18.1.1 块调用概论 246
18.1.2 调用逻辑框 247
18.1.3 CALL线圈/逻辑框 249
18.1.4 块结束功能 249
18.1.5 暂态局部数据 250
18.1.6 静态局部数据 252
18.2 数据块的块功能 255
18.2.1 两个数据块寄存器 255
18.2.2 存取数据操作数 256
18.2.3 打开数据块 257
18.2.4 数据寻址的特殊处 259
18.3 用于数据块的系统功能 260
18.3.1 在工作存储器内生成数据块 261
18.3.2 在加载存储器内生成数据块 262
18.3.3 删除数据块 263
18.3.4 检测数据块 263
第19章 块参数 264
19.1 块参数概述 264
19.1.1 块参数定义 264
19.1.2 块参数处理 265
19.1.3 块参数声明 265
19.1.4 函数值声明 266
19.1.5 块参数初始化 266
19.2 形参 267
19.3 实参 269
19.4 “前向”块参数 272
19.5 实例 273
19.5.1 传送带的例子 273
19.5.2 零件计数器例子 274
19.5.3 给料的例子 274
第5部分 程序处理 284
第20章 主程序 284
20.1 程序组织 284
20.1.1 程序结构 284
20.1.2 程序组织 285
20.2 扫描周期控制 286
20.2.1 过程映像更新 286
20.2.2 扫描周期监控时间 288
20.2.3 最小扫描周期时间和背景扫描 289
20.2.4 响应时间 290
20.2.5 启动信息 291
20.3 程序功能 292
20.3.1 日历 292
20.3.2 读取系统时钟 295
20.3.3 运行时间计时器 295
20.3.4 CPU存储器的压缩 296
20.3.5 等待与停止 297
20.3.6 多处理器模式 297
20.4 通过分布式I/O通信 298
20.4.1 寻址PROFIBUS DP 298
20.4.2 组态PROFIBUS DP 303
20.4.3 用于PROFIBUS DP的特殊功能 309
20.4.4 寻址PROFINET IO 313
20.4.5 组态PROFINET IO 315
20.4.6 用于PROFINET IO的特殊功能 317
20.4.7 用于分布式I/O的系统功能 317
20.5 全局数据通信(GD通信) 322
20.5.1 基础知识 322
20.5.2 组态GD通信 325
20.5.3 用于GD通信的系统功能 327
20.6 S7基本通信 328
20.6.1 站内S7基本通信 328
20.6.2 用于站内S7基本通信的系统功能块 329
20.6.3 站外S7基本通信 330
20.6.4 站外S7基本通信的系统功能 331
20.7 S7通信 334
20.7.1 基础知识 334
20.7.2 双向数据交换 335
20.7.3 单向数据交换 337
20.7.4 传送打印数据 339
20.7.5 控制功能 339
20.7.6 监控功能 340
20.8 S7-300C的点对点通信 344
20.8.1 基础知识 344
20.8.2 ASCII驱动器与3964(R)过程 344
20.8.3 RK512计算机耦合连接 346
20.9 运行中组态 350
20.9.1 变更组态的准备 351
20.9.2 变更组态 351
20.9.3 加载组态 352
20.9.4 CiR同步时间 353
20.9.5 对程序执行的影响 353
20.9.6 控制CiR过程 353
第21章 中断处理 355
21.1 简述 355
21.2 日历中断 357
21.2.1 处理日历中断 357
21.2.2 用STEP 7配置日历中断 358
21.2.3 用于日历中断的系统功能 359
21.3 延时中断 360
21.3.1 延时中断处理 361
21.3.2 用STEP 7组态延时中断 362
21.3.3 延时中断的系统功能 362
21.4 看门狗中断 363
21.4.1 处理看门狗中断 364
21.4.2 用STEP7组态看门狗中断 365
21.5 硬件中断 365
21.5.1 产生硬件中断 366
21.5.2 硬件中断服务 367
21.5.3 用STEP 7组态硬件中断 367
21.6 DPV1中断 367
21.7 多处理器中断 369
21.8 同步周期中断 371
21.8.1 处理同步周期中断 372
21.8.2 过程映像等时更新 372
21.8.3 用STEP 7组态同步周期中断 373
21.9 处理中断事件 373
21.9.1 禁止与启用中断 373
21.9.2 延迟与启用中断 374
21.9.3 读取附加的中断信息 375
第22章 启动特性 377
22.1 概述 377
22.1.1 操作模式 377
22.1.2 HOLD(暂停)模式 378
22.1.3 禁止输出模块 378
22.1.4 组织块重启 378
22.2 上电 379
22.2.1 STOP模式 379
22.2.2 存储器复位 380
22.2.3 保持性 380
22.2.4 重启参数 381
22.3 重启类型 381
22.3.1 启动模式 381
22.3.2 冷重启 382
22.3.3 温重启 382
22.3.4 热重启 384
22.4 确定模块地址 385
22.5 模块参数化 388
22.5.1 模块参数化概述 388
22.5.2 设置模块参数的系统块 390
22.5.3 传送数据记录的块 392
第23章 出错处理 395
23.1 同步错误 395
23.2 同步错误处理 397
23.2.1 错误过滤器 398
23.2.2 屏蔽同步错误 399
23.2.3 取消屏蔽同步错误 399
23.2.4 读取错误寄存器 400
23.2.5 输入替换值 400
23.3 异步错误 400
23.4 系统诊断 403
23.4.1 诊断事件与诊断缓存器 403
23.4.2 写诊断缓存器的用户入口 404
23.4.3 识别诊断中断 404
23.4.4 读系统状态表 406
第6部分 附录 410
第24章 图形编程的补充 410
24.1 块保护 410
24.2 间接寻址 411
24.2.1 指针概述 411
24.2.2 区指针 411
24.2.3 DB指针 413
24.2.4 ANY指针 413
24.2.5 “可变的”ANY指针 414
24.3 “消息帧实例”简述 414
第25章 功能块库 418
25.1 组织块 418
25.2 系统功能块 420
25.3 IEC功能块 424
25.4 S5-S7转换块 426
25.5 TI-S7转换块 427
25.6 PID控制块 428
25.7 通信块 428
25.8 其他块 429
25.9 SIMATIC_NET_CP 429
25.10 冗余IO(V1) 431
第26章 LAD功能集 432
26.1 基本功能 432
26.2 数字功能 434
26.3 程序流控制 437
第27章 FBD功能集 439
27.1 基本指令 439
27.2 数字功能 441
27.3 程序流控制 444
索引 446
缩写词 454