• 大小: 37.42MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-08-08
  • 语言: C/C++
  • 标签: mfc  ethercat  BECKHOFF  

资源简介

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.embed.manifest
     文件         472  2018-11-08 14:04  PAT_HUA20181112\PAT_HUA\master\Debug\EcatMaster.dll.embed.manifest.res
     文件         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个文件信息

评论

共有 条评论