软件课程设计报告

上传人:cn****1 文档编号:495539723 上传时间:2022-08-07 格式:DOCX 页数:29 大小:144.17KB
返回 下载 相关 举报
软件课程设计报告_第1页
第1页 / 共29页
软件课程设计报告_第2页
第2页 / 共29页
软件课程设计报告_第3页
第3页 / 共29页
软件课程设计报告_第4页
第4页 / 共29页
软件课程设计报告_第5页
第5页 / 共29页
点击查看更多>>
资源描述

《软件课程设计报告》由会员分享,可在线阅读,更多相关《软件课程设计报告(29页珍藏版)》请在金锄头文库上搜索。

1、北京科技大学课程设计(软件设计)报告班级:姓名:学号:指导教师:日期:年 月 日目录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使用说明145.2程序说明156学习收获271设计内容OPC(OLE for Pr

2、ocess Control)又称为过程控制的对象连接与嵌入技术。它是它的出现 为基于Windows的应用程序和现场过程控制应用建立了桥梁。在过去,为了存取现场 设备的数据信息,每一个应用软件开发商都需要编写专用的接口函数。由于现场设备的 种类繁多,且产品的不断升级,往往给用户和软件开发商带来了巨大的工作负担。通常 这样也不能满足工作的实际需要,系统集成商和开发商急切需要一种具有高效性、可靠 性、开放性、可互操作性的即插即用的设备驱动程序。在这种情况下,OPC标准应运而 生。OPC标准以微软公司的OLE技术为基础,它的制定是通过提供一套标准的OLE/COM 接口完成的,在OPC技术中使用的是OL

3、E 2技术,OLE标准允许多台微机之间交换文档、 图形等对象。OPC的出现大大缩短了软件开发的时间。本次课程设计就是要求使用VB设计一个 简单的客户端程序,这个程序能读取本机服务器上面的数据,并以直观的柱形图显示出 来。另外,还应该添加一些别的功能。2应用程序总体分析与设计为了能连接服务器,首先在PC机运行模拟的服务器。然后,在VB6.0环境下,创 建各种用于显示数据和控制的控件。给每一个控件添加事件响应函数。程序运行的流程 如下:3应用程序各功能模块分析与设计3.1连接服务器首先使用new关键字创建一个OPC对象,然后调用Connect方法连接到服务器。 然后书写连接按钮的响应函数。Priv

4、ate Sub BtnConnnect_Click()调用Connect子程序Call Connect(OPCJ.SampleServer.1)End SubSub Connect(strProgID As String, Optional strNode As String)If objServer Is Nothing Then建立一个OPC服务器对象Set objServer = New OPCServerEnd IfIf objServer.ServerState = OPCDisconnected Then连接OPC服务器objServer.Connect strProgID, st

5、rNodeEnd IfIf objGroups Is Nothing Then建立一个OPC组集合Set objGroups = objServer.OPCGroupsEnd IfIf objTestGrp Is Nothing Then添加一个OPC组Set objTestGrp = objGroups.Add(TestGrp)End IfEnd Sub3.2加项对OPC服务器进行访问前,必须先在OPC组里添加要访问的OPC标签。这里添加 OPC标签的标识符和数目是固定的,但是实际的OPC应用程序往往要按照用户的指定或 读取组态文件取得和处理需要添加OPC标签。Sub AddItem()Di

6、m strItemIDs(2) As StringDim lClientHandles(2) As LongDim lErrors() As LongDim I As IntegerIf objTestGrp Is Nothing ThenExit SubEnd IfIf Not objItems Is Nothing ThenIf objItems.Count 0 ThenExit SubEnd IfEnd If设置组活动状态objTestGrp.IsActive = True取消组非同期通知objTestGrp.IsSubscribed = False建立OPC项集合Set objItem

7、s = objTestGrp.OPCItems生成标签的项标识符strItemIDs (1)=反应罐温度.ValuestrItemIDs (2)=反应罐液位.ValuelClientHandles(1) = 1lClientHandles(2) = 2添加OPC项Call objItems.AddItems(2, strItemIDs, _ lClientHandles, lServerHandles, lErrors)End SubPrivate Sub btnAddItem_Click()调用AddItem子程序Call AddItemIf Not objTestGrp Is Nothin

