在EtherCAT开发板上基础上增加一个自定义的变量mytest
2016-03-18 22:14
666 查看
在EtherCAT开发板的CoE程序中尝试增加一个输出变量(从站发送给主站),方便后续EtherCAT使用~
修改方法:在索引号0x1a02基础上增加一个16位整形的mytest变量。
主要包括xml配置文件的修改,以及stm32程序的修改。
第一部分 xml配置文件修改
1、增加变量对应于输出映射索引0x1A02的,因此需要更改DT1A02数据类型,增加第九个变量:
重新修改数据类型的BitSize=16+9*32=304
更改0x1A02数据对象(输出映射表),增加SubIndex009,索引号为60201210,其中“6020”代表映射索引号,“12”代表索引6020的第18位SubIdx,“10”代表数据大小,16位。注意:在xml中写的顺序与实际不同。
修改相应的BitSize=16+32*9=304.
2、由于索引0x1A02将输出过程数据映射到0X6020中,因此需要更改#x6020数据类型及对象。
修改DT6200数据类型及BitSIze:
修改#x6020数据对象:
3、在PDO的SM3传输,0x1a02中增加:
第二部分:stm32程序修改
1、更改索引0x1a02及0x6020的本地存储变量、表项描述、对象名字以及对象描述。
更改0x1a02本地存储:
初始化中0x60201210与xml文件对应:
更改0x1a02表项描述:
更改0x6020本地存储变量:
变量初始化:
更改0x6020表项描述:
更改0x1a02及0x6020的对象描述,需要特别注意蓝色圈圈中数据要与子索引最大值相对应。
2、应用层程序更改
在APPL_Application()给自定义变量mytest赋值:
在APPL_InputMapping()中更改,以将数值传给EtherCAT主站。
三、实验结果
利用TwinCAT 3观测数据,可知mytest数据被扫描到,且数值与stm32赋值相同。
修改方法:在索引号0x1a02基础上增加一个16位整形的mytest变量。
主要包括xml配置文件的修改,以及stm32程序的修改。
第一部分 xml配置文件修改
1、增加变量对应于输出映射索引0x1A02的,因此需要更改DT1A02数据类型,增加第九个变量:
重新修改数据类型的BitSize=16+9*32=304
更改0x1A02数据对象(输出映射表),增加SubIndex009,索引号为60201210,其中“6020”代表映射索引号,“12”代表索引6020的第18位SubIdx,“10”代表数据大小,16位。注意:在xml中写的顺序与实际不同。
修改相应的BitSize=16+32*9=304.
2、由于索引0x1A02将输出过程数据映射到0X6020中,因此需要更改#x6020数据类型及对象。
修改DT6200数据类型及BitSIze:
修改#x6020数据对象:
3、在PDO的SM3传输,0x1a02中增加:
第二部分:stm32程序修改
1、更改索引0x1a02及0x6020的本地存储变量、表项描述、对象名字以及对象描述。
更改0x1a02本地存储:
初始化中0x60201210与xml文件对应:
更改0x1a02表项描述:
更改0x6020本地存储变量:
变量初始化:
更改0x6020表项描述:
更改0x1a02及0x6020的对象描述,需要特别注意蓝色圈圈中数据要与子索引最大值相对应。
2、应用层程序更改
在APPL_Application()给自定义变量mytest赋值:
在APPL_InputMapping()中更改,以将数值传给EtherCAT主站。
三、实验结果
利用TwinCAT 3观测数据,可知mytest数据被扫描到,且数值与stm32赋值相同。
相关文章推荐
- 【转】Oracle和DB2工具对照表
- memached系列三合一
- 9. 使用Filter
- Educational Codeforces Round 9 A B C D F
- Linux 下 Gcc 生成和使用静态库和动态库详解
- Cooja Simulator
- fckeditor浏览服务器文件问题
- C++数值类型与string的相互转换
- 可恶的Eclipse 一天崩几百遍我都不惊诧
- HTML基础
- C++数值类型与string的相互转换
- 贪心算法 Problem Q 1016
- android自动弹出软键盘(输入键盘)
- 91. 采药
- 一些常用的原生js方法(函数)
- C#生成缩略图
- 第二次作业
- 【转】Oracle和DB2术语对照表
- 发送短信验证码按钮的实现
- 反思——针对作业的反思