# string in scl zusammensetzen



## Bensen83 (19 April 2011)

hallo, wie kann ich einen stringwert und eine dintzahl zusammenfügen?

dachte an sowas hier:  aaa := 'aaaaaaaaa' + DINT_TO_STRING(zahlenwert);

aber bekomme ne fehlermeldung. weis jemand, wie sowas geht?


----------



## Thomas_v2.1 (19 April 2011)

CONCAT benutzen


----------



## Bensen83 (19 April 2011)

*Ok*

Sorry, aber was ist das? ;-)


----------



## IBFS (19 April 2011)

Bensen83 schrieb:


> Sorry, aber was ist das? ;-)




Da schaust du mal bitte in deiner SIEMENS-LIB nach.
Im Kop/Fup/Awl-Editor auf KOP oder FUP schalten
ein Netzwerk markieren und den linken "BAUM" aktivieren.
Dort siehst du dann neben deine FBs/FCs auch ein PULLDOWN
mit den verfügbaren LIBs.

Einfach in dein Projekt ziehen - F1 drücken - da steht alles.

Frank


----------



## Aventinus (19 April 2011)

Concat ist eine FC aus der Standard Library zum zusammenhängen von Strings.

-> Standard Library
   -> IEC Function Blocks
      -> FC2 Concat IEC


----------



## Bensen83 (19 April 2011)

*Ok*

Habe das jetzt, allerdings bekomme ich jetzt noch bei der aktion DINT_TO_STRING angezeigt, dass:

DI_STRING konnte nicht gefunden oder kopiert werden.


----------



## dalbi (19 April 2011)

Hi,



Bensen83 schrieb:


> Habe das jetzt, allerdings bekomme ich jetzt noch bei der aktion DINT_TO_STRING angezeigt, dass:
> 
> DI_STRING konnte nicht gefunden oder kopiert werden.



Baustein aus der Standard Library mit ins Projekt kopieren.

Gruss Daniel


----------



## Bensen83 (19 April 2011)

*Ah ok*

Unter welcher rubrik finde ich den Baustein denn? sfc oder wie?


----------



## dalbi (19 April 2011)

IEC Function Blocks / "FC5" DI_STRNG

Gruss Daniel


----------



## Bensen83 (19 April 2011)

*Danke*

OK habe ihn gefunden, funktioniert auch, aber wie bekomme ich bei der verwendung mit CONCAT das vorzeichen vor der zahl weg? will ja das da z.B. steht seriennummer: 5678  und nicht Seriennummer: +5678


----------



## dalbi (19 April 2011)

DELETE "FC4" 

Gruss Daniel


----------



## IBFS (19 April 2011)

Bensen83 schrieb:


> OK habe ihn gefunden, funktioniert auch, aber wie bekomme ich bei der verwendung mit CONCAT das vorzeichen vor der zahl weg? will ja das da z.B. steht seriennummer: 5678  und nicht Seriennummer: +5678



Vorzeichen suchen und anschießend abschneiden.
Dafür gibt es auch schöne FCs


FC 11    FIND

und dann

FC 4    DELETE

oder

FC 32    RIGHT

Stehen alle in der gleichen IEC-Liste - F1 ist dein Freund!


Frank


----------



## Kai (19 April 2011)

Bensen83 schrieb:


> OK habe ihn gefunden, funktioniert auch, aber wie bekomme ich bei der verwendung mit CONCAT das vorzeichen vor der zahl weg? will ja das da z.B. steht seriennummer: 5678 und nicht Seriennummer: +5678


 
Siehe auch das folgende Programmbeispiel in STEP 7 FUP für die Umwandlung einer DINT-Zahl in einen STRING ohne Vorzeichen:

http://www.sps-forum.de/showpost.php?p=236760&postcount=6

http://www.sps-forum.de/showpost.php?p=236761&postcount=7

Gruß Kai


----------



## Bensen83 (27 April 2011)

*CPU auf STop*

Hallo, habe folgenden Code im SCL Baustein. Wenn ich die RIGHT Funktion aufrufe, geht immer die CPU mit folgenden Fehler auf Stop:

"STOP durch Bearbeitungsabbruch-Fehler (OB nicht geladen oder nicht möglich, bzw. kein FRB vorhanden)"

Die Bausteine sind alle online vorhanden. was könnte denn falsch sein?


```
"Maschinendaten".Stringlaenge := LEN   (S :=  DINT_TO_STRING("Maschinendaten".Seriennummer)
                ); 
"Maschinendaten".Stringlaenge := "Maschinendaten".Stringlaenge - 1;
 
"Maschinendaten".Zwischenstring := RIGHT(IN :=  DINT_TO_STRING("Maschinendaten".Seriennummer)
                                                    ,L :=  "Maschinendaten".Stringlaenge
                                                    );
```


----------



## Lupo (27 April 2011)

siehe http://www.sps-forum.de/showthread.php?p=328189#post328189


----------

