北京科技大学课程设计(软件设计)报告班级:姓名:学号:指导教师:日期:年月日北京科技大学自动化学院课程设计(软件设计)报告i目录1设计内容...............................................................................................................................12应用程序总体分析与设计....................................................................................................13应用程序各功能模块分析与设计........................................................................................23.1连接服务器................................................................................................................23.2加项............................................................................................................................33.3读取数据....................................................................................................................53.4显示与隐藏................................................................................................................73.5暂停与继续................................................................................................................93.6报表与记录..............................................................................................................104程序测试..............................................................................................................................114.1测试过程...................................................................................................................114.1.1连接测试.......................................................................................................114.1.2显示与隐藏测试...........................................................................................114.1.3暂停按钮.......................................................................................................124.1.4数据保存.......................................................................................................124.2测试结果...................................................................................................................124.2.1连接结果.......................................................................................................124.2.2显示与隐藏结果...........................................................................................134.2.3暂停显示.......................................................................................................134.2.4数据保存结果...............................................................................................145程序文档..............................................................................................................................145.1使用说明...................................................................................................................14北京科技大学自动化学院课程设计(软件设计)报告ii5.2程序说明...................................................................................................................156学习收获.............................................................................................................................27北京科技大学自动化学院课程设计(软件设计)报告11设计内容OPC(OLEforProcessControl)又称为过程控制的对象连接与嵌入技术。它是它的出现为基于Windows的应用程序和现场过程控制应用建立了桥梁。在过去,为了存取现场设备的数据信息,每一个应用软件开发商都需要编写专用的接口函数。由于现场设备的种类繁多,且产品的不断升级,往往给用户和软件开发商带来了巨大的工作负担。通常这样也不能满足工作的实际需要,系统集成商和开发商急切需要一种具有高效性、可靠性、开放性、可互操作性的即插即用的设备驱动程序。在这种情况下,OPC标准应运而生。OPC标准以微软公司的OLE技术为基础,它的制定是通过提供一套标准的OLE/COM接口完成的,在OPC技术中使用的是OLE2技术,OLE标准允许多台微机之间交换文档、图形等对象。OPC的出现大大缩短了软件开发的时间。本次课程设计就是要求使用VB设计一个简单的客户端程序,这个程序能读取本机服务器上面的数据,并以直观的柱形图显示出来。另外,还应该添加一些别的功能。2应用程序总体分析与设计为了能连接服务器,首先在PC机运行模拟的服务器。然后,在VB6.0环境下,创建各种用于显示数据和控制的控件。给每一个控件添加事件响应函数。程序运行的流程如下:开始连接服务器添加Item读取数据显示与保存退出北京科技大学自动化学院课程设计(软件设计)报告23应用程序各功能模块分析与设计3.1连接服务器首先使用new关键字创建一个OPC对象,然后调用Connect方法连接到服务器。然后书写连接按钮的响应函数。PrivateSubBtnConnnect_Click()'调用Connect子程序CallConnect(OPCJ.SampleServer.1)EndSubSubConnect(strProgIDAsString,OptionalstrNodeAsString)IfobjServerIsNothingThen'建立一个OPC服务器对象SetobjServer=NewOPCServerEndIfIfobjServer.ServerState=OPCDisconnectedThen'连接OPC服务器objServer.ConnectstrProgID,strNodeEndIfIfobjGroupsIsNothingThen'建立一个OPC组集合SetobjGroups=objServer.OPCGroupsEndIfIfobjTestGrpIsNothingThen北京科技大学自动化学院课程设计(软件设计)报告3'添加一个OPC组SetobjTestGrp=objGroups.Add(TestGrp)EndIfEndSub3.2加项对OPC服务器进行访问前,必须先在OPC组里添加要访问的OPC标签。这里添加OPC标签的标识符和数目是固定的,但是实际的OPC应用程序往往要按照用户的指定或读取组态文件取得和处理需要添加OPC标签。SubAddItem()DimstrItemIDs(2)AsStringDimlClientHandles(2)AsLongDimlErrors()AsLongDimIAsIntegerIfobjTestGrpIsNothingThenExitSubEndIfIfNotobjItemsIsNothingThenIfobjItems.Count0ThenExitSubEndIfEndIf'设置组活动状态objTestGrp.IsActive=True北京科技大学自动化学院课程设计(软件设计)报告4'取消组非同期通知objTestGrp.IsSubscribed=False'建立OPC项集合SetobjItems=objTestGrp.OPCItems'生成标签的项标识符strItemIDs(1)=反应罐温度.ValuestrItemIDs(2)=反应罐液位.ValuelClientHandles(1)=1lClientHandles(2)=2'添加OPC项CallobjItems.AddItems(2,strItemIDs,_lClientHandles,lServerHandles,lErrors)EndSubPrivateSubbtnAddItem_Click()'调用AddItem子程序CallAddItemIfNotobjTestGrpIsNothingThenIfobjTestGrp.OPCItems.Count0Then'启动定时器TmUpdate.Enabled=TrueElse北京科技大学自动化学院课程设计(软件设计)报告5EndIfEndIfEndSub3.3读取数据为了实时显示数据,还要设置一个定时中断类型的服务函数,然后没间隔一段时间去向服务器读取一下数据。定时器会在加载项的时候启动。PrivateSubtmUpdate_Timer()DimvtIt