有偿寻求opc客户端软件开发 点击:1072 | 回复:13



ftp11

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 0回
  • 年度积分:0
  • 历史总积分:3
  • 注册:2008年4月14日
发表于:2008-09-01 16:11:39
楼主

我公司欲开发自己的opc客户端软件,具体要求为:
1: 支持opc2.0
2: 通讯稳定可靠(应用在工控领域)
3: 在客户端嵌套我方程序,实现数据 "读取-->计算--->写入" 功能。
4: 自达成协议起一个月内提供可稳定可靠运行的程序源代码。

具体开发费用双方商议确定,有意者请留下联系方式。




fish001

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 46回
  • 年度积分:0
  • 历史总积分:81
  • 注册:2008年6月30日
发表于:2008-09-02 09:53:19
1楼

opcfundation@163.com  QQ:1017715984 欢迎联系

 

cel_ac

  • 精华:0帖
  • 求助:0帖
  • 帖子:4帖 | 15回
  • 年度积分:0
  • 历史总积分:25
  • 注册:2004年10月18日
发表于:2008-09-03 11:39:32
2楼

tomyi

  • 精华:0帖
  • 求助:1帖
  • 帖子:21帖 | 233回
  • 年度积分:0
  • 历史总积分:598
  • 注册:2002年10月30日
发表于:2008-09-04 12:20:34
3楼
欢迎ModbusOPCServer2.0测试  就有现成的VC写得OPCClient源码

opcfan

  • 精华:0帖
  • 求助:0帖
  • 帖子:62帖 | 58回
  • 年度积分:0
  • 历史总积分:667
  • 注册:2004年9月29日
发表于:2008-09-07 10:42:16
4楼

欢迎使用OM_OPCClt.dll。QQ是:250561779

 

OM_OPCClt开发API介绍

一、     简介

OM_OPCClt.dll是根据OPC DA 2.05a Specification撰写出来的OPC DA Client的开发工具包,其具有以下特点:

1.     使用STL撰写。

2.     使用Unicode字符集,源码可方便地移植到WinCE平台下

3.     支持WinCE平台

4.     可连接OPC DA 2.0 1.0服务器

 

二、     API介绍

1. HRESULT OMCoInit()

初始化COM

2. void    OMCoUninit()

反初始化COM

====================================================

3. HRESULT NumberOfOPCServers(LPCWSTR szMachineName, int *num)

枚举机器上安装的OPC服务器

szMachineName: 要枚举服务器的机器名

num: 返回OPC服务器的数目

4. HRESULT GetOPCServerName(int nIndex, WCHAR *pBuf, int nBufSize)

获取OPC服务器的ProgID

nIndex: OPC服务器的位置,其值在0~(num-1)之间

pBuf: 存储获取的OPC服务器的ProgID

nBufSize: 缓冲区的大小

5. HRESULT ConnectOPCServer(LPCWSTR szMachineName, LPCWSTR szServerName, HANDLE hClient, HANDLE *phConnect)

OPC服务器建立连接

szMachineName: 要连接的服务器所在的机器位置

szServerName: OPC服务器的ProgID

hClient: Client传递的句柄,当有Shutdown回调时会回传此句柄

phConnect: 存储对应服务器的句柄

6. HRESULT EnableShutdownCallback(HANDLE hConnect, SHUTDOWNPROC lpCallback)

设置Shutdown回调,当Server关闭时会产生此回调

hConnect: OPC服务器的句柄

lpCallback: 产生回调时执行的函数

7. HRESULT GetSvrStatus(HANDLE hConnect, OPCSERVERSTATUS *pSvrStatus, int nVendorInfoBufSize)

获取服务器的状态信息

hConnect: OPC服务器的句柄

pSvrStatus: 存储服务器的状态信息

nVendorInfoBufSize: 指示存储VendorInfo的缓冲区的大小

8. HRESULT DisconnectOPCServer(HANDLE hConnect)

OPC服务器断开连接

hConnect: 指向相应服务器的句柄

====================================================

