西门子S7-1200/1500 PLC SCL语言编程从入门到精通
定 价:99 元
- 作者:北岛李工 编
- 出版时间:2022/1/1
- ISBN:9787122400413
- 出 版 社:化学工业出版社
- 中图法分类:TM571.61
- 页码:347
- 纸张:
- 版次:01
- 开本:16开
本书帮助读者系统学习西门子SCL编程语言,书中案例的硬件基于西门子S7-1200/1500系列PLC,软件基于博途开发环境。本书分三部分:入门篇、进阶篇和高级篇。入门篇介绍了S7-1200/1500的硬件环境、PLC工作原理及SCL编程的基本概念;进阶篇介绍了SCL编程的复杂数据类型、扩展指令、工艺对象等,包含大量实用案例讲解;高级篇介绍如何使用C#语言编写TCP及UDP通信的控制台程序,并实现与PLC的通信。本书从基础到进阶再到高级,带领读者循序渐进地学习西门子SCL编程方法和技巧。
书中附有视频讲解,读者扫描二维码即可观看学习。
本书适合电气自动化的编程和调试工程师使用,也可作为大专院校相关专业的教材。
第一篇 入门篇 001
第1章 S7-1200/1500硬件介绍 001
1.1 西门子SIMATIC S7-1200 PLC概述 001
1.2 S7-1200的CPU模块 003
1.2.1 CPU模块概述 003
0101-CPU 1214FC介绍 004
1.2.2 CPU 1214C AC/DC/Relay 004
1.3 S7-1200的数字量模块 007
1.3.1 数字量输入模块 007
1.3.2 数字量输出模块 009
1.4 S7-1200的模拟量模块 010
1.4.1 模拟量输入模块 010
1.4.2 模拟量输出模块 012
1.5 西门子SIMATIC S7-1500 PLC概述 013
1.6 S7-1500的CPU模块 015
1.6.1 CPU模块概述 015
1.6.2 CPU 1515-2PN模块 017
1.7 S7-1500/ET 200MP的数字量模块 019
1.7.1 数字量输入模块 019
1.7.2 数字量输出模块 019
1.7.3 数字量故障安全模块 021
1.8 S7-1500/ET 200MP的模拟量模块 023
1.8.1 模拟量输入模块 023
1.8.2 模拟量输出模块 027
1.9 S7-1500/ET 200MP的组件 029
1.9.1 导轨 029
1.9.2 U形连接器 029
1.9.3 前连接器 029
1.9.4 电源端子 030
第2章 PLC的工作原理与存储方式 031
2.1 PLC的工作原理 031
2.1.1 PLC的程序结构 031
2.1.2 CPU的工作模式 031
2.2 CPU的存储器 033
2.2.1 装载存储器 033
2.2.2 工作存储器 033
2.2.3 保持存储器 034
2.2.4 系统存储器 034
2.3 SIMATIC存储卡 035
2.3.1 SIMATIC存储卡简介 035
0201-SIMATIC存储卡介绍 035
2.3.2 SIMATIC存储卡的安装 036
2.3.3 SIMATIC存储卡的工作模式 037
2.3.4 使用SIMATIC存储卡更新CPU固件 037
2.4 在线查看存储器的使用情况 038
第3章 TIA博途软件开发环境 039
3.1 TIA博途平台简介 039
3.2 程序编辑器介绍 042
3.3 SCL编辑器的常规设置 043
3.3.1 高亮显示关键字 043
3.3.2 新添加块的设置 044
3.4 创建SCL函数块或函数 045
3.5 SCL代码编辑器 045
3.6 SCL编辑器使用技巧 046
3.6.1 使用区间指令将代码分区 046
3.6.2 使用书签快速定位代码 047
第4章 TIA博途软件应用实例 049
4.1 创建示例程序 049
0401-创建示例程序 049
4.2 项目的编译、下载与在线监控 053
0402-项目程序的下载与在线监控 053
4.3 程序的比较 054
0403-程序在线与离线比较 055
4.4 项目的归档与恢复 055
0404-项目的归档与恢复 056
4.5 使用项目参考功能 056
0405-使用项目参考功能 056
第5章 S7-1200/1500的软件架构与编程 057
5.1 操作系统与用户程序 057
5.2 操作系统的接口——组织块 058
5.2.1 组织块的分类 058
0501-组织块(Organization Block)介绍 059
5.2.2 程序循环组织块 059
5.2.3 启动组织块 059
5.2.4 延时中断组织块 059
5.2.5 循环中断组织块 059
5.2.6 硬件中断组织块 060
5.2.7 时间错误中断组织块 060
5.2.8 诊断错误中断组织块 060
5.2.9 插拔中断组织块 060
5.2.10 机架或子站故障组织块 061
5.2.11 日期时间中断组织块 061
5.2.12 状态中断组织块 061
5.2.13 更新中断组织块 061
5.2.14 配置中断组织块 061
5.2.15 运动控制插补器组织块 061
5.2.16 运动控制伺服组织块 061
5.2.17 运动控制伺服前调组织块 061
5.2.18 运动控制伺服后调组织块 062
5.3 用户程序的基本单位——程序组织单元 062
5.3.1 函数 062
0502-函数(FC)介绍 062
5.3.2 函数块 063
0503-函数块(FB)及其背景数据块的介绍 063
5.3.3 数据块 064
0504-全局数据块(Global DB)介绍 064
0505-背景数据块介绍 066
0506-多重背景数据块介绍 067
5.4 编程指导 068
5.4.1 模块化程序设计 068
5.4.2 程序组织单元的命名规则 068
5.4.3 代码注释的推荐格式 069
第6章 SCL语言 070
6.1 SCL语言与PLC国际编程标准 070
6.1.1 SCL语言简介 070
6.1.2 PLC国际编程标准——IEC 61131-3简介 071
6.2 SCL语言的特点和优势 071
6.3 先睹为快:SCL编程实现按钮控制指示灯 072
6.3.1 硬件/软件环境及电气图纸 072
0601-TIA博途实例-电气图纸 073
6.3.2 程序代码示例 073
0602-TIA博途实例-程序讲解 075
0603-LED灯实际效果演示 075
第7章 SCL编程的基本概念 076
7.1 基本数据类型 076
7.1.1 布尔型 076
7.1.2 整数类型 076
7.1.3 实数类型 077
7.1.4 定时器时间值类型 078
7.1.5 日期时间类型 079
7.1.6 字符与字符串类型 081
7.1.7 位字符串类型 082
7.2 变量与常量 083
7.2.1 变量概述 083
7.2.2 变量的命名规则 083
7.2.3 变量的声明 084
7.2.4 预定义变量——ENO 084
7.2.5 常量概述 085
7.2.6 常量的声明 085
7.3 表达式 086
7.3.1 算术表达式 086
7.3.2 关系表达式 087
7.3.3 逻辑表达式 087
7.4 运算符及其优先级 088
7.5 语句 088
7.5.1 语句概述 088
7.5.2 赋值语句 088
7.5.3 条件语句(IF) 089
7.5.4 选择语句(CASE) 090
7.5.5 循环语句 091
7.5.6 跳转语句 094
7.6 代码的注释 095
第8章 SCL基本指令及其应用 096
8.1 沿信号检测指令 096
8.1.1 上升沿信号检测指令 096
0801-上升沿信号检测 096
8.1.2 下降沿信号检测指令 097
8.2 定时器指令 097
8.2.1 脉冲定时器(TP)指令 097
0802-脉冲定时器示例 099
8.2.2 延时接通定时器(TON)指令 099
0803-延时接通定时器示例 100
8.2.3 延时断开定时器(TOF)指令 100
0804-延时断开定时器示例 101
8.2.4 保持型延时接通定时器(TONR)指令 101
0805-保持型延时接通定时器示例 102
8.2.5 复位定时器(RESET_TIMER)指令 102
8.2.6 定时器预设值设置(PRESET_TIMER)指令 103
8.3 计数器指令 103
8.3.1 加计数器指令 103
8.3.2 减计数器指令 104
8.3.3 加/减计数器指令 105
8.4 数学指令 106
8.4.1 正弦指令 106
8.4.2 余弦指令 106
8.4.3 平方指令 106
8.4.4 最大值指令 107
8.4.5 最小值指令 107
8.5 读写存储器指令 107
8.5.1 PEEK指令 107
8.5.2 POKE指令 108
8.6 移动指令 110
8.6.1 MOVE_BLK指令 111
8.6.2 UMOVE_BLK指令 111
8.6.3 FILL_BLK指令 111
8.6.4 UFILL_BLK指令 112
8.7 转换指令 112
8.7.1 类型转换指令 112
8.7.2 取整指令 112
8.7.3 归一化指令——NORM_X 113
8.7.4 比例缩放指令——SCALE_X 114
8.8 字逻辑指令 115
8.8.1 解码(DECO)指令 115
8.8.2 编码(ENCO)指令 115
8.9 移位指令 116
8.9.1 右移(SHR)指令 116
8.9.2 左移(SHL)指令 116
8.9.3 循环右移(ROR)指令 117
8.9.4 循环左移(ROL)指令 117
第9章 SCL基本编程实例 118
9.1 电机启停控制 118
0901-电机启停控制-电气图纸讲解 119
0902-电机启停控制-程序讲解 120
0903-电机启停控制-实际演示 120
9.2 用不同的频率控制蜂鸣器 120
0904-不同频率控制蜂鸣器发声-电气图纸讲解 121
0905-不同频率控制蜂鸣器发声-程序讲解 122
0906-不同频率控制蜂鸣器发声-实际演示 123
9.3 空压机的延时关闭 124
0907-空压机延时关闭-电气图纸讲解 124
0908-空压机延时关闭-程序讲解 126
0909-空压机延时关闭-实际演示 126
9.4 移动单元位置计算 126
0910-移动单元位置计算-电气图纸讲解 127
0911-移动单元位置计算-程序讲解 128
0912-移动单元位置计算-实际演示 128
9.5 获取模拟量温湿度传感器的值 129
0913-模拟量温湿度传感器-电气图纸讲解 129
0914-模拟量温湿度传感器-程序讲解 130
0915-模拟量温湿度传感器-实际演示 131
9.6 BCD码转换成整数 131
0916-BCD码转换成整数 132
9.7 位字符串的提取与组合 133
0917-位字符串的提取与组合 133
第二篇 进阶篇 135
第10章 S7-1200/1500复杂数据类型 135
10.1 数组 135
10.1.1 数组概述 135
10.1.2 数组的声明 136
10.1.3 数组元素的引用 136
10.2 指针 136
10.2.1 基本概念 136
10.2.2 Pointer类型 137
10.2.3 Any类型 138
10.2.4 Variant类型 139
10.3 结构体 139
10.3.1 结构体及其声明 139
10.3.2 结构体变量的引用 140
10.4 用户自定义类型 141
10.4.1 基本概念 141
10.4.2 用户自定义类型变量的声明及引用 142
10.5 系统数据类型 142
第11章 SCL扩展指令 143
11.1 日期时间指令 143
11.1.1 时间加减指令 143
11.1.2 时钟读写指令 144
1101-读写CPU系统时钟 145
11.2 字符串操作指令 146
11.2.1 获取字符串当前长度 146
11.2.2 获取字符串最大长度 146
11.2.3 读取字符串左侧字符 146
11.2.4 读取字符串右侧字符 147
11.2.5 读取字符串中间字符 147
11.2.6 插入字符串 148
11.2.7 替换字符串 148
11.3 中断指令 149
11.3.1 硬件中断的绑定与解绑 149
11.3.2 循环中断的设置与查询 150
11.3.3 日期时间中断的设置与启用 152
11.3.4 延时中断的启用与取消 155
11.4 配方管理 156
11.4.1 配方概述 156
11.4.2 配方相关数据块 157
11.4.3 配方导出指令 158
1102-如何导出配方数据 159
11.4.4 配方导入指令 161
1103-如何导入配方数据 162
11.4.5 读配方指令 164
1104-读取配方数据 165
11.4.6 写配方指令 165
1105-写入配方数据 166
11.5 诊断指令 166
11.5.1 读取IO设备的名称 166
1106-读取IO设备名称 166
11.5.2 读取IO设备信息 168
1107-读取IO设备信息 168
11.5.3 读取IO设备的状态 170
1108-读取IO设备状态 170
11.5.4 读取标识及维护数据 172
1109-读取标识及维护数据 174
第12章 SCL编程进阶实例与技巧 175
12.1 通用函数库 175
12.1.1 基本介绍 175
12.1.2 下载与安装 175
1201-LGF通用函数库的下载及安装 175
12.1.3 LGF函数介绍——脉冲继电器 176
1202-LGF脉冲继电器 177
12.1.4 LGF函数介绍——频率发生器 178
1203-LGF频率发生器 178
12.1.5 LGF函数介绍——环型存储区 179
1204-LGF环型存储区函数 179
12.2 自己编程实现沿信号检测 181
12.3 自己编程实现双稳态触发器 182
12.4 自己编程实现减计数器 184
12.5 自己编程实现定时采样 186
12.6 自己编程实现数据块复制 188
12.7 自己编程计算设备运行时间 189
12.8 间接寻址 192
12.8.1 变量的覆盖访问(AT) 192
12.8.2 变量的片段访问(SLICE) 192
12.8.3 PEEK/POKE 194
12.9 SCL源代码操作 195
12.9.1 导出源代码 195
12.9.2 导入源代码 195
12.10 SCL程序加密保护 196
12.11 创建自己的全局库 196
1205-创建自己的全局库 197
第13章 SCL工艺功能及其应用 198
13.1 高速计数器 198
13.1.1 高速计数器概述 198
13.1.2 S7-1200的高速计数器 198
13.1.3 S7-1200的高速计数器指令 200
13.1.4 S7-1500的高速计数器模块 204
13.1.5 实例1:CPU 1214FC获取编码器的数据 208
1301-编码器-高速计数器电气图纸讲解 209
1302-编码器例程程序讲解 211
13.1.6 实例2:高速计数器当前值的断电保存 211
1303-保存高速计时器当前值 211
13.2 脉宽调制(PWM) 213
13.2.1 脉宽调制概述 213
13.2.2 S7-1200的PWM资源 213
13.2.3 S7-1200 PWM的组态与控制 214
13.2.4 S7-1500的PWM资源 216
13.2.5 S7-1500 PWM的组态与控制 216
1304-PWM组态及程序讲解 216
13.2.6 SCL实例:CPU 1214FC使用PWM实现电机调速 220
1305-EPLAN电气图纸讲解 220
13.3 PID控制 223
13.3.1 开环系统与闭环系统 223
1306-PWM控制电机调速-实际延时 223
13.3.2 PID控制器 224
13.3.3 S7-1200/1500 PID指令介绍 224
1307-PID指令及其组态 224
13.3.4 PID工艺对象 226
13.3.5 实例:CPU 1214C使用PID控制水罐的温度 227
13.4 运动控制 232
13.4.1 运动控制概述 232
13.4.2 S7-1200的PTO资源 236
13.4.3 S7-1500/ET 200MP的TM PTO4模块 236
13.4.4 S7-1200/1500的运动轴与工艺对象 238
1308-运动轴工艺对象介绍 238
13.4.5 S7-1200/1500的运动控制指令 241
13.4.6 实例:CPU 1214FC控制步进电机进行绝对定位 252
1309-步进电机-接线图讲解 254
1310-步进电机运动控制-工艺对象讲解 256
1311-步进电机控制-回原点 258
1312-步进电机运动控制-程序讲解 261
1313-步进电机运动控制-实例演示 261
第14章 SCL通信功能及其应用 262
14.1 串行通信 262
14.1.1 串行通信概述 262
14.1.2 S7-1200的串口通信模块及信号板 264
1401-CM 1241 RS232模块外观介绍 264
1402-CB 1241 RS485外观及安装介绍 267
14.1.3 S7-1500/ET 200MP串口通信模块 268
14.1.4 点对点通信指令 270
1403-串口指令SEND_PTP&RCV_PTP数据收发演示 270
1404-CM 1241 RS232固件更新 278
14.1.5 SCL实例:CPU 1214FC与串口助手通信 279
1405-CM1241使用通用串行指令与串口助手通信 279
14.2 Modbus-RTU通信 281
14.2.1 Modbus简介 281
14.2.2 S7-1200/1500的Modbus-RTU指令 283
14.2.3 Modbus协议的数据模型和地址模型 287
14.2.4 SCL实例:CPU 1214FC通过Modbus-RTU协议读取温度传感器的数值 289
1406-CB 1241 RS485读取温度传感器EPLAN电气图纸讲解 289
1407-CB 1241 RS485读取温度传感器 291
14.3 以太网通信 292
14.3.1 S7-1200/1500的以太网接口及连接资源 292
14.3.2 S7通信 293
1408-S7通信连接硬件组态 296
1409-CPU ST20和CPU 1214FC的通信讲解 299
14.3.3 TCP通信 303
1410-创建一个TCP通信函数块ComTCP 309
14.3.4 Modbus TCP通信 312
1411-Modbus-TCP服务器和客户端程序介绍 321
1412-Modbus-TCP通信实例演示 321
14.3.5 UDP通信 321
1413-创建一个UDP通信的函数块comUDP 325
14.4 PROFINET通信 328
14.4.1 PROFINET协议简介 328
14.4.2 PROFINET IO控制器与IO设备 329
14.4.3 实例:构建一个PROFINET IO系统 330
1414-构建一个PRFINET IO系统 330
14.4.4 智能设备(I-Device) 332
14.4.5 实例:CPU ST20作为CPU 1214FC的智能设备 332
14.5 Web服务器应用 335
14.5.1 Web服务器功能介绍 335
14.5.2 标准Web服务器 337
1415-Web服务器功能介绍 337
第三篇 高级篇 339
第15章 高级语言C#与SCL的程序应用实例 339
15.1 C#语言简介 339
15.2 使用C#创建一个TCP服务器程序myTCPServer 340
15.3 使用myTCPServer与函数块FB5005_ComTCP通信 343
1501-myTCPServer与函数块 FB5005_ComTCP通信 343
15.4 使用C#创建一个UDP通信程序myUDPTalker 343
15.5 使用myUDPTalker与函数块FB5006_ComUDP通信 346
1502-myUDPTalker与函数块FB5006_ComUDP通信 346
附录 ASCII码表 347