Kann ich Deinen AWL-Script so verwenden,auch wenn ich schon etwas in KOP erstellt habe?
Was für ein "
AWL-Script"? Meinst du meine Programm-Skizze aus Beitrag #150? Das ist kein AWL, sondern soll stark vereinfacht angedeutetes KOP sein, was nur zeigt, welche Anweisungs-Boxen in KOP wie verschaltet werden sollen.
Man kann KOP- und AWL-Netzwerke allerdings im Baustein mischen. siehe z.B. die Bausteine FB100 und OB1, da sind einige Netzwerke in AWL und die anderen in KOP.
Bei der Bauart WSSB (DDR-Stellwerkstechnik) werden maximal acht LEDs und ein Taster pro Gleisbildfeld benötigt.
Wie kommt der Taster zur SPS? Wird der direkt auf Digitaleingänge der SPS verdrahtet oder muss der mit dem CP343-1 abgefragt werden? Da müsste die Abfrage zyklisch stattfinden ("nur bei Änderung" geht da ja schlecht).
Es werden fürs Erste 8 Weichenplatinen und 6 Signalplatinen zum Einsatz kommen.
(...)
So wie ich das nun verstehe,könnte ich sozusagen 4 Platinen Mit eienm DWORD abarbeiten.
8 LEDs auf auf 4 Platinen verteilt. Oder sehe ich da wieder was falsch?
Ist so ein "Gleisbildfeld" genau die von dir so genannte "Platine"? Sind die Steuertelegramme für die Platinen gleich oder unterschiedlich, wenn weniger als 16 LED drauf sind?
Oder sind da (universelle) Platinen für 16 LED und die müssen zu den Gleisbildfeldern verdrahtet werden, so dass mehrere Gleisbildfelder an einer Platine sind oder ein Gleisbildfeld auch an mehreren verschiedenen Platinen hängen kann?
Jede "Platine" hat ein Steuertelegramm für (max) 16 LED mit je 2 Steuerbits = genau 1 DWORD Steuerbits
Oder haben die unterschiedlichen Platinen unterschiedlich lange Steuertelegramme, wenn weniger LED vorhanden sind?
Wenn ich nicht groß über die Details nachdenke und keine Detailinformationen vom Fragesteller habe, dann würde ich je Platine genau 1 DWORD vorsehen (Maximalausbau), auch wenn nicht alle 16 LED angeschlossen und genutzt werden. Das vereinfacht das SPS-Programm. Welche LED-Ausgänge genutzt sind und gesteuert werden sollen, machst du über die Zuweisungen an die M100.x ff. Unbenutzte LED-Ausgänge benötigen keine Zuweisungen an die M100.x, allerdings sollten die unbenutzten Merker irgendwann einmal auf 0 initialisiert werden (was die SPS bei jedem STOP->RUN macht), weil die unbenutzten Merker Einfluß auf die DWORD-weise Änderungs-Erkennung haben. Wenn man Merker sparen will/muss, dann kann man natürlich auch nur Merker für tatsächlich vorhandene LED vorsehen (unabhängig davon wie die LED auf die Platinen verteilt sind), dann wird aber das Programm etwas umständlicher und vielleicht größer.
Wenn willst,kannst ja mal ins Zip reinschauen.
Zuweisungen an Variablen sollte man im Programm machen
bevor man den Inhalt verknüpft (auch wenn die Variablen den Inhalt speichern können), damit man nicht unnötige Signalverzögerungen bekommt. Deine Zuweisungen an die M100.x im FC11
nach der Verknüpfung der M100.x werden erst im nächsten OB1-Zyklus an die Platinen weitergegeben. Und ich würde die Zuweisungen nicht im FC11 machen, sondern in einem anderen FC/FB, der vor dem FC11 aufgerufen wird. Im FC11 soll nur das umrangieren von M100.x an die Platinen-Bits sein.