Skip to content

CANopen: Zuschnitt der Master-/Tool-Rolle (zweite Runde, nach der SRS-Übersetzung) #131

Description

@dborgards

Der Zuschnitt in 2026-09-15-canopen-scope.md (PR #129) schneidet die Geräterolle zu: den Knoten, der ein eigenes Objektverzeichnis führt, von einem fremden Master konfiguriert wird und PDOs produziert. Das Dokument sagt das inzwischen selbst — vorher stand dort nur „CANopen ist durch", was zu breit war.

Die Master-/Tool-Rolle ist damit nicht zugeschnitten, obwohl sie kein Nachgedanke ist:

  • Die SRS nennt als Stakeholder wörtlich „CANopen-Master/-Node-Anwendung".
  • FR-CO-007 verlangt NMT ausdrücklich „sowohl als NMT-Master (Kommandos senden) als auch als NMT-Node".
  • FR-CO-002/003 sprechen von „entfernten OD-Einträgen" — das ist der SDO-Client.
  • FR-CO-008/-010/-011 decken je Produktion und Konsumption ab.
  • Die API trägt es: SendNmtCommandAsync(…, targetNodeId), SdoUploadAsync(serverNodeId, …), AddHeartbeatConsumer(producerNodeId, …), StartNodeGuardingConsumer(…), StartSyncProducer.

Was in dieser Runde zu entscheiden ist

Erste, noch ungeprüfte Sammlung — die Runde selbst arbeitet sie gegen Code und Normtext ab, wie die erste:

  • Die EDS/DCF des fremden Knotens. Die erste Runde hat entschieden, dass eine EDS unser Objektverzeichnis und unsere PDO-Konfiguration speist. Für ein Tool ist der häufigere Fall der andere: die Beschreibung des Geräts laden, mit dem man spricht — Indizes benennen, fremde PDO-Nutzdaten in Signale zerlegen, einen Schreibzugriff vor dem Senden gegen die Beschreibung prüfen. Dieselbe Bibliothek (dborgards/eds-dcf-net), anderer Verwendungszweck.
  • Busbeobachtung. Fremde PDOs zu dekodieren braucht deren Mapping — aus der EDS des Geräts oder per SDO aus dessen 1600h/1A00h gelesen. Beides ist heute nicht vorgesehen.
  • Knoten-Scan / Discovery. 1000h und 1018h über die Node-IDs abklappern, um zu sehen, was am Bus hängt. Mit dem vorhandenen SDO-Client baubar, aber keine Anforderung.
  • Flying Master (CiA 302). Die GAP-Analyse führt ihn als Ausnahmekandidaten, „praktisch nie gebraucht". Dieses Urteil ist unter der Geräteannahme gefällt worden und gehört neu getroffen, wenn die Master-Rolle ein Hauptfall ist.
  • Rückwirkung auf die erste Runde. Wenn Tool/Master der Hauptfall ist, schrumpft der Wert einiger Geräteposten — etwa der Fallback-Records ohne EDS. Die Posten bleiben richtig, ihre Priorität wäre neu zu bewerten.

Reihenfolge

Nach dem Maintainer (16.09.): erst die Geräterolle in Anforderungen übersetzen, damit die Traceability-Ratsche greift, dann diese Runde. Nicht davor und nicht parallel — die erste Übersetzung ist der Testfall für die Methode, und zwei offene Zuschnitte gleichzeitig sind genau das, was CLAUDE.md unter one pull request open at a time aus Aufsichtsgründen ausschließt.

Die vier Prüffragen aus dem Scope-Dokument gelten auch hier; die zweite („gilt der Posten für beide Pfade?") bekommt in dieser Runde eine dritte Lesart: gilt er für beide Rollen?

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area: canopenCanKit.Pro.CANopen — SDO, PDO, NMT, object dictionarytype: docsDocumentation only

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions