Die Adressen der Eingänge kannst Du in der Hardwarekonfiguration ausfindig machen. Nimm einfach die ersten 3 Eingänge und passe die Adresse im Programm an. Wenn du nur eine Simulation laufen lässt, spielen die Adressen vermutlich sowieso keine Rolle.
Nun zum Programm:
von den 2 Lichtschranken werden die Flanken ausgewertet. Das bedeutet, dass die Flankenmerker M1.0 bzw. 1.2 während einem Zyklus 1 werden, und zwar genau in dem Moment, wo die entsprechende Lichtschranke unterbrochen wird.
Also... Person kommt von aussen und unterbricht E1.0 -> M1.0 wird während einem Zyklus = 1
Wenn dies geschieht und die Lichtschranke die mehr im Innern des Raums angebracht ist noch nicht unterbrochen ist, dann wird der Zähler um 1 erhöht (ZV Z0)
Das gleiche funktioniert in umgekehrter RIchtung: verlässt eine Person den Raum, unterbricht sie zuert E1.1, womit der Flankenmerker M1.2 während einem Zyklus 1 wird -> ZR Z0 wird um 1 erniedrigt, wenn die äussere LIchtschranke noch nicht unterbrochen ist.
WIchtig ist nun, dass die beiden Lichtschranken näher zusammen sind als die Dicke einer Person ist!
Die beiden Hilfsmerker M1.1 und M1.3 werden eigentlich nur "intern" als Speicher gebraucht, damit der Flankenmerker gebildet werden kann.
Na ja... tönt kompliziert. Aber mach doch mal eine Zeichnung: Raum mit einer Türe, unmittelbar vor und nach der Türe eine Lichtschranke. (ca.10cm Distanz). Ueberlege Schritt für Schritt, was passiert.
Person kommt von draussen, trifft auf äussere LS -> M1.0 wird kurz 1 -> E1.1 ist noch nicht unterbrochen -> Zähle aufwärts.
Person läuft weiter und unterbricht jetzt zusätzlich auch noch LS E1.1 -> Flanke M1.2 wird gebildet. Da aber LS E1.0 immer noch unterbrochen ist, wird nicht zurückgezählt.
Person verlässt äussere Lichtschranke -> es passiert nichts, M1.0 und M1.2 schon längstens O sind
Person verlässt innere Lichtschranke -> es passiert auch nichts, da M1.0 und M1.2 immer noch 0 sind.
Ganz ohne Grundlage wirst du wahrscheinlich Deinen Lehrer schlecht von deinen SPS-Fähigkeite überzeugen können.