最新版MCGS高级开发指南(一) 点击:10194 | 回复:51



tzzabc

    
  • 精华:3帖
  • 求助:0帖
  • 帖子:20帖 | 119回
  • 年度积分:0
  • 历史总积分:197
  • 注册:2001年8月09日
发表于:2002-04-01 13:29:00
楼主
目 录 第一章 MCGS的可扩充性 4 1.1 概述 4 1.2 可扩充的设备驱动构件 6 1.3 可扩充的功能构件 7 1.4 MCGS实时数据库对象 8 1.5 MCGS存盘服务对象 10 1.6 通过OLE自动化和其它应用程序交互 12 1.7 通过DDE和其它应用程序交互 14 1.8 直接操作MCGS的存盘数据库 16 第二章 开发MCGS功能构件 17 2.1 功能构件的实现方法 17 2.2 功能构件接口规范 18 2.3 利用开发向导生成框架 20 2.4 利用样例程序移植 22 2.5 测试和挂接功能构件 25 第三章 开发MCGS设备驱动 27 3.1 设备驱动构件的实现方法 27 3.2 设备驱动构件接口规范 28 3.3 利用开发向导生成框架 32 3.4 利用样例程序移植 35 3.5 测试和挂接设备驱动构件 37 3.6 IO端口的操作 40 3.7 串行口的操作 43 3.8 设备驱动构件的运行机制 44 3.9 增加设备构件的属性 45 3.10 定制设备属性设置对话框 47 3.11 编制简单的设备驱动构件 48 第四章 MCGS系统内部数据对象 53 4.1 $Year 53 4.2 $Month 53 4.3 $Day 53 4.4 $Hour 54 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 $RunTime 55 4.12 $PageNum 55 4.13 $UserName 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中提供的对象 74 6.1 实时数据库对象 74 6.2 存盘服务对象 92 第一章 MCGS的可扩充性 1.1 概述 MCGS组态软件是一套功能丰富、简单易用的组态软件,大部分工程师都可以很容易的使用这套组态软件来完成一个完整的工程项目。但是,当用户熟练的掌握了这套组态软件以后,用户必然会寻求在这套组态软件上进一步开发的能力。以实现有自己风格的界面、自己设计的控制算法和与自己硬件相匹配的驱动程序。其他一些长期使用Visual Basic、C++、Delphi的高级工程开发人员,为了充分利用自己的编程特长和已有的程序积累,也希望能够把自己编写的程序装配到MCGS组态软件中。 大部分面向工程应用的工程人员,虽然没有时间和精力开发自己的专有模块,但是,却希望能够从MCGS开发组或第三方的专业、业余开发者那里获得为自己定制的特殊模块,并且能够很方便的装配到现有的MCGS组态软件上。而对硬件开发商和一些高级的开发人员,都希望能够开发出自己的设备驱动模块和专业化、行业化的模块以充分利用MCGS软件的组态功能,当然,对于这些专业化的高品质模块,位于工程一线的工程人员也是具有非同一般的兴趣的。 为了满足用户的这些要求,MCGS提供一套可扩充的接口规范和配套的高级开发工具包。使用接口规范和工具包开发出来的扩充构件,具有很优越的特点: l 安全保密。扩充构件是编译成二进制代码的,可以很好的保护您的工作。非法用户不可能通过反编译你的扩充构件来获得你独有的设备驱动构件、特殊的运算构件和特殊的窗口界面。你更可以使用扩充构件来进行自己的加密,以防止你制作的工程被任意拷贝,保护你自己的利益。 l 简单快速。MCGS组态软件高级开发包中提供了常用的数据后处理构件源代码。初级用户可以直接使用这些数据后处理构件,但高级用户则可以修改这些构件的源代码,以满足自己特殊的要求。众所周知,工控工程的数据后处理部分具有各自不同的要求,因此一般的组态软件,都要求用户自己使用例如Excel、Access等软件来完成自己的特殊的后处理。但是MCGS组态软件除了可以用类似的方法处理外,还提供了另外一种不同的处理方法。那就是高级用户可以修改MCGS组态软件高级开发工具包中所提供的后处理构件源代码,然后生成自己的扩充构件,装配到MCGS组态软件上,就可以组成自己独有的后处理系统。 l 性能优异。使用这种方法开发出来的MCGS组态软件的扩充构件具有很高的速度和性能。据微软公司测试,使用Visual C++软件开发出来的程序,只比使用Visual Basic开发出来的速度高百分之十,有时甚至还低于Visual Basic。而使用Visual Basic开发的方便性和易用性又是Visual C++所远远不能比拟的。在编写MCGS组态软件的扩充构件时,Visual Basic确实是一种最佳选择。 l 任务明确。MCGS的这种扩充构件具有清晰的结构,你完全可以向MCGS组态软件的开发组或第三方的开发人员提出要求,为你编写一个定制的扩充构件。而不会存在功能纠缠不清,任务确定不明的问题。 MCGS组态软件的高级开发,基本上是基于微软公司的OLE标准,利用了最新的ActiveX技术。这种新技术保证能够方便地使用当前各种先进的开发工具来开发自己的扩充构件。如:Visual Basic、Visual C++以及其它公司的各种编程软件也可以方便地开发MCGS组态软件的扩充构件。但是,MCGS为使用微软公司的Visual Basic准备了丰富的样例程序和功能强大的高级开发向导。这个高级开发向导可以帮助你很方便的生成各种扩充构件的框架结构,使你能够快速的进入自己的编程工作。在MCGS组态软件高级开发工具包中,还提供了给开发员使用的一个源代码级调试程序。因此,MCGS强烈建议使用微软公司的Visual Basic软件来开发MCGS的扩充构件。在本书中,主要介绍如何使用Visual Basic来开发MCGS组态软件扩充构件。但由于它是基于OLE技术标准的,所以如果你能够熟练地使用Visual C++、Delphi等软件,你也可以按照本书中给出的OLE界面标准,来制作自己的组态软件扩充构件。 为了能够使用MCGS组态软件高级开发工具包,你应该具有如下条件: l 硬件方面:必须具有Pentium以上的CPU,以及十六兆以上的内存。 l 软件方面:应使用微软的Windows’95或Window’NT 4.0操作系统,安装了微软的Visual Basic 6.0专业版或企业版。还应安装了MCGS光盘上的MCGS组态软件和MCGS组态软件高级开发工具包。 使用MCGS组态软件高级开发工具包和微软Visual Basic软件来开发MCGS组态软件扩充构件,要求你应该大致了解Visual Basic软件的功能和使用方法。如果你对Visual Basic软件不太了解,那麽就应该首先学习和了解一下Visual Basic软件。我们建议采用如下的方法进行学习:首先,你应该仔细阅读《Visual Basic联机手册》这本书中的“程序员指南”这一章。其次,你应该仔细读懂Visual Basic安装后附带的三到四个例子,这些例子安装在Visual Basic目录下的\Samples目录中。在这期间你可参考和阅读“程序员指南”这一章中的“VB基础”这一节中的有关菜单、窗体、构件等的描述。通过大约经过一个星期的学习,你就可以在MCGS组态软件高级开发包中的高级开发向导的帮助下,制作一些你自己的简单的扩充构件。也可以从高级开发包中的样例程序出发,通过修改相应的部分,来生成自己的扩充构件。 MCGS组态软件的可扩充性主要有以下几个方面组成: l 挂接定制的设备驱动构件。 l 挂接定制的功能构件。 l 在其它应用程序中通过OLE直接操作MCGS所提供的对象。 l 通过DDE连接,建立MCGS和其它应用程序间的数据传递。 MCGS可扩充构件的提出和设计都经过了长期的工程实践的检验和考虑,能够确保实现工程进一步开发中的所有任务,而且具有结构简单、功能齐备的特点。 1.2 可扩充的设备驱动构件 可扩充的设备驱动构件能实现多种设备驱动的方式。你可以使用独立的设备驱动构件形式,如:A/D、D/A板采集驱动构件。也可以使用父子设备驱动结构形式,如:使用串口为父设备,使用挂接在串口上的各个PLC为子设备。这已经涵盖工控工程中常用的板卡采集、现场总线等等设备硬件连接模式。 在设备驱动构件中,你可以使用查询的工作方式,查询的周期从十毫秒到任意长的时间。也可以使用中断的方式,来高效完成设备驱动的任务。尤其在使用串口等低速率传送的设备时,使用中断方式来采集数据,可以充分利用等待串口通讯的时间来完成诸如图形动画等其它工作,以保证动画的平滑运动和界面反应的灵敏性。在使用板卡采集的时候,由于板卡采集速度较快,而且设备驱动运行都处在各自独立的线程内,一般都采用查询采集的方式来处理设备驱动的工作。 在设备驱动构件中,你还可以实现设备热更换的功能。MCGS组态软件可以从设备驱动构件的返回值中得到设备运行状态的,对于有错误的设备,MCGS组态软件将自动停止其采集,但是,每隔十个采集周期,MCGS组态软件将自动重新驱动设备驱动构件一次,再重新确



