ethercat通讯协议例程.docx

上传人:王** 文档编号:313418 上传时间:2023-05-18 格式:DOCX 页数:6 大小:52.34KB
下载 相关 举报
ethercat通讯协议例程.docx_第1页
第1页 / 共6页
ethercat通讯协议例程.docx_第2页
第2页 / 共6页
ethercat通讯协议例程.docx_第3页
第3页 / 共6页
ethercat通讯协议例程.docx_第4页
第4页 / 共6页
ethercat通讯协议例程.docx_第5页
第5页 / 共6页
ethercat通讯协议例程.docx_第6页
第6页 / 共6页
亲,该文档总共6页,全部预览完了,如果喜欢就下载吧!
资源描述

《ethercat通讯协议例程.docx》由会员分享,可在线阅读,更多相关《ethercat通讯协议例程.docx(6页珍藏版)》请在优知文库上搜索。

1、ethercat通讯协议例程本例程介绍了如何在基础例程(SAMPLE-ApplicatioN)的基础上添加新的过程数据。默认的基础例程提供了一下的过程数据:32Bit的InputCounter(OxGOOO)32Bit的OutputCounter(0x7010)当OutputCounter为0时,InputCounter每个cycle自力口1;否则InPUtCounter等于OutputCounter+lo本例程中新增的过程数据:32Bit的InputCounter(OxGOOO)32Bit的ResuIt(OxGOlO)OutputValue(0x7010)-Sll:Valuel(32Bit)

2、-SI2:Value2(32Bit)Result(0x6010)SlI(OX7010.1)和SI2(0x7010.2)之和。InputCe)Unter(OX6000)每个cycle自力口1。L创建基础例程这一节简单介绍一下如何在倍福EL9800评估板上创建基础例程。当然,也可以在已有的其他类似的例程上进行新增过程数据的修改。按照章节3.1USSCTOoI中的步骤17进行操作(这里的章节3.1是指ApplicationNoteET9300SSC的3.1)。选择”EL9800I8BitDigitall0,16BitAnalogInPUt”的配置。在“APPliCatiOn”组下将“EL9800AP

3、PLICATION”设置为0,将“SAMPLE.APPLICATION”设置%Io保存工程并创建新的文件(PrOjeCt-CreatenewSlaveFiles%基于已创建的ESl文件,编辑从站EEPRoM。基于生成的源文件创建MPLAB工程。SSC可以创建基础例程,具体的创建步骤,在ApplicationNoteET9300其他章节也介绍,后面单独列一章来介绍SSC。这里重点关注如何新增过程数据。2.新增过程数据2.1 在SamPIeaPPLh中新增ReSUlt对象创建为过程数据“32BitReSUe创建入口描述(EntryDescription),对象名和对象实例。Object0x6010

4、:resultobjecttifdef_0BJD_*Entrydescription*/objconsttsdoinfoentrydescobjmemEntryDescOxeoio=(deftype_unsigned32,0x10,ACCESS_READOBJACCESS_TXPDOMAPPING);*Objectname*/一定义一个新的ObjentrydescOBJCONSTUCHAROBJMEMaName0x6010Result,;DataType=int32#endif/#ifdef_OBJD_DataLength=16*Variabletohandletheobjectdata*/A

5、ccess-read&txl,doMappingPROTOUlNT32ReSUItobj6010;可以使用ar作为。bj的handle要在EtherCAT中新增过程数据,首先就需要在代码中新增对象。关于寸象字典“可以参考我的另一篇博客。2.2 在SampIeappLh中修改OutputValue对象在对象0x7010(32BitOutputCOUnterj的基础上进行修改,将对象0x7010修改成Record型对象,Record型对象可以操作超过1个的过程数据(译者注:原有的OutputCounter是Var型对象,只能有1个子项;Record型对象类似于结构体,一个对象中可以有多个子项)。O

6、uputCounter原本只有一个子项(类似与0x6010的结构),现在需要2个子项,同时还需要增加SubIndexO的参数。对象名称需要与Entry相对应(每个子名称以,00(结尾,整个对象名称以“377”结尾)。还需要根据对象的参数定义一个结构体,使其包含SubIndexO以及2个过程数据。更多的细节信息请参见章节11。Object0x7010:outputvaluesobjectfifdefJDBJJobjconst TsdoinfoentrydescOBJMEMasEntryDesc0x7010(*Entry description of SubindexO */ DEFTYPE-UN

7、SIGNED8, 0x08, ACCESS_READ), * Entry description of the first entry Valuel* */Obj需要定义3个东西1. Entry DescriptionDEFTYPEjJNSlGNED32,*Entry descriptionDEFTYPEUNSlGNED32,0x20,ACCESS_READ OBJACCESS_RXPDOMAPPING), of the second entry Value2* /020,ACCESS READ OBJACCESS RXPDOMAPPING);*Name of the object and t

8、he entries */ OBJCONST UCHAR OBJMEM aName0x7010( - wOutput values000Valuel000Value2000377;tendif /Iifdef OBJDZObjNane 包含对象名及其子项名,年个名称以000”结尾,破后以“377结尾.3.Obj handle对象的结构体定义,并将其实例化。*Structuretohandletheobjectdata*/typedefstructOBJ_STRUCT_PACKED_STARTUINT16uieSubYndexO;-UINT32Valuel;UINT32Value2;OBJ_ST

9、RUCT_PACKED_ENDTOBJ7010;一PROTOTOBJ7010OutputData#ifdef_SAMPLE_APPLICATION=0x0270x00,0x00)endif2.3 在SampIeappLh中修改PDO-map对象在PDo-MaPPing对象中,为新增的过程数据添加信息。修改的代码被标注为红色。DefinitiontorTXPDO(OXlAOO)(handlingtheInPUtProCeS8data)*ObjectOxlAOO:TxPDOifdef_OBJD_objconstTsdoinfoentrydescobjmemasEntryDesciA=DEFTYPE

10、-UNSIGNED8,0x8,ACCESS_READ),DEFTYPE二UNSlGNED32,0x20,ACCESS-READ),*referencetothenewprocessdata.TheinformationdoesNOTdescribetheprocessdataitself,thatmeansiftheprocessdataisanUNSIGNED8valuethedeftypeinthisdescriptionisstillUNSIGNED32*/(DEFTYPE_UNSIGNED32z0x20,ACCESS-READ);*Onlytheobjectnameisdescribe