8、g ThenIf objTestGrp.OPCItems.Count 0 Then启动定时器TmUpdate.Enabled = TrueElseEnd IfEnd IfEnd Sub3.3读取数据为了实时显示数据,还要设置一个定时中断类型的服务函数,然后没间隔一段时间 去向服务器读取一下数据。定时器会在加载项的时候启动。Private Sub tmUpdate_Timer()Dim vtItemValues() As VariantDim lErrors() As LongDim strBuf As StringDim nWidth As IntegerDim nHeight As Inte

9、gerDim nDrawHeight As IntegerDim sglScale As SingleDim I As Integer同期读取SyncRead OPCCache, vtItemValues, lErrors棒图的表示For I = 1 To 4数据的格式化If PauseFlag(I) = 0 ThenstrBuf = Format(vtItemValues(I), #.000)表示数据字符串lbBar(I).Caption = strBuf计算棒的宽和高nWidth = PicBar(I).ScaleWidthnHeight = PicBar(I).ScaleHeightsg

10、lScale = vtItemValues(I) / 100nDrawHeight = CInt(nHeight * sglScale)清除现棒图PicBar(I).Cls绘制棒图If vtItemValues(I) 90 Then PicBar(I).Line (0, nHeight - nDrawHeight)-(nWidth, nHeight), RGB(255, 0, 0), BFElsePicBar(I).Line (0, nHeight - nDrawHeight)-(nWidth, nHeight), RGB(0, 255, 0), BFEnd IfPicBar(I).Line

11、(0, nHeight - nDrawHeight)-(nWidth, nHeight), RGB(vtItemValues(I) * 2.55, 255 - vtItemValues(I) * 2.55, 0), BFEnd IfNextIf FileFlag = 1 ThenPrint #FileNo, Date; Time, Str(vtItemValues(1), Str(vtItemValues(1), Str(vtItemValues(1), Str(vtItemValues(1)End IfEnd Sub3.4显示与隐藏为了方便显示与隐藏其中某些项,这里给一个柱形图配置一个复选框

12、,当复选框选 中的时候,该项目便隐藏起来。取消复选框,该项目又会显示出来。这样子的功能对于 只需要观察某些数据的时候,很是方便。具体实现方式如下:Private Sub Check1_Click()If Check1.Value = 1 ThenPicBar(1).Visible = FalselbBar(1).Visible = FalseLabel1.Visible = FalseElsePicBar(1).Visible = TruelbBar(1).Visible = TrueLabel1.Visible = TrueEnd IfEnd SubPrivate Sub Check2_Cl

13、ick()If Check2.Value = 1 ThenPicBar(2).Visible = FalselbBar(2).Visible = FalseLabel2.Visible = FalseElsePicBar(2).Visible = TruelbBar(2).Visible = TrueLabel2.Visible = TrueEnd IfEnd SubPrivate Sub Check3_Click()If Check3.Value = 1 ThenPicBar(3).Visible = FalselbBar(3).Visible = FalseLabel3.Visible =

14、 FalseElsePicBar(3).Visible = TruelbBar(3).Visible = TrueLabel3.Visible = TrueEnd IfEnd SubPrivate Sub Check4_Click()If Check4.Value = 1 ThenPicBar(4).Visible = FalselbBar(4).Visible = FalseLabel4.Visible = FalseElsePicBar(4).Visible = TruelbBar(4).Visible = TrueLabel4.Visible = TrueEnd IfEnd Sub3.5暂停与继续在实际生产环境中,遇到一些特殊情况需要暂停以观察数据,以防止被后面新的数 据刷新。所以四个柱形图又都配置了一个暂停复选框,当复选框选中的时候,柱形图暂 停更新,当取消复选框,柱形图继续更新。实现代码如下:Private Sub Check5_Click()If Check5.Value = 1 ThenPauseFlag (4) = 1ElsePauseFlag (4) = 0End IfEnd SubPrivate Sub Check6_Click()If Check6.Value = 1 ThenPauseFlag(1) = 1ElsePauseFlag(1) =

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号