基于PRODAVE技术的西门子PLC监控系统开.doc_第1页
基于PRODAVE技术的西门子PLC监控系统开.doc_第2页
基于PRODAVE技术的西门子PLC监控系统开.doc_第3页
基于PRODAVE技术的西门子PLC监控系统开.doc_第4页
基于PRODAVE技术的西门子PLC监控系统开.doc_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

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

文档简介

目录前言11.背景与意义22.相关技术基础32.1 plc的发展历史及趋势32.1.1 plc的发展历史32.1.2 plc的发展趋势32.2西门子s7系列plc简介42.3西门子prodave介绍92.3.1 prodave发展概述92.3.2 prodave的运行与函数调用102.3.3 prodave与plc连接132.4 visual studio简介142.5 c#语言特点153.系统需求分析163.1控制系统整体功能概述163.2上位机监控系统功能概述173.3可行性分析183.3.1技术可行性183.3.2经济可行性183.3.3操作可行性184.监控系统设计194.1系统组成及结构194.2下位机plc通讯参数设置204.3上位机界面设计224.3.1窗体设计224.3.2添加控件234.4上位机监控系统软件设计244.4.1定义结构体类型264.4.2建立plc连接函数264.4.3断开与plc的连接274.4.4激活连接,274.4.5从db块中读取数据274.4.6向db块中写入数据284.4.7从m、i、o块中读取数据294.4.8向m、i、o块中写入数据294.4.9 byte,int,bool几种类型的数据转换函数304.4.10数据存至sql数据库314.4.11建立错误日志315.结论33参考文献:34致谢38 39前言plc(programmable logic controler),即可编程控制器,以极高的性价比在工业测控系统中获得了广泛应用,是现代工业自动化三大支柱(plc、机器人、cad/cam)之一。随着微电子及测控技术的飞速发展,由plc 构成的集散控制是现代工业控制的一个重要组成部分。现代工业控制系统大多以pc机为上位机,通过与现场工控设备plc的数据交换与处理实现对生产过程的自动控制。目前,上位机程序设计主要有两种方式:第一,采用专门的组态软件,如wincc、组态王等;第二,通过编程语言自行开发。第一种方法操作简单、效率高、对开发人员的要求相对较低,但成本较高;第二种方法相对复杂,要求开发者具有较高的编程水平,开发周期长。但与第一种方法相比具有灵活、成本低的优点1。西门子公司提供的prodave软件包给开发人员提供了大量基于windows操作系统的dll函数,供用户解决plc与pc间的数据交换和数据处理的问题。这帮助开发人员在用第二种方法编写程序时省去了烦琐冗长的通讯部分,只需编写流程处理和数据处理模块,提高了监控系统的开发效率。本文通过对电热炉温度远程监控系统的研究, 探讨了在microsoft visual studio 2008开发环境下,用c#语言开发出基于prodave技术的西门子plc监控系统的方法。文中共分五章。第一章,背景意义,主要讲plc监控系统的背景、意义。第二章,相关技术基础,主要讲述了与本设计有关的基础知识。第三章,系统需求分析,主要讲述系统功能需求及可行性分析。第四章:监控系统设计,主要讲述了具体的设计过程及设计方法。第五章,结论。1.背景与意义plc(programmable logic controler),即可编程控制器,以极高的性价比在工业测控系统中获得了广泛应用,是现代工业自动化三大支柱(plc、机器人、cad/cam)之一。随着微电子及测控技术的飞速发展,由plc 构成的集散控制是现代工业控制的一个重要组成部分。现代工业控制系统大多以pc机为上位机,通过与现场工控设备plc的数据交换与处理实现对生产过程的自动控制。西门子工控产品在工控领域应用市场中有较高的占有率,s7-300系列plc是西门子simatic plc家族中的成员之一,在西门子工控领域应用中占有重要地位。s7-300系列plc体积小,软硬件功能强大,系统配置方便,由它组成的系统可以与强大的profibus现场总线相连接。它推向市场就在各行各业得到了广泛应用。在大多数控制系统中,仅仅是实现控制是不够的,在许多情况下也需要组态监控界面对系统进行监控2。通过监控可以增加人机交互的能力,使操作人员实时地监控系统工作情况并使系统操作变得方便。对s7-300系列plc组成的控制系统进行监控一般有三种方法:组态软件监控、触摸屏监控、第三方软件编制的监控软件监控。 用组态软件wincc实现监控,功能强大,灵活性较好,可靠性高。但软件价格高,并需要解决wincc与s7-300系列plc的通信问题,在复杂控制系统中可以采用此方法;触摸屏进行监控,可靠性高,监控实现容易,触摸屏与plc之间的通信问题生产厂商已处理好,用户不用考虑通信问题,可以大大缩短工程周期。但灵活性一般,功能有限,不能满足复杂控制系统的监控要求,而且价格高。在系统可靠性要求高、工期短的情况下可以采用此方法;用第三方软件编制的监控软件实现监控,灵活性好,系统投资低,能适用于各种系统。但是在实际工程应用中遇到了监控计算机与s7-300系列plc通信问题。由于西门子公司s7-300系列plc比监控组态软件wincc推出晚,因此wincc中没有集成s7-300系列plc的通信驱动程序。s7-300系列plc的通信协议也不公开,而且开发系统工作量大、可靠性难保证,对技术人员的经验和技术水平的要求高,还必须购买通信协议软件。因此,用第三方软件编制监控程序也有问题。这些问题给s7-300系列plc的应用带来了一定的限制。在系统资金投资有限,技术人员水平较高的情况下可以采用此方法。本文即是用第三种方法开发基于prodave软件包的西门子plc的监控系统,这种方法可以为企业降低成本,提高生产效率。2.相关技术基础2.1 plc的发展历史及趋势2.1.1 plc的发展历史在制造工业(以改变几何形状和机械性能为特征)和过程工业(以物理变化和化学变化将原料转化成产品为特征)中,大量的开关量顺序控制,它按照逻辑条件进行顺序动作,并按照逻辑关系进行连锁保护动作的控制,及大量离散量的数据采集。传统上,这些功能是通过气动或电气控制系统来实现的。1968年美国gm(通用汽车)公司提出取代继电气控制装置的要求,第二年,美国数字公司研制出了基于集成电路和电子技术的控制装置,使得电气控制功能实现的程序化,这就是第一代可编程序控制器,英文名字叫programmable controller(pc)。随着电子技术和计算机技术的发生,pc的功能越来越强大,其概念和内涵也不断扩展。上世纪80年代,个人计算机发展起来,也简称为pc,为了方便,也为了反映可编程控制器的功能特点,美国a-b公司将可编程序控制器定名为可编程序逻辑控制器programmable logic controller(plc),并将“plc”作为其产品的注册商标。现在,仍常常将plc简称pc3。上世纪80年代至90年代中期,是plc发展最快的时期,年增长率一直保持为3040%。在这时期,plc在处理模拟量能力、数字运算能力、人机接口能力和网络能力得到大幅度提高,plc逐渐进入过程控制领域,在某些应用上取代了在过程控制领域处于统治地位的dcs系统。近年,工业计算机技术(ipc)和现场总线技术(fcs)发展迅速,挤占了一部分plc市场,plc增长速度出现渐缓的趋势,但其在工业自动化控制特别是顺序控制中的地位,在可预见的将来,是无法取代的。目前,世界上有200多厂家生产300多品种plc产品,主要应用在汽车(23%)粮食加工(16.4%)、化学/制药(14.6%)、金属/矿山(11.5%)、纸浆/造纸(11.3%)等行业。2.1.2 plc的发展趋势(1)人机界面更加友好plc制造商纷纷通过收购或联合软件企业、或发展软件产业,大大提高了其软件水平,多数plc品牌拥有与之相应的开发平台和组态软件,软件和硬件的结合,提高了系统的性能,同时,为用户的开发和维护降低了成本,使更易形成人机友好的控制系统,目前,plc网络ipccrt的模式被广泛应用。(2)网络通讯能力大大加强plc厂家在原来cpu模板上提供物理层rs232/422/485接口的基础上,逐渐增加了各种通讯接口,而且提供完整的通讯网络。由于近来数据通讯技术发展很快,用户对开放性要求很强烈,现场总线技术及以太网技术也同步发展。如罗克韦尔ab公司主推的三层网络结构体系,即ethernet、controlnet、devicenet,西门子公司在profibus-dp及profibus-fms网络等。(3)开放性和互操作性大大发展plc在发展过程中,各plc制造商为了垄断和扩大各自市场,处于群雄割据的局面,各自发展自己的标准,兼容性很差,这给用户使用带来不便,并增加了维护成本。开放是发展的趋势,这已被各厂商所认识,形成了长时期妥协与竞争的过程,并且这一过程还在继续4。开放的进程,可以从以下方面反映:iec形成了现场总线标准,这一标准包含8种标准,虽然有人说,多种标准就是没有标准,但必竟是一个经过困难的争论与妥协的成果。标准推出后,各厂商纷纷将自己的产品适应这些标准,或者开发与之相应的新产品。iec制订了基于windows的编程语言标准iec61131-3,它规定了指令表(il)、梯形图(ld)、顺序功能图(sfc)、功能块图(fbd)、结构化文本(st)五种编程语言。这是以数字技术为基础的可编程序逻辑控制装置在高层次上走向开放性的标准化文件。虽然plc开发上各种工具仍不兼容,但基于这些标准的开发系统,使用户在应用过程中,可以较方便地适应不同品牌的产品。opc基金会推出了opc(ole for process control)标准,这进一步增强了软硬件的互操作性,通过opc一致性测试的产品,可以实现方便的和无缝隙数据交换。目前,多数plc软件产品和相当一部分仪表、执行机构及其它设备具有了opc功能。opc与现场总线技术的结合,是未来控制系统向fcs技术发展的趋势。(4)plc的功能进一步增强,应用范围越来越广泛。plc的网络能力、模拟量处理能力、运算速度、内存、复杂运算能力均大大增强,不再局限于逻辑控制的应用,而越来越应用于过程控制方面,有人统计,除石化过程等个别领域,plc均有成功能应用,plc在相当多的应用取代了昂贵的dcs,从而使原来plc(顺序控制)dcs(过程控制)的模式变成plcipc模式。(5)工业以太网的发展对plc有重要影响。以太网应用非常广泛,与工业网络相比,其成本非常低,为此,人们致力于将以太网引进控制领域。目前的挑战在于:1)硬件上如何适应工业恶劣环境;2)通讯机制如何提高其可*。以太网能否顺利进入工控领域,还存在争论。但以太网在工控系统的应用却日益增多,适应这一过程,各plc厂商纷纷推出适应以太网的产品或中间产品。2.2西门子s7系列plc简介西门子s7系列plc5适用于各行各业,各种场合中的检测、监测及控制的自动化。s7系列的强大功能使其无论在独立运行中,或相连成网络皆能实现复杂控制功能。因此s7系列具有极高的性能/价格比。s7系列出色表现在以下几个方面:极高的可靠性;极丰富的指令集;易于掌握;便捷的操作;丰富的内置集成功能;实时特性 ;强劲的通讯能力;丰富的扩展模块 。s7系列在集散自动化系统中充分发挥其强大功能。使用范围可覆盖从替代继电器的简单控制到更复杂的自动化控制。应用领域极为广泛,覆盖所有与自动检测,自动化控制有关的工业及民用领域,包括各种机床、机械、电力设施、民用设施、环境保护设备等等。如:冲压机床,磨床,印刷机械,橡胶化工机械,中央空调,电梯控制,运动系统。plcs7-300是模块化小型plc系统,能满足中等性能要求的应用。各种单独的模块之间可进行广泛组合以用于扩展。(1)工作原理plc采用循环扫描的工作方式,其扫描过程如图2-2所示:图2-1 扫描过程fig.2-1scan processionplc是采用“顺序扫描,不断循环”的方式进行工作的。即在plc运行时,cpu根据控制要求(编制好并存于用户存储器中的程序) ,按指令步序号(或地址号) 作周期性循环扫描,如无跳转指令,则从第一条指令开始逐条顺序执行用户程序,直至程序结束。然后重新返回第一条指令,开始下一轮新的扫描。在每次扫描过程中,还要完成对输入信号的采样和对输出状态的刷新等工作。plc的一个扫描周期必经输入采样、程序执行和输出刷新三个阶段。plc在输入采样阶段:首先以扫描方式按顺序将所有暂存在输入锁存器中的输入端子的通断状态或输入数据读入,并将其写入各对应的输入状态寄存器中,即刷新输入。随即关闭输入端口,进入程序执行阶段。plc在程序执行阶段:按用户程序指令存放的先后顺序扫描执行每条指令,经相应的运算和处理后,其结果再写入输出状态寄存器中,输出状态寄存器中所有的内容随着程序的执行而改变。输出刷新阶段:当所有指令执行完毕,输出状态寄存器的通断状态在输出刷新阶段送至输出锁存器中,并通过一定的方式(继电器、晶体管或晶闸管) 输出,驱动相应输出设备工作。(2)通信网络s7-300 plc可通过step7的用户界面提供通信组态功能,这使得组态非常容易、简单。s7-300 plc具有多种不同的通信接口,并通过多种通信处理器来连接as-i 总线接口和工业以太网总线系统6;串行通信处理器用来连接点到点的通信系统;多点接口 (mpi) 集成在 cpu 中,用于同时连接编程器、pc 机、人机界面系统及其他simatic s7/m7/c7 等自动化控制系统。图2-2 通信网络系统结构fig.2-2 the system structure of communication network mpi多点接口:mpi可以是主/主协议或主/从协议,协议如何操作依赖于设备类型(设备是s7-200系列cpu时建立主/从连接)。mpi总在两个相互通信的设备之间建立连接,其它主站不能干涉两个设备之间已建立的连接。该网主要用于plc与工程师站和操作站的短距离连接,通讯距离50米.通讯速率:187.5kbit/s或12mbits/s。profibus网络:profibus协议设计用于分布式i/o设备(远程i/o)的高速通信。profibus网络通常有一个主站和几个i/o从站,主站配置成知道所连接的i/o从站的型号和地址。主站初始化网络并核对网络上的从站设备和配置中的是否匹配。主站连续的把输出数据写到从站并从它们读取输入数据。通讯速率:187.5mbits/s或12mbits/s。profibus的最大优点在于具有稳定的国际标准ne50170作保证,并经实际应用验证具有普遍性。目前已应用的领域包括加工制造、过程控制和自动化等。(3) 组成部件s7-300 plc 模块结构构成,它主要油以下几个部分组成:cpu :中央处理单元,用于计算卡件采集各种数据,我厂大多有cpu314,cpu315,cpu316等系列.如cpu 315-2dp,存储容量为64kb,即我们编写程序最大的存储位为m65536.7。cpu上可插入快速闪存储卡,可用于长期存储重要的数据与功能程序。ps:电源模块,将ac 220v电源转换成 dc 24v电源,供给cpu和i/o模块使用。sm:信号模块,它是模拟量输入输出模块,数字量输入输出模块的总称。im: 接口模块,用于中央机架与扩展机架的连接,每层机架最多可装8块sm卡,当需要装入更多sm卡时,则需扩展。系统最多搭配4层机架,最多可配置32块信号模块。 cp:通讯处理器,用于plc之间,plc与计算机和其他智能设备之间的连接.通讯网卡:用于plc系统与上位机的数据通讯:主要类型有cp5611,cp5613,cp1613,cp5412a2等通讯网卡,均支持多种通讯协议。图2-3 plc结构fig.2-3 the structure of plc 当我们需要架构起一台plc系统时,需要配置最基本模块结构:电源模块,cpu,及信号模块,其他模块则可根据系统需要培植(如接口模块,当系统不需扩展机架时,则不需安装).所有模块均安装在金属导轨上,电源模块安装在最左端(1号槽),cpu模块紧靠电源模块(2号槽),如需配置接口模块,则放在cpu模块右侧(3号槽),当不需机架扩展时则安装信号模块,功能模块,通信处理器.(4到11号槽).除电源模块外,卡件与卡件之间在背板上用总线连接器连接,并固定在导轨上,实现信号模块与cpu的连接。(注:槽为设置在后面s7编程软件中设置)(4)存储器构成及访问s7-300系列plc存储器分为4大存储区:1 装载存储器 2 工作存储器 3 系统存储器 4 外设存储区 ,其中系统存储器在编程组态中需要重点了解。系统存储器又分为:(1)过程映象输入输出(i/o) (2) 内部存储器标志位(m)存储区 (3)定时器(t)存储区 (4)计算器(c)存储区 (5)数据块与背景数据块(6)变量存储器( v)(7)特殊标志位存储器( sm)除了特殊标志位以外,其它部分都能以位、字节和双字的格式自由地读取与写入。plc 数据存储器中的数据类型主要有字节( b) 、字( w) 、双字( d) 。数据存储器中的数据地址的一般格式为: aal a2。其中: a 是区域代码( i、q、v、m、sm) al 是字节的首地址, a2 是位地址( 0 7) 。例如,i4 2 表示该数据在i 存储区4 号地址的第2 位.用pc 作为上位机通过对plc 数据存储器的各部分进行数据读写是一种通讯形式。(6) 常用的基本数据类型如表2-1所示。表2-1:常用数据类型tab.2-1: common data types类型和描述以位计的长度格式选项范围和计数法(最低到最高值)实例bool (位)1布尔文本true/falsetruebyte (字节)8十六进制的数字b#16#0到b#16#ffl b#16#10 l byte#16#10word (字)16二进制的数字十六进制的数字 bcd十进制无符号数字2#0到2#1111_1111_1111_1111w#16#0到w#16#ffffc#0到c#999b#(0.0)到b#(255.255)l 2#0001_0000_0000_0000 l w#16#1000 l word#16#1000 l c#998 l b#(10,20) l byte#(10,20) dword (双字)32二进制的数十六进制的数字十进制无符号数字2#0到 2#1111_1111_1111_1111 1111_1111_1111_1111 dw#16#0000_0000到 dw#16#ffff_ffff b#(0,0,0,0)到b#(255,255,255,255)2#1000_0001_0001_1000_ 1011_1011_0111_1111 l dw#16#00a2_1234 l dword#16#00a2_1234 l b#(1, 14, 100, 120) l byte#(1,14,100,120)int (整数)16十进制有符号数字-32768 - 32767l 1dint (整数, 32位)32十进制有符号数字l#-2147483648到 l#2147483647l l#1real (浮点数)32ieee浮点数上限:3.402823e+38下限:1.175 495e-38l 1.234567e+13s5time (simatic)时间)16s7时间以步长10 毫秒(默认值)s5t#0h_0m_0s_10ms到 s5t#2h_46m_30s_0ms和 s5t#0h_0m_0s_0msl s5t#0h_1m_0s_0msl s5time#0h_1h_1m_0s_0ms(7)程序块的介绍s7将可以将用户编写的程序和程序所需的程序放置在块中,可以使单个的程序标准化,通过在块内或块之间类似子程序的调用,使用户程序结构化,可以简化程序组织,使程序易于修改调试。用户可以自己编写创建所需的块,s7中也定义了一些标准程序块供用户调用。ob块:组织块,程序中必须存在有自由循环组织块,用于循环处理,是用户程序中的主程序,系统在每一次循环中自动扫描一次ob1块,执行ob1中的程序。fc块:功能,用于用户自行编写的程序作为子程序在别的块中调用,fc块没有背景数据库,所以没有固定的存储区。fb块:功能块,功能与fc块相似,fb块有背景数据库。db块:背景数据库用于存放程序变量数据的数据区,db块的最大容量与cpu的型号有关。各程序块的功能如表2-2所示。表2-2:程序块功能tab.2-2:the function of program block 程序块功能简要概述组织块(ob)是cpu操作系统与用户程序的接口,被操作系统自动调用系统函数块(sfb)与系统函数(sfc)sfb和sfc集成于s7 cpu中,通过调用可以访问一些重要的系统功能,如cpu时钟,cpu诊断缓冲区。函数块(fb)fb可以是用户编写的函数带有“存储区”函数(fc)fc可作为子程序,也可以作为经常调用的函数使用背景数据块(instance db)背景db块与fb、sfb调用相关,在调用时自动生成,存储fb、sfb中所有的数据,并作为他们的“存储区”数据块(db)db块存储用户数据,与背景db相比,db块格式由用户定义2.3西门子prodave介绍2.3.1 prodave发展概述 由于pc机在工业生产中广泛的应用和出色的表现,它被越来越多的用到工业生产中。然而,问题是,我们如何将各种用于过程数据处理的程序(例如,数据库,统计与评价)和现有的plc控制系统结合起来7。为了使plc的数据可用于pc的应用程序,我们需要一个plc和pc之间快速而有效的数据链路。这就是软件包prodave 6.0将要解决的问题。prodave 6.0提供了基于dll(动态链接库)或库(library)中的各种链接函数,我们可以用这些链接函数方便的连接任何一个应用程序。这些函数是被基于windows95/98/me或windows nt/2000/xp应用程序运行的。通过这些组合函数,prodave 6.0把plc 和 pg/pc之间的过程数据通信通过plc的mpi接口建立。这些获得的实时数据可以被转化成任何适合pc机的格式。而且,它们可以被我们自己编写的应用程序和任何标准程序所处理。这可以使开发人员创建一个plc和pg / pc机之间的数据链路而不必知道详细的通讯协议,开发人员的所有开发活动都可以集中在项目的流程处理和数据处理,省去了烦琐冗长的通讯部分,提高了系统的开发效率。windows环境中的prodave具箱有prodave s7 (完全版) 和prodave s7mimi(简化版)两种。prodave s7 (完全版) 功能比较全面, 可按位或者字节读写p l c 中的输人过程映像区、输出过程映像区、位存储区、定时器、计数器、数据块等区域; prodave s7mimi(简化版), 则只能读写db中的字和字节。总之,prodave(过程数据交换)就是用于pc与s7系列plc之间数据连接通信的工具箱。它具有以下优点:(1)使用简单方便,编程人员不需要熟悉复杂的通信协议,通过调用prodave提供的动态链接库(dll)中的函数就可以实现通信。(2)上位机用通信函数直接读写plc中的数据,用户不用编写plc一侧的通信程序。(3)如果使用pcppi适配器或用于pc的通信处理器作通信接口,它们同时还可以兼作编程软件与plc的通信接口。2.3.2 prodave的运行与函数调用(1)prodave的工作原理prodave提供了大量基于windows操作系统的动态链接库(dll)函数8,供用户解决plc与pc之间数据交换和数据处理的问题,可以在c#编程环境中调用这些函数来建立或断开通信连接、读写cpu的系统存储器。prodave 6.0主要有两部分组成:windows 95/98/me 和 windows nt/2000/xp的驱动程序;编程语言的编译器。prodave 6.0提供了基于windows 95/98/nt/me/2000/xp的编译器,这些编译器是用vc+ 以32位动态链接库的格式创建的。开发人员用编程语言从plc读取数据或写入数据到plc,只需要编译器和它的一系列函数。(2)prodave的运行需求prodave 6.0可以和以下plc型号适配:s7-200,plc s7-300,s7-400,s7系列的m7和c7。软件要求:windows 95/98/me or windows nt v4.x/2000/xp.硬件要求:prodave mpi v6.0prodave mpi v6.0 mini西门子pg或at兼容的工业pc( 64mb 以上主存储器, mpi-isa接口和cp5511, cp5611, cp 5512或pc适配器)(3)prodave的安装prodave mpi 6.0是通过windows的安装程序(exe)进行安装的,它必须被windows下的文件管理器激活。在启动安装后可以修改安装路径,在指定路径后会显示下面的组件。prodave mpi v6.0 for windows 95/98/nt/me/2000/xpprodave dll和 demonstration program for windows95/98/nt/me/2000/xp. for step7 driver for windows 95/98/nt/me/2000/xp自动安装时会在控制面板产生一个在windows 95/98/me/nt/2000/xp下用到的接口驱动图标。我们用到的接口驱动程序可以下载,同时通过s7epatsx.exe (设置西门子s7系列pg/pc接口参数的工具)分配参数和系统链接。正确安装后,接口驱动程序会在windows 95/98/nt/me/2000/xp启动时自动激活。下面这些prodave 组件可以在prodave 6.0安装成功后的找到:siemensprodave_s7includew95_s7 .h = headerfile for prodave-dllkomfort .h = header file for enhanced dllw95_s7 .def = definition file for prodave-dllkomfort .def = definition file for enhanced dllsiemensprodave_s7libw95_s7 .lib = import library for prodave-dllkomfort .lib = import library for enhanced dllsiemensprodave_s7sample_vcdemo .exe = demonstration programdemo .dsp = visual c project filedemo .c = source code demonstration programicon1 .ico = 32 x 32 icondemo .rc = resource code demonstration programerror .dat = file with german error textsresource.h = header file demonstration programsiemensprodave_s7sample_vbvbdemo .vbp = visual basic project fileerror .dat = error text filevbdemo .exe = demonstration programvbdemo .bas = function declarations for vbvbdemo .frm = formsdbbuch_frm .frmerror .frm flag .frminfo .frmload .frmread_frm .frmstatus .frmts_frm .frmtsinfo_frm .frm write_frm .frm windowssystem32w95_s7 .dll = prodave dllkomfort .dll = enhanced dll(4)prodave函数的调用 prodave内函数的调用方式分为静态调用和动态调用。前者是操作系统在加载应用程序的同时加载程序所使用的dll;后者是应用程序在代码中加载使用的dll,并使用指针来调用函数,本文采用后者。prodave包含了很多功能函数,可以分为以下三种基本类型。1. 基本功能建立和断开连接 (load_tool, unload_tool)激活连接 (new_ss)从 plc输出区读字节数组 (a_field_read)向plc输出区写字节数组(a_field_write)从 plc输入区读字节数组 (e_field_read)从 plc字节块中读字节数组(d_field_read)向plc字节块中写字节数组(d_field_write)从plc的m区读标志位(m_field_read)向plc的m区写标志位(m_field_write)标志位状态测试 (mb_bittest)置位和复位标志位 (mb_setbit, mb_resetbit)从plc读定时器的字(t_field_read)从plc读计数器的字 (z_field_read)从plc读计数器的溢出字(z_field_write)从plc读混合数据 (mix_read)向plc写混合数据(mix_write)2. pg/pc中的数据处理功能错误文本输出有关错误号(error_message)s7的数据转换 (gp_to_float, float_to_gp)s5的数据转换 (kg_to_float, float_to_kg).布尔型到字节的转换和字节到布尔型转换 (boolean_byte,byte_boolean).3. 远程服务功能prodave函数可以使程序开发人员通过公共电信网络建立和s7系列plc的通信,从而使系统的远程服务功能得到扩展。要实现此功能,必须安装西门子的通信软件包,它可以通过电信网络连接到西门子s7系列plc。拨号到发射台 / 主站适配器(ts_dial)关闭远程服务连接 (ts_hang_up_dial)初始化系统调用(ts_set_ringindicator)从报警控制站读取信息 (ts_read_info)关闭通信连接 (ts_hang_up_ring)函数若成功调用并实现相应功能,则返回值为0;不成功则返回错误号。根据函数返回的错误代码,对照prodave 提供的错误代码表(见附录2),可以查出错误的原因。(5)prodave使用注意事项当用prodave开发程序时,以下几点必须注意,以防止数据丢失或系统崩溃。1. 每一个程序必须通过调用load_tool函数来实现初始化链接,然后才可以调用其他特定功能的函数。在程序结束时,必须使用unload_tool函数断开链接.2. 当从plc读取数据时,我们为数据开辟的存储空间必须足够大而能接收所有的传送数据,因为适配器不能再开辟出空间来检查数据溢出。3. 错误文本文件必须位于同一文件目录下,否则,编译器将不能读取错误信息。4.一定要设定与plc的通讯周期,比如500ms,则可以使用一个定时器,把触发时间设为500ms,在其触发事件中可以编写程序,把当前监控界面中用到的所有plc变量进行一次性读取或者写入,不要在程序的不同地方进行零散的读写,这样会影响读写数据的一致性,导致的结果就是,一个监控画面中用到的plc变量不是在一个plc扫描周期内读写的。2.3.3 prodave与plc连接prodave 连接s7型的plc进行数据交换,在硬件配置方面可以有多种方案供选择9,下图可以说明pc与plc的连接情况:图2-3连接结构框图fig.2-3 diagram of connection structure 根据pc机的卡槽类型,分别提供cp5611 pci卡、cp5511 pcmcia卡、cp5411 isa卡以及相应的编程电缆与plc连接。或者还可以通过pc适配器(即rs232转rs485适配器)从pc的com口接到plc上的mpi接口上,但是这时不可以用这种方式连s7-200的plc。2.4 visual studio简介visual studio 是微软公司推出的开发环境,visual studio 可以用来创windows 平台下的 windows 应用程序和网络应用程序,也可以用来创建网络服务、智能设备应用程序和 office 插件。visual studio.net是一套完整的开发工具,可用于生成web应用程序、windowns 应用程序以及xml web服务等。visual studio.net支持c#、vb,c+以及jscript等编程语言,并为这些语言提供了相同的集成开发环境,这样一个环境允许他们共享工具并有助于创建跨语言类的解决方案。visual studio.net为开发人员提供了诸多功能。 (1)代码编辑器 它实际上就是一个文本编辑器,在编辑器中额可以编写c#、vb,c+以及jscript代码,他可以识别这些编程语言的语法。在输入代码时,编辑器能够自动调整代码布局,如代码缩进,代码首位括号的匹配,提供色彩显示的关键字等,这将使代码具有更高的可读性。在输入代码时,编辑器将对输入的语句经行语法检查,把可能错误的代码加上下滑线。编辑器还提供了智能感知功能:在开始输入时,它会自动显示类、字段或方法名;在开始输入的方法参数时,它会显示可用的参数列表,以供开发人员快速选择。此外,还增加了一些功能,如自动换行、渐进式搜索、代码大纲显示、行号添加、快捷键等。 (2)代码的设计视图编辑器 开发人员可以可视化地放置用户界面和数据访问控件,在设计时即可对用户界面进行调整,以得到简介美观的界面。在放置控件时,vs.net自动在源文件中添加相应的代码。 (3)各类支持窗口 通过这些窗口可以查看和修改项目的属性。 (4)调试器 vs.net为它所支持的语言提供了一个集成的调试器。它具有新的统一界面,合并了原有的vc+和vb调试器功能,并在此基础上拓展出了新的功能。 (5)宏和自动化对象模型 vs.net的宏适合所有的 vs.net语言,可以在集成环境中记录和播放宏;通过自动化对象模型,可以以编程方式处理计划所有的集成开发环境的元素,包括解决方案、项目、代码编辑器、工具窗口及调试工具等。(6)部署工具vs.net的部署工具使用了一些新的windows安装程序技术,如安装回滚、应用程序发布等;图形化的部署编辑器使创建安装程序更加容易,开发人员可以完全控制文件的目标位置、注册表位置、安装界面等;通过部署工具可以创建组件的标准安装,使多个应用程序共享组件,且不会引起版本冲突。 (7) 应用程序模板 vs.net提供了若干应用程序模板,作为开发更复杂应用程序的基础。这些模板的重点在于应用程序要完成的任务,而不考虑所使用的开发语言。应用程序结构设计人员可以在这些模板的基础上设计符合特定要求的应用程序,同时降低开发程序的复杂性和成本。 (8)帮助文档 vs.net提供了一系列快速查找和查看帮助文档的方法,开发人员可以综合当前选定的项、执行操作以及编辑器的打开文档和文件类型,使用“动态帮助”来查看示例、主题和其他的信息列表;可以“搜索”和“索引”窗口,直接在集成开发环境中查找相关主题并在集成开发环境中或一个单独的窗口查看相关主题的帮助文档。(9)应用程序示例vs.net提供了两个应用程序示例duwamish和fitch and mather,这两个程序是专门为microsoft.net平台生成的多层分布式企业应用程序。他们的设计、开发和部署为开发人员利用.net平台的各种功能生成可靠的、可伸缩的和性能良好的应用程序提供深层次的分析。2.5 c#语言特点c#是一种安全的、稳定的、简单的,由c和c+衍生出来的面向对象的编程语言10。它在继承c和c+强大功能的同时去掉了一些它们的复杂特性(例如没有宏和模板,不允许多重继承)。c#综合了vb简单的可视化操作和c+的高运行效率,以其强大的操作能力、优雅的语法风格、创新的语言特性和便捷的面向组件编程的支持成为.net开发的首选语言。c#语言的主要优点大概可以归纳如下:1、语法简洁:c#取消了指针、也不定义繁琐的伪关键字;它使用有限地指令、修饰符合操作符,语法上几乎不存在任何冗余,整个语言结构十分清晰。初学者通常能够快速掌握c#基本特性,而c/c+程序员转入c#则几乎不会有什么障碍。2、完全面向对象:c#具有面向对象的语言所应有的基本特性:封装、继承和多态性。它禁止多继承,禁止各种全局方法、全局变量和常量。c#以类为基础来构建所有的类型,并通过命名空间对代码进行层次化的组织和管理。许多精巧的对象设计模式都在c#语言中得到了有效的应用。 3、目标软件的安全性:c#符合通用类型系统的类型安全性要求,并用clr所提供的代码访问安全特性,从而能够在程序中方便的配置安全等级和用户权限。此外,垃圾收集机制自动管理对象的生命周期,这使得开发人员无需再负担内存管理的任务,应用程序的可靠性进一步得到提高。4、版本管理技术:c#语言中内置了版本控制功能,并通过接口和继承来实现应用的可扩展性。应用程序的维护和升级更加易于管理。5、灵活性与兼容性:c#中允许使用非托管代码来与其他程序(包括com组件、win32api等)进行集成和交互。它还可以通过委托(delegate)来模拟指针的功能,通过接口来模拟多继承的实现。3.系统需求分析3.1控制系统整体功能概述控制系统主要由西门子plc和c#程序编写的plc监控系统来实现电热炉温度的自动控制,由铂电阻pt100采集现场温度,送给plc模拟量模块中,然后通过plc程序将实际温度和设定的温度进行对比并将结果经行pid控制算法运算,根据运算结果来控制输出,由plc来控制电源的通断,最终控制电热炉温度。(1)温度采集将铂电阻pt100放到电热炉中,采集到一个电压信号,然后通过变送器转化成标准电信号送入plc(模拟量模块)中,plc和windows通过调用prodaver软件包通信,送入c#程序中以后就可以转化成温度数值了。(2) pid算法的实现在控制系统中,控制器最常用的控制规律是pid控制。pid控制系统原理框图如图3.1所示。系统由pid控制器和被控对象组成。图3-1 pid控制系统原理框图fig3-1 principle figure of pid control systempid控制器是一种线性控制器,他对偏差信号进行比例、积分、微分运算后,形成一种控制规律,它可以实现对被控对象快、准、稳的的控制。简单说来,pid控制器各校正环节的作用如下:比例环节:成比例地反映控制系统的偏差信号error(t),偏差一旦产生,控制器立即产生控制作用,以减小偏差。积分环节:主要用于消除静差,提高系统的无差度。积分作用的强尽弱取决于积分时间常数ti,ti越大,积分作用越弱,反之则越强。微分环节:反偏差信号的变化趋势(变化速率),并能在偏差信号变得太大之前,在系统中引入一个有效的早期修正信号,从而加快系统的动作速度,减少调节时间。在本文中,我们通过plc的pid指令编程来完成pid(比例,积分和微分)计算。要执行该指令,逻辑堆栈顶(tos)必须为on状态,以能使pid计算。指令中table是pid控制环的起始地址,loop是控制环号(常数,07)。控制环表中存有以下9个用以控制和监测的参数:过程变量的现行值和先前值,设置点,输出,增益,采样时间,积分时间(复位)微分时间(速率),和积分。plc程序把pc机写入plc缓存区的数据经格式转换后写入到pid的控制环表中,为使pid计算是以所要求的采样时间进行,应在定时中断执行中断服务程序或在由定时器控制的主程序中完成,其中定时时间必须填入环表中,以作为pid指令的一个输入参数。 (3)输出控制pid算法的输出是一个百分量,由于电加热器信号只能为on或off,不能接受模拟量调节,故采用“占空比”的调节方法11。pid指令运算得到一个0-1的实数,把该实数按比例换算成一个0-100的的整数,把该整数作为一个范围为0-10秒的时间t。设计一个周期10秒的脉冲,脉冲宽度为t,把该脉冲加给控制电热器的固态继电器,最终控制电热炉的温度。3.2上位机监控系统功能概述上位机通过通信电缆读取plc存储器内的当前温度等参数并在人机界面显示,同时可以将人机界面的pid,温度设定值等参数写入plc存储器内,实现对plc内数据的实时监控和控制。该监控系统可以灵活的进行系统的各种参数读取与设定,并可以实现画面显示、数据存储、数据管理、用户管理,报警功能、打印管理、系统优化等功能。它为操作者提供了图文并茂、形象直观的操作环境,实现了简单、便捷的上位机监控系统。实时数据库温度显示实时曲线用户管理报警管理用户操作(pid及温度参数设置等)历史数据库数据报表历史曲线报警数据库图3-2 上位机监控系统功能图fig.3-2the function diagram of pc monitoring system监控功能:对电热炉的温度等参数

温馨提示

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

最新文档

评论

0/150

提交评论