草地呢

  • 精华:1帖
  • 求助:0帖
  • 帖子:14帖 | 238回
  • 年度积分:0
  • 历史总积分:492
  • 注册:2006年10月12日
发表于:2006-10-17 11:17:00
21楼
您好,我要一份. qiuqiu1460@126.com

潘宏胜

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 2回
  • 年度积分:0
  • 历史总积分:2
  • 注册:2006年10月30日
发表于:2006-10-30 09:06:00
22楼
我的是xiaopan123zhu@163.com
我也要一份.谢谢!

www.cn

  • 精华:0帖
  • 求助:0帖
  • 帖子:48帖 | 1717回
  • 年度积分:0
  • 历史总积分:2433
  • 注册:2006年5月16日
发表于:2006-11-01 21:11:00
23楼
给我发一份吧,
谢谢!!
blueblue1234567@163.com

bruceyang

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 1回
  • 年度积分:0
  • 历史总积分:1
  • 注册:2006年12月19日
发表于:2006-12-20 09:04:00
24楼

Jackie-super

  • 精华:0帖
  • 求助:0帖
  • 帖子:10帖 | 136回
  • 年度积分:0
  • 历史总积分:221
  • 注册:2005年4月14日
发表于:2006-12-23 15:38:00
25楼
请在以下链接中下载:感谢支持。
http://www.mcgs.com.cn/download/index.asp