9. HRESULT NumberOfOPCItems(HANDLE hConnect, int *num)

获取Server地址空间中定义的Item数目

hConnect: 对应服务器的句柄

num: 存储返回的Item数目

10. HRESULT GetOPCItemName(HANDLE hConnect, int nIndex, WCHAR *pBuf, int nBufSize)

获取Item的标志符

hConnect: 对应服务器的句柄

nIndex: Item的位置,范围在0~num-1)之间

pBuf: 存储Item标志符的缓冲区地址

nBufSize: 指示缓冲区大小

11. HRESULT SetBrowseFilters(HANDLE hConnect, LPCWSTR szFilterCriteria, VARTYPE vtDataTypeFilter, DWORD dwAccessRightsFilter)

设置获取Item过滤器,此函数应在NumberOfOPCItems之前调用,适用于DA 2.0 Server

hConnect: 对应服务器的句柄

szFilterCriteria: Server端定义的过滤字符串

vtDataTypeFilter: Item类型过滤

dwAccessRightsFilter: 访问权限过滤

12. HRESULT SetBrowseFiltersEx(HANDLE hConnect, LPCWSTR szNameFilter, LPCWSTR szVendorFilter)

设置获取Item过滤器,此函数应在NumberOfOPCItems之前调用,适用于DA 3.0 Server

hConnect: 对应服务器的句柄

szNameFilter: Item名称过滤

szVendorFilter: Server端自定义的过滤字符串

13. HRESULT GetNameSpaceType(HANDLE hConnect, OPCNAMESPACETYPE *pNameSpaceType)

获取服务器地址空间的类型

hConnect: 对应服务器的句柄

pNameSpaceType: 存储服务器地址空间的类型

14. HRESULT BrowseTo(HANDLE hConnect, LPCWSTR szNodeName)

移动到地址空间指定的节点位置

hConnect: 对应服务器的句柄

szNodeName: 移动到节点位置的名称

      NULL:回到根节点

      NUL String:返回上一级节点

      非空字符串:进入下一级指定的节点

15. HRESULT NumberOfNodeItems(HANDLE hConnect, OPCBROWSETYPE enFilter, int *num)

获取地址空间当前层节点的数目

hConnect: 对应服务器的句柄

enFilter: 节点过滤

num: 存储节点的数目

16. HRESULT GetNodeItemName(HANDLE hConnect, int nIndex, WCHAR *pBuf, int nBufSize)

获取节点名称

hConnect: 对应服务器的句柄

nIndex: 节点的位置,范围在0~(num-1)之间

pBuf: 存储节点的名称

nBufSize: 缓冲区的大小

16. HRESULT QualifyItemName(HANDLE hConnect, LPCWSTR szItemName, WCHAR *pItemID, int nBufSize)

获取节点完整的名称,如Device.Group.Node1

hConnect: 对应服务器的名称

szItemName: GetNodeItemName返回的节点名称

pItemID: 存储节点的ID

nBufSize: 缓冲区的大小

====================================================17. HRESULT AddOPCGroup(HANDLE hConnect, LPCWSTR szName, BOOL bActive, DWORD *pUpdateRate, LONG *pTimeBias, float *pDeadband, HANDLE *phGroup)

添加组到服务器

hConnect: 对应服务器的句柄

szName: 组的名称

bActive: 活动状态

pUpdateRate: 更新速率,同时也返回Server修正过后的更新速率

pTimeBias: 时间偏置

pDeadband: 更新变化范围

phGroup: 返回组对应的句柄

18. HRESULT EnableDataCallback(HANDLE hConnect, HANDLE hGroup, DATACALLBACKPROC lpCallback)

设置DataCallback回调

hConnect: 对应服务器的句柄

hGroup: 对应组的句柄

lpCallback: 回调发生时执行的函数

19. HRESULT RemoveOPCGroup(HANDLE hConnect, HANDLE hGroup)

删除指定的组

hConnect: 对应服务器的句柄

hGroup: 对应组的句柄

