Habe nun alles auf die CPU geladen,soweit auch gut aber ich kann jetzt in der VAT Send/Recv keine Werte mehr ändern.
Ist das jetzt so gewollt?
Nein, in meiner PLCSIM-Simulation kann ich nach wie vor in der VAT_SendRecv ändern, aber auch in der VAT_Platine_A.
Die VAT_SendRecv manipuliert direkt die Bytes im Sendepuffer für AG_SEND. Der neue Code im
FB100 Netzwerk 2 kopiert die Daten aus der Datenstruktur der "fiktiven" Platine A aus DB11 in den Sendepuffer und setzt den Sendetrigger,
nur wenn M99.0 gesetzt ist und setzt M99.0 sofort wieder zurück. Da musst du schon mal ins Programm schauen ...
Im FC11 wird die Datenstruktur für die LEDs der Platine befüllt, von mir beispielhaft ausprogrammiert nur für die LED 0 einer Platine. Für die anderen LEDs und die weiteren Platinen musst Du das noch programmieren (nachdem du getestet hast, dass die LED 0 so richtig funktioniert).
Ich habe das
FC11 Netzwerk 2 so programmiert, damit je LED nur 1 Netzwerk nötig ist. Das kann man auch auf 2 Netzwerke aufteilen, wenn man etwas Programmspeicherplatz einsparen muss.
Du hast aber wahrscheinlich für Platine A 00 genommen,das wäre Platine 1. Ist das richtig so?
Platine habe ich umgeflasht auf 1 (00 ) , in der VAT passiert nix wenn ich M99.0 Sendeanstoss auf 1 setze.
Was ich "wahrscheinlich" genommen habe, kannst und musst du im
FC11 Netzwerk 1 nachschauen. Da du keinerlei Informationen zu den Strang- und Platinen-Nummern deines Stellwerkes gibst, habe ich da einfach beispielhaft 1 und 2 hingeschrieben. Da musst Du schon selber die mir unbekannten Nummern eintragen.
Sendeaufträge sollen erstmal nur bei Änderung erfolgen.
Da musst du was programmieren, was "bei irgendeiner relevanten Änderung" den M99.0 setzt bzw. Du musst das Programm so programmieren, damit es das tut was du brauchst. Du willst ja wohl sicher nicht ewig nur manuell mit den VAT hantieren, sondern hast irgendwelche nur Dir bekannten Schalter und Taster (oder HMI ? ) mit denen du spielen willst und die irgendwie auch die LEDs beeinflussen sollen. Die VAT sind nur Beispiel-Hilfskrücken, damit Du zum ersten Kennenlernen was sinnvolles an dein Erbert Dings senden kannst. Im fertigen Programm wirst du mit den VAT höchstwahrscheinlich nichts mehr steuern können (sondern höchstens beobachten können).
Löse dich von den VAT und programmiere eine Sendeauftrags-Steuerung, die die verschiedenen jeweils benötigten Steuertelegramme sendet und sich dabei nicht gegenseitig in die Quere kommen dürfen - also immer nur einen Sendeauftrag ausführen und warten bis der komplett ausgeführt ist (AG_SEND DONE) und dann den nächsten anstehenden Sendeauftrag und so weiter.
Tipp: bei SPS ist es meistens einfacher zu programmieren, immer alles zyklisch zu senden, so wie es auch ein Feldbus wie Profibus oder Profinet tut (selbständig im Hintergrund). Bei der TCP-Verbindung zu deinem Erbert Dings musst du dich um jedes Steuertelegramm selber kümmern.
PS: Ich würde vermutlich die LED-Steuerstrukturen für
alle Platinen hintereinander in den Sendepuffer kopieren
(ohne das Padding-Byte am Ende! oder die nächste Struktur auf dem Padding-Byte der Struktur davor beginnen lassen) und mit nur einem Sendeauftrag alle gleichzeitig senden, also bei z.B. 5 Platinen = 5 x 7 Bytes = 35 Bytes senden.