首页 上一页 1 2 下一页 尾页

组态王驱动的C#接口 点击:5915 | 回复:24



lyseed

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 2回
  • 年度积分:0
  • 历史总积分:49
  • 注册:2009年10月08日
发表于:2011-11-30 10:01:51
楼主

组态王驱动的C#接口
所有描述对组态王6.53,6.55适用
开发工具是 VS 2005


开发一个组态王驱动,需要三个步骤
1 按组态王定义的接口写一个COM
2 将写完的COM加入到组态王的DevLst_Default.dat文件
3 向系统注册COM


组态王的驱动原始接口是由C++定义的,我将C++的定义翻译成C#的定义.
并且提供一个项目模板,写一个组态王的驱动,变成非常容易的事情.
.NET非常好的封装了COM对象,开发一个COM就象开发一个普通的DLL一样简单,
使用这个C#接口,可以利用.NET的全部资源.

组态王的驱动,有二个问题.
一个是大量的使用指针来传递变量和结构,这些指针只能在本进程使用,
这样驱动就不能跨进程使用,更不能安装在不同的电脑,形成分布式服务.
调用这些驱动,更象调用一个本地DLL.
这到不影响什么,组态王一样可以很好的运行.
第二个问题比较严重,严重到什么程度呢?严重到妨碍组态王的顺利升级.
组态王的接口定义有一个结构,叫Packet,所有与主程序的数据交换都是靠这个结构完成的.
这个Packet结构里有一个成员变量叫CPtrList,这是一个类,出自MFC,组态王也是把MFC的源代码拷贝过来使用.
这就出现问题了,如何在C#里还原这个类?一个类大概包含成员变量和成员函数,现在叫方法.
在内存中还原一个类,必须要有基本一致或完全一致的内存布局,一个类的内存布局是由连接器和操作系统决定的.
也就是我们的开发工具,我尝试了一些方法,在C#中还原这个类,但是都不能成功,
使用内存搜索,直接找主程序传递过来的变量,这个到是可以变相的还原了这个类,
但不是一个规范的方法,只要操作系统改变,或者微软升级了什么文件,这个方法就可能出错.
我询问了其他C++程序员,讨论的结果是使用规范的方法,是没有办法在C#中还原这个类的.
最后,我只好用C++写了一个DLL来完整的还原这个类,还好,这个DLL是一劳永逸的,只要组态王不改变接口,
这个DLL就一直可以使用,在C#中调用这个DLL来完成还原CPtrList,得到变量,其他的事情还是完全在C#中处理.
我把这个DLL取名ProcessPacket.dll.

对于组态王,有一个潜在的问题,如果组态王的主程序,这个由亚控完成,使用的连接器,与另外一些人开发驱动的连接器不兼容,
驱动一样不能使用,到目前为止,微软的VC6.0,VC7.0,VC8.0都完全兼容,不知道以后会是什么样.
把驱动的开发,与第三方开发工具紧密结合在一起,不知道组态王是如何考虑这个问题的.


组态王的驱动开发完成后,还不能被使用,需要加入到组态王的DevLst_Default.dat文件中,才能被组态王使用.
我提供了另一个工具KingDriverManager.exe.
可以添加或删除驱动,可以引入或输出DES文件,也可以生成自注册的EXE文件,方便程序转移.

什么时候需要写一个驱动?凡是组态王主程序不方便完成的都可以由驱动完成,因为驱动可以利用.NET的全部资源.
驱动也就是一段代码,作用是与主程序交换数据.
具体来讲:
1 有一个新硬件时.
2 复杂计算,组态王的命令语言效率极低,复杂的计算可以放到驱动里用C#完成
3 精确测速,主要是使用脉冲测速,需要精确计时,组态王不能准确的完成
4 读写数据库,组态王的命令语言效率极低,利用C#,可以快速的处理数据库
5 显示特殊窗口,可以在驱动里显示任意窗口
6 生成一个B/S应用,可以利用驱动开发一个HTTP服务器,在其他地方用IE观察本地数据
7 与其它程序交换数据,比如你自己定义一个协议,而不是利用OPC交换数据.

不知道如何上传压缩包.

压缩包文件
1 一个完整的组态王驱动接口的C#项目源代码
2 开发模板的KingDriverInterface.zip文件,可以把这个KingDriverInterface.zip文件放到你的VS项目模板目录,
VS环境就可以直接生成全部需要的代码,都是完整的C#代码
3 一个模板安装SetupKingDriverInterface.vsi文件,如果你不知道VS模板目录,
直接双打击这个文件SetupKingDriverInterface.vsi,就安装了这个项目模板.
4 组态王驱动编辑器KingDriverManager.exe,用它可以添加你写的驱动
5 组态王接口的原始定义,这是亚控的文件

2442179599




wangfangbupt

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 1回
  • 年度积分:0
  • 历史总积分:11
  • 注册:2006年6月10日
发表于:2011-12-01 17:19:14
1楼
您好,我急需该压缩包,能否给我发一个,谢谢您.邮箱13863417783@139.com

zhwwf081

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 6回
  • 年度积分:0
  • 历史总积分:52
  • 注册:2006年9月10日
发表于:2012-02-05 22:13:12
2楼

老大,我也想要一个,能不能给我发一个,小弟在这里万分感谢!!

我的邮箱是“:lion081@163.com

