9
上海庆惜自动化设备有限公司
公司始终本着"顾客至上"的经营理念,在为客户提供尖端技术的同时,我们同样非常注重售后服务。西门子上海庆惜自动化设备有限公司拥有多名技术人员,他们经过专业培训和长期实践,积累了丰富的现场经验,能做到24小时响应,处理各种故障和紧急情况, 使用户没有后顾之忧。 一直以来,其工作得到了用户的一致**。
分为12章,主要内容包括西门子S7-300/400系列PLC的简介、指令系统、用户程序结构、STEP7编程软件的使用方法,西门子S7-300/400的通信功能、编程方法、基本数字电路程序、梯形图编程方法应用、网络通信实例、机床控制系统及机械设备应用实例等。
以“条理清晰、系统全面、由浅入深、实例引导、贴近实用”为宗旨,精选了多个具有代表性的西门子PLC应用程序设计实例,实例类型丰富,覆盖面广,分析到位,工程指导性强。全书注重理论与实践相联系,以培养读者的工程应用能力。另外,本书还配有完整实例程序,便于*。本书适合作为普通高等院校自动化、电气工程、测控技术与仪器、电子科学与技术、微电子学以及光信息科学与技术等专业的本科生教材,也可作为相关工程技术人员的学习参考用书。
编辑推荐
基于西门子的S7-300/400系列PLC,以实践为导向,以实用为目标介绍PLC。在介绍PLC的基本概念和西门子的S7-300/400系列PLC基础知识的同时,重点介绍如何用STEP7软件编程实现这些典型及常用算法,并结合实际应用,介绍哈尔滨工程大学HRBEU-SIEMENS**自动化技术示范实验室近年来在研究中总结出来的一些经典案例,尽量做到理论、应用与实际编程的紧密结合,使读者掌握使用PLC的基本方法和技巧。
西门子SIMATIC系列PLC,诞生于1958年,经历了C3,S3,S5,S7系列,已成为应用非常广泛的可编程控制器。
西门子(SIMATIC)PLC的6代
1、西门子公司的产品早是1975年投放市场的SIMATIC S3,它实际上是带有简单操作接口的二进制控制器。
2、1979年,S3系统被SIMATIC S5所取代,该系统广泛地使用了微处理器。
3、20世纪80年代初,S5系统进一步升级——U系列PLC,较常用机型:S5-90U、95U、100U、115U、135U、155U。
4、1994年4月,S7系列诞生,它具有更**化、更高性能等级、安装空间更小、更良好的WINDOWS用户界面等优势,其机型为:S7-200、300、400。
5、1996年,在过程控制领域,西门子公司又提出PCS7(过程控制系统7)的概念,将其优势的WINCC(与WINDOWS兼容的操作界面)、PROFIBUS(工业现场总线)、COROS(监控系统)、SINEC(西门子工业网络)及控调技术融为一体。
6、西门子公司提出TIA(Totally Integrated Automation)概念,即全集成自动化系统,将PLC技术溶于全部自动化领域。
由初发展至今,S3、S5系列PLC已逐步退出市场,停止生产,而S7系列PLC发展成为了西门子自动化系统的控制核心,而TDC系统沿用SIMADYN D技术内核,是对S7系列产品的进一步升级,它是西门子自动化系统尖端,功能强的可编程控制器。
产品分类
可编程控制器是由现代化生产的需要而产生的,可编程序控制器的分类也必然要符合现代化生产的需求。
西门子PLCS7-200系列
一般来说可以从三个角度对可编程序控制器进行分类。其一是从可编程序控制器的控制规模大小去分类,其二是从可编程序控制器的性能高低去分类,其三是从可编程序控制器的结构特点去分类。
控制规模
可以分为大型机、中型机和小型机。
西门子PLCS7-300系列
小型机: 小型机的控制点一般在256点之内,适合于单机控制或小型系统的控制。
西门子小型机有S7-200:处理速度0.8~1.2ms ;存贮器2k ;数字量248点;模拟量35路 。
中型机:中型机的控制点一般不大于2048点,可用于对设备进行直接控制,还可以对多个下一级的可编程序控制器进行监控,它适合中型或大型控制系统的控制。
西门子中型机有S7-300:处理速度0.8~1.2ms ;存贮器2k ;数字量1024点;模拟量128路 ;网络PROFIBUS;工业以太网;MPI。
大型机:大型机的控制点一般大于2048点,不仅能完成较复杂的算术运算还能进行复杂的矩阵运算。它不仅可用于对设备进行直接控制,还可以对多个下一级的可编程序控制器进行监控。
西门子PLCS7-400系列
西门子大型机有S7-400 :处理速度0.3ms / 1k字;
存贮器512k ;I/O点12672;
控制性能
可以分为**机、中档机和低档机。
低档机
这类可编程序控制器,具有基本的控制功能和一般的运算能力。工作速度比较低,能带的输入和输出模块的数量比较少。
比如,德国SIEMENS公司生产的S7-200就属于这一类。
中档机
这类可编程序控制器,具有较强的控制功能和较强的运算能力。它不仅能完成一般的逻辑运算,也能完成比较复杂的三角函数、指数和PID运算。工作速度比较快,能带的输入输出模块的数量也比较多,输入和输出模块的种类也比较多。
比如,德国SIEMENS公司生产的S7-300就属于这一类。
**机
这类可编程序控制器,具有强大的控制功能和强大的运算能力。它不仅能完成逻辑运算、三角函数运算、指数运算和PID运算,还能进行复杂的矩阵运算。工作速度很快,能带的输入输出模块的数量很多,输入和输出模块的种类也很全面。这类可编程序控制器可以完成规模很大的控制任务。在联网中一般做主站使用。
比如,德国SIEMENS公司生产的S7-400就属于这一类。
结构
整体式
整体式结构的可编程序控制器把电源、CPU、存储器、I/O系统都集成在一个单元内,该单元叫做作基本单元。一个基本单元就是一台完整的PLC。
plc结构
控制点数不符合需要时,可再接扩展单元。整体式结构的特点是非常紧凑、体积小、成本低、安装方便。
组合式
组合式结构的可编程序控制器是把PLC系统的各个组成部分按功能分成若干个模块,如CPU模块、输入模块、输出模块、电源模块等等。其中各模块功能比较单一,模块的种类却日趋丰富。比如,一些可编程序控制器,除了-些基本的I/O模块外,还有一些特殊功能模块,像温度检测模块、位置检测模块、PID控制模块、通讯模块等等。组合式结构的PLC特点是CPU、输入、输出均为独立的模块。模块尺寸统一、安装整齐、I/O点选型自由、安装调试、扩展、维修方便。
plc组合
叠装式
叠装式结构集整体式结构的紧凑、体积小、安装方便和组合式结构的I/O点搭配灵话、安装整齐的优点于一身。它也是由各个单元的组合构成。其特点是CPU自成独立的基本单元(由CPU和一定的I/O点组成),其它I/O模块为扩展单元。在安装时不用基板,仅用电缆进行单元间的联接,各个单元可以一个个地叠装。使系统达到配置灵活、体积小巧。
详细介绍
1.SIMATIC S7-200 PLC S7-200 PLC是**小型化的PLC,它适用于各行各业,各种场合中的自动检测、监测及控制等。S7-200 PLC的强大功能使其无论单机运行,或连成网络都能实现复杂的控制功能。 S7-200PLC可提供4个不同的基本型号与8种CPU可供选择使用。
2.SIMATIC S7-300 PLC S7-300是模块化小型PLC系统,能满足中等性能要求的应用。各种单独
西门子PLC之S7家族
的模块之间可进行广泛组合构成不同要求的系统。与S7-200 PLC比较,S7-300 PLC采用模块化结构,具备高速(0.6~0.1μs)的指令运算速度;用浮点数运算比较有效地实现了更为复杂的算术运算;一个带标准用户接口的软件工具方便用户给所有模块进行参数赋值;方便的人机界面服务已经集成在S7-300操作系统内,人机对话的编程要求大大减少。SIMATIC人机界面(HMI)从S7-300中取得数据,S7-300按用户*的刷新速度传送这些数据。S7-300操作系统自动地处理数据的传送;CPU的智能化的诊断系统连续监控系统的功能是否正常、记录错误和特殊系统事件(例如:**时,模块更换,等等);多级口令保护可以使用户高度、有效地保护其技术机密,防止未经允许的复制和修改;S7-300 PLC设有操作方式选择开关,操作方式选择开关像钥匙一样可以拔出,当钥匙拔出时,就不能改变操作方式,这样就可防止非法删除或改写用户程序。具备强大的通信功能,S7-300 PLC可通过编程软件Step 7的用户界面提供通信组态功能,这使得组态非常*、简单。S7-300 PLC具有多种不同的通信接口,并通过多种通信处理器来连接AS-I总线接口和工业以太网总线系统;串行通信处理器用来连接点到点的通信系统;多点接口(MPI)集成在CPU中,用于同时连接编程器、PC机、人机界面系统及其他SIMATIC S7/M7/C7等自动化控制系统。
3. SIMATIC S7-400 PLC S7-400 PLC是用于中、**性能范围的可编程序控制器。 S7-400 PLC采用模块化无风扇的设计,可靠耐用,同时可以选用多种级别(功能逐步升级)的CPU,并配有多种通用功能的模板,这使用户能根据需要组合成不同的专用系统。当控制系统规模扩大或升级时,只要适当地增加一些模板,便能使系统升级和充分满足需要。
工作原理
当PLC投入运行后,其工作过程一般分为三个阶段,即输入采样、用户程序执行和输出刷新三个阶段。完成上述三个阶段称作一个扫描周期。在整个运行期间,PLC的CPU以一定的扫描速度重复执行上述三个阶段。
输入采样
在输入采样阶段,PLC以扫描方式依次地读入所有输入状态和数据,并将它们存入I/O映象区中的相应得单元内。输入采样结束后,转入用户程序执行和输出刷新阶段。在这两个阶段中,即使输入状态和数据发生变化,I/O映象区中的相应单元的状态和数据也不会改变。因此,如果输入是脉冲信号,则该脉冲信号的宽度必须大于一个扫描周期,才能**在任何情况下,该输入均能被读入。
用户程序执行
在用户程序执行阶段,PLC总是按由上而下的顺序依次地扫描用户程序(梯形图)。在扫描每一条梯形图时,又总是先扫描梯形图左边的由各触点构成的控制线路,并按先左后右、先上后下的顺序对由触点构成的控制线路进行逻辑运算,然后根据逻辑运算的结果,刷新该逻辑线圈在系统RAM存储区中对应位的状态;或者刷新该输出线圈在I/O映象区中对应位的状态;或者确定是否要执行该梯形图所规定的特殊功能指令。
即,在用户程序执行过程中,只有输入点在I/O映象区内的状态和数据不会发生变化,而其他输出点和软设备在I/O映象区或系统RAM存储区内的状态和数据都有可能发生变化,而且排在上面的梯形图,其程序执行结果会对排在下面的凡是用到这些线圈或数据的梯形图起作用;相反,排在下面的梯形图,其被刷新的逻辑线圈的状态或数据只能到下一个扫描周期才能对排在其上面的程序起作用。
输出刷新
当扫描用户程序结束后,PLC就进入输出刷新阶段。在此期间,CPU按照I/O映象区内对应的状态和数据刷新所有的输出锁存电路,再经输出电路驱动相应的外设。这时,才是PLC的真正输出。
同样的若干条梯形图,其排列次序不同,执行的结果也不同。另外,采用扫描用户程序的运行结果与继电器控制装置的硬逻辑并行运行的结果有所区别。当然,如果扫描周期所占用的时间对整个运行来说可以忽略,那么二者之间就没有什么区别了。
保养
设备定期测试、调整
(1) 每半年或季度检查PLC柜中接线端子的连接情况,若发现松动的地方及时重新坚固连接;
(2) 对柜中给主机供电的电源每月重新测量工作电压;
设备定期清扫
(1) 每六个月或季度对PLC进行清扫,切断给PLC供电的电源把电源机架、CPU主板及输入/输出板依次拆下,进行吹扫、清扫后再依次原位安装好,将全部连接恢复后送电并启动PLC主机。认真清扫PLC箱内卫生;
(2) 每三个月更换电源机架下方过滤网;
检修前准备
(1) 检修前准备好工具;
(2) 为**元件的功能不出故障及模板不损坏,必须用保护装置及认真作防静电准备工作;
(3) 检修前与调度和操作工联系好,需挂检修牌处挂好检修牌;
设备拆装顺序及方法
(1) 停机检修,必须两个人以上监护操作;
(2) 把CPU前面板上的方式选择开关从“运行”转到“停”位置;
(3) 关闭PLC供电的总电源,然后关闭其它给模坂供电的电源;
(4) 把与电源架相连的电源线记清线号及连接位置后拆下,然后拆下电源机架与机柜相连的螺丝,电源机架就可拆下;
(5) CPU主板及I/0板可在旋转模板下方的螺丝后拆下;
(6) 安装时以相反顺序进行;
检修工艺及技术要求
(1) 测量电压时,要用数字电压表或精度为1%的**表测量
(2)电源机架,CPU主板都只能在主电源切断时取下;
(3) 在RAM模块从CPU取下或插入CPU之前,要断开PC的电源,这样才能**数据不混乱;
(4) 在取下RAM模块之前,检查一下模块电池是否正常工作,如果电池故障灯亮时取下模块RAM内容将丢失;
(5) 输入/输出板取下前也应先关掉总电源,但如果生产需要时I/0板也可在可编程控制器运行时取下,但CPU板上的QVZ(**时)灯亮;
(6) 拨插模板时,要格外小心,轻拿轻放,并运离产生静电的物品;
(7) 更换元件不得带电操作;
(8) 检修后模板安装一定要安插到位
电池更换
当PLC的用户程序要保留在RAM中时,就会用到电池,电池通常是3V或3.6V的不可充电的锂电池,电池的使用寿命通常是五年左右,电池用久了,电压就会下降,当其下降到不足以**RAM中数据时,RAM中的程序就会丢失。如果用户没有备份程序,就会相当麻烦。[1]
一般PLC内部设有电池电压检测电路,当电压下降到一定程度时,PLC就会报警,提醒更换电池。PLC的使用说明书都有提供更换电池的方法。一般来 说,PLC在断电后,因为PLC上RAM电源端接有充电电容,即使把电池去掉,电容上充电电量也足够RAM内的数据保持一段时间,所以如果取掉电池后在短 时间内(通常5分钟)再将新电池换上去,数据是不会丢失的。
但用户实际使用PLC的环境情况不尽相同,例如电容的容量下降,RAM电源回路有 灰尘、油泥等形成放电回路等,这会加快PLC断电后电容的放电速度,从而使时间不好把握。如果在带电的情况下更换电池就可保程序万无一失。因为电源始终会 有电压加在RAM芯片的电源脚。当然更换时亦要小心应对,注意电池的极性以及避免短路情况发生。
好是把PLC通电15分钟(给内部电容充电),断电,在5分钟内换好新的电池,再上电试一下。
上海庆惜自动化设备有限公司
公司始终本着"顾客至上"的经营理念,在为客户提供尖端技术的同时,我们同样非常注重售后服务。西门子上海庆惜自动化设备有限公司拥有多名技术人员,他们经过专业培训和长期实践,积累了丰富的现场经验,能做到24小时响应,处理各种故障和紧急情况, 使用户没有后顾之忧。 一直以来,其工作得到了用户的一致**。
西门子在 Micro/WIN V4.0 SP5 中正式推出 Modbus RTU 主站协议库(西门子标准库指令)。 1
图 1. 西门子标准指令库(Micro/WIN V4.0 SP5)
注意
1. Modbus RTU 主站指令库的功能是通过在用户程序中调用预先编好的程序功能块实现的,该库对 Port 0 和 Port 1 有效。该指令库将设置通信口工作在自由口模式下。
2. Modbus RTU 主站指令库使用了一些用户中断功能,编其他程序时不能在用户程序中禁止中断。
3. Modbus RTU 主站库对CPU的版本有要求。CPU 的版本必须为 2.00 或者 2.01(即订货号为 6ES721*-***23-0BA*),1.22版本之前(包括1.22版本)的 S7-200 CPU 不支持。
使用 Modbus RTU 主站指令库,可以读写 Modbus RTU 从站的数字量、模拟量 I/O 以及保持寄存器。
要使用 Modbus RTU 主站指令库,须遵循下列步骤:
1.安装西门子标准指令库
2.按照要求编写用户程序调用 Modubs RTU 主站指令库
安装西门子标准指令库
1.2 Modbus RTU 主站功能编程
1. 调用 Modbus RTU 主站初始化和控制子程序
使用 SM0.0 调用 MBUS_CTRL 完成主站的初始化,并启动其功能控制:
2
图 2. 用 SM0.0 调用 Modbus RTU 主站初始化与控制子程序
各参数意义如下:
a. EN 使能: 必须**每一扫描周期都被使能(使用 SM0.0)
b. Mode 模式: 为 1 时,使能 Modbus 协议功能;为 0 时恢复为系统 PPI 协议
c. Baud 波特率: 支持的通讯波特率为1200,2400,4800,9600,19200,38400,57600,115200。
d. Parity 校验: 校验方式选择
0=无校验
1=奇较验
2=偶较验
e. Timeout **时: 主站等待从站响应的时间,以毫秒为单位,典型的设置值为 1000 毫秒(1 秒),允许设置的范围为 1 - 32767。
注意: 这个值必须设置足够大以**从站有时间响应。
f. Done 完成位: 初始化完成,此位会自动置1。可以用该位启动 MBUS_MSG 读写操作(见例程)
g. Error 初始化错误代码(只有在 Done 位为1时有效):
0= 无错误
1= 校验选择非法
2= 波特率选择非法
3= 模式选择非法
2. 调用 Modbus RTU 主站读写子程序MBUS_MSG,发送一个Modbus 请求;
4
图 3. 调用Modbus RTU 主站读写子程序
各参数意义如下:
a. EN 使能: 同一时刻只能有一个读写功能(即 MBUS_MSG)使能
注意:建议每一个读写功能(即 MBUS_MSG)都用上一个 MBUS_MSG 指令的 Done 完成位来激活,以**所有读写指令循环进行(见例程)。
b. First 读写请求位: 每一个新的读写请求必须使用脉冲触发
c. Slave 从站地址: 可选择的范围 1 - 247
d. RW 从站地址: 0 = 读, 1 = 写
注意:
1. 开关量输出和保持寄存器支持读和写功能
2. 开关量输入和模拟量输入只支持读功能
e. Addr 读写从站的数据地址:
选择读写的数据类型
00001 至 0xxxx - 开关量输出
10001 至 1xxxx - 开关量输入
30001 至 3xxxx - 模拟量输入
40001 至 4xxxx - 保持寄存器
f. Count 数据个数 通讯的数据个数(位或字的个数)
注意: Modbus主站可读/写的较大数据量为120个字(是指每一个 MBUS_MSG 指令)
g. DataPtr 数据指针: 1. 如果是读指令,读回的数据放到这个数据区中
2. 如果是写指令,要写出的数据放到这个数据区中
h. Done 完成位 读写功能完成位
i. Error 错误代码: 只有在 Done 位为1时,错误代码才有效
0 = 无错误
注意:此指令库/程序的作者和拥有者对于该软件的功能性和兼容性不负任何责任。使用该软件的风险完全由用户自行承担。由于它是免费的,所以不提供任何担保,错误纠正和热线支持,用户不必为 此联系西门子技术支持与服务部门。
1.5 Modbus RTU 主站常问问题
Modbus RTU 主站库对 CPU 的版本是否有要求,为什么编译例子程序时,会遇到 4 个错误?
Modbus RTU 主站库对 CPU 的版本确实有要求,CPU 的版本必须为 2.00 或者 2.01(即订货号为6ES721*-***23-0BA*),1.22 版本之前(包括 1.22 版本)的 S7-200 CPU 不支持。
Modbus 指令库启动后,如何通过同一个通信端口进行 CPU 监控?
Modbus 指令库使用的是 CPU 的自由口通信功能,工作在自由口模式下的通讯口不能使用 Micro/WIN 的 PPI 编程通信监控。如果通信口都已经被占用,可以考虑:
加一个通信模块(如 EM 277、CP 243-1、EM 241 等)扩展出一个编程通信口
中止自由口模式,可以将 CPU 上的模式开关从 RUN 拨到 S**;或者保持处于 RUN 状态,用程序停止指令库的 Modbus 模式(参见指令库应用)
如何理解 Modbus 地址与功能码的区别?
Modbus 地址与 Modbus 的功能码是两个层次的概念。
根据 Modbus 通信协议,Modbus 数据的地址使用 0xxxx、1xxxx、3xxxx 和 4xxxx 的形式,分别表示数字量输出、数字量输入、模拟量输入等数据地址。在使用 S7-200 的指令库时,Modbus 数据地址与 S7-200 的 I/O 和数据存储区地址间有特定的对应关系。
有些设备表明它支持 Modbus RTU 通信协议,但也详细提供了读写数据的详细通信帧格式,其中包括如何* Modbus 站的地址,需要读写数据类型、长度等等。数据帧有特定字节指出此指令读写的数据类型和地址,此字节的数据内容即所谓"功能码",如功能 1 *读取单个/多个数字量输出点的值。
支持 Modbus 协议的设备或软件,使用时用户直接设置或看到的应当是 Modbus 数据地址。Modbus 地址所访问的数据,是通过各种"功能"读写而来。功能码是 Modbus 地址的底层。如果 Modbus 通信的一方提供的所谓 Modbus 协议只有功能码,则需要注意了解此功能号与 Modbus 地址间的对应关系。
如何访问大于 9999 的保持寄存器地址?
通常 Modbus 协议的保持寄存器地址范围在 之间。对于多数应用来说已经够了。但有些 Modbus 从站把地址映射到保持寄存器区的地址**过 9999 的部分。
Modbus Master 协议库支持**过 9999 的保持寄存器地址。地址范围为 36。只需在调用 MBUS_MSG 子程序时给 Addr 参数赋相应的值即可,如 416768。
Modubs Master 扩展地址模式仅支持保持寄存器区,不支持其他地址类型。
S7-200 作为 Modbus 主站方接收上来的数据格式与第三方设备不一样怎么办?
西门子PLC数据的存储格式为高位低存方式。举例:VD200中包含VW200和VW202,其中VW202是低字,VW200是高字。若第三方设备与西门子数据存储格式不同,是低位低存的方式,那么通信上来的数据就会存在错误,需要进行转换才能使用。编程的方式比较多样,针对双字中高低字的交换可以使用SWAP(字交换)指令,若是字节交换可以考虑循环移位指令。
S7-200 是否支持如 Modbus TCP 等其它协议?
不支持。S7-200自身的通信端口或其通信扩展模块均不支持 Modbus TCP、CANopen、DeviceNet 以及 BACnet 通信协议。
为什么 S7-200 作 Modbus 主站时 MBUS_MSG 指令报6号错误?
引起6号错误主要有两方面的原因:1.多个 MBUS_MSG 指令同时使能执行;2. Modbus库存储区中分配的建议地址区与编程中已使用的V存储区有重叠。
2Modbus RTU从站
2.1 CPU 上的通信口(Port0)支持 Modbus RTU 从站通信协议
S7-200 CPU上的通信口Port0可以支持Modbus RTU协议,成为Modbus RTU从站。此功能是通过S7-200的自由口通信模式实现,因此可以通过无线数据电台等慢速通信设备传输。
详情请参考《S7-200系统手册》之相关章节。
要实现Modbus RTU通信,需要STEP 7-Micro/WIN32 V3.2以上版本的编程软件,而且须安装STEP 7-Micro/WIN32 V3.2 Instruction Library(指令库)。Modbus RTU功能是通过指令库中预先编好的程序功能块实现的。
Modbus RTU从站指令库只支持CPU上的通信0口(Port0)。
2.2 编程基本步骤:
检查Micro/WIN的软件版本,应当是STEP 7-Micro/WIN V3.2以上版本。
检查Micro/WIN的指令树中是否存在Modbus RTU从站指令库(图1),库中应当包括MBUS_INIT和MBUS_SLAVE两个子程序。如果没有,须安装Micro/WIN32 V3.2的Instruction Library(指令库)软件包;