Field Memory Management Unit(FMMU)

一. FMMU把从站分散的数据内容映射到主站连续的内存,减少子报文数量,便于主站应用层的编写。

FMMU由主站配置,主站包含一个2^32大小的逻辑地址空间,每一个从站的FMMU分别映射对应的地址空间。

 

二. 主站从站连接方式

如上图第从站1001 的FMMU0配置所示,将从站ESC内存地址起始 0x1800映射到FMMU地址10000,长度2字节,属性为写,即主站只需操作对逻辑地址10000写入两个字节,实际是对从站的内存0x1800地址写入两个字节。

同理,从站1001的FMMU1配置为,将从站的ESC内存地址0x1C00映射到FMMU地址10000,长度2字节,属性为读,即主站读内存操作,只需对逻辑地址10000读入两个字节,实际对应的是从从站的内存0x1C00读取两个字节。

三. FMMU寄存器说明

逻辑寻址方式特别适用于传输或者交换周期性的过程数据。FMMU操作具有以下功能 特点

1. 每个数据逻辑地址的字节只允许被FMMU读和另一个FMMU写,或者被同一个FMMU进行读写交换操作

2. 对一个逻辑地址的读写操作,和使用一个FMMU读和另一个FMMU写具有相同的效果

3. 按位操作不影响报文中没有映射到的其他位

4. 读写一个未配置的逻辑地址空间不会改变其内容

 

四. TwinCAT报文分析

TwinCAT 的FMMU分配说明:

FMMU0 用于RxPDO数据传输,即主站周期发送数据给从站。

FMMU1 用于TxPDO数据传输,即主站周期读取从站数据。

FMMU2配置成从站发送邮箱数据准备标志位(0x80D.0),当从站邮箱数据准备好时,主站读取邮箱数据。

实验使用了两个不同的从站,使用TwinCAT扫描,TwinCAT将从站的FMMU分配如下:

从站1 FMMU分配

L startLengthL EndBitP StartFlagsSmSu
0x01000000.0470x1100.0WE00
0x01000000.0670x1400.0RE00
0x09000000.0100x080D.0RE00

 从站2 FMMU分配

L startLengthL EndBitP StartFlagsSmSu
0x01000006.01370x1200.0WE00
0x01000006.01370x1400.0RE00
0x09000000.1100x080D.0RE00

主站发出的报文段

Data为 已准备好的RxPDO数据

主站接收到的报文

Data被从站刷新为TxPDO数据

总结

TwinCAT使用读写指令进行PDO数据传输,主站发出LRW的指令的同时,待写入的数据就已经准备好,从站先从数据流中写入RxPDO数据,再将TxPDO数据写入空缺的数据流中。当从站的TxPDO和RxPDO数据长度不一样时,下一从站的逻辑地址的起始地址要大于上一从站的逻辑地址的最长位。

TwinCAT使用FMMU来进行PDO数据交换,指令简洁,大大减少了子指令的数量。

 

  • 3
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值