-> Hier kostenlos registrieren
Moin Moin.
Ich verzweifele gerade etwas und bin mit Step7 classic auch nicht so richtig bewandert muss ich gestehen.
In TIA habe ich mir ein kleines SCL Script zum erstellen einer einmaligen ID erstellt im Muster:
W1_xxxx
Als Input gibt es lediglich eine INT Variable, die bei jeder steigenden Flanke +1 addiert und dann die obrige ID generieren soll.
Also W1_0001, W1_0002 usw....
In Tia klappt dies auch ohne Probleme. In Step7 classic komme ich da irgendwie auf keinen grünen Zweig.
Das hochzählen klappt dort, aber wenn ich in die Datenbank schaue, wo die generierte ID stehen soll, passiert nichts.
Ich vermute mal, dass es an meiner unwissenheit im Umgang mit Step7 Classic liegt und habe bisher auch keine Lösung gefunden. Daher hoffe ich, dasss ihr mir weiter helfen könnt.
Mein Code in TIA:
Dazu das Step 7 Classic gegenstück:
Vielen Dank
Ich verzweifele gerade etwas und bin mit Step7 classic auch nicht so richtig bewandert muss ich gestehen.
In TIA habe ich mir ein kleines SCL Script zum erstellen einer einmaligen ID erstellt im Muster:
W1_xxxx
Als Input gibt es lediglich eine INT Variable, die bei jeder steigenden Flanke +1 addiert und dann die obrige ID generieren soll.
Also W1_0001, W1_0002 usw....
In Tia klappt dies auch ohne Probleme. In Step7 classic komme ich da irgendwie auf keinen grünen Zweig.
Das hochzählen klappt dort, aber wenn ich in die Datenbank schaue, wo die generierte ID stehen soll, passiert nichts.
Ich vermute mal, dass es an meiner unwissenheit im Umgang mit Step7 Classic liegt und habe bisher auch keine Lösung gefunden. Daher hoffe ich, dasss ihr mir weiter helfen könnt.
Mein Code in TIA:
Code:
//Initialisierung
#iString := ''; //Leere Variable iString
#sErgebnis := ''; //Leere Variable sErgebnis
#hString := '0000000'; //Fülle Variable hString mit Nullen
#max_len := 4; //Maximale Länge der ID
#iString := INT_TO_STRING(IN := #i); //Wandelt Int zu String
#len1 := LEN(#iString); //Ermittelt die Länge des Strings
#len2 := #len1 - 1; // Ziehe Vorzeichen von der Stringlänge ab
#sErgebnis := RIGHT(IN := #iString, L := #len2);
#sErgebnis := RIGHT(IN := CONCAT(IN1 := #hString, IN2 := #sErgebnis), L := #max_len);
#ID:= CONCAT(IN1 := #WAESCHE1, IN2 := #sErgebnis);
Dazu das Step 7 Classic gegenstück:
Code:
FUNCTION FC498 : VOID
VAR_TEMP
// temporäre Variablen
iString : STRING[16];
sErgebnis : STRING[16];
hString : STRING[16];
Zusatz : STRING[16];
tmp : STRING[16];
len1 : INT;
len2 : INT;
max_len : INT;
END_VAR
VAR_INPUT
i : int;
END_VAR
VAR_OUTPUT
ID : STRING[16];
END_VAR
BEGIN
//Initialisierung
iString := '';
sErgebnis := '';
Zusatz := 'W1_';
hString := '0000000';
max_len := 4;
iString := INT_TO_STRING(IN := i); //Wandelt Int zu String
len1 := LEN(iString); //Ermittelt die Länge des Strings
len2 := len1 - 1;
sErgebnis := RIGHT(IN := iString, L := len2);
sErgebnis := RIGHT(IN := CONCAT(IN1 := hString, IN2 := sErgebnis), L := max_len);
tmp := CONCAT(IN1 := Zusatz, IN2 := sErgebnis);
ID := tmp;
END_FUNCTION
Vielen Dank