lhh8111

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 1回
  • 年度积分:0
  • 历史总积分:17
  • 注册:2004年1月04日
发表于:2012-02-10 22:20:41
3楼
老大我也要一个 请发到邮箱dabizilhh@163.com

刘春波

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 8回
  • 年度积分:0
  • 历史总积分:93
  • 注册:2006年4月04日
发表于:2012-03-18 14:59:12
4楼
非常感谢,请问能否发我一份 gongkong888@yahoo.com.cn

wawaxiaozhu

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 8回
  • 年度积分:0
  • 历史总积分:50
  • 注册:2011年11月18日
发表于:2012-06-19 11:11:29
5楼

老大,我也要一个,能给我也发一份吗?我的邮箱是yskj20031203@yahoo.com.cm ,非常感谢!

色布欧美

  • 精华:0帖
  • 求助:0帖
  • 帖子:47帖 | 1023回
  • 年度积分:0
  • 历史总积分:1499
  • 注册:2012年3月02日
发表于:2012-06-20 22:16:05
6楼
路过。。。。                             

z123y

  • 精华:0帖
  • 求助:0帖
  • 帖子:24帖 | 1219回
  • 年度积分:0
  • 历史总积分:1578
  • 注册:2012年3月02日
发表于:2012-06-21 13:09:05
7楼
引用 色布欧美 的回复内容: 路过。。。。                             



艾诺樱桃帮v

  • 精华:0帖
  • 求助:1帖
  • 帖子:24帖 | 1555回
  • 年度积分:1
  • 历史总积分:1539
  • 注册:2012年3月02日
发表于:2012-06-25 22:36:11
8楼
引用 z123y 的回复内容: 引用 色布欧美 的回复内容: 路过。。。。                             



老微

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 1回
  • 年度积分:0
  • 历史总积分:11
  • 注册:2012年2月01日
发表于:2012-07-06 15:49:19
9楼

你好,可否发我一份? ZOE125147594@163.com

另外,愚昧的问一下,是否可以直接用组态王驱动开发包来编写驱动?谢谢你!

nkdfz

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 3回
  • 年度积分:0
  • 历史总积分:36
  • 注册:2009年6月29日
发表于:2012-07-09 20:32:15
10楼
楼主,给我也发一份,学习一下哈。2568727745@qq.com

xwg_xiaowugui

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 1回
  • 年度积分:0
  • 历史总积分:11
  • 注册:2012年10月11日
发表于:2012-10-11 22:55:15
11楼

lz,能不能发一份给我啊,zjw5000@yahoo.com.cn

admjewcw

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 1回
  • 年度积分:0
  • 历史总积分:11
  • 注册:2013年3月17日
发表于:2013-03-17 21:25:03
12楼

楼主你好,我是菜鸟,能否发个压缩包来,学习下,先万分感谢!!

我的邮箱是admjewcw@163.com

王者之师—广州@阿君

  • [版主]
  • 精华:25帖
  • 求助:18帖
  • 帖子:503帖 | 6997回
  • 年度积分:0
  • 历史总积分:66772
  • 注册:2010年6月26日
发表于:2013-03-17 22:33:36
13楼
C#s 是开发游戏的吧。。。。。。。。。。。。。。。。。

王者之师—广州@阿君

  • [版主]
  • 精华:25帖
  • 求助:18帖
  • 帖子:503帖 | 6997回
  • 年度积分:0
  • 历史总积分:66772
  • 注册:2010年6月26日
发表于:2013-03-17 22:35:09
14楼
邮箱党啊邮箱党。。。。。。伸手党呀伸手党。。。。。。。。。。。

王者之师—广州@阿君

  • [版主]
  • 精华:25帖
  • 求助:18帖
  • 帖子:503帖 | 6997回
  • 年度积分:0
  • 历史总积分:66772
  • 注册:2010年6月26日
发表于:2013-03-17 22:35:23
15楼
引用 wawaxiaozhu 的回复内容:老大,我也要一个,能给我也发一份吗?我的邮箱是yskj20031203@yahoo.com.cm ,非常感谢!



ldd126ldd

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 2回
  • 年度积分:0
  • 历史总积分:0
  • 注册:2013年4月18日
发表于:2013-12-06 19:08:15
16楼

楼主,你好,你写的很好,很实用,能否发个组态王的驱动编辑器KingDriverManager.exe,非常感谢!邮箱:599696842@qq.com

lanhuiwang

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 1回
  • 年度积分:0
  • 历史总积分:1
  • 注册:2014年3月06日
发表于:2014-03-06 17:46:10
17楼

急需该驱动包,学习学习,但愿你能发给我,非常感谢1325540256@qq.com

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 5回
  • 年度积分:0
  • 历史总积分:23
  • 注册:2007年7月14日
发表于:2015-06-26 00:44:19
18楼

wosinfei@163.com

燃斋饭

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 62回
  • 年度积分:92
  • 历史总积分:817
  • 注册:2016年6月29日
发表于:2017-03-02 16:15:31
19楼

这是一个好梯子,我的标记一下


沭阳小马哥

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 5回
  • 年度积分:0
  • 历史总积分:111
  • 注册:2017年12月20日
发表于:2018-03-29 16:15:06
20楼

大神,能否把资料发我一份,谢谢!1905131222@qq.com


热门招聘
相关主题

官方公众号

智造工程师
    
    首页 上一页 1 2 下一页 尾页