COM組件技術在現場總線控制系統組態軟件中的應用
//包含其它頭文件
…………
PARAMS pDIOCParams
{
PMAPDEVREQUEST pRea; //自己定義的結構體
switch(pDIOCParams->dioc_IOCtlCode)
{
case DIOC_OPEN:
case DIOC_CLOSEHANDLE:break;
case MDR_SERVICE_MAP:
pReq=*(PMAPDEVREQUEST*)pDIOCParams->dioc_InBuf;
pReq->mdr_LinearAddress=MapPhysToLinear
(pReq->mdr_PhysicalAddress,pReq->mdr_SizeInBytes,0);
if(pReq->mdr_LinearAddress==NULL)
pReq->mdr_Status=MDR_STATUS_ERROR;
else
pReq->mdr_Status=MDR_STATUS_SUCCESS;
break;
case MDR_SERVICE_UNMAP:break;
default:
return ERROR_INVALID_FUNCTION;
}
return DEVIOCTL_NOERROR;
}
在現場總線控制系統中使用COM組件技術,不僅可以使數據傳輸部分的功能獨立于客戶端程序,減小開發難度,而且使其可以被任何支持二進制代碼的程序如Excel電子表格等直接調用。當系統中采用服務器和客戶端方式時,代碼更加易于維護。即使要升級服務器端程序,只要接口不變,其客戶端程序也完全不需要修改,大量后續工作被減輕。象服務器端一樣,客店端也只需關心服務器的接口,而不必考慮其如何實現數據交換。也就是說,COM服務器或客戶機中的一端功能發生改變,只要其接口保持不變,另一端不需修改就可以工作。本文所介紹的技術已在勝利油田某注水站等實際工程項目中得到成功的應用。
評論