EtherCAT从站开发板IO、AD、DA功能测试

这是我18年暑期为这款红色EtherCAT从站写的程序和测试过程,实现了io、ad、da功能。后续会上传这块板子的程序和使用文档。详细过程可以参考我写的程序。

1.测试准备

本实验采用了一块红色的从站开发板,8路输入(key)、8路输出(led)、1路AD、1路DA。

单片机程序、EEPROM和twincat软件目录下的XML文件,三者必须对应,否则会出错。
下图为stm32从站代码和xml文件。
EtherCAT从站开发板IO、AD、DA功能测试_第1张图片
需要把XML烧写进从站的EEPROM中,给stm32烧写从站程序,将xml文件拷贝到C:\TwinCAT\3.1\Config\Io\EtherCAT。

2.建立TwinCAT工程

打开twincat,推荐使用Intel的cpu和网卡。在 Twincat 内安装网卡驱动,并创建一个新的工程,这部分我就不详述了。
右键点击 device→scan 扫描连接的从站设备:
EtherCAT从站开发板IO、AD、DA功能测试_第2张图片
接着会跳出“Scan for boxes”和“Activate Free Run”对话框,都点“是”。
正常会扫描到如下设备:
EtherCAT从站开发板IO、AD、DA功能测试_第3张图片
双击 BOX1,打开 online,可以看到从站处于 OP 状态,开发板上的RUN灯将会常亮。
EtherCAT从站开发板IO、AD、DA功能测试_第4张图片
板子目前实现了IO、AD、DA功能,点击Box1下面的图标,可显示如下内容。
EtherCAT从站开发板IO、AD、DA功能测试_第5张图片
Switch1——Switch8对应从站的I1——I8按键;LED1——LED8对应从站的O1——O8小灯;adc为电位器电压值,dac为输出电压值。

3.按钮测试

按下key,twincat上对应的变量Switch会在0和1之间切换,如图所示。
EtherCAT从站开发板IO、AD、DA功能测试_第6张图片

4.led测试

在twincat上对LED1~LED8赋值,可以控制LED小灯亮灭。
EtherCAT从站开发板IO、AD、DA功能测试_第7张图片

5.AD测试

转动板子上的电位器,twincat上的Analog input会产生0-3300的变化。1000对应1000mv,3000对应3000mv。
EtherCAT从站开发板IO、AD、DA功能测试_第8张图片

6.DA测试

在twincat上对dac赋值,可以在板子上检测出PA4引脚的电平。赋值1000对应1000mv,3000对应3000mv,以此类推。最高电压不超过3.3v。当dac赋值为2000时,万用表测得电压为1.8v。
EtherCAT从站开发板IO、AD、DA功能测试_第9张图片

7.程序小结

Stm32从站部分已经实现IO、DA、AD功能,底层驱动已经写好,只需对相关变量进行操作,即可实现特定的功能。
EtherCAT从站开发板IO、AD、DA功能测试_第10张图片
LED_1= sDOOutputs.bLED1;这句话将twincat中LED 1的值赋值给了从站的LED_1,从而控制了小灯的亮灭。
sDIInputs.bSwitch1 = SWITCH_1;这里将从站按键的值赋值给twincat中的Switch 1变量。
sAIInputs.adc = adcValue;
dacValue = sDOOutputs.dac;这两句实现了ad值的读入和da值的输出。
从站修改步骤大体是:1.自定义对象字典;2.在stm32从站程序中,添加外设驱动,初始化过程写在HW_Init();函数中。
EtherCAT从站开发板IO、AD、DA功能测试_第11张图片

你可能感兴趣的:(ethercat)