OPC服務(wù)器快速開發(fā)工具
產(chǎn)品類別:OPC快速開發(fā)工具(Win32)
規(guī)格:DLL
產(chǎn)品備注:通過OPC基金會(huì)CTT測(cè)試,穩(wěn)定可靠
產(chǎn)品說明:
OM_OPCSvr.dll工具包其實(shí)就是一個(gè)動(dòng)態(tài)鏈接庫(DLL)。支持OPC l.0和OPC 2.0數(shù)據(jù)存取規(guī)范定義所有必需的接口,還包括實(shí)現(xiàn)了瀏覽器功能的接口。OM_OPCSvr.dll作為一個(gè)快速開發(fā)OPC服務(wù)器的工具包,它封裝了所有關(guān)于COM和OPC的技術(shù)細(xì)節(jié),將Microsoft公司的OLE、COM、DCOM技術(shù)和OPC的技術(shù)細(xì)節(jié)隱藏起來,使開發(fā)OPC服務(wù)器的工作集中在特定的數(shù)據(jù)采集任務(wù)上來。利用DLL開發(fā)OPC服務(wù)器的開發(fā)者無需考慮許多涉及到底層COM接口實(shí)現(xiàn)方面的工作,開發(fā)者無須掌握ATL、COM/DCOM,也無須了解OPC技術(shù)的細(xì)節(jié),只需具有基本的編程基礎(chǔ)即可快速上手。開發(fā)者的應(yīng)用程序完全可以在一個(gè)較高層次上去描述OPC數(shù)據(jù)。該工具包支持多個(gè)客戶端并發(fā)訪問服務(wù)器,并為每個(gè)客戶端創(chuàng)建一個(gè)獨(dú)立線程。其具有以下特點(diǎn):
1. 使用STL撰寫。
2. 可同時(shí)用作開發(fā)EXE Server或DLL Server的開發(fā)工具。
3. 使用Unicode字符集,源碼可方便地移植到WinCE平臺(tái)下。
4. 實(shí)現(xiàn)了OPC DA 2.05a 和 1.0接口。
5. 地址空間采用Hierarchial結(jié)構(gòu),同時(shí)支持按Flat瀏覽。
6. 通過OPC Foundation的Compliance Test測(cè)試。
7. 被多個(gè)開發(fā)平臺(tái)支持。如:VB、DELPHI、VC++和.net。
OPC開發(fā)快速工具OM_OPCSvr.dll的API函數(shù)說明:
API函數(shù)的介紹如下:
1. HRESULT InitOPCSvr(BYTE *pSvrCLSID, BOOL bExeSvr = TRUE, DWORD dwCoInit = 0)
初始化OPC Server
pSvrClSID: Server的CLSID;
bExeSvr: True為EXE Server, False為DLL Server;
dwCoInit: Server線程模式
2. HRESULT UninitOPCSvr()
反初始化OPC Server
3. HRESULT CreateCustomOPCServer(REFIID riid, LPVOID *ppvObject)
此函數(shù)為DLL Server在實(shí)現(xiàn)IclassFactory接口時(shí)調(diào)用
4. HRESULT SetServerRate(DWORD dwServerRate)
此函數(shù)設(shè)置Server最快的刷新速率,Client請(qǐng)求的Callback Rate不能小于此值,并且都會(huì)被修正為它的倍數(shù),默認(rèn)值為1000ms,如需更改,須在InitOPCSvr前調(diào)用
5. HRESULT SetVendorInfo(LPCWSTR szVendorInfo, WORD wMajorVersion, WORD wMinorVersion, WORD wBuildNumber)
設(shè)置Server Vendor和版本信息
6. VOID SetServerState(DWORD dwState)
設(shè)置Server的狀態(tài),初始化為運(yùn)行狀態(tài)
7. HRESULT SetServerDelimiter(WCHAR cDelimiter)
設(shè)置Address Space中ItemID的間隔副符,默認(rèn)為’.’
8. VOID SetCaseSensitivity(BOOL bOnOff = FALSE)
設(shè)置Address Space中ItemID是否區(qū)分大小寫
====================================================
9. HRESULT CreateTag(LPCWSTR szName, VARIANT Value, WORD Quality, BOOL bWritable, HANDLE hClient, HANDLE *phTag)
添加Tag到Address Space
szName: ItemID, 如“Device0.Group0.Tag0”
Value: 初始值
Quality: 初始值的Quality
bWritable: 此Tag是否可寫
hClient: Server主程序提供的句柄,以供讀寫回調(diào)時(shí)使用
phTag: Address Space中對(duì)應(yīng)的句柄
10. HRESULT CreateTagWithTimeStamp(LPCWSTR szName, VARIANT Value, WORD Quality, FILETIME TimeStamp, BOOL bWritable, HANDLE hClient, HANDLE *phTag)
添加帶TimeStamp的Tag到Address Space
11. HRESULT UpdateTag(HANDLE hTag, VARIANT Value, WORD Quality)
更新Tag的值
hTag: CreateTag時(shí)傳給Address Space的句柄
Value: 更新的值
Quality: 更新的Quality
12. HRESULT UpdateTagWithTimeStamp(HANDLE hTag, VARIANT Value, WORD Quality, FILETIME TimeStamp)
更新Tag的值及TimeStamp
13. HRESULT UpdateTagByName(LPCWSTR szName, VARIANT Value, WORD Quality)
按名稱更新Tag的值
14. HRESULT UpdateTagWithTimeStampByName(LPCWSTR szName, VARIANT Value, WORD Quality, FILETIME TimeStamp)
按名稱更新Tag的值及TimeStamp
15. HRESULT ReadTag(HANDLE hTag, VARIANT *pValue)
讀取Address Space中Tag的值
hTag: CreateTag時(shí)傳給Address Space的句柄
pValue: 保存Tag的值
16. HRESULT SuspendTagUpdate(HANDLE hTag, BOOL bOnOff)
禁止或允許Client對(duì)該Tag的訪問
hTag: CreateTag時(shí)傳給Address Space的句柄
bOnOff: 禁止或允許
====================================================
17. HRESULT NumberOfClientConnections(DWORD *pNum)
返回連接的Client數(shù)量
18. HRESULT RequestDisconnect(LPCWSTR szReason = L"")
向所有的客戶端提出Disconnect請(qǐng)求
szReason: 請(qǐng)求原因
19. VOID RefreshAllClients()
向客戶端發(fā)送DataChange Callback
20. HRESULT EnableDeviceRead(DEVICEREADPROC fnCallback)
當(dāng)Client要讀取實(shí)際設(shè)備中的數(shù)據(jù)時(shí)產(chǎn)生該Callback
21. HRESULT EnableDeviceWrite(DEVICEWRITEPROC fnCallback)
當(dāng)Client要向?qū)嶋H的設(shè)備中寫數(shù)據(jù)時(shí)產(chǎn)生該Callback
22. HRESULT EnableDiscNotify(DISCONNECTPROC fnCallback)
當(dāng)有Client取消連接時(shí)產(chǎn)生該Callback