Sinn von indirekter Bearbeitung (BI)?

msg

Level-1
Beiträge
9
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Welchen Sinn macht eigentlich der BI-Befehl? Ich übergebe beliebigen Maschinencode und der wird dann ausgeführt. Soweit so gut, aber das ist doch langsam und wo würde das konkret Sinn machen?
 
Moin !

hm... in welchen Kontext kommt dieser "BI" Befehl denn vor ?
ich kann damit im Moment nichts anfangen !?
 
Zuletzt bearbeitet:
Nein, ich meine BI - "bearbeite indirekt". Dabei lädt man zuerst den Maschinencode eines bestimmten Befehls in den Akku und führt dann "BI" aus. Dabei wird der Code aus Akku 1 ausgeführt. Das steht z.B. im "S5-115U Handbuch" auf Seite A-16: "BI - Über einen Formaloperanden bearbeiten (indirekt). Die Nummer des Formaloperanden steht im AKKU 1." Die Maschinenbefehle die man dann lädt, stehen gleich auf den Seiten danach. Die Frage jetzt ist: In welchen Situationen ist diese Vorgehensweise sinnvoll bzw. wann war sie mal sinnvoll?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Nein, ich meine BI - "bearbeite indirekt". Dabei lädt man zuerst den Maschinencode eines bestimmten Befehls in den Akku und führt dann "BI" aus. Dabei wird der Code aus Akku 1 ausgeführt. Das steht z.B. im "S5-115U Handbuch" auf Seite A-16: "BI - Über einen Formaloperanden bearbeiten (indirekt). Die Nummer des Formaloperanden steht im AKKU 1." Die Maschinenbefehle die man dann lädt, stehen gleich auf den Seiten danach. Die Frage jetzt ist: In welchen Situationen ist diese Vorgehensweise sinnvoll bzw. wann war sie mal sinnvoll?

Wenn eine Funktion mit verschieden Adressen ausgeführt.
Zum Beispiel verschiedene Merkerwörter auswerten und in einen DB speichern.
Da gibt es viele Möglichkeiten.
Bei S7 gibt es Pointer, die dies auch aber viel eleganter machen


bike
 
Ich kenne soetwas noch aus S5-Zeiten. Da ging es um diverse massive Datenkopierereien auf 948ern. Es wurde eine Schleife wiederholt durchlaufen und die Befehle aus einem Datenbaustein in Abhängigkeit des Schleifenindex nachgeladen. Ob es soetwas unter S7 noch gibt hab ich nicht geschaut. Es gibt sicher andere Wege nach Rom, aber manchmal ist es einfacher so manche Dinge in Abhängigkeit von diversen Umständen zu tun. So aus dem Kontext gerissen ist es schweer den konkreten Sinn zu ermitteln. Also poste mal den Baustein wenn du kannst, damit dir geholfen werden kann.

Thomas
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Also ich lese in meinem Handbuch nichts von irgendwelchen "Befehlen".

Lediglich ein Formaloperand (Schnittstelle des FB) kann damit indirekt ausgewählt werden.

Das aus dem Handbuch:
Aufruf
Code:
: SPA FB 2
NAME: BEARB
EIN 0 : EW 10
EIN 1 : EW 20
AUS : AW 100

FB
Code:
NAME: BEARB
BEZ : EIN 0 EW
BEZ : EIN 1 EW
BEZ : AUS AW
.
.
.
: L KF+2
: BI
: T AW 80

hätte dann das zu Folge:
115U Systemhandbuch schrieb:
Der AKKU 1 wird mit der Konstanten
”2” geladen.
Mit der nächsten Anweisung soll
der Formaloperand bearbeitet
werden, der an der zweiten Stelle
der Parameterliste steht.
Der Inhalt von EW 20 wird zum
AW 80 transferiert.

Wofür das gut ist, sei deiner Kreativität als Programmierer überlassen.

Mfg
Manuel
 
Die Frage jetzt ist: In welchen Situationen ist diese Vorgehensweise sinnvoll bzw. wann war sie mal sinnvoll?

Habe mal was eingescannt, damit die "Jüngeren" sich ein Bild machen können.

Wozu das gut ist?
Ich könnte mir vorstellen, dass man zur Laufzeit den Befehl (Code) ändern kann.

Kann mich nicht erinnern, das jemals benutzt zu haben..

Gruß Roland
 

Anhänge

  • S5-Befehl_BI.JPG
    S5-Befehl_BI.JPG
    510,4 KB · Aufrufe: 53
Danke an alle für die Beiträge. Ich denke man kann sagen, dass man einfach nur flexibel Code ausführen kann.

Du kannst flexibel einen Parameter des FB auswählen, der Code ist durch den Befehl L/T/U/O ... ja fix im Programm hinterlegt.

Heutzutage würde man ähnliches wohl mit einem Pointer auf die Instant des FB machen.
 
Du kannst flexibel einen Parameter des FB auswählen, der Code ist durch den Befehl L/T/U/O ... ja fix im Programm hinterlegt.

Heutzutage würde man ähnliches wohl mit einem Pointer auf die Instant des FB machen.

Nein, schau dir bitte Pfälzers Anhang an. Der Operationscode steht im Parameter und der Operand ist fix. Du führst die Operation aus, deren Code im jeweiligen Parameter steht. Also wirklich flexibler Code. Also nichts mit "wie Pointer bei S7."
Thomas
 
79 war ich 4Jahre alt. von 93 bis 05 gabs ausschließlich S5 in den verschiedensten Ausbaustufen von denen Heute noch einige laufen. Dann trudelten so langsam S7 ein.

Thomas
 
´79 waren meine eltern 14 / 15 *ROFL* und ich muss mich trozdem mit S5 rumschlagen ;) bzw. habe damit auch ein wenig gelernt^^
aber sowas habe ich noch nicht gesehen in den programmen vom alten programmierer :)
 
Zurück
Oben