OPC Server SDK  3.0.0.7
www.tomchina.cn
宏定义 | 类型定义 | 函数
opcsrv_da.h 文件参考

OPC Server SDK开发包定义文件 更多...

浏览源代码.

宏定义

#define ODT_VOID   0
 void
 
#define ODT_I8   1
 char
 
#define ODT_U8   2
 unsigned char
 
#define ODT_I16   3
 short
 
#define ODT_U16   4
 unsigned short
 
#define ODT_I32   5
 int
 
#define ODT_U32   6
 unsigned int
 
#define ODT_I64   7
 __int64
 
#define ODT_U64   8
 unsigned __int64
 
#define ODT_F32   9
 float
 
#define ODT_F64   10
 double
 
#define ODT_STR   11
 char* 或 BSTR
 
#define ODT_BLOB   12
 二进制字节流 (VT_UI1 | VT_ARRAY)
 
#define ODT_BOOL   13
 VT_BOOL类型
 
#define OTEM_NOWRITE   0
 客户端不可写,只读
 
#define OTEM_WRITE   1
 客户端可写
 
#define OE_OK   0
 成功
 
#define OE_ERR   1
 失败
 
#define OE_ERRARG   2
 错误的参数
 
#define OE_OUTMEM   3
 内存不够
 
#define OE_CLSID   4
 CLSID错误
 
#define OE_ERRCOM   5
 COM/DCOM错误
 
#define OE_INITCOM   6
 初始化COM套间出错
 
#define OE_NOITEM   10
 无此标签
 
#define OE_ERRTYPE   11
 数据类型错误或无法转换数据
 
#define OE_ERRDATA   12
 错误的数据
 
#define OE_ERRTIME   13
 错误的时标
 
#define OE_ERRQA   14
 错误的数据质量
 
#define OE_NODATA   15
 无数据
 
#define OE_RUNING   16
 已经在运行
 
#define OE_NOTRUN   17
 没有运行
 
#define OPC_QUALITY_MASK   0xc0
 OPC_QUALITY_MASK.
 
#define OPC_STATUS_MASK   0xfc
 OPC_STATUS_MASK.
 
#define OPC_LIMIT_MASK   0x03
 OPC_LIMIT_MASK.
 
#define OPC_QUALITY_BAD   0x00
 坏质量,常用
 
#define OPC_QUALITY_UNCERTAIN   0x40
 OPC_QUALITY_UNCERTAIN.
 
#define OPC_QUALITY_GOOD   0xc0
 好质量,常用
 
#define OPC_QUALITY_CONFIG_ERROR   0x04
 配置错误
 
#define OPC_QUALITY_NOT_CONNECTED   0x08
 设备没有连接
 
#define OPC_QUALITY_DEVICE_FAILURE   0x0c
 设备错误,坏质量细分
 
#define OPC_QUALITY_SENSOR_FAILURE   0x10
 传感器错误,坏质量细分
 
#define OPC_QUALITY_LAST_KNOWN   0x14
 OPC_QUALITY_LAST_KNOWN.
 
#define OPC_QUALITY_COMM_FAILURE   0x18
 OPC_QUALITY_COMM_FAILURE.
 
#define OPC_QUALITY_OUT_OF_SERVICE   0x1c
 OPC_QUALITY_OUT_OF_SERVICE.
 
#define OPC_QUALITY_WAITING_FOR_INITIAL_DATA   0x20
 OPC_QUALITY_WAITING_FOR_INITIAL_DATA.
 
#define OPC_QUALITY_LAST_USABLE   0x44
 OPC_QUALITY_LAST_USABLE.
 
#define OPC_QUALITY_SENSOR_CAL   0x50
 OPC_QUALITY_SENSOR_CAL.
 
#define OPC_QUALITY_EGU_EXCEEDED   0x54
 OPC_QUALITY_EGU_EXCEEDED.
 
#define OPC_QUALITY_SUB_NORMAL   0x58
 OPC_QUALITY_SUB_NORMAL.
 
#define OPC_QUALITY_LOCAL_OVERRIDE   0xd8
 OPC_QUALITY_LOCAL_OVERRIDE.
 
#define OPC_LIMIT_OK   0x00
 OPC_LIMIT_OK.
 
