Inhalt Datenbausteine nach Aufruf

faraday

Level-1
Beiträge
17
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Leute,
habe ein Problem bei einer Aufgabe, müsste das bis morgen noch verstanden haben. Die Frage lautet:
Wie sieht der Inhalt der Datenbausteine direkt nach den beiden Aufrufen des FC 42 aus dem OB1 aus? Kreuzen Sie jeweils den Zustand von S1, S2 und S3 an. Also entweder "True" oder "False".

Hinweis:
S1, S2 und S3 sind statisch „STAT“

Gegeben ist folgendes:
Code:
Programmablauf von OB1

Call FB 42, DB 42 
IN1: = True 
IN2: = False

Call FB 42, DB 43
IN1: = True
IN2: = True



Programmablauf von FB 42

SET
U #IN1
S S1
R S2
R S3


SET
U #IN2
S S1
S S2
R S3
Was ist euer Tipp, wie kann ich am besten an die Aufgabe ran gehen?
Danke schonmal im Voraus für euere Hilfe
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ja, ist ein Schreibfehler.
Danke für deine Hilfe, hast mir in den letzten Tage echt schon viel geholfen!!!
Bin ein wenig im Stress und so langsam müde, morgen gibts dadrüber ein Testat. Hab nicht so wirklich einen Tipp wenn ich ehrlich bin. Also wäre ne Lösung nicht schlecht! Mit den Aufrufen aus dem OB1 heraus ist soweit klar, mich verwirrt nur #IN1... usw. Komm einfach nicht mit klar.

Gruß Faraday
 
Wie sieht der Inhalt der Datenbausteine direkt nach den beiden Aufrufen des FC 42 aus dem OB1 aus? Kreuzen Sie jeweils den Zustand von S1, S2 und S3 an. Also entweder "True" oder "False".
Call FB 42, DB 42
IN1: = True
IN2: = False

Call FB 42, DB 43
IN1: = True
IN2: = True



Programmablauf von FB 42

SET
U #IN1
S S1
R S2
R S3


SET
U #IN2
S S1
S S2
R S3[/CODE]
Also bei der Fragestellung geht es um den letzten Zustand.
Sprich der zweite Aufruf und die letzte Anweisung.

S1 : True
S2 : True
S3 : False
 
Okay, super vielen vielen Dank...
Was mich zusätzlich verwirrt hat war, das auch DB 42 zum ankreuzen, also "True" und "False" gegeben war. Müsste man ja dann nichts ankreuzen, wenn ich das richtig verstanden habe, denn wie du sagtest dreht es sich nur um den zweite Aufruf und die letzte Anweisung...

Also wie gesagt danke nochmal!
Gruß Faraday
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Was mich zusätzlich verwirrt hat war, das auch DB 42 zum ankreuzen, also "True" und "False" gegeben war.
Das ist nicht zum ankreuzen, sondern das soll den Zustand darstellen der gerade übergeben wird. Also der IN1 und der IN2 sind beim letzten Aufruf True.

PS: So jetzt mach mal Feierabend das für den Test Fitt bist. ;)
 
Ich schätze mal dass wirklich der Inhalt der beiden Instanz-DBs angegeben werden soll.
Im Code würde die S1-3 der Step7 Editor aber auch mit #S1, #S2 und #S3 anzeigen.

Ich denke mal damit soll geprüft werden ob der Kandidat verstanden hat, dass ein FB mit seinem Instanz-DB jeweils seinen eigenen Speicherbereich hat.
 
Zuletzt bearbeitet:
Das würde bedeuten?
Also Code wie oden...

Zum Ankreuzen war:

DB42
S1 True False
S2 True False
S3 True False


DB43
S1 True False
S2 True False
S3 True False
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Code:
[COLOR="Red"]Call FB 42, DB 42 
IN1: = True [/COLOR]
IN2: = False

    Programmablauf von FB 42 : jetzt mit [COLOR="Red"]DB42[/COLOR]
    SET
[COLOR="red"]    U #IN1
    S S1
    R S2
    R S3[/COLOR]

    SET
    U #IN2
    S S1
    S S2
    R S3

[COLOR="red"]Call FB 42, DB 43
IN1: = True
IN2: = True[/COLOR]

    Programmablauf von FB 42 : jetzt mit [COLOR="red"]DB43[/COLOR]
[COLOR="red"]    SET
    U #IN1
    S S1
    R S2
    R S3

    SET
    U #IN2
    S S1
    S S2
    R S3[/COLOR]
Danach sieht es so aus:
DB42 hat die Zuweisungen von "IN1: = True"
DB43 hat die Zuweisungen von "IN1: = True" + "IN2: = True", die letzte Zuweisung bleibt erhalten
Code:
DB42.S1 = True
    .S2 = False
    .S3 = False

DB43.S1 = True
    .S2 = True
    .S3 = False
Gruß
Harald
 
Ich schätze mal dass wirklich der Inhalt der beiden Instanz-DBs angegeben werden soll.
Oh ja Thomas, da hast Du vollkommen recht.
Die Betonung liegt auf:
Wie sieht der Inhalt der Datenbausteine direkt nach den beiden Aufrufen des FC 42 aus dem OB1 aus? Kreuzen Sie jeweils den Zustand von S1, S2 und S3 an. Also entweder "True" oder "False".
Code:
Programmablauf von OB1
 
Call FB 42, DB 42 
IN1: = True 
IN2: = False
 
Call FB 42, DB 43
IN1: = True
IN2: = True
 
Programmablauf von FB 42
 
SET
U #IN1
S S1
R S2
R S3
 
SET
U #IN2
S S1
S S2
R S3
Meine Antwort hat sich nur auf den DB43 bezogen.
Also Richtig ist:
Code:
Im DB42
   S1 = True
   S2 = False
   S3 = False
 
Im FB43
   S1 = True
   S2 = True
   S3 = False
Hoffentlich schaut er noch vor dem Test hier rein, sonst fehlt die halbe Punktzahl.
 
Zurück
Oben