类 MDP

java.lang.Object
com.darra.ethercat.slave.MDP

public class MDP extends Object
MDP (Modular Device Profile) 辅助类 对齐 C# MdpInstance: 模块检测、槽位读取、PDO 布局、自动配置 实现 ETG.5001 模块化设备协议的核心功能。 访问方式: slave.MDP()
  • 字段详细资料

    • OD_MODULAR_DEVICE_PROFILE

      public static final short OD_MODULAR_DEVICE_PROFILE
      MDP 设备信息 (0xF000)
      另请参阅:
    • OD_CONFIGURED_MODULE_LIST

      public static final short OD_CONFIGURED_MODULE_LIST
      已配置模块标识列表 (0xF030)
      另请参阅:
    • OD_DETECTED_MODULE_LIST

      public static final short OD_DETECTED_MODULE_LIST
      已检测模块标识列表 (0xF050)
      另请参阅:
  • 构造器详细资料

    • MDP

      public MDP(Slave slave)
  • 方法详细资料

    • ModuleIndexDistance

      public short ModuleIndexDistance()
      模块索引间距 (0xF000:01)。 每个槽位的对象字典地址 = ModuleIndexDistance * SlotIndex。 默认值: 0x0010 (ETG.5001.1)。
    • MaxModuleCount

      public short MaxModuleCount()
      最大模块数量 (0xF000:02)
    • ConfiguredModules

      public List<MDP.MdpSlotInfo> ConfiguredModules()
      已配置模块列表 (0xF030)。 转调 native MDPGetConfigModuleList, 不再走 SDORead 0xF030.
    • DetectedModules

      public List<MDP.MdpSlotInfo> DetectedModules()
      已检测模块列表 (0xF050)。 转调 native MDPGetDetectedModuleList, 不再走 SDORead 0xF050.
    • ConfigModuleIdents

      public int[] ConfigModuleIdents()
      直读 0xF030 ConfigModuleIdent 数组 (转调 native)
    • DetectedModuleIdents

      public int[] DetectedModuleIdents()
      直读 0xF050 DetectedModuleIdent 数组 (转调 native)
    • CheckModuleMatch

      public int CheckModuleMatch()
      校验 0xF030 vs 0xF050 (转调 native MDPCheckModuleMatch). 返回 first mismatch slot, 1=完全匹配
    • AvailableModules

      public List<MDP.MdpAvailableModule> AvailableModules()
      ESI 中定义的可选模块列表。

      [审计修复 roundSDKSAN2 死声明清理] 原实现直调 native MdpGetAvailableModuleNames/Idents — 这两个函数运行库未导出 (C# SDK 亦无此 API), 且其返回类型 String[]/int[] 本身就是非法的 JNA native 签名. 死声明已从 DarraCore 接口删除.

      "ESI 中声明的可选模块" 需 managed 端解析 ESI <Modules> XML 节点 (对应 C# MDP.ReadAvailableModules 路径). Java SDK 当前未实装该 ESI 解析能力, 故本方法诚实返回空列表 (不臆造数据, 不抛异常). 已检测模块请用 DetectedModules(), 已配置模块请用 ConfiguredModules() — 这两者走真实导出的 MDPGetDetectedModuleList / MDPGetConfigModuleList.

    • GetModulePdoLayout

      public List<MDP.MdpModulePdoInfo> GetModulePdoLayout()
      获取各模块在从站 IOmap 中的 PDO 布局。 通过 CoE SDORead 读取 PDO Assignment (0x1C12/0x1C13) 和 PDO Mapping 条目, 累积计算各模块在 IOmap 中的字节偏移。
      返回:
      PDO 布局列表, 失败返回 null
    • detectModules

      public List<MDP.MdpSlotInfo> detectModules()
      检测当前在线模块列表 (别名方法, 等同于 DetectedModules)
      返回:
      检测到的模块列表
    • Rescan

      public List<MDP.MdpSlotInfo> Rescan()
      重新扫描模块列表并清除缓存
      返回:
      检测到的模块列表
    • InvalidateStaticCache

      public void InvalidateStaticCache()
      清除静态缓存
    • toString

      public String toString()
      覆盖:
      toString 在类中 Object