原地跑步

  • 精华:0帖
  • 求助:0帖
  • 帖子:17帖 | 56回
  • 年度积分:0
  • 历史总积分:137
  • 注册:2006年9月10日
发表于:2006-12-28 14:32:00
26楼
那上面没有高级开发包啊
能给我发一个吗?
email:heniao_123@163.com
谢谢

原地跑步

  • 精华:0帖
  • 求助:0帖
  • 帖子:17帖 | 56回
  • 年度积分:0
  • 历史总积分:137
  • 注册:2006年9月10日
发表于:2006-12-29 16:57:00
27楼
今天下了指南
学了一下里面的DDE连接,DDE输入没问题。
但DDE输出没反应,我在EXCEL里输入的是MCGSRun|DataCentre.Data01到MCGSRun|DataCentre.Data10
我建的变量名是Data01........

可能是哪出了问题了啊?!
请指教,谢谢

jin-zt

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 1回
  • 年度积分:0
  • 历史总积分:1
  • 注册:2007年4月02日
发表于:2007-04-02 16:10:00
28楼
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数据对象中。
   
  Dim DatObj As Object
  
  Private Sub Form_Load()
   On Error Resume Next
   Set DatObj = GetObject(, "McgsRun.DataCentre")
   If Err Then
   MsgBox ("请先启动MCGS运行环境!")
   End
   End If
  End Sub
  
  Private Sub Cmd_Read_Click()
   Dim msg As String, tt As Variant
   For i = 1 To 10
   msg = "Dat" + Format$(i, "00")
   DatObj.GetValueFormName msg, tt
   Txt(i) = Format$(tt)
   Next i
  End Sub
  Private Sub Cmd_Wirte_Click()
   Dim msg As String, tt As Variant
   For i = 1 To 10
   msg = "Dat" + Format$(i, "00")
   tt = Val(Txt(i + 10))
   DatObj.SetValueFormName msg, tt
   Next i
  End Sub
  在Assess、Excel中都有对应的VB程序可以编程,实现对MCGS的各种操作,其方法和在Visual Basic中基本相同,可参考上面的代码进行。


 在这段操作中,如何使用OLE控件? 
   谢谢帮忙,QQ342750688

