资源简介
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个文件信息
相关资源
- VC++窗口和控件自适应屏幕尺寸改.ra
- mfc 画多个矩形框,可选中任意一个移
- MFC属性表单
- MFC框架 网络版五子棋 包含游戏大厅
- MFC读取RTSP视频流
- mfc制作的圆形时钟
- 五子棋大作业源码 .zip
- Excel-demo
- 基于mfc的smtp客户端程序
- MFC CCriticalSection 关键段
- C++后缀表达式计算器MFC功能强大
- MFC 视频播放器
- MFC 实时曲线绘制
- 图书馆管理系统MFC版
- 基于VS2010的MFC对话框计算器程序
- MFC显示tiff图像
- mfc按钮美化275689
- STK 与 MFC通信
- MFC 中使用 OpenGL 1.0非微软版本,而是
- VTKMFC显示
- MFC单文档绘图例程
- Programming Windows with MFC
- 深入浅出MFC简体高清pdf版
- 兄弟原厂中文维修手册-DCP-1518-1519-M
- MFC中ListCtrl添加图标,更改图标
- 数字图像处理实习程序
- VS平台下的MFC版坦克大战
- MFC实现的简单的画图工具
- ADO连接数据库-基于mfc的简单实现
- MFC实现迷宫搜索——Easy参考
评论
共有 条评论