#define OPC_LIMIT_LOW   0x01
 OPC_LIMIT_LOW.
 
#define OPC_LIMIT_HIGH   0x02
 OPC_LIMIT_HIGH.
 
#define OPC_LIMIT_CONST   0x03
 OPC_LIMIT_CONST.
 

类型定义

typedef bool(__stdcall * cb_SetItemVal) (const char *sTagName, VARIANT *pval, unsigned short wqa, long long filetime, void *pCallBackArg)
 客户端写标签值回调函数,以便写入到具体的设备中。
 

函数

int __stdcall opcsvr_reg (const char *sClsID, const char *sVendor, const char *sDrivername, const char *sVersion, const char *sOpcServerDes, int AsService)
 注册OPC Server 更多...
 
int __stdcall opcsvr_unreg (const char *sClsID, const char *sVendor, const char *sDrivername, const char *sVersion, const char *sOpcServerDes)
 卸载OPC Server 更多...
 
int __stdcall opcsrv_addtag (const char *sName, const char *sDes, const char *sUnit, int nType, int nWriteable)
 添加标签 更多...
 
int __stdcall opcsrv_start (const char *sClsID, const char *sVendor, const char *sDrivername, const char *sVersion, const char *sOpcServerDes, cb_SetItemVal pfcbSetTagVal, void *pcbSetTagValArg, int LockServer)
 启动OPC Server 更多...
 
int __stdcall opcsrv_stop ()
 停止OPC Server 更多...
 
int __stdcall opcsrv_setval (const char *sTagname, VARIANT *pval, unsigned short wqa, __int64 filetime)
 写标签值,全部类型,ODT_I8到ODT_BLOB全部支持 更多...
 
int __stdcall opcsrv_setstr (const char *sTagname, const char *val, unsigned short wqa, __int64 filetime)
 写字符串标签值,不是必须的,只是方便C/C++使用,可以用opcsrv_setval替换,参见C/C++例程tstopc_cp 更多...
 
int __stdcall opcsrv_setblob (const char *sTagname, unsigned char val[], int nsize, unsigned short wqa, __int64 filetime)
 写二进制流标签值,不是必须的,只是方便C/C++使用,可以用opcsrv_setval替换,参见C/C++例程tstopc_cp 更多...
 

详细描述

OPC Server SDK开发包定义文件

OPC Server SDK开发包定义文件

作者
重庆唐码软件有限公司
版本
3.0
日期
2010-2015

函数说明

int __stdcall opcsrv_addtag ( const char *  sName,
const char *  sDes,
const char *  sUnit,
int  nType,
int  nWriteable 
)

添加标签

参数
sName[in]标签名, ANSI字符集, <80字符
sDes[in] 标签表述 ,ANSI字符集,< 80字符
sUnit[in] 标签单位, ANSI字符集,< 16字符
nType[in] 数据类型 ODT_I32等 参见 数据类型
nWriteable[in] 可写标志 OTEM_NOWRITE 或者OTEM_WRITE 参见 客户端读写属性
返回
OE_OK表示成功,否则返回错误码.
备注
可以任何时候添加标签,最好在opcsrv_start之前全部添加完标签,保证客户端连接后可以立即读取可用标签定义或者立即添加标签组。
int __stdcall opcsrv_setblob ( const char *  sTagname,
unsigned char  val[],
int  nsize,
unsigned short  wqa,
__int64  filetime 
)

写二进制流标签值,不是必须的,只是方便C/C++使用,可以用opcsrv_setval替换,参见C/C++例程tstopc_cp

写标签值,全部类型,ODT_I8到ODT_BLOB全部支持

参数
sTagname[in] 标签名,ANSI字符集,<80字符
val[in] 字节数组,0字符结束
nsize[in] val的字节数
wqa[in] 质量,参见 OPC数据质量
filetime[in] 时标,filetime时标,是用一个64未得整数.MSDN原文描述:A file time is a 64-bit value that represents the number of 100-nanosecond intervals that have elapsed since 12:00 A.M. January 1, 1601 Coordinated Universal Time (UTC).
int __stdcall opcsrv_setstr ( const char *  sTagname,
const char *  val,
unsigned short  wqa,
__int64  filetime 
)

写字符串标签值,不是必须的,只是方便C/C++使用,可以用opcsrv_setval替换,参见C/C++例程tstopc_cp

