mcgs高级开发指南_第1页
mcgs高级开发指南_第2页
mcgs高级开发指南_第3页
mcgs高级开发指南_第4页
mcgs高级开发指南_第5页
已阅读5页,还剩81页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

目录TOC\o"1-2"第一章MCGS的可扩充性41.1概述41.2可扩充的设备驱动构件61.3可扩充的功能构件71.4MCGS实时数据库对象81.5MCGS存盘服务对象101.6通过OLE自动化和其它应用程序交互121.7通过DDE和其它应用程序交互141.8直接操作MCGS的存盘数据库16第二章开发MCGS功能构件172.1功能构件的实现方法172.2功能构件接口规范182.3利用开发向导生成框架192.4利用样例程序移植222.5测试和挂接功能构件25第三章开发MCGS设备驱动273.1设备驱动构件的实现方法27零3.2歪设备驱动构件闻接口规范河宝28渡3.3准利用开发向导反生成框架积捡32朽3.4荡利用样例程序麦移植笨勾35搅3.5寺测试和挂接设患备驱动构件饿族37俭3.6I狂O光端口的操作碗况40带3.7屠串行口的操作欲蝶43嗽3.8协设备驱动构件榜的运行机制竭嫂44渠3.9达增加设备构件遍的属性往掉45倦3.10葡定制设备属性境设置对话框斗兄47拍3.11她编制简单的设泳备驱动构件拼涝48狂第四章享MCGS俘系统内部数据盾对象纠仰52躺4.1$吹Year住退53轿4.2$摊Month魂截53桥4.3$灰Day滚殖53煎4.4$惧Hour搜汽53偶4.5$贝Minute颜贷54健4.6$阁Second丘钓54奏4.7$养Week诱文54定4.8$组Date猛没54台4.9$存Time烟商55求4.10渣$Timer名破55饼4.11售$RunTi臂me拣阴55希4.12捏$PageN练um圾榆55嫌4.13难$UserN耐ame津倦56败第五章嘉MCGS胳系统内部函数粗树57丑5.1妨数学函数肃招57病5.2嫂字符操作函数停省59拥5.3附窗口操作函数恋脊61公5.4姿设备操作函数喘百62安5.5写策略操作函数黑鸟63王5.6赖事件操作函数乎屈64允5.7醋报警操作函数新记64篇5.8迫存盘操作函数娱渠67么5.9葛用户权限操作静函数战佛70弓5.10最系统操作函数吩豪71灵第六章躺MCGS滴中提供的对象暑钞205咏6.1墓实时数据库对迁象朗炉205蜜6.2停存盘服务对象阁熔223恐第一蔬章灿柔MCGS杏的可扩充性韵1厨.1揭概述腊MCGS治组态软件是一揪套功能丰富、着简单易用的组坚态软件,大部俯分工程师都可捷以很容易的使焰用这套组态软逐件来完成一个严完整的工程项木目。但是,当陷用户熟练的掌避握了这套组态象软件以后,用抛户必然会寻求能在这套组态软总件上进一步开语发的能力。以项实现有自己风挠格的界面、自玩己设计的控制简算法和与自己辟硬件相匹配的沈驱动程序。其看他一些长期使稀用巴Visual管Basic尾、漫C++多、驴Delphi姥的高级工程开杀发人员,为了贝充分利用自己渠的编程特长和廉已有的程序积袖累,也希望能丑够把自己编写矿的程序装配到私MCGS躺组态软件中。蠢大部分面向工严程应用的工程引人员,虽然没扣有时间和精力幻开发自己的专秋有模块,但是庭,却希望能够惯从盐MCGS项开发组或第三园方的专业、业临余开发者那里态获得为自己定撑制的特殊模块泛,并且能够很锣方便的装配到汗现有的纯MCGS养组态软件上。抢而对硬件开发成商和一些高级饺的开发人员,谨都希望能够开堡发出自己的设烟备驱动模块和川专业化、行业锤化的模块以充骂分利用四MCGS夹软件的组态功芽能,当然,对逢于这些专业化瘦的高品质模块才,位于工程一祖线的工程人员抚也是具有非同受一般的兴趣的讽。第为了满足用户感的这些要求,闭MCGS株提供一套可扩转充的接口规范扁和配套的高级根开发工具包。属使用接口规范鬼和工具包开发逗出来的扩充构添件,具有很优姜越的特点:能安全保密。扩婶充构件是编译炼成二进制代码播的,可以很好肥的保护您的工僻作。非法用户板不可能通过反栽编译你的扩充确构件来获得你朋独有的设备驱砍动构件、特殊悔的运算构件和晓特殊的窗口界赚面。你更可以俊使用扩充构件巾来进行自己的饼加密,以防止愈你制作的工程险被任意拷贝,晕保护你自己的脸利益。棵简单快速。嚼MCGS污组态软件高级悉开发包中提供未了常用的数据巾后处理构件源冰代码。初级用慈户可以直接使亏用这些数据后产处理构件,但戒高级用户则可袍以修改这些构略件的源代码,霉以满足自己特北殊的要求。众辫所周知,工控坏工程的数据后片处理部分具有讨各自不同的要浮求,因此一般病的组态软件,稿都要求用户自框己使用例如吹Excel言、移Access她等软件来完成床自己的特殊的碰后处理。但是育MCGS妨组态软件除怒了可以用类似皮的方法处理外退,还提供了另圆外一种不同的颜处理方法。那岁就是高级用户谦可以修改船MCGS径组态软件高级泛开发工具包中绵所提供的后处党理构件源代码淹,然后生成自启己的扩充构件枣,装配到锈MCGS熔组态软件上,趴就可以组成自秩己独有的后处弯理系统。屑性能优异。使誉用这种方法开连发出来的连MCGS冰组态软件的扩校充构件具有很示高的速度和性险能。据微软公烟司测试,使用访Visual立C++薯软件开发出来盲的程序,只比扬使用轰Visual某Basic窗开发出来的速消度高百分之十腰,有时甚至还华低于留Visual排Basic卵。而使用饿Visual扫Basic疼开发的方便性伤和易用性又是爪Visual击C++斥所远远不能比盗拟的。在编写收MCGS梁组态软件的扩圣充构件时,和Visual红Basic怪确实是一种最净佳选择。协任务明确。礼MCGS专的这种扩充构他件具有清晰的受结构,你完全廊可以向语MCGS裁组态软件的开帜发组或第三方叉的开发人员提自出要求,为你晌编写一个定制笔的扩充构件。抓而不会存在功罩能纠缠不清,旱任务确定不明句的问题。非MCGS舍组态软件的高演级开发,基本塞上是基于微软新公司的册OLE沾标准,利用了纺最新的百Active请X灌技术。这种新骑技术保证能够订方便地使用当绩前各种先进的芹开发工具来开查发自己的扩充传构件。如:桐Visual拉Basic刑、欢Visual定C++处以及其它公司赛的各种编程软方件也可以方便庆地开发号MCGS恰组态软件的扩耽充构件。但是掉,成MCGS娱为使用微软公幼司的茂Visual桶Basic册准备了丰富的闪样例程序和功勇能强大的高级版开发向导。这罗个高级开发向岂导可以帮助你催很方便的生成粱各种扩充构件括的框架结构,关使你能够快速四的进入自己的肌编程工作。在难MCGS棍组态软件高级面开发工具包中彼,还提供了给姐开发员使用的今一个源代码级卵调试程序。因堆此,从MCGS虹强烈建议使用什微软公司的树Visual余Basic树软件来开发柔MCGS阴的扩充构件。冈在本书中,主讨要介绍如何使闯用缎Visual芽Basic奏来开发久MCGS蜻组态软件扩充洋构件。但由于久它是基于侍OLE饲技术标准的,简所以如果你能歪够熟练地使用热Visual糕C++饶、拾Delphi突等软件,你也乐可以按照本书葬中给出的袋OLE呆界面标准,来蒜制作自己的组毅态软件扩充构怠件。舅为了能够使用副MCGS忧组态软件高级使开发工具包,乔你应该具有如虏下条件:牛硬件方面屯:教必须具有骨Pentiu奋m园以上的止CPU攀,殊以及十六兆以旷上的内存。担软件方面谎:脱应使用微软的双Window行s壁’捏95树或证Windo瞒w德’魂NT4.0巧操作系统偿,亏安装了微软回的判Visual霜Basic压6.余0退专业版或企业昨版。还应安装难了易MCGS饮光盘上的漆MCGS鉴组态软件和拳MCGS闸组态软件高级雅开发工具包。槽使用巷MCGS强组态软件高级娱开发工具包和耍微软泼Visual厨Basic想软件来开发拒MCGS马组态软件扩充托构件脏,也要求你应该大善致了解塞Visual队Basic超软件的功能和话使用方法。如济果你对两Visual剃Basic掀软件不太了解畅,那麽就应该燃首先学习和了男解一下悄Visual期Basic合软件。我们楼建议采用如下旁的方法进行学射习:首先,你抛应该仔细阅读统《铁Visual镜Basic忍联机手册》这最本书中芬的菊“独程序员指属南虏”垒这一章。其次雹,你应该仔细醉读懂纸Visual蚂Basic秀安装后附带的向三到四个例子斯,这些例子安海装在进Visual累Basic烤目录下的衣\Sampl算es随目录中。在这效期间你可参考滨和阅乒读蜡“胶程序员指扯南搜”微这一章中布的蜜“贷VB兄基去础渴”详这一节中的有爹关菜单、窗体县、构件等的描稠述。崖通过大约经过铅一个星期的学召习,你就可以候在吸MCGS筋组态软件高级救开发包中的高遗级开发向导的北帮助下,制作性一些你自己的独简单的扩充构良件。也可以从盾高级开发包中汇的样例程序出办发,通过修改佩相应的部分,翁来生成自己的烘扩充构件。勺MCGS根组态软件的可缸扩充性主要有兄以下几个方面捆组成:躁挂接定制的设截备驱动构件。刊挂接定制的释功能响构件。删在其它应用程赞序中通过铃OLE禽直接操作跨MCGS贸所提供的对象颠。犯通过辣DDE夏连接,建立吊MCGS炕和其它应用程鹿序间的数据传要递。则MCGS嘱可扩充构件的痕提出和设计都叠经过了长期的夺工程实践的检都验和考虑,能讽够确保实现工岭程进一步开发爸中的所有任务亏,而且具有结练构简单、功能哭齐备的特点。吗1蛋.2湿可扩充的设备今驱动构件溉可扩充的设备矩驱动构件能实胸现多种设备驱丝动的方式。你笔可以使用独立撇的设备驱动构荷件形式,如:鞠A/D忽、则D/A避板采集驱动构赔件。也可以使凶用父子设备驱司动结构形式,扯如:使用串口农为父设备,使帮用挂接在串口刘上的各个长PLC构为子设备。这胞已经涵盖工控回工程中常用的蚕板卡采集、现异场总线等等设妻备硬件连接模嫁式。异在设备驱动构誉件中,你可以青使用查询的工卡作方式,查询匪的周期从十毫苍秒到任意长的究时间。也可以来使用中断的方庄式,来高效完缓成设备驱动的润任务。尤其在三使用串口等低赞速率传送的设馒备时,使用中蒸断方式来采集木数据,可以充呼分利用等待串于口通讯的时间貌来完成诸如图红形动画等其它篇工作,以保证斥动画的平滑运丛动和界面反应撤的灵敏性。在垂使用板卡采集享的时候,由于喘板卡采集速度贷较快,而且设样备驱动运行都晨处在各自独立挠的线程鲜内,一般都采栋用查询采集的酬方式来处理设师备驱动的工作圆。霞在设备驱动构延件中,你还可村以实现设备热役更换的功能。汽MCGS藏组态软件可以伍从设须备驱动构件的趟返回值中得到漏设备运行状态牛的,对于有错锣误的设备,宏MCGS萝组态软件将自靠动停止其采集坛,但是,每隔贡十个采集周期股,膜MCGS纵组态软件将自鬼动重新驱动设骗备驱动构件一员次,再重新确肃定设备驱动构咱件的工作状态厨。因此设备驱煤动构件可以利许用这个功能。皱在被驱动采集宏时,如果当前童设备的上一次捐工作状态测试约为设备失效,轰这时就可以重类新测试工作状套态,如果工作岛状态已经正常栋,就可以向遥MCGS坏组态软件返回淘工作状态正确程的返回值,使再MCGS脂组态软件重新讲开始正常设备泼驱动采集。准聪备了这样的功钢能后,在父子腥设备采集中,挑就可以动态的棚卸载和挂接子逗设备。工MCGS昼组态软件会自美动在子设备卸狡载时自动暂停寄设备采集,在盆子设备挂接时盘自动开始设备色采集。守设备驱动构件贡的概念还可以俘扩充到所有的摔高可靠性要求止、数据输入输朽出、执行命令欧等任务方面。愈在洋MCGS抱组态软件中,计就实现了一个滋使用网络在两恋台计算机之间玉共享数据对象坚的设备驱动构鬼件。实际上,判像网络数据库贯、多台计算机纱、各个程序间弃的通讯等等类径似的任务,都喜可以使用设备疑驱动构件的方价法来完成。本夏手册的第十九聋章专门讲述开筐发秋MCGS骑设备驱动构件参的具体方法和奋步骤,请参阅庄。侮1摩.3抱可扩充的赖功能付构件侄可扩充的功能管构件主要用于盗实现用户定制侄的和用户特殊诸的功能模式。庭如参数出入窗照口、特殊的操惠作画面、特殊临的数据处理等霜等。功能构件衬提供了一个使宋用户可以实现晋自己独有的人移机界面的手段容,可以完成特验殊的用户交互袜的工作。并且授,可以完成一吃些鄙MCGS韵组态软件所不王适宜完成的工考作。如体现事帆务性操作的任前务,象填写输企入表单,填写木发票等任务需惠要填好后一次辆提交,要么所盒有修改全部完异成,要么所有读修改被全部退结回,这种任务妥就与飘MCGS过组态软件所运包行的实时监控作模式不一致,育这种任务就适盘宜于使用功能爱构件来完成。第还有一些任务逝,诸如从存盘逮文件中恢复各峰个变量的设定撒值,或选定一观组设定值,也笨可以在功能构绞件中通过读取马存盘文件中的讲数据,并用笼MCGS扰组态软件的自驳动化功能写入腐MCGS捷组态软件中的苦各个变量来完坐成。缩MCGS动系统的报警信产息浏览、存盘美数据浏览、存椒盘数据提取等晨部分的功能就猜是用给Visual养Basic撞6残.0昆来编程实现的惯功能构件,并殃且随系统提供突了部分源代码爱,目的是因为烘这异几个部分的灵学活性比较大,先用户的需求也剑各不一样,这胆样可方便用户摧在这些源代码榴的基础上,快我速修改完成自坛己需要的功能邮。本手册的第含二十章专门讲职述开发医MCGS战功能构件的具届体方法和步骤顿,请参阅。达1柏.4纽MCGS敬实时数据库对聪象垒实时数据库是耗MCGS紫的核心,鹿MCGS馅把整个实时数始据库作为一个语对象封装起来觉,提供一系列亚的方法和属性梨,使外部程序帝通过这些方法蝴和属性能对连MCGS熟进行各种操作议。找MCGS磨运行起来后,词实时数据库对口象被暴露出来尿,在其它应用泡程序中,通过饼OLE掀自动化操作,铺就可取到实时诊数据库对象,订从而做到在外得部应用程序直贯接操作劝MCGS莫的目的。扛注意:亡MCGS绝分为组态环境拦和运行环境两良个部分,每个腾部分作为一个帝独立的整体都茫有一个对应的刷实时数据库对漆象,两个对象国的方法和属性恰都相同,只是缴有些方法在不游同的对象内的嫁表现不同,如欢Create芹NewDat散a炕方法在组态环抽境的实时数据今库对象中是创窝建一个新的数尘据对象,而在兆运行环境的实尿时数据库对象匹中该方法不进比行任何操作。骂因此,在实际乏应用中,用户狱要根据需要选率择是对哪个实立时数据库对象货进行操作。愧注意:捡MCGS猜的实时数据库签对象及其对应浊的属性和方法盾仅供扩充构件浩和外部应用程至序在编程时使坟用,在申MCGS暖内(脚本程序爬和表达式中)殖不能直接使用赛。实际上,实精时数据库的大北多数方法在毫MCGS裹内都提供了对逼应的内部函数含,脚本程序和阴表达式中应使瓦用内部函数完蝶成有关操作。停下面列出权MCGS钻实时数据库对默象所提供的属族性和方法,关此于它们的详细黎含义和用法请顿参阅《失MCGS幅参考手册》中深的说明。胜MCGS纪实时数据库对沃象的仗属性多WinVer犹:当前操作系赴统的版本标志柔McgsVe捞r晒:公MCGS婶的版本号禽McgsDa凉taNum惊:当前工程的局实时数据库中侍数据对象的个费数异McgsSt斧gyNum备:当前工程中机运行策略的个匹数搂McgsWi柜nNum戚:当前工程中鸦用户窗口的个荒数吩McgsDe充vNum摩:当前工程中阴设备构件的个歉数熄McgsSe竭tName蹦:当前工程的年名称燕McgsSa崖veName伸:当前工程存双盘数据库文件吓的名称呆SvrPac齐kage歼:存盘服务对首象忽MCGS悦实时数据库扭的恒方法略Create抬NewDat三a壶:在实时数据网库中产生一个句新的数据对象腔GetDat单aFromN漆ame渠:通过数据对什象的名称取到密数据对象的其仪它属性值段GetDat筋aFromI牧D径:通过数据对废象的鸡ID肿号取到数据对饿象的其它属性缘值条GetDat蝶aName搬:通过数据对隶象的诞ID揪号取到数据对续象的名称闪GetDat扁aType皮:通过数据对辽象的名称取到任数据对象的类志型宁GetDat问aID裙:通过数据对判象的名称和类猾型取到数据对听象的峰ID筛号验SetDat同aDlg驱:调用显示组抵态环境中的对担象浏览对话框备GetDbI晕DFromI恐D宏:通过数据对属象毕ID漂号读取数据对赏象在数据库中贿的存储位置号没GetIDF然romDbI桐D傍:通过数据对品象在数据库中页的存储位置号鼓读取数据对象嫁的真ID锈号叛GetAlm乐DatNam都e引:读取定义有植报警信息自动循存盘属性的所渗有数据对象名疗称庄GetSav饮eDatNa民me按:读取定义有赵数据存盘属性狐的所有数据对留象名称的集合脾GetGro妥upObj乡:读组对象的汽所有成员的骂ID齿号沟GetVal匙ueArra蛇y组:根据数据对酷象冤ID跑号成组读取多肃个类型相同的鬼数据对象的当潮前值情SetVal盏ueArra罪y及:根据数据对逼象裹ID雷号成组写入多马个类型相同的促数据对象的当章前值桑GetVal狸ueFrom省ID咐:根据数据对槽象的抚ID撒号读取数据对趁象的当前值纸GetVal牵ueFrom勇Name统:根据数据对浇象的名称读取蠢数据对象的当棍前值疑SetVal集ueFrom袖ID涨:根据数据对鱼象的擦ID放号写入数据对吨象的当前值班SetVal足ueFrom泊Name仪:根据数据对蔬象的名称写入啄数据对象的当汁前值元GetDev户iceNam亲e故:根据序列号油读取设备构件竖的名称谜GetDev沃iceSta阶te持:读取设备构是件的当前工作宏状态旨SetDev屠ice睁:对指定的设稳备进行操作太GetWin朋dowNam教e勇:根据序列号娇读取用户窗口翠的名称尸GetWin槽dowSta田te截:读取指定用缸户窗口的状态扭SetWin彼dow沸:对指定的用里户窗口进行操让作讯GetStg扩yName炮:根据序列号孝读取运行策略艰的名称踢SetStg没y注:执行指定运内行策略截DelAlm秆Dat论:删除数据对祖象对应的报警貌存储数据。巾DelAll活AlmDat顷:删除数据对劫象对应的所有酱报警存储数据挺MoveAl亦mDat绞:转储数据对摄象所对应的报浓警存盘信息区SetAlm苍Value关:设置数据对乞象写DatNam封e窃对应的报警限磁值晚GetAlm拉Value玉:读取数据对街象的报警限值曲DelSav障eDat示:删除数据对留象对应的存盘多数据宪DelAll诊SaveDa哈t树:删除数据对猎象对应的所有含存盘数据裙Change炎SaveDa崖t绪:改变数据对雄象所对应的存引盘数据的存盘朵间隔驰MoveSa叨veDat片:转储数据对碌象所对应的存使盘数据雪SaveDa煮ta冷:把数据对象忌对应的当前值党存入存盘数据蚕库中笼SaveDa乌taInit污:把数据对象样的当前值作为妨初试值存入组侄态结果数据中度作为初试值桐1狐.5MC市GS览存盘服务对象少MCGS雄提供有一个存荒盘服务对象,忌用于设备驱动旱构件和功能构介件保存构件内率部需要保存的睬数据。在构件样中,通过操作豆该对象的方法锻来保存和读取熟数据,而数据绪具体放在什么墨地方由糠MCGS谦来管理(鸡MCGS促把这些数据和妹构件的其它属禾性一起保存在袖组态结柳果数据库中)萄。注意:邀MCGS舱把存盘服务对迹象作为一个参弦数通过构件的抛接口传送到设氏备驱动构件和余功能构件内,亏供构件保存数臭据时使用。下稼面详细列出存偿盘服务对象所温提供方法:桥方法:耳SetSta拥rtPos财方法用途:英设置存储数据泰的操作方式。痰使用范围:闭可用于组态环顷境和运行环境允。暑语法形式:颠SetSta沈rtPos(僻Byval亲Flag朽asLon笔g)as剂Long哗返庄域回越票值:爆=0墨:调用正常,跨<>0较:调用不正常诱。慎参数说明:姜Flag拥,长整型,操冻作标志,具体彼含义如下:膜=0础:设置对数据篮的操作为读模竭式,使得谢GetDat躺从起始位置开矿始,顺序读取弦数据;欺=1些:设置对数据柳的操作为写模倦式,使得首PutDat厉从起始位置开耻始,顺序把数敌据存入。岔方法:弹GetDat优方法用途:尽读取存储在殿MCGS胖内的数据。跑使用范围:鼠可用于组态环再境和运行环境贩。愚语法形式:起GetDat辟(Valu潮easV莫ariant东)as涉Long皂返被踪回储牛值:挤=0三:调用正常,庆<>0眯:调用不正常银。筋参数说明:山Value息,啄Varian蛮t壳型,返回读取虫的值,也可以创使用具体的数赚据类型和数组所来返回数据。略方法:俯PutDat踪方法用途:湖把数据存入到凝MCGS彻内。软使用范围:将可用于组态环垃境和运行环境夸。负语法形式:祸PutDat碧(Valu润easV追ariant陶)as畜Long符返形藏回数炸值:蕉=0萝:调用正常,材<>0纷:调用不正常期。持参数说明:与Value岗,屠Varian漠t态型,要存入的盟值,也可以使听用具体的数据驾类型和数组来海存入数据。季MCGS齐存盘服务对象屑使得在设备驱扩动构件和功能联构件中,能使纺用膏“浩流战化医”奖的方式来编程建实现保存和读略取存盘数据,倍GetDat拢和赴PutDat科的使用一定要慎配对。如在某拜接口中编写的合保存数据代码奸如下:婆dimI期aslon君g,ja畏slong役,msg煎asstr咬ing,Da坚t(10)舱assin蹲gle赠SaveOb现j.Set谨StartP炒os1取SaveOb番j.PutD钱atI技SaveOb胆j.PutD阵atj厦SaveOb冻j.PutD迎atmsg箱SaveOb定j.PutD好atDat瓦则对应的读取翠数据的代码应监如下:晒dimI该aslon串g,ja语slong纪,msg去asstr蛮ing,Da恶t(10)留assin老gle辣SaveOb拥j.Set裕StartP色os0茎SaveOb加j.GetD娘atI拦SaveOb继j.GetD年atj貌SaveOb拼j.GetD牲atmsg印SaveOb潜j.GetD自atDat冤1精.6扑通过什OLE愧自动化和其它袋应用程序交互钩MCGS嘴组态软件本身蓬的自动化功能诚可以帮助用户眼在其它应用程桑序中很方便地穿操纵值MCGS愿组态软件的运智行。比如说,田用户可以在一四个程序里指挥奴MCGS厕运行环境打开震某个窗口、执季行某个策略、苗或者向某个设党备发出命令等撇等。基本上,捆在书MCGS喜组态软件中用邮户脚本程序可业以完成的功能释也都可以通过发MCGS消组态软件的自彻动化功能来完派成。抢MCGS浅把其核心作为泥一个对象包装赞起来,把船MCGS酷的大多数功能惧作为对象的属芒性和方法暴露鞠出来,使其它题的应用程序通欲过侦OLE光自动化来操作紧MCGS湿,在取Visual浑Baisc酸、位Excel璃、障Access秃和、宏Delphi绕中都可以通过辛OLE尺自动化来取得驱MCGS胜实时数据库对诸象,编程操作尚MCGS戒提供的属性和啄方法。勇在败Visual昌Basic辛中操作岛MCGS指假定蝶MCGS艇运行环境正在中运行一个工程滋,且该工程有冬20艳个数值型数据盖对象,其声名称为乓Dat01休到朵Dat20纹。要求用吵VB洋编制一个应用乞程序,该程序夜的界面如下图糕所示,姻按叠“翁从狼MCGS牛读数催据帆”妨按钮时,能把枝MCGS兔中隐Dat01津到秆Dat10乱的值读回显示懒在左列文本框边内,尊按低“桃向佩MCGS迈写数舰据旺”久按钮时,能把慎右列文本框内痛输入的数据写喇到娃MCGS书的数Dat11双到猾Dat20旗数据对象中。汤DimDa记tObjA凭sObje全ct绘Privat弱eSub正Form_L郊oad()雄OnE墙rrorR炎esume随Next脖Set热DatObj糕=Get件Object节(,"Mc按gsRun.采DataCe免ntre")稍IfE赌rrThe真n省M两sgBox就("叉请先启动奉MCGS扰运行环境册!")巧E发nd江End申If洞EndSu咸b赖Privat熊eSub魔Cmd_Re赏ad_Cli指ck()霉Dim乖msgAs串Strin堤g,tt娇AsVar基iant历For矛i=1畅To10败概msg=杆"Dat"园+Form忆at$(i,难"00")垃粥DatObj分.GetVa央lueFor赞mName么msg,t泰t兄蛇Txt(i)谣=For沉mat$(t沃t)蔑Next蝇i物EndSu途b吵Privat新eSub槐Cmd_Wi桨rte_Cl壁ick()唯Dim案msgAs鸣Strin属g,tt缓AsVar化iant办For量i=1麦To10终潮msg=句"Dat"拘+Form魂at$(i,番"00")岭刃tt=V数al(Txt慕(i+1焦0))观贯DatObj雾.SetVa宵lueFor法mName虽msg,t妥t驱Next炕i敌EndSu石b装在绳Assess蓝、夫Excel严中都有对应的秒VB母程序可以编程夺,实现对贫MCGS悉的各种操作,压其方法和在伪Visual阀Basic台中基本相同,薯可参考上面的乖代码进行。属1盖.7扔通过眉DDE设和其它应用程撞序交互缺MCGS让提供了动态数赌据交换乳(呜DDE)散方式和其它应吨用程序进行数辞据交换,不同狡于字OLE培自动化操作,邻DDE垫方式只能传递糕数据,不能直尚接对哈MCGS抚进行操作,而螺且钟DDE铺方式数据传递胆的速度较慢,芳可靠性也不如秒OLE并,建议采用拴OLE绞来代替糕DDE洁。芒下面举例说明触如何在汪MCGS祸和绸Excel袭中建立妹DDE埋连接,要求在乞Excel搜表单瘦Sheet1我第味1嘱行到第旋10退行的第一列显罚示谦MCGS蔽数据对象墨Dat01杰到懒Dat10猛的值,把表单较Sheet1吼的第俯1肤行到第命10办行的第二列输纹入的值送到级MCGS灶数据对象箱Dat11苍到置Dat20碑中。要使用舞DDE鬼和其它应用程隔序进行交互,沿首先应在货MCGS等中进行一些定时义工作。在与MCGS奉组态环境脂的伟“材工聪具停”稼菜单中选灰取城“姜DDE愚连接管与理随”扶菜单项,弹出秃如下窗口:啄在盟DDE颗连接管理窗口朽中,把货Dat01卫到工Dat10复设置为衫DDE冒输出(选中各伶数据对象对应饮的偷DDE迫输出选项框)洲;把絮Dat11盏到宵Dat20烟设置为遮DDE乔输入,同时对耗服务节点进行羞如下配置:蓝按控“瞎服务节点配卸置陆”绍按钮,弹出如些下配置窗口们按族“元增葵加河”玻按钮,弹出如沸下配置窗口,错把服务节点名球设任为积“杂Excel垄表侮单链”鹊,把服务名设援为巡“琴Excel撇”望,主题名设绪为级“亿Sheet1外”情(段当把址Excel蜂应用软件作为惩DDE尼服务器时,服创务名永远微为滋“誓Excel隆”享,主题名为对梦应表单摇--Shee割t纱的名称顺)津配置好服务器蝇节点后,把烛Dat11轧到放Dat20绩的连接节点都犯设响为趟“狐Excel架表演单死”羡,连接项目分为别设为稍R1C2嘱到钥R10C2充。稿运行右Excel扯,在表单罪Sheet1茅的道R1C1蔽到蒙R10C1放中输入援McgsRu菊n|Data继Centre棉.Dat01钞到蓝McgsRu隆n|Data岸Centre夕.Dat10扛,这样就完成恶了所有的理DDE祥连接设置工作植。当进入悲MCGS给运行环境后,课MCGS尤数据对象袋Dat01底到锄Dat10居的值就显示在盈Excel谊的表单皆Sheet1瞧的第一列中,拣同时,当改变雨表单孔Sheet1黑的第二列值时魔,至MCGS槽中数据对象绒Dat11敏到看Dat20性的值也随之而瞒改变。纪1帐.肝8邀买直接操作姓MCGS之的存盘数据库冈MCGS遭运行时的存盘年数据是保存在读标准距Access累7.0挨数据库中,所排有报警数据信茎息对应存盘数防据表名为铸MCGS_A浑larmIn泪fo酒,感MCGS覆组对象对应的掀存盘数据表名俗为:组对象名要称桃+戚“敞_MCGS嗓”骄。用户可以在免外部应用程序解中直接对歉MCGS袭的存盘数据库填进行操作,编沙制独立的后处胖理软件。拦MCGS述的脚本程序中毒有一个名苹为威“秧Shell胳”充的内部函数,突可以启动一个震外部应用程序尚。通过在配MCGS盆脚本程序中使愤用翻Shell蛮函数,可以使保外部应用程序凝和海MCGS叙看起来是一个仔整体。花第二考章伞霉驳开发券MCGS第功能榆构件撑MCGS懒提供了一套运顶行策略机制,牺使用户能根据睡实际应用的需浸要,对工作流祖程进行精确的谅控制。运行策吼略由不同的策裂略块组成,而芦策略块又由多唯个策略行组成恭,每个策略行符分为条件和功茎能两个部分,吨以实乐现聪“皇在什么条件下紫执行什么功吨能草”聪的机制。溪MCGS傲提供了大多数愚应用所必须的似功能构件,同州时也提供了一音套开放的可扩锐充接口,允许旦用户能根据自钱己的需要,定随制特定的功能箭构件,达到扩油充钻MCGS州功能的要求。宋本章下面各节迫将详细介绍开乏发采MCGS萄功能构件的方卵法和步骤,请寨在开始之前,再先安装各Visual剥Basic价6刊.0(樱中文专业版或堤企业版躺)独,然后安装殃MCGS免高级开发工具虫包,建议你按赛下面各节介绍锁的方法和步骤昼来一步一步地换学习开发惠MCGS覆功能构件。干2狭.1资功能搏构件的实现方贺法恭MCGS伤用否Active员DLL富构件的方式来瓣实现功能构件糠,禾通过规范的腹OLE述接口挂接到巾MCGS臭中惕,效使其构成一个蜡整体。由于功呈能构件和芦MCGS景运行在同一个搞进程内,故功孝能构件的运行矮速度快,可靠意性高,即使构烘件本身有问题堆,也不会影响掉到抛MCGS仆的可靠运行。划同时,脱OLE含是一个可扩充兼的开放标准,吹用于实现不同体软件之间的相异互操作,而不脖管软件本身是陈使用什么编程养语言。因此,秀只要遵守男MCGS我的接口规范,肚可以使用司VB登、肚VC男、叨Delphi饿等语言来编制窜MCGS联的功能构件。渔鉴于竹Visual智Basic挤通用性和简单幅性,建议使用念VB妙来开发耍MCGS绵的设备驱动程剑序,本书也只四讲解使用听VB但进行开发的技阴术问题。由于率VB缺6告.0蛇以上版本是以采二进制码来编蚂译执行程序,票其运行速度已蹈接近或超过贪VC圆,完全能满足改功能构件所需丰的速度要求。希MCGS如提供的大多数奶功能构件就是挑使用忙VB努来编程的,开完发工具包中提盲供了部分功能箩构件的源代码小,可在其基础乱上修改,实现须比毅MCGS恭功能更完善的驰功能构件。价2导.2冠功能兴构件接口规范回MCGS疲设备构件的实往现方法和原理纯与标准助VB脊的拼Active生DLL爸完全一致,但冶MCGS太规定了一套接草口规范,只有刻遵守这些接口乌规范的芬Active题DLL息才能用作珠MCGS炉的功能构件。怕MCGS蛙功能构件必须准具有如下也4催个接口:能接口:梅SvrMen表uComma钞nd挑驻径组态时调用,今执行菜单命令挺接口:扮SvrStg板ySetOp窜erator沙声卖组态时调用,席设置构件的属宵性落接口:踪SvrStg抖yRunOp胁erator柴滴禁运行时调用,漂执行构件的功符能密接口:贴SvrChe爬ck胞鼓震叠清组态中,编译选查错时时调用困开发乐MCGS引功能构件的过掠程,实际上就傅是根据功能构粘件的特性和含依义来完成测4疾个接口功能的灰编程过程。下寺面详细讲述各薄个接口的含义止和用法:赵接口烈:喂SvrMen诞uComma司nd推接口作用:滤本接口用于在浓MCGS损组态环境中增蒜加一个用户自骆定义的菜单项择。本接口在组即态环境装载时莫被拥MCGS足组态环境调用际,检查是否有叹有对应的菜单喂要求,如有,疏在渡MCGS椅的略“博工瞒具猴“略菜单中增加一钩菜单项。组态技环境运行时,鞭当用户选取增带加的菜单项时找,也调用本接葡口。筛语法形式:驾SvrMen留uComma绩nd(str币NameA陆sStri删ng,bQ蚊ueryA正sLong伯,DatO肉bjAs钥Object狼)AsL县ong锐返伤社回扰魂值:瓦=0屯,调用成功;铃=1荷调用失败。贺参数说明:序strNam顶e真,返回用于显扎示辱在娘“衫工顾具酒“荐菜单中的菜单尖项的名称;如门为空,表示本蚁功能构件不增旬加菜单。觉bQuery馋,暴MCGS惭初试化时调用骨本接口时,把岂本参数的值设萝置为钟1作,在菜单中调棉用本接口时,逆把本参数的值园设置为堤0施;鲁DatObj田,朋MCGS探实时数据库数探据对象。锻接口:邮SvrStg娱ySetOp责erator趴接口作用:坡本接口的作用估是读取功能构杜件的类型名称炉、注释和所对仍应的图标资源叫的般ID患号以及组态时射设置构件的属则性时调用。瓜语法形式:屡SvrStg饭ySetOp键erator颜(strNa保meAs俭String病,strN誉otesA赢sStri蜂ng,iI博conAs副Long,虚DatOb烫jAsO楼bject,殖SaveO接bjAs诵Object质,bQue堤ryAs潮Long)号AsLon狱g颂返怎我回婆烤值:卷=0高,调用成功;平=1障调用失败。言参数说明:野strNam倡e偶,返回功能构峰件的类型名,历显示在功能构到件列表框中;稳strNot带es坐,返回功能构贪件的注释,显舅示在策略行的胳右边;摔iIcon际,返回功能构榆件所对应的图跨标资源的励ID丽号,该图标显较示在策略行的呢功能构件块上续。如痒ID=0趁,表示没有对迈应的图标,犯MCGS渗显示缺省图标谱;板bQuery抖,暑MCGS刃初试化时调用米本接口时,把乳本参数的值设编置为诞1节,在设置构件坛属性调用本接单口时,把本参台数的值设置为此0灶;澡DatObj旁,挨MCGS腿实时数据库数耀据对象。猛SavObj施糕,存盘服务对胆象,接口程序阻中通过该对象躲来保存和读取存数据。谦接口垂:赏SvrStg逮yRunOp返erator谷接口作用:渔本接口在运行态环境中,当需凯要执行本构件炊的功能时调用弹。党语法形式:扎SvrStg恼yRunOp寨erator惜(DatOb踏jAsO移bject,源SaveO施bjAs摇Object来)AsL碑ong达返浆糕回扎企值:键=0材,调用成功;宵=1态调用失败。子参数说明:认DatObj读,铸MCGS骂实时数据库数锡据对象;徐SavObj别覆,存盘服务对墓象,接口程序狐中通过该对象住来保存和读取事数据。耳接口:炎SvrChe铲ck档接口作用:材本接口在组态孩环境中,当唇MCGS臂进行查错和编租译调用。图语法形式:丧SvrChe杨ck(Dat跨ObjAs租Objec距t,Che挥ckFlag乒AsLo盯ng)As许Long笑返戚裤回鹊匀值:婚=0霞,调用成功;西=1司调用失败。得参数说明:妻DatObj止,域MCGS退实时数据库数贴据对象;敢CheckF羡lag鞋,标志位。由2鱼.3冈利用开发向导怠生成框架香MCGS贞提供了一个高拿级开发工具包疯,能快速为用乒户生成功能构股件的源程序框猪架,驳在此基础上编氧程既快速,可胆减少出错的可绞能性。请按如怀下步骤来生成译功能构件的框群架:因确保祸MCGS灭的高级开发工拳具包已安装正脸确;稀启动进Visual狡Basic少6深.0熔(中文专业版酱或企业版);泊选份择狗“处外接程鼠序服”杏菜单,单击该肯菜单下的卸MCGS临开发向导菜单掘项;弹出开发花向导窗口后,太按赞“阻下一绢步刑”棵按钮,弹出如婚下图所示窗口脚:敬选择扩展构件皂的类型为运行伍策略功能构件同,保按傻“赔下一域步羊”坊按钮,弹出如芦下图所示的窗约口:虾设置构件工程诚名歇为持“晃MyDLL浓”顺,构件类型名贿为喂“到我的构部件烦”欠。构件工程名很为功能构件在模VB炉下源程序的工索程名,编译生冲成的长Active役DLL皮构件的名称为浙MyDLL.抄DLL咽。构件类型名含用于标识对应撑的构件,最后孩可显示在稠MCGS救的设备工具箱果中。借按阳“杏下一旬步跌”钻按钮,出现如道下图所示的窗欧口,设置生成之目录和输出目肿录都们为姨“参D:\Add射In独”匆,使开发向导警自动生成的源醒程序和编译生放成的构件都位丛于同一目录下巾。在一此闭按德“仪下一蛋步撤”誓按钮,然后尊按蜜“慌完非成浴”而按钮,菌MCGS刷即开始自动生去成功能构件的锤源程序框架。星开发向导完成奇工作后,自动烈生成一个名味位活“弯MyDLL斤”单的工程组,如凑下图所示,在储VB讯的工程组窗口谁中可以看到该素工程组包含如惊下二个茫VB贴工程:露MyDLL毙工程对应于设腊备驱动构件,德该工程包含一耕个类模块和一获个程序模块。低类模块喉AddInO绑bj棉完成了功能构峡件所需的所有垫接口。萍TestDL辫L拌工程只用于在沾VB烧环境下对功能竞构件进行调试施,该工程包含素两个窗体和两越个程序模块,墓在实际编程时桃,无需对该工帆程进行任何修附改工作。厌MCGS贴开发向导生成窑的所有源程序宽代码和编译生搏成的输出文件热都放在独D:\Add不In腾目录下。限注意:奥MCGS饺开发向导只是粥生成构件的源哭程序框架,没汤有任何具体的鄙功能,要完成声特定的功能,筝还需要在此基效础上,针对具革体要求进行进基一步的编程和肾调试工作。提2烫.4栏利用样例程序帐移植龄MCGS叼把部分功能驱需动构件的源程乌序代码都随系斯统一起提供,面在实际应用中暗,开发定制自哑己的功能构件骂的最好方法就铺是在歪MCGS插提供的源程序译代码的基础上惨进行。由于亚OLE泻技术本身的复慈杂性,建议按景照本节给定的旬方法和步骤来饼进行你的开发裙工作,避免产仿生不可预料的尼错误。如果你繁能严格按照本古节的步骤进行求开发工作,则摧可省去对碰Active喊DLL伏编程技术及有毛关概念的学习蛮和了解,直接匙集中精力实现可功能构件的功雄能。功从刃MCGS要高级开发工具拼包中找到你所翻需的样例源程抵序代码,假定继安装开发工具杨包时所选的安购装目录为辣D:\Mcg揉ssdk毛,则源程序位资于男D:\Mcg统ssdk\s柄amples钉\AddIn阻目录下,而且弱按功能构件的掉名称来命名对选应的目录,如好:报警数据处赌理构件源代码臂的目录为福AlmAdd搂In浩。为方便说明烂,下面各步骤武中假定选取报妨警数据处理构椒件为样例程序排。遗建立一个新目奉录:佣D:\MyD潜LL驱,把絮ALmAdd味In随目录内的所有知内容拷贝到咬D:\MyD碌LL减目录下。新功任能构件的源程灾序将位于本目五录下。论每个功能构件汪源代码中都一怎个后缀孙为蹄“朋.vbg捆”狱的工程组文件昏,本例中为残TestDL在L.vbg棉。启动烂Visual柏Basic葵6苦.0摸,打开该文件叶。如下图所示蜜,在缘VB缠工程组窗口中港,包含有二个垫工程:陵AlmAdd卸In担、抚TestD赶LL幅。告先在工程组窗股口中选中工程坊AlmAdd易In毯(被选中的工醒程下面显示为优蓝条),用鼠慌标右键弹出下稠拉菜单或挡从唐“伐工妄程穷”奋菜单中,单腔击嚷“完AlmAdd泻In嫂属机性羊”葱,打开该工程周的属性设置窗逝口。如下图所妹示,将把炒“僚通锯用帐”歪和晋“庙生剃成师”两两个属性页中届的音AlmAdd错In嗽改为汇MyDLL毅(修改工程名残称)。倘在客“里部仗件灌”稀属性页中,释把录“扯版本兼励容践”性中的选项设置陕成杆“省不兼龙容镜”棵。修改完成后掘,赔按崇“刊确捷认捎”威按钮返回。菌注意:体对工程属性页膜中的其它属性简不要做任何修族改。灿在仁VB化的伏“芬文漠件计”霜菜单中,单餐击印“爹AlmAdd元In.vbp丹另存丝为防”燥菜单,把工程辽另存为桐MyLL.v摆bp诉。在席VB科的挣“成文披件供”菊菜单中,单挪击写“砍生成阁AlmAdd子In.dll夏”毯菜单,弹遮出耽“侵生成工叼程想”饥窗口,对工程谜继续编译,把慌要生成的文件甚名改丝为秤“揉MyDLL.帖dll劲”比,哗按僵“备确鲜定忽”会按钮开始编译折。嫩编译完成后,便打开工程状MyDLL违的属性窗口,泄如下图所示,句在企“当部暑件备”考属性页中,选把姐“兔版本兼盏容婚”筒中的选项设置径成怨“嘴二进制兼疗容足”柱,同时把其下妈面的输入框中影的内容由陶AlmAdd哑In.dll拼改为鞭MyDLL.笑dll桃。侨按促“输确摔认喂”固按钮返回棍打开类模块飞AddInO届bj朱的编程窗口挨,队对接口待SvrStg透ySetOp透erator秘进行如下修改移:宵strNam炮e汗=蕉”酒我的功能构件监”巾strNot赵es阀=李”晌我的功能构件尝”戴选中工程尽TestDL尘L喷,在杰VB显“丈工医程臂“聋菜单中,单纵击塔“漠引咐用班”妖菜单项,把工僻程舞TestDL淡L坐对于迫AlmAdd亩In嫂的引用取消,番改为对工程农MyDLL财的引用。扰上述步骤完成掉后,把整个工隶程组存盘,就呢完成了开始移钳植前所有必须犹的准备工作。话接下来,你就你可以在源程序桑的基础上进行率修改,实现你液自己特定功能捞的设备构件。贪对通讯子设备垄,如欧姆龙衰PLC蓄对应的设备驱角动程序进行移乔植时,基本方葬法和步骤上面尿所述相同。伤2粮.5狸测试和挂接功就能构件钞MCGS脆为功能构件提厕供了一套在浓VB窑环境下进行在灾线调试的运行傻机制,使用户辆能随时对所做吵的修改进行测山试调试、检验施其正确性,其鹅简单程度和方启便性是其它组消态软件系统所捧无法比拟的。废MCGS榴的这一机制,洽使得大多数普毒通工程用户都汪能动手编制自里己的功能构件滩。柿使用竭MCGS秤开发向导生成近的程序框架或桨系统提供的样潜例源代码中,万都包含有一个绘用于在才VB云下进行测试的挤工程厉--Test滋DLL百,通过该工程刃模拟期MCGS壶的工作状态,肆直接调用功能漂构件的接口函乒数,从而做到筐对构件的每个喊接口函数在件VB思源代码一级进好行测试,实际骗应用中不要对咸该工程进行任萝何修改工作。眉下面详细介绍丛测试和挂接设布备驱动构件的仪方法和步骤:碌按照前节所讲熄述的步骤,用坝开发向导生成种一个设备驱动掏构件的框架,僚生成的源程序航所在目录为抽--D:\A仪ddIn域,构件工程名查为谎--MyDL堆L哑,构件的类型组名为展--鄙我的功能构件死。完成自动生窗成后,在矮VB励的工程组窗口毒中会看到二个茅工程:逗MyDLL然和姨TestDL宗L测。僻启动甩MCGS雾的组态环境,您并打开或新建寺一个厦MCGS川工程。盖注意:困进行在线调试纯时,必须启动耐MCGS忠,且要保证爪MCGS尾中有一个打开谣的工程,否则由,在偏VB构中无法进行在芽线调式。祖在及VB赶环境下,按净F5例键运行工程组英,出现如下图输所示的调试窗拜口,该窗口中缠的三个按钮分杠别用于调用组土态环境接口和变运行环境接口桨和菜单调用接野口;中间的输吼入框用来显示成功能构件的类湾型名称。翠按不同的按钮运可对功能构件挣的接口进行测扮试,根据构件边所需的功能,胀不断进行调委试测试,直到尤完成所有工作为和没有错误产扛生为止。土完成所有的编铁程调试工作以疑后蛋,旅把工程蚊MyDLL林重新编译一遍览,躬生成最后可以园使用的吩Active张dll宇文件贩:瓦MyDLL.摔dll水,窝把这个文件拷诉贝到目录扛D:\MCG端S\Prog六ram\忘炊AddIns爽下颗(茶假定弦MCGS伸系统安装时的少目录为元D:\Mcg挥s烈。注意:编译正和拷贝功能构答件的文件时,晓一定要先退出换MCGS散系统),同时垮要修改事AddIns跪目录下的邀AddIns致.in龄i达文件,在该文甘件中增加一行窝:萌MyDLL.四dll皱。完成上述步镜骤后,就完成猫了用户功能构立件的编制、调岗试和挂接工作净,下面介绍如堡何在弄MCGS叙系统下使用定测制的功能构件号。亩启动魂MCGS代组态环境,辈在泽“落工收具宏”蜂菜单下,将会革显示顽出案“粘我的菜单眠项爪”敢一项,选取该仇菜单项,穿MCGS逗将调用功能构康件的菜单接口佳,显示对应的弊窗口(如不需否要菜单项,则请应把功能构件版的谱SvrMen啄uComma浮nd家接口中的所有苗代码去掉)。爪打开一个运行怠策略的组态窗恭口,在运行策姑略功能构件箱目内,将回显示烫出哀“豪我的功能构邻件芒”委一项。把该构觉件选入到策略甩行中,用鼠标而双击该构件,旁MCGS要调用构件的组唤态环境接口,丹以便用户在组通态环境中对构显件的属性进行谱设置。档进入运行环境烂后,当组态环魄境组态的对应栋策略行被执行刮时,胡MCGS姥调用构件的运仆行接口,执行坐构件所实现的飞功能。秒第三聚章佣艰部开发股MCGS损设备驱动污虽然仪MCGS屿提供了大多数修常用设备的驱恋动程序,但在巡实际应用中,赚或因为所用设李备的特殊性、证或因为实际工狱程的需要,帜MCGS英所提供的设备老驱动程序总会排有些不尽人意鸣。为解决这些缺问题,拥MCGS异提供了一套规执范的设备驱动羞程序接口,允耍许用户根据自卷己的需要来定社制设备驱动程垮序。卷在学习完本章波之前,你可能号会觉得开发设陈备驱动程序是余件难事,而编雁制能在劝Win95屋和流WinNT成下能同时运行苍的设备驱动程佩序更是不可思混议。爬MCGS妹设备驱动的开幕发既不需用复避杂的汇编语言株,也不需用难放懂的向C帅语言,而只须体使用简单易用贡、大多数工程级人员都会使用完的瓣Visual冷Basic忆。食MCGS注把和操作系统丛底层打交道的书内容全部包装抛起来,以函数收调用的方式提销供给你,同时欺,川MCGS粥的高级开发向杆导能为你自动粥生成设备驱动早程序的框架,侦MCGS莲大多数设备驱乔动程序的源程间序代码也都随赢系统提供给你速。只要你会渠VB乱,熟悉你所使鬼用的硬件设备爹,你就完全可粘以按照你自己景的需要来开发嘱定制你自己的蚕设备驱动程序弄。荣本章下面各节降将详细介绍开轮发设备驱动程回序的方法和步楼骤,请在开始烤之前,先安装挖Visual糖Basic社6拍.0(赛中文专业版或归企业版票)烈,然后安装砍MCGS妇高级开发工具爆包,建议你按扮下面各节介绍拳的方法和步骤鹿来一步一步地率学习开发设备乖驱动程序。谜3踩.1湾设备驱动构件屡的实现方法羞MCGS矿用嘉Active结DLL剃构件的方式来冤实现设备驱动督程序,通过规幻范的设OLE毅接口挂接到泛MCGS骡中,使其构成丰一个整体,所猴以张MCGS员把设备驱动程琴序叫做设备驱活动构件。由于量设备驱动构件锦和清MCGS讲运行在同一个祖进程内,故设讯备构件的运行岁速度快,可靠誓性高,不存在匙传统肃DDE隐方式连接设备掏驱动时的数据全流通不畅和数张据传输速度慢狱等问题。同时考,沟OLE处是一个可扩充患的开放标准,椅用于实现不同险软件之间的相核互操作,而不面管软件本身是夸使用什么编程踪语言。因此,圈只要遵守酬MCGS醒的接口规范,寿可以使用气VB厚、勒VC滚、新Delphi榴等语言来编制赞MCGS幻的设备驱动程膏序。鉴于政Visual倡Basic枣通用性和简单号性,建议使用钉VB茎来开发阴MCGS帆的设备驱动程验序,本书也只则讲解使用模VB花进行开发的技楼术问题。由于款VB演6读.0姑以上版本是以崖二进制码来编蒜译执行程序,链其运行速度已老接近或超过螺VC猜,完全能满足适设备驱动构件攀所需的速度要蝶求。欲MCGS类把实际外部设晓备分为独立的慈设备、父设备窜和子设备三类充,独立的设备祝是可独立工作带、完成特定数觉据输入输出功狱能的设备,如蛾用于模拟量输沃入输出、数字谊量输入输出的姑PC喂接口卡等;父浊设备是本身不吉直接处理数据领输入输出,但卸起到管理其它作设备工作的设拣备,如串行口诱设备、锋IDCN-8决93房的通讯卡等;喂子设备是本身祝具有处理数据欢输入输出的功防能,但只有和础对应的父设备命一起才构成完日整工作系统的除设备:如检PLC适设备、带智能她通讯功能的仪之器仪表等;不栽同类型的设备市的工作方式有砌所不同,其对喊应的设备驱动要程序的处理方叉法也有所不同刃。本章只重点紫介绍独立设备桐(变PC越接口卡后)敢和通讯类子设禽备设备驱动程补序的开发,如析需要进行父设化备和其它类型豪子设备的设备赤驱动程序的开脸发,请和秘MCGS耐开发小组联系嫩。蔽3张.2矩设备驱动构件两接口规范姿MCGS箱设备构件的实购现方法和原理烫与标准惭VB匀的鉴Active乒DLL彻完全一致,但五MCGS未规定了一套接闹口规范,只有咬遵守这些接口挥规范的依Active默DLL浓才能用作师MCGS哄的设备驱动构坏件。造MCGS舟设备驱动构件烈必须具有如下坟5德个属性和勇8杜个方法:腰属性:等DevTyp池e插电禽辛标识设备的类框型扒属性:尿DevSty坐le寺占弄惰标识设备的类镜别宵属性:场DevCha台nnel革面寿个标识设备的通纯道个数留属性:摇DevBas劲eIO智产仅吐标识设备所用报IO抚的基地址艳属性:雁DevION趋umber办浙敲标识设备所用历IO益地址的个数腥方法:吐GetDev蔬Name蓝耕胞读取设备构件绑类型名称迁方法:牵GetDev术Help贷伏烤城调用设备构件鞠的在线帮助内捎容洁方法:舟SetDev唱Page博币袄睬调用设备的内份部属性页吴方法:吵InitNe房wDev刮歼冒指初试化设备的虎初试值乱方法:叶GetChl低Type赌绞缺腿读取设备构件溪各通道的数据话类型和注释联方法:耕InitDe换vRun夸救宵乖运行时对设备阵进行初试化工哄作刺方法:骗RunDev喇Comman淡d护宇执行指定的设缸备命令沫方法:论Collec匪tDevDa羽t涝剧很定时操作设备逃,采集或输出瓦数据鉴开发遗MCGS怨设备驱动的过社程,实际上就硬是根据设备的耐特性和含义来造完成咐8烈个方法功能的蒜编程过程。下衣面详细讲述各虑个接口的含义粒和用法:源属性接口:纲DevTyp浪e泻接口作用:隆本接口用于诊Mcgs烂确定设备构件谷的类型。对独化立的设备构件汉固定为陶0丰;对通讯子设办备,固定为膜1顾。本属性为只难读属性。夜语法形式:恼Public踪Prope利rtyGe冰tDevT脏ype()龟AsLon罢g恭属性接口过:问DevSty距le压接口作用:效本接口用于铅Mcgs赞确定设备构件搂的类别。对独迅立的设备构件魂固定为仰0穿;对通讯子设枪备,固定为俘1镇。本属性为只隐读属性。搏语法形式:书Public刊Prope翅rtyGe轨tDevS秒tyle()功AsLo念ng辞属性接口艺:羊DevCha订nnel遗接口作用:波本接口用于额Mcgs待确定设备构件搜通道个数。一聋般把本属性设笔置为只读属性射。拼语法形式:垂Public彩Prope悬rtyGe峰tDevC笨hannel住()As咱Long案属性接口脂:脊DevION统umber脚接口作用:扒本接口用于刑Mcgs幼确定设备构件私所用凶IO遥地址的个数。睬本属性为只读介属骤性承语法形式:则Public垦Prope颗rtyGe南tDevI昨ONumbe欺r()As匙Long浙属性接口窗:阳Dev口Base岔IO酱接口作用:帖本接口用于怒Mcgs话确定设备构件快所用债IO桶基地址。本属赖性为读写属性绍,在设备属性躲页中以贤16考进制数表示呜语法形式:权Public寨DevBa骄seIOA敢sLong凑或究Public肆Prope足rtyGe悉tDevB稍aseIO(淹)AsL挨ong享注意:帆对不占用牵IO臭地址的设备,牧把本属性设置轨为只读属性,补且属性值为惩0链。腔方法接口伏:洲GetDev惊Name蛾接口作用:队本接口在组态羊环境装载时被婶MCGS怜组态环境调用骆,返回设备构粮件对应的设备永类型名称,比辟如伟“无Omron雪200PL雨C销”厕等。绝MCGS加组态软件将把坟这个名称显示灶在设备工具框帮中。对于不同茧的设备,应该届返回不同的设钉备类型名称。煤语法形式:辣GetDev匀Name()则asst者ring虑返屈素回卵鹰值:闯设备类型名称淹。冷参数说明:督无。已方法接口您:系InitNe拐wDev绘接口作用:残当用户在组态奋环境的设备组持态新增加一个霉设备时调用本之接口,用于初威始化新设备的著缺省参数值。迅语法形式:唐InitNe闸wDev(S老avObj宇AsObj俘ect)a长sLong页返扔等回伤街值:赤=0沃:设备初始化极成功,灶<>0过:设备初始化祖失败。淋参数说明:梅SavObj沙捡,存盘服务对尊象,接口程序贝中通过该对象结来保存和读取鸭数据。刮方法接口楼:晒SetDev复Page炒接口作用:棍本接口在组态似环境中当用户则要修改设备的链内部属性时被掀调用,他将打晨开设置设备构板件内部属性的背对话框,并设啄置设备构件的梨属性。督语法形式:蜓SetDev终Page(S仍avObj内asObj回ect)a抱sLong姓返慎稳回扶姜值:嫁=0液:属性设置有陈效,要保存,简=1观:属性设置无尾效,不保存。街参数说明:前SavObj捎绳,存盘服务对堆象,接口程序柴中通过该对象吓来保存和读取悄数据。山方法接口虹:圣GetChl锡Type哪接口作用:宾本接口在组态君环境中调用,般读取设备通道凳的数据类型及你通道内容说明县当用户要修改恨设备的内部属堵性时被调用,铜他将打开设置乒设备构件内部牌属性的对话框劈,并设置设备歌构件的属性。疼语法形式:胞GetChl鸽Type(D滩atAs婚Varian秋t,msg等AsVa络riant)箭AsLo泻ng额返尽腊回谎弊值:称=0哀:设备通道有耍效,周=1竞:设备通道无锅效。古参数说明:肯Dat庆,长整型数组研,标识设备各讽通道的数据类穴型和输入输出您类型。躬=1扔开关型;估=2班数值型;价=3况字符型;大于井0君表示把设备通姿道的数据采集笛到后MCGS宽中,小于肢0洁表示把筛MCGS惕中的数据输出鲜到设备构件中枝;天msg烛,字符型数组脱,标识各设备龙通道内容注释宋。将方法接口残:畏InitDe睛vRun丝接口作用:赏本接口在垒MCGS吴运行环境启动版设备构件开始德采集之前被调蠢用一次,用于筐对设备硬件进互行初始化工作灭。仗语法形式:汁InitDe压vRun(S摸avObj国AsObj飘ect,D阿atObj出AsObj倍ect)a胖slong洗返叹绸回贺腊值:烟=0菠:设备工作正度常,腐=1纹:设备工作不连正常,渠MCGS育运行环境将弹寇出对话框,提盟示用户设备出散错。队参数说明:谈SavObj衰楼,存盘服务对轰象,接口程序害中通过该对象世来保存和读取拼数据。粘DataOb创j灾,实时数据库散对象,接口程煮序中通过该对次象来操作实时荐数据库对象的裤属性和方法。序方法接口羽:粘Collec的tDevDa例t哄接口作用:椒本接口由墙MCGS视运行环境在每折一次设备采集软中调用,运行未时,按设定的控时间周期定时临调用本方法采包集数据,并送片入实时数据库纵,或把实时数予据库中的数据鸽送进来,供设利备驱动构件处治理。嘉语法形式:闻Collec声tDevDa传t(DatF室AsVa办riant,证DatA柔sVari萍ant,m纤sgAs贞Varian花t)as随long筒返日岗回签元值:次=-1带:设备故障;载=0轿:采集数据有院效,但只对返汪回的输入数据歉进行处理;昂=1姨:采集数据有焰效,但对返回贫的输入输出数伟据都进行处理础;笋=2余:采集数据无服效,不须进行乳处理。堡参数说明:先DatF,亲长整型数组诸,篇标明对应设备搬通道有效,配=0籍无效,党=1帆有效;范Dat,拦浮点数组毁,豆存放设备通道绒的数值型或开耻关型数据;娱Msg,是字符数组恒,慰存放设备通道跳的字符型或事后件型数据。璃方法接口卷:立RunDev高Comman诵d狂接口作用:填本接口在衣Mcgs诸运行环境中,傻当在设备策略陕构件、用户脚匹本程序或渡OLEAu阅tomati存on遍调用中要求执蛙行特定的设备繁命令时,被调芦用。询语法形式:胖RunDev农Comman坊d(DatO剑bjAs俗Object裳,ByVa比lCmd覆AsStr董ing)a刻sLong搭赞返味活回贯文值:荣=0钢:命令正确执罗行,丹Mcgs趴将对返回的输早入输出数据进猎行处理;侵=1挣:命令执行错溪误,搞Mcgs券不对返回的输模入输出数据进挑行处理;阅=2揪:无效的设备饭命令,啄Mcgs役不对返回的输矛入输出数据进检行处理。蔑参数说明:移DataOb直j钳,实时数据库塔对象,接口程鸽序中通过该对泳象来操作实时哗数据库对象的古属性和方法;脸Cmd,冰字符型美,佩下达给设备的姻设备命令字符菌串。反3杜.3惰利用开发向导蛛生成框架这MCGS妈提供了一个高封级开发工具包砌,能快速为用际户生成设备驱筛动构件的源程萝序框架,在此惹基础上编程既贿快速,又可减阅少出错的可能疫性。请按如下矛的步骤来生成诱设备驱动构件帽的框架:崇确保旅MCGS融的高级开发工衬具包已安装正偷确;改启动崭Visual三Basic猛6旁.0惜(中文专业版提或企业版);帐选茶择泽“疤外接程歌序燥”丝菜单,单击该塔菜单下的僵MCGS瞒开发向导菜单匆项;弹出开发懂向导窗口后,杆按星“驾下一拔步额”拦按钮,弹出如嗽下图所示窗口叛:卖选择扩展构件毯的类型为设备台驱动构件,且焦设置设备驱动伐构件为独立设识备;面按共“伟下一逮步颈”锁按钮,弹出如用下图所示的窗贤口:毯设置构件工程旗名久为忌“份MyDev批”蚕,构件类型名对为练“蕉我的设备构柳件既”担。构件工程名巩为设备构件在湖VB葱下源程序的工烈程名,编译生蜂成的个Active面DLL躬构件的名称为驴MyDev.薪DLL艘。构件类型名中用于标识对应霞的构件,最后强可显示在贩MCGS摇的设备工具箱甲中。南按摊“颂下一卖步律”内按钮,出现如瞒下图所示的窗麻口,设置生成腔目录和输出目逢录都蛙为粘“浙D:\Dev京”齿,使开发向导匪自动生成的源侮程序和编译生水成的构件都位耐于同一目录下培。在一此派按库“液下一初步闯”椅按钮,然后采按怀“诚完妹成通”除按钮,而MCGS牛即开始自动生刷成朱设备驱动构件惰的源程序框架冷。省开发向导完成拦工作后,自动博生成一个名辞位背“龟MyDev瘦”烦的工程组,如蚕下图所示,在兆VB厌的工程组窗口解中可以看到该某工程组包含如冷下二个羞VB架工程:掏MyDev啊工程对应于设仅备驱动构件,密该工程包含一夜个类模块和一朋个程序模块。尤类模块帽DevObj肝完成了设备构棋件所需的所有搁接口。春TestDe钳v栗工程只用于在米VB仆环境下对设备凝构件进行调试猾,该工程包含腰两个窗体和两调个程序模块,窝在实际编程时库,无需对该工妻程进行任何修析改工作。合MCGS陕开发向导生成火的所有源程序昂代码和编译生骆成的输出文件毫都放在蚕D:\Dev脆目录下。程序膝模块蜜DevBas伪是包含一些和总硬件设备操作锅相关的常量、土数据结构的定善义和外部子程闭序的定义。贫注意:妈MCGS倍开发向导生成湾的只是设备驱多动构件的源程并序框架,没有汪任何具体的判功能,要完成雅特定的设备驱孔动,还需要在恭此基础上,针啊对具体设备的斥功能进行进一和步抛的编程和调试湿工作。通讯子挪设备驱动构件沉程序框架的自浅动生成方法和首上述步骤相同员。案3错.4报利用样例程序配移植脱MCGS拿把大多数设备送驱动构件的源忌程序代码都随宴系统一起提供棉,在实际应用把中,开发定制绍自己的设备驱差动程序的最好胀方法就是在垦MCGS这提供的源程序奔代码的基础上各进行。由于锦OLE核技术本身的复稳杂性,建议按犁照本节给定的饿方法和步骤来缺进行你的开发到工作,避免产辫生不可预料的拣错误。如果你并能严格按照本悟节的步骤进行敞开发工作,则程你可以省去对盲Active滋DLL驳编程技术及有疗关概念的学习误和了解,直接棒集中精力实现蛇设备构件的功偏能。垦从消MCGS搏高级开发工具寻包中找到你所抗需要的样例源裤程序代码,假逢定安装高级开溜发工具包时所稍选的安装目录爷为把D:\Mcg伯ssdk菊,则对应的源悦程序位于目录昆D:\Mcg压ssdk\s支amples各\Devic卷e厨下,而且按设酱备的名称来命魔名对应的目录信,如:中泰凯PC6319诱接口卡对应的植设备驱动程序启源代码的目录尾为跳ZTPC63寇19逐,欧姆龙龟PLC絮对应的设备驱勤动程序源代码三的目录为脆OmronP适LC糕。为方便说明宴,下面各步骤渠中假定选取中良泰筒PC6319脾接口卡的设备持驱动程序为样地例程序。盆建立一个新目嗽录:猴D:\MyD漏ev骑,把产ZTPC63强19杠目录内的所有士内容拷贝到惠D:\MyD互ev留目录下。新的仿设备驱动构件绢的源程序将位剃于本目录下。嫂启动姑Visual旺Basic妻6蹲.0宪,还打开工程组该永文件帖(带本例中为缎TestDe狠v.vbg贤)给。如下图所示荒,谅在镜VB嫩工程组窗口中居,今包含有二个工根程向:枣DevZT6角319鸣、题TestD钟ev雨。奶先在工程组窗就口中选中工程醋DevZT6冠319壤(被选中工

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论