alan01111

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 1回
  • 年度积分:0
  • 历史总积分:1
  • 注册:2007年5月15日
发表于:2007-05-15 17:27:00
29楼
我这个学习正在做关于MCGS的毕业设计课题,是用VB开发MCGS的设备驱动程序,虽然很简单,但由于我对于MCGS的了解处于初级阶段,所以希望能得到更多的指导,看到这篇文章感觉收益菲浅,希望能得到份完整的版本,万分感谢!
 alanwyan_g@yahoo.com.cn

其实

  • 精华:0帖
  • 求助:0帖
  • 帖子:3帖 | 6回
  • 年度积分:0
  • 历史总积分:65
  • 注册:2007年12月31日
发表于:2008-01-01 12:25:00
30楼
请发一份给我好吗yibaofan@126.com

唐进

  • 精华:20帖
  • 求助:0帖
  • 帖子:301帖 | 1339回
  • 年度积分:0
  • 历史总积分:106
  • 注册:2004年9月02日
发表于:2008-01-02 06:41:00
31楼
不错,继续
给我发一份吧,
谢谢!!
8031551@sina.com

mcgsslq

  • 精华:0帖
  • 求助:0帖
  • 帖子:50帖 | 533回
  • 年度积分:0
  • 历史总积分:1566
  • 注册:2005年11月09日
发表于:2008-01-16 21:51:00
32楼
支持一下

mcgsslq

  • 精华:0帖
  • 求助:0帖
  • 帖子:50帖 | 533回
  • 年度积分:0
  • 历史总积分:1566
  • 注册:2005年11月09日
发表于:2008-02-17 23:40:00
33楼
支持一下

nean0305888888

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 1回
  • 年度积分:0
  • 历史总积分:0
  • 注册:1900年1月01日
发表于:2008-12-31 11:48:29
34楼

支持一下,给我发一份吧

邮箱地址:nean03058888@163.com

QQ:251980322 !!!非常感谢啊

manuni2009

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 1回
  • 年度积分:0
  • 历史总积分:0
  • 注册:1900年1月01日
发表于:2009-03-02 08:17:35
35楼

我刚学习,请给我发份:

dingbo30@slof.com

谢谢

汤汤

  • 精华:0帖
  • 求助:0帖
  • 帖子:3帖 | 431回
  • 年度积分:0
  • 历史总积分:2468
  • 注册:2009年2月25日
发表于:2009-03-18 11:45:38
36楼

偶也要啊

新手  帮忙给一个好吗

邮箱tangtangdjl@126.com

Thank

jljy

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 2回
  • 年度积分:0
  • 历史总积分:2
  • 注册:2009年3月21日
发表于:2009-03-21 16:22:48
37楼

我是一名控制人员,才从事mcgs工作,看此收益颇多,请发一份给我。不胜感激!!!!!

邮箱:jiangbeijiaoyang@163.com

GAOCHONG660123

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 5回
  • 年度积分:0
  • 历史总积分:156
  • 注册:2008年9月26日
发表于:2010-08-29 14:30:24
38楼
能否把最新版MCGS高级开发指南通过电子邮件发给我,十分感谢!
e-mail:     gaochong660123@126.com 

chenwei3751845

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 2回
  • 年度积分:0
  • 历史总积分:39
  • 注册:2010年9月26日
发表于:2010-09-26 15:17:07
39楼
遇到高人了啊 能否发一份高级开发指南给我啊 万分感谢啊 chenwei3751@sina.com

xingyuan000

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 1回
  • 年度积分:0
  • 历史总积分:11
  • 注册:2010年9月27日
发表于:2010-09-27 16:20:30
40楼

我做毕业设计要用到MCGS软件,现在刚刚学习,能够给我发MCGS软件高级开发包及这个开发指南吗?我的邮箱是huangmeisemail@163.com 。谢谢!非常感谢!


热门招聘
相关主题

官方公众号

智造工程师