scl_context: Staubereichs-Namen je Foerderer in Fliessrichtung
Staubereiche heissen DB_JamArea<NNNN>.stJam<NNNN>_<k> (Regel der SPS-Programmierung, Dematic): NNNN = Foerderer, auf dem der Staubereich liegt (Kreisel- bzw. Vario-Motor), k zaehlt auf diesem Foerderer in Fliessrichtung. Foerderer: eigener Vario-Antrieb, sonst Separator auf einem Kreisel (staubereich_kreisel_max_mm in cfg/parameter.ini [scl_context]), sonst Kreisel-Host, sonst letzter Antriebs-TRO davor auf derselben Strecke. k folgt der Nachfolgerkette auf dem Foerderer, nicht der REGION-Reihenfolge (Breitensuche, Dematic Kreisel3 sonst TRO20 vor TRO23). Programm-DBs zaehlen in der --strict-Gegenpruefung nicht als Geraete. merge_hw_layout: von Hand gesetzte Antriebe (hw_overrides.ini) bekommen keinen zusaetzlichen automatischen Widerspruch-Eintrag mehr. hw_overrides.ini Dematic: VF_6 = MA0043 (TRO04/05) + MA0044 (TRO06/07), VF_4 = MA0045 (TRO01/02, K0045 = 0008); Separatoren nach Klartext statt kleinstem Abstand - TRO04 hatte BG0111 von VF_4. Dematic: alle 25 Staubereiche benannt, 123 Slot-Rollen, 0 Widersprueche, offene Stellen 615 -> 494. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
+4
-2
@@ -585,13 +585,15 @@ def unknown_names(context: SclFile, hw: HardwareDocument) -> list[str]:
|
||||
"""Eingesetzte Namen, die die Hardwareplanung nicht kennt.
|
||||
|
||||
Geprueft werden Symbole und Konstanten (cInBG0532, MB0533, "FC0202");
|
||||
Instanzzugriffe wie #fbCarousel0102.xOut... sind keine globalen Namen.
|
||||
Instanzzugriffe wie #fbCarousel0102.xOut... und Zugriffe auf Programm-DBs
|
||||
wie "DB_JamArea0102".stJam0102_1 sind keine Geraete der Hardwareplanung.
|
||||
"""
|
||||
bekannt = {n for d in hw.devices for n in (d.bmk, d.constant) if n}
|
||||
bekannt |= {c.name for c in hw.constants}
|
||||
bekannt |= {n for d in hw.drives for n in (d.motor, d.protection, d.encoder) if n}
|
||||
return [name for name in known_names(context)
|
||||
if not name.startswith("#") and name.strip('"') not in bekannt]
|
||||
if not name.startswith(("#", '"DB_'))
|
||||
and name.strip('"') not in bekannt]
|
||||
|
||||
|
||||
def _schema_of(path: Path) -> str:
|
||||
|
||||
Reference in New Issue
Block a user