Sprung wird nicht ausgeführt

plc_typ

Level-2
Beiträge
215
Reaktionspunkte
30
Zuviel Werbung?
-> Hier kostenlos registrieren
hallo zusammen,
ich habe das Problem das ein Sprung nicht ausgeführt wird obwohl das VKE passt.


So funktionierts nicht
Code:
      U     "E   8.7"
      U     "A  12.7"
      U     "M   2.5"
      UN    M     41.4
      FP    M     41.3
      SPBNB D2C1
Erst wenn das VKE auf false gesetzt wird wird die operation richtig ausgeführt
Code:
      CLR
      U     "E   8.7"
      U     "A  12.7"
      U     "M   2.5"
      UN    M     41.4
      FP    M     41.3
      SPBNB D2C1


Habt Ihr eine Idee woran das liegen könnte.

Danke
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Code:
     U     "M  20.0"
      SPB   R2F

      U     "M  20.3"
      U     "M   2.4"
      FP    M     40.3
      SPBNB R2B1
      L     "DB Statusmessage".Statusmessage.Rotor_2
      L     1
      -I    
      T     "DB Statusmessage".Statusmessage.Rotor_2
      UN    OV
      SAVE  
      CLR   
R2B1: U     BIE
      L     "DB Statusmessage".Statusmessage.Rotor_2
      L     1
      <I    
      SPBNB R2B2
      L     6
      T     "DB Statusmessage".Statusmessage.Rotor_2
      SET   
      SAVE  
      CLR   
R2B2: U     BIE

R2F:  NOP   0
 
Code:
*
R2B2: U     BIE

... ist dein problem ...

weder NOP 0 noch ein neues Netzwerk wirken VKE-begrenzend.
dein VKE für den sprung ist also ebenso vom BIE-bit abhängig.
 
mich wundert nur, dass ein CLR-Befehl das retten soll. Der ist zwar VKE-begrenzend, läd aber für das nachfolgende UND kein dazu passendes VKE.

EDIT: Quatsch - natürlich läd das nachfolgende UND korrekt das VKE neu :?
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

vermutlich hast Du vor dieser Verknüpfung (kann auch im Netzwerk davor sein) eine nicht abgeschlossene Verknüpfung,
d.h. das Erstabfragebit /ER im Statuswort ist nicht 0.
Mit der Operation CLR erzwingst Du, daß eine neue Verknüpfung begonnen wird.

Allerdings ist Deine Aussage "Sprung wird nicht ausgeführt" nicht stimmig.
Das würde bedeuten: SPBNB wird nicht ausgeführt, weil die FP-Operation davor in jedem Zyklus eine steigende Flanke meldet!
Das kann nur sein, wenn M41.3 woanders zusätzlich auf 0 geschrieben wird.
Da hätte das zusätzliche CLR alleine nicht geholfen.

War es nicht eigentlich so, daß der Sprung immer ausgeführt wurde und der übersprungene Code nie ausgeführt wurde?
(Weil FP nie eine steigende Flanke erkannte weil das VKE bis zum FP immer 0 war)

PS: Statt SPBNB würde ich an dieser Stelle SPBN benutzen.
PPS: Ist ja schon dolle Diskussion hier, während ich den Beitrag schreibe. ;)

Gruß
Harald
 
Zurück
Oben