Probleme mit dynamischem DB-Aufruf

jupp

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

ich rufe in einem FB dynamisch verschiedene DBs auf! Die DB-Nummer wird dem FB als Eingangsparameter übergeben. Jeweils nach dem entsprechenden Aufruf des DBs kommen die Zugriffe auf die jeweiligen Datenbereiche. Es kommt dabei vor, das Datenzugriffe schlicht verkehrte Daten liefern. Beim Lesen habe ich festgestellt, daß die Daten nicht mit denen im entsprechenden DB übereinstimmen! Über Steuern/Beobachten werden die Daten richtig angezeigt!

Bekanntes Problem???

Gruß,
Jupp


PS: Ich hoffe, mann kann mit folgen....:rolleyes:
 
Kein bekanntes Problem (bei mir jedenfalls),
wie sieht denn dein Aufruf des DB's, bzw. das Laden der Werte danach aus?
Wichtig auch noch die Schnittstelle des Bausteins.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

hier mal ein Codeschnippsel:

Code:
      AUF   #ACHS_DB_REC
 
      U     #PosNichtGestartet
      U     DBX    0.3
      U     DBX    1.3
      UN    DBX    0.2
      SPBNB _012
      L     B#16#1
      T     #POS_ERREICHT
_012: NOP   0
 
      U     #PosNichtGestartet
      U     DBX    0.4
      U     DBX    1.3
      UN    DBX    0.2
      SPBNB _013
      L     B#16#2
      T     #POS_ERREICHT
_013: NOP   0
 
      U     #PosNichtGestartet
      U     DBX    0.5
      U     DBX    1.3
      UN    DBX    0.2
      SPBNB _015
      L     B#16#4
      T     #POS_ERREICHT
_015: NOP   0
//usw....
//......
 
 
#ACHS_DB_SEND
//ab hier werden die Bearbeitung eines anderen DB's

Die Variablen "#ACHS_DB_REC" und "#ACHS_DB_SEND" werden als Eingangsparamter übergeben.
Bei den geöffneten DB-s handelt es sich um Instanz-DBs!

Gruß,
Jupp
 
Hallo,

ich habe einen kleinen Testaufbau mit PLCSIM gemacht und kann Deinen Fehler nicht reproduzieren. Wenn das nicht ginge wäre natürlich ein Monster-Bug in der Software.


Gruss Ligatschow
 
Hallo!

Ich würde den DB-Aufruf nach dem Bit #PosNichtGestartet machen.
Wenn das o.g. Bit aus einem Datenbaustein kommt kann der falsche DB geöffnet sein.


Code:
      U     #PosNichtGestartet
      AUF   #ACHS_DB_REC
      U     DBX    0.3
      U     DBX    1.3
      UN    DBX    0.2
      SPBNB _012
      L     B#16#1
      T     #POS_ERREICHT
_012: NOP   0
 
      U     #PosNichtGestartet
      AUF   #ACHS_DB_REC
      U     DBX    0.4
      U     DBX    1.3
      UN    DBX    0.2
      SPBNB _013
      L     B#16#2
      T     #POS_ERREICHT
_013: NOP   0
 
      U     #PosNichtGestartet
      AUF   #ACHS_DB_REC
      U     DBX    0.5
      U     DBX    1.3
      UN    DBX    0.2
      SPBNB _015
      L     B#16#4
      T     #POS_ERREICHT
_015: NOP   0
//usw....
//......
 
 
#ACHS_DB_SEND
//ab hier werden die Bearbeitung eines anderen DB's



Gruß,

Harald
 
HaraldG schrieb:
Hallo!

Ich würde den DB-Aufruf nach dem Bit #PosNichtGestartet machen.
Wenn das o.g. Bit aus einem Datenbaustein kommt kann der falsche DB geöffnet sein.


Gruß,

Harald

@all,

das Bit "#PosNichtGestartet" ist eine Temp-Variable des FBs. Es wird ein paar Netzwerke weiter oben "zusammengestrickt" (aus Daten, die auch dynamisch aus DBs kommen ) !!

@Harald

Ich versuchs mal ....

Gruß,
Jupp
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Erledigt!!

So, erledigt!!!
War mein Fehler

...habe mit an anderer Stelle Flankengetriggert eine Statische Variable überschrieben!

Vielen Dank an alle!!!!!

Gruß,
Jupp
 
Zurück
Oben