Bei AB gibt es kein PAE bzw. PAA wie bei Siemens. Da werden die Eingänge in dem Moment von der Eingangskarte gelesen wo du sie im Zyklus abfragst.
Stimmt nicht pauschal. Bei PLC5 verhielt sich das ähnlich wie bei der S7, also Eingänge lesen, Programmm abarbeiten, dann Ausgänge setzen. Bei der aktuellen Generation (Controllogix) ist das anders. Die Eingänge werden nicht gelesen wenn Du sie im Zyklus abfragst sondern sie werden asynchon zur Programmabarbeitung upgedated, aber nicht alle gleichzeitig! Der Update hängt von der jeweils eingestellten RPI (Requested Packet Interval) ab. Du kannst bei der einen Eingangskarte im Rack 2ms einstellen und bei der nächsten 5ms, entsprechend wird der Status (im "Abbild") öfters oder weniger oft upgedated, aber keinesfalls abhängig davon wie oft oder wann Du das Bit im Abbild abfrägst. Da das Ganze asynchron zum Programm passiert, kann es sein, dass im Rung 27 der Eingang noch 1 ist, im Rung 28 aber schon 0 weil zwischendurch ein Update stattgefunden hat (weil eben die x ms wieder vorbei waren). Je nachdem wie Du Deine Logik programmierst kann es passieren, dass dadurch unvorhergesehene Dinge passieren. Bei entsprechender Programmierung (z.B. "Case"-Anweisung in einer Schrittkette) macht das nichts aus, einfacher ist es allemal, sich keine Gedanken darüber zu machen und einfach das Abbild vor der Programmabarbeitung in eine Variable zu kopieren. Das muss keinesfalls für alle Eingänge gleichzeitig passieren, wenn die Eingänge passend zu Funktionsgruppen der Maschine sortiert sind (z.B. Karte im Slot 7 hat die Eingänge von Förderstrecke 4 vom Staubahnhof), dann kann man einzelne Karten passend zum jeweiligen Programmteil updaten (und damit im Zweifelsfall mit dem aktuelleren Abbild arbeiten als mit der sturen Abbildgeschichte vor der Programmausführung. Rockwell hatte das asynchrone Abbild schon mal (PLC3, wer die fast-Kubikmeter-SPS noch kennt) und ist nicht ohne Grund wieder zu dieser Lösung zurück gegangen.
Bei den Ausgängen ist es meist weniger tragisch wenn der eine ein paar ms vor dem anderen gesetzt wird, wenn's absolut gleichzeit passieren soll sollte man die betreffenden Ausgänge auf die gleiche Karte legen.
Wenn die Kopiererei selber nicht vom Update unterbrochen werden soll, darf man auch keinen "COP" Befehl verwenden sondern muss zwingend den "CPS" nehmen. Der ist natürlich nicht ohne Nebenwirkungen, wird er im Continuous Task eingesetzt und diese soll gerade in diesem Moment von einer zeitgestuerten Task unterbrochen werden, startet diese natürlich geringfügig verzögert, es ergibt sich dadurch ein entsprechender Jitter.