Skip to main content

商业 EtherCAT 主站协议栈 · 实时内核驱动 · 抖动 1µs · Windows + Linux · 多编程语言 · 全协议 · 支持复杂拓扑 + 热插拔 · ethercat.darra.xyz · Commercial EtherCAT Master protocol stack · Real-time kernel driver · 1µs jitter · Multi-platform · Multi-language · Complex topology + hot-plug.

Project description

Darra EtherCAT Master

Darra EtherCAT Master · Python SDK

商业 EtherCAT 主站协议栈 · 实时内核驱动 · 抖动 ≤ 1 µs Commercial EtherCAT Master protocol stack · Real-time kernel driver · ≤ 1 µs jitter

[ Windows x64 ] [ 多编程语言 ] [ 全协议 ] [ 支持复杂拓扑 + 热插拔 ] [ ethercat.darra.xyz ]


为什么选 Darra · Why Darra

传统 EtherCAT 方案 Darra EtherCAT
形态 / Form 专用控制卡 + 专用 PC 纯软件方案 + 实时内核驱动
平台 / Platform 专用 RTOS 或 Windows Windows x64
SDK 语言 / Languages 1–2 种 6 种字节级一致 (C / C++ / C# / Java / Python / Rust)
协议覆盖 / Protocols 部分 全协议: CoE · EoE · FoE · SoE · AoE · VoE · FSoE (SIL3)
周期 / 抖动 0.5–10 ms / >10 µs 50 µs 周期 / ≤ 1 µs 抖动 (配 DarraRT)
部署 / Deployment 专用硬件 + 重型 IDE 一行 pip install
文档 / Docs 散乱 PDF 完善的在线 SDK 文档

核心能力 · Key capabilities

初始化 — 三种方式按场景选:

  • 🟢 DENI 文件 (★ 推荐) — Darra 配置工具一键导出, ESI/PDO/DC/启动参数全套预置.
  • 🟡 ESI 目录 + 自动配set_esi_files + enable_auto_startup, SDK 按从站身份自动套默认参数.
  • 🟠 纯自动配 — 没 ESI 也行, 用从站自带 CoE 对象字典自动配 (调试 / 演示场景).

协议覆盖 — CoE · EoE · FoE · SoE · AoE · VoE · FSoE (SIL3)

核心特性 — DC 分布式时钟 (≤1 µs) · Hot-Connect + 冗余 (单周期切换) · CiA402 驱动状态机 · 紧急消息 (EMCY) 历史 · PDO 类型化读写

网络服务 — 邮箱网关 (ETG.8200, TwinCAT/第三方工具透传) · 诊断系统 (ETG.1510, 帧率 / 错误率 / AL Status / 拓扑查询)


Install

pip install darra-ethercat-master

要求: Python 3.12 · Windows 10/11 x64 · 首次运行需以管理员安装 DarraRT 实时内核驱动 (SDK 强制依赖, 兼容硬件).


快捷使用 · Quick start

最简流程: DENI 一行加载 → 进 OP → 邮箱基本读写.

from darra_ethercat import EtherCATMaster, EcState

master = (EtherCATMaster()
          .set_eni(r"C:\EtherCAT\MyProject.deni")   # DENI 一行加载
          .build())

master.set_state(EcState.OP)                         # 自动 INIT → PreOp → SafeOp → OP

# 邮箱读 — 两种风格任选:

#  ① 基本: bytes + 手动解析
data = master.slaves[0].coe.sdo_read(0x6041, 0x00)
statusword = int.from_bytes(data[:2], 'little')

#  ② 高级: 对象字典索引器 + 类型化 (一行)
sw = master.slaves[0].coe[0x6041][0x00].get_value()

# 邮箱基本写: 字节版
master.slaves[0].coe.sdo_write((100_000).to_bytes(4, 'little'), sub_index=0x00)

高级使用 · Advanced

自动搜网卡 + ESI 自动配 · 类型化邮箱写 (无需 byte-pack) · CiA402 / 邮箱网关 / 诊断.

from darra_ethercat import EtherCATMaster, EcState, get_network_info

# ① 自动搜网卡 (取有从站的那张 NIC)
nets = get_network_info(need_slaves_num=True)
ec = next((n for n in nets if (n.slave_num or 0) > 0), None)
if ec is None:
    raise RuntimeError("未发现 EtherCAT 网络")

# ② ESI 目录 + 自动配 (无 DENI 场景)
master = (EtherCATMaster()
          .set_esi_files(r"C:\Esi")        # ESI 目录, SDK 按身份自动套默认参数
          .set_network(ec.name)
          .enable_auto_startup()
          .build())

master.set_state(EcState.OP)

# ③ 类型化邮箱读写 (无需手动 byte-pack, 自动 little-endian)
status = master.slaves[0].coe.sdo_read_value(0x6041, 0x00, dtype='u16')
master.slaves[0].coe.sdo_write_value(0x607A, 0x00, 100_000, dtype='i32')

# ④ CiA402 驱动一步使能 (Switch on → Operation enabled)
master.slaves[0].cia402.enable()

# ⑤ 诊断快照 (帧率 / 错误率)
diag = master.diagnostics_info
print(f"频率 {diag.frequency} Hz, 错误 {diag.error_count}")

# ⑥ 邮箱网关 (TwinCAT / 第三方工具远程透传 SDO, ETG.8200)
master.mailbox_gateway.start()
print(f"网关运行在端口 {master.mailbox_gateway.port}")

更多 API · More APIs — 完整参考: https://ethercat.darra.xyz/docs/sdk/python


6 语言 SDK 家族 · 6-language SDK family

字节级一致的 CRC / 枚举 / 错误码,业务代码可平滑跨语言。

Language Package Registry
Python darra-ethercat-master PyPI
C# Darra.EtherCAT.Master NuGet
Java xyz.darra:darra-ethercat-master Maven Central
Rust darra-ethercat-master crates.io
C / C++ darra-ethercat-c / darra-ethercat-cpp Releases

文档 · Documentation

⚠️ 关于"微秒级"实时性能 · About microsecond real-time 本 SDK 强制配合 DarraRT 实时内核驱动 + 兼容硬件 使用. 微秒级实时由 SDK + DarraRT 共同提供. DarraRT 通过 CPU 核心隔离 + I/O APIC 中断重定向 + LVT 屏蔽 + 干净抖动统计 显著降低 SMI 干扰 (但不能完全抑制, SMM 属硬件层中断, 完全抑制需 BIOS/UEFI 配合). DarraRT 需另行安装 (非自动安装); SDK 启动时若未检测到, 会提示获取下载链接. 我们另提供 硬实时隔离部署方案, 满足更严苛的实时与功能安全需求. 详见 DarraRT 驱动说明.

This SDK requires the DarraRT real-time kernel driver and supported hardware as runtime companions. Microsecond-level performance is delivered by SDK + DarraRT together. DarraRT mitigates SMI via CPU core isolation, I/O APIC redirect, LVT masking, and clean jitter accounting, though it cannot fully suppress SMI (SMM is a hardware-level interrupt; full suppression requires BIOS/UEFI tuning). DarraRT must be installed separately (not auto-installed); the SDK prompts a download link on startup if not detected. A hard real-time isolated deployment is also available for stricter real-time and functional-safety requirements.


Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

darra_ethercat_master-1.99.6.tar.gz (290.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

darra_ethercat_master-1.99.6-py3-none-any.whl (45.0 MB view details)

Uploaded Python 3

File details

Details for the file darra_ethercat_master-1.99.6.tar.gz.

File metadata

  • Download URL: darra_ethercat_master-1.99.6.tar.gz
  • Upload date:
  • Size: 290.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for darra_ethercat_master-1.99.6.tar.gz
Algorithm Hash digest
SHA256 b0030acd7b7410e34c8907201edbd05d86d3731fed6b644275fe46da3eacd855
MD5 7f98d04bc1748f8eae3eb7df34fc5cc9
BLAKE2b-256 a270b998528c2de54e450741685ce9a1485bee043f5f66ade91213244547f111

See more details on using hashes here.

Provenance

The following attestation bundles were made for darra_ethercat_master-1.99.6.tar.gz:

Publisher: publish-pypi.yml on jtl1207/Darra_ETH_Publish

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file darra_ethercat_master-1.99.6-py3-none-any.whl.

File metadata

File hashes

Hashes for darra_ethercat_master-1.99.6-py3-none-any.whl
Algorithm Hash digest
SHA256 82a435f705357b2645462db14853aebff46a1cb7311a55f18d056603bbfea52a
MD5 3b6936aa03217b08deaed7a65ab604cd
BLAKE2b-256 941bfce1776322e79dc50fd9d2000096835c539e8f948ccf454582780c1113c4

See more details on using hashes here.

Provenance

The following attestation bundles were made for darra_ethercat_master-1.99.6-py3-none-any.whl:

Publisher: publish-pypi.yml on jtl1207/Darra_ETH_Publish

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page