資源簡介
ethercat電機mfc簡單連接程序,在windows操作系統上,建立控制電機工程的程序,可以自主的設計控制程序,代碼只提供了連接電機部分代碼,簡單清晰
代碼片段和文件信息
//?EcDcMaster.cpp:?implementation?of?the?CEcDcMaster?class.
//
//////////////////////////////////////////////////////////////////////
#include?“EcGlobal.h“
#include?“EcDcSlave.h“
#include?“EcDcMaster.h“
#ifdef?_DEBUG
#define?new?EC_DEBUG_NEW
#undef?THIS_FILE
static?char?THIS_FILE[]?=?__FILE__;
#endif
///////////////////////////////////////////////////////////////////////////////
typedef enum?EECMI_DC
{
ECMI_DC_INIT =?0x20000
}?ECMI_DC;
//////////////////////////////////////////////////////////////////////
//CEcDcMaster
CEcDcMaster::CEcDcMaster(IEthernetProtDevice*?ipDev?PEcMasterDesc?pDesc?USHORT?nId?IEcMailboxClient?*pMbClient)?:
CEcMaster(ipDev?pDesc?nId?pMbClient)
m_dcSyncMode((ECAT_DC_MODE)pDesc->dcSyncMode)
{
m_pRefClock =?NULL;
m_nDcTimingCounter =?0;
m_nDcTimingSendArmw =?400;
m_ppDcSlave =?new?CDcSlave*[pDesc->maxSlaves];
}
CEcDcMaster::~CEcDcMaster()
{
safe_delete(m_ppDcSlave);
}
/////////////////////////////////////////////////////////////////////////////////////////////////////
HRESULT?CEcDcMaster::Open()
{
HRESULT?hr?=?CEcMaster::Open();
for?(?UINT?i=0;?i?(INT)m_nEcSlave;?i++?)
{ //?set?neighbor?pointers
CDcSlave*?pI?=?m_ppDcSlave[i];
CEcSlave*?pP;
if?(?m_pEcSlave->Lookup(pI->m_prevPhysAddr?pP)?)
{
CDcSlave*?pD?=?dynamic_cast(pP);
pI->m_pDcSlaves[EC_A] =?pD;
pD->m_pDcSlaves[pI->m_prevPort] =?pI;
}
}
return?hr;
}
///////////////////////////////////////////////////////////////////////////////
///\brief?Releases?the?EtherCAT?master
void CEcDcMaster::Release()
{
delete?this;
}
/////////////////////////////////////////////////////////////////////////////////////////////////////
///\brief?Creates?an?EtherCAT?Slave.
CEcSlave*?CEcDcMaster::CreateSlave(PEcMasterCreateSlave?pCreate)
{
CDcSlave* pDcSlave =?NULL;
CEcSlave* pSlave =?NULL;
CEcMbSlave* pPort?=?NULL;
switch?(?pCreate->type?)
{
case?ECAT_SLAVE_TYPE_SIMPLE:
{
//Create?slave?object
CEcDcSlave*?p?=?new?CEcDcSlave(this?pCreate);
pDcSlave?=?p;
pSlave?=?p;
}
break;
case?ECAT_SLAVE_TYPE_MAILBOX:
{
//Create?mailbox?slave?object
CEcDcMbSlave*?p?=?new?CEcDcMbSlave(this?pCreate);
pSlave?=?pPort?=?p;
pDcSlave?=?p;
}
break;
default:
return?NULL;
}
if?(?pSlave?)
{
//Try?to?add?slave?to?hash?table
if?(?m_pEcSlave->Add(pSlave->m_physAddr?pSlave)?)
{??
if?(pDcSlave->IsRefClock())
m_pRefClock?=?pDcSlave;
m_ppDcSlave[m_nEcSlave]?=?pDcSlave;
m_ppEcSlave[m_nEcSlave++]?=?pSlave;
if?(?pPort?)
//mailbox?Slave
m_ppEcMbSlave[m_nEcMbSlave++]?=?pPort;
}
else
{ //failed?to?add?slave?to?hashtable
delete?pSlave;
pSlave?=?NULL;
}
}
return?pSlave;
}
/////////////////////////////////////////////////////////////////////////////////////////////////////
#define?ECAT_INITCMD_DUMMY_VALUE 0xffff
#def
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2018-11-08?13:52??PAT_HUA20181112\
?????目錄???????????0??2018-11-12?10:50??PAT_HUA20181112\PAT_HUA\
?????目錄???????????0??2018-11-12?10:50??PAT_HUA20181112\PAT_HUA\Debug\
?????文件??????640000??2018-11-08?14:04??PAT_HUA20181112\PAT_HUA\Debug\EcatMaster.dll
?????文件?????1240372??2018-11-08?14:04??PAT_HUA20181112\PAT_HUA\Debug\EcatMaster.ilk
?????文件??????364032??2018-11-12?10:50??PAT_HUA20181112\PAT_HUA\Debug\PAT_HUA.exe
?????文件?????1858512??2018-11-12?10:50??PAT_HUA20181112\PAT_HUA\Debug\PAT_HUA.ilk
?????文件?????4967424??2018-11-08?13:52??PAT_HUA20181112\PAT_HUA\Debug\PAT_HUA.pdb
?????目錄???????????0??2018-11-12?10:38??PAT_HUA20181112\PAT_HUA\ipch\
?????目錄???????????0??2018-11-12?10:38??PAT_HUA20181112\PAT_HUA\ipch\pat_hua-59c9d593\
?????目錄???????????0??2018-11-08?14:58??PAT_HUA20181112\PAT_HUA\master\
?????文件???????10983??2009-06-19?08:01??PAT_HUA20181112\PAT_HUA\master\ams.h
?????目錄???????????0??2018-11-12?10:50??PAT_HUA20181112\PAT_HUA\master\Debug\
?????文件???????35510??2018-11-08?14:04??PAT_HUA20181112\PAT_HUA\master\Debug\cl.command.1.tlog
?????文件??????165544??2018-11-08?14:04??PAT_HUA20181112\PAT_HUA\master\Debug\CL.read.1.tlog
?????文件???????22788??2018-11-08?14:04??PAT_HUA20181112\PAT_HUA\master\Debug\CL.write.1.tlog
?????文件????????2993??2016-02-23?15:08??PAT_HUA20181112\PAT_HUA\master\Debug\EcatMaster.Build.CppClean.log
?????文件?????????406??2016-05-27?10:12??PAT_HUA20181112\PAT_HUA\master\Debug\EcatMaster.dll.em
?????文件?????????472??2018-11-08?14:04??PAT_HUA20181112\PAT_HUA\master\Debug\EcatMaster.dll.em
?????文件?????????381??2018-11-08?14:04??PAT_HUA20181112\PAT_HUA\master\Debug\EcatMaster.dll.intermediate.manifest
?????文件???????36421??2018-11-08?14:04??PAT_HUA20181112\PAT_HUA\master\Debug\EcatMaster.exp
?????文件??????????81??2018-11-12?10:50??PAT_HUA20181112\PAT_HUA\master\Debug\EcatMaster.lastbuildstate
?????文件???????60476??2018-11-08?14:04??PAT_HUA20181112\PAT_HUA\master\Debug\EcatMaster.lib
?????文件????????1432??2018-11-12?10:50??PAT_HUA20181112\PAT_HUA\master\Debug\EcatMaster.log
?????文件?????2534400??2018-11-08?14:04??PAT_HUA20181112\PAT_HUA\master\Debug\EcatMaster.pdb
?????文件?????????713??2018-11-08?13:32??PAT_HUA20181112\PAT_HUA\master\Debug\EcatMaster.vcxprojResolveAssemblyReference.cache
?????文件????????2444??2018-11-08?14:04??PAT_HUA20181112\PAT_HUA\master\Debug\EcatMaster.write.1.tlog
?????文件?????????218??2016-02-23?15:08??PAT_HUA20181112\PAT_HUA\master\Debug\EcatMaster_manifest.rc
?????文件??????152381??2018-11-08?14:04??PAT_HUA20181112\PAT_HUA\master\Debug\EcDcMaster.obj
?????文件??????110534??2018-11-08?14:04??PAT_HUA20181112\PAT_HUA\master\Debug\EcDcSlave.obj
?????文件??????129434??2018-11-08?14:04??PAT_HUA20181112\PAT_HUA\master\Debug\EcDevice.obj
............此處省略128個文件信息
評論
共有 條評論