11、dallentriesareautomaticallynamesaswSubIndex000”(000isincrementedforeachentry)*/OBJCONSTUCHAROBJMEMaName0xlA00=,TxPDO-Map000377,;Iendif/tifdef_OBJD_typedefstructOBJ_STRUCT_PACKED_STARTUINT16ul6SubIndexO;-*Addoneadditionalarrayelementforthereferencetothenewprocessdata*/UINT32aEntries(2);OBJ_STRUCT_PAC

12、KED_ENDTOBJlA00;一PROTOTOBJ1AOOTxPDOMapIifdefSAMPLEAPPLICATION(2/-theobject?.snowtwoentrd,0x60000020z0x60100020*mCferenCetoobject0x06010SubindexOand32Bitlength*/)endifDefinitionforRXPDO(OXleOl)(handlingtheOUtPUtProCeSSdata)/W*Object01601:RxPDOtifdef_OBJD_objconstTsdoinfoentrydescobjmemasEntryDesci6i(

13、=DEFTYPEjJNSlGNED8,0x8,ACCESS_READ),(DEFTYPE二UNSIGNED32,0x20,ACCESS-READr*referencetothenewprocessdata.TheinformationdoesNOTdescribetheprocessdataitself,thatmeansiftheprocessdataisanUNSIGNED8valuethedeftypeinthisdescriptionisstillUNSlGNED32*/DEFTYPE_UNSIGNED32z0x20rACCESS_READ;*Onlytheobjectnameisde

14、scribedallentriesareautomaticallynamesasSubIndex000”(000isincrementedforeachentry)*/OBJCONSTUCHAROBJMEMaName01601(-RxPDO-Map000377;#endif/#ifdef_OBJD_typedefstructOBJ_STRUCT_PACKED_STARTUINT16ul6SubTndexO;-*Addoneadditionalarrayelementforthereferencetothenewprocessdata*/UINT32aEntries(2;OBJ_STRUCT_P

15、ACKED_ENDTOBJl601;一PROTOTOBJl601RxPDOMap#ifdef_SAMPLE_APPLICATION_2*theobjecthasnowtwoentries*r070100120r0x70100220*Referencetoobject0x07010Subindex2and32Bitlength*/)Iendif2.4 在SamPIeaPPLh中更新对象字典的参考TOBJECTOBJMEMAppIicationObjDic=*Object0x1601/(NULL,NULL,0x1601,DEFTYPE_PDOMAPPING,2(OBJCODE_REC8),asEntryDesc0xl601raName01601,&RxPDOMap

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > IT计算机 > matlab

copyright@ 2008-2023 yzwku网站版权所有

经营许可证编号:宁ICP备2022001189号-2

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!