1、北京科技大学课程设计(软件设计) 报告班 级:姓 名:学 号:同组同学:指导教师:迎Jitl 期:2014 年 11 月 13 日RctixeiasMOieckI.Varkje-OThefl If col 201 Then For u = 1 To 2 Fer J = col To col Xsj V = P- vtl!timVtfuM(i| NM1S Eftdir 旧EftdlfIf pl 2 Then ForwlTo2 Pkturel.PSrt pt|l. wl. pv(L *) Fcrjs2TocolRctixel Une a,U 】 wt. WU 1, wIX QBCo*or( - 2
2、)MertjWertwEMf“四*或济及FkUrGQ*Ydth - 2FUkrS.Lix |0. ISO) (200, 15 150 Or gr(2| Upbon W) Then Ubcn.QpOoc :由现计肾?” CiteU”7.3H,on 正在我第L (nd If - Tptwi 150Then Teitt.Tettx-iaitilW! picBytlXUnc (0.nOQ*M&fihtl (nV/kfth, nH6sr|. _RGZSS.O.OKBF ndir ribBidl|.CWoi 150 Then nu12.Iox0&或甲勒! pc&r|nS5dth, BgaJ55.8BfEn
3、d IfW lb8*Qm 6M Th.n TertLTt-MifiidM!- pcor(2)Xic(a nWeight - nDrtwHc|nWdth. nHeMX -Ind IfH bBar(2 Cation 3b SvnSeMnSowcc As integer. 0/Rc* vtltcmVaftjes(| As Vjnont. _ B&f Krws| Ai UxifilDim iSefverHmdlcTcHZ) As lon OmjAsreb If objTertGrp B Hcrthrc ThenM$g IFKIf objTertGp OKltfw$,Coir0 Then , MWit%
4、objTeGfp.SvxRcS nSource. 2Z IServwHarKfcs, , vtltcmVafkjev IFfrorsEM IfEnd SubPnvite Swb Form.lojdO tnMJpdJte.Enabted 二 Fate tnMJpdjte. Interval = 100dataUpdMc tnjWed =卬* dKWpdJte lntervl - 1000制第化r:何殳或 col 1 pl-0,调用的数.显示Wldirtel的归化绕林瑟黑Picwrcl 次次 2 75OH2CO. 6LfdSub即II 总段叼网f诵欧 8b drtell)labellCjrtS =
5、 Trtm|Sir(VeartDXe)| *f| - Tnm|Str(Month|Dxe)| *HM TnmlStrdXjrtOxelH IF ltM SHE 理A N f: Trr国HHoLdTg加 TrnSlr|Mnuti|Tm|) “分 TtwSg Wb 保存数飘事件处理 Pnvate Sub Btne.atckl)VpBS.Ezbl = FakedMWpBS.Ezbl 二 F必CoesDR。】 QiakT 彳口 好存力,CorrwerDukl DnmonDiogl.Ftlcf4Ytt 0 ThanOpan GxnmonDiafogl.FitefiMrrt For Output Ai V
6、I PHM 91. AJUkdoTtot Ooiftlll1.1 。口 珀 TrueEnd H EM Sub Pnvate Sub daUUcMlote.Timefl)If Srflag Then,保灯系完毕方去除M!东的皎“daulnfo.Taat - YUf|Now|& Monlh(No*OI&Oy(Mow(| ft-HoufuCKow(| fi&尔皿iNoMI& 氏咱况黑&-3R0il他-& dsUTempRI & Oir|lJ) & CMW|= FalieElsed址而foTert 二 dXilnto.Tew& Yr(Mow(n& Momh|Na|)& 8,必加11 &” & HouN
7、KowG) ftTfi Mk*xXowm8 :&UoMhtow(D&a”反 IR*&慢:-adauTtwpdja*&氏响雄笊口,* & crr(13| & Chr10)(nd ifEnd Sub6总结1.2 问题与解决(1. Picture控件显示实时曲线时注意编程过杆下标不妾越界.不仅如此,对部图组建立依然 需要注fit:变量的定义中明,文本框的设巴必件有时候报错,经过查找及时得到解决.(3)某些编译时出现错误如:发现二义性的名称,格式不匹配等.可以在线调试.1.3 感想与致谢本次软件课程设计让我们进一步通过实际悚作熟卷对OPC的各种概念,井川掌握OPC客户端 的编写方法,由于设计由敕仲已经
8、提供了深设范例,经过对所提供的范例进展分析和研究,杳我人 朵的文赋,我们对课程设计的步碟和近点都有更好的/解,在敦用所始的海程序的根底上进展改 逊,这使我们对OPC客户端的编程有了一定的/解,在实脸过程中我们偷次遇到过联用维.但是我们努力去图书馆努力找找资料,并1L在教师和 同学的帮助都顺利解决了唯S!.在此/示哀谢!7参考文献11 OPC女的指导的2工业以太网通讯而介利用V8编程次现实时数掂曲娅绘制 关雉螃200S1041利用VB6。绘制实时数据曲畿 刘杷2010年第7期VB根底教科及煽片实例详解名战为试f w n1设计内容:1.1 实验目的:1.2 次脸内容:2应用程序总体分析与设计:2.
9、1 工程建立:2.1.1 世立,个 Visual Ba&c 工程:2.2 OPC 建立2.2.1 设置OPC包装DLL2.2.2 建立一个OPC对望3应用胆序各功能模块分析与设计:3.1 界血设计23.2 效药密的断开与修接21.1 .1连接OPC效劳器和建立OPC.2322添加OPC标整33.23 新开效劳器333数抠选取。显示:3.3.1 异状图显示:3.3.2 文木框Sd示M VCmr2f “mr.耳 CmnI “4mD.“ jto WtacH lrwcKM信 j st Mmr M VCmr2f “mr.耳 CmnI “4mD.“ jMCCskl图2.3 OPC对象变lit的声明其中局部
10、变其声明意义见衣所示.表2.1OPC对象受U的声明变fit名说明objServerOPCSerwr对象,用于连接OPC objGroupsOPCGroups对敛,用于添加OPC组的OPC坦奥合objTestGrpOPCGroup对象.演示用的OPC俎.objltemsOPCttems对象.用尸诲加OPC标签的OPC标皎集合.IServerHandlesflK整型的数纲.用于保存OPC怀签的效劳翳句柄.3应用程序各功能模块分析与设计3.1 界面设计作而LabeH实HUl城电除Jnirtini-M;耳Libel 3口宣一图3.1界面效果图窗体中所使用的控件种类如表3.1所示,表3.1 FmMain
11、的控件拴件只称商体(Form)FmMain命令按钮(Com mand Button)BtnConnect命令按 fll(CommandButton)BtnAddltem命令按钮(CommandBWon)BtnQuit命令按钮(CommjndButton)BtnSave命令按 皿 Com mand Button)BtnStop命令按钮(Com mand Button)Btndraw定时器(Timer)tmUpdate定时据(Timer)dataUpdate对话框(CommonDialog 一图愫(PictureBox)CommonDlalogl|MBar(作为数组使用.从左开场12)k-)文本根
12、(Text Box)IbBar(作为为出使川.从左开如12) datalnfo图像(Picture)Picture1|效劳81的断开与链接3.1.1 连接OPC效芳器和建立OPC组这甲用“NEW”关键词生成OPC饮劳器的对量,燃后调用OPC效劳器对量的“Connect方法. 和OPC效劳器连接.Connect子程序如下,*拴 OPC 效和HkOPCSHSub CocncaistrProglD Aj Strlr. Opc8y 川网e As StryI objSever i *Xbrg H ,建中个BC戒为修射能Set 2便但-h*ew OPCSsaCndrf ob0vfr 5rrvr$Ut9 -
13、 OKDtKomvct9d Thun歧族OK我分*objSevef.CCcnect JtrProcJO, sVNocSe (nd* objGroKft h Nolhir Ihun, 个3CiM9介Set obWoups =那么 Server OPCG row (ndrf“ objTeitGfp K Noihif ThenSet objTeitGrp = obfGcoupi A4dneGrp| fndiffnd Sub322添加OPC标签对OPC放劳落迸展访问前,必须先在OPC扭里添加要访问的OPC标签.Additem f程序如卜.:ii opc ItS SubAA3lt 0 Theo 858(
14、nd If tndtf薇If Hl活动代台 ofciTdtGrpljAttMe * True ,取向址事同用5例 cb(Te$trp l$ub(nbed ,火玳立0秋甲乐会Set ofeiltcms 二 oTwWkp.OPCItcms ,生成除矢的国财做符 lor ! 1 To 2UrltvmlDMO a VWICUMH4ndbt|0-lNk1 ,才Eopc项 3。AEs.Addttem依 sVttemKJs.QcEHjngJServe 阳皿-Erron)End Sub32.3断开效劳器连接着OPC效芳戕的OPC应用科序.在退出前必须断开和OPC效劳处的连接.因为OPC效劳 落并不知道OPC应
15、用程序的退出.如果不先断开连接.第么OPC效劳器使用的计算机资源就不衩 释放.如果这样的问题反史发生,久而久之连续运转的自动控制系统可能会使计尊机资源斯渐枯 竭从而发生产里问题.Disconnect子程序如下:SjbtXsconntctl)Oe lrrxxs| As lc”If Nc* 询 Mm, Is “o5” ThenHcbjltunnCount Then夫依okmcbilt0miAdmcr 2. ISar0rHandk. ErrariEndtfS4rt 闷 sms MochM Erdtf If *x ctojTcitGfp It NotNru TF.cn , 除 8C*I gGwp$ 3
16、nom -TEGrp, Set objTwKxp hWbrg fMlfIf htoC cbfGroupx h NotNn Thn St gGreups - Mothng MlfIf htot cbjSafWf 任 NothM Th-H cbjSfwr SerwrSUS o 0 心3d ThK,剧升ON改为K cbjServr.DiKonrect Ind*Set observer r Nothirxg IP If1MM3.3效据读取与显示客户端使用2个定时器TmUpdate和dataUpdate,定时为1S.在TmUpdate事件中调用同步便 取数据函SiSyncRead,每隔IS读取效为器湘的
17、数据,同时对帏住的显示进殿刷新,在定时渊 dataUpdate4件中诙取系统时间并不断购新TertBox的内容.显小当前的时间和数楙,棒状图显示为了是显示更加人性化.对不同茬国的数值显示采用了不同的颜色.当数值过低或者过离时分 别显示深荒色和红色以示警告.中间值显示绿色和横M色.程序代码加卜所示:SrncRQM OPCOcbe. tRfi*Valow Errors惮阳的我小orI Cpl6。火收 f计灯修的支”令nWdth -pkBr|0 $C4leWcthnKfifit - pc8*0) $cWrHi|ht&Sc(修-WIeV4 刈 / 18nir*H眇I * tSck)1虫除现冷用pkBM
18、|l|.Cb,绘M临网 vmemVXuHn (HoMV4kMl ThwpicBafOUn0 (0. nHvht n0QMsBM|Mid1h. RG8(0. Q 25S BF 1”vtltemVduMl| tHoMVjj2 ThfrftpkBM|l.Un |0, nHiC YHc4dV皿6 / 100 油州htXnMdth,泡“hQ. RGa(O. 22S. 0 BFpkBar|l.line |0, nHcijc MQHccl/ia nHeigl (nWkfch, nHdcl. ftGBIO. 225,0, BFpg刈.I七 40, nHeUht tHokWalic2 8 nHcsr| (nWW
19、th, (1 tHoWaluel /100) cHrtfiM. RGB(225r 22S. 0)z BF0, nHeUht - nDrawHcht) |nMdtN |1 - tHdtfVaiuc2 / 1001 - cHeghtl RGBRSS.Q. 0). BF“If EndM Iflsl Then 二、t-ED niml = num 1 Diezlnum?) = vWemVohieslO numZ = num? 1 CM If文本框显示程序代码如下:Pnvjte Wb网 m jT imer|IfS.eFUgTbcn快双M先华后去晚&之的tliXdauiMo.Tatt Yar(Mcw|D&
20、Momh|No。)& DaMo| ft- & HouKo|&-? ft MHjU(Nom| 2 & “ecdlNowDW 4氏度。rdMYE8.F 氏科Si痕Z , dwtaTpfncO)& CM13I ft Ow(10)SweC = W*UsectotalMo Te.tdslnWo Text & YzdMM)& Monlh|Nol)|8ft- & Kour(KQw(|) /& Mrteow| &:,&Secoid|NaM)&”& 反W翌&:&dM$TE5D& & 氏响源位:* & dotaTe(np(2)& Chrt13) & OvflOIEM If EM Sub依据保存此处定义bool型的
21、SaveFlag为保标志.在保存时伸领对新的数据的接收.卜:要用到CommonDialog控件.该控件可用于创立“文件翻开”、文件保存.文件打印”、”醺色设VT、字体设ET、“帮助”6科对话框.程序代码如下所示:Prtvaw Sub 8cnSar/_Clidc|)TmUpcbU.Erybted ”必dauUpdata.EAabtad - F必CcrwuxiOitlol D“QT* *53/7 AiCrTvrciO9l MjuHE = *CcrwuxiOahf) $how$v/cmsCologl J(H heXnConEonONogldEC for Output A tl41, d1 iito
22、YE Cowill名战为试r-nEnd IfEnd Sub3.4 实时曲线绘制Picture是功倭强大坐标图绘制软件.本次设计中采用VB中PicUnc控件进展实时曲戌绘制.在 设计时添加2个系列曲线.代表两个西道.即温度和液位与时间的关系.并在图中绘出两条戒备线. 能更直观地比对数据的变化.实时曲线跟踪:图 3.2Picture 设徨局部程序代码如下所示:Pfctirel.CIs tfOiccU.Value-Olhcn Ifco1X4 Erdif Bitt collect Erdrt W B ” 2 Then Foe w = 1 To 2 Ptcturel/5(阿 L w pl. w|) FX
23、p2T00l RctireLUne -p0 -1. w|, M -1, w|. Q0Cc4or 350 Or lbBy|21.Capc*on GW Then1417.00 州班异常广: 正在MR! WHH t)ear(U Cw:or 1W ThenToU.T 度过 Q Lpcfiar(l)Xid(Q, nHoghl - nDrwHaht|nV5dth. rtlaMX _R6B|2SS,0.01,8FErtdltIf bOXACMton 150 ThanTm 也息不物!-pKBK|l|.lr4e4t - nOryk4t| |nWK nHe财H. 一(nd*If 3g Option 600 Tbw
24、TexU Tat 二渝 fl过矗!pkBK|2|.lk*e M nHd劭 1 nDrjHeitKnWd nHeUhtl. _4程序测试4.1 测鼠过程运行程序后,先电击“连报按钮,保证客户潴连接上姐态王数据库.然后刺击“加BT按钮, 观察数据时候正常显示,棒柱的数期和色是否正常,文本柜内的时何和数奥是否正常以及心是否 能实时显示曲戏“单击“保存数据按钮,弹出对话框.选珏路径,域写文件幺后保存数据,域后 单击退出”按钿,看成否正常退出程用.运行程序,注意构bin攵件夹放到工程下.4.2 测试结果从测试给果上行.整个程序没有bug.各个功能正常.从绘图的结果可以看出从效劳挣传来的 数抠是按正版规律
25、变化的.图4.1程序测试图现在时间:油14分2bK作而俄实时线跟踪出现异令!2014 年 11 月 14H察烧居行状态R示P/3,4张保刘君附白童a k尢图4.2程序测试图:图43保存数据 UM,口 ,-习”,v - CP-5程序文档使用说明(1)运行程序,连接或功后.K动,此时他状图以及文本板内在会显示反响绯温度和反碗罐 灌位的械12)当数树枳累到定程度之后,点击“绘图 按钮,应耀温度和反响料液位数值变化曲线 就会&示出来.将点缶诙,就会刷新 次.从而实现了数榭的实时显示.程序中故据刷新为1s. 因此在点击“绘图*按钮时频率G好不要超过1S.(3)保存数树.点击“保存按钮,会坤山对话框.物入
26、响应的文件名保存便可.保存数据 后,所布.历史数据公被清空.5.1 程序清单Option 1Option pidOmgStravf M OPCSwwtOm obroufM A* OPC&oupiOtn objTtrGrp Ai OPCGroupOim objums As OPCltamtOmM UxigOm 阿200. 2) Ai Sm。,M2co. 2) M 幺Oim col M imatarDim pl As IntcferDin dauTcwp(2) As StrtzDE OawFI 珀 As BookanDE SJacFhg As Boolean沁 ConnectijtrProfJD
27、As Srnnt OptJorul 父州ode As 5M也If 的Sew b Nothin Then使立一个OK效力X”象Sat gSerw NrMlfIf 由- OPCOMDcntctod Than,次按8改书”gSecb.Connect 丈BroelD. iirXodeCMWf gGroop,15 NoebrgTbfn 建立一个OPCiH疆合S gGrojQS - otiSerr.OPC沁 MdlumUOm MEE8(2) M StringDim ICJMtHMI也2) M Lfintcfli5.Coir 0 Then UEnd IfCndrf袜ff扭活出优台 由MK53血必 Trua
28、取向皿I帆期薄知cbjTwtCrp Is 如 barbed =川x 珑在OfC及i合Set 俎Items - oTcrtGfp.OPCItcmj,至或M热仙现。猊为 jtrltcmlDslUx 反的 11川瞋.Value” UrlltmIDtU 反的渣;ft位.Vu iCIentKsndslUsl ICkentHsndlesUI 2,洛加OR:及Oli 0Wcn4.AddttCfrtt(2, stfftcmOs. _ ICIerrtHindiei. iSenerHacdlw, errors) End Sub Sub OtacorfiectO m lErrorM) M Lont Not obJU
29、ms B Nothing Then If obtcfli5.Coir 0 Then , XltOKH otUwt.RcMv* 2, tSofwrHrdai7 lzfors EndirS objhQW - No 啦 !uEnd if. Not otuTfrttGfp E Woch Thcrt ,去除actn ob/aos 我 emwc .FCrp Set objTeitCrp NothingCndtf/ Nol nb/iroup* * NcHhp Then SH obf(xDU9i - Nothing(nd If No! ob/Smvf It N。倒ng THinIf obySwvaf.StnQ
30、fSM。 OPCO(confctcd Than ,临开8c及劳净.otyiww Discocnect End IfSet ob 供 3 = *XhrE (ndtff nd SubPrrmte Sub blnConnfct 0kbQ ,附 Sweet 子V,Coll CoMearMWcw.scwD l而W.CWion 与效分”日或或幼!, End SubPnvate Sub ttoAddRc*_Cldc| J(H AddllomCHSeIf MoC 由T,t6rp h NolNr ThtnIf cbjTitGrp.OPCKwmi 31nt 0 Thin n4atta tmutxlwe CniMc
31、d = Trve dalaVpdace EnjWed = True EkeInd*5IfC nd SubPrwmbH4t CMI),和叔窗体UMedtrnMinEnd SubPnvjte Sob Form_UdoXCarKC Ai VxiantDm Erron(| As Uxigam 5TM As rin1Dm nVAdth As IntecefOm rWeht As integer0m MJ“咐M As IntegerOe %tS(疵 As Si映Orn IM imcer. u M imeper, j As Intecer, i Aj intetfr. i As Integer, w A*
32、IntegerOmXMS*rJe.YA5SlnIJe卬期口取SyricRed OPCCxha, W3mVW& l”cn,带用的表水FXl = lTo2H就的播式化圻皿 -Fomwwsmv皿。卬二皿吟) ,&示欧州才整小t?6e)Qpvg -义如f djtalempIO jtrBuf ,计算除的见和马cWkfth - 0心k1), JQlMdthr*cht picBaf(l|.SoteHcifr*! -wcmValu(l)/ 700nOrj刈63 - Ck|nHeftit satScafcl ,公/峰悻用尸&O5经制冲用pic8ar(0Kie g nHelght - nDraehtHnWdth. rHehtX -RGB|25S,OrO|.8F N