Indirekte Adressierung aus DB

Abbath

Level-1
Beiträge
27
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo!

Folgendes Problem. Ich setze Eingänge und Ausgänge über E/A-Felder aus WinCC und speichere die Werte in DBs (flexibel von außen über ein Panel zu parametrieren). Hierbei werden Byte und Bit einzeln verarbeitet. Die Werte im DB haben einen Startwert von 255 und werden dann wie folgt verarbeitet:
Code:
U(    
L     "Eingänge".Step1_Ein1_1
L     255
<>I   
)     

U(    
L     "Eingänge".Step1_Ein1_2
L     255
<>I   
)     

L     "Eingänge".Step1_Ein1_1
L     8
*I    
L     "Eingänge".Step1_Ein1_2
+I    
T     MD 130
S     "M_Eingänge".Step1Ein1
Hab mir das so gedacht: Er soll überprüfen ob die Werte geändert wurden, falls das nicht der Fall war, soll er nichts machen und sonst die oben beschriebene Routine, also Byte und Bit werden zum Pointerwert verarbeitet. Den Merker setze ich als Bedingung für die spätere Überprüfung, ob ein Eingang zu erwarten ist.

Nun das Problem: Leider ignoriert die SPS meine "<>"-Überprüfungen und der Wert im MD** ist 2295 (also quasi 255.255 :? ). Das führt dann zu einem sofortigen SF.
Wo ist mein Denkfehler?

Abbath
 
ich verstehe den sinn der ganzen aktion nicht.

eingänge steuern kannst du nur solange die physikalisch nicht vorhanden sind.

lade und transferbefehle sind vke unabhängig.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Mal unabhängig davon, daß du physikal. vorhand. Eingänge nicht setzen kannst,
Ich pflück das mal auseinander:

U(
L "Eingänge".Step1_Ein1_1
L 255
<>I
)

U(
L "Eingänge".Step1_Ein1_2
L 255
<>I
)

L "Eingänge".Step1_Ein1_1
L 8
*I
L "Eingänge".Step1_Ein1_2
+I
T MD 130 --->das hier macht das Prg. immer
S "M_Eingänge".Step1Ein1 ---->das setzt das Prg., wenn beide Verleicher ungleich ergeben

Den Transferbefehl macht er jetzt immer, da nicht VKE-abhängig:

L "Eingänge".Step1_Ein1_1 (255)
L 8
*I (2040)
L "Eingänge".Step1_Ein1_2
+I
T MD 130 (2295)

Ich denke so:

U(
L "Eingänge".Step1_Ein1_1
L 255
<>I
)
O
U(
L "Eingänge".Step1_Ein1_2
L 255
<>I
)
S "M_Eingänge".Step1Ein1
SPBN KZEI

L "Eingänge".Step1_Ein1_1
L 8
*I
L "Eingänge".Step1_Ein1_2
+I
T MD 130

KZEI: NOP 0
 
Hallo!
Danke für die schnellen Antworten!
der Sinn ist der Folgende: Das ganze soll flexibel nur über WinCC steuerbar sein, ohne das man sich an die SPS hängen soll, also habe ich eine Schrittsteuerung mit bis jetzt 50 Schritten geschrieben und stelle für jeden Schritt vier mögliche Eingänge zur Verfügung.
Ich will also nicht die Eingänge setzen, sondern die Schaltbedingungen für die Steps flexibel halten.
Um nicht gesetzte Eingänge (also vielmehr die entsprechenden Werte im DB) nicht zu bearbeiten hatte ich sie mit 255 vorbelegt damit ich sie dann mittels der Überprüfung ignorieren kann.

Mann lässt sich das blöde beschreiben, ist ja eigentlich auch egal, da Ihr mir ja bereits mein Problem gelöst habt, wusste nicht das lade/transfer Aktionen vke-unabhängig sind. (bin auch ein ziemlicher Neuling :oops:)
Vielen Dank, werde ich gleich am Montag anpassen! :D

Ein schönes WE

Abbath
 
Doch, das geht auch in Step5, man kann die Eingänge dann wie temporäre Variablen nutzen.
 
Wollte nur nochmal gerade eine kleine Rückmeldung geben!
Hab es geändert und siehe da: Kein Systemfehler mehr!!! :D

Danke nochmal

Abbath
 
Zurück
Oben