浜у搧鍚嶇О錛歄PC瀹㈡埛绔紑鍙戝揩閫熷伐鍏?br />
浜у搧瑙勬牸錛欴LL
浜у搧澶囨敞錛氶氳繃OPC鍩洪噾浼?xì)瀹㈡堬L(fēng)鍒嗘瀽杞歡嫻嬭瘯
浜у搧綾誨埆錛歄PC蹇熷紑鍙戝伐鍏?Win32)
浜у搧璇存槑錛?br />
涓銆?綆浠?br />
OM_OPCClt.dll鏄牴鎹甇PC DA 2.05a Specification鎾板啓鍑烘潵鐨凮PC DA Client鐨勫紑鍙戝伐鍏峰寘錛屽叾鍏鋒湁浠ヤ笅鐗圭偣錛?br />
1. 浣跨敤STL鎾板啓銆?br />
2. 浣跨敤Unicode瀛楃闆嗭紝婧愮爜鍙柟渚垮湴縐繪鍒癢inCE騫沖彴涓?br />
3. 鏀寔WinCE騫沖彴
4. 鍙繛鎺PC DA 2.0 鍜?1.0鏈嶅姟鍣?br />
5.琚涓紑鍙戝鉤鍙版敮鎸併傚錛歏B銆丏ELPHI銆乂C++鍜?net銆?br />
浜屻?API浠嬬粛
1. HRESULT OMCoInit()
鍒濆鍖朇OM搴?br />
2. void OMCoUninit()
鍙嶅垵濮嬪寲COM搴?br />
====================================================
3. HRESULT NumberOfOPCServers(LPCWSTR szMachineName, int *num)
鏋氫婦鏈哄櫒涓婂畨瑁呯殑OPC鏈嶅姟鍣?br />
szMachineName: 瑕佹灇涓炬湇鍔″櫒鐨勬満鍣ㄥ悕
num: 榪斿洖OPC鏈嶅姟鍣ㄧ殑鏁扮洰
4. HRESULT GetOPCServerName(int nIndex, WCHAR *pBuf, int nBufSize)
鑾峰彇OPC鏈嶅姟鍣ㄧ殑ProgID
nIndex: OPC鏈嶅姟鍣ㄧ殑浣嶇疆錛屽叾鍊煎湪0~(num-1)涔嬮棿
pBuf: 瀛樺偍鑾峰彇鐨凮PC鏈嶅姟鍣ㄧ殑ProgID
nBufSize: 緙撳啿鍖虹殑澶у皬
5. HRESULT ConnectOPCServer(LPCWSTR szMachineName, LPCWSTR szServerName, HANDLE hClient, HANDLE *phConnect)
涓嶰PC鏈嶅姟鍣ㄥ緩绔嬭繛鎺?br />
szMachineName: 瑕佽繛鎺ョ殑鏈嶅姟鍣ㄦ墍鍦ㄧ殑鏈哄櫒浣嶇疆
szServerName: OPC鏈嶅姟鍣ㄧ殑ProgID
hClient: Client浼犻掔殑鍙ユ焺錛屽綋鏈塖hutdown鍥炶皟鏃朵細(xì)鍥炰紶姝ゅ彞鏌?br />
phConnect: 瀛樺偍瀵瑰簲鏈嶅姟鍣ㄧ殑鍙ユ焺
6. HRESULT EnableShutdownCallback(HANDLE hConnect, SHUTDOWNPROC lpCallback)
璁劇疆Shutdown鍥炶皟錛屽綋Server鍏抽棴鏃朵細(xì)浜х敓姝ゅ洖璋?br />
hConnect: OPC鏈嶅姟鍣ㄧ殑鍙ユ焺
lpCallback: 浜х敓鍥炶皟鏃舵墽琛岀殑鍑芥暟
7. HRESULT GetSvrStatus(HANDLE hConnect, OPCSERVERSTATUS *pSvrStatus, int nVendorInfoBufSize)
鑾峰彇鏈嶅姟鍣ㄧ殑鐘舵佷俊鎭?br />
hConnect: OPC鏈嶅姟鍣ㄧ殑鍙ユ焺
pSvrStatus: 瀛樺偍鏈嶅姟鍣ㄧ殑鐘舵佷俊鎭?br />
nVendorInfoBufSize: 鎸囩ず瀛樺偍VendorInfo鐨勭紦鍐插尯鐨勫ぇ灝?br />
8. HRESULT DisconnectOPCServer(HANDLE hConnect)
涓嶰PC鏈嶅姟鍣ㄦ柇寮榪炴帴
hConnect: 鎸囧悜鐩稿簲鏈嶅姟鍣ㄧ殑鍙ユ焺
====================================================
9. HRESULT NumberOfOPCItems(HANDLE hConnect, int *num)
鑾峰彇Server鍦板潃絀洪棿涓畾涔夌殑Item鏁扮洰
hConnect: 瀵瑰簲鏈嶅姟鍣ㄧ殑鍙ユ焺
num: 瀛樺偍榪斿洖鐨処tem鏁扮洰
10. HRESULT GetOPCItemName(HANDLE hConnect, int nIndex, WCHAR *pBuf, int nBufSize)
鑾峰彇Item鐨勬爣蹇楃
hConnect: 瀵瑰簲鏈嶅姟鍣ㄧ殑鍙ユ焺
nIndex: Item鐨勪綅緗紝鑼冨洿鍦?~錛坣um-1錛変箣闂?br />
pBuf: 瀛樺偍Item鏍囧織絎︾殑緙撳啿鍖哄湴鍧
nBufSize: 鎸囩ず緙撳啿鍖哄ぇ灝?br />
11. HRESULT SetBrowseFilters(HANDLE hConnect, LPCWSTR szFilterCriteria, VARTYPE vtDataTypeFilter, DWORD dwAccessRightsFilter)
璁劇疆鑾峰彇Item榪囨護(hù)鍣紝姝ゅ嚱鏁板簲鍦∟umberOfOPCItems涔嬪墠璋冪敤錛岄傜敤浜嶥A 2.0 Server
hConnect: 瀵瑰簲鏈嶅姟鍣ㄧ殑鍙ユ焺
szFilterCriteria: Server绔畾涔夌殑榪囨護(hù)瀛楃涓?br />
vtDataTypeFilter: Item綾誨瀷榪囨護(hù)
dwAccessRightsFilter: 璁塊棶鏉冮檺榪囨護(hù)
12. HRESULT SetBrowseFiltersEx(HANDLE hConnect, LPCWSTR szNameFilter, LPCWSTR szVendorFilter)
璁劇疆鑾峰彇Item榪囨護(hù)鍣紝姝ゅ嚱鏁板簲鍦∟umberOfOPCItems涔嬪墠璋冪敤錛岄傜敤浜嶥A 3.0 Server
hConnect: 瀵瑰簲鏈嶅姟鍣ㄧ殑鍙ユ焺
szNameFilter: Item鍚嶇О榪囨護(hù)
szVendorFilter: Server绔嚜瀹氫箟鐨勮繃婊ゅ瓧絎︿覆
13. HRESULT GetNameSpaceType(HANDLE hConnect, OPCNAMESPACETYPE *pNameSpaceType)
鑾峰彇鏈嶅姟鍣ㄥ湴鍧絀洪棿鐨勭被鍨?br />
hConnect: 瀵瑰簲鏈嶅姟鍣ㄧ殑鍙ユ焺
pNameSpaceType: 瀛樺偍鏈嶅姟鍣ㄥ湴鍧絀洪棿鐨勭被鍨?br />
14. HRESULT BrowseTo(HANDLE hConnect, LPCWSTR szNodeName)
縐誨姩鍒板湴鍧絀洪棿鎸囧畾鐨勮妭鐐逛綅緗?br />
hConnect: 瀵瑰簲鏈嶅姟鍣ㄧ殑鍙ユ焺
szNodeName: 縐誨姩鍒拌妭鐐逛綅緗殑鍚嶇О
NULL錛氬洖鍒版牴鑺傜偣
NUL String錛氳繑鍥炰笂涓綰ц妭鐐?br />
闈炵┖瀛楃涓詫細(xì)榪涘叆涓嬩竴綰ф寚瀹氱殑鑺傜偣
15. HRESULT NumberOfNodeItems(HANDLE hConnect, OPCBROWSETYPE enFilter, int *num)
鑾峰彇鍦板潃絀洪棿褰撳墠灞傝妭鐐圭殑鏁扮洰
hConnect: 瀵瑰簲鏈嶅姟鍣ㄧ殑鍙ユ焺
enFilter: 鑺傜偣榪囨護(hù)
num: 瀛樺偍鑺傜偣鐨勬暟鐩?br />
16. HRESULT GetNodeItemName(HANDLE hConnect, int nIndex, WCHAR *pBuf, int nBufSize)
鑾峰彇鑺傜偣鍚嶇О
hConnect: 瀵瑰簲鏈嶅姟鍣ㄧ殑鍙ユ焺
nIndex: 鑺傜偣鐨勪綅緗紝鑼冨洿鍦?~(num-1)涔嬮棿
pBuf: 瀛樺偍鑺傜偣鐨勫悕縐?br />
nBufSize: 緙撳啿鍖虹殑澶у皬
16. HRESULT QualifyItemName(HANDLE hConnect, LPCWSTR szItemName, WCHAR *pItemID, int nBufSize)
鑾峰彇鑺傜偣瀹屾暣鐨勫悕縐幫紝濡侱evice.Group.Node1
hConnect: 瀵瑰簲鏈嶅姟鍣ㄧ殑鍚嶇О
szItemName: 鐢盙etNodeItemName榪斿洖鐨勮妭鐐瑰悕縐?br />
pItemID: 瀛樺偍鑺傜偣鐨処D
nBufSize: 緙撳啿鍖虹殑澶у皬
====================================================17. HRESULT AddOPCGroup(HANDLE hConnect, LPCWSTR szName, BOOL bActive, DWORD *pUpdateRate, LONG *pTimeBias, float *pDeadband, HANDLE *phGroup)
娣誨姞緇勫埌鏈嶅姟鍣?br />
hConnect: 瀵瑰簲鏈嶅姟鍣ㄧ殑鍙ユ焺
szName: 緇勭殑鍚嶇О
bActive: 媧誨姩鐘舵?br />
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)
鑾峰彇緇勭殑灞炴?br />
hConnect: 瀵瑰簲鏈嶅姟鍣ㄧ殑鍙ユ焺
hGroup: 瀵瑰簲緇勭殑鍙ユ焺
pName: 緇勭殑鍚嶇О
nNameLen: 緙撳啿鍖虹殑澶у皬
pUpdateRate: 鏇存柊閫熺巼
pActive: 媧誨姩鐘舵?br />
pTimeBias: 鏃墮棿鍋忕疆
pPercentDeadband: 鏇存柊鍙樺寲鑼冨洿
21. HRESULT SetGroupState(HANDLE hConnect, HANDLE hGroup, DWORD *pUpateRate, BOOL bActive, LONG *pTimeBias, float *pPercentDeadband)
璁劇疆緇勭殑灞炴?br />
hConnect: 瀵瑰簲鏈嶅姟鍣ㄧ殑鍙ユ焺
hGroup: 瀵瑰簲緇勭殑鍙ユ焺
pUpdateRate: 鏇存柊閫熺巼
bActive: 媧誨姩鐘舵?br />
pTimeBias: 鏃墮棿鍋忕疆
pPercentDeadband: 鏇存柊鍙樺寲鑼冨洿
22. HRESULT RefreshOPCGroup(HANDLE hConnect, HANDLE hGroup, OPCDATASOURCE dwSource = OPC_DS_CACHE)
鍒鋒柊緇勫唴鏁版嵁欏圭殑鍊?br />
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)
娣誨姞鏁版嵁欏瑰埌鏈嶅姟鍣?br />
hConnect: 瀵瑰簲鏈嶅姟鍣ㄧ殑鍙ユ焺
hGroup: 瀵瑰簲緇勭殑鍙ユ焺
szName: 瑕佹坊鍔犳暟鎹」鐨処D
szAccessPath: 璁塊棶璺緞
pCanonicalType: 璁㈤槄鐨勬暟鎹被鍨嬶紝鍚屾椂榪斿洖瑙勮寖鐨勬暟鎹被鍨?br />
hClient: Client浼犻掔殑鍙ユ焺錛孌ataCallback鍥炶皟鏃朵細(xì)鍥炰紶姝ゅ彞鏌?br />
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)
璇誨彇鏁版嵁欏圭殑鍊?br />
hConnect: 瀵瑰簲鏈嶅姟鍣ㄧ殑鍙ユ焺
hGroup: 瀵瑰簲緇勭殑鍙ユ焺
hItem: 瀵瑰簲鏁版嵁欏圭殑鍙ユ焺
pValue: 榪斿洖鍊?br />
pTimeStamp: 榪斿洖鏃墮棿
pQuality: 榪斿洖鍝佽川
dwSource: 璇誨彇鐨勬簮
DoAsync: 鏄惁浣跨敤寮傛鏂瑰紡
27. HRESULT WriteOPCItem(HANDLE hConnect, HANDLE hGroup, HANDLE hItem, VARIANT *pVal, BOOL DoAsync = FALSE)
鍐欐暟鎹」鐨勫?br />
hConnect: 瀵瑰簲鏈嶅姟鍣ㄧ殑鍙ユ焺
hGroup: 瀵瑰簲緇勭殑鍙ユ焺
hItem: 瀵瑰簲鏁版嵁欏圭殑鍙ユ焺
pVar: 瑕佸啓鐨勫?br />
DoAsync: 鏄惁閲囩敤寮傛鏂瑰紡
28. HRESULT ChangeOPCItemState(HANDLE hConnect, HANDLE hGroup, HANDLE hItem, BOOL bActive)
鏀瑰彉鏁版嵁欏圭殑媧誨姩鐘舵?br />
hConnect: 瀵瑰簲鏈嶅姟鍣ㄧ殑鍙ユ焺
hGroup: 瀵瑰簲緇勭殑鍙ユ焺
hItem: 瀵瑰簲鏁版嵁欏圭殑鍙ユ焺
bActive: 鏁版嵁欏圭殑媧誨姩鐘舵?br />
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: 閿欒浠g爜
pBuf: 瀛樺偍閿欒淇℃伅鐨勭紦鍐插尯
nBufSize: 緙撳啿鍖虹殑澶у皬
|