新书速览西门子S7-1200 PLC编程与应用实例
一线资深工程师的全彩版PLC实战教程,软硬件及编程全方位详解(配视频教学)
本书内容
《西门子S7-1200 PLC编程与应用实例》对西门子S7-1200 PLC的硬件和编程软件的功能 进行详细讲解,内容包括PLC编程基础、博途TIA软件入门、指令介绍、PID控制器、变频器通信、伺服电机的控制,以及各种通信协议的使用 等。书中内容配合精选示例进行讲解,示例包含软硬件配置清单、接线图和程序,且程序都来自实际工控现场。
《西门子S7-1200 PLC编程与应用实例》还提供了核心内容的教学视频 ,读者扫描本书的二维码即可在移动设备上观看。
《西门子S7-1200 PLC编程与应用实例》内容由浅入深,由基础到应用,理论联系工程实际,极具实用性,既适合初学者学习使用 ,也可供有一定基础的工程师借鉴和参考,还可作为高等院校自动化和机电专业的教材。
本书作者
张跟华 ,从事工业自动控制相关工作15年,高级工程师,目前就职于某科技公司担任项目经理。在工业控制领域有自己的建树,
参与过智能制造、轨道交通、市政燃气、石油石化、智慧矿山、光伏发电、火力发电、钢铁冶金、医药制造等行业的项目,项目经验丰富。
编辑推荐
《西门子S7-1200PLC编程与应用实例》根据一线资深工程师的十余年实践经验 编撰而成,作者是行业专家,在自动控制领域有独特建树,从事过十余个行业的相关项目,因此,你从本书不仅可以学习PLC1200的应用,其中的工作和实践经验尤其难得。
本书既介绍了硬件构成,也介绍了软件应 用,基础配合实例,循序渐进,通俗易懂,内容详实且丰富,书中还在多个地方使用了图解加以说明 ,对于初学者来说,亲和感很好,大大降纸了学习难度。
作者还为本书录制了核心内容的教学视频 ,读者扫码即可在移动设备上观看,另外,本书使用全彩色印刷 ,这样阅读起来更赏心悦目。
一本好书可以让你学习效率更高,不走弯路,我认为这是一本值得你依赖的好书,在此推荐读者阅读。
本书目录
第1章 PLC编程基础1
1.1 PLC概述1
1.1.1 PLC工作原理1
1.1.2 西门子S7-1200 PLC介绍2
1.2 硬件介绍2
1.2.1 模块概述2
1.2.2 CPU模块功能3
1.2.3 CPU选型4
1.2.4 CPU支持的块5
1.3 PLC数据访问6
1.3.1 数据存储6
1.3.2 访问PLC中的数据7
1.3.3 组态IO9
1.4 数据类型介绍10
1.4.1 基本数据类型11
1.4.2 结构数据类型(Struct)13
1.4.3 PLC数据类型(UDT)15
1.4.4 数组数据类型(ARRAY)17
1.4.5 系统数据类型(SDT)19
1.4.6 参数数据类型(Variant)20
1.4.7 日期和时间数据类型(DTL)22
1.4.8 指针数据类型 25
第 2 章 博途TIA软件入门28
2.1 软件概述与安装28
2.1.1 软件安装对系统的要求28
2.1.2 与其他STEP产品的兼容性29
2.1.3 所支持的虚拟系统29
2.1.4 博途V15.1软件的安装30
2.2 博途软件界面介绍33
2.2.1 Portal视图33
2.2.2 项目视图34
2.3 项目树35
2.4 程序编译和下载37
2.5 程序上传40
2.5.1 设备作为新站上传程序40
2.5.2 已知设备型号,上传软件程序41
2.6 程序比较43
第 3 章 S7-1200 PLC编程基本指令46
3.1 位逻辑指令46
3.1.1 指令说明46
3.1.2 应用示例49
3.2 定时器指令 49
3.2.1 生成脉冲定时器指令50
3.2.2 接通延时定时器指令50
3.2.3 关断延时定时器指令51
3.2.4 时间累加器指令52
3.2.5 应用示例:电机星形转三角形启动53
3.3 计数器指令54
3.3.1 加计数器指令54
3.3.2 减计数器指令55
3.3.3 加减计数器指令56
3.3.4 应用示例:饮料装箱程序57
3.4 比较指令59
3.4.1 指令说明59
3.4.2 应用示例:养殖场自动清洗程序59
3.5 数学函数指令60
3.5.1 计算指令61
3.5.2 数学函数指令说明61
3.5.3 应用示例:编写模拟量运算程序64
3.6 数据移动指令65
3.7 移位和循环指令66
3.7.1 指令说明66
3.7.2 应用示例:流水灯控制程序67
3.8 数据转换指令68
3.8.1 指令说明68
3.8.2 应用示例:温度传感器控制69
3.9 字逻辑运算指令70
第 4 章 组织块、函数块和数据块 73
4.1 组织块73
4.1.1 组织块的概念73
4.1.2 组织块的功能74
4.1.3 组织块的类型75
4.1.4 组织块的创建76
4.2 数据块77
4.2.1 数据块的概念77
4.2.2 数据块的创建78
4.2.3 数据块的访问80
4.2.4 数据块的优化访问80
4.3 函数和函数块82
4.3.1 函数的概念82
4.3.2 函数块的概念82
4.3.3 函数和函数块的区别83
4.3.4 函数或函数块的创建83
第 5 章 S7-PLCSIM仿真软件的使用84
5.1 S7-PLCSIM软件简介84
5.2 精简视图和项目视图86
5.2.1 精简视图86
5.2.2 项目视图86
5.2.3 在精简视图和项目视图之间进行切换87
5.2.4 分离仿真和项目87
5.2.5 启动和停止仿真 87
5.2.6 仿真状态89
5.2.7 仿真PLC与真实PLC之间的区别89
第 6 章 以太网通信及应用示例99
6.1 PROFINET接口简介99
6.2 PROFINET通信100
6.2.1 PROFINET通信介绍100
6.2.2 PROFINET的3种传输方式101
6.2.3 S7-1200 PLC PROFINET的通信能力101
6.2.4 PROFINET通信应用示例102
6.3 开放式用户(TCP)通信105
6.3.1 TCON指令105
6.3.2 TSEND指令108
6.3.3 TRCV指令110
6.3.4 应用示例112
6.4 Modbus TCP通信121
6.4.1 Modbus TCP概述121
6.4.2 Modbus TCP通信的特点121
6.4.3 Modbus TCP客户端通信示例122
6.5 ISO on TCP通信125
6.5.1 ISO on TCP通信概述125
6.5.2 ISO on TCP通信应用示例125
6.6 S7通信134
6.6.1 S7通信概述134
6.6.2 S7通信应用示例135
第 7 章 串行通信及应用实例139
7.1 模块介绍139
7.2 PtP接线方式141
7.3 PtP通信指令介绍143
7.4 Modbus RTU协议介绍145
7.4.1 Modbus功能代码145
7.4.2 指令说明146
7.4.3 Modbus RTU通信示例155
第 8 章 S7-1200与HMI通信163
8.1 HMI介绍163
8.2 HMI画面制作165
第 9 章 PID控制器应用实例170
9.1 S7-1200 PID功能概述170
9.2 创建PID指令171
9.3 如何选择PID指令174
9.4 PID Compact V2指令介绍175
9.5 调用PID Compact V2的步骤178
9.5.1 基本设置179
9.5.2 过程值设置180
9.5.3 高级设置181
9.6 PID自整定功能186
9.6.1 功能介绍186
9.6.2 PID_3Step V2指令介绍189
9.6.3 S7-1200 PID_3Step V2组态步骤及设置194
第 10 章 S7-1200与G120变频器进行USS通信201
10.1 USS概述201
10.1.1 USS协议介绍201
10.1.2 USS协议的通信数据格式202
10.2 USS通信原理与函数块编程203
10.2.1 S7-1200 PLC与G120通过USS通信的基本原理203
10.2.2 USS函数块编辑204
10.2.3 工程实例208
第 11 章 S7-1200与智能仪表通信215
11.1 SENTRON PAC3200仪表介绍215
11.2 SENTRON PAC3200与S7-1200进行通信217
第 12 章 创建数据日志225
12.1 数据日志的指令概述225
12.2 创建数据日志226
12.2.1 操作步骤226
12.2.2 完整程序232
第 13 章 工程案例分析234
13.1 案例1:运动控制234
13.1.1 对轴进行组态237
13.1.2 控制程序241
13.2 案例2:水箱水位控制系统246
13.3 案例3:电梯控制系统255
13.4 案例4:伺服电机控制系统263
13.5 案例5:物料分拣控制系统273
参考文献283
本文摘自《西门子S7-1200 PLC编程与应用实例》,获出版社和作者授权发布。
西门子PLC常用数据的编程实例
当数据用规定的格式输入后,在西门子plc的内部存储器中均需要以二进制的形式存储,二进制格式与实际数据间的关系较复杂,它常常会给程序的调试与检查带来困难,为了更清楚地说明数据的使用方法与存储形式,举例如下。
【例1】利用数据装载指令(指令代码L),将各种十进制、十六进制数据读入到累加器ACCU1。
程序指令如下:
①L 27 ,/将单字长(16位)的十进制常数27读入到累加器l中;
②L1#一1 //将双字长(32位)的十进制常数一l读入到累加器l中:
③L2#1010 0000 0010 0001 //将单字长(16位)的二进制数1010 0000 0010 0001读入到累
加器l中;
④LDW#16# AOFl_BCD4 //将双字长(32位)的十六进制常数AOFl BCD4读入到累加器l中;
⑤L-2.5 //将双字长(32位)的浮点数“-2.5”读入到累加器l中(有关浮点数c1勺存
储格式见后述)。
【例2】利用数据装载指令(指令代码L),将ASCII字符“END”读入到累加器1中,并确定其执行结果。
程序指令如下:
LfEND. ∥将ASCII字符“END”读入到累加器l中
对照表8-5.2“ASCII代码表”可知,E=45;N=4E D=44,所以本字符在累加器1中的执行结果为:“454E44”。
【例3】利用数据装载指令(指令代码L),将定时器时间值、计数器计数值读入到累加器1中,并确定其执行结果。
程序指令如下:
①LT#500ms ∥将定时器时间值(500ms)读入到累加器l中;
②LC#100 //将计数器计数值(100)读入到累加器l中;
定时器时间值、计数器计数值以常数形式存储,因此,累加器l的执行结果分别为500与100。
【例4】利用数据装载指令(指令代码L),将2字节(16位)的常数100、20分别读入到累加器1的高、低字节中,并确定其执行结果。
程序指令如下:
LB# (100,20) //将2字节(16位)的常数读入到累加器l中;
本指令与常数读入指令“L 27”的区别在于:
L 27指令:执行指令是将常数27转换为二进制后存储于累加器1,因为27=(1B) 16,所以累加器l的执行结果为“00 1B”。常数值的范围为0~65535(即O—FFFF)。
L B# (100,20)指令:执行指令是将2个十进制常数转换为二进制后,分别存储于存储器的高字节与低字节中,因为100=(64)16;20=(14) 16,所以累加器1的执行结果为“64 14”。指令中括号内的常数值的范围为0~255(即O~FF)。
相关指令:
LB# (100,20,12,15) //将4字节(32位)的常数读入到累加器l中。
【例5】利用数据装载指令(指令代码L),将4字节(32位)的地址数据10.2、M10.2分别读入到累加器1中,并确定其执行结果。
程序指令如下:
①LP#10.2 /,将双字长(32位)的地址数据读入到累加器l中;
②LP#M10.2 //将双字长(32位)的地址数据读入到累加器l中;
注意:地址数据在S7中的存储格式如下:
地址位(bit31):“0”指针寄存器不含地址符,地址符bit24~bit26应为0;“l”指针寄存器含地址符,地址符由bit24~bit26指定。
地址符(bit24~bit26):地址位(bit31)为“1”时用于指定存储器地址,地址的编码如下:
000:地址P:
001:,地址I;
010:地址Q;
011:地址M;
100:地址DBX;
101:地址DIX;
110:地址L:
111:地址VL。
因此,在累加器1中,指令“L P#10.2”的执行结果为“0000 0052”;指令“L P#10.2”的执行结果为“8300 0052”。
【例6】利用数据装载指令(指令代码L),将日期数据2006-11-18读入到累加器1中,并确定其执行结果。
程序指令如下:
LD#2006_ll—l8 //将双字长(32位)的日期读入到累加器l中;
注意:日期在PLC中的存储格式为表格数据,且以1990年1月1日作为起点“O”;以后每天增加1,1990年1月2日为“l”。因此,2006年11月18日对应累加器l的日期存储数据为:6165;而2007年11月18日对应累加器1的日期存储数据为:6165 365= 6530。
【例7】利用数据装载指令(指令代码L),将时间数据13:20:33.125s读入到累加器1中,并确定其执行结果。
程序指令如下:
LTOD#13:20:33.125 ∥将双字长(32位)的对阅读入到累加器l中。
注意:时间在PLC中的存储格式为以ms为单位的数据,如:
13:20:33.125s =(13×3600 20×60 33.125)s= 48033125 ms
因此,执行本指令后累加器1的时间存储数据为:48033125。
相关问答
PLCST语句编程for语句的一个小问题J:=101;FORI:=1TO100BY2DO...
[最佳回答]每一次循环,变量I+2呗,直到I>100时,for循环结束
plc学习的入门梯形图程序都有哪些?
介绍一下入门梯形图,可以作为学习者的参考。入门程序有很多这里挑各别典型梯形图介绍第一起保停梯形图这个可能就是plc梯形图中,最简单的启动-保持-停止。...
CP1H使用2路模拟量输入AD模块,如何在PLC里编程?
首先,你需要的PLC中去设定需要的量程,以及对应的分辨率:1、如果你使用内建的AD输入,那么对应的模拟量输入地址就是:200CH~203CH例如如果使用AD0的话,对...
PLC控制三台电动机顺序运行梯形图?
两台三相异步电机顺序启停PLC控制控制原理图:控制原理简要说明:在上图中,电机M1、M2顺序启动,当停止时,电机按M2、M1的顺序停止,即在启动时,只有当电...M1启...
PLC编程中常用的进制类型?
在PLC编程中,常用的进制类型有以下三种:1.二进制:是一种基本的计算机数据表示方法,仅包含“0”和“1”这两个数字。在PLC编程中,二进制通常用于表示某个输...
PLC中wandk4x30h1fffd101是什么意思?
这条指令应该写错了,如果PLC是三菱的话。SFTL要传送的首地址目标地址首地址传送的长度传送次数M10010131就是说,每次将M100~M102传送到目标地址去。...
欧姆龙PLC中+101E+2是什么意思?
在欧姆龙PLC中,+101E+2是表示输入模块的地址。其中,“+”表示该地址是相对地址;“101”表示该地址所属的单元号;“E”表示该地址所属的输入模块类型;“+2”...
plc中采用八进制编号是?
在PLC(可编程逻辑控制器)中,使用八进制(Octal)编号通常用于表示数字或控制信号的状态。每个位可以使用三个八进制数字(0-7)来表示。在八进制编号中,每...在...
没有基础可以学PLC吗学会PLC能做什么?
[回答]1、继电器掌控基本原理,这是最直观的入门方法,因为PLC源于继电器掌控2、理解PLC的硬件、程序运行方式3、PLC的最基本的编程、编程软件的用于4、小型...
想学习下如何将PLC发送的指令让软件接收到?
应该说PLC通讯最常见的还是串口通讯,比如modbusRTU通信。下图是西门子200PLC中的2个指令:这个图片中的XMT指令是发送指令,RCV是接收指令。这里的port就是PLC...