20. HRESULT GetGroupState(HANDLE hConnect, HANDLE hGroup, WCHAR *pName, int nNameLen, DWORD *pUpdateRate, BOOL *pActive, LONG *pTimeBias, float *pPercentDeadband)

获取组的属性

hConnect: 对应服务器的句柄

hGroup: 对应组的句柄

pName: 组的名称

nNameLen: 缓冲区的大小

pUpdateRate: 更新速率

pActive: 活动状态

pTimeBias: 时间偏置

pPercentDeadband: 更新变化范围

21. HRESULT SetGroupState(HANDLE hConnect, HANDLE hGroup, DWORD *pUpateRate, BOOL bActive, LONG *pTimeBias, float *pPercentDeadband)

设置组的属性

hConnect: 对应服务器的句柄

hGroup: 对应组的句柄

pUpdateRate: 更新速率

bActive: 活动状态

pTimeBias: 时间偏置

pPercentDeadband: 更新变化范围

22. HRESULT RefreshOPCGroup(HANDLE hConnect, HANDLE hGroup, OPCDATASOURCE dwSource = OPC_DS_CACHE)

刷新组内数据项的值

hConnect: 对应服务器的句柄

hGroup: 对应组的句柄

dwSource: 数据刷新方式

23. HRESULT SetGroupName(HANDLE hConnect, HANDLE hGroup, LPCWSTR szName)

更改组的名称

hConnect: 对应服务器的句柄

hGroup: 对应组的句柄

szName: 组的名称

====================================================

24. HRESULT AddOPCItem(HANDLE hConnect, HANDLE hGroup, LPCWSTR szName, LPCWSTR szAccessPath, VARTYPE *pCanonicalType, HANDLE hClient, HANDLE *phItem)

添加数据项到服务器

hConnect: 对应服务器的句柄

hGroup: 对应组的句柄

szName: 要添加数据项的ID

szAccessPath: 访问路径

pCanonicalType: 订阅的数据类型,同时返回规范的数据类型

hClient: Client传递的句柄,DataCallback回调时会回传此句柄

phItem: 返回数据项的句柄

25. HRESULT RemoveOPCItem(HANDLE hConnect, HANDLE hGroup, HANDLE hItem)

删除指定的数据项

hConnect: 对应服务器的句柄

hGroup: 对应组的句柄

hItem: 对应数据项的句柄

26. HRESULT ReadOPCItem(HANDLE hConnect, HANDLE hGroup, HANDLE hItem, VARIANT *pValue, FILETIME *pTimeStamp, DWORD *pQuality, OPCDATASOURCE dwSource = OPC_DS_CACHE, BOOL DoAsync = FALSE)

读取数据项的值

hConnect: 对应服务器的句柄

hGroup: 对应组的句柄

hItem: 对应数据项的句柄

pValue: 返回值

pTimeStamp: 返回时间

pQuality: 返回品质

dwSource: 读取的源

DoAsync: 是否使用异步方式

27. HRESULT WriteOPCItem(HANDLE hConnect, HANDLE hGroup, HANDLE hItem, VARIANT *pVal, BOOL DoAsync = FALSE)

写数据项的值

hConnect: 对应服务器的句柄

hGroup: 对应组的句柄

hItem: 对应数据项的句柄

pVar: 要写的值

DoAsync: 是否采用异步方式

28. HRESULT ChangeOPCItemState(HANDLE hConnect, HANDLE hGroup, HANDLE hItem, BOOL bActive)

改变数据项的活动状态

hConnect: 对应服务器的句柄

hGroup: 对应组的句柄

hItem: 对应数据项的句柄

bActive: 数据项的活动状态

29. HRESULT GetOPCItemInfo(HANDLE hConnect, HANDLE hGroup, LPCWSTR szName, VARTYPE *pType, DWORD *pAccessRights)

获取数据项的信息

hConnect: 对应服务器的句柄

hGroup: 对应组的句柄

szName: 要获取信息的数据项的ID

pType: 返回数据项的规范类型

pAccessRights: 返回数据项的访问权限

