管理节点冗余

RMN介绍

管理节点冗余依据EPSG 302-A Section 3扩展,在POWERLINK网络中提供多于一个的管理节点来提高实用性。该类节点称为冗余管理节点(RMN)。同一时刻仅其中一个作为主站运行。其称为活动管理节点(AMN)。其他RMN以类似普通从站的形式运行,因此被称为备用管理节点(SMN)。如果当前AMN发生故障,其可以转换为AMN。

应用要求

为了确保能够正常工作,以冗余管理节点形式运行的设备应用和POWERLINK网络配置需满足以下条件:

  1. openPOWERLINK库和驱动的CMake配置选项CFG_INCLUDE_MN_REDUNDANCY置位。
  2. node-ID 240且不支持RMN的普通MN节点不存在于网络中。
  3. RPM Node-ID在241到250范围内, 或者RMN对象字典0x1F89子索引0xA-0xC的优先级配置正确。
  4. 配置要求(RMN对象字典)。在复位配置的过程中本地对象字典的某些值必须手动写入。

    • 对象0x1F80/0 NMT_StartUp_U32:位14为1 (使能RMN)
    • 对象0x1F81 NMT_NodeAssignment_AU32必须包含所有RMN,例:位0和1为RMN设置.
    • 对象0x1F92 NMT_MNCNPResTimeout_AU32配置为适当的值。
    • 每个RMN的对象0x1F89/2 MNWaitNotAct_U32应置不同值以在NMT预操作状态下区分各RMN优先级。
    • PDO 配置满足应用需求。 NOTE: 当前,需要手写CDC文件来完成,因为openCONFIGURATOR (versions <= 1.4.1)还未能支持RMN配置。 手写mnobd.txt文件可由openPOWERLINK提供的txt2cdc工具转换为mnobd.cdc文件。该工程配置存储于apps/common/openCONFIGURATOR_projects/Demo_RMN_3CN。你需要使用CMake配置你的MN demo来使用工程Demo_RMN_3CN.
  5. RMN可以作为CN(SMN)和MN(AMN)运行。因此目标平台应用需带有全功能的CN和MN并且满足实时性要求。对于CN来说就是PRes稳定的低延迟(例:快速以太网控制器中断响应)。对于MN来说就是精确的高分辨率定时。特别对于SMN来说,确定性的高精度定时非常重要,在当前AMN出现故障时,其切换定时决定了网络中那一个SMN能够当选成为AMN。如果两个SMN由于不确定的高精定时造成切换AMN的时间非常接近,将导致非预期结果。

支持的特性

当前的管理节点冗余扩展支持以下特性。

  • 如果RMN使能,node-ID 240仅作为SoC,PReq和SoA的源node-ID。所有其他POWERLINK帧使用实际node-ID作为源node-ID。
  • SoC关联时间在RMN间是同步的。
  • NMT请求NMTGoToStandby带有可选的延时标志。
  • 节点事件kNmtNodeEventAmniReceived将AMNI接收汇报给应用。元素tOplkApiEventNode::nodeId包含了新AMN的node-ID。
  • Configuration Manager支持将对象0x1F22中的CN CDC传给网络中的其它RMN。(例:分发网络配置数据)。
  • 使用公式(node-ID - 240)计算每一对象0x1F89/0x0A 的MNSwitchOverPriority_U32默认值。如果值为负,默认值置10(优先级很低)。

不支持的特性

以下为当前管理节点冗余扩展所不支持的特性。

  • 目标平台上带有openMAC(macro CONFIG_EDRV_AUTO_RESPONSE为TRUE)
  • Intel i210以太网驱动(未经测试)
  • POWERLINK扩展PollResponse Chaining(EPSG 302-C和302-A协议不兼容)
  • 协议推荐的NMT命令NMTFlushArpEntry在冗余切换后并未发送。当前,该命令完全没有被执行。
  • 应用有可能拒绝NMT请求GoToStandby。当前,没有API来询问应用关于MNT请求。