社区导航

 

搜索
查看: 561|回复: 2

[原创] 【 XMC4800 Relax EtherCAT Kit测评】+评测结贴,EtherCAT从站模块应用扩展

[复制链接]

297

TA的帖子

0

TA的资源

一粒金砂(高级)

Rank: 3Rank: 3

发表于 2019-2-5 00:06 | 显示全部楼层 |阅读模式
本帖最后由 flyword 于 2019-2-6 12:34 编辑

[原创] XMC4800 Relax EtherCAT Kit测评】+上手DAVEEtherCAT从站模块应用扩展!
(本次评测的结贴,后续陆续分享学习成果)

继续接上一篇帖子,关于EtherCAT模块的使用,这里其实上个帖子已经说得很清楚了,主要在process_app()中添加自己的应用并与相应的输入输出变量对应上就可以啦,哈哈,非常简单。
英飞凌官方提供的从站例程中其实已经涉及到了开关量的输入和输出(分别对应按钮操作和LED灯的设置),以及整型量的输出(代码中对应的PWM的设置),这里我添加了ADC模块的简单应用,使用的是PIN14.0,具体可以参考之前帖子关于ADC模块的设置。
相关的代码如下,我分别为3个整型量赋值了,第三个直接读取ADC的转换值。在后面TwinCAT应用中会使用该数值来控制LED灯。
具体代码:
  1. void process_app(TOBJ7000 *OUT_GENERIC, TOBJ6000 *IN_GENERIC)
  2. {
  3.   /* OUTPUT PROCESSING */
  4.   /* Check bitfield set by master OUT_GEN_Bit1..8 and set LEDs accordingly */
  5.   XMC_GPIO_SetOutputLevel(P_LED1, MAP2LEVEL(OUT_GENERIC->OUT_GEN_Bit1));  //OUT_GEN_BIT COMES FROM THE MASTER
  6.   XMC_GPIO_SetOutputLevel(P_LED2, MAP2LEVEL(OUT_GENERIC->OUT_GEN_Bit2));
  7.   XMC_GPIO_SetOutputLevel(P_LED3, MAP2LEVEL(OUT_GENERIC->OUT_GEN_Bit3));
  8.   XMC_GPIO_SetOutputLevel(P_LED4, MAP2LEVEL(OUT_GENERIC->OUT_GEN_Bit4));
  9.   XMC_GPIO_SetOutputLevel(P_LED5, MAP2LEVEL(OUT_GENERIC->OUT_GEN_Bit5));
  10.   XMC_GPIO_SetOutputLevel(P_LED6, MAP2LEVEL(OUT_GENERIC->OUT_GEN_Bit6));
  11.   XMC_GPIO_SetOutputLevel(P_LED7, MAP2LEVEL(OUT_GENERIC->OUT_GEN_Bit7));
  12.   XMC_GPIO_SetOutputLevel(P_LED8, MAP2LEVEL(OUT_GENERIC->OUT_GEN_Bit8));

  13.   /* Check integer set by Master OUT_GEN_INT1 and set duty cycle of PWM driving LED 2 accordingly */
  14.   PWM_CCU8_SetDutyCycleSymmetric(&PWM_CCU8_0, XMC_CCU8_SLICE_COMPARE_CHANNEL_1,
  15.                   6000+((uint32_t)4000*(uint32_t)OUT_GENERIC->OUT_GEN_INT1)/65535);

  16.   /* INPUT PROCESSING */
  17.   /*Check Button 1 and set IN_GEN_Bit1 which is sent to master accordingly*/
  18.   if (XMC_GPIO_GetInput(P15_13))
  19.     IN_GENERIC->IN_GEN_Bit1 = 1;
  20.   else
  21.     IN_GENERIC->IN_GEN_Bit1 = 0;

  22.   /*Check Button 2 and set IN_GEN_Bit2 which is sent to master accordingly*/
  23.   if (XMC_GPIO_GetInput(P15_12))
  24.     IN_GENERIC->IN_GEN_Bit2 = 1;
  25.   else
  26.     IN_GENERIC->IN_GEN_Bit2 = 0;

  27. [color=#000000]  IN_GENERIC->IN_GEN_INT1=1234;//define the value test for the twincat3
  28.   IN_GENERIC->IN_GEN_INT2=56789;

  29. //start the ADC ,get the value input for EtherCat master
  30.   IN_GENERIC->IN_GEN_INT3 = ADC_MEASUREMENT_GetResult(&ADC_MEASUREMENT_Channel_A);[/color]
  31. }
复制代码


至此,从站的应用扩展就结束了,是不是很简单啊,哈哈!对于这个从站模块而言,它就是接收和发送相关的数据信息而已,当然也可以实现一定的功能,但是要是与其他模块通讯,涉及到分布式控制的话,就要靠主站来协调资源啦,即由主站控制和配置从站啦!。
那么重点来了,我们需要主站来与从站配合完成相关的功能啊,这就要TwinCAT登场啦,如果是win7以上的电脑,建议使用TwinCAT3,可以免费使用7天,重复注册就行,为什么不推荐TwinCAT2,主要是界面太丑了,我之前做了一个应用使用的就是TwinCAT2,优势是PLC编程支持梯形图,TW3似乎不支持梯形图。TW3的安装这里也不说了,遇到相关的问题百度,我这两天安装这个软件耗时太久了,软件使用要求很高,感觉兼容性一般。
使用相关的TwinCAT软件扫描XMC4800从站的方法,就不再说了,有问题的话,看看软件安装或者xml描述文件是否添加到TW3的目录中呢。
一、      成功扫描到从站开发板后,设置TW3的工作模式,使从站开发板工作在free run模式下,然后就可以看到相关的通讯已经成功了。点击BOX1后,会看到相关的变量定义,这些变量都是在excel表里定义的,我添加了一个INT型输入量和一个INT输出量。
image001.png
二、      这里是重点看看ADC模块的数据是否传递到主站上。如下图,我们读取的ADC测试数据已经在窗口中显示了。到这一步说明数据已经传递到TW3主站了。
image002.jpg
三、      编写主站程序,这里添加一个PLC程序,主要完成一个“起—保—停”电路控制程序和一个整型量判断处理函数,分别用于开关2个led灯。
image003.jpg
四、      PLC程序编写完毕后,记得需要编译一下,这样才能产生程序instance,这个是用来与IO模块的变量进行链接用的。
五、      PLC程序相关的变量链接如下:
PLC程序的输入变量链接情况:注意其中一个连接到IN_GEN_INT3,这个是ADC转换值。
image004.jpg
PLC程序的输出变量链接情况:分别链接到2LED灯啦。
image005.jpg
六、      相应的设置好好,就可以开始运行程序啦,两步骤:设置TW3在run模式,Login进去PLC程序,并运行PLC程序。
image006.jpg
七、      之后就可以看到程序运行的实时状态了,如下图,可以看到ADC的值已经传递到主站了,并且参与到程序控制中了。相关实际演示视频我会后续会上传,因为在外地出差,网络受限,不能上传视频,敬请谅解!
image007.jpg

最后总结:目前XMC4800相关的市场应用还很少,但是丝毫不能掩盖这枚芯片的强大功能以及其背后的DAVE软件绽放的巨大魅力,这次评测我从最简单的外设入手,分别对IO口模块、定时器模块、PWM模块、ADC模块、DAC模块、LWIP应用模块、USB模块、CAN模块进行了基本应用,基本上掌握了DAVE APP软件的应用流程和方法,最后对XMC4800的最大特色EtherCAT从站模块进行了简单分析和应用,并公布了相关的评测使用分享。其中关于LWIP、USB、CAN的相关评测,因为网友已经评测,因此并未公布相关心得体会,后续会根据学习情况继续发帖,感谢EE论坛提供的这一块强大的电路板。
最后,祝大家猪事顺利!!!!




此内容由EEWORLD论坛网友flyword原创,如需转载或用于商业用途需征得作者同意并注明出处

此帖出自工控电子论坛


回复

使用道具 举报

77

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2019-2-6 08:16 来自手机 | 显示全部楼层
你这够拼,搞嵌入式还能干plc  是个人才


回复

使用道具 举报

297

TA的帖子

0

TA的资源

一粒金砂(高级)

Rank: 3Rank: 3

 楼主| 发表于 2019-2-6 08:37 | 显示全部楼层
tdatd 发表于 2019-2-6 08:16
你这够拼,搞嵌入式还能干plc  是个人才

也就玩玩简单的PLC


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

  • 论坛活动 E手掌握

    扫码关注
    EEWORLD 官方微信

  • EE福利  唾手可得

    扫码关注
    EE福利 唾手可得

Archiver|手机版|小黑屋|电子工程世界 ( 京ICP证 060456 )

GMT+8, 2019-5-23 15:32 , Processed in 0.126713 second(s), 20 queries , Gzip On, MemCache On.

快速回复 返回顶部 返回列表