30.HRESULT GetErrorString(HANDLE hConnect, HRESULT ErrorCode, WCHAR *pBuf, int nBufSize)

返回错误码对应的错误信息

hConnect: 对应的服务器句柄

ErrorCode: 错误代码

pBuf: 存储错误信息的缓冲区

nBufSize: 缓冲区的大小

yblee

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 20回
  • 年度积分:0
  • 历史总积分:75
  • 注册:2008年1月16日
发表于:2008-09-08 12:03:34
5楼
leeyoubeing@tom.com,QQ:185437756,用Delphi写的OPCClient和OPCServer,已在多个工程中使用,欢迎联系

yblee

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 20回
  • 年度积分:0
  • 历史总积分:75
  • 注册:2008年1月16日
发表于:2008-09-08 12:03:37
6楼

--------------

叶勺

  • 精华:0帖
  • 求助:0帖
  • 帖子:37帖 | 28回
  • 年度积分:0
  • 历史总积分:145
  • 注册:2008年4月10日
发表于:2008-09-08 14:27:34
7楼
http://www.controx2000.com/MENU/down05_list.asp

myopc

  • 精华:1帖
  • 求助:0帖
  • 帖子:25帖 | 43回
  • 年度积分:0
  • 历史总积分:159
  • 注册:2002年9月05日
发表于:2008-09-20 17:20:16
8楼
北京的话找我,已经接了很多opc开发的活了。

myopc

  • 精华:1帖
  • 求助:0帖
  • 帖子:25帖 | 43回
  • 年度积分:0
  • 历史总积分:159
  • 注册:2002年9月05日
发表于:2008-09-20 17:20:29
9楼
myopc.hi@gmail.com

deng_lp

  • 精华:5帖
  • 求助:0帖
  • 帖子:65帖 | 2669回
  • 年度积分:0
  • 历史总积分:2876
  • 注册:2001年6月19日
发表于:2008-09-21 08:15:58
10楼
引用fish001 的回复内容:

opcfundation@163.com  QQ:1017715984 欢迎联系

 


下一个kepwareex 内,选自定义安装,有完整的VB,VC 客户端源程序。



[明月夜]

  • 精华:3帖
  • 求助:0帖
  • 帖子:114帖 | 3593回
  • 年度积分:0
  • 历史总积分:7688
  • 注册:2008年3月16日
发表于:2009-05-07 15:54:04
11楼

OPC客户端简单,我可以用C++BUILDER6邦你做,呵呵!

 

njsunsky

  • 精华:1帖
  • 求助:0帖
  • 帖子:30帖 | 67回
  • 年度积分:11
  • 历史总积分:315
  • 注册:2009年5月31日
发表于:2009-05-31 13:01:40
12楼
共享通用免费工业控制外挂报表软件 URPT (VC2003开发)
1,报表可以和任何具有OPC接口的厂商进行连接
2,报表样式的设计不需要代码编程
3,报表的数据可以永久性保存
4,报表数据可以导入到微软的EXCEL中
5,报表的样式的设计简单,无需代码编程
6,报表样式可以随时预览。
7,报表数据库与其他系统数据库没有任何关系

欢迎到http://bmlrpt.gkbk.com 下载

JaneMatrikonOPC

  • 精华:1帖
  • 求助:0帖
  • 帖子:9帖 | 38回
  • 年度积分:0
  • 历史总积分:157
  • 注册:2009年5月16日
发表于:2009-06-09 04:31:50
13楼

大家好:


OPCClient不用有偿购买,MatrikonOPC开发的OPCExplorer是免费的,而且我们已在欧美中东世界各地销售很多年,功能强大而且稳定。您可以到下面这个网址看看:http://www.matrikonopc.com/products/opc-desktop-tools/opc-explorer.aspx; 点击“download now”下载一个自己试试就知道了。如果有问题的话,欢迎联系我:jane.zhang@matrikonopc.com. 祝好!

JaneMatrikonOPC

www.matrikonopc.com.


热门招聘
相关主题

官方公众号

智造工程师