TIA Variable wird nicht geschrieben (nur mit Merker)

Stefan2000

Level-2
Beiträge
38
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Zusammen,

ich habe das Problem, das ich in einem TIA-V18-Bestandsprojekt nur mit Merkern die Weiterschaltbedingungen setzen kann. Befindet sich eine DB-Variable mit in der Abfrage, wird nicht in den nächsten Schritt geschalten, obwohl das Ergebnis 1 ist. Hat jemand eine Idee, an was das liegen könnte? Alternativ muss ich eben immer einer Weiterschaltmerker beschreiben.

1751444050952.png
 
Kannst du mal von beiden Zuständen (also geht/geht-nicht) einen Screenshot einfügen? Denn natürlich kann man auch DB-Variablen in Abfragen verknüpfen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Welche SPS-CPU programmierst du?
Ist das Programm vielleicht migriert von ursprünglich einer S5?
Wie sieht der FC42 intern aus? Kann es sein, dass der FC42 davon ausgeht, dass vorher der DB250 geöffnet ist, dass z.B. im FC die DB-Adressen nur teilqualifiziert (DBX.x.y ohne DB-Angabe) oder indirekt adressiert werden ohne "AUF DB ..."?

PS: Eventuell hilft es, wenn du direkt vor dem "CC FC42" den DB250 wieder öffnest:
Code:
U ...
U ...
U ...
L 3
AUF DB 250
CC "AHA_SPRUNG"
 
Zuletzt bearbeitet:
Vorherige AUF DB haben keinen Einfluss auf den Programmteil.
Das letzte U "AHA_BT1_Takeover"."Takeover..." öffnet den DB250
Wenn man nicht weiß, wie das Programm funktioniert, dann sollte man danach nicht auf Variablen in anderen DB zugreifen oder vorsichtshalber den DB250 explizit wieder öffnen. Vor dem letzten U "AHA_BT1_Takeover"."Takeover..." kann man ungefährlich Variablen aus anderen DB verknüpfen.
 
welche DB davor geöffnet waren ist egal (und unbekannt/kann nicht ermittelt werden)
Ich glaube wir reden aneinander vorbei. Egal ist es nicht sondern erst mal wichtig zu wissen. Wenn es weiter oben einen AUF gibt und er dann einen anderen Datenbaustein öffnet ( und es dann nicht mehr funktioniert ), dann erklärt es schon einmal das Problem.
 
Danke für eure schnelle Hilfe! Der Tipp von @PN/DP hat funktioniert. Noch zur Vervollständigung. Es handelt sich um eine 1517F-3 CPU.



Anhang anzeigen 88749


Anhang anzeigen 88747
Aha, dein in #1 gezeigte Code war der schon geänderte nicht funktionierende Code und der FC42 erwartet, dass DB200 geöffnet ist, der schon vor deinem veränderten Code geöffnet wurde. Da waren wohl noch Missverständnisse im Spiel. Aber Hauptsache die Ursache des Problems war richtig erkannt.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Aha, dein in #1 gezeigte Code war der nicht funktionierende Code und der FC42 erwartet, dass DB200 geöffnet ist
Daher meine (bis jetzt unbeantwortete) Frage nach einem AUF Befehl weiter oben ;)

Aber jetzt ist es ja geklärt.
 
Um damit in Zukunft keine Probleme zu haben: Wird der FC42 auch an einer anderen Stelle verwendet? Ich würde den Auf DB200 im FC42 machen, dann ist auch im Baustein nachvollziehbar auf welche Adressen sich bezogen wird und Änderungen vor dem Aufruf des FC42 sorgen nicht für "unerklärliche" Probleme.
 
man kann auch in AWL so programmieren, dass vollsymbolisch auf Variablen zugegriffen wird und nicht ausserhalb des eigentlichen FC ein DB aufgemacht wird...
Selbst wenn der FC mehrfach für verschiedene Aufgaben eingesetzt wird, kann man die notwendigen Variablen oder den notwendigen DB auf andere weise übergeben...
 
Ich hab genauer nachgeschaut. Dieser wird in einem anderen Baustein geöffnet in dem der Schritt FC aufgerufen wird. Daher wahrscheinlich das Problem oder?
naja, dann würd ich alle Variablen die ich so hinzufügen will wirklich über Merker händeln... Wenn das ürsprüngliche Konzept besagt, an EINER Stelle AUF DB200 zu schreiben, würd ich das jetzt nicht aushebeln und das noch x-mal zwischendrin hinschreiben...
u.U. wird ja der übergeordnete Schrittketten-FC auch noch mehrmals verwenden mit verschiedenen AUF DBxxx (dann klappt das aber mit dem Einfügen von den Merkern auch alles nicht)

Gibts denn den Ursprungsprogrammierer noch?
 
Daher wahrscheinlich das Problem oder?
Ja, daher kommt das Problem. Daher habe ich auch nach einem vorhandenen AUF Befehl gefragt.

Man hätte das Programm im Laufe der Jahrzehnte mal anpassen sollen so dass man von dem S5-Stand wegkommt. Spätestens jetzt bei der 1500ér Migration. Du siehst ja welche Probleme das bringen kann. Du machst irgendeine DB-Verknüpfung rein und schon spinnt das Programm.
 
Zurück
Oben