- Beiträge
- 15.115
- Reaktionspunkte
- 3.620
-> Hier kostenlos registrieren
Stellst du bitte mal deinen DB (von mir aus AWL-Quelle) hier ein ...
Folge dem Video um zu sehen, wie unsere Website als Web-App auf dem Startbildschirm installiert werden kann.
Anmerkung: Diese Funktion ist in einigen Browsern möglicherweise nicht verfügbar.
Gibt man einer Kuh das falsche Futter, wird's Margarine anstatt Butter.
Ist das die gleiche Frage wie am Anfang?Vielleicht noch ein letztes mal kurz.
ich habe ne funktion, darin wird ein string empfangen über ethernet der soll in einen DB geschrieben werden. der string wird erstmal in ner tempvariablen zwischengespeichert, dann soll die in den Datenblock "Data" geschrieben werden. und zwar an die stelle wo sich die variable "Str" befindet. ich weiß die nummern nicht und wie der DB aufgebaut ist weiß ich auch nicht ich kenne nur DATA und das darin irgendwo ein Str ist den ich beschreiben will. so besser kann ich es nicht erklären ^^
Na so :wie machst du einen zeiger auf den DB von dem du nur die Symbolnamen kennst. hat bei mir nicht funktioniert aber vielleicht hast du ja jetzt die lösung.
VAR_INPUT
Daten : ANY
END_VAR
L P##Daten
LAR1
FUNCTION "CopyString" : VOID
TITLE =String kopieren
//Achtung!
//Die maximale Stringlänge wird nicht berücksichtigt.
VERSION : 0.1
VAR_INPUT
SRCBLK : ANY ;
DSTBLK : ANY ;
END_VAR
VAR_TEMP
tAnzahl : INT ;
tDstDBNr : WORD ;
tSrcDBNr : WORD ;
tZaehler : INT ;
tSaveAr1 : DWORD ;
tSaveAr2 : DWORD ;
END_VAR
BEGIN
NETWORK
TITLE =Adressregister sichern
TAR1 #tSaveAr1;
TAR2 #tSaveAr2;
NETWORK
TITLE =Zeiger zusammenstellen
L P##SRCBLK;
LAR1 ;
L W [AR1,P#4.0]; //DB-Nummer o. =0
T #tSrcDBNr;
L D [AR1,P#6.0]; //Speicherbereich
LAR1 ; //AR1 auf Erste Adresse
L P##DSTBLK;
LAR2 ;
L W [AR2,P#2.0]; //Wiederholfaktor
T #tAnzahl;
L W [AR2,P#4.0]; //DB-Nummer o. =0
T #tDstDBNr;
L D [AR2,P#6.0]; //Speicherbereich
LAR2 ; //AR2 auf Erste Adresse
NETWORK
TITLE =Daten kopieren
L #tAnzahl; //Schleifenzähler initialisieren
L 1;
-I ;
next: T #tZaehler;
AUF DB [#tSrcDBNr]; //Quelle Datenbaustein öffnen
L DBB [AR1,P#1.0]; //Quelle laden
AUF DB [#tDstDBNr]; //Ziel Datenbaustein öffnen
T DBB [AR2,P#1.0]; //Ziel transferieren
+AR1 P#1.0; //Adresse AR1 um Byte erhöhen
+AR2 P#1.0; //Adresse AR2 um Byte erhöhen
L #tZaehler; //Noch mal?
LOOP next;
NETWORK
TITLE =Adressregister AR1&2 wiederherstellen
LAR1 #tSaveAr1;
LAR2 #tSaveAr2;
END_FUNCTION
CALL "CopyString"
SRCBLK:="DB_Quelle".Str
DSTBLK:="DB_Ziel".Str
Wir verwenden essentielle Cookies, damit diese Website funktioniert, und optionale Cookies, um den Komfort bei der Nutzung zu verbessern.
Siehe weitere Informationen und konfiguriere deine Einstellungen