基于OPC软件设计北京科技大学

上传人:油条 文档编号:113632601 上传时间:2019-11-09 格式:DOC 页数:20 大小:185.50KB
返回 下载 相关 举报
基于OPC软件设计北京科技大学_第1页
第1页 / 共20页
基于OPC软件设计北京科技大学_第2页
第2页 / 共20页
基于OPC软件设计北京科技大学_第3页
第3页 / 共20页
基于OPC软件设计北京科技大学_第4页
第4页 / 共20页
基于OPC软件设计北京科技大学_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《基于OPC软件设计北京科技大学》由会员分享,可在线阅读,更多相关《基于OPC软件设计北京科技大学(20页珍藏版)》请在金锄头文库上搜索。

1、北京科技大学课程设计(软件设计)报告 班 级: 姓 名: 子 同组人: 学 号: 指导教师: 日 期: 2013 年 10 月 26 日北京科技大学自动化学院 课程设计(软件设计)报告目 录1设计内容12应用程序总体分析与设计13应用程序各功能模块分析与设计13.1连接程序:与服务器相连13.2 加项程序:用于加载数据23.3 退出程序:程序退出23.4 窗体卸载事件处理:断开连接33.5 定时器定时时间处理:数据读取,报警,实时时间显示33.6 SyncRead子程序54程序测试74.1测试过程:两项均正常74.2测试结果:两项均不正常74.3测试结果:一项正常,一项不正常75程序文档85.

2、1使用说明85.2 程序说明86.实验总结和心得171设计内容制作一个实际的OPC访问程序,能够实现数据的读取,并能在棒图上显示,实现意外情况的报警,显示当前日期、时间。2应用程序总体分析与设计要实现设计内容,必须有连接,加项,实时读取,报警等子程序,程序总体流程图如下:3应用程序各功能模块分析与设计3.1连接程序:与服务器相连Private Sub Command1_Click() 调用Connect子程序 Call Connect(OPCJ.SampleServer.1) Label1.Caption = 与服务器连接成功End Sub3.2 加项程序:用于加载数据Private Sub

3、Command2_Click() 调用AddItem子程序 Call AddItem If Not objTestGrp Is Nothing Then If objTestGrp.OPCItems.Count 0 Then 启动定时器 Timer1.Enabled = True Else End If End IfEnd Sub3.3 退出程序:程序退出Private Sub Command3_Click() 卸载窗体 Unload Form1End Sub3.4 窗体卸载事件处理:断开连接 Private Sub Form_Unload(Cancel As Integer) 调用Disco

4、nnect子程序Call DisconnectEnd Sub3.5 定时器定时时间处理:数据读取,报警,实时时间显示Private Sub Timer1_Timer()Dim vtItemValues() 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 Dim a As Integer Dim b As Integ

5、er 同期读取 SyncRead OPCCache, vtItemValues, lErrors 棒图的表示 For I = 1 To 2 数据的格式化 strBuf = Format(vtItemValues(I), #.000) 表示数据字符串 lbBar(I).Caption = strBuf 计算棒的宽和高 nWidth = Picture1(I).ScaleWidth nHeight = Picture1(I).ScaleHeight sglScale = vtItemValues(I) / 700 nDrawHeight = CInt(nHeight * sglScale) 清除现

6、棒图 Picture1(I).Cls 绘制棒图 Picture1(I).Line (0, nHeight - nDrawHeight)-(nWidth, nHeight), _ RGB(255, 0, 0), BFNext 指示警戒值,警戒值以上改变显示颜色If lbBar(1).Caption 50 Or lbBar(2).Caption 80 Then Label1.Caption = 出现异常!Else: Label1.Caption = 正在观测! End If If lbBar(1).Caption 50 Then Text1.Text = 温度过高! Picture1(1).Lin

7、e (0, nHeight - nDrawHeight)-(nWidth, nHeight), _ RGB(255, 0, 0), BF End If If lbBar(1).Caption 80 ThenText2.Text = 液面过高!Picture1(2).Line (0, nHeight - nDrawHeight)-(nWidth, nHeight), _ RGB(255, 0, 0), BFEnd IfIf lbBar(2).Caption 0 Then 同期读取 objTestGrp.SyncRead nSource, 2, lServerHandles, _ vtItemVa

8、lues, lErrorsEnd IfEnd Sub4程序测试4.1测试过程:两项均正常4.2测试结果:两项均不正常4.3测试结果:一项正常,一项不正常5程序文档5.1使用说明 程序运行时,先按下连接按钮,再按下加项按钮,系统就可以观测了,如果想退出的话,按下退出按钮即可5.2 程序说明Sub Connect(strProgID As String, Optional strNode As String) If objServer Is Nothing Then 建立一个OPC服务器对象 Set objServer = New OPCServer End If If objServer.Ser

9、verState = OPCDisconnected 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 If End SubSub AddItem() Dim strItemIDs(2) As Stri

10、ng 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.IsActive = True 取消组非同期通知 objTestGrp.IsSubscribed = False 建立OPC项集合 Set objItems = objTestGrp.OPCItems 生成标签的项标识符 strItemIDs(1) = TAG1.Value strItemIDs(2) = TAG2.Value lClientHandles(1) = 1 lClientHandles(2) = 2 添加OPC项 Call objItems.AddItems(2, strItemIDs, _ lClientHandles, lServerHandles, lEr

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

当前位置:首页 > 中学教育 > 其它中学文档

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