<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>
關(guān) 閉

新聞中心

EEPW首頁(yè) > 工控自動(dòng)化 > 設計應用 > COM組件技術(shù)在現場(chǎng)總線(xiàn)控制系統組態(tài)軟件中的應用

COM組件技術(shù)在現場(chǎng)總線(xiàn)控制系統組態(tài)軟件中的應用

作者: 時(shí)間:2011-07-29 來(lái)源:網(wǎng)絡(luò ) 收藏

HRESULT SendData[in]BYTE SendBuf[256]);

[id(3),helpstring(啟動(dòng)多線(xiàn)程)]

HRESULT SendFinish ([in]BOOL bFinish);

[id(4),helpstring(此函數返回值表示數據是否已向下位機發(fā)送完畢,同時(shí)可顯示哪些模塊未被配置,通常在此函數前先用FinishQuery([out]BOOL*bFinish)查詢(xún)發(fā)送是否完畢)]

HRESULT ReceiveResult([out]BOOL *bSendFinish);

[id(5)],helpstring(此函數返回值表示數據是否已向下位機發(fā)送完畢,“真”表示發(fā)送完畢)]

HRESULT FinishQuery([out]BOOL *bFinish);

[id(6),helpstring(網(wǎng)絡(luò )檢查,用來(lái)在發(fā)送數據前檢測是否有該節點(diǎn)存在)]

HRESULT NetCheck[in]BYTE sour,[in]BYTE des,[in]BYTE type,[out]BOOL *flag);

[id(7),helpstring(讀取模塊的測量值)]

HRESULT GetPV([iv]BYTE bDesNode,[out]float value[256]);

}

適配器初始化函數:

#include conio.h>

#include winioctl.h

//包含其它頭文件

……

STDMETHODIMP CNCardWork::NcardInit(BYTE bSrcNode,BYTE bIntrAdd,BYTE bRate,long bSegmentAdd,BOOL *flag)

{

NcardCtrl cardctrl; //NcardCtrl類(lèi)的函數調用VxD函數

exbSrcNode=bSrcNode; //給上位機節點(diǎn)賦值

exbRate=bRate; //下位機與適配器的通信波特率

BOOL transfersign; //初始化是否成功標志

DWORD dwSegmentaddress=bSegmentAdd;//適配器段地址

HANDLE hDevice=NULL; //指向線(xiàn)性指針對句柄

LpBaseAddress=(PBYTE)cardctrl.MapLinearAddress(dwSegmentaddress,0x400,hDevice);

//調用VxD函數,獲得指向ISA總線(xiàn)物理地址的線(xiàn)性地址指針

cardctrl,UnMapLinearAddress(lpBaseAddress,hDevice);

//關(guān)閉VxD

//調用適配器初始化函數

_outp(0x310,0x01); //打開(kāi)郵箱鎖

lpBaseAddress[0x3F0]=bSrcNodeNumber;//上位機節點(diǎn)號

lpBaseAddress[0x3F1]=bRate; //波特率

lpBaseAddress[0x3F8]=0xC6; //適配器初始化命令字

DrvDelay(20,false); //延時(shí)20ms

………… //初始化后其它操作

_outp(0x310,00); //關(guān)閉郵箱鎖

return S_OK;

}

4 虛擬設備驅動(dòng)程序

VxD是虛擬設備驅動(dòng)程序(Virtual Device Driver)的縮寫(xiě),中間的x表示某一設備。它能夠無(wú)限制地訪(fǎng)問(wèn)所有硬件設備、自由地檢測操作系統的數據結構(如描述符和頁(yè)表)以及訪(fǎng)問(wèn)任何內存位置。

本文中,VxD將ISA總線(xiàn)對應的物理地址轉換成段線(xiàn)性地址,供應用程序使用。VxD的開(kāi)發(fā)工具是VtoolsD,轉換時(shí)用的函數為MapPhysToLinear。以下是部分程序代碼:

//定義結構體

typedef struct _MapDevRequest

{

PVOID mdr_PhysicalAddress;DWORD mdr_SizeInBytes;

PVOID mdr_LinearAddress;WORD mdr_Status;

}MAPDEVREQUEST,*PMAPDEVREQUEST;

#includevtoolscp.h>



評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>