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:
@@ -196,6 +196,17 @@ def test_zwei_antriebs_tros_auf_einem_foerderer_sind_widerspruch():
|
||||
assert anlage.binding(tro, "drive", "motorProtection").status == "widerspruch"
|
||||
|
||||
|
||||
def test_antrieb_von_hand_wird_nicht_ueberschrieben():
|
||||
"""hw_overrides.ini legt den Motor je Vario fest - die automatische
|
||||
Antriebszuordnung haengt keinen zweiten (Widerspruch-)Eintrag daneben."""
|
||||
overrides = merge_hw_layout.Overrides(bindings={("TRO03", "drive", "motor"): "MA0210"})
|
||||
anlage = run(doc=layout(second_vario=True), overrides=overrides)
|
||||
motors = [b for b in anlage.bindings
|
||||
if (b.tro, b.slot, b.role) == ("TRO03", "drive", "motor")]
|
||||
assert [(b.bmk, b.rule, b.status) for b in motors] == [("MA0210", "hand", "zugeordnet")]
|
||||
assert anlage.binding("TRO06", "drive", "motor").status == "widerspruch"
|
||||
|
||||
|
||||
def test_gemeinsame_zeichnung_ohne_lagebezug(tmp_path):
|
||||
"""hw_import --dxf: E-Symbole stehen schon in Layout-Koordinaten - kein
|
||||
Lagebezug wird ermittelt oder abgelegt."""
|
||||
|
||||
Reference in New Issue
Block a user