auf DB in SCL zugreifen

Bensen83

Level-1
Beiträge
777
Reaktionspunkte
3
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo. Habe folgendes Problem.

Möchte in einem SCL FC auf einen bestimmten DB zugreifen. Diesen DB möchte ich als Variable von außen übergeben. Ist das möglich, wenn ja wie?
 
Hallo,
deine DB-Nr muß als WORD vorhanden sein oder du hast sie dahin umgewandelt. Dann geht es mit :
Code:
myWORD := WORD_to_BLOCK_DB(my_DB).DW(myIndex) ;
Gruß
LL
 
Zuviel Werbung?
-> Hier kostenlos registrieren
???

funktioniert irgendwie nicht, oder mache ich es falsch?

Code:
FUNCTION FC302 : VOID
VAR_INPUT 
Datenlaenge : INT; 
Quell_DB : WORD;
Quelloffset : INT;
Ziel_DB : WORD;
Zieloffset : INT;   
END_VAR
VAR_TEMP
    // temporäre Variablen
END_VAR
VAR
    // statische Variablen
i : INT;
END_VAR
FOR i := 0 TO Datenlaenge -1 DO
Ziel_DB.DBB[Zieloffset + i] := Quell_DB.DBB[Quelloffset + i];
END_FOR;
 
    // Anweisungsteil
    ;
END_FUNCTION
 
... wenn du es so machen willst, dann muß dein Parameter vom Typ BLOCK_DB (und nicht WORD) sein. In dem Fall übergibst du dann dem Baustein auch als Wert (z.B.) DB10 und nicht 10 um an den DB10 zu kommen.

.. wenn du nur die Zahl übergeben willst, so mußt du aus der Zahl erst einen BLOCK_DB machen (siehe mein voriger Beitrag).

Gruß
LL
 
Ok

Ich habe es jetzt so gemacht wie ich es gepostet habe und habe die eingangsvariable vom Typ Block_DB gemacht. bekomme jetzte an der Stelle:

Code:
Ziel_DB.DBB[Zieloffset + i] := Quell_DB.DBB[Quelloffset + i];

die Fehlermeldung: Ungültige Variable
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Funktioniert

Danke es funktioniert jetzt. Wie bekomme ich denn eine Hilfe für meinen erstellten FC hin? geht das, oder muss ich eine Beschreibung in den SCL Baustein direkt als Kommentar reinschreiben?
 
... was stellst du dir unter Hilfe vor ?
Wenn du z.B. folgendes machst :
Code:
FUNCTION FC302 : VOID
VAR_INPUT 
Datenlaenge : INT;[B] [COLOR=red] // Größe des Datenbereichs[/COLOR][/B]
Quell_DB : WORD; [COLOR=red][B] // Datenbaustein Quell-Daten[/B][/COLOR]
Quelloffset : INT;
Ziel_DB : WORD;
Zieloffset : INT;   
END_VAR
die rot markierten Kommentar-Texte würden dir z.B. eine Benutzer-Hilfe bei der Verwendung des Bausteins ermöglichen ...

Gruß
LL

Nachsatz:
Falls sich meine Antwort ganz oder teilweise mit der von 4L überschneiden sollte ... ich hatte den Beitrag schon eine Weile fertig ... bin dann aber abgelenkt worden und nicht dazu gekommen ihn abzuschicken ...
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Weitere Funktionen

Da wir gerade dabei sind, gibts da noch irgend etwas, wie ich folgendes Realisieren kann: ( am besten, dass ich z.B. EB100 & AB100 oder so übergebe).

Ich möchte eine Anfangsadresse der Eingangs und Ausgangsperipherie übergeben und dann in dem SCL Baustein z.B. 10 darauf folgende Ausgangsbytes ansprechen, also quasi den übergebenen Parameter mit nem index hochzähen. geht sowas?
 
Nachsatz:
Falls sich meine Antwort ganz oder teilweise mit der von 4L überschneiden sollte ... ich hatte den Beitrag schon eine Weile fertig ... bin dann aber abgelenkt worden und nicht dazu gekommen ihn abzuschicken ...

tun sie in keinster weise. ich habe ein dokument verlinkt, in dem steht, wie man eine online-hilfe erstellen kann.
 
Zurück
Oben