Nach indirekter Adressierung CPU-Stop bei Zugriff auf IN-OUT

Ralle

Super-Moderator , User des Jahres 2006-2007
Teammitglied
Beiträge
15.404
Reaktionspunkte
4.039
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich greife indirekt auf ein Bit zu:

Code:
//Adresse Lebensbit berechnen
      AUF   DB [#Koppel_DB_Nr]
      L     0                           //Lebensbit Offset 0
      L     #Receive_Start      //temp Word
      +I    
      T     #Quell_Adr           //temp DWORD

      L     P#0.0
      L     #Quell_Adr
      ITD   
      SLD   3
      +D    
      LAR1  

      AUF   DB [#Koppel_DB_Nr]
      UN    DBX [AR1,P#0.0]             //Lebensbit
//      =     #HM_Flanke_Lebensbit   //das ist eine IN-OUT Variable (Bit in einem DB)
      =     M    300.0

Mit M300.0 funktioniert es, mit der IN-Out-Variable nicht!!!

Fehlermeldung:

Bereichsfehler beim Schreiben.

Hilfe dazu:

Ursache:

Sie haben bei der bereichsübergreifenden registerindirekten Adressierung einen unzulässigen Operandenbereich verwendet. Die Bereichskennung der Zugriffsadresse (Bit 24 -31) ist unzulässig.

Behebung:

Verwenden Sie einen Pointer mit korrekter Bereichskennung.

Was ist denn da nun falsch ???

Nachtrag:
Deklariere ich #HM_Flanke_Lebensbit als Out-Variable, dann funktioiert es wieder!
 
Versuche doch mal

Code:
      L     L#0        
      L     #Quell_Adr 
      ITD    
      +D
      SLD   3 
      LAR1

So sollte es eigentlich funktionieren! (Vorausgesetzt, der DB ist in der CPU vorhanden und lange genug!)
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Laut Siemens-Hilfe:

Code:
      L     P#0.0;
      L     #Bereich_Anfang;
      SLD   3;				// Konvertierung ins Pointerformat 
      +D    ; 
      LAR1  ;

Ich habe mal L#0 eingesetzt, damit ging es.
Seitdem geht aber auch wieder mit L P#0.0 :twisted:

War nur in der SPS etwas durcheinandergeraten???? :shock:
Das sollte es so aber nicht geben, oder?

Weiß noch jemand etwas darüber?
 
habe den code mal in einer simulation und einer 313c2dp gestestet.
keine probleme.
#Receive_Start und #Quell_Adr hab ich nicht beschrieben.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Es war ein FC in einer 315-2DP.

Interessanterweise geht es jetzt. Evtl. habe ich vorher irgendwas intern zerdonnert. Das läßt meine Bedenken zur Prozeßsicherheit leider wieder stärker werden.
 
Ich hatte die 315 schon im Urin. Ich habe schon immer Ärger mit ihr gehabt. Egal welcher Ausgabestand und auf keinen Fall reproduzierbar.

pt
 
Ich hatte die 315 schon im Urin. Ich habe schon immer Ärger mit ihr gehabt. Egal welcher Ausgabestand und auf keinen Fall reproduzierbar.

Genau das Gefühl habe ich mit meiner 317-2 DP. Die ursprüngliche Firmware bei Auslieferung vor 2 Jahren (V1.1?) war grausig und selbst die aktuelle Version scheint nicht ganz sauber zu sein. Irgendwie habe ich das Gefühl, dass Siemens die Sachen zu schnell auf dem Markt schmeisst in letzter Zeit!
 
Zurück
Oben