String, Concat

Matze001
2008-11-03
2008-11-05
  • Matze001 - 2008-11-03

    Mahlzeit,

    ich hab mal wieder ein doofes Problem...

    Ich habe zwei Zeiten Minuten und Stunden als WORD habe diese mit WORD_TO_STRING und Concat "zusammengebastelt"

    Bei zweistelligen Minutenanzeigen ist es ok, dann ist die Anzeige 01:12.

    Leider bei Minutenanzeigen < 10 min ist die Anzeige 01:8

    Wie bekomme ich es hin das die Anzeige 01:08 wird?

    Vielen Dank schonmal!

    MfG

    Marcel

     
  • Pitsch52 - 2008-11-03

    Hallo

    Indem Du dem Minutenstring einen String '0' voransetzst, wenn die Minuten-Integer kleiner als 10 ist.

    Etwa so:

    MinInt := 9; (Beispielsweise)

    MinStr := INT_TO_STRING(MinInt);

    StdStr := '10';

    (Wenn Minuten kleiner als 10 (also einstellig) wird ne Null vorangesetzt)

    IF MinInt < 10 THEN

    MinStr := CONCAT('0', MinStr);

    END_IF

    StdStr := CONCAT(StdStr, ':');

    ZeitStr := CONCAT(StdStr, MinStr);

    Habs nicht getestet! Sollte aber etwa so funktionieren.

    Mit freundlichen Grüssen! Pitsch

     
  • Matze001 - 2008-11-03

    hab ich mir in der Zeit auch schon ausgedacht... doof das mein Programm in FUP ist Da gibt es kein Concat mit enable ... wird schon schief gehn.

    Danke für die Antwort!

    MfG

    Marcel

     
  • Ralph Holz - 2008-11-03

    Dafür gib es in FUP Sprünge das ist auch nichts anderes wie ein Enable.

    Gruß

    Ralph

     
  • hugo - 2008-11-04

    schau dir mal die string funktionen in der oscat lib an sie sind sehr umfangreich und das was du suchst sóllte auch dabei sein

     
  • Matze001 - 2008-11-04

    Danke für die Antworten! Werde mir die Sprünge mal anschauen!

    Bin kein Fan von Oscat, die Idee ist zwar schön und gut, aber jedesmal wenn ich die Oscat.lib in Codesys lade kann ich das Projekt nicht übersetzen weil es meckert das es zu viele Bausteine gibt...

    MfG

    Marcel

     
  • hugo - 2008-11-04

    Die Anzahl der Bausteine kannst du unter Target Einstellungen verändern

     
  • Chräshe - 2008-11-04

    Hallo Hugo,

    ich finde OSCAT gut, aber die „Target Einstellungen“ zum einstellen der Anzahl

    der Bausteine kann ich nicht finden.

    Gibt es das beim TwinCAT nicht?

    Gruß

    Chräshe

     
  • Pitsch52 - 2008-11-04

    Hallo

    Das ist überhaupt kein Problem, auch wenn Du das Programm in FUP programmiert hast.

    Du musst nur ein Funktionsbaustein(FB) erstellen, den in ST Programmieren und im FUP-Programm eine Instanz dieses FBs einfügen.

    Mit freundlichen Grüssen! Pitsch

     
  • Matze001 - 2008-11-04

    Ich weis ich weis,

    ich will nur mein Programm so übersichtlich wie Möglich halten.

    Habe bisher 30 Programme und ca. 20FBs... da für jeden kleinen sch*** nen FB zu machen... das wird schnell sehr unübersichtlich!

    MfG

    Marcel

     
  • Pitsch52 - 2008-11-05

    Hallo

    Das mit der Unübersichtlichkeit, kann ich nicht ganz nachvollziehen. Du kannst das ganze natürlich so gestalten, dass es unübersichtlich wird. Ich habe manchmal Programme, mit 30 oder mehr FBs und das ganze bleibt dennoch überschaubar.

    Der CONCAT-FB, soll dir ja nur deinen Zeit-String, richtig zusammenkleben. Den kanst Du ja auch in einem bestehenden FB als Instanz einsetzen (z.B. vor der Zuweisung des Strings an die Ausgangs-Variable). Dann ändert sich das Erscheinungsbild deines FUP Programms überhaupt nicht.

    Anstatt FBs mit riesigem Code-Volumen zu schreiben, wo unter Umständen, der gleiche Code-Abschnitt mehrmals Programmiert wird, ohne dass man sich dessen bewusst wird, schreibst Du besser kleinere, Codemässig verständlichere und überschaubare FBs, die Du dann durch Aufrufe verkettest. So wird es auch einfacher gewisse Fehlfunktionen zu lokalisieren und zu beheben, als in Codegiganten, wo mann nach zwanzig Zeilen vergessen hatt, was man am Anfang eigentlich gelesen hat und was bis dahin passiert ist.

    Mit freundlichen Grüssen! Pitsch

     
  • Matze001 - 2008-11-05

    Hallo,

    ist ja alles richtig, ich mache es ja auch so!

    Ich wollte nur nicht für jede Funktion die nur ein Netzwerk braucht gleich nen FB machen, weil dann wird es unübersichtlich, das meine ich damit...

    Dann guckt man im Programm, oh nen FB, sucht ihn in der Liste, da drin sind am Besten noch drei FBs guckt sich da jeden einzelnen an... und dann beginnt die Suche...

    Aber es klappt schon, hab mich durchgerungen dafür einen zu bauen

    MfG

    Marcel

     

Log in to post a comment.