gibt es eine Möglichkeit einen Eingang direkt weiter auf einen Ausgang zu legen/schalten? Quasi am OB 1 vorbei ohne Zykluszeit.
An welchen Baugruppen sind der Eingang und der Ausgang? An zentralen E/A-Baugruppen oder per Feldbus? Können die E/A-Baugruppen vielleicht so parametriert werden, dass die selbständig ein Eingangssignal an einen Ausgang durchschalten? Gibt es evtl. passende Technologie-Funktionen?
Wie lang ist die OB1-Zykluszeit deiner CPU?
Wenn im CPU-Programm ein Signal schneller als im OB1 verarbeitet/weitergegeben werden soll, dann darf der Code natürlich nicht im OB1 aufgerufen werden. Dann muss der Code entweder in einem Weckalarm aufgerufen werden, welcher schneller/öfter als der OB1 aufgerufen wird, oder es muss mit Prozessalarm (Hardware-Interrupt) des Eingangs gearbeitet werden (wie
@escride1 in #4 andeutet). Dann schaue mal in die technischen Daten deiner Eingabe-Baugruppe und der Ausgabe-Baugruppe und deiner CPU 1513, wie schnell die Gesamt-Verarbeitungszeit wird und ob das nennenswert schneller als deine OB1-Zykluszeit ist.
Im Weckalarm und im Prozessalarm darf dann natürlich nicht mit den OB1-Prozessabbildern der Eingänge und Ausgänge gearbeitet werden, weil die nicht schneller aktualisiert werden als der OB1 aufgerufen wird. Da muss dann direkt auf die Peripherieadressen zugegriffen werden
%Ex.x:P
und
%Ax.x:P
. Bei Prozessalarm muss je nach Baugruppe erst festgestellt werden, welcher Eingang den Prozessalarm ausgelöst hat und dann evtl. ein gesamtes (D)Word aus der Baugruppe geladen werden und der betreffende Eingang ausmaskiert werden und dann an die Peripherie der Ausgangsbaugruppe ausgegeben werden.
HW seitig verdrahten wäre eine Möglichkeit falls es hier keine Möglichkeit gibt.
Das wäre am einfachsten.
Wenn bei der Geschichte allerdings noch ein Koppelrelais dazwischen ist, dann schau mal, wie lange das Relais das Signal verzögert - da spielen ein paar ms in der SPS-CPU wohl keine Rolle mehr.