基于PLC的油泵控制系统的设计毕业设计_第1页
基于PLC的油泵控制系统的设计毕业设计_第2页
基于PLC的油泵控制系统的设计毕业设计_第3页
基于PLC的油泵控制系统的设计毕业设计_第4页
基于PLC的油泵控制系统的设计毕业设计_第5页
已阅读5页,还剩98页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

南京工程学院工业中心本科毕业设计说明书(论文)题目:基于PLC的油泵控制系统设计专业:自动化(系统集成)-96-前言当今,变频调速已经成为可靠,稳定且应用范围广的异步电机的调速方式,深受广大用户的喜爱,其在冶金行业、电力行业、机械制造业等得到了大量的应用。本次设计就是通过变频器来控制油泵电机,对油泵电机实行无极调速,依据用油量及通过PLC检测、运算,自动改变油泵转速保持油压恒定以满足整个系统的供油要求,在当前看来,也是一种合理的节能供油系统。供油泵是生产生活中重要的电力设备,能耗较大,在实际生活中,由于其长时间全压工频的运行方式,造成能源浪费,并加剧泵的磨损。通过引入变频器,对供油泵控制系统进行设计改造,利用变频器本身的软启动特性,大大降低了启动时的供油泵的晃动冲击,磨损和噪音,提高了供油泵的使用寿命。本次设计基于S7-300PLC控制器,采用PID控制算法,对系统采用变频恒压控制。有效解决了系统供油压力不稳,油量不足的问题。利用变频特性有效改善了对电机的供油质量,提高了功率因素,从而最大限度提高了电机的效率[1]。SIMATICWinCC是上位机上用的组态软件,其特点就是:可以使用VB和C脚本进行编程,其内部集成了大量的函数库,方便用户调用;WinCC数据归档能力强,用户可以随时查询以前的数据;,WinCC这种基于Window平台监控系统,超越了国际上大部分的组态软件,凭借其优秀的性能和强大的的战略思想,已经成为市场的领导者。本次设计就是通过WINCC监控并操作整个系统,让整个系统处于安全受控状态。系统运行方式设计为“面板操作”和“HMI操作”,“面板操作”使操作人员操作电器有关元件实现。系统的HMI采用WinCC组态设计的,HMI显示压力,系统的工作状态,发生故障时显示报警信息并提示操作人员哪里发生了故障及如何处理故障,操作时进行操作提示,可实现人与机器更好的交流。两种操作方式下又分为“手动”和“自动”两种方式,在“手动”方式下,操作人员可自由的控制油泵。“自动”为PLC通过压力的测量值,进行一些复杂的运算,自动给变频输出,实现最佳节能控制。第一章绪论1.1引言工业自动化技术,就是通过自动控制装置自主地对生产过程、工艺参数、技术指标、产品要求等进行自动的调节与控制,使之达到预定的技术指标[2]。自动化的水平高低,将直接影响到产品的质量、产量、成本等,正因为如此,人们将越来越重视自动化控制技术,其在先进制造技术中占有很大分量。而先进制造技术人才是我国当前最紧缺的专业人才,就业前景良好。工业制动化技术包括电子与电气设备、自动化生产线、可编程序控制器、计算机辅助设计和计算机监控管理系统。全集成自动化(TIA)——树立行业新基准。全集成自动化将所有的设备和系统都整合到一个自动控制系统的解决方案中,采用这种方法将解决现有系统所遇到的困难,并且优化了整个系统结构,使系统更为简洁。见图1.1。图1.1全集成自动化系统构架图1.2课题研究背景和研究意义近年来,机动车的不断增加,导致用油量猛增,各处加售油点已经成为生活中不可分割的一部分。机动车给我们提供了很多方便,扩大了我们活动范围,加快了社会节奏,却给供油系统增加了更大的压力。昼夜、季节、上下班高峰期以及节假日的不同其用油量也有着较大的变化,在没有变频器的情况下,常常会出现油压的剧烈波动。导致供油不稳定,对产品和设备都会造成很大的伤害。通过引用变频器和压力传感器,使其压力可调,将能彻底的解决这个问题。如今,中国作为世界上第二大经济体,其石油进口量将超越美国,成为世界上最大的石油进口国,相关数据表明,4月份中国石油的每日进口量为740万桶,而美国的的日进口量则只有720万桶[2]。当然,由于克里米亚问题,美国制裁俄罗斯导致国际油价低迷,不排除我国因此加大石油战略储备缘故。但是,中国进口量持续增加将是必然趋势。如何高效的利用这些能源以及减少对国外的依赖,解决这个问题的方法,有现如今讨论最为激烈的新能源技术,以及如何产生可再生能源,我认为最为实际的方法便是减少浪费,提高能源利用率。供油泵不仅在加油站是主要设备,也是汽车变速器的核心设备,在电厂,机场等也存在大量应用供油泵的情况,利用PLC、变频器和压力传感器组成的闭环控制系统来调节油泵的转速,让管网的压力得到了保证,确保了系统的可靠性,供油稳定且节能效果明显。1.3课题主要研究内容本文以PLC为控制器对加油站油泵控制系统进行设计。采用压力传感器检测油管中的油压,控制器实现对油泵的变频调速,来控制加油量。其控制系统由S7-300、WinCC、MM440以及现场总线网络通信构成,可实现高可靠性、高效率和高精度的控制。主要研究内容如下:1.3.1变频恒压供油的实现图1.2PLC模拟量闭环控制系统框图在此闭环系统中,被控量压力C(t)是连续变化数值,而PLC作为数字控制器不能过直接处理连续数据。因此在实际闭环控制系统中,被控量首先被传感器和变送器转换为模拟信号(一般是4~20mA或0~10V),PLC利用模拟量输入模块中的A/D转换器将其转换为数字量PVn。另外,控制这些物理量的执行器多数接收的也是模拟量,所以PLC处理过的数据M(n)还必须数/模转换成连续的模拟信号M(t)来驱动执行器的操作,从而达到控制压力的目的[11]。在实际系统中,模拟量和数字量之间的相互转换和PID程序的执行都是周期性的操作,其间隔时间成为采样周期Ts。在图1.2中,各数字量的的下标表示该变量是第n次采样计算时的数字量。其中SPn是给定值,PVn是A/D转换后的反馈值,而误差信号en=SPn-PVn。1.3.2S7-300与MM440间DP通信西门子S7-300PLC对MM440变频器控制有端子排及Profibus-DP通信控制。由于DP控制具有接线少、抗干扰能力强和控制距离远的特点,所以工业现场广泛采用Profibus-DP控制。在现场层的高速数据传送应用Profibus—DP总线,主站PLC周期性的读取从站MM440的输入信息,并周期性的向从站MM440发送输出信息,总线循环的时间必须要比主站(PLC)程序循环时间短[3]。本次设计基于压力传感器检测值输入PLC模拟量模块,该模块将模拟量转换成数字量——整形数(0-27648)。在PLC程序内部将该信号转换成实际压力,经FB41运算过后LMN输出仍为实数,调用FC106转换为电机的速度0—16384(P2009=1)来控制电机。1.3.3WINCC监控系统HMI的用户群和用户领域是千变万化的,为此,WinCC提供了针对网络、冗余、瘦客户、配方等的选件(Option)来灵活地扩展用户的应用[4]。下载生产配方文件到PLC组态连接更多的客户机通过网络浏览器监控WinCC项目过程诊断支持冗余过程可视化和数据分析访问WinCC报警和归档连接数据库和IT系统评估和压缩过程数据管理机器数据11.组态用户自定义的ActiveX对象12.使用编程接口[3]在严酷的工业环境中,一旦设备和系统失效,宝贵的生产时间将被无情的浪费。WinCC提供了了大量快速定位故障的强有力的手段,从而确保停工时间最小化。本次设计中,充分考虑到这一点,其中确保与PLC正常通讯最为重要,WinCC具有强大的故障诊断能力,本次连接状态的静态文本显示OK,表示与PLC连接正常,显示NO表示连接失败,在文本中,点击动态对话框进行组态,通过查看实际频率变量变量状态,而得之是否连接成功,在变量状态中没有连接的文本中输入NO即可,在表达式/公式的结果一栏中,其它输入OK,即可通过实际频率变量与PLC的连接状态来查看WinCC与PLC的连接状态。操作员还可这样处理故障:远程浏览运行WinCC的PC,读取PLC诊断缓存信息,浏览应用中的PLC程序,查询帮助手册。1.3.4压力传感器压力传感器输出4~20mA的模拟量信号,送到S7-300的模拟量输入模块,PLC对其进行PID运算,现场调试过程中在线调整FB41中参数比例、微分、积分值,以保证系统运行稳定,确保管路的油压稳定。1.3.5串行通信模板CP340的MODBUSRTU通信协议本次设计的售油机由8个子系统组成,也就是由8位同学共同设计完成,8个部分分别为:SCADA,主控制系统,机泵单元,看板单元,流量计单元,智能卡单元,门禁单元以及地磅单元,主控和机泵通过MODBUSRTU进行点对点传输数据来控制机泵的启停,以及读取油压和机泵的频率。分配给本人的任务为机泵单元,那么与主控之间通讯模块的选择,就变得尤为重要,西门子公司提供了多种点对点通讯模块,从经济和可靠性方面,本次数据传输选择CP340模块来完成,设计难点为利用CP340编写ModbusRTU通讯协议。CP340通讯处理器允许通过一条点对点连接在自动化设备之间或计算机之间进行数据交换。CP340通讯处理器可以与各种Siemens模块和非Siemens产品点对点连接[5]。通过通讯模块CP340与单片机系统实现485通信,CP341虽功能强大,但由于CP340价格低廉,而受到广泛的应用。8个人共同完成整个售油控制系统的设计,其中联合调试以及数据间的相互传输,是整个系统的设计难点与核心。整个系统的结构图为;第二章油泵的基本参数及其工作特性2.1油泵理论及油泵工况点分析2.1.1流体输送设备流体的输送是一个动量传递过程,流体在管道内流动从泵或压缩机等输送设备获得能量,以克服流动阻力。输送液体并提高其压头的设备是泵,输送气体并提高其压头的设备是压缩机。不需要再吸入管路内充满水就能自动的把水抽上来的是离心泵[6]。第一次使用自吸泵时,需要在泵内灌水,使泵内空气排走,是吸水管内的真空度不断增大,被输送的水便不断沿吸水管上升。待泵内完全充满水时,泵就进入正常工作状态,完成自吸过程。在这之后的使用过程中自吸泵启动都不需要加水,其自身的叶轮装置可以辅助其完成自吸过程。自吸泵的结构紧凑、维护容易,使其越来越受广大用户的喜爱。2.1.2油泵的工作参数在油泵的接线盒上,其铭牌参数有最大流量(40L/min),最大扬程(35m),最高吸程(6~8m),功率(335W),转速(2800r/min),电压(380V),频率(50HZ)等。流量、转速、扬程之中只要有一个发生变化,其他两个参数也会按照一定的规律变化。流量Q:指选定一个截面,在单位时间流过这个截面的流体的体积,那么流量Q=VS,V是流动速度,S为横截面面积。流量的单位一般为L/s。扬程H:泵把单位液体提升的高度叫做泵的扬程,单位:m液柱。扬程的变化直接使泵的流量发生变化[6]。泵的扬程分为吸入扬程和排出扬程。把液体从容器中吸入到泵内的扬程叫吸入扬程。吸入扬程包括吸入高度和吸入管路的阻力损失两部分,公式为:H吸=H吸高+H吸损。把液体从泵排到另一个容器的扬程叫排出扬程。排出扬程包括排出高度和排出管路阻力损失两部分,公式为:H排=H排高+H排损。泵的扬程包括吸入扬程和排出扬程,公式为:H=H吸+H排=H吸高+H吸损+H排高+H排损。自吸泵的扬程可用真空表检测,排出扬程可用压力表检测。因此泵的实际扬程是:H=∆h+P表-P式2-1中P表——泵排出口压力表的读数,Pa;P真——泵吸入口真空表的读数,Pa;U吸——泵吸入口测量点的读数,m/s;U排——泵排出口测量点的流速,m/s;∆h——泵吸入口和排出测量点的高差,m:ρ-液体的密度,kg/m3;G-重力加速度,m/s2.在实际中,压力表与真空表安装高度差很小,可忽略不计∆h=0;泵的吸入管径与排出管径一般情况下相等或相差不大,则U吸=U排,泵的扬程与压力表和真空表读数的关系可简写成下式[7]:H=P2.1.3油泵的基本特性曲线油泵是生产生活中,不可或缺的电力设备,泵的选择直接影响到生产成本和效率。因此,泵的性能研究变得格外重要,根据泵的特性曲线比较泵的扬程,功率和泵的总效率,作为选泵的依据。泵的特性曲线可用下列三个函数关系表示扬程与流量之间函数:H=f1(Q);轴功率与流量之间的函数:N=f2(Q);效率与流量之间的函数:=f3(Q);见图2.1图2.1泵的特性曲线从曲线图可以就看出,自吸泵的扬程在一定流量范围内是随流量的增大而减少的,曲线比较陡峭表示适用于扬程变化范围大而流量不能变化太大的场合;轴功率随着流量的增大而减少,显然,流量为0时,轴功率为最大;流量和效率曲线类似抛物线,开口向下,该曲线的最高点,效率最高,该点为自吸泵的设计点,及最佳工况点。该曲线的作用是泵以一定的流量点,都可以在曲线上找出一组与其相对应的扬程、轴功率、效率,这一组参数称为工作状态,简称工况或工况点,一般泵的额定参数就是与设计工况点相重合或相接近,设计工况点和最佳工况点相重合或很接近。在实际的选效率区间运行,既能保证泵的正常运转,又可以节约电能。2.1.4油泵的工况点泵的正常工况点和额定工况点在额定工况点下的效率相对较高,额定工况点是厂家设定的工况点,但是我们在设计使用中不一定达到,或者超过这个工况点都是有可能的,因此一般规定一个范围,称为泵的高效区。此区通常为最高效率的92%左右,而这就是泵的正常工况点,本次设计符合75%~105%,根据工艺工况,将有一个最合适的压力、流量和扬程。实际运行的工况时油泵性能曲线图,根据实际,设计扬程与流量,这个点就是正常工况点。油泵一般运行在一个正常的范围内,其实际运行还受到泵的安装,管道的安装及长度,管径以及实际扬程等一系列因素的影响。2.2变频调速分析及供油系统的理论模型2.2.1变频调速的原理变频器其原理便是先把工频交流电源通过整流器转换成直流电源,然后再把直流电源转换成频率、电压均可控制的交流电源以供给电动机,即交-直-交的控制方式。从电机学可知,异步电机的转速公式:n=n式2-3中,np为电动机极对数;fs为电动机定子供电频率;ωs=2πfs为定子供电角频率(角速度);s=ns-n由式可知,电机转速与频率近似成正比,改变频率fs,就可以平滑地调节电机的转速,从而可以连续方便地改变运送介质的流量。泵的转速n、流量Q、压力P、以及轴功率H具有如下关系:Q∝n,P∝n22.2.2工况点调节当油泵的转速发生变化时,其流量特性曲线也会发生变化。图2.2流量特性及管路特性曲线图2.2中,1、2、3为n1、n2、n3对应的三条流量特性曲线,且n1>n2>n3。从曲线图中可以分析出流量一定的情况下,转速越高,H越大。在管路特性曲线B的情况下,减少油泵转速,则工作点C1将下移到C2或C3,流量也相应的由Q1减到Q2或Q3。这种方案从能耗的角度来说,是最为经济,机械效率最高的调速方式[9]。工况点调节也可以通过改变管路特性曲线的方法,即通过改变阀门开度的大小,来实现调节流量的大小。泵的压头和流量有一定的对应关系,转速n1不变的情况下,将阀的开度加大,其管路特性曲线变成B2,工作点从C1移到C4,流量从Q1移到Q4。这种方案,控制阀一般安装在泵的出口管线上,简单可行,应用范围广,但是这种方案,总的机械效率低,特别是在阀门开度较小时,阀门上的压降较大,对于大功率泵,损耗的功耗相当大,因此是不经济的。2.2.3节能分析首先,先提一下与节能相关的词——利用率举个例子,一个抽水泵工频条件下运行一小时,去给一栋楼供水,但是这台抽水泵功率太大了,抽出去的水这栋楼里用不了。实际的做法便是再抽水泵的出水口加上一个挡板,这个挡板挡住了水流,这栋楼需要多少水就把挡板开到多大,这样一来,很多能量便浪费在挡板上了。如果去掉这个挡板,给抽水泵加上个变频器来调节抽水泵的速度,速度越低越省电,这样能量就节省下来了,而不是白白浪费在挡板上,这样就能达到节能的效果。供油泵是生产运行中能耗较大的电力设备,在正常应用中,都是通过控制供油泵出口的循环阀门开度来调节供油的流量和压力,不仅造成了大量的能源浪费在阀门上,而且油流量的增加致使管线油温快速上升,天气温度较高时,还会造成很大安全隐患。变频器对过压、欠压、过载、短路及电路失速都能可靠接地保护。油泵应用变频器,即可提高工效,又可节约用电,保护电机及设备。其应用范围将大大的增加。2.2.4恒压供油系统的理论模型图2.3恒压控油控制原理框图变频恒压供油将管网的油压传递给S7-300,S7-300根据设定的压力值让实际压力跟随其变化,以达到恒压供油的目的。当压力偏离平衡状态而上升时,将压力的变化转换为膜片装置的形变程度,压力变送器将其转化为电流变化量的上升,作为测量值Z送给PID调节器;调节器将Z与给定值R进行比较,由于R保持不变,Z上升,则R-Z=E,E将下降,由PID的性质,此时LMN值将下降;频率f和转速n也将随着其下降,很显然,转速n下降将使出口压力P也下降。如此使P回归给定值,如果PID参数设置恰当,可获得比较满意的调节的效果,这个调节过程可用符号简洁地表达为:相反,当干扰使出口压力P下降时有:很明显,这是一个闭环负反馈控制系统,如果把方块图中Z信号旁的“-”变成“+,”E就等于P+Z,系统变成了正反馈,就不能克服干扰,此时,可见,在正反馈控制系统中,反馈值上升,系统将越来越偏离给定值。第三章硬件系统设计3.1硬件选型3.1.1PLC选型西门子S7-200、300、400最大的区别是应用规模上的不同。在实际工程应用中200控制点数一般不会超过64个;300的系统一般不超过512个;400则基本上就是大型系统了上千点都不足为奇。当然系统的控制点数是受限于CPU的寻址能力、存储器容量和授权点数以及设计思想的。这些参数可以查询相关的手册。根据系统规模和客户的技术要求对控制系统I/O点数进行估算。分析被控对象的工艺过程,统计系统的I/O点数和I/O类型。留有10%~20%的备用量即可。估算公式如下:DIDO式3-1中,DI/DO——要估算的输入和输出点数量;K——可取1.1~1.2之间;αbiC——其他点数N——单个系统的总数[7]。SINATICS7-300是西门子公司为满足中、小型规模的控制要求而设计的,几乎可以满足自动化控制过程的各种要求,在生产制造过程中体现的尤为突出。S7-300对于不同的控制功能分为各种控制模块,如果用户需要增加控制任务时,只要增加相应的功能模块即可,这种配置方案,为当今最为流行的控制方案。如图3.1所示。3.1S7-300系统模块示意图本次选择SIMATICS7-300CPU型号为CPU315F-2PN/DP订货号为6ES7315-2FH13-0AB0数字量模块DI16/DO16*24V/0.5A订货号为6ES7323-1BL00-0AA0模拟量模块AI4/AO2x8/8Bit订货号为6ES7334-0CE01-0AA03.1.2变频器选型驱动装置按照拖动的电动机类型可以分为直流与交流传动两类,按照电动机的电压等级和容量也分成很多类型。按照电动机的电压等级和容量也分为很多类型。其中常见的有标准变频传动装置MicroMaster系列、高性能驱动装置SIMOVERTMasterDrive系列,以及新产品SINAMICS系列等。不同的产品系列其性能、功能不同。标准变频传动装置MicroMaster系列分为MM410/MM420/MM430/MM440四个系列,MM440是一种简单问题的传统解决方案,功率范围小;MM420的IO数量少,不支持矢量控制,无自由功能块可使用,功率范围小;MM430专为风机水泵设计,不支持矢量控制,功率范围大,在恒压供水场合有很实用的功能;MM440是矢量控制变频器,有控制单元,有自由功能块,功能相对强大[8]。因为油泵电机是变频器直接拖动的,所以变频器的选型变得尤为重要,首先,要考虑的便是变频器的容量,太小,拖不动电机,会造成油泵经常性的停机;太大,虽可以拖动电机,但从经济上考虑显然是不合适的,一般情况下,变频器的选型满足以下条件即可:变频器的电压等级要与油泵电机相符变频器的额定电流为油泵电机额定电流的1.1~1.5倍。综上所述:本次设计选择MM440变频器订货号为6SE6440-2UC17-5AA13.1.3S7-300与STM32进行点对点通讯模块选型CP340自身通过串行接口处理与通信伙伴的数据传输。为此,CP340配有三种不同的驱动程序。单项数据通信-打印机驱动程序双向数据通信-ASCIIdriver-3964R程序在工业控制领域中,中低端产品S7-300应用的较为广泛,基于S7-300的ModbusRTU协议通信数据采集一般采用CP341模块配置Dongle的模式实现,系统构建成本较高,也避免了采用第三方模块的兼容性差的问题,是一种非常好的解决方案,所以采用CP340模块,通过适当编程,使用ASCII码通讯协议来实现ModbusRTU协议,其运行稳定,可靠,在S7-300系统中得到了广泛的应用[10]。综上所述:本次设计选择CP340型号为CP340-RS422/485订货号为340-1CH02-0AE03.1.4HMISIMATICWinCC和SIMATICWinCCFlexible无论从功能还是应用范围上,都被认为是两款不同的软件。WinCC设计上高瞻远瞩,因此刚一发布,就成为HMI领域的领导者,支持覆盖全球的多种语言,对于复杂的监控系统来说,WinCC是个不错的选择。西门子公司还提供的了技术论坛,很多工程师们遇到的问题,都将出现在里面,西门子公司的技术人员也会提供在线解答,方便大家的学习。SIMATICWinCCFlexible简而言之是触摸屏的组态软件,相比WinCC,WinCCflexible组态画面较为简单,功能弱;西门子有将WinCC的功能融合到WinCCflexible中的构思,且已经实现,即西门子博途TIA集成软件。WinCC系统组件建立的各种编辑器可以生成工艺画面、设置画面、监控画面、脚本、报警、趋势曲线和打印报表,功能强大,操作者可以根据设计要求进行目的性的选择。WinCC还集成了以下系统[11],如图3.2所示。与自动化系统的无缝集成与自动化网络系统的集成与MES系统的集成与相应的软硬件系统一起,实现系统级的诊断。3.2WinCC体系机构图WinCC的可扩展性是WinCCFlexible达不到的。综上所诉:本次选择WinCC组态监控整个系统3.2硬件接线图3.2.1系统网络结构示意图图3.3系统硬件结构图PC机与S7-300和WinCC与S7-300通过以太网经交换机X208进行通讯,各IP地址已在图3.3中标出,X208的IP地址为0,S7-300的IP地址为,Winccflexible的IP地址为,MM440的从站地址为4(P0918)。S7-300与MM440通过PROFIBUS-DP通讯控制油泵S7-300经通讯模块CP340与STM32进行MODBUS-RTU通信压力传感器信号经模拟量采集模块SM334转换为数字量0`27648,送入PLC进行PID运算。3.2.2电源电路的设计图3.4电源接线图3.2.3数字量接口设计图3.5数字量接线图3.2.4模拟量接口设计图3.62线制4~20mA接线图3.2.5CP340接口设计下图说明了RS485模式下CP340和通讯伙伴连接时的接线图(两线制模式)。图3.7CP340接线图(两线制)如果电缆长度超过50m,则必须在接收器上焊接一个约为330终端电阻,以确保数据传输畅通无阻。第四章软件系统设计4.1软件设计简介4.1.1PLC工作方式在编写程序时,有必要了解一下PLC的工作过程。PLC循环扫描工作过程如图4.1所示。4.1PLC循环扫描过程PLC的扫描工作方式会引起输入/输出时间滞后,程序编制的不合理也会引起输入/输出的时间滞后,最长可达两个多扫描周期。4.1.2S7-300数据类型S7-300的数据类型分为以下三种:基本数据类型、复合数据类型和参数类型。1.基本数据类型一、位(bit)常称为BOO了(布尔型),只有两个值:0或1.如:I0.0,I0.1,M0.0,等。二、字节(byte)一个字节由8个bit组成。如:IB0(包括I0.0~I0.7位),QB0(包括Q0.0~Q0.7位),MB0,VB0等。范围:00~FF(十进制0~255)。三、字(Word)相邻的两字节(Byte)组成一个字(Word),来表示一个无符号数,字的范围为0~65536,如果用到MW0,则MB0和MB1则要谨慎的使用,字和整形一般取2的倍数。防止地址重叠,造成没有必要的错误。四、双字(DoubleWord)相邻的两个字(Word)组成一个双字,来表示一个无符号数。因此,双字为32位。比如MD4由MW4和MW6组成,由上可知,MW4和MW6又可分为MB4、MB5、MB6、MB7,在写程序时要特别注意,如果用到了MD4,一般MB4、MB5、MB6、MB7,一般就不要用了。以上的字节、字和双字数据类型均为无符号数,即只有正数,没有负数。五、16位整数(INT,Integer)整数范围为-32768~32767。六、32位整数(DINT,DoubleInteger)32位整数和16位整数一样,为有符号数。范围为-2147483648~2147483647。

七、浮点数(Real)浮点数为32位,可以用来表示小数[12]。2.复合数据类型一、数组(ARRAY)二、结构(STRING)三、字符串(STRING)四、日期和时间(DATA-AND-TIME)占用8个字节,BCD编码。星期天代码为1,星期一~星期六代码分别是2~7。五、用户定义的数据定型工程师将基本数据类型和复合数据类型组成一起的数据类型。3.参数类型主要包括以下几种数据类型:一、TIMER(定时器类型)、COUNTER(计数器类型)在函数或者函数块中定义定时器和计数器,只有程序块调用时才执行。二、POINTER(6字节指针类型)6字节指针类型指向地址,若将POINTER定义为形参时,则对应的实参必须为一个地址,可以是一个简单的地址也可以是指针格式指向地址的开始。三、ANY(10字节指针类型)在本次程序调试中,读DP从站数据和写DP从站数据用到SFC14和SFC15,参数RECORD引脚的数据类型就是ANY类型,S7-300CPU的RECORD参数总是需要完整的指定DB参数(例如:控制电机启停是PZD报文P#DB1.DBX20.0BYTE4),表示DB1块中20.0开始的四个字,前两个字为电机的控制字,后两个字则为状态字。如果忽略DB编号对于S7-300CPU是不允许的,这将会导致在用户程序上生成错误信息。4.1.3S7-300数据高位低位编写程序前,我们要了解S7-300的数据类型,一个双字高字节为MB0低字节为MB3,这个顺序和其他的PLC或计算机的编程语言刚好相反,例如:图4.2所示MD0由字节MB0~MB3组成,MB0为最高字节,MB3为最低字节。在MB0中,M0.7最高位,接着为M0.6····M0.0最低位。MD0中各位的排列顺序如下,M0.7为最高位,M3.0为最低位。M0.7、0.6、0.5、0.4、0.3、0.2、0.1、0.0,M1.7、1.6、1.5、1.4、1.3、1.2、1.1、1.0M2.7、2.6、2.5、2.4、2.3、2.2、2.1、2.0,M3.7、3.6、3.5、3.4、3.3、3.2、3.1、3.0图4.2变量表用变量表可以说明此结论,我们输入十进制数87654321,显示二进制为1000_0111_0110_0101_0100_0011_0010_0001,从图中可明显看出MB0为高位,MB3为地位,在此次程序编写过程中,有一个速度设置按钮,将设置的速度存储到MW36中,在进行换算是,将其先转换为双精度整形,然后利用双精度整数函数,经过一定的线性转换,转换成泵的额定转速,保存在MD60中,那么问题出现了,怎样从MD60中取出速度参数(速度保存在MW中,数值一般为0~2800r/min),很显然,我们取地位MW62即可,注:由于数值较小,我们可以忽略数据溢出的情况。见变量表4.3所示图4.3变量表从图4.3变量表中就可以看出,MD90的数据,我们只要取MW92地位即可实现。4.1.4地址重叠问题如果修改了一个数据,另一个数据也发生了变化,最大的可能就是地址发生了重叠。M0.0~M0.7=MB08个Bit组成一个字节MB0+MB1=MW0两个字节组成一个字MW0+MW1=MB0+MB1+MB2+MB3=MD0两个字组成一个双字由上面可以看出,选取地址时候,为了防止重叠,MW以2的整数倍选取(如MW2,MW4),MD以4的整数倍选取(如MD8,MD12)。如果我们选用MD4,则选用以下地址的时候就要慎重了,MW4、MW6、MB4、MB5、MB6、MB7、M4.0~M4.7、M5.0~M5.7、M6.0~M6.7、M7.0~M7.7。4.1.5IW和PIW的区别IW和PIW,我可以用一个比喻来说明此问题。比方说,我们从别人的电脑上下载一部电影保存在优盘上,把优盘插到自己的电脑上进行观看,但有时候,我不想这样,我就要在别人的电脑上直接观看。PIW和IW读取的就是这部电影,PIW表示的是别人电脑上的电影,IW表示优盘里的电影。要特别注意了,别人电脑上的电影,会“实时些”,优盘上的电影,过几天看可能就会过时了。从本质上说,PIW显示的是实时的数据,IW则是取映象存储器中的数据,输出也是这样。模拟量输入输出口的地址可以从HWConfig中查到,本次使用的CPU315F-2PN/DP的模拟量输入地址为272~279,输出地址为272~275,本次使用的模拟量输入模块为4通道输入,2通道输出,如果使用1通道电流输入,则输入可写成PIW272,使用1通道电流输出,则输出可写成PQW272,以此类推。4.1.6功能模块FB和FC的区别如果控制功能不需要保存它自己的数据,可以用功能FC来编程。FB可以用来保存数据,它有单独背景数据块,当调用FC时,会需要找全局地址进行保存,这样做不但麻烦而且会造成前面所说的地址重叠。在一些复杂的工程应用中,我们完全可以用FB块来代替FC块。可以直接访问保存在DB块中的数据,访问时可以使用绝对地址也可以使用符号地址,复杂的数据可以通过结构化的形式存储。例如DB51.DBX3.0,DB51是数据块的名称,DBX3.0是数据块内第三个字节的第零位。如果打开了数据块DB50,则可以省略第一个小数点前面的数据块编号,当然也可以先开打开后访问,相对而言,前者不容易出错,建议使用直接访问数据块中的数据。FB块执行完后,其DB中保存的数据不会丢失。4.1.7背景数据块和全局数据块的区别共享数据块又称全局数据块,共享数据块相当于C语言中的全局地址,任何函数块都可以调用其内部数据。背景数据块是则相反,它是FB或SFB运行时的工作存储区,创建FB时,必须分配一个背景数据块给它。也只有FB可以随时地访问其背景数据块中的数据。背景数据块与全局数据块的区别在于,在背景数据块中不可以增加或删除变量,也不能改变默认和实际参数,这些都是发生在相关联的FB中。如果增加或删除默认的参数或变量,必须更新FB所有的背景数据块或者删除并重新建立。在全局数据块中可以增加或删除变量,也可以改变默认或实际参数[13]。多次使用同一个功能块时需要调用不同的背景数据块,可以将这些数据块中的数据存放在一个多重背景数据块中,但是需要增加一个管理多重背景的功能块。4.1.8模拟量输入及参数值整定压力传感器传回来的压力信号,经过变送器转换为4~20MA电流信号,给模拟量输入模块SM334通过其内部A/D转换,以数字量形式传送给PLC。数字量和传感器的物理量在数值上并不相等,需要通过一定的转换才能直接使用。本次设计中模拟量输入模块SM334只能读取0-20mA的模拟量,而选用的压力传感器发出的为4-20mA的电流信号,我们想要4-20mA对应数字量0-27648,而不是0-20mA对应0-27648,我们把27648等分成20份(这里只是介绍这种思想,真实的计算并不是这样),每mA对应1382.4的值,而对于传感器输入回来得值是4-20mA,从4mA开始计值,也就是把27648等分成16份,每mA对应1782的值,从上可看出,压力传感器即使没有检测到压力时,也会输出4mA的值,会被模拟量模块读取,当成4*1382.4=552.9的值,所以我们在程序中先作如下处理,将PIW272转换成双整形数,然后再转换成实数(S7-300中没有直接将整形数转换成实数的指令),用此实数减去5529.6,也就对应了输入模拟量的零值了。然后计算,4-20mA的模拟量每mA值1728对于0-20mA的模拟量每mA的值1382.4而言是1.25倍,所以我们将模块读入的数据,减去5529.6后,再乘以实数1.25倍以后,得到的值就跟4-20mA所对应的真实值基本上一致了。程序如下:图4.4输入参数整定程序4.1.9模拟量输出及参数值整定由于被控对象信号的具体要求,使得PLC的输出信号常需要经适当处理,按各自要求输出。在控制系统中,各种控制运算参数及结果都是以一定的单位、符号的实际量表示的。而输出给执行机构的信号是在规定范围内的连续控制信号,如电压、电流值。控制量的计算结果向实际输出控制的转换是由模拟量输出模块完成的。在整定过程中,需要考虑模拟信号的最大范围、D/A转换器可容纳的最大位值以及系统偏移量的因数。模拟量的输出整定是一个线性处理的过程。本次将PID输出值整定在(0~16384)对应(0~50HZ),FC106接收以一个工程单位表示,且标定与下限和上限(LO_LIM和HI_LIM)之间的实型输入(IN),并将其转换为一个整型值。并将结果写入OUT。BIPOLAR设置为0,表示输入值为单极,整定公式为:OUT=[((IN-LO_LIM)/(HI_LIM-LO_LIM))*(K2-K1)]+K1,(K1=0.0,K2=+27648.0)即OUT(INT)=IN/27648*27648。4.2自动控制系统的性能要求现如今,在人们的日常生活中,自动控制系统无处不在,如房间温度调节、湿度调节、全自动洗衣机、自动车库等,他们在一定程度上代替或增强了人类器官的功能[14]。本次设计的系统为定值控制系统,即系统的给定值已经确定后就保持不变,直至操作人员再次调整它。在恒压供油系统中,由压力传感器传回来的压力值就需要恒定。控制系统要求稳态误差为零或在工程允许的范围内,一个好的自动控制系统,稳态误差一般在在被控量额定值的2%~5%之内。除了稳态误差满足规定的要求外,自动控制系统,还应满足动态过程的性能要求。自动控制系统被控量变化的动态特性有以下几种[15],如图4.5所示:4.5自动控制系统中被控量的动态特性本次设计的动态过程为第二个框图所示的情况。控制系统的动态过程不仅要是稳定的,并且希望过渡时间(又称调整时间)越短越好,震荡幅度越小越好,衰减的越快越好[16]。4.3程序流程图设计4.3.1模块化编程简介STEP7为程序设计者提供了三种编程结构,分别为线性化、模块化和结构化,本次设计的程序结构为模块化程序结构。模块化编程是把一项控制任务分成若干个独立任务的程序块,并放在不同的功能(FC)、功能块(FB)中,在主程序中调用相关块。调用完成后返回调用点,继续执行主程序。功能(FC)和功能块(FB)本质上是划分为块的现行编程。模块化编程各个程序块互不干扰需要什么功能时才调用相关的功能块,防止CPU空闲运行,提高了CPU的利用效率。组织块OB1是循环执行的程序,新建项目时系统自动生成空的OB1。在SIMATIC管理器中双击OB1图标后进入编辑器窗口,可以用“VIEW”菜单命令选择编程语言。在油泵控制程序中多次调用FB和FC来实现对油泵的控制。4.3.2程序结构图图4.6程序结构图由图4.6可知:本次设计结构由启动程序、主程序和中断程序模块构成的,启动组织块OB100,循环执行组织块OB1,时间中断组织块OB35。共享数据块DB1存放MM440报文,DB52,DB51存放MODBUS数据,DB50存放接收到的数据。其它DB为背景数据块。循环中断OB35主要完成模拟量的采样和输出,其采样周期可以自行设定。此外PID运算应置于OB35中。OB1的循环执行时间为150ms,OB35循环中断执行时间为200ms。主要程序流程图1.OB1程序流程图系统从停止状态转入运行状态时,都会自动调用一次OB100完成初始化任务,然后操作系统循环执行OB1,OB1执行完成后,操作系统再次启动OB1。主程序OB1即循环处理的用户程序。循环程序处理是PLC中的“常规”程序处理。如果使用了由事件控制的程序处理,通常只是将其作为主程序的补充。当CPU前面板的模式选择器开关设置为RUN或RUN-P,CPU才处理主程序。。图4.7OB1程序流程图2.FC1程序流程图图4.8FC1程序流程图3.FC2程序流程图图4.9FC2程序流程图4.FC6程序流程图本次设计中PLC作为从站,主站STM32的发出指令,PLC根据STM32发出的指令进行响应,主要是在接受到的数据后,判断是否是给自己的数据。把对方的数据接收过来进行CRC校验,如果为0,则为数据正确,传输过程中数据未丢失。并判断传输过来数据的地址标识符,判断是否为自己的数据,不是自己的数据直接清空接收缓存区,并不做任何响应。是自己的数据则将数据接收到指定的数据区,同时启动发送功能,发送相应的返回数据给主站,表示接收成功[17]。图4.10FC6程序流程图4.3.4关键程序设计1.本次设计既能面板控制也能HMI控制;在面板控制和HMI控制下,又有手动和自动功能,采用SR触发器来实现此功能。2.PID限幅控制程序限幅控制程序的控制任务为:低于下限泵全速运行,高于下限低于上限泵进行PID调速,高于上限泵停止运行。上限和下限根据现场控制要求进行设定。3.PID滤波控制程序压力传感器传回来的数值,往往由于外界的干扰,反应给PLC,PLC如果用这种干扰值进行计算,将会给系统带来很大影响,以下将介绍软件滤波的方法。首先将压力传感器读回来的数值进过输入整定,传给中间变量#MW9,然后进过FC105进行工程量转换,存储在浮点型变量#MD10,将#MD10经过FB1进行滤波处理。在滤波处理子程序FB1中,将最近十次压力数据保存在DB块中,每个扫描周期进行更新以确保是最新的十个数,然后,将十个数相加求平均完成模拟量滤波。图4.11变量声明表4.RTU接收处理程序eq\o\ac(○,1)对接收的数据进行CRC校验,将CRC校验高位值赋给DBB50.DBB48,地位值赋给DBB50.DBB49。eq\o\ac(○,2)接收到的数据根据地址标识符判断是否是本站数据,并判断接收到的数据CRC校验码是否为0,即DB50.DBW48是否为0,是0表示接收的信息帧正确无误,两者皆正确,将接收缓冲区(DB51)中的数据移到指定的地址区(DB50)。同时触发发送标志,发送数据给主站,表示接收成功。不是本站数据,直接清空接收缓冲区(DB51)。eq\o\ac(○,3)复位发送完成标志位[18]。具体程序请参考附录。第五章系统联调5.1PLC与MM440通信测试5.1.1PROFIBUS网络通信简介PROFIBUS,是一种国际化.开放式.不依赖于设备生产商的现场总线标准。PROFIBUS传送速度可在9.6kbaud~12Mbaud范围内选择且当总线系统启动时,所有连接到总线上的装置应该被设成相同的速度。广泛适用于制造业自动化、流程工业自动化和楼宇、交通电力等其他领域自动化。PROFIBUS是一种用于工厂自动化车间级监控和现场设备层数据通信与控制的现场总线技术。可实现现场设备层到车间级监控的分散式数字控制和现场通信网络,从而为实现工厂综合自动化和现场设备智能化提供了可行的解决方案[11]。PROFIBUS家族成员包括:PROFIBUS-DP(2)PROFIBUS-PA(3)PROFIBUS-FMSFMS由于通信复杂,成本高,使用的厂家较少,相比较而言DP更稳定,通信速率高且经济实惠,使得PROFIBUS-DP已经能完全取代FMS[11]。5.1.2Step7硬件组态1.组态主站打开Step7软件,通过FILE菜单选择NEW新建一个项目,在NAME栏中输入项目名称,取名为wudi,并选择存储位置,项目屏幕的左侧选中该项目,在右侧弹出的快捷菜单中选择InsertNewObject插入SIMATIC300Station,如图5.1所示,图5.1组态主站2.组态从站硬件配置时,尤其要注意实际硬件的型号和订货号,这些尤为重要,如果配置错误,在硬件下载时,会提示相关错误,操作者可以按照提示的错误进行修改,或者打开西门子的帮助文件,进行检索,西门子公司也提供了在线查错功能,相对而言,第三种方法用得最多,也最为广泛。选中DP总线,右击插入MM440,组态通讯区,见图5.2,MM440采用通用串行接口协议,通信速率为1.5Mbps,其通讯报文结构将在下节介绍。用户数据类型选择PPO1型,从下图可以看出,其地址由红色框圈出,PKW地址为256(100HEX),PZD地址为264(108HEX)。在读写DP从站数据时,模块参数LADDR即是该地址,将从该地址处读取数据。SFC要求必须以十六进制格式输入地址。例如,写PZD时,LADDER=W#16#100。图5.2组态从站5.1.3报文介绍1.MM440通讯协议S7-300通过DP总线与MM440之间交换数据,下面简要其介绍通讯数据帧。1.1.通讯帧通讯帧分为两个区域,即PKW区和PZD区。PKW区(参数识别标记ID-数值区)参数数值的读和写就是通过PKW通讯报文读出的,MM440定义各种类型的参数,在使用中,需要相应的参数,读出保存在MD中即可,比如本次设计读出的电机的频率,电机的电压,电机的电流,其数据便是通过PKW传输的。PKW区的结构PKW前两个字是任务是任务识别标记和应答标记,见图5.3,后两个字为变频器的参数值,例如,请求P0918(396HEX)的值,则发送报文可写成1396000000000000,应答报文为1396000000000004。图5.3PKEIND1.2.用户数据详细说明变频器定义了5种用户数据类型,见图5.4,其包括参数区域和过程数据区域,从下图可以看出PPO3和PPO4只有过程数据区域,PPO1、PPO2、PPO5都包括了PKW和PZD,只是用的PZD有多有少,这要根据实际情况来选择用户数据类型。图5.4用户数据类型从MM440手册上可以得到其只支持PPO1和PPO3类型,由于本次设计要读取变频器相关参数,如:电压,频率,电流等,所以选择PPO1类型,4个字的PKW数据用来访问变频器参数和2个字的PZD用来控制电机,其数据格式如图5.5所示。图5.5PPO1数据类型1.3.USS的任务和应答任务识别标记ID的定义[19]:图5.6任务识别标记应答识别标记ID的定义:图5.7应答标记对应答识别标记ID的错误数值=“任务不能执行”的定义图5.8错误标记2.PZD区(过程数据区)PZD通讯是为了控制和检测变频器而设计的,本次程序设计中,控制电机转动和给定频率以及变频器的运行状态和故障复位就是通过PZD来传输的。比如:在PID运算程序中,PID输出浮点数,经FC106转化成MM440的运行频率(0-16384),传送给电机。这里有必要说一下MM440的控制频率,从手册中得知,MM440中4000H(16384DEC)对应100%参考值,参考频率为50HZ。则16#2000对应8192,对应的频率为(8192/16384)*50HZ=25HZ16#3000对应12288,对应的频率为(12288/16384)*50HZ=37.5HZPZD1通讯帧的第一个字为控制字,其含义如图5.9所示:DB1.DBX21.7DB1.DBX21.7图5.9控制字S7-300对MM440写入PZD时,一般正向启动时,赋值Ox047F,停止时赋值0x047E。其位10一定要是1,否则变频器会将报文弃之不用。(在此再次申明S7-300的数据结构)当S7-300PLC写入PZD时,第二个字为主设定频率,频率如何给定前面已介绍过了。如果P2009=0,数值是以16进制发送;如果P2009=1,数值是以十进制形式发送。故障复位程序的编写故障复位只需要在通讯的时候控制控制字的第七位即可。程序如图5.10所示:图5.10故障复位程序当通过S7-300读变频器PZD区时(PZD1_RPZD2_R),第一个字(PZD1_R)为变频器的状态字。其含义如下图所示图5.11状态字由上面可得到,变频器的运行故障状态变频器的运行状态的程序如图5.12下图5.12变频器运行状态程序5.1.4变频器参数设置在进行快速调试之前,先将变频器参数恢复为出厂值,设置P0010=30;P0970=1。然后进行快速参数调试。电动机的额定参数根据电动机名牌上的数据设置,下面列出几个重要的参数设置。见表1表1快速设置部分参数表P0003参数内容默认值设置值说明1P0700选择命令源26COM链路的通讯设置1P1000频率设定选择26通过COM链路的通讯板(CB)设定1P1120斜坡上升时间10.0010.00电机从静止状态加速到最高频率(P1082)所用的时间1P1121斜坡下降时间10.0010.00电机从最高频率(P1082)减速到静止停车所用的时间最后将P3900设置为1,完成必要的电动机参数运算,计算完成后为使电动机能够运行,需要将P0010设置为0。与通信相关参数设置见表2表2通信设置参数表参数内容默认值设定值说明P0918PROFIBUS地址34地址值为4P2040报文停止时间(ms)2020如果通讯链路收不到报文那么在延时该时间后产生F0070如果变频器较多的话,建议使用通讯的方式设置参数。5.1.5报文收发测试S7-300余MM440的通讯主要是对4个字PKW和2个字PZD进行读写,为了使程序更为方便,可在程序中开辟一块静态存储空间,即DB1,用来存放要读写的数据,数据块格式与PKW和PZD的结构相似,如图5.13所示,读写区域分开。图5.13DB1结构图SFC14(“DPRD_DAT”)用于读Profibus从站的数据;SFC15(“DPWR_DAT”)用于将数据写入Profibus从站。PKW测试1)读出P0002到P1999之间的数值为了读出P0002到P1999之间的数值,PKW的第一个字应为1,”1”表示请求参数数值,表示参数号。应答报文为1(单字长)或2(双字长)或7(错误),错误代码保存在后两个字中。图5.14请求P0700数值见变量表5.14所示发送请求命令:12BC000000000000返回命令12BC000000000006返回1表示,P0700为一个单子长的参数,数值保存在DB1.DBW6中为0006(HEX)。请求读出参数P1082(1082=43A(hex))的数值图5.15请求P1082数值P1082最高频率缺省值:50HZ由变量表可知:应答报文返回243A000042480000,2表示这是一个双字长的参数,数值保存在DB1.DBW4和DB1.DBW6中,为42480000(IEEE浮点数)。图5.16浮点转换软件由图5.16浮点数转换软件可知,P1082=50.00HZ,也可通过计算的方法得出P1082=50.00HZ。请求读出参数P1000(1000=3E8(HEX))的值图5.17读出参数P1000的数值由变量表5.17可知:这是一个单字长的参数,数值保存在DB1.DBW6,数值为0006(HEX)。读出参数P0918通讯地址(918=396(hex))的值图5.18读出参数P0918的数值由变量表5.18可知:这是一个单字长参数,数值保存在DB1.DBW6中为0004(HEX)。把参数P1082的数值修改为50.00第一步,读出P1082的值图5.19读出P1082的值由变量表5.19可知:发送请求参数数值命令143A000000000000变频器返回命令243A000042200000,其中DB1.DBW0为243A,由应答识别标记ID表明,2表示的传送的数值为双字,数值为42200000(IEEE浮点数),如果想要修改P1082的数值,则根据任务识别标记,应选择3。第二步,把参数数值修改为50.00(=42480000(IEEE浮点数))。图5.20修改P1082得值发送请求参数修改命令343A000042480000,变频器返回命令243A000042480000我们发现变量表中,DB1.DBD4已经被改成50.0了。注意:如果点击修改变量按钮把343A000042200000发出去,返回来的值是743A00000005,说明数据类型不正确,错误号为5。如果返回来的值为743A00000017,说明传送失败,错误号为17,这种错误大部分发生在变频器正在运行的情况下。任务识别标志应采用13(=DHEX),就是把已修改的参数数值存入EEPROM。读出r0021,r0025,r0027,r0038频率,电压,电流,功率因数的值图5.21频率值图5.22电压值图5.23电流值图5.24功率因数PZD测试变频器正向点动之前发送停止命令,变频器返回FB31,表示准备好,正向运行BIT14为“1”。根据变量表:在DB1.DBW20写入W#16#047E读回来的值保存在DB1.DBW8为W#16#FB31图5.25发送停止命令为了正向点动,在DB1.DBW20写入W#16#057E图5.26发送点动命令为了反向点动运行,在DB1.DBW20写入W#16#067E为了停止点动运行,在DB1.DBW20写入W#16#047E正向运行,频率20HZ根据变量表:在DB1.DBW20写入W#16#047E在DB1.DBW22写入W#16#1999读回来的值保存在DB1.DBW8为W#16#FA31DB1.DBW10为W#16#0000图5.27发送停止命令在DB1.DBW20写入W#16#047F在DB1.DBW22写入W#16#1999图5.28发送启动命令,并赋值20HZ给DB1.DBW22变频器按照P1120设定的斜坡上升时间,升速到20.00HZ。注:斜坡时间设置得太短,可能会导致变频器跳闸。为了使变频器停止运行,在DB1.DBW20写入W#16#047E,DB1.DBW22写入W#16#1999或在DB1.DBW20写入W#16#047F,DB1.DBW22写入W#16#0000.本次程序设计,把控制字的第0位置一,使其按设定的频率斜坡上升,,置零斜坡下降,地址是DB1.DBX21.0。正反方向是将位11置0或置1,地址是DB1.DBX20.3,正反方向点动是将位8置0或置1,地址是DB1.DBX20.0。发送一定的速度指令,电机返回指令FB31,表示正向等待运行,返回指令BB31,表示反向等待运行。返回其他指令,表示错误。5.2S7-300与STM32Modbus—RTU通信5.2.1CP340编写Modbus—RTU通信介绍本次使用的CP340传输接口为RS422/RS485(X.27),可以在半双工(RS485)和全双工(RS422)之间进行选择。本次接口类型选择RS485(半双工模式)。CP340只支持ASCII协议模式,为了实现与STM32ModbusRTU通信,本设计中使用ASCII码通讯协议来实现ModbusRTU协议[20]。硬件采用CP340,CP340可以传输十六进制的00-FF之间的任何数据,根据Modbus-RTU的通讯帧的特点,编写代码,实现Modbus-RTU协议通讯,成本低,效率高且运行稳定。Modbus协议需要对发送的数据和接收到的数据进行校验,关键就在于用CRC校验替换掉ASCII的LRC校验,CRC校验可以提高传输数据的正确率,CRC校验算法如图5.29:图5.29CRC算法功能模块的输入输出接口配置见图5.30:图5.30输入输出接口配置5.2.2CP340的Modbus—RTU通信组态图5.31通信组态通信波特率:9600bps,数据位:8位,停止位:1位,奇偶校验位:无,字符延迟时间4ms,其他的参数采用默认设置[17]。本次选用RS485接口的CP340,设置接口属性如下:图5.32设置接口属性5.2.3Modbus—RTU的通信帧本次使用03和06功能,见表1。表一命令03(HEX)读单个或多个寄存器命令06(HEX)写单个寄存器此命令包含在“命令10”中命令3格式如下(读寄存器命令):MODBUS请求表二仪表地址1BYTE01-99功能码1BYTE03起始地址2BYTE0-FFFF读取数量2BYTE1-7DCRC低位1BYTECRC高位1BYTEMODBUS响应表三仪表地址1BYTE01-99功能码1BYTE03(06、10)字节计数1BYTEN输入状态N*2BYTECRC低位1BYTECRC高位1BYTE命令6格式如下(写单个字节):MODBUS请求表四仪表地址1BYTE01-99功能码1BYTE10寄存器地址2BYTE0-XFFFF寄存器内容2BYTECRC低位1BYTECRC高位1BYTEMODBUS响应表五仪表地址1BYTE01-99功能码1BYTE03(06、10)寄存器地址2BYTE0-FFFF寄存器内容2BYTECRC低位1BYTECRC高位1BYTE5.2.4CP340的Modbus—RTU通信测试单片机为主机,PLC为从机,从机在建立与主机通信之前,一直处于对通信线路的监听状态。Modbus——RTU通信构造数据帧见图5.33,5.34。图5.3303功能代码响应帧图5.3406功能代码响应帧首先将硬件配置和程序下载到CPU315F-2PN/DP中,在计算机上打开主站仿真软件,见图5.36,在pollDefinition中输入如下图5.35:图5.3503功能发送03功能码读取数据图5.36发送03命令其中4001中接收启停信号,4002和4003两个字保存压力数值,4004和4005两个字保存频率数值,可以看到从站已经正确返回这些数据。发送06功能代码启停电机图5.37发送06命令5.3WinCC组态界面分析5.3.1HMI控制任务HMI是系统和操作员交流的桥梁,操作人员可以根据HMI上显示的状态信息,进行系统故障和系统工艺流程的判断,其给用户提供了直观的操作界面。HMI控制任务如下:实时的压力趋势显示——把压力传感器传回来的值通过PLC处理用曲线的形式显示在HMI上,可与设定压力对比,为用户提供了判别系统稳定性的依据。归档数据——将速度,频率,压力,报警等参数保存至数据库中,方便以后有据可查。报表的产生与打印——把资料转换成报表的格式,以时间为过滤条件,把报表打印出来。报警的产生——定义一些警报产生的条件,比如变频器故障报警,压力报警,通知工程师进行处理。工程师对过程的控制——工程师通过用户界面来控制整个工艺过程。例如:工程师可以设置压力值或者手动操作启动油泵。工艺流程界面——根据现场流程,给操作员一个直观的操作界面,同时显示各项运行数据。连接状态的显示——显示与PLC的通信状态。授权登录——在手动操作下,只有级别较高的人才可以使用。5.3.2工艺界面图5.38工艺界面从图5.38中,可以看到左侧为画面切换和停止按钮,上方显示界面信息从左至右为(工程名称,界面名称,系统时间,与PLC的连接状态,当前登录的用户)。画面窗口中显示工艺流程界面画面,指示灯显示系统运行状态,实时参数显示转速,电压,电流,功率因数等基本参数,油泵旁显示当前频率,压力传感器旁显示压力测定值,右下角为手动操作按钮,Slow(10HZ),Normal(30HZ),Fast(40HZ),该手动操作按钮与手动操作界面按钮的区别在于速度不可调节。5.3.3手动操作界面图5.39手动操作界面手动操作顺序,开手动(手动指示灯点亮)--(输入速度)按下速度设置—按下复位按钮(复位指示灯点亮)--按下启动按钮电机将按照设置的速度启动,按下停机按钮电机停止—按下点动按钮电机将按照P1082设定的频率转动,松开即停止,其方向设置可以在以下几种方式下完成:电机启动前、电机运行中以及电机点动前。状态显示当前变频器和电机的状态,如果发生报警,故障和过载,指示灯将闪烁显示。手动操作运行不能作为控制系统的主要运行方式,只能在设备调试时用,或作为临时后备用。只有调试人员有其操作权限。5.3.4报警界面图5.40报警组态图5.41报警界面在WINCC中实现声音报警功能有四种方法:C脚本播放wav文件C脚本触发PC蜂鸣器VBS脚本调用媒体播放器报警器HORN的使用本次设计使用HORN报警器,报警器需要单独安装。5.3.5趋势界面图5.42趋势界面趋势界面显示设定压力和当前压力的关系,联合调试时,系统是否稳定,就是由此曲线计算得出,计算分析见5.4.5节。5.3.6历史数据图5.43变量归档组态图5.44历史数据界面报表打印图5.45报表打印界面图5.46报表布局界面打印按钮的C脚本这里脚本的功能用于合成报警过滤的条件。其中Sprint函数用于把ReportBeginTime和ReportEndTime中的字符串做拼接传送给变量szBuffer,从而获得报警过滤条件。调用内部函数SetTagChar函数把拼接后的字符串szBuffer的值,传送给变量AlarmFilter。调用标准函数RPTjobPrint(打印函数),TimeRangePrint为打印作业的名称。5.3.7登录与退出快捷键分配登录的快捷键分配为Ctrl+A,退出快捷键分配为Ctrl+Z,当按下登录快捷键的时候显示登陆窗口图5.47登陆界面登录完成后,当前登录用户显示当前登录的人的名称,按下Ctrl+Z退出当前登录。5.3.8水流动画脚本介绍使用折线对象来实现水流动画,与动画触发器配合,可以实现对水流的启停、方向及速度的控制。代码说明:不断修改代表水流的折线polyline01的X坐标值,从210到330之间变化。这导致折线中的虚线点位置发生变化,从而产生流动的效果。X值增加对应水流向右,X值减少对应水流向左。X值增加或减少的步长影响水流的速度。启动按钮的VBS脚本首先使两个水流折线可见。然后根据速度设定值,以不同的触发周期激活动画触发器。最后设置启动变量WaterFlowStart为真。停止按钮VBS脚本将控制两个水流的动画触发器取消激活,然后隐藏水流折线,并设置WaterFlowStart控制变量为假即可。向左向右只要设置WaterFlowDirection为True或False设置水流速度:1、将动画触发器周期设置为500ms,同时设置水流速度变量WaterFlowSpeed值为0.这将使水流X轴数值更改每500ms才变化一次。感觉是慢的。2、设置动画触发器的周期为125ms。同时水流速度变量WaterFlowSpeed值1。3、设置动画触发器的周期为125ms,同时水流速度变量WaterFlowSpeed值为2。与中速相比,动画触发器使用相同的周期,但是速度变量设置为2。5.4系统稳态分析5.4.1PID算法的实现程序调用PID功能块FB41,FB41为位置式PID算法,由于PID控制的功能块参数很多,结合功能块对应的框图来学习和理解这些参数。FB41的原理框图如图5.48所示:图5.48FB41原理框图PID是根据闭环控制系统的给定值SPn与实际输出值C(t)的偏差来进行控制的,控制偏差如下:et=SPn-c(t)(将偏差的比例、积分和微分的线性组合构成控制量,对被控现象进行控制,其传递函数形式为[12]:Gs=U式5.2中Kp——比例系数;TI——积分时间常数;TD——微分时间常数比例积分微分规律综合了比例调节,比例积分调节,比例微分调节三种调节规律的优点,适当的调整Kp、TI、T5.4.2PID死区从控制系统的性能要求上,我们可以允许被控量在允许的范围内波动,我们允许被控量的误差大小,被称为PID的死区宽度[11]。PID调节的最终结果是设定值和反馈值相等。而一般情况下,反馈值采样会收到一些干扰,如供电电源纹波等等。在反馈值已经等于设定值的情况下,希望PID不在调节,若干扰的范围是-5到+5,设置一个-5到+5不调节的门槛,误差超过这个范围在进行PID调节。这个门槛就是死区。设置这个死区后,系统稳定后,不易收到其他信号的干扰。死区的宽度可根据现场调试来确定,死区太小,控制动作过于频繁,达不到稳定被控对象的目的;死区太大,则系统将产生较大的滞后。经多次调试,本次死区宽度设置为DEAB_W=5.0。5.4.3PID参数整定使用S7-300的的FB41块做PID运算,FB41在OB35块中调用,OB35的循环中断时间为200ms,则FB41的采样时间cycle参数也设置为200ms,cycle的值需要设置的小于等于OB35的执行周期。比例调节是依据“偏差的大小”来动作,积分调节是依据“偏差是否存在”来动作,微分调节是依据“偏差变化速度”来动作的。了解了这些调节器的作用,我们可以知道曲线的变化是由什么调节器改变的,再来相应的调节其参数。本次采用临界比例度法来调节参数首先将调节器设置为纯比例控制(即积分时间TI为“∞”,本次设置为5000s,使积分器不起作用,微分时间TD设为“0”,使微分器不起作用)。然后逐渐增大比例增益GAIN并施加干扰作用,直至控制系统出现等幅振荡的过渡过程,如图5.49所示,图5.49等幅振荡曲线这时的比例度称为临界比例度δk=1/950,振荡周期称为临界振荡周期Tk=5s。根据表三经验公式来确定调节器的各参数。表三临界比例度法调节器参数表应采用的控制规律δTI(min)TD(min)P2δkPI2.2δk0.85TkPID1.7δk0.5TK0.125Tk得到这组数据之后,再在运行中优化这些参数,直到得到较好的波形即可。FB41在OB35中调用,如果OB35的中断时间是200ms,肉眼是看不出其在OB1中调用的不同,如果在硬件组态中,把中断时间改为2s,那么很明显就可看出FB41每隔2s执行一次。PID调整可以通过打开PID控制面板,选择PID背景数据块,调整PID参数。如图5.50所示:图5.50PID控制面板5.4.4系统稳态分析调节参数只能在一定范围内起作用,如果方案不合理,工况的改变,则无论怎样调节比例度,积分时间和微分时间,都不会达到调节预定的质量要求。考虑安全因素,调节过程中压力偏离给定值不得超过50.0KP,本次设计的压力定值调节系统,其调节过程的曲线在曲线界面中已给出,现在分析其参数:由图5.41趋势曲线图可计算出:最大偏差A=140-0=140Kp;余差C=100-0=100KP;第一个超调量B=140-100=40KP,第二个超调量B’=110-100=10KP,第三个超调量B’’=105-100=5KP;新稳态值的±2%范围内为100*±2%=±2KP,即进入98——102KP,则认为过渡过程结束,从图中可知过渡时间约为:19:35:10-19:34:20=50s,振荡周期为T=16:29:07-16:29:33=26s衰减比n=B/B'=40/10=4,实践数据表明,衰减比一般在4~10左右较好,这时系统具有较好的快速性,因此,本系统符合设计条件。5.5故障分析5.5.1调用程序块无能流通过图5.51无能流程序图从图5.51上看,FC1似乎没有调用,实际已经调用,只是显示问题,在调用FC1前加入条件(常开或

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论