描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787111755746
编辑推荐
本书重点介绍了高级编程方法,帮助读者对S7-200 SMART各种资源和功能指令进行探索、学习和掌握各种核心技能,最终实现在SMART 中实现与大型PLC中才具备的FB类似的功能,为学习编程方法和提高编程技巧打下基础。
内容简介
本书是一本帮助PLC工程师提高PLC编程技能的工具书。以西门子S7-200 SMART为例,分析讲解了PLC的底层资源和应用原理,对编程中经常遇到的循环、符号寻址、指针、字符串、数据表和用户库等应用,均做了模块化编程方法的演示,分析和讲解了在PLC中全局变量M、定时器T和上升沿的使用禁忌以及自定义模块化实现的方法,最终带领读者实现了在小型PLC中实现了只有大中型PLC才有的具有静态变量记忆功能的FB功能,即本书副书名“给SMART插上FB翅膀”所言,使得在SMART中实现模块化编程和标准化编程成为可能。
本书适合初步掌握S7-200 SMART PLC入门技能的工程师、高校从事PLC教学的教师以及有兴趣学习烟台方法的读者阅读。
本书适合初步掌握S7-200 SMART PLC入门技能的工程师、高校从事PLC教学的教师以及有兴趣学习烟台方法的读者阅读。
目 录
目?录
前言
第1章 读者需要提前具备的基础知识 1
第2章 从子程序开始 8
2.1?SBR引脚数量的容量 8
2.2?SBR接口改变应对方案 12
2.3?IN_OUT引脚类型探索 14
2.4?所有IN和OUT引脚数量的上限 16
2.5?SBR的TEMP数据区 17
第3章 TEMP数据探秘 19
3.1?错误使用TEMP变量的程序例子 19
3.2?TEMP数据传递和保持规律 22
3.3?示例:利用TEMP数据给功能块增加输入/输出引脚 24
3.4?相同功能例子的传统方法实现 28
3.5?TEMP数据实现变址 29
第4章 AC寄存器 33
4.1?使用与不使用AC寄存器编程方法的比较 33
4.2?AC寄存器数值的缓存与恢复 35
4.3?循环指令中使用AC寄存器 37
第5章 循环指令的使用禁忌 40
5.1?[万泉河]PLC编程中循环语法的使用 40
5.2?[万泉河]程序算法的本质 42
5.3?[万泉河]优雅的PLC程序一定是用Excel写出来的 44
5.4?[万泉河]解读一个比较循环法与[万泉河]80模拟量例子的程序 48
5.5?[万泉河]80模拟量例子程序升级版V2.0 52
5.6?PLC编程中的高内聚与低耦合 54
第6章 符号寻址 56
6.1?符号寻址的基本功能 56
6.2?SBR子程序中的符号寻址 60
6.3?控制字拆位中的符号寻址 63
6.4?好的拆位访问方法 64
6.5?字拆位WORD_TO_8BIT 65
第7章 指针应用 69
7.1?指针使用的基本方法 69
7.2?指针应用:隐藏真实物理通道地址 70
7.3?BLOCK_MOVE指令中的指针应用 71
7.4?地址指针作为SBR子程序的参数 72
第8章 字符串的使用 76
8.1?为什么要在PLC程序中使用字符串 76
8.2?字符串数据类型介绍 77
8.3?中文字符 78
8.4?系统提供的字符串处理指令 81
8.4.1?STR_LEN:获得字符串的长度 82
8.4.2?STR_CPY:复制字符串内容到另一个目标地址 82
8.4.3?SSTR_CPY:从字符串中复制子字符串 83
8.4.4?STR_CAT:字符串连接 83
8.4.5?STR_FIND:在字符串中查找字符串 84
8.4.6?CHR_FIND:查找字符串中任一字符 85
8.5?字符串数据放到SBR引脚上 86
8.6?使用地址指针传递字符串数据 88
8.7?[万泉河]模拟量的量纲 89
8.8?[万泉河]模拟量 92
8.9 [万泉河]S7-200 SMART PLC中拆分提取字符串内数据 95
第9章 数据表功能 98
9.1?AD_T_TBL:添表指令 99
9.2?FIFO:先进先出指令 99
9.3?LIFO:后进先出指令 99
9.4?FILL_N:存储器填充指令 100
9.5?TBL_FIND:查表指令 100
9.6?自定义FILL_N_TBL函数 101
9.7?示例:数值滑动平均 103
9.8?示例:浮点数滑动平均 107
第10章 用户库功能 112
10.1?自己做一个库 112
10.1.1?生成库文件 112
10.1.2?调用库 116
10.1.3?解读与评述 117
10.2?简单方法实现库函数重复调用 118
10.3?示例:封装滑动平均值功能 120
10.4?PID控制程序 123
10.5?PID子程序再封装 129
10.6?PID封装块生成为库 130
第11章 PLC程序中M变量的使用禁忌 133
11.1?全局变量的概念界定 133
11.2?使用M做一段程序逻辑 134
11.3?[万泉河]PLC高级编程:抛弃交叉索引 137
11.4?[万泉河]好的PLC程序和坏的PLC程序的比较标准 138
11.5 [万泉河]为什么PLC程序中不要用M和T,为什么要推广PLC编程标准化 138
11.6?[万泉河]给你编的PLC程序优化清理 139
第12章 程序中定时器T的使用禁忌 143
12.1?一个定时器T的例子 144
12.2?不成功的封装 145
12.3?自定义定时器TON_YT?(SMW22方法) 146
12.4?成功的封装 148
12.5?自定义定时器TON_YT?(时间间隔定时器方法) 149
12.6?自定义延时关断定时器TOF_YT 151
12.7?自定义定时器TONR_YT 152
第13章 程序中上升沿的使用禁忌 154
13.1?一个传统用法的例子 154
13.2?不成功的封装 155
13.3?改进的封装 156
13.4?上升沿功能模块化 157
13.5?计数功能使用上升沿模块 158
第14章 给SMART 插上FB翅膀 160
14.1?实现原理 160
14.2?功能块:静态数据保存和恢复 163
14.3?应用测试1:再封装秒计数 166
14.4?应用测试2:秒计数FB 169
14.5?定时器FB:TON_YT 171
14.6?上升沿FB:P_TRIG_YT 172
14.7 FB嵌套应用 174
第15章 结束语:SMART PLC标准化展望 178
前言
第1章 读者需要提前具备的基础知识 1
第2章 从子程序开始 8
2.1?SBR引脚数量的容量 8
2.2?SBR接口改变应对方案 12
2.3?IN_OUT引脚类型探索 14
2.4?所有IN和OUT引脚数量的上限 16
2.5?SBR的TEMP数据区 17
第3章 TEMP数据探秘 19
3.1?错误使用TEMP变量的程序例子 19
3.2?TEMP数据传递和保持规律 22
3.3?示例:利用TEMP数据给功能块增加输入/输出引脚 24
3.4?相同功能例子的传统方法实现 28
3.5?TEMP数据实现变址 29
第4章 AC寄存器 33
4.1?使用与不使用AC寄存器编程方法的比较 33
4.2?AC寄存器数值的缓存与恢复 35
4.3?循环指令中使用AC寄存器 37
第5章 循环指令的使用禁忌 40
5.1?[万泉河]PLC编程中循环语法的使用 40
5.2?[万泉河]程序算法的本质 42
5.3?[万泉河]优雅的PLC程序一定是用Excel写出来的 44
5.4?[万泉河]解读一个比较循环法与[万泉河]80模拟量例子的程序 48
5.5?[万泉河]80模拟量例子程序升级版V2.0 52
5.6?PLC编程中的高内聚与低耦合 54
第6章 符号寻址 56
6.1?符号寻址的基本功能 56
6.2?SBR子程序中的符号寻址 60
6.3?控制字拆位中的符号寻址 63
6.4?好的拆位访问方法 64
6.5?字拆位WORD_TO_8BIT 65
第7章 指针应用 69
7.1?指针使用的基本方法 69
7.2?指针应用:隐藏真实物理通道地址 70
7.3?BLOCK_MOVE指令中的指针应用 71
7.4?地址指针作为SBR子程序的参数 72
第8章 字符串的使用 76
8.1?为什么要在PLC程序中使用字符串 76
8.2?字符串数据类型介绍 77
8.3?中文字符 78
8.4?系统提供的字符串处理指令 81
8.4.1?STR_LEN:获得字符串的长度 82
8.4.2?STR_CPY:复制字符串内容到另一个目标地址 82
8.4.3?SSTR_CPY:从字符串中复制子字符串 83
8.4.4?STR_CAT:字符串连接 83
8.4.5?STR_FIND:在字符串中查找字符串 84
8.4.6?CHR_FIND:查找字符串中任一字符 85
8.5?字符串数据放到SBR引脚上 86
8.6?使用地址指针传递字符串数据 88
8.7?[万泉河]模拟量的量纲 89
8.8?[万泉河]模拟量 92
8.9 [万泉河]S7-200 SMART PLC中拆分提取字符串内数据 95
第9章 数据表功能 98
9.1?AD_T_TBL:添表指令 99
9.2?FIFO:先进先出指令 99
9.3?LIFO:后进先出指令 99
9.4?FILL_N:存储器填充指令 100
9.5?TBL_FIND:查表指令 100
9.6?自定义FILL_N_TBL函数 101
9.7?示例:数值滑动平均 103
9.8?示例:浮点数滑动平均 107
第10章 用户库功能 112
10.1?自己做一个库 112
10.1.1?生成库文件 112
10.1.2?调用库 116
10.1.3?解读与评述 117
10.2?简单方法实现库函数重复调用 118
10.3?示例:封装滑动平均值功能 120
10.4?PID控制程序 123
10.5?PID子程序再封装 129
10.6?PID封装块生成为库 130
第11章 PLC程序中M变量的使用禁忌 133
11.1?全局变量的概念界定 133
11.2?使用M做一段程序逻辑 134
11.3?[万泉河]PLC高级编程:抛弃交叉索引 137
11.4?[万泉河]好的PLC程序和坏的PLC程序的比较标准 138
11.5 [万泉河]为什么PLC程序中不要用M和T,为什么要推广PLC编程标准化 138
11.6?[万泉河]给你编的PLC程序优化清理 139
第12章 程序中定时器T的使用禁忌 143
12.1?一个定时器T的例子 144
12.2?不成功的封装 145
12.3?自定义定时器TON_YT?(SMW22方法) 146
12.4?成功的封装 148
12.5?自定义定时器TON_YT?(时间间隔定时器方法) 149
12.6?自定义延时关断定时器TOF_YT 151
12.7?自定义定时器TONR_YT 152
第13章 程序中上升沿的使用禁忌 154
13.1?一个传统用法的例子 154
13.2?不成功的封装 155
13.3?改进的封装 156
13.4?上升沿功能模块化 157
13.5?计数功能使用上升沿模块 158
第14章 给SMART 插上FB翅膀 160
14.1?实现原理 160
14.2?功能块:静态数据保存和恢复 163
14.3?应用测试1:再封装秒计数 166
14.4?应用测试2:秒计数FB 169
14.5?定时器FB:TON_YT 171
14.6?上升沿FB:P_TRIG_YT 172
14.7 FB嵌套应用 174
第15章 结束语:SMART PLC标准化展望 178
前 言
2018年,我完成了第一个实现标准化编程方法的工程项目,项目是用西门子S7-1500 PLC实现的。项目完成后总结经验,认为这是一种全新的PLC编程方法,可以通用于所有PLC品牌和产品,给这套方法命名为PLC标准化编程烟台方法。
S7-1500 PLC标准化项目中的所有控制逻辑都是模块化的,全都可以进行模块化复制使用,效率得到了极大提高。SMART PLC的项目要想按照烟台方法的原理架构实现,难度比在S7-1500 PLC中实现的难度要大得多。主要原因是SMART PLC的软件不支持FB,而标准化编程烟台方法的核心是面向对象,其实现的核心是FB将每一个设备类型设计为一个FB,而PLC中FB每调用一次,即代表一个设备实例,FB充当了面向对象方法中类的角色。
软件中原生不支持FB,需要通过编程方法实现FB的功能。然而,又不可以为此而额外地耗费系统资源,导致系统的可用性降低。在花费了比平时项目多4~5倍的软件设计编程时间和更多的首次调试时间之后,终于成功地在SMART PLC环境中实现了标准化编程。原本每个项目需要一名工程师在现场用近2周的时间编程、调试,当多个项目同时施工时,需要至少5名工程师在各个工地轮流查看并进行现场编程、调试。然而,使用新的设计架构实现的程序,最终只需1名工程师指导着几名电工就轻松搞定了。开始时,工程师还需要在工地现场调试程序2~3天,到后来几乎不需要再去工地现场调试了,设备发出的程序基本正确,现场只需电工完成对点,设备即可启动运行。甚至,有一些项目程序都是电工做的,因为都是模块式简单的调用,不再需要逻辑调试。
后来,将上述两套的设计资料分别作为S7-1500 PLC和SMART 200的标准化学习范本,出售给网友,网友学习之后在自己行业的设备中实现了其设备的标准化设计。之后,我以S7-1500 PLC的实现方法为蓝本,编写了《PLC标准化编程原理与方法》一书并于2022年4月出版。该书不仅给广大读者提供了学习标准化设计的方法外,还是烟台方法S7-1500 PLC学习营的学员们同步对照学习范例工程的参考书,这本书受到读者的欢迎,很快就重印了。后来不断有人来咨询并建议能否写一本关于SMART PLC标准化的书,我认为由于实现过程太复杂,一本书很难能说清楚,可以先将如何在SMART中实现FB功能的方法介绍给读者,于是就有了这本关于如何在SMART PLC中实现FB功能的方法—《西门子S7-1200 SMART PLC编程技巧精粹—给SMART 插上FB翅膀》。
S7-1500 PLC标准化项目中的所有控制逻辑都是模块化的,全都可以进行模块化复制使用,效率得到了极大提高。SMART PLC的项目要想按照烟台方法的原理架构实现,难度比在S7-1500 PLC中实现的难度要大得多。主要原因是SMART PLC的软件不支持FB,而标准化编程烟台方法的核心是面向对象,其实现的核心是FB将每一个设备类型设计为一个FB,而PLC中FB每调用一次,即代表一个设备实例,FB充当了面向对象方法中类的角色。
软件中原生不支持FB,需要通过编程方法实现FB的功能。然而,又不可以为此而额外地耗费系统资源,导致系统的可用性降低。在花费了比平时项目多4~5倍的软件设计编程时间和更多的首次调试时间之后,终于成功地在SMART PLC环境中实现了标准化编程。原本每个项目需要一名工程师在现场用近2周的时间编程、调试,当多个项目同时施工时,需要至少5名工程师在各个工地轮流查看并进行现场编程、调试。然而,使用新的设计架构实现的程序,最终只需1名工程师指导着几名电工就轻松搞定了。开始时,工程师还需要在工地现场调试程序2~3天,到后来几乎不需要再去工地现场调试了,设备发出的程序基本正确,现场只需电工完成对点,设备即可启动运行。甚至,有一些项目程序都是电工做的,因为都是模块式简单的调用,不再需要逻辑调试。
后来,将上述两套的设计资料分别作为S7-1500 PLC和SMART 200的标准化学习范本,出售给网友,网友学习之后在自己行业的设备中实现了其设备的标准化设计。之后,我以S7-1500 PLC的实现方法为蓝本,编写了《PLC标准化编程原理与方法》一书并于2022年4月出版。该书不仅给广大读者提供了学习标准化设计的方法外,还是烟台方法S7-1500 PLC学习营的学员们同步对照学习范例工程的参考书,这本书受到读者的欢迎,很快就重印了。后来不断有人来咨询并建议能否写一本关于SMART PLC标准化的书,我认为由于实现过程太复杂,一本书很难能说清楚,可以先将如何在SMART中实现FB功能的方法介绍给读者,于是就有了这本关于如何在SMART PLC中实现FB功能的方法—《西门子S7-1200 SMART PLC编程技巧精粹—给SMART 插上FB翅膀》。
作者
2024年2月
评论
还没有评论。