欢迎来到优知文库! | 帮助中心 分享价值,成长自我!
优知文库
全部分类
  • 幼儿/小学教育>
  • 中学教育>
  • 高等教育>
  • 研究生考试>
  • 外语学习>
  • 资格/认证考试>
  • 论文>
  • IT计算机>
  • 法律/法学>
  • 建筑/环境>
  • 通信/电子>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 优知文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    ethercat通讯协议例程.docx

    • 资源ID:313418       资源大小:52.34KB        全文页数:6页
    • 资源格式: DOCX        下载积分:5金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: QQ登录
    二维码
    扫码关注公众号登录
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    快捷下载时,如果您不填写信息,系统将为您自动创建临时账号,适用于临时下载。
    如果您填写信息,用户名和密码都是您填写的【邮箱或者手机号】(系统自动生成),方便查询和重复下载。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    ethercat通讯协议例程.docx

    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)-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”组下将“EL9800APPLICATION”设置为0,将“SAMPLE.APPLICATION”设置%Io保存工程并创建新的文件(PrOjeCt->"CreatenewSlaveFiles'%基于已创建的ESl文件,编辑从站EEPRoM。基于生成的源文件创建MPLAB工程。SSC可以创建基础例程,具体的创建步骤,在ApplicationNoteET9300其他章节也介绍,后面单独列一章来介绍SSC。这里重点关注如何新增过程数据。2.新增过程数据2.1 在SamPIeaPPLh中新增ReSUlt对象创建为过程数据“32BitReSUe创建入口描述(EntryDescription),对象名和对象实例。Object0x6010:resultobjecttifdef_0BJD_*Entrydescription*/objconsttsdoinfoentrydescobjmemEntryDescOxeoio=(deftype_unsigned32,0x10,ACCESS_READOBJACCESS_TXPDOMAPPING);*Objectname*/一定义一个新的ObjentrydescOBJCONSTUCHAROBJMEMaName0x6010"Result',;DataType=int32#endif/#ifdef_OBJD_DataLength=16*Variabletohandletheobjectdata*/Access-read&txl,doMappingPROTOUlNT32ReSUItobj6010;可以使用ar作为。bj的handle要在EtherCAT中新增过程数据,首先就需要在代码中新增对象。关于"寸象字典“可以参考我的另一篇博客。2.2 在SampIeappLh中修改OutputValue对象在对象0x7010(32BitOutputCOUnterj的基础上进行修改,将对象0x7010修改成Record型对象,Record型对象可以操作超过1个的过程数据(译者注:原有的OutputCounter是Var型对象,只能有1个子项;Record型对象类似于结构体,一个对象中可以有多个子项)。OuputCounter原本只有一个子项(类似与0x6010的结构),现在需要2个子项,同时还需要增加SubIndexO的参数。对象名称需要与Entry相对应(每个子名称以,00(结尾,整个对象名称以“377”结尾)。还需要根据对象的参数定义一个结构体,使其包含SubIndexO以及2个过程数据。更多的细节信息请参见章节11。Object0x7010:outputvaluesobjectfifdefJDBJJobjconst TsdoinfoentrydescOBJMEMasEntryDesc0x7010(*Entry description of SubindexO */ DEFTYPE-UNSIGNED8, 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* /0×20,ACCESS READ OBJACCESS RXPDOMAPPING);*Name of the object and the entries */ OBJCONST UCHAR OBJMEM aName0x7010( - wOutput values000Valuel000Value2000377"tendif /Iifdef OBJDZObjNane 包含对象名及其子项名,年个名称以"000”结尾,破后以“'377"结尾.3.Obj handle对象的结构体定义,并将其实例化。*Structuretohandletheobjectdata*/typedefstructOBJ_STRUCT_PACKED_STARTUINT16uieSubYndexO;-UINT32Valuel;UINT32Value2;OBJ_STRUCT_PACKED_ENDTOBJ7010;一PROTOTOBJ7010OutputData#ifdef_SAMPLE_APPLICATION=0x0270x00,0x00)endif2.3 在SampIeappLh中修改PDO-map对象在PDo-MaPPing对象中,为新增的过程数据添加信息。修改的代码被标注为红色。DefinitiontorTXPDO(OXlAOO)(handlingtheInPUtProCeS8data)*ObjectOxlAOO:TxPDOifdef_OBJD_objconstTsdoinfoentrydescobjmemasEntryDesciA=DEFTYPE-UNSIGNED8,0x8,ACCESS_READ),DEFTYPE二UNSlGNED32,0x20,ACCESS-READ),*referencetothenewprocessdata.TheinformationdoesNOTdescribetheprocessdataitself,thatmeansiftheprocessdataisanUNSIGNED8valuethedeftypeinthisdescriptionisstillUNSIGNED32*/(DEFTYPE_UNSIGNED32z0x20,ACCESS-READ);*OnlytheobjectnameisdescribedallentriesareautomaticallynamesaswSubIndex000”(000isincrementedforeachentry)*/OBJCONSTUCHAROBJMEMaName0xlA00=,TxPDO-Map000377,;Iendif/tifdef_OBJD_typedefstructOBJ_STRUCT_PACKED_STARTUINT16ul6SubIndexO;-*Addoneadditionalarrayelementforthereferencetothenewprocessdata*/UINT32aEntries(2);OBJ_STRUCT_PACKED_ENDTOBJlA00;一PROTOTOBJ1AOOTxPDOMapIifdefSAMPLEAPPLICATION(2/-theobject?.snowtwoentr"d,0x60000020z0x60100020*mCferenCetoobject0x06010SubindexOand32Bitlength*/)endifDefinitionforRXPDO(OXleOl)(handlingtheOUtPUtProCeSSdata)/W*Object0×1601:RxPDOtifdef_OBJD_objconstTsdoinfoentrydescobjmemasEntryDesci6i(=DEFTYPEjJNSlGNED8,0x8,ACCESS_READ),(DEFTYPE二UNSIGNED32,0x20,ACCESS-READr*referencetothenewprocessdata.TheinformationdoesNOTdescribetheprocessdataitself,thatmeansiftheprocessdataisanUNSIGNED8valuethedeftypeinthisdescriptionisstillUNSlGNED32*/DEFTYPE_UNSIGNED32z0x20rACCESS_READ;*Onlytheobjectnameisdescribedallentriesareautomaticallynamesas''SubIndex000”(000isincrementedforeachentry)*/OBJCONSTUCHAROBJMEMaName0×1601(-"RxPDO-Map000377"#endif/#ifdef_OBJD_typedefstructOBJ_STRUCT_PACKED_STARTUINT16ul6SubTndexO;-*Addoneadditionalarrayelementforthereferencetothenewprocessdata*/UINT32aEntries(2;OBJ_STRUCT_PACKED_ENDTOBJl601;一PROTOTOBJl601RxPDOMap#ifdef_SAMPLE_APPLICATION_2*theobjecthasnowtwoentries*r0×70100120r0x70100220*Referencetoobject0x07010Subindex2and32Bitlength*/)Iendif2.4 在SamPIeaPPLh中更新对象字典的参考TOBJECTOBJMEMAppIicationObjDic=*Object0x1601/(NULL,NULL,0x1601,DEFTYPE_PDOMAPPING,2(OBJCODE_REC«8),asEntryDesc0xl601raName0×1601,&RxPDOMap

    注意事项

    本文(ethercat通讯协议例程.docx)为本站会员(王**)主动上传,优知文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知优知文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

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

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

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

    收起
    展开