软件课程设计报告

上传人:夏** 文档编号:564854427 上传时间:2023-05-17 格式:DOC 页数:29 大小:304.50KB
返回 下载 相关 举报
软件课程设计报告_第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

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

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

4、,然后调用Connect方法连接到服务器。然后书写连接按钮的响应函数。Private 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 OPCServer End If If objServer.ServerState = OPCDisconnect

5、ed Then 连接OPC服务器 objServer.Connect strProgID, strNode End If If objGroups Is Nothing Then 建立一个OPC组集合 Set objGroups = objServer.OPCGroups End If If objTestGrp Is Nothing Then 添加一个OPC组 Set objTestGrp = objGroups.Add(TestGrp) End IfEnd Sub3.2 加项对OPC服务器进行访问前,必须先在OPC组里添加要访问的OPC标签。这里添加OPC标签的标识符和数目是固定的,但是实

6、际的OPC应用程序往往要按照用户的指定或读取组态文件取得和处理需要添加OPC标签。Sub AddItem() Dim strItemIDs(2) As String Dim lClientHandles(2) As Long Dim lErrors() As Long Dim I As Integer If objTestGrp Is Nothing Then Exit Sub End If If Not objItems Is Nothing Then If objItems.Count 0 Then Exit Sub End If End If 设置组活动状态 objTestGrp.IsA

7、ctive = True 取消组非同期通知 objTestGrp.IsSubscribed = False 建立OPC项集合 Set objItems = objTestGrp.OPCItems 生成标签的项标识符 strItemIDs(1) = 反应罐温度.Value strItemIDs(2) = 反应罐液位.Value lClientHandles(1) = 1 lClientHandles(2) = 2 添加OPC项 Call objItems.AddItems(2, strItemIDs, _ lClientHandles, lServerHandles, lErrors)End S

8、ubPrivate Sub btnAddItem_Click() 调用AddItem子程序 Call AddItem If Not objTestGrp Is Nothing Then If objTestGrp.OPCItems.Count 0 Then 启动定时器 TmUpdate.Enabled = True Else End If End If End Sub3.3 读取数据为了实时显示数据,还要设置一个定时中断类型的服务函数,然后没间隔一段时间去向服务器读取一下数据。定时器会在加载项的时候启动。Private Sub tmUpdate_Timer() Dim vtItemValues

9、() As Variant Dim lErrors() As Long Dim strBuf As String Dim nWidth As Integer Dim nHeight As Integer Dim nDrawHeight As Integer Dim sglScale As Single Dim I As Integer 同期读取 SyncRead OPCCache, vtItemValues, lErrors 棒图的表示 For I = 1 To 4 数据的格式化 If PauseFlag(I) = 0 Then strBuf = Format(vtItemValues(I),

10、 #.000) 表示数据字符串 lbBar(I).Caption = strBuf 计算棒的宽和高 nWidth = PicBar(I).ScaleWidth nHeight = PicBar(I).ScaleHeight sglScale = vtItemValues(I) / 100 nDrawHeight = CInt(nHeight * sglScale) 清除现棒图 PicBar(I).Cls 绘制棒图 If vtItemValues(I) 90 Then PicBar(I).Line (0, nHeight - nDrawHeight)-(nWidth, nHeight), RGB

11、(255, 0, 0), BF Else PicBar(I).Line (0, nHeight - nDrawHeight)-(nWidth, nHeight), RGB(0, 255, 0), BF End If PicBar(I).Line (0, nHeight - nDrawHeight)-(nWidth, nHeight), RGB(vtItemValues(I) * 2.55, 255 - vtItemValues(I) * 2.55, 0), BF End If Next If FileFlag = 1 Then Print #FileNo, Date; Time, Str(vt

12、ItemValues(1), Str(vtItemValues(1), Str(vtItemValues(1), Str(vtItemValues(1) End If End Sub3.4 显示与隐藏为了方便显示与隐藏其中某些项,这里给一个柱形图配置一个复选框,当复选框选中的时候,该项目便隐藏起来。取消复选框,该项目又会显示出来。这样子的功能对于只需要观察某些数据的时候,很是方便。具体实现方式如下:Private Sub Check1_Click() If Check1.Value = 1 Then PicBar(1).Visible = False lbBar(1).Visible = False Label1.Visible = False Else PicBar(1).Visible = True lbBar(1).Visible = True Label1.Visible = True End IfEnd SubPrivate Sub Check2_Click() If Check2.Value = 1 Then PicBar(2).Visible = False lbBar(2).Visible = False

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

当前位置:首页 > 建筑/环境 > 施工组织

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