Datenwort durch Variable zuweisen?

Zuviel Werbung?
-> Hier kostenlos registrieren
@Volker:

Wenn ich mich recht erinnere ist doch auf deiner Homepage ein Baustein der genau diese Features bietet, oder?

*räusper* Ist doch genau der selbe den ich in meiner Steuerung einsetze.

Dieser Baustein kann mit INT - Werte adressiert werden und ganze Blöcke verschieben, das basteln eines Pointers entfällt durch diesen Baustein.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Nö, ich meine den FC98 "Shift_DB".......moment, da fällt mir gerade ein das ich diesen Baustein so weit ich mich erinnere selber aus 2 bereits bestehenden Bausteinen gebastelt habe. (ODer habe ich ihn doch irgendwo "geklaut", kann mich nicht mehr so genau erinnern)

Hier ist der Sourcecode:

LAR1 P##Quelle //Anfangsadresse des ANY-Pointers in AR1 laden
L B#(16, 2) //Syntax-ID und Typ: Byte laden
T LW [AR1,P#0.0]
L #AnzahlDBB //Transferlaenge
T LW [AR1,P#2.0]
L #QuellDB //Quelle-DB
T LW [AR1,P#4.0]
L P#DBX 0.0 //Anfangs-DW im Quell-DB
L #QuellDW
SLW 3
+D
T LD [AR1,P#6.0]
LAR1 P##Ziel //Anfangsadresse des ANY-Pointers in AR1
L B#(16, 2) //Syntax-ID und Typ: Byte laden
T LW [AR1,P#0.0]
L #AnzahlDBB //Transferlaenge
T LW [AR1,P#2.0]
L #ZielDB //Ziel-DB
T LW [AR1,P#4.0]
L P#DBX 0.0 //Anfangs-DW im Ziel-DB
L #ZielDW
SLW 3
+D
T LD [AR1,P#6.0]
CALL "BLKMOV"
SRCBLK :=#Quelle
RET_VAL:=MW1
DSTBLK :=#Ziel


In der Variablenliste müssen folgende Variablen als IN - Variablen angelegt werden:

AnzahlDBB
QuellDB
QuellDW
ZielDB
ZielDW

alle diese Variablen sind vom Typ INT.

Nun müssen unter TEMP nur noch die Variablen Quelle und Ziel eingetragen werden. Diese sind vom Typ ANY.

Nun sollte der Baustein eigentlich laufen. Nicht vergessen den SFC20 zu laden.


Sorry, ich habe gerade gesehen das die Formatierung im Eimer ist. Also besser die Source noch etwas formatieren, bevor sie verwendet wird.
 
Zuletzt bearbeitet:
Hallo CrazyCat,
redet Ihr gerade für Euch über diesen Baustein oder gilt das alles für mich? Falls ja vielen Dank, aber das sieht alles recht heftig aus.
Ich habe derweil meine Datenwörter quasie zu Fuß übertragen. Ist zwar keine schicke Methode, aber so viele waren es dann ja auch nicht und ich muss mit meiner Diplomarbeit voran kommen.
Zur Zeit stolper ich über jeden Stein der da rumliegt.

Vielen Dank und viele Grüße,
Tigerkroete
 
@tigerkröte
nicht direkt für dich. aber sicherlich trotzdem interessant für dich.

@crazycat
ne der ist nicht von mir. möglich das du den aus meinem fifo_blk gebastelt hast. der ist ähnlich.
sicherlich brauchbar, da man damit im laufenden prog quelle und ziel leicht ändern kann.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,

kleine Anmerkung zur dem Baustein von CrasyCat:
L #QuellDW
SLW 3
+D
:
L #ZielDW
SLW 3
+D

Die Schieb Funktion sollte unbedingt in beiden Fällen SLD 3 sein, sonst funktioniert der Baustein nicht für Datenwörter mit größeren Adressen da beim Schieben was verloren geht, außerdem verwendest Du ja anschliesend das doppel Format (+D). Ansonsten ist der ganz gut!

Code:
L #QuellDW
SLD 3
+D 
:
L #ZielDW
SLD 3
+D

@ Tigerkröte,

auch wenn es schwere fällt am Anfang. Du solltest versuchen solche Funktionen mit seperaten Bausteinen zu lösen. Das mach Dein Programm übersichtlicher und wenn Du eine kleine Funktion einmal getestet hast fällt das schon mal als Fehlerquelle aus, wenn Du Dein Programm versuchst zum Laufen zu bringen. - Und die Kommentare nicht vergessen!! Viel Glück.

Euch noch einen schönen Tag,

Gruß Floh
 
So große Bausteine hatte ich bis jetzt noch nicht, das der Fehler aufgefallen wäre.

Danke, ich werde die SLWs in SLDs ändern. Sicher ist sicher.
 
Zurück
Oben