写标签值,全部类型,ODT_I8到ODT_BLOB全部支持

参数
sTagname[in] 标签名,ANSI字符集,<80字符
val[in] ASNI字符串值,0字符结束
wqa[in] 质量,参见 OPC数据质量
filetime[in] 时标,filetime时标,是用一个64未得整数.MSDN原文描述:A file time is a 64-bit value that represents the number of 100-nanosecond intervals that have elapsed since 12:00 A.M. January 1, 1601 Coordinated Universal Time (UTC).
int __stdcall opcsrv_setval ( const char *  sTagname,
VARIANT *  pval,
unsigned short  wqa,
__int64  filetime 
)

写标签值,全部类型,ODT_I8到ODT_BLOB全部支持

参数
sTagname[in] 标签名,ANSI字符集,<80字符
pval[in] 值,C# 中为ref object,参见tstopc_cs工程中的例子
wqa[in] 质量,参见 OPC数据质量
filetime[in] 时标,filetime时标,是用一个64未得整数.MSDN原文描述:A file time is a 64-bit value that represents the number of 100-nanosecond intervals that have elapsed since 12:00 A.M. January 1, 1601 Coordinated Universal Time (UTC).
int __stdcall opcsrv_start ( const char *  sClsID,
const char *  sVendor,
const char *  sDrivername,
const char *  sVersion,
const char *  sOpcServerDes,
cb_SetItemVal  pfcbSetTagVal,
void *  pcbSetTagValArg,
int  LockServer 
)

启动OPC Server

参数
sClsID[in]CLSID 比如"{DEAFC4D7-1B56-4eff-B7DC-D06999F47ADB}",ANSI字符集,<80字符
sVendor[in] 提供商,比如"tom",ANSI字符集,<80字符
sDrivername[in] 驱动名,比如"rdb4opcda",ANSI字符集,<80字符
sVersion[in] 版本名,比如"1" ,ANSI字符集,<80字符
sOpcServerDes[in] OPC Server描述 ,ANSI字符集,<128字符
pfcbSetTagVal[in] 回调函数,NULL表示不响应客户端写操作
pcbSetTagValArg[in] 回调参数,pfcbSetTagVal使用的参数
LockServer[in] 非0锁定服务,0不锁定。不锁定时,当所有的客户端断开后,非锁定会退出应用程序,锁定则会继续运行。
返回
OE_OK表示成功,否则返回错误码.
int __stdcall opcsrv_stop ( )

停止OPC Server

返回
OE_OK表示成功,否则返回错误码.
备注
当服务程序退出时才调用这个接口,OPC Server做退出的内存清理工作。
int __stdcall opcsvr_reg ( const char *  sClsID,
const char *  sVendor,
const char *  sDrivername,
const char *  sVersion,
const char *  sOpcServerDes,
int  AsService 
)

注册OPC Server

参数
sClsID[in]CLSID 比如"{DEAFC4D7-1B56-4eff-B7DC-D06999F47ADB}",ANSI字符集,<80字符
sVendor[in] 提供商,比如"tom",ANSI字符集,<80字符
sDrivername[in] 驱动名,比如"rdb4opcda",ANSI字符集,<80字符
sVersion[in] 版本名,比如"1" ,ANSI字符集,<80字符
sOpcServerDes[in] OPC Server描述 ,ANSI字符集,<128字符
AsService[in] 0前台程序,非0后台service
返回
OE_OK表示成功,否则返回错误码.
int __stdcall opcsvr_unreg ( const char *  sClsID,
const char *  sVendor,
const char *  sDrivername,
const char *  sVersion,
const char *  sOpcServerDes 
)

卸载OPC Server

参数
sClsID[in]CLSID 比如"{DEAFC4D7-1B56-4eff-B7DC-D06999F47ADB}",ANSI字符集,<80字符
sVendor[in] 提供商,比如"tom",ANSI字符集,<80字符
sDrivername[in] 驱动名,比如"rdb4opcda",ANSI字符集,<80字符
sVersion[in] 版本名,比如"1" ,ANSI字符集,<80字符
sOpcServerDes[in] OPC Server描述 ,ANSI字符集,<128字符
返回
OE_OK表示成功,否则返回错误码.