7390|7

280

帖子

0

TA的资源

一粒金砂(高级)

楼主
 

【 XMC4800 Relax EtherCAT Kit测评】+评测结贴,EtherCAT从站模块应用扩展 [复制链接]

本帖最后由 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输出量。
二、      这里是重点看看ADC模块的数据是否传递到主站上。如下图,我们读取的ADC测试数据已经在窗口中显示了。到这一步说明数据已经传递到TW3主站了。
三、      编写主站程序,这里添加一个PLC程序,主要完成一个“起—保—停”电路控制程序和一个整型量判断处理函数,分别用于开关2个led灯。
四、      PLC程序编写完毕后,记得需要编译一下,这样才能产生程序instance,这个是用来与IO模块的变量进行链接用的。
五、      PLC程序相关的变量链接如下:
PLC程序的输入变量链接情况:注意其中一个连接到IN_GEN_INT3,这个是ADC转换值。
PLC程序的输出变量链接情况:分别链接到2LED灯啦。
六、      相应的设置好好,就可以开始运行程序啦,两步骤:设置TW3在run模式,Login进去PLC程序,并运行PLC程序。
七、      之后就可以看到程序运行的实时状态了,如下图,可以看到ADC的值已经传递到主站了,并且参与到程序控制中了。相关实际演示视频我会后续会上传,因为在外地出差,网络受限,不能上传视频,敬请谅解!

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




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

此帖出自工控电子论坛

最新回复

PLC和嵌入式感觉水火不相容,我是搞嵌入式的,目前公司在用PLC,只能另辟蹊径了   详情 回复 发表于 2022-6-11 08:56
点赞 关注(1)
 

回复
举报

68

帖子

0

TA的资源

一粒金砂(中级)

沙发
 
你这够拼,搞嵌入式还能干plc  是个人才
此帖出自工控电子论坛
 
 

回复

280

帖子

0

TA的资源

一粒金砂(高级)

板凳
 
tdatd 发表于 2019-2-6 08:16
你这够拼,搞嵌入式还能干plc  是个人才

也就玩玩简单的PLC
此帖出自工控电子论坛
 
 

回复

2

帖子

0

TA的资源

一粒金砂(初级)

4
 

flyworld你好,

这个dave的工程可以给我么?谢

此帖出自工控电子论坛
 
 

回复

280

帖子

0

TA的资源

一粒金砂(高级)

5
 
answer88 发表于 2019-9-21 15:37 flyworld你好, 这个dave的工程可以给我么?谢

你的邮箱发给我,我找找私信给你!

此帖出自工控电子论坛
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

6
 

感谢楼主分享,请教下这一步“设置TW3的工作模式,使从站开发板工作在free run模式下”,工作模式如何设置呢

此帖出自工控电子论坛
 
 

回复

280

帖子

0

TA的资源

一粒金砂(高级)

7
 
cynaruto 发表于 2020-2-19 00:53 感谢楼主分享,请教下这一步“设置TW3的工作模式,使从站开发板工作在free run模式下”,工作模 ...

可以在TWinCAT3的软件中设置主站的工作模式到free run。

此帖出自工控电子论坛
 
 

回复

8

帖子

0

TA的资源

一粒金砂(中级)

8
 

PLC和嵌入式感觉水火不相容,我是搞嵌入式的,目前公司在用PLC,只能另辟蹊径了

此帖出自工控电子论坛
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表