Step 7 SCL und Multiinstanz

Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo nochmal,

naja ich würde schon gern wissen wo die Ursache des Fehlers liegt und warum der Aufruf in einem Multiinstanz-FB nicht funktioniert, aber um ehrlich zu sein fehlt mir jetzt auch die Zeit das jetzt noch lange weiter zu verfolgen. Das Projekt muss in 4 Wochen fertig sein :)

In dem FC wird das AR2 am Anfang des Bausteins gesichert und am Ende wieder hergestellt. In den Zeilen Code dazwischen erfolgt eigentlich kein Zugriff darauf, soweit ich das erkenne. Innerhalb des FCs werden 4 AnyPointer zusammengesetzt mit denen dann mittels BLKMOV Daten umkopiert werden.

Der Baustein ist eigentlich in KOP geschrieben, aber das kann ich hier ja nicht als QuellCode posten, oder?
 
Zuletzt bearbeitet:
Verienfacht gesagt liegt es daran das in einem FB im AR2 die Adresse der Instanz steht, also derIDB.

Ergo versucht dein FC auf die Instanz des übergeordneten FBs zuzugreifen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
In dem FC wird das AR2 am Anfang des Bausteins gesichert und am Ende wieder hergestellt. In den Zeilen Code dazwischen erfolgt eigentlich kein Zugriff darauf, soweit ich das erkenne. Innerhalb des FCs werden 4 AnyPointer zusammengesetzt mit denen dann mittels BLKMOV Daten umkopiert werden.

Die fehler ist meines wissen dass AR2 bei dass zusammensetzen von die Any pointer.

Code:
NETWORK
TITLE =AnyPointer ZielPalettenDaten


      L     P##iZielPalettenDaten; 
[COLOR=#FF0000]//      TAR2  ; 
//      UD    DW#16#FFFFFF; 
//      +D    ; [/COLOR]
      LAR1  ; 
      L     D [AR1,P#0.0]; 
      T     LD    20; 
      L     D [AR1,P#4.0]; 
      T     LD    24; 
      L     W [AR1,P#8.0]; 
      T     LW    28; 

NETWORK
TITLE =AnyPointer ZielFachDaten


      L     P##iZielFachDaten; 
[COLOR=#FF0000]//      TAR2  ; 
//      UD    DW#16#FFFFFF; 
//      +D    ; [/COLOR]
      LAR1  ; 
      L     D [AR1,P#0.0]; 
      T     LD    30; 
      L     D [AR1,P#4.0]; 
      T     LD    34; 
      L     W [AR1,P#8.0]; 
      T     LW    38;

Dieser variabelen sind FC intern und haben nicht mit der Multi instands zu tun.

Joop
 
In dem FC wird das AR2 am Anfang des Bausteins gesichert und am Ende wieder hergestellt. In den Zeilen Code dazwischen erfolgt eigentlich kein Zugriff darauf, soweit ich das erkenne.
Das ist wohl Dein eigentliches Problem, daß Du den Quellcode des Bausteins nicht verstehst und deshalb nicht in der Lage bist, die Problemursache zu suchen und zu beseitigen. Du hast absolut zu wenig Ahnung von AWL um all die unsauberen Schweinereien in dem Bausteincode zu erkennen. Du gibst Dich mit einem zufällig scheinbar funktionierenden Ergebnis zufrieden. Du willst den problematischen Baustein in einer produktiven Anlage einsetzen - Du bist ganz schön mutig oder einfach nur sehr blond?

Du hast den Baustein also nicht selbst geschrieben und verstehst auch nicht, was der Baustein wirklich tut. Du weißt nicht unter welchen bestimmten Bedingungen der Baustein aufgerufen werden muß (und dann vielleicht sogar funktioniert?). Ich vermute mal, daß es zu dem Baustein keine weitergehende Dokumentation außer dem Code selbst gibt. Wo hast Du den Baustein her? Frage den ursprünglichen Ersteller des Bausteins, warum der bei Dir nicht so funktioniert wie Du erwartest. Vielleicht hilft Dir der Ersteller den Baustein zu ändern oder richtig einzusetzen, so daß er auch in Deinem Projekt fehlerlos funktioniert.

Oder falls Du von SCL mehr Ahnung hast - schreib' den Baustein einfach neu in SCL.

Harald
 
Hallo Grimsey,

so wie Joop es im Beitrag #23 geschrieben hat, ist es in einer Funktion (FC) richtig. Wenn du so etwas jedoch in einem Funktionsblock (FB) veranstaltest, dann mußt du die Adresse aus AR2 als Offset verwenden! Und wenn du später mal Zeit findest, dann solltest du dich mal über die Verwendung der Adressregister schlau machen. Das muß man einfach verstehen, wenn man es anwenden will.

..Der Baustein ist eigentlich in KOP geschrieben, aber das kann ich hier ja nicht als QuellCode posten, oder?
Geht so etwas überhaupt in KOP? Mach doch mal einen Screenshot, oder erstelle eine AWL-Quelldatei.

@Harald
So bissig kennt man dich ja garnicht.


Gruß, Onkel
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Es ist ein Gemisch von SCL und AWL, und ein Gemisch von symbolische und absoluten Addressierung.
Finde ich sehr schlecht.
Sehr schwierig zu warten, selbst für der original-Programmierer !

Es ist bestimmt machbar, alles in SCL und komplett symbolisch zu programmieren.
Besonders für das hin-und-her schaufeln von Daten, und suchen in Daten finde ich SCL unschlagbar.
 
Zurück
Oben