Warum wird die FC2 aufgerufen

Sudoku

Level-1
Beiträge
48
Reaktionspunkte
1
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

ich stehe vor einem sonderbaren Phänomen (siehe Anlage).
Obwohl das VKE in der 4ten Zeile noch auf "0" steht, steht es in der 5ten Zeile plötzlich auf "1" und die FC2 wird aufgerufen.
Wie kann das sein?:confused:


Gruß
Sudoku
 

Anhänge

  • CC FC2.pdf
    6,5 KB · Aufrufe: 77
In deinem Code wird hinter dem Vergleicher eine Zuweisung erwartet. Da hier nichts zuzuweisen ist, wird eben der Bausteinaufruf durchgeführt.

Möchtest du es umgehen, setze mit dem Vergleich eine Variable auf True und frage diese ab.
z.B.
Code:
==D
VergleichOK

U VergleichOK
CC FC 2
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Ahhhhh *Danke* für en netten Hinweis. Sehe gerade, dass ich bereits dein erstes Posting übersehen hatte. Da ist ja im Grunde alles drinn.

Werds mal schnell anpassen, damit hier niemand was falsches findet *Danke*
 
Zuletzt bearbeitet:
Vielleicht ist ja geplant, daß der E0.2 TRUE und der Vergleich erfüllt seien sollen.

Dann müsste das Ganze so aussehen:

Code:
U     E      0.2
U(    
L     L#0
L     MD     4
==D   
)     
CC    FC     2
 
Der Befehl "CC" setzt das VKE auf true (Online-Hilfe <F1>). Vorher ist es false und die FC wird in deinem Beispiel nicht ausgeführt. Der Hinweis von 190B ist natürlich auch richtig.

Gruß, Onkel
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Der Befehl "CC" setzt das VKE auf true (Online-Hilfe <F1>). Vorher ist es false und die FC wird in deinem Beispiel nicht ausgeführt. Der Hinweis von 190B ist natürlich auch richtig.

In der Operationsliste "S7-300, CPU312IFM...." steht auf der S. 143, dass die Operation "CC" vom VKE abhängt, das VKE aber nicht beeinflusst! Laut Operationsliste wird nur das Statusbit "STA" auf "1" gesetzt.

In der Onlinehilfe zu "CC" steht etwas anderes, nämlich dass das STA- und das VKE-Bit auf "1" gesetzt werden. Das stimmt mit dem beobachteten Phänomen überein.
Man kann im Onlinetest sehen, dass eine Programmzeile vor "CC FC2", das VKE-Bit noch auf "0" war.
Wenn sich aber "CC" selbst das VKE auf "1" setzt, um dann die FC2 aufzurufen, so würde sich ein Verhalten wie bei "UC" (ständiger Aufruf, ohne Abfrage des VKE) ergeben.
Ich kann das nicht verstehen.

Gruß
Sudoku
 
Hallo Sudoku,

habe mal Dein kleines Programm abgetippt und im Simulator getestet. Deine Aussage, daß die FC2 trotz nicht erfülltem Vergleich aufgerufen wird, ist nicht richtig.
Die FC wird nur aufgerufen, wenn der Vergleich erfüllt ist. Dann allerdings unabhängig vom Zustand des E0.2.
Durch den erfüllten Vergleich wird das VKE auf 1 gesetzt, unabhängig davon, ob anschließend eine Zuweisung erfolgt. Bei nicht erfülltem Vergleich bleibt das VKE 0, auch wenn der E0.2 TRUE ist.
Erfolgt in der FC2 z.B. eine Zuweisung eines Ausgangs und die Zuweisung steht zum Augenblick an, an dem die Aufrufbedingung der FC2 nicht mehr erfüllt ist, bleibt die Zuweisung erhalten (Baustein wird ja dann nicht bearbeitet).
Das von Dir beobachtete VKE = 1 beim Aufruf der FC liegt daran, daß das VKE durch die reine Bearbeitung der Anweisung CC auf 1 gesetzt wird, egal, ob die Aufrufbedingung der FC erfüllt ist oder nicht. Deswegen wird der FC aber nicht aufgerufen.
 
Zurück
Oben